Input: eeti_ts - expect platform code to set interrupt trigger
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 20 Feb 2017 00:22:13 +0000 (16:22 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 5 Apr 2017 15:52:13 +0000 (08:52 -0700)
Instead of keying interrupt trigger off GPIO polarity, let's rely on
platform code to set it up properly for us.

Reviewed-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
arch/arm/mach-pxa/raumfeld.c
drivers/input/touchscreen/eeti_ts.c

index 1ed524ef9fff53c8371c3a323815a5dc0d0c359b..e13f42a180cc0501a474240215b51ce9f520b729 100644 (file)
@@ -970,10 +970,19 @@ static struct eeti_ts_platform_data eeti_ts_pdata = {
        .irq_gpio = GPIO_TOUCH_IRQ,
 };
 
+static const struct resource raumfeld_controller_resources[] = __initconst {
+       {
+               .start  = PXA_GPIO_TO_IRQ(GPIO_TOUCH_IRQ),
+               .end    = PXA_GPIO_TO_IRQ(GPIO_TOUCH_IRQ),
+               .flags  = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
+       },
+};
+
 static struct i2c_board_info raumfeld_controller_i2c_board_info __initdata = {
        .type   = "eeti_ts",
        .addr   = 0x0a,
-       .irq    = PXA_GPIO_TO_IRQ(GPIO_TOUCH_IRQ),
+       .resources = raumfeld_controller_resources,
+       .num_resources = ARRAY_SIZE(raumfeld_controller_resources),
        .platform_data = &eeti_ts_pdata,
 };
 
index ee6b87c606efa5738eb71e6bed374938cdff2725..3627c7b5f5ec85e5dd92cc418548fee436d61d54 100644 (file)
@@ -157,7 +157,6 @@ static int eeti_ts_probe(struct i2c_client *client,
        struct eeti_ts_platform_data *pdata = dev_get_platdata(dev);
        struct eeti_ts *eeti;
        struct input_dev *input;
-       unsigned int irq_flags;
        int error;
 
        /*
@@ -201,15 +200,12 @@ static int eeti_ts_probe(struct i2c_client *client,
 
        eeti->irq_active_high = pdata->irq_active_high;
 
-       irq_flags = eeti->irq_active_high ?
-               IRQF_TRIGGER_HIGH : IRQF_TRIGGER_LOW;
-
        i2c_set_clientdata(client, eeti);
        input_set_drvdata(input, eeti);
 
        error = devm_request_threaded_irq(dev, client->irq,
                                          NULL, eeti_ts_isr,
-                                         irq_flags | IRQF_ONESHOT,
+                                         IRQF_ONESHOT,
                                          client->name, eeti);
        if (error) {
                dev_err(dev, "Unable to request touchscreen IRQ: %d\n",