All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/2] mmc: only support voltage (vdd) that regulator agree's with
@ 2012-06-08 19:26 philipspatches
  2012-06-27 16:46 ` Chris Ball
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: philipspatches @ 2012-06-08 19:26 UTC (permalink / raw)
  To: cjb, linux-mmc, aaron.lu, mark.brown314; +Cc: Philip Rakity

From: Philip Rakity <prakity@marvell.com>

If we are using a regulator the SD Host Controller and the
regulator should agree about the voltages supported.  Use
the common subset that is supported.

Signed-off-by: Philip Rakity <prakity@marvell.com>
---
 drivers/mmc/host/sdhci.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 248f68b..78be427 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2894,6 +2894,21 @@ int sdhci_add_host(struct sdhci_host *host)
 	 * register is set. The actual current value is 4 times the register
 	 * value.
 	 */
+	if (host->vmmc) {
+		ret = regulator_is_supported_voltage(host->vmmc, 3300000,
+			3300000);
+		if ((ret <= 0) || (!(caps[0] & SDHCI_CAN_VDD_330)))
+			caps[0] &= ~SDHCI_CAN_VDD_330;
+		ret = regulator_is_supported_voltage(host->vmmc, 3000000,
+			3000000);
+		if ((ret <= 0) || (!(caps[0] & SDHCI_CAN_VDD_300)))
+			caps[0] &= ~SDHCI_CAN_VDD_300;
+		ret = regulator_is_supported_voltage(host->vmmc, 1800000,
+			1800000);
+		if ((ret <= 0) || (!(caps[0] & SDHCI_CAN_VDD_180)))
+			caps[0] &= ~SDHCI_CAN_VDD_180;
+	}
+
 	max_current_caps = sdhci_readl(host, SDHCI_MAX_CURRENT);
 	if (!max_current_caps && host->vmmc) {
 		u32 curr = regulator_get_current_limit(host->vmmc);
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-11-09  9:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-08 19:26 [PATCH 2/2] mmc: only support voltage (vdd) that regulator agree's with philipspatches
2012-06-27 16:46 ` Chris Ball
2012-06-29 23:19 ` Chris Ball
2012-07-03  6:06   ` Aaron Lu
2012-07-03  6:12     ` Chris Ball
2012-11-09  9:50 ` Tushar Behera

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.