aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2013-02-12 03:01:36 -0500
committerChris Ball <cjb@laptop.org>2013-02-24 14:37:17 -0500
commita4f8f257eddcdf13417476c8479c616560a4417a (patch)
tree4a4bf446d1e8d649a8eb992c96db6518d9736f3c /drivers/mmc
parent29866a98be716111016da69f2747e012843b61e4 (diff)
mmc: sdhci: check voltage range only on regulators aware of voltage value
Some regulators don't report any voltage values, so checking supported voltage range results in disabling all SDHCI_CAN_VDD_* flags and registration failure. This patch finally provides a correct fix for the registration of SDHCI driver with all possible voltage regulators: dummy, fixed and regulated without using regulator_count_voltages() hacks. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ba586ae99252..735526bf8d58 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2976,7 +2976,11 @@ int sdhci_add_host(struct sdhci_host *host)
2976 } 2976 }
2977 2977
2978#ifdef CONFIG_REGULATOR 2978#ifdef CONFIG_REGULATOR
2979 if (host->vmmc) { 2979 /*
2980 * Voltage range check makes sense only if regulator reports
2981 * any voltage value.
2982 */
2983 if (host->vmmc && regulator_get_voltage(host->vmmc) > 0) {
2980 ret = regulator_is_supported_voltage(host->vmmc, 2700000, 2984 ret = regulator_is_supported_voltage(host->vmmc, 2700000,
2981 3600000); 2985 3600000);
2982 if ((ret <= 0) || (!(caps[0] & SDHCI_CAN_VDD_330))) 2986 if ((ret <= 0) || (!(caps[0] & SDHCI_CAN_VDD_330)))