aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/plat-omap/include/plat/mmc.h2
-rw-r--r--drivers/mmc/host/omap_hsmmc.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/mmc.h b/arch/arm/plat-omap/include/plat/mmc.h
index c835f1e994c6..9b89ec601ee2 100644
--- a/arch/arm/plat-omap/include/plat/mmc.h
+++ b/arch/arm/plat-omap/include/plat/mmc.h
@@ -122,6 +122,8 @@ struct omap_mmc_platform_data {
122 /* Call back after enabling / disabling regulators */ 122 /* Call back after enabling / disabling regulators */
123 void (*after_set_reg)(struct device *dev, int slot, 123 void (*after_set_reg)(struct device *dev, int slot,
124 int power_on, int vdd); 124 int power_on, int vdd);
125 /* if we have special card, init it using this callback */
126 void (*init_card)(struct mmc_card *card);
125 127
126 /* return MMC cover switch state, can be NULL if not supported. 128 /* return MMC cover switch state, can be NULL if not supported.
127 * 129 *
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index a0c8515cb3b9..ee1a3093048e 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1598,6 +1598,14 @@ static int omap_hsmmc_get_ro(struct mmc_host *mmc)
1598 return mmc_slot(host).get_ro(host->dev, 0); 1598 return mmc_slot(host).get_ro(host->dev, 0);
1599} 1599}
1600 1600
1601static void omap_hsmmc_init_card(struct mmc_host *mmc, struct mmc_card *card)
1602{
1603 struct omap_hsmmc_host *host = mmc_priv(mmc);
1604
1605 if (mmc_slot(host).init_card)
1606 mmc_slot(host).init_card(card);
1607}
1608
1601static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host) 1609static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host)
1602{ 1610{
1603 u32 hctl, capa, value; 1611 u32 hctl, capa, value;
@@ -1869,6 +1877,7 @@ static const struct mmc_host_ops omap_hsmmc_ops = {
1869 .set_ios = omap_hsmmc_set_ios, 1877 .set_ios = omap_hsmmc_set_ios,
1870 .get_cd = omap_hsmmc_get_cd, 1878 .get_cd = omap_hsmmc_get_cd,
1871 .get_ro = omap_hsmmc_get_ro, 1879 .get_ro = omap_hsmmc_get_ro,
1880 .init_card = omap_hsmmc_init_card,
1872 /* NYET -- enable_sdio_irq */ 1881 /* NYET -- enable_sdio_irq */
1873}; 1882};
1874 1883
@@ -1879,6 +1888,7 @@ static const struct mmc_host_ops omap_hsmmc_ps_ops = {
1879 .set_ios = omap_hsmmc_set_ios, 1888 .set_ios = omap_hsmmc_set_ios,
1880 .get_cd = omap_hsmmc_get_cd, 1889 .get_cd = omap_hsmmc_get_cd,
1881 .get_ro = omap_hsmmc_get_ro, 1890 .get_ro = omap_hsmmc_get_ro,
1891 .init_card = omap_hsmmc_init_card,
1882 /* NYET -- enable_sdio_irq */ 1892 /* NYET -- enable_sdio_irq */
1883}; 1893};
1884 1894