dw_mmc: turn on the IO supply
authorUrja Rannikko <urjaman@gmail.com>
Mon, 13 May 2019 13:25:27 +0000 (13:25 +0000)
committerKever Yang <kever.yang@rock-chips.com>
Wed, 31 Jul 2019 01:07:30 +0000 (09:07 +0800)
Fixes the microSD slot on the ASUS C201.

Signed-off-by: Urja Rannikko <urjaman@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com<mailto:peng.fan@nxp.com>>
drivers/mmc/dw_mmc.c

index 1992d611821dc833398ca921b979c153b08e3135..22f6c7eefdf0519b6ce9dfa5e17652080225167e 100644 (file)
@@ -13,6 +13,7 @@
 #include <mmc.h>
 #include <dwmmc.h>
 #include <wait_bit.h>
+#include <power/regulator.h>
 
 #define PAGE_SIZE 4096
 
@@ -493,6 +494,21 @@ static int dwmci_set_ios(struct mmc *mmc)
        if (host->clksel)
                host->clksel(host);
 
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
+       if (mmc->vqmmc_supply) {
+               int ret;
+
+               if (mmc->signal_voltage == MMC_SIGNAL_VOLTAGE_180)
+                       regulator_set_value(mmc->vqmmc_supply, 1800000);
+               else
+                       regulator_set_value(mmc->vqmmc_supply, 3300000);
+
+               ret = regulator_set_enable_if_allowed(mmc->vqmmc_supply, true);
+               if (ret)
+                       return ret;
+       }
+#endif
+
        return 0;
 }