* [PATCH v4 0/3] Input: egalax_ts: parse devicetree to get gpio @ 2012-08-16 10:47 Hui Wang 2012-08-16 10:47 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Hui Wang 0 siblings, 1 reply; 11+ messages in thread From: Hui Wang @ 2012-08-16 10:47 UTC (permalink / raw) To: dmitry.torokhov, jiejing.zhang, shawn.guo Cc: linux-input, linux-arm-kernel, devicetree-discuss 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node 2012-08-16 10:47 [PATCH v4 0/3] Input: egalax_ts: parse devicetree to get gpio Hui Wang @ 2012-08-16 10:47 ` Hui Wang 2012-08-16 10:47 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Hui Wang 2012-08-17 0:31 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Shawn Guo 0 siblings, 2 replies; 11+ messages in thread From: Hui Wang @ 2012-08-16 10:47 UTC (permalink / raw) To: dmitry.torokhov, jiejing.zhang, shawn.guo Cc: linux-input, linux-arm-kernel, 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 | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 deletions(-) diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c index 70524dd..8516a4e 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, "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; + goto err_free_dev; + } ret = egalax_firmware_version(client); if (ret < 0) { @@ -274,11 +287,17 @@ static int egalax_ts_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(egalax_ts_pm_ops, egalax_ts_suspend, egalax_ts_resume); +static struct of_device_id egalax_ts_dt_ids[] = { + { .compatible = "eeti,egalax_ts" }, + { /* sentinel */ } +}; + static struct i2c_driver egalax_ts_driver = { .driver = { .name = "egalax_ts", .owner = THIS_MODULE, .pm = &egalax_ts_pm_ops, + .of_match_table = egalax_ts_dt_ids, }, .id_table = egalax_ts_id, .probe = egalax_ts_probe, -- 1.7.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts 2012-08-16 10:47 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Hui Wang @ 2012-08-16 10:47 ` Hui Wang 2012-08-16 10:47 ` [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax Hui Wang 2012-08-17 0:32 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Shawn Guo 2012-08-17 0:31 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Shawn Guo 1 sibling, 2 replies; 11+ messages in thread From: Hui Wang @ 2012-08-16 10:47 UTC (permalink / raw) To: dmitry.torokhov, jiejing.zhang, shawn.guo Cc: linux-input, linux-arm-kernel, 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 | 19 +++++++++++++++++++ 1 files changed, 19 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..df70318 --- /dev/null +++ b/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>; + }; -- 1.7.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax 2012-08-16 10:47 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Hui Wang @ 2012-08-16 10:47 ` Hui Wang 2012-08-17 0:33 ` Shawn Guo 2012-08-17 0:32 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Shawn Guo 1 sibling, 1 reply; 11+ messages in thread From: Hui Wang @ 2012-08-16 10:47 UTC (permalink / raw) To: dmitry.torokhov, jiejing.zhang, shawn.guo Cc: linux-input, linux-arm-kernel, devicetree-discuss 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 <jason77.wang@gmail.com> --- arch/arm/boot/dts/imx6q-sabrelite.dts | 16 ++++++++++++++++ arch/arm/boot/dts/imx6q.dtsi | 7 +++++++ 2 files changed, 23 insertions(+), 0 deletions(-) diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts index 72f30f3..337ec74 100644 --- a/arch/arm/boot/dts/imx6q-sabrelite.dts +++ b/arch/arm/boot/dts/imx6q-sabrelite.dts @@ -54,6 +54,7 @@ 144 0x80000000 /* MX6Q_PAD_EIM_D22__GPIO_3_22 */ 121 0x80000000 /* MX6Q_PAD_EIM_D19__GPIO_3_19 */ 953 0x80000000 /* MX6Q_PAD_GPIO_0__CCM_CLKO */ + 972 0x10 /* MX6Q_PAD_GPIO_9__GPIO_1_9 */ >; }; }; @@ -115,6 +116,21 @@ VDDIO-supply = <®_3p3v>; }; }; + + i2c@021a8000 { /* I2C3 */ + status = "okay"; + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c3_1>; + + egalax_ts@04 { + compatible = "eeti,egalax_ts"; + reg = <0x04>; + interrupt-parent = <&gpio1>; + interrupts = <9 8>; + wakeup-gpios = <&gpio1 9 0>; + }; + }; }; }; diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index fd57079..6f833b3 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi @@ -552,6 +552,13 @@ }; }; + i2c3 { + pinctrl_i2c3_1: i2c3grp-1 { + fsl,pins = <1013 0x4001b8b1 /* MX6Q_PAD_GPIO_5__I2C3_SCL */ + 1037 0x4001b8b1>; /* MX6Q_PAD_GPIO_16__I2C3_SDA */ + }; + }; + serial2 { pinctrl_serial2_1: serial2grp-1 { fsl,pins = <183 0x1b0b1 /* MX6Q_PAD_EIM_D26__UART2_TXD */ -- 1.7.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax 2012-08-16 10:47 ` [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax Hui Wang @ 2012-08-17 0:33 ` Shawn Guo 2012-08-17 1:20 ` Hui Wang 0 siblings, 1 reply; 11+ messages in thread From: Shawn Guo @ 2012-08-17 0:33 UTC (permalink / raw) To: Hui Wang Cc: dmitry.torokhov, jiejing.zhang, linux-input, linux-arm-kernel, devicetree-discuss 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 <jason77.wang@gmail.com> Looks good. Will apply it after the driver part gets accepted. -- Regards, Shawn ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax 2012-08-17 0:33 ` Shawn Guo @ 2012-08-17 1:20 ` Hui Wang 0 siblings, 0 replies; 11+ messages in thread From: Hui Wang @ 2012-08-17 1:20 UTC (permalink / raw) To: Shawn Guo Cc: Hui Wang, dmitry.torokhov, jiejing.zhang, linux-input, linux-arm-kernel, devicetree-discuss Shawn Guo wrote: > 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 <jason77.wang@gmail.com> >> > > Looks good. Will apply it after the driver part gets accepted. > > Got it, thanks. Regards, Hui. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts 2012-08-16 10:47 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Hui Wang 2012-08-16 10:47 ` [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax Hui Wang @ 2012-08-17 0:32 ` Shawn Guo 1 sibling, 0 replies; 11+ messages in thread From: Shawn Guo @ 2012-08-17 0:32 UTC (permalink / raw) To: Hui Wang Cc: dmitry.torokhov, jiejing.zhang, linux-input, linux-arm-kernel, devicetree-discuss 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 <jason77.wang@gmail.com> Reviewed-by: Shawn Guo <shawn.guo@linaro.org> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node 2012-08-16 10:47 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Hui Wang 2012-08-16 10:47 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Hui Wang @ 2012-08-17 0:31 ` Shawn Guo 2012-10-09 11:58 ` Arnd Bergmann 1 sibling, 1 reply; 11+ messages in thread From: Shawn Guo @ 2012-08-17 0:31 UTC (permalink / raw) To: Hui Wang Cc: dmitry.torokhov, jiejing.zhang, linux-input, linux-arm-kernel, devicetree-discuss 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 <jason77.wang@gmail.com> Reviewed-by: Shawn Guo <shawn.guo@linaro.org> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node 2012-08-17 0:31 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Shawn Guo @ 2012-10-09 11:58 ` Arnd Bergmann 2012-10-10 3:26 ` Hui Wang 0 siblings, 1 reply; 11+ messages in thread From: Arnd Bergmann @ 2012-10-09 11:58 UTC (permalink / raw) To: linux-arm-kernel Cc: Shawn Guo, Hui Wang, devicetree-discuss, dmitry.torokhov, jiejing.zhang, linux-input On Friday 17 August 2012, Shawn Guo wrote: > 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 <jason77.wang@gmail.com> > > Reviewed-by: Shawn Guo <shawn.guo@linaro.org> 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node 2012-10-09 11:58 ` Arnd Bergmann @ 2012-10-10 3:26 ` Hui Wang 2012-10-10 6:18 ` Arnd Bergmann 0 siblings, 1 reply; 11+ messages in thread From: Hui Wang @ 2012-10-10 3:26 UTC (permalink / raw) To: Arnd Bergmann Cc: linux-arm-kernel, Shawn Guo, Hui Wang, devicetree-discuss, dmitry.torokhov, jiejing.zhang, linux-input Arnd Bergmann wrote: > On Friday 17 August 2012, Shawn Guo wrote: > >> 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 <jason77.wang@gmail.com> >>> >> Reviewed-by: Shawn Guo <shawn.guo@linaro.org> >> > > 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. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node 2012-10-10 3:26 ` Hui Wang @ 2012-10-10 6:18 ` Arnd Bergmann 0 siblings, 0 replies; 11+ messages in thread From: Arnd Bergmann @ 2012-10-10 6:18 UTC (permalink / raw) To: Hui Wang Cc: linux-arm-kernel, Shawn Guo, devicetree-discuss, dmitry.torokhov, jiejing.zhang, linux-input On Wednesday 10 October 2012, Hui Wang wrote: > > > > 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. > Ok, thank you! Arnd ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-10-10 6:18 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-08-16 10:47 [PATCH v4 0/3] Input: egalax_ts: parse devicetree to get gpio Hui Wang 2012-08-16 10:47 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Hui Wang 2012-08-16 10:47 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Hui Wang 2012-08-16 10:47 ` [PATCH v4 3/3] ARM: dts: imx6q-sabrelite: add eeti egalax Hui Wang 2012-08-17 0:33 ` Shawn Guo 2012-08-17 1:20 ` Hui Wang 2012-08-17 0:32 ` [PATCH v4 2/3] Input: add devicetree binding note for egalax_ts Shawn Guo 2012-08-17 0:31 ` [PATCH v4 1/3] Input: egalax_ts: get gpio from devicetree node Shawn Guo 2012-10-09 11:58 ` Arnd Bergmann 2012-10-10 3:26 ` Hui Wang 2012-10-10 6:18 ` Arnd Bergmann
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).