linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Input: egalax_ts: parse devicetree to get gpio
@ 2012-08-07  9:39 Hui Wang
  2012-08-07  9:39 ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
  0 siblings, 1 reply; 5+ messages in thread
From: Hui Wang @ 2012-08-07  9:39 UTC (permalink / raw)
  To: dmitry.torokhov, jiejing.zhang; +Cc: linux-input, devicetree-discuss

eeti touch screen controller is an external chip for most platforms,
it connect to CPU via i2c bus, and it has a irq request pin need to be
connected to a gpio of the CPU, this irq request pin also act as a
wake up signal for touch screen controller, we need to get this gpio
number and operate it to wake up the controller, the old way to get
gpio is irq_to_gpio(), this API is dying and most platforms don't support
it, we change it to a more generic way to use devcietree.


Hui Wang (2):
  Input: egalax_ts: get gpio from devicetree node
  Input: add devicetree binding note for egalax_ts

 .../bindings/input/touchscreen/egalax-ts.txt       |   17 +++++++++++++++++
 drivers/input/touchscreen/egalax_ts.c              |   12 ++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt

-- 
1.7.6


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node
  2012-08-07  9:39 [PATCH 0/2] Input: egalax_ts: parse devicetree to get gpio Hui Wang
@ 2012-08-07  9:39 ` Hui Wang
  2012-08-07  9:39   ` [PATCH 2/2] Input: add devicetree binding note for egalax_ts Hui Wang
  2012-08-08  3:44   ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
  0 siblings, 2 replies; 5+ messages in thread
From: Hui Wang @ 2012-08-07  9:39 UTC (permalink / raw)
  To: dmitry.torokhov, jiejing.zhang; +Cc: linux-input, devicetree-discuss

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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] Input: add devicetree binding note for egalax_ts
  2012-08-07  9:39 ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
@ 2012-08-07  9:39   ` Hui Wang
  2012-08-08  3:44   ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
  1 sibling, 0 replies; 5+ messages in thread
From: Hui Wang @ 2012-08-07  9:39 UTC (permalink / raw)
  To: dmitry.torokhov, jiejing.zhang; +Cc: linux-input, devicetree-discuss

The egalax_ts driver needs to get the gpio number of the irq pin,
and use this gpio to wake up the controller. So add a note
for this change.

Signed-off-by: Hui Wang <jason77.wang@gmail.com>
---
 .../bindings/input/touchscreen/egalax-ts.txt       |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt

diff --git a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
new file mode 100644
index 0000000..5dd8213
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
@@ -0,0 +1,17 @@
+* EETI eGalax Multiple Touch Controller
+
+Required properties:
+- compatible: must be "eeti,egalax_ts"
+- reg: i2c slave address
+- interrupts: touch controller interrupt
+- irq-gpio : the gpio pin to be used for irq
+
+Example:
+
+	egalax_ts@04 {
+		compatible = "eeti,egalax_ts";
+		reg = <0x04>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <9 2>;
+		irq-gpio = <&gpio1 9 0>;
+	};
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node
  2012-08-07  9:39 ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
  2012-08-07  9:39   ` [PATCH 2/2] Input: add devicetree binding note for egalax_ts Hui Wang
@ 2012-08-08  3:44   ` Zhang Jiejing-B33651
  2012-08-08  5:35     ` Hui Wang
  1 sibling, 1 reply; 5+ messages in thread
From: Zhang Jiejing-B33651 @ 2012-08-08  3:44 UTC (permalink / raw)
  To: Hui Wang
  Cc: <dmitry.torokhov@gmail.com>, Zhang Jiejing-B33651,
	<linux-input@vger.kernel.org>,
	<devicetree-discuss@lists.ozlabs.org>

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node
  2012-08-08  3:44   ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
@ 2012-08-08  5:35     ` Hui Wang
  0 siblings, 0 replies; 5+ messages in thread
From: Hui Wang @ 2012-08-08  5:35 UTC (permalink / raw)
  To: Zhang Jiejing-B33651
  Cc: Hui Wang, <dmitry.torokhov@gmail.com>,
	<linux-input@vger.kernel.org>,
	<devicetree-discuss@lists.ozlabs.org>

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-08-08  5:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-07  9:39 [PATCH 0/2] Input: egalax_ts: parse devicetree to get gpio Hui Wang
2012-08-07  9:39 ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
2012-08-07  9:39   ` [PATCH 2/2] Input: add devicetree binding note for egalax_ts Hui Wang
2012-08-08  3:44   ` [PATCH 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
2012-08-08  5:35     ` Hui Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).