* [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support
@ 2011-01-10 12:08 yong.shen at freescale.com
2011-01-10 12:08 ` [PATCH 2/3] ARM i.MX53 enable spi on EVK board yong.shen at freescale.com
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: yong.shen at freescale.com @ 2011-01-10 12:08 UTC (permalink / raw)
To: linux-arm-kernel
From: Yong Shen <yong.shen@freescale.com>
1. Change the Kconfig to include i.MX53
2. add devtype entry for i.MX53
Signed-off-by: Yong Shen <yong.shen@freescale.com>
---
drivers/spi/Kconfig | 4 ++--
drivers/spi/spi_imx.c | 6 ++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 78f9fd0..04965e2 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -153,10 +153,10 @@ config SPI_IMX_VER_0_4
def_bool y if ARCH_MX31
config SPI_IMX_VER_0_7
- def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51
+ def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 || ARCH_MX53
config SPI_IMX_VER_2_3
- def_bool y if ARCH_MX51
+ def_bool y if ARCH_MX51 || ARCH_MX53
config SPI_IMX
tristate "Freescale i.MX SPI controllers"
diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c
index 55a38e2..9b8a733 100644
--- a/drivers/spi/spi_imx.c
+++ b/drivers/spi/spi_imx.c
@@ -747,6 +747,12 @@ static struct platform_device_id spi_imx_devtype[] = {
.name = "imx51-ecspi",
.driver_data = SPI_IMX_VER_2_3,
}, {
+ .name = "imx53-cspi",
+ .driver_data = SPI_IMX_VER_0_7,
+ }, {
+ .name = "imx53-ecspi",
+ .driver_data = SPI_IMX_VER_2_3,
+ }, {
/* sentinel */
}
};
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/3] ARM i.MX53 enable spi on EVK board 2011-01-10 12:08 [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support yong.shen at freescale.com @ 2011-01-10 12:08 ` yong.shen at freescale.com 2011-01-11 9:15 ` Uwe Kleine-König 2011-01-10 12:08 ` [PATCH 3/3] ARM i.MX5 uart clock bug fix yong.shen at freescale.com ` (2 subsequent siblings) 3 siblings, 1 reply; 9+ messages in thread From: yong.shen at freescale.com @ 2011-01-10 12:08 UTC (permalink / raw) To: linux-arm-kernel From: Yong Shen <yong.shen@freescale.com> 1. some macro definitions fix 2. add platform data for spi device 3. register spi clocks Signed-off-by: Yong Shen <yong.shen@freescale.com> --- arch/arm/mach-mx5/Kconfig | 1 + arch/arm/mach-mx5/board-mx53_evk.c | 14 ++++++++++++++ arch/arm/mach-mx5/clock-mx51-mx53.c | 3 +++ arch/arm/mach-mx5/devices-imx53.h | 4 ++++ arch/arm/plat-mxc/devices/platform-spi_imx.c | 12 ++++++++++++ arch/arm/plat-mxc/include/mach/mx53.h | 10 +++++----- 6 files changed, 39 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig index 23b0e3f..777740b 100644 --- a/arch/arm/mach-mx5/Kconfig +++ b/arch/arm/mach-mx5/Kconfig @@ -126,6 +126,7 @@ config MACH_MX53_EVK select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + select IMX_HAVE_PLATFORM_SPI_IMX help Include support for MX53 EVK platform. This includes specific configurations for the board and its peripherals. diff --git a/arch/arm/mach-mx5/board-mx53_evk.c b/arch/arm/mach-mx5/board-mx53_evk.c index 4043451..8017d68 100644 --- a/arch/arm/mach-mx5/board-mx53_evk.c +++ b/arch/arm/mach-mx5/board-mx53_evk.c @@ -33,6 +33,8 @@ #include <mach/iomux-mx53.h> #define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6) +#define EVK_ECSPI1_CS0 IMX_GPIO_NR(3, 19) +#define EVK_ECSPI1_CS1 IMX_GPIO_NR(2, 30) #include "crm_regs.h" #include "devices-imx53.h" @@ -89,6 +91,16 @@ static struct fec_platform_data mx53_evk_fec_pdata = { .phy = PHY_INTERFACE_MODE_RMII, }; +static int mx53_evk_spi_cs[] = { + EVK_ECSPI1_CS0, + EVK_ECSPI1_CS1, +}; + +static const struct spi_imx_master mx53_evk_spi_data __initconst = { + .chipselect = mx53_evk_spi_cs, + .num_chipselect = ARRAY_SIZE(mx53_evk_spi_cs), +}; + static void __init mx53_evk_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx53_evk_pads, @@ -102,6 +114,8 @@ static void __init mx53_evk_board_init(void) imx53_add_sdhci_esdhc_imx(0, NULL); imx53_add_sdhci_esdhc_imx(1, NULL); + + imx53_add_ecspi(0, &mx53_evk_spi_data); } static void __init mx53_evk_timer_init(void) diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index d0f58a3..a20d0c0 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c @@ -1330,6 +1330,9 @@ static struct clk_lookup mx53_lookups[] = { _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) _REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk) _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk) + _REGISTER_CLOCK("imx53-ecspi.0", NULL, ecspi1_clk) + _REGISTER_CLOCK("imx53-ecspi.1", NULL, ecspi2_clk) + _REGISTER_CLOCK("imx53-cspi.0", NULL, cspi_clk) }; static void clk_tree_init(void) diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h index f7c89ef..8639735 100644 --- a/arch/arm/mach-mx5/devices-imx53.h +++ b/arch/arm/mach-mx5/devices-imx53.h @@ -25,3 +25,7 @@ extern const struct imx_sdhci_esdhc_imx_data imx53_sdhci_esdhc_imx_data[] __initconst; #define imx53_add_sdhci_esdhc_imx(id, pdata) \ imx_add_sdhci_esdhc_imx(&imx53_sdhci_esdhc_imx_data[id], pdata) + +extern const struct imx_spi_imx_data imx53_ecspi_data[] __initconst; +#define imx53_add_ecspi(id, pdata) \ + imx_add_spi_imx(&imx53_ecspi_data[id], pdata) diff --git a/arch/arm/plat-mxc/devices/platform-spi_imx.c b/arch/arm/plat-mxc/devices/platform-spi_imx.c index 8ea49ad..013c85f 100644 --- a/arch/arm/plat-mxc/devices/platform-spi_imx.c +++ b/arch/arm/plat-mxc/devices/platform-spi_imx.c @@ -81,6 +81,18 @@ const struct imx_spi_imx_data imx51_ecspi_data[] __initconst = { }; #endif /* ifdef CONFIG_SOC_IMX51 */ +#ifdef CONFIG_SOC_IMX53 +const struct imx_spi_imx_data imx53_cspi_data __initconst = + imx_spi_imx_data_entry_single(MX53, CSPI, "imx53-cspi", 0, , SZ_4K); + +const struct imx_spi_imx_data imx53_ecspi_data[] __initconst = { +#define imx53_ecspi_data_entry(_id, _hwid) \ + imx_spi_imx_data_entry(MX53, ECSPI, "imx53-ecspi", _id, _hwid, SZ_4K) + imx53_ecspi_data_entry(0, 1), + imx53_ecspi_data_entry(1, 2), +}; +#endif /* ifdef CONFIG_SOC_IMX53 */ + struct platform_device *__init imx_add_spi_imx( const struct imx_spi_imx_data *data, const struct spi_imx_master *pdata) diff --git a/arch/arm/plat-mxc/include/mach/mx53.h b/arch/arm/plat-mxc/include/mach/mx53.h index 340937f..d7a8e52 100644 --- a/arch/arm/plat-mxc/include/mach/mx53.h +++ b/arch/arm/plat-mxc/include/mach/mx53.h @@ -56,7 +56,7 @@ #define MX53_ESDHC1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00004000) #define MX53_ESDHC2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00008000) #define MX53_UART3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0000C000) -#define MX53_CSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000) +#define MX53_ECSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000) #define MX53_SSI2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00014000) #define MX53_ESDHC3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00020000) #define MX53_ESDHC4_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00024000) @@ -117,12 +117,12 @@ #define MX53_ARM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A0000) #define MX53_OWIRE_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A4000) #define MX53_FIRI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A8000) -#define MX53_CSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000) +#define MX53_ECSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000) #define MX53_SDMA_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B0000) #define MX53_SCC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B4000) #define MX53_ROMCP_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B8000) #define MX53_RTIC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000BC000) -#define MX53_CSPI3_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000) +#define MX53_CSPI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000) #define MX53_I2C2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C4000) #define MX53_I2C1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C8000) #define MX53_SSI1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000CC000) @@ -264,8 +264,8 @@ #define MX53_INT_UART3 33 #define MX53_INT_RESV34 34 #define MX53_INT_RESV35 35 -#define MX53_INT_CSPI1 36 -#define MX53_INT_CSPI2 37 +#define MX53_INT_ECSPI1 36 +#define MX53_INT_ECSPI2 37 #define MX53_INT_CSPI 38 #define MX53_INT_GPT 39 #define MX53_INT_EPIT1 40 -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] ARM i.MX53 enable spi on EVK board 2011-01-10 12:08 ` [PATCH 2/3] ARM i.MX53 enable spi on EVK board yong.shen at freescale.com @ 2011-01-11 9:15 ` Uwe Kleine-König 2011-01-11 10:43 ` Sascha Hauer 0 siblings, 1 reply; 9+ messages in thread From: Uwe Kleine-König @ 2011-01-11 9:15 UTC (permalink / raw) To: linux-arm-kernel Hello, I'd prefer to have the following subject: ARM: mx5/mx53_evk: add spi device On Mon, Jan 10, 2011 at 08:08:53PM +0800, yong.shen at freescale.com wrote: > From: Yong Shen <yong.shen@freescale.com> > > 1. some macro definitions fix > 2. add platform data for spi device > 3. register spi clocks > > Signed-off-by: Yong Shen <yong.shen@freescale.com> > --- > arch/arm/mach-mx5/Kconfig | 1 + > arch/arm/mach-mx5/board-mx53_evk.c | 14 ++++++++++++++ > arch/arm/mach-mx5/clock-mx51-mx53.c | 3 +++ > arch/arm/mach-mx5/devices-imx53.h | 4 ++++ > arch/arm/plat-mxc/devices/platform-spi_imx.c | 12 ++++++++++++ > arch/arm/plat-mxc/include/mach/mx53.h | 10 +++++----- > 6 files changed, 39 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig > index 23b0e3f..777740b 100644 > --- a/arch/arm/mach-mx5/Kconfig > +++ b/arch/arm/mach-mx5/Kconfig > @@ -126,6 +126,7 @@ config MACH_MX53_EVK > select IMX_HAVE_PLATFORM_IMX_UART > select IMX_HAVE_PLATFORM_IMX_I2C > select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX > + select IMX_HAVE_PLATFORM_SPI_IMX > help > Include support for MX53 EVK platform. This includes specific > configurations for the board and its peripherals. > diff --git a/arch/arm/mach-mx5/board-mx53_evk.c b/arch/arm/mach-mx5/board-mx53_evk.c > index 4043451..8017d68 100644 > --- a/arch/arm/mach-mx5/board-mx53_evk.c > +++ b/arch/arm/mach-mx5/board-mx53_evk.c > @@ -33,6 +33,8 @@ > #include <mach/iomux-mx53.h> > > #define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6) > +#define EVK_ECSPI1_CS0 IMX_GPIO_NR(3, 19) > +#define EVK_ECSPI1_CS1 IMX_GPIO_NR(2, 30) > > #include "crm_regs.h" > #include "devices-imx53.h" > @@ -89,6 +91,16 @@ static struct fec_platform_data mx53_evk_fec_pdata = { > .phy = PHY_INTERFACE_MODE_RMII, > }; > > +static int mx53_evk_spi_cs[] = { > + EVK_ECSPI1_CS0, > + EVK_ECSPI1_CS1, don't you need to setup some pinmuxing to make this work? > +}; > + > +static const struct spi_imx_master mx53_evk_spi_data __initconst = { > + .chipselect = mx53_evk_spi_cs, > + .num_chipselect = ARRAY_SIZE(mx53_evk_spi_cs), > +}; > + > static void __init mx53_evk_board_init(void) > { > mxc_iomux_v3_setup_multiple_pads(mx53_evk_pads, > @@ -102,6 +114,8 @@ static void __init mx53_evk_board_init(void) > > imx53_add_sdhci_esdhc_imx(0, NULL); > imx53_add_sdhci_esdhc_imx(1, NULL); > + > + imx53_add_ecspi(0, &mx53_evk_spi_data); > } > > static void __init mx53_evk_timer_init(void) > diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c > index d0f58a3..a20d0c0 100644 > --- a/arch/arm/mach-mx5/clock-mx51-mx53.c > +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c > @@ -1330,6 +1330,9 @@ static struct clk_lookup mx53_lookups[] = { > _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) > _REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk) > _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk) > + _REGISTER_CLOCK("imx53-ecspi.0", NULL, ecspi1_clk) > + _REGISTER_CLOCK("imx53-ecspi.1", NULL, ecspi2_clk) > + _REGISTER_CLOCK("imx53-cspi.0", NULL, cspi_clk) maybe this should better go into a seperate patch? (i.e. ARM: mx53: add support to dynamically register imx-spi devices together with the hunks below. Best regards Uwe > }; > > static void clk_tree_init(void) > diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h > index f7c89ef..8639735 100644 > --- a/arch/arm/mach-mx5/devices-imx53.h > +++ b/arch/arm/mach-mx5/devices-imx53.h > @@ -25,3 +25,7 @@ extern const struct imx_sdhci_esdhc_imx_data > imx53_sdhci_esdhc_imx_data[] __initconst; > #define imx53_add_sdhci_esdhc_imx(id, pdata) \ > imx_add_sdhci_esdhc_imx(&imx53_sdhci_esdhc_imx_data[id], pdata) > + > +extern const struct imx_spi_imx_data imx53_ecspi_data[] __initconst; > +#define imx53_add_ecspi(id, pdata) \ > + imx_add_spi_imx(&imx53_ecspi_data[id], pdata) > diff --git a/arch/arm/plat-mxc/devices/platform-spi_imx.c b/arch/arm/plat-mxc/devices/platform-spi_imx.c > index 8ea49ad..013c85f 100644 > --- a/arch/arm/plat-mxc/devices/platform-spi_imx.c > +++ b/arch/arm/plat-mxc/devices/platform-spi_imx.c > @@ -81,6 +81,18 @@ const struct imx_spi_imx_data imx51_ecspi_data[] __initconst = { > }; > #endif /* ifdef CONFIG_SOC_IMX51 */ > > +#ifdef CONFIG_SOC_IMX53 > +const struct imx_spi_imx_data imx53_cspi_data __initconst = > + imx_spi_imx_data_entry_single(MX53, CSPI, "imx53-cspi", 0, , SZ_4K); > + > +const struct imx_spi_imx_data imx53_ecspi_data[] __initconst = { > +#define imx53_ecspi_data_entry(_id, _hwid) \ > + imx_spi_imx_data_entry(MX53, ECSPI, "imx53-ecspi", _id, _hwid, SZ_4K) > + imx53_ecspi_data_entry(0, 1), > + imx53_ecspi_data_entry(1, 2), > +}; > +#endif /* ifdef CONFIG_SOC_IMX53 */ > + > struct platform_device *__init imx_add_spi_imx( > const struct imx_spi_imx_data *data, > const struct spi_imx_master *pdata) > diff --git a/arch/arm/plat-mxc/include/mach/mx53.h b/arch/arm/plat-mxc/include/mach/mx53.h > index 340937f..d7a8e52 100644 > --- a/arch/arm/plat-mxc/include/mach/mx53.h > +++ b/arch/arm/plat-mxc/include/mach/mx53.h > @@ -56,7 +56,7 @@ > #define MX53_ESDHC1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00004000) > #define MX53_ESDHC2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00008000) > #define MX53_UART3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0000C000) > -#define MX53_CSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000) > +#define MX53_ECSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000) > #define MX53_SSI2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00014000) > #define MX53_ESDHC3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00020000) > #define MX53_ESDHC4_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00024000) > @@ -117,12 +117,12 @@ > #define MX53_ARM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A0000) > #define MX53_OWIRE_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A4000) > #define MX53_FIRI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A8000) > -#define MX53_CSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000) > +#define MX53_ECSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000) > #define MX53_SDMA_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B0000) > #define MX53_SCC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B4000) > #define MX53_ROMCP_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B8000) > #define MX53_RTIC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000BC000) > -#define MX53_CSPI3_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000) > +#define MX53_CSPI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000) > #define MX53_I2C2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C4000) > #define MX53_I2C1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C8000) > #define MX53_SSI1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000CC000) > @@ -264,8 +264,8 @@ > #define MX53_INT_UART3 33 > #define MX53_INT_RESV34 34 > #define MX53_INT_RESV35 35 > -#define MX53_INT_CSPI1 36 > -#define MX53_INT_CSPI2 37 > +#define MX53_INT_ECSPI1 36 > +#define MX53_INT_ECSPI2 37 > #define MX53_INT_CSPI 38 > #define MX53_INT_GPT 39 > #define MX53_INT_EPIT1 40 > -- > 1.7.1 > > > -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] ARM i.MX53 enable spi on EVK board 2011-01-11 9:15 ` Uwe Kleine-König @ 2011-01-11 10:43 ` Sascha Hauer 2011-01-11 12:12 ` Yong Shen 0 siblings, 1 reply; 9+ messages in thread From: Sascha Hauer @ 2011-01-11 10:43 UTC (permalink / raw) To: linux-arm-kernel On Tue, Jan 11, 2011 at 10:15:49AM +0100, Uwe Kleine-K?nig wrote: > Hello, > > I'd prefer to have the following subject: > > ARM: mx5/mx53_evk: add spi device > > On Mon, Jan 10, 2011 at 08:08:53PM +0800, yong.shen at freescale.com wrote: > > From: Yong Shen <yong.shen@freescale.com> > > > > 1. some macro definitions fix > > 2. add platform data for spi device > > 3. register spi clocks > > > > Signed-off-by: Yong Shen <yong.shen@freescale.com> > > --- > > arch/arm/mach-mx5/Kconfig | 1 + > > arch/arm/mach-mx5/board-mx53_evk.c | 14 ++++++++++++++ > > arch/arm/mach-mx5/clock-mx51-mx53.c | 3 +++ > > arch/arm/mach-mx5/devices-imx53.h | 4 ++++ > > arch/arm/plat-mxc/devices/platform-spi_imx.c | 12 ++++++++++++ > > arch/arm/plat-mxc/include/mach/mx53.h | 10 +++++----- > > 6 files changed, 39 insertions(+), 5 deletions(-) > > > > diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig > > index 23b0e3f..777740b 100644 > > --- a/arch/arm/mach-mx5/Kconfig > > +++ b/arch/arm/mach-mx5/Kconfig > > @@ -126,6 +126,7 @@ config MACH_MX53_EVK > > select IMX_HAVE_PLATFORM_IMX_UART > > select IMX_HAVE_PLATFORM_IMX_I2C > > select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX > > + select IMX_HAVE_PLATFORM_SPI_IMX > > help > > Include support for MX53 EVK platform. This includes specific > > configurations for the board and its peripherals. > > diff --git a/arch/arm/mach-mx5/board-mx53_evk.c b/arch/arm/mach-mx5/board-mx53_evk.c > > index 4043451..8017d68 100644 > > --- a/arch/arm/mach-mx5/board-mx53_evk.c > > +++ b/arch/arm/mach-mx5/board-mx53_evk.c > > @@ -33,6 +33,8 @@ > > #include <mach/iomux-mx53.h> > > > > #define SMD_FEC_PHY_RST IMX_GPIO_NR(7, 6) > > +#define EVK_ECSPI1_CS0 IMX_GPIO_NR(3, 19) > > +#define EVK_ECSPI1_CS1 IMX_GPIO_NR(2, 30) > > > > #include "crm_regs.h" > > #include "devices-imx53.h" > > @@ -89,6 +91,16 @@ static struct fec_platform_data mx53_evk_fec_pdata = { > > .phy = PHY_INTERFACE_MODE_RMII, > > }; > > > > +static int mx53_evk_spi_cs[] = { > > + EVK_ECSPI1_CS0, > > + EVK_ECSPI1_CS1, > don't you need to setup some pinmuxing to make this work? > > > +}; > > + > > +static const struct spi_imx_master mx53_evk_spi_data __initconst = { > > + .chipselect = mx53_evk_spi_cs, > > + .num_chipselect = ARRAY_SIZE(mx53_evk_spi_cs), > > +}; > > + > > static void __init mx53_evk_board_init(void) > > { > > mxc_iomux_v3_setup_multiple_pads(mx53_evk_pads, > > @@ -102,6 +114,8 @@ static void __init mx53_evk_board_init(void) > > > > imx53_add_sdhci_esdhc_imx(0, NULL); > > imx53_add_sdhci_esdhc_imx(1, NULL); > > + > > + imx53_add_ecspi(0, &mx53_evk_spi_data); > > } > > > > static void __init mx53_evk_timer_init(void) > > diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c > > index d0f58a3..a20d0c0 100644 > > --- a/arch/arm/mach-mx5/clock-mx51-mx53.c > > +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c > > @@ -1330,6 +1330,9 @@ static struct clk_lookup mx53_lookups[] = { > > _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) > > _REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk) > > _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk) > > + _REGISTER_CLOCK("imx53-ecspi.0", NULL, ecspi1_clk) > > + _REGISTER_CLOCK("imx53-ecspi.1", NULL, ecspi2_clk) > > + _REGISTER_CLOCK("imx53-cspi.0", NULL, cspi_clk) > maybe this should better go into a seperate patch? (i.e. > > ARM: mx53: add support to dynamically register imx-spi devices Yes. We should not add mix architecture support and board support in a single patch. Sascha -- 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] 9+ messages in thread
* [PATCH 2/3] ARM i.MX53 enable spi on EVK board 2011-01-11 10:43 ` Sascha Hauer @ 2011-01-11 12:12 ` Yong Shen 0 siblings, 0 replies; 9+ messages in thread From: Yong Shen @ 2011-01-11 12:12 UTC (permalink / raw) To: linux-arm-kernel Hi Sascha and Uwe, Your comments are acked. thanks Yong 2011/1/11 Sascha Hauer <s.hauer@pengutronix.de>: > On Tue, Jan 11, 2011 at 10:15:49AM +0100, Uwe Kleine-K?nig wrote: >> Hello, >> >> I'd prefer to have the following subject: >> >> ? ? ? ARM: mx5/mx53_evk: add spi device >> >> On Mon, Jan 10, 2011 at 08:08:53PM +0800, yong.shen at freescale.com wrote: >> > From: Yong Shen <yong.shen@freescale.com> >> > >> > 1. some macro definitions fix >> > 2. add platform data for spi device >> > 3. register spi clocks >> > >> > Signed-off-by: Yong Shen <yong.shen@freescale.com> >> > --- >> > ?arch/arm/mach-mx5/Kconfig ? ? ? ? ? ? ? ? ? ?| ? ?1 + >> > ?arch/arm/mach-mx5/board-mx53_evk.c ? ? ? ? ? | ? 14 ++++++++++++++ >> > ?arch/arm/mach-mx5/clock-mx51-mx53.c ? ? ? ? ?| ? ?3 +++ >> > ?arch/arm/mach-mx5/devices-imx53.h ? ? ? ? ? ?| ? ?4 ++++ >> > ?arch/arm/plat-mxc/devices/platform-spi_imx.c | ? 12 ++++++++++++ >> > ?arch/arm/plat-mxc/include/mach/mx53.h ? ? ? ?| ? 10 +++++----- >> > ?6 files changed, 39 insertions(+), 5 deletions(-) >> > >> > diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig >> > index 23b0e3f..777740b 100644 >> > --- a/arch/arm/mach-mx5/Kconfig >> > +++ b/arch/arm/mach-mx5/Kconfig >> > @@ -126,6 +126,7 @@ config MACH_MX53_EVK >> > ? ? select IMX_HAVE_PLATFORM_IMX_UART >> > ? ? select IMX_HAVE_PLATFORM_IMX_I2C >> > ? ? select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX >> > + ? select IMX_HAVE_PLATFORM_SPI_IMX >> > ? ? help >> > ? ? ? Include support for MX53 EVK platform. This includes specific >> > ? ? ? configurations for the board and its peripherals. >> > diff --git a/arch/arm/mach-mx5/board-mx53_evk.c b/arch/arm/mach-mx5/board-mx53_evk.c >> > index 4043451..8017d68 100644 >> > --- a/arch/arm/mach-mx5/board-mx53_evk.c >> > +++ b/arch/arm/mach-mx5/board-mx53_evk.c >> > @@ -33,6 +33,8 @@ >> > ?#include <mach/iomux-mx53.h> >> > >> > ?#define SMD_FEC_PHY_RST ? ? ? ? ? ?IMX_GPIO_NR(7, 6) >> > +#define EVK_ECSPI1_CS0 ? ? ? ? ? ? IMX_GPIO_NR(3, 19) >> > +#define EVK_ECSPI1_CS1 ? ? ? ? ? ? IMX_GPIO_NR(2, 30) >> > >> > ?#include "crm_regs.h" >> > ?#include "devices-imx53.h" >> > @@ -89,6 +91,16 @@ static struct fec_platform_data mx53_evk_fec_pdata = { >> > ? ? .phy = PHY_INTERFACE_MODE_RMII, >> > ?}; >> > >> > +static int mx53_evk_spi_cs[] = { >> > + ? EVK_ECSPI1_CS0, >> > + ? EVK_ECSPI1_CS1, >> don't you need to setup some pinmuxing to make this work? >> >> > +}; >> > + >> > +static const struct spi_imx_master mx53_evk_spi_data __initconst = { >> > + ? .chipselect ? ? = mx53_evk_spi_cs, >> > + ? .num_chipselect = ARRAY_SIZE(mx53_evk_spi_cs), >> > +}; >> > + >> > ?static void __init mx53_evk_board_init(void) >> > ?{ >> > ? ? mxc_iomux_v3_setup_multiple_pads(mx53_evk_pads, >> > @@ -102,6 +114,8 @@ static void __init mx53_evk_board_init(void) >> > >> > ? ? imx53_add_sdhci_esdhc_imx(0, NULL); >> > ? ? imx53_add_sdhci_esdhc_imx(1, NULL); >> > + >> > + ? imx53_add_ecspi(0, &mx53_evk_spi_data); >> > ?} >> > >> > ?static void __init mx53_evk_timer_init(void) >> > diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c >> > index d0f58a3..a20d0c0 100644 >> > --- a/arch/arm/mach-mx5/clock-mx51-mx53.c >> > +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c >> > @@ -1330,6 +1330,9 @@ static struct clk_lookup mx53_lookups[] = { >> > ? ? _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk) >> > ? ? _REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk) >> > ? ? _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk) >> > + ? _REGISTER_CLOCK("imx53-ecspi.0", NULL, ecspi1_clk) >> > + ? _REGISTER_CLOCK("imx53-ecspi.1", NULL, ecspi2_clk) >> > + ? _REGISTER_CLOCK("imx53-cspi.0", NULL, cspi_clk) >> maybe this should better go into a seperate patch? ?(i.e. >> >> ? ? ? ARM: mx53: add support to dynamically register imx-spi devices > > Yes. We should not add mix architecture support and board support in a > single patch. > > Sascha > > > -- > 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] 9+ messages in thread
* [PATCH 3/3] ARM i.MX5 uart clock bug fix 2011-01-10 12:08 [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support yong.shen at freescale.com 2011-01-10 12:08 ` [PATCH 2/3] ARM i.MX53 enable spi on EVK board yong.shen at freescale.com @ 2011-01-10 12:08 ` yong.shen at freescale.com 2011-01-11 9:06 ` [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support Sascha Hauer 2011-01-11 9:17 ` Uwe Kleine-König 3 siblings, 0 replies; 9+ messages in thread From: yong.shen at freescale.com @ 2011-01-10 12:08 UTC (permalink / raw) To: linux-arm-kernel From: Yong Shen <yong.shen@freescale.com> uart clk is from pll3 on mx53 instead of mx51 Signed-off-by: Yong Shen <yong.shen@freescale.com> --- arch/arm/mach-mx5/clock-mx51-mx53.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index a20d0c0..3fb7ff8 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c @@ -1370,7 +1370,6 @@ int __init mx51_clocks_init(unsigned long ckil, unsigned long osc, clk_tree_init(); - clk_set_parent(&uart_root_clk, &pll3_sw_clk); clk_enable(&cpu_clk); clk_enable(&main_bus_clk); @@ -1413,6 +1412,7 @@ int __init mx53_clocks_init(unsigned long ckil, unsigned long osc, clk_tree_init(); + clk_set_parent(&uart_root_clk, &pll3_sw_clk); clk_enable(&cpu_clk); clk_enable(&main_bus_clk); -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support 2011-01-10 12:08 [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support yong.shen at freescale.com 2011-01-10 12:08 ` [PATCH 2/3] ARM i.MX53 enable spi on EVK board yong.shen at freescale.com 2011-01-10 12:08 ` [PATCH 3/3] ARM i.MX5 uart clock bug fix yong.shen at freescale.com @ 2011-01-11 9:06 ` Sascha Hauer 2011-01-11 9:08 ` Yong Shen 2011-01-11 9:17 ` Uwe Kleine-König 3 siblings, 1 reply; 9+ messages in thread From: Sascha Hauer @ 2011-01-11 9:06 UTC (permalink / raw) To: linux-arm-kernel On Mon, Jan 10, 2011 at 08:08:52PM +0800, yong.shen at freescale.com wrote: > From: Yong Shen <yong.shen@freescale.com> > > 1. Change the Kconfig to include i.MX53 > 2. add devtype entry for i.MX53 > > Signed-off-by: Yong Shen <yong.shen@freescale.com> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> You should send this to the spi-devel list. Sascha > --- > drivers/spi/Kconfig | 4 ++-- > drivers/spi/spi_imx.c | 6 ++++++ > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig > index 78f9fd0..04965e2 100644 > --- a/drivers/spi/Kconfig > +++ b/drivers/spi/Kconfig > @@ -153,10 +153,10 @@ config SPI_IMX_VER_0_4 > def_bool y if ARCH_MX31 > > config SPI_IMX_VER_0_7 > - def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 > + def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 || ARCH_MX53 > > config SPI_IMX_VER_2_3 > - def_bool y if ARCH_MX51 > + def_bool y if ARCH_MX51 || ARCH_MX53 > > config SPI_IMX > tristate "Freescale i.MX SPI controllers" > diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c > index 55a38e2..9b8a733 100644 > --- a/drivers/spi/spi_imx.c > +++ b/drivers/spi/spi_imx.c > @@ -747,6 +747,12 @@ static struct platform_device_id spi_imx_devtype[] = { > .name = "imx51-ecspi", > .driver_data = SPI_IMX_VER_2_3, > }, { > + .name = "imx53-cspi", > + .driver_data = SPI_IMX_VER_0_7, > + }, { > + .name = "imx53-ecspi", > + .driver_data = SPI_IMX_VER_2_3, > + }, { > /* sentinel */ > } > }; > -- > 1.7.1 > > > -- 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] 9+ messages in thread
* [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support 2011-01-11 9:06 ` [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support Sascha Hauer @ 2011-01-11 9:08 ` Yong Shen 0 siblings, 0 replies; 9+ messages in thread From: Yong Shen @ 2011-01-11 9:08 UTC (permalink / raw) To: linux-arm-kernel Thanks, got it. Yong On Tue, Jan 11, 2011 at 5:06 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > On Mon, Jan 10, 2011 at 08:08:52PM +0800, yong.shen at freescale.com wrote: >> From: Yong Shen <yong.shen@freescale.com> >> >> 1. Change the Kconfig to include i.MX53 >> 2. add devtype entry for i.MX53 >> >> Signed-off-by: Yong Shen <yong.shen@freescale.com> > > Acked-by: Sascha Hauer <s.hauer@pengutronix.de> > > You should send this to the spi-devel list. > > Sascha > >> --- >> ?drivers/spi/Kconfig ? | ? ?4 ++-- >> ?drivers/spi/spi_imx.c | ? ?6 ++++++ >> ?2 files changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig >> index 78f9fd0..04965e2 100644 >> --- a/drivers/spi/Kconfig >> +++ b/drivers/spi/Kconfig >> @@ -153,10 +153,10 @@ config SPI_IMX_VER_0_4 >> ? ? ? def_bool y if ARCH_MX31 >> >> ?config SPI_IMX_VER_0_7 >> - ? ? def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 >> + ? ? def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 || ARCH_MX53 >> >> ?config SPI_IMX_VER_2_3 >> - ? ? def_bool y if ARCH_MX51 >> + ? ? def_bool y if ARCH_MX51 || ARCH_MX53 >> >> ?config SPI_IMX >> ? ? ? tristate "Freescale i.MX SPI controllers" >> diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c >> index 55a38e2..9b8a733 100644 >> --- a/drivers/spi/spi_imx.c >> +++ b/drivers/spi/spi_imx.c >> @@ -747,6 +747,12 @@ static struct platform_device_id spi_imx_devtype[] = { >> ? ? ? ? ? ? ? .name = "imx51-ecspi", >> ? ? ? ? ? ? ? .driver_data = SPI_IMX_VER_2_3, >> ? ? ? }, { >> + ? ? ? ? ? ? .name = "imx53-cspi", >> + ? ? ? ? ? ? .driver_data = SPI_IMX_VER_0_7, >> + ? ? }, { >> + ? ? ? ? ? ? .name = "imx53-ecspi", >> + ? ? ? ? ? ? .driver_data = SPI_IMX_VER_2_3, >> + ? ? }, { >> ? ? ? ? ? ? ? /* sentinel */ >> ? ? ? } >> ?}; >> -- >> 1.7.1 >> >> >> > > -- > 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] 9+ messages in thread
* [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support 2011-01-10 12:08 [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support yong.shen at freescale.com ` (2 preceding siblings ...) 2011-01-11 9:06 ` [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support Sascha Hauer @ 2011-01-11 9:17 ` Uwe Kleine-König 3 siblings, 0 replies; 9+ messages in thread From: Uwe Kleine-König @ 2011-01-11 9:17 UTC (permalink / raw) To: linux-arm-kernel On Mon, Jan 10, 2011 at 08:08:52PM +0800, yong.shen at freescale.com wrote: > From: Yong Shen <yong.shen@freescale.com> > > 1. Change the Kconfig to include i.MX53 > 2. add devtype entry for i.MX53 > > Signed-off-by: Yong Shen <yong.shen@freescale.com> Looks good. I'm glad it's that easy to add support for i.MX53. It's quite obvious there are no ifs that were forgotton to adapt. Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> Best regards Uwe > --- > drivers/spi/Kconfig | 4 ++-- > drivers/spi/spi_imx.c | 6 ++++++ > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig > index 78f9fd0..04965e2 100644 > --- a/drivers/spi/Kconfig > +++ b/drivers/spi/Kconfig > @@ -153,10 +153,10 @@ config SPI_IMX_VER_0_4 > def_bool y if ARCH_MX31 > > config SPI_IMX_VER_0_7 > - def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 > + def_bool y if ARCH_MX25 || ARCH_MX35 || ARCH_MX51 || ARCH_MX53 > > config SPI_IMX_VER_2_3 > - def_bool y if ARCH_MX51 > + def_bool y if ARCH_MX51 || ARCH_MX53 > > config SPI_IMX > tristate "Freescale i.MX SPI controllers" > diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c > index 55a38e2..9b8a733 100644 > --- a/drivers/spi/spi_imx.c > +++ b/drivers/spi/spi_imx.c > @@ -747,6 +747,12 @@ static struct platform_device_id spi_imx_devtype[] = { > .name = "imx51-ecspi", > .driver_data = SPI_IMX_VER_2_3, > }, { > + .name = "imx53-cspi", > + .driver_data = SPI_IMX_VER_0_7, > + }, { > + .name = "imx53-ecspi", > + .driver_data = SPI_IMX_VER_2_3, > + }, { > /* sentinel */ > } > }; > -- > 1.7.1 > > > -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-01-11 12:12 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-01-10 12:08 [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support yong.shen at freescale.com 2011-01-10 12:08 ` [PATCH 2/3] ARM i.MX53 enable spi on EVK board yong.shen at freescale.com 2011-01-11 9:15 ` Uwe Kleine-König 2011-01-11 10:43 ` Sascha Hauer 2011-01-11 12:12 ` Yong Shen 2011-01-10 12:08 ` [PATCH 3/3] ARM i.MX5 uart clock bug fix yong.shen at freescale.com 2011-01-11 9:06 ` [PATCH 1/3] ARM i.MX SPI driver changes for i.MX53 support Sascha Hauer 2011-01-11 9:08 ` Yong Shen 2011-01-11 9:17 ` Uwe Kleine-König
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).