mmc: omap_hsmmc: Use regulator_set_enable_if_allowed for enabling regulator
authorLokesh Vutla <lokeshvutla@ti.com>
Fri, 11 Jan 2019 09:45:52 +0000 (15:15 +0530)
committerSimon Glass <sjg@chromium.org>
Sat, 9 Feb 2019 19:50:22 +0000 (12:50 -0700)
Use regulator_set_enable_if_allowed() api instead of regulator_set_enable()
while enabling io regulators. This way the driver doesn't see an error
when disabling an always-on regulator and when enabling is not supported.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
drivers/mmc/omap_hsmmc.c

index 5cb97eb02af85a1ef806dcc8e848a42c02a07d81..efbe75baa45175dab3e271997685c4081ab716bd 100644 (file)
@@ -470,21 +470,21 @@ static int omap_hsmmc_set_io_regulator(struct mmc *mmc, int mV)
                return 0;
 
        /* Disable PBIAS */
-       ret = regulator_set_enable(priv->pbias_supply, false);
-       if (ret && ret != -ENOSYS)
+       ret = regulator_set_enable_if_allowed(priv->pbias_supply, false);
+       if (ret)
                return ret;
 
        /* Turn off IO voltage */
-       ret = regulator_set_enable(mmc->vqmmc_supply, false);
-       if (ret && ret != -ENOSYS)
+       ret = regulator_set_enable_if_allowed(mmc->vqmmc_supply, false);
+       if (ret)
                return ret;
        /* Program a new IO voltage value */
        ret = regulator_set_value(mmc->vqmmc_supply, uV);
        if (ret)
                return ret;
        /* Turn on IO voltage */
-       ret = regulator_set_enable(mmc->vqmmc_supply, true);
-       if (ret && ret != -ENOSYS)
+       ret = regulator_set_enable_if_allowed(mmc->vqmmc_supply, true);
+       if (ret)
                return ret;
 
        /* Program PBIAS voltage*/
@@ -492,8 +492,8 @@ static int omap_hsmmc_set_io_regulator(struct mmc *mmc, int mV)
        if (ret && ret != -ENOSYS)
                return ret;
        /* Enable PBIAS */
-       ret = regulator_set_enable(priv->pbias_supply, true);
-       if (ret && ret != -ENOSYS)
+       ret = regulator_set_enable_if_allowed(priv->pbias_supply, true);
+       if (ret)
                return ret;
 
        return 0;