diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2013-02-12 03:01:36 -0500 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2013-02-24 14:37:17 -0500 |
commit | a4f8f257eddcdf13417476c8479c616560a4417a (patch) | |
tree | 4a4bf446d1e8d649a8eb992c96db6518d9736f3c /drivers/mmc | |
parent | 29866a98be716111016da69f2747e012843b61e4 (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.c | 6 |
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))) |