aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/devices.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/devices.c')
-rw-r--r--arch/arm/mach-omap2/devices.c56
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
141static struct resource omap2_mbox_resources[] = { 141#ifdef CONFIG_ARCH_OMAP2
142static 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
157static struct resource omap3_mbox_resources[] = { 159#ifdef CONFIG_ARCH_OMAP3
160static 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
176static 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
169static struct platform_device mbox_device = { 190static 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
174static inline void omap_init_mbox(void) 195static 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 /*