@@ -488,7 +488,7 @@ static struct omap_mmc_platform_data mmc1_data = {
.max_freq = 24000000,
.dma_mask = 0xffffffff,
.slots[0] = {
- .caps = MMC_CAP_4_BIT_DATA,
+ .wires = 4,
.set_power = n8x0_mmc_set_power,
.set_bus_mode = n8x0_mmc_set_bus_mode,
.get_cover_state = n8x0_mmc_get_cover_state,
@@ -73,9 +73,16 @@ struct omap_mmc_platform_data {
struct omap_mmc_slot_data {
- /* 4/8 wires and any additional host capabilities
- * need to OR'd all capabilities (ref. linux/mmc/host.h) */
- u32 caps;
+ /*
+ * 4/8 wires and any additional host capabilities
+ * need to OR'd all capabilities (ref. linux/mmc/host.h)
+ */
+#if defined(CONFIG_ARCH_OMAP1) || defined(CONFIG_ARCH_OMAP2420)
+ u8 wires; /* Used for the MMC driver on omap1 and 2420 */
+#endif
+#ifdef CONFIG_ARCH_OMAP2PLUS
+ u32 caps; /* Used for the MMC driver on 2430 and later */
+#endif
/*
* nomux means "standard" muxing is wrong on this board, and
@@ -1317,7 +1317,7 @@ static int __init mmc_omap_new_slot(struct mmc_omap_host *host, int id)
host->slots[id] = slot;
mmc->caps = 0;
- if (host->pdata->slots[id].caps & MMC_CAP_8_BIT_DATA)
+ if (host->pdata->slots[id].wires >= 4)
mmc->caps |= MMC_CAP_4_BIT_DATA;
mmc->ops = &mmc_omap_ops;