* [PATCH v2 0/2] Input: egalax_ts: parse devicetree to get gpio
@ 2012-08-08 9:10 Hui Wang
2012-08-08 9:10 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
0 siblings, 1 reply; 4+ messages in thread
From: Hui Wang @ 2012-08-08 9:10 UTC (permalink / raw)
To: dmitry.torokhov, jiejing.zhang; +Cc: linux-input, devicetree-discuss
V2:
Add return value checking for waking up the controller in the probe
function.
V1:
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 | 19 ++++++++++++++++---
2 files changed, 33 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
--
1.7.6
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node
2012-08-08 9:10 [PATCH v2 0/2] Input: egalax_ts: parse devicetree to get gpio Hui Wang
@ 2012-08-08 9:10 ` Hui Wang
2012-08-08 9:10 ` [PATCH v2 2/2] Input: add devicetree binding note for egalax_ts Hui Wang
2012-08-08 10:08 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
0 siblings, 2 replies; 4+ messages in thread
From: Hui Wang @ 2012-08-08 9:10 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.
Add a return value checking for waking up the controller in the probe
function, this guarantee only a workable device can pass init.
Signed-off-by: Hui Wang <jason77.wang@gmail.com>
---
drivers/input/touchscreen/egalax_ts.c | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
index 70524dd..668b9ba 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) {
@@ -181,7 +189,12 @@ static int __devinit egalax_ts_probe(struct i2c_client *client,
ts->input_dev = input_dev;
/* controller may be in sleep, wake it up. */
- egalax_wake_up_device(client);
+ ret = egalax_wake_up_device(client);
+ if (ret < 0) {
+ dev_err(&client->dev, "Failed to wake up the controller\n");
+ error = ret;
+ goto err_free_dev;
+ }
ret = egalax_firmware_version(client);
if (ret < 0) {
--
1.7.6
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] Input: add devicetree binding note for egalax_ts
2012-08-08 9:10 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
@ 2012-08-08 9:10 ` Hui Wang
2012-08-08 10:08 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
1 sibling, 0 replies; 4+ messages in thread
From: Hui Wang @ 2012-08-08 9:10 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] 4+ messages in thread
* Re: [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node
2012-08-08 9:10 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
2012-08-08 9:10 ` [PATCH v2 2/2] Input: add devicetree binding note for egalax_ts Hui Wang
@ 2012-08-08 10:08 ` Zhang Jiejing-B33651
1 sibling, 0 replies; 4+ messages in thread
From: Zhang Jiejing-B33651 @ 2012-08-08 10:08 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,
在 2012-8-8,下午5:10,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.
>
> Add a return value checking for waking up the controller in the probe
> function, this guarantee only a workable device can pass init.
>
> Signed-off-by: Hui Wang <jason77.wang@gmail.com>
Ackyed-by Zhang Jiejing <jiejing.zhang@freescale.com>
> ---
> drivers/input/touchscreen/egalax_ts.c | 19 ++++++++++++++++---
> 1 files changed, 16 insertions(+), 3 deletions(-)
Best Regards
Jiejing
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-08-08 10:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-08 9:10 [PATCH v2 0/2] Input: egalax_ts: parse devicetree to get gpio Hui Wang
2012-08-08 9:10 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Hui Wang
2012-08-08 9:10 ` [PATCH v2 2/2] Input: add devicetree binding note for egalax_ts Hui Wang
2012-08-08 10:08 ` [PATCH v2 1/2] Input: egalax_ts: get gpio from devicetree node Zhang Jiejing-B33651
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).