]> git.sur5r.net Git - u-boot/blobdiff - drivers/mmc/omap_hsmmc.c
Merge git://git.denx.de/u-boot-dm
[u-boot] / drivers / mmc / omap_hsmmc.c
index ef2cbf9e2fa574cd2846c280149cca2cf1dbc28b..c880cedb0addce6761aa67797bf19ed785a93031 100644 (file)
@@ -135,12 +135,7 @@ static unsigned char mmc_board_init(struct mmc *mmc)
        pbias_lite = readl(&t2_base->pbias_lite);
        pbias_lite &= ~(PBIASLITEPWRDNZ1 | PBIASLITEPWRDNZ0);
        writel(pbias_lite, &t2_base->pbias_lite);
-#endif
-#if defined(CONFIG_TWL4030_POWER)
-       twl4030_power_mmc_init();
-       mdelay(100);    /* ramp-up delay from Linux code */
-#endif
-#if defined(CONFIG_OMAP34XX)
+
        writel(pbias_lite | PBIASLITEPWRDNZ1 |
                PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
                &t2_base->pbias_lite);
@@ -611,7 +606,8 @@ static int omap_hsmmc_getcd(struct mmc *mmc)
        if (cd_gpio < 0)
                return 1;
 
-       return gpio_get_value(cd_gpio);
+       /* NOTE: assumes card detect signal is active-low */
+       return !gpio_get_value(cd_gpio);
 }
 
 static int omap_hsmmc_getwp(struct mmc *mmc)
@@ -624,6 +620,7 @@ static int omap_hsmmc_getwp(struct mmc *mmc)
        if (wp_gpio < 0)
                return 0;
 
+       /* NOTE: assumes write protect signal is active-high */
        return gpio_get_value(wp_gpio);
 }
 #endif
@@ -661,7 +658,8 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
        case 1:
                priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC2_BASE;
 #if (defined(CONFIG_OMAP44XX) || defined(CONFIG_OMAP54XX) || \
-     defined(CONFIG_DRA7XX)) && defined(CONFIG_HSMMC2_8BIT)
+     defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX)) && \
+               defined(CONFIG_HSMMC2_8BIT)
                /* Enable 8-bit interface for eMMC on OMAP4/5 or DRA7XX */
                host_caps_val |= MMC_MODE_8BIT;
 #endif
@@ -670,7 +668,7 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
 #ifdef OMAP_HSMMC3_BASE
        case 2:
                priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC3_BASE;
-#if defined(CONFIG_DRA7XX) && defined(CONFIG_HSMMC3_8BIT)
+#if (defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX)) && defined(CONFIG_HSMMC3_8BIT)
                /* Enable 8-bit interface for eMMC on DRA7XX */
                host_caps_val |= MMC_MODE_8BIT;
 #endif