diff options
-rw-r--r-- | arch/arm/plat-omap/include/plat/mmc.h | 2 | ||||
-rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 10 |
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 | ||
1601 | static 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 | |||
1601 | static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host) | 1609 | static 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 | ||