MMC/SD Controller driver for OMAP2430
Subsystems (2)
PATCH 3/4 MMC/SD Controller driver for OMAP2430
This patch registers the MMC device for OMAP2430/3430.
Signed-off-by Madhusudhan Chikkature<[email protected]>
--- arch/arm/plat-omap/devices.c | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-)
arch/arm/plat-omap/devices.c +12 -6
@@ -19,6 +19,7 @@#include <asm/mach-types.h> #include <asm/mach/map.h> +#include <asm/arch/mmc.h> #include <asm/arch/tc.h> #include <asm/arch/board.h> #include <asm/arch/mmc.h>
@@ -156,7 +157,7 @@#if defined(CONFIG_MMC_OMAP ) || defined(CONFIG_MMC_OMAP_MODULE ) -#ifdef CONFIG_ARCH_OMAP24XX +#if defined(CONFIG_ARCH_OMAP24XX ) || defined(CONFIG_ARCH_OMAP34XX )#define OMAP_MMC1_BASE 0x4809c000#define OMAP_MMC1_INT INT_24XX_MMC_IRQ#else
@@ -228,10 +229,6 @@const struct omap_mmc_config *mmc_conf;const struct omap_mmc_conf *mmc; -/* REVISIT: 2430 has HS MMC */ -if (cpu_is_omap2430 () ||cpu_is_omap34xx ()) -return ; -/* NOTE: assumes MMC was never (wrongly) enabled */ mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config);if (!mmc_conf)
@@ -239,6 +236,15 @@/* block 1 is always available and has just one pinout option */ mmc = &mmc_conf->mmc[0 ]; + +#if defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP3430 ) +if (cpu_is_omap2430 () ||cpu_is_omap34xx ()) { +if (mmc->enabled) + (void )platform_device_register (&mmc_omap_device1); +return ; + } +#else if (mmc->enabled) {if (cpu_is_omap24xx ()) {omap_cfg_reg (H18_24XX_MMC_CMD );
@@ -289,7 +295,7 @@ mmc1_data.conf = *mmc; (void) platform_device_register(&mmc_omap_device1); } - +#endif #ifdef CONFIG_ARCH_OMAP16XX /* block 2 is on newer chips, and has many pinout options */ mmc = &mmc_conf->mmc[1 ];
@@ -339,6 +345,7 @@ }#else +void omap_set_mmc_info (int host,const struct omap_mmc_platform_data *info) {}static inline void omap_init_mmc (void ) {}#endif
Quoted 45 lines · Madhusudhan Chikkature Rajashekar
This patch registers the MMC device for OMAP2430/3430.
Signed-off-by Madhusudhan Chikkature<[email protected]>--- arch/arm/plat-omap/devices.c | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-)Index:
linux-omap-2.6/arch/arm/plat-omap/devices.c
===================================================================arch/arm/plat-omap/devices.c +3
-5@@ -19,6 +19,7 @@#include <asm/mach-types.h> #include <asm/mach/map.h> +#include <asm/arch/mmc.h> #include <asm/arch/tc.h> #include <asm/arch/board.h> #include <asm/arch/mmc.h> @@ -156,7 +157,7 @@#if defined(CONFIG_MMC_OMAP ) || defined(CONFIG_MMC_OMAP_MODULE ) -#ifdef CONFIG_ARCH_OMAP24XX +#if defined(CONFIG_ARCH_OMAP24XX ) || defined(CONFIG_ARCH_OMAP34XX )#define OMAP_MMC1_BASE 0x4809c000#define OMAP_MMC1_INT INT_24XX_MMC_IRQ#else @@ -228,10 +229,6 @@const struct omap_mmc_config *mmc_conf;const struct omap_mmc_conf *mmc; -/* REVISIT: 2430 has HS MMC */ -if (cpu_is_omap2430 () ||cpu_is_omap34xx ()) -return ; -/* NOTE: assumes MMC was never (wrongly) enabled */ mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config);if (!mmc_conf)@@ -239,6 +236,15 @@/* block 1 is always available and has just one pinout option */ mmc = &mmc_conf->mmc[0 ]; +
arch/arm/plat-omap/devices.c line 249
Quoted 10 lines
arch/arm/plat-omap/devices.c +7
-0+#if defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP3430 ) +if (cpu_is_omap2430 () ||cpu_is_omap34xx ()) { +if (mmc->enabled) + (void )platform_device_register (&mmc_omap_device1); +return ; + } +#else if (mmc->enabled) {if (cpu_is_omap24xx ()) {omap_cfg_reg (H18_24XX_MMC_CMD );
No ifdefs should be needed here. If 2430 and 34xx are not selected it gets optimized out as if (0) {}.
Regards,
Tony