diff options
Diffstat (limited to 'arch/arm/mach-omap2/devices.c')
-rw-r--r-- | arch/arm/mach-omap2/devices.c | 56 |
1 files changed, 40 insertions, 16 deletions
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index faf7a1e0c525..733d3dcff98b 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -20,12 +20,12 @@ | |||
20 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
21 | #include <asm/mach/map.h> | 21 | #include <asm/mach/map.h> |
22 | 22 | ||
23 | #include <mach/control.h> | 23 | #include <plat/control.h> |
24 | #include <mach/tc.h> | 24 | #include <plat/tc.h> |
25 | #include <mach/board.h> | 25 | #include <plat/board.h> |
26 | #include <mach/mux.h> | 26 | #include <plat/mux.h> |
27 | #include <mach/gpio.h> | 27 | #include <mach/gpio.h> |
28 | #include <mach/mmc.h> | 28 | #include <plat/mmc.h> |
29 | 29 | ||
30 | #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE) | 30 | #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE) |
31 | 31 | ||
@@ -136,9 +136,10 @@ static inline void omap_init_camera(void) | |||
136 | 136 | ||
137 | #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE) | 137 | #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE) |
138 | 138 | ||
139 | #define MBOX_REG_SIZE 0x120 | 139 | #define MBOX_REG_SIZE 0x120 |
140 | 140 | ||
141 | static struct resource omap2_mbox_resources[] = { | 141 | #ifdef CONFIG_ARCH_OMAP2 |
142 | static struct resource omap_mbox_resources[] = { | ||
142 | { | 143 | { |
143 | .start = OMAP24XX_MAILBOX_BASE, | 144 | .start = OMAP24XX_MAILBOX_BASE, |
144 | .end = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1, | 145 | .end = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1, |
@@ -153,8 +154,10 @@ static struct resource omap2_mbox_resources[] = { | |||
153 | .flags = IORESOURCE_IRQ, | 154 | .flags = IORESOURCE_IRQ, |
154 | }, | 155 | }, |
155 | }; | 156 | }; |
157 | #endif | ||
156 | 158 | ||
157 | static struct resource omap3_mbox_resources[] = { | 159 | #ifdef CONFIG_ARCH_OMAP3 |
160 | static struct resource omap_mbox_resources[] = { | ||
158 | { | 161 | { |
159 | .start = OMAP34XX_MAILBOX_BASE, | 162 | .start = OMAP34XX_MAILBOX_BASE, |
160 | .end = OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1, | 163 | .end = OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1, |
@@ -165,6 +168,24 @@ static struct resource omap3_mbox_resources[] = { | |||
165 | .flags = IORESOURCE_IRQ, | 168 | .flags = IORESOURCE_IRQ, |
166 | }, | 169 | }, |
167 | }; | 170 | }; |
171 | #endif | ||
172 | |||
173 | #ifdef CONFIG_ARCH_OMAP4 | ||
174 | |||
175 | #define OMAP4_MBOX_REG_SIZE 0x130 | ||
176 | static struct resource omap_mbox_resources[] = { | ||
177 | { | ||
178 | .start = OMAP44XX_MAILBOX_BASE, | ||
179 | .end = OMAP44XX_MAILBOX_BASE + | ||
180 | OMAP4_MBOX_REG_SIZE - 1, | ||
181 | .flags = IORESOURCE_MEM, | ||
182 | }, | ||
183 | { | ||
184 | .start = INT_44XX_MAIL_U0_MPU, | ||
185 | .flags = IORESOURCE_IRQ, | ||
186 | }, | ||
187 | }; | ||
188 | #endif | ||
168 | 189 | ||
169 | static struct platform_device mbox_device = { | 190 | static struct platform_device mbox_device = { |
170 | .name = "omap2-mailbox", | 191 | .name = "omap2-mailbox", |
@@ -173,12 +194,9 @@ static struct platform_device mbox_device = { | |||
173 | 194 | ||
174 | static inline void omap_init_mbox(void) | 195 | static inline void omap_init_mbox(void) |
175 | { | 196 | { |
176 | if (cpu_is_omap2420()) { | 197 | if (cpu_is_omap2420() || cpu_is_omap3430() || cpu_is_omap44xx()) { |
177 | mbox_device.num_resources = ARRAY_SIZE(omap2_mbox_resources); | 198 | mbox_device.num_resources = ARRAY_SIZE(omap_mbox_resources); |
178 | mbox_device.resource = omap2_mbox_resources; | 199 | mbox_device.resource = omap_mbox_resources; |
179 | } else if (cpu_is_omap3430()) { | ||
180 | mbox_device.num_resources = ARRAY_SIZE(omap3_mbox_resources); | ||
181 | mbox_device.resource = omap3_mbox_resources; | ||
182 | } else { | 200 | } else { |
183 | pr_err("%s: platform not supported\n", __func__); | 201 | pr_err("%s: platform not supported\n", __func__); |
184 | return; | 202 | return; |
@@ -250,7 +268,7 @@ static inline void omap_init_sti(void) {} | |||
250 | 268 | ||
251 | #if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE) | 269 | #if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE) |
252 | 270 | ||
253 | #include <mach/mcspi.h> | 271 | #include <plat/mcspi.h> |
254 | 272 | ||
255 | #define OMAP2_MCSPI1_BASE 0x48098000 | 273 | #define OMAP2_MCSPI1_BASE 0x48098000 |
256 | #define OMAP2_MCSPI2_BASE 0x4809a000 | 274 | #define OMAP2_MCSPI2_BASE 0x4809a000 |
@@ -575,7 +593,7 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller, | |||
575 | } | 593 | } |
576 | } | 594 | } |
577 | 595 | ||
578 | if (cpu_is_omap3430()) { | 596 | if (cpu_is_omap34xx()) { |
579 | if (controller_nr == 0) { | 597 | if (controller_nr == 0) { |
580 | omap_cfg_reg(N28_3430_MMC1_CLK); | 598 | omap_cfg_reg(N28_3430_MMC1_CLK); |
581 | omap_cfg_reg(M27_3430_MMC1_CMD); | 599 | omap_cfg_reg(M27_3430_MMC1_CMD); |
@@ -609,6 +627,12 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller, | |||
609 | omap_cfg_reg(AG4_3430_MMC2_DAT2); | 627 | omap_cfg_reg(AG4_3430_MMC2_DAT2); |
610 | omap_cfg_reg(AF4_3430_MMC2_DAT3); | 628 | omap_cfg_reg(AF4_3430_MMC2_DAT3); |
611 | } | 629 | } |
630 | if (mmc_controller->slots[0].wires == 8) { | ||
631 | omap_cfg_reg(AE4_3430_MMC2_DAT4); | ||
632 | omap_cfg_reg(AH3_3430_MMC2_DAT5); | ||
633 | omap_cfg_reg(AF3_3430_MMC2_DAT6); | ||
634 | omap_cfg_reg(AE3_3430_MMC2_DAT7); | ||
635 | } | ||
612 | } | 636 | } |
613 | 637 | ||
614 | /* | 638 | /* |