From: Menon, Nishanth Date: Tue, 19 Oct 2010 14:50:25 +0000 (-0500) Subject: omap4: pandaboard: fix up mmc card detect logic X-Git-Tag: v2.6.37-rc1~52^2~6 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=bf56f0a6668cd399b5136d2216f24ec97f0ce716;p=~emulex%2Finfiniband.git omap4: pandaboard: fix up mmc card detect logic For MMC1 Controller, card detect interrupt source is twl6030 which is non-gpio. The card detect call back function provides card present/absent status by reading MMC Control register present on twl6030. This functionality was introduced in mfd tree on track to kernel.org Sync pandaboard to the same and make mmc work. Cc: Tony Lindgren Cc: Madhusudhan Chikkature Cc: Adrian Hunter Cc: Samuel Ortiz Acked-by: Kishore Kadiyala Signed-off-by: Nishanth Menon Tested-by: Jarkko Nikula Acked-by: Madhusudhan Chikkature Acked-by: Tony Lindgren Signed-off-by: Samuel Ortiz --- diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 702f2a63f2c..1ecd0a6cefb 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -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; }