V4:
add of_match_table in the driver, and change egalax_ts gpio irq type value from
2 to 8 (falling edge to low level) in the dts.
V3:
Although have got Ack-by from driver author in the V2, i have to send
V3 since the driver is changed due to the change of a property name
in the dts.
As Shawn.guo suggested, i renamed property "irq-gpio" to "wakeup-gpios".
The reason is that, firstly the idiom of gpio naming in DT is *-gpios,
even though most of time, it could be just one gpio, secondly as the pin is
accessed as a gpio only in egalax_wake_up_device for waking up the device.
This time i send the patches both to linux-input and linux-arm, 0001 and
0002 belongs to linux-input, while the 0003 belongs to linux-arm.
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 (3):
Input: egalax_ts: get gpio from devicetree node
Input: add devicetree binding note for egalax_ts
ARM: dts: imx6q-sabrelite: add eeti egalax touchscreen
.../bindings/input/touchscreen/egalax-ts.txt | 19 +++++++++++++++
arch/arm/boot/dts/imx6q-sabrelite.dts | 16 ++++++++++++
arch/arm/boot/dts/imx6q.dtsi | 7 +++++
drivers/input/touchscreen/egalax_ts.c | 25 +++++++++++++++++--
4 files changed, 64 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
--
1.7.6
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 <redacted>
---
drivers/input/touchscreen/egalax_ts.c | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
@@ -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. */staticintegalax_wake_up_device(structi2c_client*client){-intgpio=irq_to_gpio(client->irq);-intret;+structdevice_node*np=client->dev.of_node;+intgpio,ret;++if(!np)+return-ENODEV;++gpio=of_get_named_gpio(np,"wakeup-gpios",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;+gotoerr_free_dev;+}ret=egalax_firmware_version(client);if(ret<0){
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 <redacted>
---
.../bindings/input/touchscreen/egalax-ts.txt | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
@@ -0,0 +1,19 @@+* EETI eGalax Multiple Touch Controller++Required properties:+- compatible: must be "eeti,egalax_ts"+- reg: i2c slave address+- interrupt-parent: the phandle for the interrupt controller+- interrupts: touch controller interrupt+- wakeup-gpios: the gpio pin to be used for waking up the controller+ as well as uased as irq pin++Example:++ egalax_ts@04 {+ compatible = "eeti,egalax_ts";+ reg = <0x04>;+ interrupt-parent = <&gpio1>;+ interrupts = <9 2>;+ wakeup-gpios = <&gpio1 9 0>;+ };
On Thu, Aug 16, 2012 at 06:47:29PM +0800, Hui Wang wrote:
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 <redacted>
On Thu, Aug 16, 2012 at 06:47:30PM +0800, Hui Wang wrote:
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 <redacted>
On Thu, Aug 16, 2012 at 06:47:31PM +0800, Hui Wang wrote:
i.MX6Q sabrelite board uses i2c3 to connect an eeti egalax
touchscreen controller, add it as an i2c slave device in the dts.
Signed-off-by: Hui Wang <redacted>
Looks good. Will apply it after the driver part gets accepted.
--
Regards,
Shawn
On Thu, Aug 16, 2012 at 06:47:31PM +0800, Hui Wang wrote:
quoted
i.MX6Q sabrelite board uses i2c3 to connect an eeti egalax
touchscreen controller, add it as an i2c slave device in the dts.
Signed-off-by: Hui Wang <redacted>
Looks good. Will apply it after the driver part gets accepted.
On Thu, Aug 16, 2012 at 06:47:29PM +0800, Hui Wang wrote:
quoted
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 <redacted>
Reviewed-by: Shawn Guo <redacted>
What's the status on this patch? I'm still getting build errors from this
driver, so I guess it was never accepted for the 3.7 merge window.
Arnd
On Thu, Aug 16, 2012 at 06:47:29PM +0800, Hui Wang wrote:
quoted
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 <redacted>
Reviewed-by: Shawn Guo <redacted>
What's the status on this patch? I'm still getting build errors from this
driver, so I guess it was never accepted for the 3.7 merge window.
Arnd
I forgot to resend this patchset After Dmitry was back to the maillist.
I will rebase the patchset and resend them to review.
Regards,
Hui.