]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
mmc: sdhci: Read sdhci card detect properties from DT
authorT Karthik Reddy <t.karthik.reddy@xilinx.com>
Wed, 5 Jun 2019 18:40:57 +0000 (00:10 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 28 Jun 2019 09:25:30 +0000 (11:25 +0200)
This patch reads card detect properties from device tree.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/mmc/sdhci.c

index e13f47c2c65391a71d75ac71a17949a1e660db9d..7cb256b8b4b0fa302e9857039edb216fc8b67565 100644 (file)
@@ -509,7 +509,22 @@ static int sdhci_set_ios(struct mmc *mmc)
 static int sdhci_init(struct mmc *mmc)
 {
        struct sdhci_host *host = mmc->priv;
+#if CONFIG_IS_ENABLED(DM_MMC)
+       struct udevice *dev = mmc->dev;
 
+       if (dev_read_bool(dev, "non-removable")) {
+               host->host_caps |= MMC_CAP_NONREMOVABLE;
+       } else {
+               if (dev_read_bool(dev, "cd-inverted"))
+                       host->host_caps |= MMC_CAP_CD_ACTIVE_HIGH;
+               if (dev_read_bool(dev, "broken-cd"))
+                       host->host_caps |= MMC_CAP_NEEDS_POLL;
+#if CONFIG_IS_ENABLED(DM_GPIO)
+               gpio_request_by_name(dev, "cd-gpio", 0,
+                                    &host->cd_gpio, GPIOD_IS_IN);
+#endif
+       }
+#endif
        sdhci_reset(host, SDHCI_RESET_ALL);
 
        if ((host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) && !aligned_buffer) {