This adds support for TP_UP_PENDING irq in Allwinner SoCs' GPADC's MFD.

This interrupt occurs when a touchscreen is attached and the thing (stylus,
finger) currently touching the touchscreen releases the touch.

Signed-off-by: Quentin Schulz <[email protected]>
---
 drivers/mfd/sunxi-gpadc-mfd.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/mfd/sunxi-gpadc-mfd.c b/drivers/mfd/sunxi-gpadc-mfd.c
index f0005a6..05a000b 100644
--- a/drivers/mfd/sunxi-gpadc-mfd.c
+++ b/drivers/mfd/sunxi-gpadc-mfd.c
@@ -19,6 +19,8 @@
 
 #define SUNXI_IRQ_FIFO_DATA    0
 #define SUNXI_IRQ_TEMP_DATA    1
+#define SUNXI_IRQ_TP_UP                2
+
 
 static struct resource adc_resources[] = {
        {
@@ -34,9 +36,19 @@ static struct resource adc_resources[] = {
        },
 };
 
+static struct resource ts_resources[] = {
+       {
+               .name   = "TP_UP_PENDING",
+               .start  = SUNXI_IRQ_TP_UP,
+               .end    = SUNXI_IRQ_TP_UP,
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
 static const struct regmap_irq sunxi_gpadc_mfd_regmap_irq[] = {
        REGMAP_IRQ_REG(SUNXI_IRQ_FIFO_DATA, 0, BIT(16)),
        REGMAP_IRQ_REG(SUNXI_IRQ_TEMP_DATA, 0, BIT(18)),
+       REGMAP_IRQ_REG(SUNXI_IRQ_TP_UP, 0, BIT(1)),
 };
 
 static const struct regmap_irq_chip sunxi_gpadc_mfd_regmap_irq_chip = {
-- 
2.5.0

Reply via email to