diff mbox

[1/2] Input: egalax_ts: get gpio from devicetree node

Message ID 1344332372-9287-2-git-send-email-jason77.wang@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jason Wang Aug. 7, 2012, 9:39 a.m. UTC
The irq_to_gpio() is old, most platforms use GENERIC_GPIO framework and
don't support this API anymore.

The i.MX6q sabrelite platform equips an egalax touchscreen controller,
and this platform already transfered to GENERIC_GPIO framework, to
support this driver, we use a more generic way to get gpio.

Signed-off-by: Hui Wang <jason77.wang@gmail.com>
---
 drivers/input/touchscreen/egalax_ts.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

Comments

Jason Wang Aug. 8, 2012, 5:35 a.m. UTC | #1
OK, will add it in the V2.

Thanks,
Hui.

Zhang Jiejing-B33651 wrote:
> Hi Hui,
>
> You patch looks good to me, but can you add a check when it calling the egalax_wake_up_device() function in egalax_ts_probe() ? If some configure gose wrong, the probe of driver will exit, rather than the suspend failure every time.
>
> BR,
> Jiejing
> ? 2012-8-7???5:39?Hui Wang <jason77.wang@gmail.com> ???
>
>   
>> The irq_to_gpio() is old, most platforms use GENERIC_GPIO framework and
>> don't support this API anymore.
>>
>> The i.MX6q sabrelite platform equips an egalax touchscreen controller,
>> and this platform already transfered to GENERIC_GPIO framework, to
>> support this driver, we use a more generic way to get gpio.
>>
>> Signed-off-by: Hui Wang <jason77.wang@gmail.com>
>> ---
>> drivers/input/touchscreen/egalax_ts.c |   12 ++++++++++--
>> 1 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
>> index 70524dd..b94eb50 100644
>> --- a/drivers/input/touchscreen/egalax_ts.c
>> +++ b/drivers/input/touchscreen/egalax_ts.c
>> @@ -28,6 +28,7 @@
>> #include <linux/slab.h>
>> #include <linux/bitops.h>
>> #include <linux/input/mt.h>
>> +#include <linux/of_gpio.h>
>>
>> /*
>>  * Mouse Mode: some panel may configure the controller to mouse mode,
>> @@ -122,8 +123,15 @@ static irqreturn_t egalax_ts_interrupt(int irq, void *dev_id)
>> /* wake up controller by an falling edge of interrupt gpio.  */
>> static int egalax_wake_up_device(struct i2c_client *client)
>> {
>> -	int gpio = irq_to_gpio(client->irq);
>> -	int ret;
>> +	struct device_node *np = client->dev.of_node;
>> +	int gpio, ret;
>> +
>> +	if (!np)
>> +		return -ENODEV;
>> +
>> +	gpio = of_get_named_gpio(np, "irq-gpio", 0);
>> +	if (!gpio_is_valid(gpio))
>> +		return -ENODEV;
>>
>> 	ret = gpio_request(gpio, "egalax_irq");
>> 	if (ret < 0) {
>> -- 
>> 1.7.6
>>
>>
>>     
>
>   

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
index 70524dd..b94eb50 100644
--- a/drivers/input/touchscreen/egalax_ts.c
+++ b/drivers/input/touchscreen/egalax_ts.c
@@ -28,6 +28,7 @@ 
 #include <linux/slab.h>
 #include <linux/bitops.h>
 #include <linux/input/mt.h>
+#include <linux/of_gpio.h>
 
 /*
  * Mouse Mode: some panel may configure the controller to mouse mode,
@@ -122,8 +123,15 @@  static irqreturn_t egalax_ts_interrupt(int irq, void *dev_id)
 /* wake up controller by an falling edge of interrupt gpio.  */
 static int egalax_wake_up_device(struct i2c_client *client)
 {
-	int gpio = irq_to_gpio(client->irq);
-	int ret;
+	struct device_node *np = client->dev.of_node;
+	int gpio, ret;
+
+	if (!np)
+		return -ENODEV;
+
+	gpio = of_get_named_gpio(np, "irq-gpio", 0);
+	if (!gpio_is_valid(gpio))
+		return -ENODEV;
 
 	ret = gpio_request(gpio, "egalax_irq");
 	if (ret < 0) {