Some SD cards do not assert the SDHCI_CARD_PRESENT bit. Only the
SDHCI_CARD_DETECT_PIN_LEVEL is enabled. Consider that enough for card
detect indication.

This fixes SD card access from SPL, since DM_GPIO is not available in
SPL code.

Fixes: da18c62b6e6a ("mmc: sdhci: Implement SDHCI card detect")
Cc: T Karthik Reddy <t.karthik.re...@xilinx.com>
Cc: Michal Simek <michal.si...@xilinx.com>
Signed-off-by: Baruch Siach <bar...@tkos.co.il>
---
 drivers/mmc/sdhci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 2779bca93f08..17a28181fcca 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -683,7 +683,7 @@ int sdhci_get_cd(struct udevice *dev)
        }
 #endif
        value = !!(sdhci_readl(host, SDHCI_PRESENT_STATE) &
-                  SDHCI_CARD_PRESENT);
+                  (SDHCI_CARD_PRESENT | SDHCI_CARD_DETECT_PIN_LEVEL));
        if (mmc->cfg->host_caps & MMC_CAP_CD_ACTIVE_HIGH)
                return !value;
        else
-- 
2.20.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to