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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx> 写道:

> 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@xxxxxxxxx>
> ---
> 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
> 
> 

?韬{.n?????%??檩??w?{.n???{炳)楹哜?^n?■???h?璀?{?夸z罐?+€?zf"?????i?????_璁?:+v??撸?



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux