aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong Shen <yong.shen@freescale.com>2011-01-06 23:25:33 -0500
committerSascha Hauer <s.hauer@pengutronix.de>2011-01-07 09:20:53 -0500
commit0d7671ee66964760a718aa6d0277453b02a2c9b3 (patch)
tree3d15add1376f1866fc4e6fcf8011f7d6e017457c
parent639047677b2fc931d6874807a7b596a236071015 (diff)
ARM i.MX53 enable i2c on EVK board
add i2c platform data and clock Signed-off-by: Yong Shen <yong.shen@freescale.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-mx5/Kconfig1
-rw-r--r--arch/arm/mach-mx5/board-mx53_evk.c7
-rw-r--r--arch/arm/mach-mx5/clock-mx51-mx53.c2
-rw-r--r--arch/arm/mach-mx5/devices-imx53.h5
-rw-r--r--arch/arm/plat-mxc/devices/platform-imx-i2c.c9
5 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
index 55254b6e9460..632d711f1925 100644
--- a/arch/arm/mach-mx5/Kconfig
+++ b/arch/arm/mach-mx5/Kconfig
@@ -124,6 +124,7 @@ config MACH_MX53_EVK
124 bool "Support MX53 EVK platforms" 124 bool "Support MX53 EVK platforms"
125 select SOC_IMX53 125 select SOC_IMX53
126 select IMX_HAVE_PLATFORM_IMX_UART 126 select IMX_HAVE_PLATFORM_IMX_UART
127 select IMX_HAVE_PLATFORM_IMX_I2C
127 help 128 help
128 Include support for MX53 EVK platform. This includes specific 129 Include support for MX53 EVK platform. This includes specific
129 configurations for the board and its peripherals. 130 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 8a744ae09f6f..d0b4570f44ee 100644
--- a/arch/arm/mach-mx5/board-mx53_evk.c
+++ b/arch/arm/mach-mx5/board-mx53_evk.c
@@ -65,6 +65,10 @@ static inline void mx53_evk_init_uart(void)
65 imx53_add_imx_uart(2, &mx53_evk_uart_pdata); 65 imx53_add_imx_uart(2, &mx53_evk_uart_pdata);
66} 66}
67 67
68static const struct imxi2c_platform_data mx53_evk_i2c_data __initconst = {
69 .bitrate = 100000,
70};
71
68static inline void mx53_evk_fec_reset(void) 72static inline void mx53_evk_fec_reset(void)
69{ 73{
70 int ret; 74 int ret;
@@ -92,6 +96,9 @@ static void __init mx53_evk_board_init(void)
92 mx53_evk_init_uart(); 96 mx53_evk_init_uart();
93 mx53_evk_fec_reset(); 97 mx53_evk_fec_reset();
94 imx53_add_fec(&mx53_evk_fec_pdata); 98 imx53_add_fec(&mx53_evk_fec_pdata);
99
100 imx53_add_imx_i2c(0, &mx53_evk_i2c_data);
101 imx53_add_imx_i2c(1, &mx53_evk_i2c_data);
95} 102}
96 103
97static void __init mx53_evk_timer_init(void) 104static 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 b21bc47d4827..0ade3c4cc6c5 100644
--- a/arch/arm/mach-mx5/clock-mx51-mx53.c
+++ b/arch/arm/mach-mx5/clock-mx51-mx53.c
@@ -1326,6 +1326,8 @@ static struct clk_lookup mx53_lookups[] = {
1326 _REGISTER_CLOCK(NULL, "gpt", gpt_clk) 1326 _REGISTER_CLOCK(NULL, "gpt", gpt_clk)
1327 _REGISTER_CLOCK("fec.0", NULL, fec_clk) 1327 _REGISTER_CLOCK("fec.0", NULL, fec_clk)
1328 _REGISTER_CLOCK(NULL, "iim_clk", iim_clk) 1328 _REGISTER_CLOCK(NULL, "iim_clk", iim_clk)
1329 _REGISTER_CLOCK("imx-i2c.0", NULL, i2c1_clk)
1330 _REGISTER_CLOCK("imx-i2c.1", NULL, i2c2_clk)
1329}; 1331};
1330 1332
1331static void clk_tree_init(void) 1333static void clk_tree_init(void)
diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h
index dbf1989b451d..ca1232bcedeb 100644
--- a/arch/arm/mach-mx5/devices-imx53.h
+++ b/arch/arm/mach-mx5/devices-imx53.h
@@ -15,3 +15,8 @@ extern const struct imx_fec_data imx53_fec_data __initconst;
15extern const struct imx_imx_uart_1irq_data imx53_imx_uart_data[] __initconst; 15extern const struct imx_imx_uart_1irq_data imx53_imx_uart_data[] __initconst;
16#define imx53_add_imx_uart(id, pdata) \ 16#define imx53_add_imx_uart(id, pdata) \
17 imx_add_imx_uart_1irq(&imx53_imx_uart_data[id], pdata) 17 imx_add_imx_uart_1irq(&imx53_imx_uart_data[id], pdata)
18
19
20extern const struct imx_imx_i2c_data imx53_imx_i2c_data[] __initconst;
21#define imx53_add_imx_i2c(id, pdata) \
22 imx_add_imx_i2c(&imx53_imx_i2c_data[id], pdata)
diff --git a/arch/arm/plat-mxc/devices/platform-imx-i2c.c b/arch/arm/plat-mxc/devices/platform-imx-i2c.c
index 72ba880c75af..7ba94e1bbda3 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-i2c.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-i2c.c
@@ -78,6 +78,15 @@ const struct imx_imx_i2c_data imx51_imx_i2c_data[] __initconst = {
78}; 78};
79#endif /* ifdef CONFIG_SOC_IMX51 */ 79#endif /* ifdef CONFIG_SOC_IMX51 */
80 80
81#ifdef CONFIG_SOC_IMX53
82const struct imx_imx_i2c_data imx53_imx_i2c_data[] __initconst = {
83#define imx53_imx_i2c_data_entry(_id, _hwid) \
84 imx_imx_i2c_data_entry(MX53, _id, _hwid, SZ_4K)
85 imx53_imx_i2c_data_entry(0, 1),
86 imx53_imx_i2c_data_entry(1, 2),
87};
88#endif /* ifdef CONFIG_SOC_IMX51 */
89
81struct platform_device *__init imx_add_imx_i2c( 90struct platform_device *__init imx_add_imx_i2c(
82 const struct imx_imx_i2c_data *data, 91 const struct imx_imx_i2c_data *data,
83 const struct imxi2c_platform_data *pdata) 92 const struct imxi2c_platform_data *pdata)