On Fri, May 25, 2012 at 1:44 AM, Viswanath Puttagunta <vishp@xxxxxx> wrote: > > Enable debounce logic in TWL6030 so that erroneous > disconnect/connect interrupts will be suppressed. > > This will fix issue where SD card is either plugged > or unplugged very slowly. > > Change-Id: Icc3afa4c66b3bc7920f27ff9c9a3f32e67d5833c > Signed-off-by: Viswanath Puttagunta <vishp@xxxxxx> Would be better without the Change-Id. Also, this needs to be posted to linux-omap and linux-mfd, apart from linux-mmc. > --- > drivers/mfd/twl6030-irq.c | 8 ++++++++ > include/linux/i2c/twl.h | 5 +++++ > 2 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c > index b76902f..05bb6e1 100644 > --- a/drivers/mfd/twl6030-irq.c > +++ b/drivers/mfd/twl6030-irq.c > @@ -317,6 +317,14 @@ int twl6030_mmc_card_detect_config(void) > > ret); > return ret; > } > + ret = twl_i2c_write_u8(TWL6030_MODULE_ID0, > + (MMC_MINS_DEB_MASK | MMC_MEXT_DEB_MASK), > + TWL6030_MMCDEBOUNCING); > + if (ret < 0) { > + pr_err("twl6030: Failed to write MMC_MEXT_DEB_MASK %d\n", > + ret); > + return ret; > + } > > return twl6030_irq_base + MMCDETECT_INTR_OFFSET; > } > diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h > index 1f90de0..672dcfb 100644 > --- a/include/linux/i2c/twl.h > +++ b/include/linux/i2c/twl.h > @@ -147,6 +147,11 @@ > #define SW_FC (0x1 << 2) > #define STS_MMC 0x1 > > +#define TWL6030_MMCDEBOUNCING 0xED > +#define MMC_DEB_BYPASS (0x1 << 7) > +#define MMC_MINS_DEB_MASK (0xF << 3) > +#define MMC_MEXT_DEB_MASK (0x7 << 0) Some description about what these values mean (timing etc) would be helpful. > + > #define TWL6030_CFG_INPUT_PUPD3 0xF2 > #define MMC_PU (0x1 << 3) > #define MMC_PD (0x1 << 2) > -- > 1.7.4.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html