sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
 
                if (!IS_ERR(mmc->supply.vqmmc)) {
-                       ret = regulator_set_voltage(mmc->supply.vqmmc, 2700000,
-                                                   3600000);
+                       ret = mmc_regulator_set_vqmmc(mmc, ios);
                        if (ret) {
                                pr_warn("%s: Switching to 3.3V signalling voltage failed\n",
                                        mmc_hostname(mmc));
                if (!(host->flags & SDHCI_SIGNALING_180))
                        return -EINVAL;
                if (!IS_ERR(mmc->supply.vqmmc)) {
-                       ret = regulator_set_voltage(mmc->supply.vqmmc,
-                                       1700000, 1950000);
+                       ret = mmc_regulator_set_vqmmc(mmc, ios);
                        if (ret) {
                                pr_warn("%s: Switching to 1.8V signalling voltage failed\n",
                                        mmc_hostname(mmc));
                if (!(host->flags & SDHCI_SIGNALING_120))
                        return -EINVAL;
                if (!IS_ERR(mmc->supply.vqmmc)) {
-                       ret = regulator_set_voltage(mmc->supply.vqmmc, 1100000,
-                                                   1300000);
+                       ret = mmc_regulator_set_vqmmc(mmc, ios);
                        if (ret) {
                                pr_warn("%s: Switching to 1.2V signalling voltage failed\n",
                                        mmc_hostname(mmc));