diff options
Diffstat (limited to 'arch/arm/mach-mxs')
-rw-r--r-- | arch/arm/mach-mxs/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-mxs/clock-mx28.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices-mx23.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices-mx28.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices/platform-mxs-saif.c | 60 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c | 51 | ||||
-rw-r--r-- | arch/arm/mach-mxs/include/mach/devices-common.h | 12 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-mx23evk.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-mx28evk.c | 80 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-stmp378x_devb.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-tx28.c | 1 |
13 files changed, 233 insertions, 2 deletions
diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig index ea5ec0f3b5b1..cf00b3e3be85 100644 --- a/arch/arm/mach-mxs/Kconfig +++ b/arch/arm/mach-mxs/Kconfig | |||
@@ -23,6 +23,7 @@ config MACH_STMP378X_DEVB | |||
23 | select MXS_HAVE_AMBA_DUART | 23 | select MXS_HAVE_AMBA_DUART |
24 | select MXS_HAVE_PLATFORM_AUART | 24 | select MXS_HAVE_PLATFORM_AUART |
25 | select MXS_HAVE_PLATFORM_MXS_MMC | 25 | select MXS_HAVE_PLATFORM_MXS_MMC |
26 | select MXS_HAVE_PLATFORM_RTC_STMP3XXX | ||
26 | help | 27 | help |
27 | Include support for STMP378x-devb platform. This includes specific | 28 | Include support for STMP378x-devb platform. This includes specific |
28 | configurations for the board and its peripherals. | 29 | configurations for the board and its peripherals. |
@@ -34,6 +35,7 @@ config MACH_MX23EVK | |||
34 | select MXS_HAVE_PLATFORM_AUART | 35 | select MXS_HAVE_PLATFORM_AUART |
35 | select MXS_HAVE_PLATFORM_MXS_MMC | 36 | select MXS_HAVE_PLATFORM_MXS_MMC |
36 | select MXS_HAVE_PLATFORM_MXSFB | 37 | select MXS_HAVE_PLATFORM_MXSFB |
38 | select MXS_HAVE_PLATFORM_RTC_STMP3XXX | ||
37 | help | 39 | help |
38 | Include support for MX23EVK platform. This includes specific | 40 | Include support for MX23EVK platform. This includes specific |
39 | configurations for the board and its peripherals. | 41 | configurations for the board and its peripherals. |
@@ -48,6 +50,9 @@ config MACH_MX28EVK | |||
48 | select MXS_HAVE_PLATFORM_FLEXCAN | 50 | select MXS_HAVE_PLATFORM_FLEXCAN |
49 | select MXS_HAVE_PLATFORM_MXS_MMC | 51 | select MXS_HAVE_PLATFORM_MXS_MMC |
50 | select MXS_HAVE_PLATFORM_MXSFB | 52 | select MXS_HAVE_PLATFORM_MXSFB |
53 | select MXS_HAVE_PLATFORM_MXS_SAIF | ||
54 | select MXS_HAVE_PLATFORM_MXS_I2C | ||
55 | select MXS_HAVE_PLATFORM_RTC_STMP3XXX | ||
51 | select MXS_OCOTP | 56 | select MXS_OCOTP |
52 | help | 57 | help |
53 | Include support for MX28EVK platform. This includes specific | 58 | Include support for MX28EVK platform. This includes specific |
@@ -63,6 +68,7 @@ config MODULE_TX28 | |||
63 | select MXS_HAVE_PLATFORM_MXS_I2C | 68 | select MXS_HAVE_PLATFORM_MXS_I2C |
64 | select MXS_HAVE_PLATFORM_MXS_MMC | 69 | select MXS_HAVE_PLATFORM_MXS_MMC |
65 | select MXS_HAVE_PLATFORM_MXS_PWM | 70 | select MXS_HAVE_PLATFORM_MXS_PWM |
71 | select MXS_HAVE_PLATFORM_RTC_STMP3XXX | ||
66 | 72 | ||
67 | config MODULE_M28 | 73 | config MODULE_M28 |
68 | bool | 74 | bool |
diff --git a/arch/arm/mach-mxs/clock-mx28.c b/arch/arm/mach-mxs/clock-mx28.c index 7fa1ac4de7d8..229ae3494216 100644 --- a/arch/arm/mach-mxs/clock-mx28.c +++ b/arch/arm/mach-mxs/clock-mx28.c | |||
@@ -640,6 +640,8 @@ static struct clk_lookup lookups[] = { | |||
640 | _REGISTER_CLOCK(NULL, "lradc", lradc_clk) | 640 | _REGISTER_CLOCK(NULL, "lradc", lradc_clk) |
641 | _REGISTER_CLOCK(NULL, "spdif", spdif_clk) | 641 | _REGISTER_CLOCK(NULL, "spdif", spdif_clk) |
642 | _REGISTER_CLOCK("imx28-fb", NULL, lcdif_clk) | 642 | _REGISTER_CLOCK("imx28-fb", NULL, lcdif_clk) |
643 | _REGISTER_CLOCK("mxs-saif.0", NULL, saif0_clk) | ||
644 | _REGISTER_CLOCK("mxs-saif.1", NULL, saif1_clk) | ||
643 | }; | 645 | }; |
644 | 646 | ||
645 | static int clk_misc_init(void) | 647 | static int clk_misc_init(void) |
@@ -708,11 +710,11 @@ static int clk_misc_init(void) | |||
708 | 710 | ||
709 | /* SAIF has to use frac div for functional operation */ | 711 | /* SAIF has to use frac div for functional operation */ |
710 | reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF0); | 712 | reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF0); |
711 | reg &= ~BM_CLKCTRL_SAIF0_DIV_FRAC_EN; | 713 | reg |= BM_CLKCTRL_SAIF0_DIV_FRAC_EN; |
712 | __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF0); | 714 | __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF0); |
713 | 715 | ||
714 | reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF1); | 716 | reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF1); |
715 | reg &= ~BM_CLKCTRL_SAIF1_DIV_FRAC_EN; | 717 | reg |= BM_CLKCTRL_SAIF1_DIV_FRAC_EN; |
716 | __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF1); | 718 | __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_SAIF1); |
717 | 719 | ||
718 | /* | 720 | /* |
@@ -780,6 +782,8 @@ int __init mx28_clocks_init(void) | |||
780 | clk_enable(&uart_clk); | 782 | clk_enable(&uart_clk); |
781 | 783 | ||
782 | clk_set_parent(&lcdif_clk, &ref_pix_clk); | 784 | clk_set_parent(&lcdif_clk, &ref_pix_clk); |
785 | clk_set_parent(&saif0_clk, &pll0_clk); | ||
786 | clk_set_parent(&saif1_clk, &pll0_clk); | ||
783 | 787 | ||
784 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | 788 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); |
785 | 789 | ||
diff --git a/arch/arm/mach-mxs/devices-mx23.h b/arch/arm/mach-mxs/devices-mx23.h index c6f345febd39..3fa651d2c994 100644 --- a/arch/arm/mach-mxs/devices-mx23.h +++ b/arch/arm/mach-mxs/devices-mx23.h | |||
@@ -29,3 +29,5 @@ extern const struct mxs_mxs_mmc_data mx23_mxs_mmc_data[] __initconst; | |||
29 | 29 | ||
30 | struct platform_device *__init mx23_add_mxsfb( | 30 | struct platform_device *__init mx23_add_mxsfb( |
31 | const struct mxsfb_platform_data *pdata); | 31 | const struct mxsfb_platform_data *pdata); |
32 | |||
33 | struct platform_device *__init mx23_add_rtc_stmp3xxx(void); | ||
diff --git a/arch/arm/mach-mxs/devices-mx28.h b/arch/arm/mach-mxs/devices-mx28.h index 79b94523954a..c8887103f0e3 100644 --- a/arch/arm/mach-mxs/devices-mx28.h +++ b/arch/arm/mach-mxs/devices-mx28.h | |||
@@ -45,3 +45,8 @@ extern const struct mxs_mxs_mmc_data mx28_mxs_mmc_data[] __initconst; | |||
45 | 45 | ||
46 | struct platform_device *__init mx28_add_mxsfb( | 46 | struct platform_device *__init mx28_add_mxsfb( |
47 | const struct mxsfb_platform_data *pdata); | 47 | const struct mxsfb_platform_data *pdata); |
48 | |||
49 | extern const struct mxs_saif_data mx28_saif_data[] __initconst; | ||
50 | #define mx28_add_saif(id) mxs_add_saif(&mx28_saif_data[id]) | ||
51 | |||
52 | struct platform_device *__init mx28_add_rtc_stmp3xxx(void); | ||
diff --git a/arch/arm/mach-mxs/devices/Kconfig b/arch/arm/mach-mxs/devices/Kconfig index acf9eea124c0..18b6bf526a27 100644 --- a/arch/arm/mach-mxs/devices/Kconfig +++ b/arch/arm/mach-mxs/devices/Kconfig | |||
@@ -23,3 +23,9 @@ config MXS_HAVE_PLATFORM_MXS_PWM | |||
23 | 23 | ||
24 | config MXS_HAVE_PLATFORM_MXSFB | 24 | config MXS_HAVE_PLATFORM_MXSFB |
25 | bool | 25 | bool |
26 | |||
27 | config MXS_HAVE_PLATFORM_MXS_SAIF | ||
28 | bool | ||
29 | |||
30 | config MXS_HAVE_PLATFORM_RTC_STMP3XXX | ||
31 | bool | ||
diff --git a/arch/arm/mach-mxs/devices/Makefile b/arch/arm/mach-mxs/devices/Makefile index 351915c683ff..f52e3e53baec 100644 --- a/arch/arm/mach-mxs/devices/Makefile +++ b/arch/arm/mach-mxs/devices/Makefile | |||
@@ -8,3 +8,5 @@ obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_MMC) += platform-mxs-mmc.o | |||
8 | obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_PWM) += platform-mxs-pwm.o | 8 | obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_PWM) += platform-mxs-pwm.o |
9 | obj-y += platform-gpio-mxs.o | 9 | obj-y += platform-gpio-mxs.o |
10 | obj-$(CONFIG_MXS_HAVE_PLATFORM_MXSFB) += platform-mxsfb.o | 10 | obj-$(CONFIG_MXS_HAVE_PLATFORM_MXSFB) += platform-mxsfb.o |
11 | obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_SAIF) += platform-mxs-saif.o | ||
12 | obj-$(CONFIG_MXS_HAVE_PLATFORM_RTC_STMP3XXX) += platform-rtc-stmp3xxx.o | ||
diff --git a/arch/arm/mach-mxs/devices/platform-mxs-saif.c b/arch/arm/mach-mxs/devices/platform-mxs-saif.c new file mode 100644 index 000000000000..1ec965e9fe92 --- /dev/null +++ b/arch/arm/mach-mxs/devices/platform-mxs-saif.c | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it under | ||
5 | * the terms of the GNU General Public License version 2 as published by the | ||
6 | * Free Software Foundation. | ||
7 | */ | ||
8 | #include <linux/compiler.h> | ||
9 | #include <linux/err.h> | ||
10 | #include <linux/init.h> | ||
11 | |||
12 | #include <mach/mx23.h> | ||
13 | #include <mach/mx28.h> | ||
14 | #include <mach/devices-common.h> | ||
15 | |||
16 | #define mxs_saif_data_entry_single(soc, _id) \ | ||
17 | { \ | ||
18 | .id = _id, \ | ||
19 | .iobase = soc ## _SAIF ## _id ## _BASE_ADDR, \ | ||
20 | .irq = soc ## _INT_SAIF ## _id, \ | ||
21 | .dma = soc ## _DMA_SAIF ## _id, \ | ||
22 | .dmairq = soc ## _INT_SAIF ## _id ##_DMA, \ | ||
23 | } | ||
24 | |||
25 | #define mxs_saif_data_entry(soc, _id) \ | ||
26 | [_id] = mxs_saif_data_entry_single(soc, _id) | ||
27 | |||
28 | #ifdef CONFIG_SOC_IMX28 | ||
29 | const struct mxs_saif_data mx28_saif_data[] __initconst = { | ||
30 | mxs_saif_data_entry(MX28, 0), | ||
31 | mxs_saif_data_entry(MX28, 1), | ||
32 | }; | ||
33 | #endif | ||
34 | |||
35 | struct platform_device *__init mxs_add_saif(const struct mxs_saif_data *data) | ||
36 | { | ||
37 | struct resource res[] = { | ||
38 | { | ||
39 | .start = data->iobase, | ||
40 | .end = data->iobase + SZ_4K - 1, | ||
41 | .flags = IORESOURCE_MEM, | ||
42 | }, { | ||
43 | .start = data->irq, | ||
44 | .end = data->irq, | ||
45 | .flags = IORESOURCE_IRQ, | ||
46 | }, { | ||
47 | .start = data->dma, | ||
48 | .end = data->dma, | ||
49 | .flags = IORESOURCE_DMA, | ||
50 | }, { | ||
51 | .start = data->dmairq, | ||
52 | .end = data->dmairq, | ||
53 | .flags = IORESOURCE_IRQ, | ||
54 | }, | ||
55 | |||
56 | }; | ||
57 | |||
58 | return mxs_add_platform_device("mxs-saif", data->id, res, | ||
59 | ARRAY_SIZE(res), NULL, 0); | ||
60 | } | ||
diff --git a/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c b/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c new file mode 100644 index 000000000000..639eaee15553 --- /dev/null +++ b/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Pengutronix, Wolfram Sang <w.sang@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it under | ||
5 | * the terms of the GNU General Public License version 2 as published by the | ||
6 | * Free Software Foundation. | ||
7 | */ | ||
8 | #include <asm/sizes.h> | ||
9 | #include <mach/mx23.h> | ||
10 | #include <mach/mx28.h> | ||
11 | #include <mach/devices-common.h> | ||
12 | |||
13 | #ifdef CONFIG_SOC_IMX23 | ||
14 | struct platform_device *__init mx23_add_rtc_stmp3xxx(void) | ||
15 | { | ||
16 | struct resource res[] = { | ||
17 | { | ||
18 | .start = MX23_RTC_BASE_ADDR, | ||
19 | .end = MX23_RTC_BASE_ADDR + SZ_8K - 1, | ||
20 | .flags = IORESOURCE_MEM, | ||
21 | }, { | ||
22 | .start = MX23_INT_RTC_ALARM, | ||
23 | .end = MX23_INT_RTC_ALARM, | ||
24 | .flags = IORESOURCE_IRQ, | ||
25 | }, | ||
26 | }; | ||
27 | |||
28 | return mxs_add_platform_device("stmp3xxx-rtc", 0, res, ARRAY_SIZE(res), | ||
29 | NULL, 0); | ||
30 | } | ||
31 | #endif /* CONFIG_SOC_IMX23 */ | ||
32 | |||
33 | #ifdef CONFIG_SOC_IMX28 | ||
34 | struct platform_device *__init mx28_add_rtc_stmp3xxx(void) | ||
35 | { | ||
36 | struct resource res[] = { | ||
37 | { | ||
38 | .start = MX28_RTC_BASE_ADDR, | ||
39 | .end = MX28_RTC_BASE_ADDR + SZ_8K - 1, | ||
40 | .flags = IORESOURCE_MEM, | ||
41 | }, { | ||
42 | .start = MX28_INT_RTC_ALARM, | ||
43 | .end = MX28_INT_RTC_ALARM, | ||
44 | .flags = IORESOURCE_IRQ, | ||
45 | }, | ||
46 | }; | ||
47 | |||
48 | return mxs_add_platform_device("stmp3xxx-rtc", 0, res, ARRAY_SIZE(res), | ||
49 | NULL, 0); | ||
50 | } | ||
51 | #endif /* CONFIG_SOC_IMX28 */ | ||
diff --git a/arch/arm/mach-mxs/include/mach/devices-common.h b/arch/arm/mach-mxs/include/mach/devices-common.h index 812d7a813a78..a8080f44c03d 100644 --- a/arch/arm/mach-mxs/include/mach/devices-common.h +++ b/arch/arm/mach-mxs/include/mach/devices-common.h | |||
@@ -92,3 +92,15 @@ struct platform_device *__init mxs_add_mxs_mmc( | |||
92 | /* pwm */ | 92 | /* pwm */ |
93 | struct platform_device *__init mxs_add_mxs_pwm( | 93 | struct platform_device *__init mxs_add_mxs_pwm( |
94 | resource_size_t iobase, int id); | 94 | resource_size_t iobase, int id); |
95 | |||
96 | /* saif */ | ||
97 | struct mxs_saif_data { | ||
98 | int id; | ||
99 | resource_size_t iobase; | ||
100 | resource_size_t irq; | ||
101 | resource_size_t dma; | ||
102 | resource_size_t dmairq; | ||
103 | }; | ||
104 | |||
105 | struct platform_device *__init mxs_add_saif( | ||
106 | const struct mxs_saif_data *data); | ||
diff --git a/arch/arm/mach-mxs/mach-mx23evk.c b/arch/arm/mach-mxs/mach-mx23evk.c index 69e218de536e..c325fbe4e4c6 100644 --- a/arch/arm/mach-mxs/mach-mx23evk.c +++ b/arch/arm/mach-mxs/mach-mx23evk.c | |||
@@ -166,6 +166,7 @@ static void __init mx23evk_init(void) | |||
166 | gpio_set_value(MX23EVK_BL_ENABLE, 1); | 166 | gpio_set_value(MX23EVK_BL_ENABLE, 1); |
167 | 167 | ||
168 | mx23_add_mxsfb(&mx23evk_mxsfb_pdata); | 168 | mx23_add_mxsfb(&mx23evk_mxsfb_pdata); |
169 | mx23_add_rtc_stmp3xxx(); | ||
169 | } | 170 | } |
170 | 171 | ||
171 | static void __init mx23evk_timer_init(void) | 172 | static void __init mx23evk_timer_init(void) |
diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c index 0173c3bce4ef..ac2316d53d3c 100644 --- a/arch/arm/mach-mxs/mach-mx28evk.c +++ b/arch/arm/mach-mxs/mach-mx28evk.c | |||
@@ -17,6 +17,9 @@ | |||
17 | #include <linux/gpio.h> | 17 | #include <linux/gpio.h> |
18 | #include <linux/leds.h> | 18 | #include <linux/leds.h> |
19 | #include <linux/clk.h> | 19 | #include <linux/clk.h> |
20 | #include <linux/i2c.h> | ||
21 | #include <linux/regulator/machine.h> | ||
22 | #include <linux/regulator/fixed.h> | ||
20 | 23 | ||
21 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
22 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -182,6 +185,24 @@ static const iomux_cfg_t mx28evk_pads[] __initconst = { | |||
182 | 185 | ||
183 | /* led */ | 186 | /* led */ |
184 | MX28_PAD_AUART1_TX__GPIO_3_5 | MXS_PAD_CTRL, | 187 | MX28_PAD_AUART1_TX__GPIO_3_5 | MXS_PAD_CTRL, |
188 | |||
189 | /* I2C */ | ||
190 | MX28_PAD_I2C0_SCL__I2C0_SCL | | ||
191 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
192 | MX28_PAD_I2C0_SDA__I2C0_SDA | | ||
193 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
194 | |||
195 | /* saif0 & saif1 */ | ||
196 | MX28_PAD_SAIF0_MCLK__SAIF0_MCLK | | ||
197 | (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
198 | MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK | | ||
199 | (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
200 | MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK | | ||
201 | (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
202 | MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 | | ||
203 | (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
204 | MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 | | ||
205 | (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
185 | }; | 206 | }; |
186 | 207 | ||
187 | /* led */ | 208 | /* led */ |
@@ -351,6 +372,50 @@ static struct mxs_mmc_platform_data mx28evk_mmc_pdata[] __initdata = { | |||
351 | }, | 372 | }, |
352 | }; | 373 | }; |
353 | 374 | ||
375 | static struct i2c_board_info mxs_i2c0_board_info[] __initdata = { | ||
376 | { | ||
377 | I2C_BOARD_INFO("sgtl5000", 0x0a), | ||
378 | }, | ||
379 | }; | ||
380 | |||
381 | #if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE) | ||
382 | static struct regulator_consumer_supply mx28evk_audio_consumer_supplies[] = { | ||
383 | REGULATOR_SUPPLY("VDDA", "0-000a"), | ||
384 | REGULATOR_SUPPLY("VDDIO", "0-000a"), | ||
385 | }; | ||
386 | |||
387 | static struct regulator_init_data mx28evk_vdd_reg_init_data = { | ||
388 | .constraints = { | ||
389 | .name = "3V3", | ||
390 | .always_on = 1, | ||
391 | }, | ||
392 | .consumer_supplies = mx28evk_audio_consumer_supplies, | ||
393 | .num_consumer_supplies = ARRAY_SIZE(mx28evk_audio_consumer_supplies), | ||
394 | }; | ||
395 | |||
396 | static struct fixed_voltage_config mx28evk_vdd_pdata = { | ||
397 | .supply_name = "board-3V3", | ||
398 | .microvolts = 3300000, | ||
399 | .gpio = -EINVAL, | ||
400 | .enabled_at_boot = 1, | ||
401 | .init_data = &mx28evk_vdd_reg_init_data, | ||
402 | }; | ||
403 | static struct platform_device mx28evk_voltage_regulator = { | ||
404 | .name = "reg-fixed-voltage", | ||
405 | .id = -1, | ||
406 | .num_resources = 0, | ||
407 | .dev = { | ||
408 | .platform_data = &mx28evk_vdd_pdata, | ||
409 | }, | ||
410 | }; | ||
411 | static void __init mx28evk_add_regulators(void) | ||
412 | { | ||
413 | platform_device_register(&mx28evk_voltage_regulator); | ||
414 | } | ||
415 | #else | ||
416 | static void __init mx28evk_add_regulators(void) {} | ||
417 | #endif | ||
418 | |||
354 | static struct gpio mx28evk_lcd_gpios[] = { | 419 | static struct gpio mx28evk_lcd_gpios[] = { |
355 | { MX28EVK_LCD_ENABLE, GPIOF_OUT_INIT_HIGH, "lcd-enable" }, | 420 | { MX28EVK_LCD_ENABLE, GPIOF_OUT_INIT_HIGH, "lcd-enable" }, |
356 | { MX28EVK_BL_ENABLE, GPIOF_OUT_INIT_HIGH, "bl-enable" }, | 421 | { MX28EVK_BL_ENABLE, GPIOF_OUT_INIT_HIGH, "bl-enable" }, |
@@ -389,6 +454,18 @@ static void __init mx28evk_init(void) | |||
389 | else | 454 | else |
390 | mx28_add_mxsfb(&mx28evk_mxsfb_pdata); | 455 | mx28_add_mxsfb(&mx28evk_mxsfb_pdata); |
391 | 456 | ||
457 | mx28_add_saif(0); | ||
458 | mx28_add_saif(1); | ||
459 | |||
460 | mx28_add_mxs_i2c(0); | ||
461 | i2c_register_board_info(0, mxs_i2c0_board_info, | ||
462 | ARRAY_SIZE(mxs_i2c0_board_info)); | ||
463 | |||
464 | mx28evk_add_regulators(); | ||
465 | |||
466 | mxs_add_platform_device("mxs-sgtl5000", 0, NULL, 0, | ||
467 | NULL, 0); | ||
468 | |||
392 | /* power on mmc slot by writing 0 to the gpio */ | 469 | /* power on mmc slot by writing 0 to the gpio */ |
393 | ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW, | 470 | ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW, |
394 | "mmc0-slot-power"); | 471 | "mmc0-slot-power"); |
@@ -403,6 +480,9 @@ static void __init mx28evk_init(void) | |||
403 | else | 480 | else |
404 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); | 481 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); |
405 | 482 | ||
483 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); | ||
484 | mx28_add_rtc_stmp3xxx(); | ||
485 | |||
406 | gpio_led_register_device(0, &mx28evk_led_data); | 486 | gpio_led_register_device(0, &mx28evk_led_data); |
407 | } | 487 | } |
408 | 488 | ||
diff --git a/arch/arm/mach-mxs/mach-stmp378x_devb.c b/arch/arm/mach-mxs/mach-stmp378x_devb.c index 3fe5dd532145..177e53123a02 100644 --- a/arch/arm/mach-mxs/mach-stmp378x_devb.c +++ b/arch/arm/mach-mxs/mach-stmp378x_devb.c | |||
@@ -90,6 +90,7 @@ static void __init stmp378x_dvb_init(void) | |||
90 | 90 | ||
91 | mx23_add_duart(); | 91 | mx23_add_duart(); |
92 | mx23_add_auart0(); | 92 | mx23_add_auart0(); |
93 | mx23_add_rtc_stmp3xxx(); | ||
93 | 94 | ||
94 | /* power on mmc slot */ | 95 | /* power on mmc slot */ |
95 | ret = gpio_request_one(STMP378X_DEVB_MMC0_SLOT_POWER, | 96 | ret = gpio_request_one(STMP378X_DEVB_MMC0_SLOT_POWER, |
diff --git a/arch/arm/mach-mxs/mach-tx28.c b/arch/arm/mach-mxs/mach-tx28.c index 955593806fd2..9a1f0e7a338e 100644 --- a/arch/arm/mach-mxs/mach-tx28.c +++ b/arch/arm/mach-mxs/mach-tx28.c | |||
@@ -161,6 +161,7 @@ static void __init tx28_stk5v3_init(void) | |||
161 | i2c_register_board_info(0, tx28_stk5v3_i2c_boardinfo, | 161 | i2c_register_board_info(0, tx28_stk5v3_i2c_boardinfo, |
162 | ARRAY_SIZE(tx28_stk5v3_i2c_boardinfo)); | 162 | ARRAY_SIZE(tx28_stk5v3_i2c_boardinfo)); |
163 | mx28_add_mxs_mmc(0, &tx28_mmc0_pdata); | 163 | mx28_add_mxs_mmc(0, &tx28_mmc0_pdata); |
164 | mx28_add_rtc_stmp3xxx(); | ||
164 | } | 165 | } |
165 | 166 | ||
166 | static void __init tx28_timer_init(void) | 167 | static void __init tx28_timer_init(void) |