Skip to contentSkip to conversation

MMC/SD Controller driver for OMAP2430

PATCH In review Madhusudhan Chikkature Rajashekar 2 participants 2 messages Dec 7, 2007 – Dec 10, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 3/4 MMC/SD Controller driver for OMAP2430

This patch registers the MMC device for OMAP2430/3430.

---
 arch/arm/plat-omap/devices.c |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)
arch/arm/plat-omap/devices.c +12 -6
Index: linux-omap-2.6/arch/arm/plat-omap/devices.c
===================================================================
@@ -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
 
#1 lore raw
Quoted 45 lines · Madhusudhan Chikkature Rajashekar

This patch registers the MMC device for OMAP2430/3430.

---
 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