]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
mmc: dt: add no-1-8-v device tree flag
authorDaniel Drake <dsd@laptop.org>
Sun, 25 Nov 2012 18:02:54 +0000 (13:02 -0500)
committerChris Ball <cjb@laptop.org>
Thu, 6 Dec 2012 18:55:05 +0000 (13:55 -0500)
The OLPC XO-1.75 laptop includes a SDHCI controller which is 1.8v
capable, and it truthfully reports so in its capabilities. This
alternate voltage is used for driving new "UHS-I" SD cards at their
full speed.

However, what the controller doesn't know is that the motherboard
physically doesn't have a 1.8v supply available, so attempting to
switch to the 1.8v level will result in a situation that cannot be
recovered from without physically replugging the SD card.

Add a device tree flag that can be used on systems like these,
and hook it up to the equivalent SDHCI quirk.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Reviewed-by: Philip Rakity <prakity@nvidia.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Documentation/devicetree/bindings/mmc/mmc.txt
drivers/mmc/host/sdhci-pltfm.c

index b96e510979bf459c93ad19079ab8a03814bd80f4..a591c6741d75b2cd4cf9efd85641ff3a6787c408 100644 (file)
@@ -21,6 +21,8 @@ Optional properties:
 - cd-inverted: when present, polarity on the cd gpio line is inverted
 - wp-inverted: when present, polarity on the wp gpio line is inverted
 - max-frequency: maximum operating clock frequency
 - cd-inverted: when present, polarity on the cd gpio line is inverted
 - wp-inverted: when present, polarity on the wp gpio line is inverted
 - max-frequency: maximum operating clock frequency
+- no-1-8-v: when present, denotes that 1.8v card voltage is not supported on
+  this system, even if the controller claims it is.
 
 Optional SDIO properties:
 - keep-power-in-suspend: Preserves card power during a suspend/resume cycle
 
 Optional SDIO properties:
 - keep-power-in-suspend: Preserves card power during a suspend/resume cycle
index c6c3b12435979c8237cb9f5f7c11f26f6cceac92..d4283ef5917ac6d0912244c802bccf5c81ea35dd 100644 (file)
@@ -78,6 +78,9 @@ void sdhci_get_of_property(struct platform_device *pdev)
                if (of_get_property(np, "broken-cd", NULL))
                        host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
 
                if (of_get_property(np, "broken-cd", NULL))
                        host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
 
+               if (of_get_property(np, "no-1-8-v", NULL))
+                       host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
+
                if (of_device_is_compatible(np, "fsl,p2020-rev1-esdhc"))
                        host->quirks |= SDHCI_QUIRK_BROKEN_DMA;
 
                if (of_device_is_compatible(np, "fsl,p2020-rev1-esdhc"))
                        host->quirks |= SDHCI_QUIRK_BROKEN_DMA;