mmc: core: add support for disabling HS400 mode via DT
authorLucas Stach <dev@lynxeye.de>
Mon, 10 May 2021 19:04:00 +0000 (21:04 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 14 Jun 2021 11:57:39 +0000 (13:57 +0200)
On some boards the data strobe line isn't wired up, rendering HS400
support broken, even if both the controller and the eMMC claim to
support it. Allow to disable HS400 mode via DT.

Signed-off-by: Lucas Stach <dev@lynxeye.de>
Link: https://lore.kernel.org/r/20210510190400.105162-3-l.stach@pengutronix.de
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/host.c

index 0b0577990ddc98bc81e9dd8bbb432027431d6917..eda4a1892c33c555bb1833e1806235b3578cda61 100644 (file)
@@ -388,6 +388,9 @@ int mmc_of_parse(struct mmc_host *host)
                host->caps2 |= MMC_CAP2_NO_SD;
        if (device_property_read_bool(dev, "no-mmc"))
                host->caps2 |= MMC_CAP2_NO_MMC;
+       if (device_property_read_bool(dev, "no-mmc-hs400"))
+               host->caps2 &= ~(MMC_CAP2_HS400_1_8V | MMC_CAP2_HS400_1_2V |
+                                MMC_CAP2_HS400_ES);
 
        /* Must be after "non-removable" check */
        if (device_property_read_u32(dev, "fixed-emmc-driver-type", &drv_type) == 0) {