omap4: pandaboard: fix up mmc card detect logic
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-omap2 / board-omap4panda.c
index 702f2a63f2c1b891ca8afdd1bf6f34b6c9016699..1ecd0a6cefb777736e6148060e74557783280e2b 100644 (file)
@@ -160,10 +160,19 @@ static int omap4_twl6030_hsmmc_late_init(struct device *dev)
                                struct platform_device, dev);
        struct omap_mmc_platform_data *pdata = dev->platform_data;
 
+       if (!pdata) {
+               dev_err(dev, "%s: NULL platform data\n", __func__);
+               return -EINVAL;
+       }
        /* Setting MMC1 Card detect Irq */
-       if (pdev->id == 0)
-               pdata->slots[0].card_detect_irq = TWL6030_IRQ_BASE +
-                                               MMCDETECT_INTR_OFFSET;
+       if (pdev->id == 0) {
+               ret = twl6030_mmc_card_detect_config();
+                if (ret)
+                       dev_err(dev, "%s: Error card detect config(%d)\n",
+                               __func__, ret);
+                else
+                       pdata->slots[0].card_detect = twl6030_mmc_card_detect;
+       }
        return ret;
 }