mmc: fsl_esdhc_imx: add CD support when OF_PLATDATA is enabled
authorWalter Lozano <walter.lozano@collabora.com>
Wed, 29 Jul 2020 15:31:19 +0000 (12:31 -0300)
committerStefano Babic <sbabic@denx.de>
Sun, 2 Aug 2020 12:50:59 +0000 (14:50 +0200)
After enabling OF_PLATDATA support to both MMC and GPIO drivers add the
support for card detection.

Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/mmc/fsl_esdhc_imx.c

index 2713682..7886779 100644 (file)
@@ -1498,7 +1498,30 @@ static int fsl_esdhc_probe(struct udevice *dev)
                priv->bus_width = 4;
        else
                priv->bus_width = 1;
-       priv->non_removable = 1;
+
+       if (dtplat->non_removable)
+               priv->non_removable = 1;
+       else
+               priv->non_removable = 0;
+
+       if (CONFIG_IS_ENABLED(DM_GPIO) && !priv->non_removable) {
+               struct udevice *gpiodev;
+               struct driver_info *info;
+
+               info = (struct driver_info *)dtplat->cd_gpios->node;
+
+               ret = device_get_by_driver_info(info, &gpiodev);
+
+               if (ret)
+                       return ret;
+
+               ret = gpio_dev_request_index(gpiodev, gpiodev->name, "cd-gpios",
+                                            dtplat->cd_gpios->arg[0], GPIOD_IS_IN,
+                                            dtplat->cd_gpios->arg[1], &priv->cd_gpio);
+
+               if (ret)
+                       return ret;
+       }
 #endif
 
        if (data)