diff options
-rw-r--r-- | drivers/mmc/host/atmel-mci.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 945a31d77364..42706ea0ba85 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c | |||
@@ -1402,8 +1402,14 @@ static void atmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
1402 | clk_unprepare(host->mck); | 1402 | clk_unprepare(host->mck); |
1403 | 1403 | ||
1404 | switch (ios->power_mode) { | 1404 | switch (ios->power_mode) { |
1405 | case MMC_POWER_OFF: | ||
1406 | if (!IS_ERR(mmc->supply.vmmc)) | ||
1407 | mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0); | ||
1408 | break; | ||
1405 | case MMC_POWER_UP: | 1409 | case MMC_POWER_UP: |
1406 | set_bit(ATMCI_CARD_NEED_INIT, &slot->flags); | 1410 | set_bit(ATMCI_CARD_NEED_INIT, &slot->flags); |
1411 | if (!IS_ERR(mmc->supply.vmmc)) | ||
1412 | mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, ios->vdd); | ||
1407 | break; | 1413 | break; |
1408 | default: | 1414 | default: |
1409 | /* | 1415 | /* |
@@ -2215,6 +2221,7 @@ static int __init atmci_init_slot(struct atmel_mci *host, | |||
2215 | } | 2221 | } |
2216 | 2222 | ||
2217 | host->slot[id] = slot; | 2223 | host->slot[id] = slot; |
2224 | mmc_regulator_get_supply(mmc); | ||
2218 | mmc_add_host(mmc); | 2225 | mmc_add_host(mmc); |
2219 | 2226 | ||
2220 | if (gpio_is_valid(slot->detect_pin)) { | 2227 | if (gpio_is_valid(slot->detect_pin)) { |