summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-01-07 10:09:22 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-01-08 10:02:13 +0100
commit04cb446c9a1bdddae41b20df5de8825df44e8dfe (patch)
tree686fb705d4b92f085c020e40962f580b9e1c33e5 /arch
parentd43bcb9987f47fd1cd575a4b965ddb743b5b7ca6 (diff)
downloadbarebox-04cb446c9a1bdddae41b20df5de8825df44e8dfe.tar.gz
barebox-04cb446c9a1bdddae41b20df5de8825df44e8dfe.tar.xz
ARM omap / mci: Fix register offsets
Only the OMAP4 has a register offset of 0x100 in the register space. Fix this by using the device id mechanism. This became broken when the device register convenience functions were introduced. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap/include/mach/am33xx-devices.h3
-rw-r--r--arch/arm/mach-omap/include/mach/devices.h3
-rw-r--r--arch/arm/mach-omap/include/mach/omap3-devices.h9
-rw-r--r--arch/arm/mach-omap/include/mach/omap4-devices.h15
-rw-r--r--arch/arm/mach-omap/omap_devices.c7
5 files changed, 18 insertions, 19 deletions
diff --git a/arch/arm/mach-omap/include/mach/am33xx-devices.h b/arch/arm/mach-omap/include/mach/am33xx-devices.h
index cfb931f827..4c83b2844c 100644
--- a/arch/arm/mach-omap/include/mach/am33xx-devices.h
+++ b/arch/arm/mach-omap/include/mach/am33xx-devices.h
@@ -26,7 +26,8 @@ static inline struct device_d *am33xx_add_uart2(void)
static inline struct device_d *am33xx_add_mmc0(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(0, AM33XX_MMCHS0_BASE, pdata);
+ return add_generic_device("omap3-hsmmc", 0, NULL,
+ AM33XX_MMCHS0_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
#endif /* __MACH_OMAP3_DEVICES_H */
diff --git a/arch/arm/mach-omap/include/mach/devices.h b/arch/arm/mach-omap/include/mach/devices.h
index 6cbb25e028..adae01bc20 100644
--- a/arch/arm/mach-omap/include/mach/devices.h
+++ b/arch/arm/mach-omap/include/mach/devices.h
@@ -9,9 +9,6 @@ void omap_add_sram0(resource_size_t base, resource_size_t size);
struct device_d *omap_add_uart(int id, unsigned long base);
-struct device_d *omap_add_mmc(int id, unsigned long base,
- struct omap_hsmmc_platform_data *pdata);
-
struct device_d *omap_add_i2c(int id, unsigned long base, void *pdata);
#endif /* __MACH_OMAP_DEVICES_H */
diff --git a/arch/arm/mach-omap/include/mach/omap3-devices.h b/arch/arm/mach-omap/include/mach/omap3-devices.h
index 2e8e06fc44..de67ea0117 100644
--- a/arch/arm/mach-omap/include/mach/omap3-devices.h
+++ b/arch/arm/mach-omap/include/mach/omap3-devices.h
@@ -59,17 +59,20 @@ static inline struct device_d *omap3_add_uart3(void)
static inline struct device_d *omap3_add_mmc1(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(0, OMAP3_MMC1_BASE, pdata);
+ return add_generic_device("omap3-hsmmc", 0, NULL,
+ OMAP3_MMC1_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap3_add_mmc2(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(1, OMAP3_MMC2_BASE, pdata);
+ return add_generic_device("omap3-hsmmc", 1, NULL,
+ OMAP3_MMC2_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap3_add_mmc3(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(2, OMAP3_MMC3_BASE, pdata);
+ return add_generic_device("omap3-hsmmc", 2, NULL,
+ OMAP3_MMC3_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap3_add_i2c1(void *pdata)
diff --git a/arch/arm/mach-omap/include/mach/omap4-devices.h b/arch/arm/mach-omap/include/mach/omap4-devices.h
index 5aba72dc51..561d9ce0ae 100644
--- a/arch/arm/mach-omap/include/mach/omap4-devices.h
+++ b/arch/arm/mach-omap/include/mach/omap4-devices.h
@@ -30,27 +30,32 @@ static inline struct device_d *omap44xx_add_uart3(void)
static inline struct device_d *omap44xx_add_mmc1(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(0, OMAP44XX_MMC1_BASE, pdata);
+ return add_generic_device("omap4-hsmmc", 0, NULL,
+ OMAP44XX_MMC1_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap44xx_add_mmc2(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(1, OMAP44XX_MMC2_BASE, pdata);
+ return add_generic_device("omap4-hsmmc", 1, NULL,
+ OMAP44XX_MMC2_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap44xx_add_mmc3(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(2, OMAP44XX_MMC3_BASE, pdata);
+ return add_generic_device("omap4-hsmmc", 2, NULL,
+ OMAP44XX_MMC3_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap44xx_add_mmc4(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(3, OMAP44XX_MMC4_BASE, pdata);
+ return add_generic_device("omap4-hsmmc", 3, NULL,
+ OMAP44XX_MMC4_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap44xx_add_mmc5(struct omap_hsmmc_platform_data *pdata)
{
- return omap_add_mmc(4, OMAP44XX_MMC5_BASE, pdata);
+ return add_generic_device("omap4-hsmmc", 4, NULL,
+ OMAP44XX_MMC5_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
static inline struct device_d *omap44xx_add_i2c1(void *pdata)
diff --git a/arch/arm/mach-omap/omap_devices.c b/arch/arm/mach-omap/omap_devices.c
index e83ac85179..056cba541c 100644
--- a/arch/arm/mach-omap/omap_devices.c
+++ b/arch/arm/mach-omap/omap_devices.c
@@ -25,13 +25,6 @@ struct device_d *omap_add_uart(int id, unsigned long base)
IORESOURCE_MEM_8BIT, &serial_plat);
}
-struct device_d *omap_add_mmc(int id, unsigned long base,
- struct omap_hsmmc_platform_data *pdata)
-{
- return add_generic_device("omap-hsmmc", id, NULL,
- base, SZ_4K, IORESOURCE_MEM, pdata);
-}
-
struct device_d *omap_add_i2c(int id, unsigned long base, void *pdata)
{
return add_generic_device("i2c-omap", id, NULL, base, SZ_4K,