aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMenon, Nishanth <[email protected]>2010-10-19 09:50:25 -0500
committerSamuel Ortiz <[email protected]>2010-10-29 00:30:32 +0200
commitbf56f0a6668cd399b5136d2216f24ec97f0ce716 (patch)
treee26b119e77d5a7940e5017a5352ed966c8f3a4bf
parent47dabaeedb4d6e841ac4d66ef249ce9c61303049 (diff)
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 <[email protected]> Cc: Madhusudhan Chikkature <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Samuel Ortiz <[email protected]> Acked-by: Kishore Kadiyala <[email protected]> Signed-off-by: Nishanth Menon <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Acked-by: Madhusudhan Chikkature <[email protected]> Acked-by: Tony Lindgren <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 702f2a63f2c1..1ecd0a6cefb7 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;
}