Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf56f0a6 authored by Menon, Nishanth's avatar Menon, Nishanth Committed by Samuel Ortiz
Browse files

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 <tony@atomide.com>
Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>

Acked-by: default avatarKishore Kadiyala <kishore.kadiyala@ti.com>
Signed-off-by: default avatarNishanth Menon <nm@ti.com>
Tested-by: default avatarJarkko Nikula <jhnikula@gmail.com>
Acked-by: default avatarMadhusudhan Chikkature <madhu.cr@ti.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 47dabaee
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -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;
}