mmc: mmc_spi: Set up polling even if voltage-ranges is not present
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 19 Apr 2021 11:24:56 +0000 (14:24 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 23 Apr 2021 07:29:49 +0000 (09:29 +0200)
When voltage-ranges property is not present the driver assumes that
it is 3.3v (3.2v..3.4v). But at the same time it disallows polling.

Fix that by dropping the comparison to 0 when no property is provided.

While at it, mark voltage-ranges property optional as it was initially.

Fixes: 9c43df57910b ("mmc_spi: Add support for OpenFirmware bindings")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210419112459.25241-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
drivers/mmc/host/of_mmc_spi.c

index 75486cc..5e74db6 100644 (file)
@@ -5,11 +5,11 @@ by mmc.txt and the properties used by the mmc_spi driver.
 
 Required properties:
 - spi-max-frequency : maximum frequency for this device (Hz).
-- voltage-ranges : two cells are required, first cell specifies minimum
-  slot voltage (mV), second cell specifies maximum slot voltage (mV).
-  Several ranges could be specified.
 
 Optional properties:
+- voltage-ranges : two cells are required, first cell specifies minimum
+  slot voltage (mV), second cell specifies maximum slot voltage (mV).
+  Several ranges could be specified. If not provided, 3.2v..3.4v is assumed.
 - gpios : may specify GPIOs in this order: Card-Detect GPIO,
   Write-Protect GPIO. Note that this does not follow the
   binding from mmc.txt, for historical reasons.
index acd96ea..843ec3d 100644 (file)
@@ -66,7 +66,7 @@ struct mmc_spi_platform_data *mmc_spi_get_pdata(struct spi_device *spi)
        if (!oms)
                return NULL;
 
-       if (mmc_of_parse_voltage(mmc, &oms->pdata.ocr_mask) <= 0)
+       if (mmc_of_parse_voltage(mmc, &oms->pdata.ocr_mask) < 0)
                goto err_ocr;
 
        oms->detect_irq = irq_of_parse_and_map(np, 0);