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 <[email protected]>
---
 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)
+
 #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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to