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)) { |
