* [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors @ 2011-08-23 20:18 Fabio Estevam 2011-08-23 20:18 ` [PATCH 2/2] ARM: imx: Add PATA clock support Fabio Estevam 2011-08-24 8:18 ` [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors Sascha Hauer 0 siblings, 2 replies; 3+ messages in thread From: Fabio Estevam @ 2011-08-23 20:18 UTC (permalink / raw) To: linux-arm-kernel MX27/31/35/53 also have PATA block. Add PATA resources for them. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> --- In order to avoid breaking MX51 PATA support the following patch is needed: http://git.pengutronix.de/?p=imx/linux-2.6.git;a=commitdiff;h=1a1952779b8e92a404dceaecca70ba120bea2d94 arch/arm/plat-mxc/devices/platform-pata_imx.c | 29 +++++++++++++++++++--- arch/arm/plat-mxc/include/mach/devices-common.h | 1 + arch/arm/plat-mxc/include/mach/mx35.h | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/arch/arm/plat-mxc/devices/platform-pata_imx.c b/arch/arm/plat-mxc/devices/platform-pata_imx.c index c1cbaf9..b67ad9e 100644 --- a/arch/arm/plat-mxc/devices/platform-pata_imx.c +++ b/arch/arm/plat-mxc/devices/platform-pata_imx.c @@ -6,24 +6,45 @@ #include <mach/hardware.h> #include <mach/devices-common.h> -#define imx_pata_imx_data_entry_single(soc) \ +#define imx_pata_imx_data_entry_single(soc, _size) \ { \ .iobase = soc ## _ATA_BASE_ADDR, \ - .irq = soc ## _MXC_INT_ATA, \ + .iosize = _size, \ + .irq = soc ## _INT_ATA, \ } +#ifdef CONFIG_SOC_IMX27 +const struct imx_pata_imx_data imx27_pata_imx_data __initconst = + imx_pata_imx_data_entry_single(MX27, SZ_4K); +#endif /* ifdef CONFIG_SOC_IMX27 */ + +#ifdef CONFIG_SOC_IMX31 +const struct imx_pata_imx_data imx31_pata_imx_data __initconst = + imx_pata_imx_data_entry_single(MX31, SZ_16K); +#endif /* ifdef CONFIG_SOC_IMX31 */ + +#ifdef CONFIG_SOC_IMX35 +const struct imx_pata_imx_data imx35_pata_imx_data __initconst = + imx_pata_imx_data_entry_single(MX35, SZ_16K); +#endif /* ifdef CONFIG_SOC_IMX35 */ + #ifdef CONFIG_SOC_IMX51 const struct imx_pata_imx_data imx51_pata_imx_data __initconst = - imx_pata_imx_data_entry_single(MX51); + imx_pata_imx_data_entry_single(MX51, SZ_16K); #endif /* ifdef CONFIG_SOC_IMX51 */ +#ifdef CONFIG_SOC_IMX53 +const struct imx_pata_imx_data imx53_pata_imx_data __initconst = + imx_pata_imx_data_entry_single(MX53, SZ_16K); +#endif /* ifdef CONFIG_SOC_IMX53 */ + struct platform_device *__init imx_add_pata_imx( const struct imx_pata_imx_data *data) { struct resource res[] = { { .start = data->iobase, - .end = data->iobase + SZ_16K - 1, + .end = data->iobase + data->iobase - 1, .flags = IORESOURCE_MEM, }, { diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h index 1b76c67..4cbad45 100644 --- a/arch/arm/plat-mxc/include/mach/devices-common.h +++ b/arch/arm/plat-mxc/include/mach/devices-common.h @@ -253,6 +253,7 @@ struct platform_device *__init imx_add_mxc_nand( struct imx_pata_imx_data { resource_size_t iobase; + resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_pata_imx( diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h index d13dbfe..80965a9 100644 --- a/arch/arm/plat-mxc/include/mach/mx35.h +++ b/arch/arm/plat-mxc/include/mach/mx35.h @@ -36,7 +36,7 @@ #define MX35_UART3_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x0c000) #define MX35_CSPI2_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x10000) #define MX35_SSI2_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x14000) -#define MX35_ATA_DMA_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x20000) +#define MX35_ATA_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x20000) #define MX35_MSHC1_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x24000) #define MX35_FEC_BASE_ADDR 0x50038000 #define MX35_SPBA_CTRL_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x3c000) -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] ARM: imx: Add PATA clock support 2011-08-23 20:18 [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors Fabio Estevam @ 2011-08-23 20:18 ` Fabio Estevam 2011-08-24 8:18 ` [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors Sascha Hauer 1 sibling, 0 replies; 3+ messages in thread From: Fabio Estevam @ 2011-08-23 20:18 UTC (permalink / raw) To: linux-arm-kernel Add PATA clock support for MX27/MX31/MX35/MX53. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> --- arch/arm/mach-imx/clock-imx27.c | 4 ++-- arch/arm/mach-imx/clock-imx31.c | 4 ++-- arch/arm/mach-imx/clock-imx35.c | 4 ++-- arch/arm/mach-mx5/clock-mx51-mx53.c | 1 + 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-imx/clock-imx27.c b/arch/arm/mach-imx/clock-imx27.c index 6912b82..becc92e 100644 --- a/arch/arm/mach-imx/clock-imx27.c +++ b/arch/arm/mach-imx/clock-imx27.c @@ -583,7 +583,7 @@ DEFINE_CLOCK(emi_clk, 0, PCCR1, 19, NULL, NULL, &ahb_clk); DEFINE_CLOCK(dma_clk1, 0, PCCR1, 20, NULL, NULL, &ahb_clk); DEFINE_CLOCK(csi_clk1, 0, PCCR1, 21, NULL, NULL, &ahb_clk); DEFINE_CLOCK(brom_clk, 0, PCCR1, 22, NULL, NULL, &ahb_clk); -DEFINE_CLOCK(ata_clk, 0, PCCR1, 23, NULL, NULL, &ahb_clk); +DEFINE_CLOCK(pata_clk, 0, PCCR1, 23, NULL, NULL, &ahb_clk); DEFINE_CLOCK(wdog_clk, 0, PCCR1, 24, NULL, NULL, &ipg_clk); DEFINE_CLOCK(usb_clk, 0, PCCR1, 25, get_rate_usb, &usb_clk1, &spll_clk); DEFINE_CLOCK(uart6_clk1, 0, PCCR1, 26, NULL, NULL, &ipg_clk); @@ -666,7 +666,7 @@ static struct clk_lookup lookups[] = { _REGISTER_CLOCK("imx27-fec.0", NULL, fec_clk) _REGISTER_CLOCK(NULL, "emi", emi_clk) _REGISTER_CLOCK(NULL, "sahara2", sahara2_clk) - _REGISTER_CLOCK(NULL, "ata", ata_clk) + _REGISTER_CLOCK("pata_imx", NULL, pata_clk) _REGISTER_CLOCK(NULL, "mstick", mstick_clk) _REGISTER_CLOCK("imx2-wdt.0", NULL, wdog_clk) _REGISTER_CLOCK(NULL, "gpio", gpio_clk) diff --git a/arch/arm/mach-imx/clock-imx31.c b/arch/arm/mach-imx/clock-imx31.c index d973770..58ea0a8 100644 --- a/arch/arm/mach-imx/clock-imx31.c +++ b/arch/arm/mach-imx/clock-imx31.c @@ -476,7 +476,7 @@ DEFINE_CLOCK(gpt_clk, 0, MXC_CCM_CGR0, 4, NULL, NULL, &perclk_clk); DEFINE_CLOCK(epit1_clk, 0, MXC_CCM_CGR0, 6, NULL, NULL, &perclk_clk); DEFINE_CLOCK(epit2_clk, 1, MXC_CCM_CGR0, 8, NULL, NULL, &perclk_clk); DEFINE_CLOCK(iim_clk, 0, MXC_CCM_CGR0, 10, NULL, NULL, &ipg_clk); -DEFINE_CLOCK(ata_clk, 0, MXC_CCM_CGR0, 12, NULL, NULL, &ipg_clk); +DEFINE_CLOCK(pata_clk, 0, MXC_CCM_CGR0, 12, NULL, NULL, &ipg_clk); DEFINE_CLOCK(sdma_clk1, 0, MXC_CCM_CGR0, 14, NULL, NULL, &ahb_clk); DEFINE_CLOCK(cspi3_clk, 2, MXC_CCM_CGR0, 16, NULL, NULL, &ipg_clk); DEFINE_CLOCK(rng_clk, 0, MXC_CCM_CGR0, 18, NULL, NULL, &ipg_clk); @@ -562,7 +562,7 @@ static struct clk_lookup lookups[] = { _REGISTER_CLOCK("imx-ssi.0", NULL, ssi1_clk) _REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk) _REGISTER_CLOCK(NULL, "firi", firi_clk) - _REGISTER_CLOCK(NULL, "ata", ata_clk) + _REGISTER_CLOCK("pata_imx", NULL, pata_clk) _REGISTER_CLOCK(NULL, "rtic", rtic_clk) _REGISTER_CLOCK(NULL, "rng", rng_clk) _REGISTER_CLOCK("imx31-sdma", NULL, sdma_clk1) diff --git a/arch/arm/mach-imx/clock-imx35.c b/arch/arm/mach-imx/clock-imx35.c index 88b62a0..c39f5c3 100644 --- a/arch/arm/mach-imx/clock-imx35.c +++ b/arch/arm/mach-imx/clock-imx35.c @@ -354,7 +354,7 @@ static void clk_cgr_disable(struct clk *clk) } DEFINE_CLOCK(asrc_clk, 0, CCM_CGR0, 0, NULL, NULL); -DEFINE_CLOCK(ata_clk, 0, CCM_CGR0, 2, get_rate_ipg, NULL); +DEFINE_CLOCK(pata_clk, 0, CCM_CGR0, 2, get_rate_ipg, NULL); /* DEFINE_CLOCK(audmux_clk, 0, CCM_CGR0, 4, NULL, NULL); */ DEFINE_CLOCK(can1_clk, 0, CCM_CGR0, 6, get_rate_ipg, NULL); DEFINE_CLOCK(can2_clk, 1, CCM_CGR0, 8, get_rate_ipg, NULL); @@ -447,7 +447,7 @@ static struct clk nfc_clk = { static struct clk_lookup lookups[] = { _REGISTER_CLOCK(NULL, "asrc", asrc_clk) - _REGISTER_CLOCK(NULL, "ata", ata_clk) + _REGISTER_CLOCK("pata_imx", NULL, pata_clk) _REGISTER_CLOCK("flexcan.0", NULL, can1_clk) _REGISTER_CLOCK("flexcan.1", NULL, can2_clk) _REGISTER_CLOCK("imx35-cspi.0", NULL, cspi1_clk) diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index b653133..3fcb596 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c @@ -1508,6 +1508,7 @@ static struct clk_lookup mx53_lookups[] = { _REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk) _REGISTER_CLOCK("imx-ssi.2", NULL, ssi3_clk) _REGISTER_CLOCK("imx-keypad", NULL, dummy_clk) + _REGISTER_CLOCK("pata_imx", NULL, pata_clk) }; static void clk_tree_init(void) -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors 2011-08-23 20:18 [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors Fabio Estevam 2011-08-23 20:18 ` [PATCH 2/2] ARM: imx: Add PATA clock support Fabio Estevam @ 2011-08-24 8:18 ` Sascha Hauer 1 sibling, 0 replies; 3+ messages in thread From: Sascha Hauer @ 2011-08-24 8:18 UTC (permalink / raw) To: linux-arm-kernel On Tue, Aug 23, 2011 at 05:18:06PM -0300, Fabio Estevam wrote: > MX27/31/35/53 also have PATA block. > > Add PATA resources for them. Applied for next. Sascha > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> > --- > > In order to avoid breaking MX51 PATA support the following patch is needed: > http://git.pengutronix.de/?p=imx/linux-2.6.git;a=commitdiff;h=1a1952779b8e92a404dceaecca70ba120bea2d94 > > arch/arm/plat-mxc/devices/platform-pata_imx.c | 29 +++++++++++++++++++--- > arch/arm/plat-mxc/include/mach/devices-common.h | 1 + > arch/arm/plat-mxc/include/mach/mx35.h | 2 +- > 3 files changed, 27 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/plat-mxc/devices/platform-pata_imx.c b/arch/arm/plat-mxc/devices/platform-pata_imx.c > index c1cbaf9..b67ad9e 100644 > --- a/arch/arm/plat-mxc/devices/platform-pata_imx.c > +++ b/arch/arm/plat-mxc/devices/platform-pata_imx.c > @@ -6,24 +6,45 @@ > #include <mach/hardware.h> > #include <mach/devices-common.h> > > -#define imx_pata_imx_data_entry_single(soc) \ > +#define imx_pata_imx_data_entry_single(soc, _size) \ > { \ > .iobase = soc ## _ATA_BASE_ADDR, \ > - .irq = soc ## _MXC_INT_ATA, \ > + .iosize = _size, \ > + .irq = soc ## _INT_ATA, \ > } > > +#ifdef CONFIG_SOC_IMX27 > +const struct imx_pata_imx_data imx27_pata_imx_data __initconst = > + imx_pata_imx_data_entry_single(MX27, SZ_4K); > +#endif /* ifdef CONFIG_SOC_IMX27 */ > + > +#ifdef CONFIG_SOC_IMX31 > +const struct imx_pata_imx_data imx31_pata_imx_data __initconst = > + imx_pata_imx_data_entry_single(MX31, SZ_16K); > +#endif /* ifdef CONFIG_SOC_IMX31 */ > + > +#ifdef CONFIG_SOC_IMX35 > +const struct imx_pata_imx_data imx35_pata_imx_data __initconst = > + imx_pata_imx_data_entry_single(MX35, SZ_16K); > +#endif /* ifdef CONFIG_SOC_IMX35 */ > + > #ifdef CONFIG_SOC_IMX51 > const struct imx_pata_imx_data imx51_pata_imx_data __initconst = > - imx_pata_imx_data_entry_single(MX51); > + imx_pata_imx_data_entry_single(MX51, SZ_16K); > #endif /* ifdef CONFIG_SOC_IMX51 */ > > +#ifdef CONFIG_SOC_IMX53 > +const struct imx_pata_imx_data imx53_pata_imx_data __initconst = > + imx_pata_imx_data_entry_single(MX53, SZ_16K); > +#endif /* ifdef CONFIG_SOC_IMX53 */ > + > struct platform_device *__init imx_add_pata_imx( > const struct imx_pata_imx_data *data) > { > struct resource res[] = { > { > .start = data->iobase, > - .end = data->iobase + SZ_16K - 1, > + .end = data->iobase + data->iobase - 1, > .flags = IORESOURCE_MEM, > }, > { > diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h > index 1b76c67..4cbad45 100644 > --- a/arch/arm/plat-mxc/include/mach/devices-common.h > +++ b/arch/arm/plat-mxc/include/mach/devices-common.h > @@ -253,6 +253,7 @@ struct platform_device *__init imx_add_mxc_nand( > > struct imx_pata_imx_data { > resource_size_t iobase; > + resource_size_t iosize; > resource_size_t irq; > }; > struct platform_device *__init imx_add_pata_imx( > diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h > index d13dbfe..80965a9 100644 > --- a/arch/arm/plat-mxc/include/mach/mx35.h > +++ b/arch/arm/plat-mxc/include/mach/mx35.h > @@ -36,7 +36,7 @@ > #define MX35_UART3_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x0c000) > #define MX35_CSPI2_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x10000) > #define MX35_SSI2_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x14000) > -#define MX35_ATA_DMA_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x20000) > +#define MX35_ATA_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x20000) > #define MX35_MSHC1_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x24000) > #define MX35_FEC_BASE_ADDR 0x50038000 > #define MX35_SPBA_CTRL_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x3c000) > -- > 1.6.0.4 > > > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-08-24 8:18 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-08-23 20:18 [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors Fabio Estevam 2011-08-23 20:18 ` [PATCH 2/2] ARM: imx: Add PATA clock support Fabio Estevam 2011-08-24 8:18 ` [PATCH 1/2] ARM: imx: Add PATA resources for other i.MX processors Sascha Hauer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).