* [PATCH 1/5] dt-bindings: input: touchscreen: add bindings for eeti touchscreen controller
@ 2018-06-17 11:46 Daniel Mack
2018-06-17 11:46 ` [PATCH 2/5] input: touchscreen: eeti: add device tree matching table Daniel Mack
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Daniel Mack @ 2018-06-17 11:46 UTC (permalink / raw)
To: dmitry.torokhov, robh+dt; +Cc: linux-input, devicetree, Daniel Mack
Describe the bindings for EETI touchscreen controllers.
Signed-off-by: Daniel Mack <daniel@zonque.org>
---
.../bindings/input/touchscreen/eeti.txt | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/eeti.txt
diff --git a/Documentation/devicetree/bindings/input/touchscreen/eeti.txt b/Documentation/devicetree/bindings/input/touchscreen/eeti.txt
new file mode 100644
index 000000000000..735e75db023f
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/eeti.txt
@@ -0,0 +1,31 @@
+Bindings for EETI touchscreen controller
+
+Required properties:
+- compatible: should be "eeti,exc3000-i2c"
+- reg: I2C address of the chip. Should be set to <0xa>
+- interrupts: interrupt to which the chip is connected
+
+Optional properties:
+- attn-gpios: A handle to a GPIO to check whether interrupt is still
+ latched. This is necessary for platforms that lack
+ support for level-triggered IRQs.
+
+The following optional properties described in touchscreen.txt are
+also supported:
+
+- touchscreen-inverted-x
+- touchscreen-inverted-y
+
+
+Example:
+
+i2c-master {
+ touchscreen@a {
+ compatible = "eeti,exc3000-i2c";
+ reg = <0xa>;
+ interrupt-parent = <&gpio>;
+ interrupts = <123 IRQ_TYPE_EDGE_RISING>;
+ attn-gpios = <&gpio 123 GPIO_ACTIVE_HIGH>;
+ };
+};
+
--
2.17.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 2/5] input: touchscreen: eeti: add device tree matching table 2018-06-17 11:46 [PATCH 1/5] dt-bindings: input: touchscreen: add bindings for eeti touchscreen controller Daniel Mack @ 2018-06-17 11:46 ` Daniel Mack 2018-06-17 11:46 ` [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen Daniel Mack ` (2 subsequent siblings) 3 siblings, 0 replies; 7+ messages in thread From: Daniel Mack @ 2018-06-17 11:46 UTC (permalink / raw) To: dmitry.torokhov, robh+dt; +Cc: linux-input, devicetree, Daniel Mack Provide a match table so that the driver can be used in devicetree setups. More properties are added in a later patch. Signed-off-by: Daniel Mack <daniel@zonque.org> --- drivers/input/touchscreen/eeti_ts.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c index 2facad75eb6d..cc4fd33f9d6d 100644 --- a/drivers/input/touchscreen/eeti_ts.c +++ b/drivers/input/touchscreen/eeti_ts.c @@ -32,6 +32,7 @@ #include <linux/i2c.h> #include <linux/timer.h> #include <linux/gpio/consumer.h> +#include <linux/of.h> #include <linux/slab.h> #include <asm/unaligned.h> @@ -262,10 +263,18 @@ static const struct i2c_device_id eeti_ts_id[] = { }; MODULE_DEVICE_TABLE(i2c, eeti_ts_id); +#ifdef CONFIG_OF +static const struct of_device_id of_eeti_ts_match[] = { + { .compatible = "eeti,exc3000-i2c", }, + { } +}; +#endif + static struct i2c_driver eeti_ts_driver = { .driver = { .name = "eeti_ts", .pm = &eeti_ts_pm, + .of_match_table = of_match_ptr(of_eeti_ts_match), }, .probe = eeti_ts_probe, .id_table = eeti_ts_id, -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen 2018-06-17 11:46 [PATCH 1/5] dt-bindings: input: touchscreen: add bindings for eeti touchscreen controller Daniel Mack 2018-06-17 11:46 ` [PATCH 2/5] input: touchscreen: eeti: add device tree matching table Daniel Mack @ 2018-06-17 11:46 ` Daniel Mack 2018-06-22 18:59 ` Dmitry Torokhov 2018-06-17 11:46 ` [PATCH 4/5] input: touchscreen: eeti: fix link to documentation in header Daniel Mack 2018-06-17 11:46 ` [PATCH 5/5] input: touchscreen: eeti: update email address Daniel Mack 3 siblings, 1 reply; 7+ messages in thread From: Daniel Mack @ 2018-06-17 11:46 UTC (permalink / raw) To: dmitry.torokhov, robh+dt; +Cc: linux-input, devicetree, Daniel Mack Use touchscreen_parse_properties() to automatically set some of the common touchscreen properties. Also make flip_x and flip_y members of the private device context and allow setting them through both the module parameters and devicetree properties. Signed-off-by: Daniel Mack <daniel@zonque.org> --- drivers/input/touchscreen/eeti_ts.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c index cc4fd33f9d6d..e7fade1a895c 100644 --- a/drivers/input/touchscreen/eeti_ts.c +++ b/drivers/input/touchscreen/eeti_ts.c @@ -28,6 +28,7 @@ #include <linux/moduleparam.h> #include <linux/kernel.h> #include <linux/input.h> +#include <linux/input/touchscreen.h> #include <linux/interrupt.h> #include <linux/i2c.h> #include <linux/timer.h> @@ -48,6 +49,7 @@ struct eeti_ts { struct i2c_client *client; struct input_dev *input; struct gpio_desc *attn_gpio; + bool flip_x, flip_y; bool running; }; @@ -74,10 +76,10 @@ static void eeti_ts_report_event(struct eeti_ts *eeti, u8 *buf) x >>= res - EETI_TS_BITDEPTH; y >>= res - EETI_TS_BITDEPTH; - if (flip_x) + if (eeti->flip_x) x = EETI_MAXVAL - x; - if (flip_y) + if (eeti->flip_y) y = EETI_MAXVAL - y; if (buf[0] & REPORT_BIT_HAS_PRESSURE) @@ -149,6 +151,7 @@ static void eeti_ts_close(struct input_dev *dev) static int eeti_ts_probe(struct i2c_client *client, const struct i2c_device_id *idp) { + struct touchscreen_properties props; struct device *dev = &client->dev; struct eeti_ts *eeti; struct input_dev *input; @@ -179,6 +182,8 @@ static int eeti_ts_probe(struct i2c_client *client, input_set_abs_params(input, ABS_Y, 0, EETI_MAXVAL, 0, 0); input_set_abs_params(input, ABS_PRESSURE, 0, 0xff, 0, 0); + touchscreen_parse_properties(input, false, &props); + input->name = client->name; input->id.bustype = BUS_I2C; input->open = eeti_ts_open; @@ -187,6 +192,9 @@ static int eeti_ts_probe(struct i2c_client *client, eeti->client = client; eeti->input = input; + eeti->flip_x = flip_x || props.invert_x; + eeti->flip_y = flip_y || props.invert_y; + eeti->attn_gpio = devm_gpiod_get_optional(dev, "attn", GPIOD_IN); if (IS_ERR(eeti->attn_gpio)) return PTR_ERR(eeti->attn_gpio); -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen 2018-06-17 11:46 ` [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen Daniel Mack @ 2018-06-22 18:59 ` Dmitry Torokhov 2018-06-23 15:41 ` Daniel Mack 0 siblings, 1 reply; 7+ messages in thread From: Dmitry Torokhov @ 2018-06-22 18:59 UTC (permalink / raw) To: Daniel Mack; +Cc: robh+dt, linux-input, devicetree Hi Daniel, On Sun, Jun 17, 2018 at 01:46:57PM +0200, Daniel Mack wrote: > Use touchscreen_parse_properties() to automatically set some of the common > touchscreen properties. Also make flip_x and flip_y members of the private > device context and allow setting them through both the module parameters and > devicetree properties. > > Signed-off-by: Daniel Mack <daniel@zonque.org> > --- > drivers/input/touchscreen/eeti_ts.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c > index cc4fd33f9d6d..e7fade1a895c 100644 > --- a/drivers/input/touchscreen/eeti_ts.c > +++ b/drivers/input/touchscreen/eeti_ts.c > @@ -28,6 +28,7 @@ > #include <linux/moduleparam.h> > #include <linux/kernel.h> > #include <linux/input.h> > +#include <linux/input/touchscreen.h> > #include <linux/interrupt.h> > #include <linux/i2c.h> > #include <linux/timer.h> > @@ -48,6 +49,7 @@ struct eeti_ts { > struct i2c_client *client; > struct input_dev *input; > struct gpio_desc *attn_gpio; > + bool flip_x, flip_y; > bool running; > }; > > @@ -74,10 +76,10 @@ static void eeti_ts_report_event(struct eeti_ts *eeti, u8 *buf) > x >>= res - EETI_TS_BITDEPTH; > y >>= res - EETI_TS_BITDEPTH; > > - if (flip_x) > + if (eeti->flip_x) > x = EETI_MAXVAL - x; > > - if (flip_y) > + if (eeti->flip_y) > y = EETI_MAXVAL - y; > > if (buf[0] & REPORT_BIT_HAS_PRESSURE) > @@ -149,6 +151,7 @@ static void eeti_ts_close(struct input_dev *dev) > static int eeti_ts_probe(struct i2c_client *client, > const struct i2c_device_id *idp) > { > + struct touchscreen_properties props; > struct device *dev = &client->dev; > struct eeti_ts *eeti; > struct input_dev *input; > @@ -179,6 +182,8 @@ static int eeti_ts_probe(struct i2c_client *client, > input_set_abs_params(input, ABS_Y, 0, EETI_MAXVAL, 0, 0); > input_set_abs_params(input, ABS_PRESSURE, 0, 0xff, 0, 0); > > + touchscreen_parse_properties(input, false, &props); > + > input->name = client->name; > input->id.bustype = BUS_I2C; > input->open = eeti_ts_open; > @@ -187,6 +192,9 @@ static int eeti_ts_probe(struct i2c_client *client, > eeti->client = client; > eeti->input = input; > > + eeti->flip_x = flip_x || props.invert_x; > + eeti->flip_y = flip_y || props.invert_y; I would like to get rid completely of these module parameters. The only user of this drover in mainline is arch/arm/mach-pxa/raumfeld.c and I do not know how it is mounted there, but we can adjust with static board properties if needed. Can we please switch to not only touchscreen_parse_properties() but also touchscreen_report_pos()? > + > eeti->attn_gpio = devm_gpiod_get_optional(dev, "attn", GPIOD_IN); > if (IS_ERR(eeti->attn_gpio)) > return PTR_ERR(eeti->attn_gpio); > -- > 2.17.1 > Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen 2018-06-22 18:59 ` Dmitry Torokhov @ 2018-06-23 15:41 ` Daniel Mack 0 siblings, 0 replies; 7+ messages in thread From: Daniel Mack @ 2018-06-23 15:41 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: robh+dt, linux-input, devicetree Hi Dmitry, On Friday, June 22, 2018 08:59 PM, Dmitry Torokhov wrote: > On Sun, Jun 17, 2018 at 01:46:57PM +0200, Daniel Mack wrote: >> + eeti->flip_x = flip_x || props.invert_x; >> + eeti->flip_y = flip_y || props.invert_y; > > I would like to get rid completely of these module parameters. The only > user of this drover in mainline is arch/arm/mach-pxa/raumfeld.c and I do > not know how it is mounted there, but we can adjust with static board > properties if needed. Yeah, you're right. I know for a fact that this platform does not use the module parameters, so let's just drop them. > Can we please switch to not only touchscreen_parse_properties() but also > touchscreen_report_pos()? Didn't know about this one. Nice. Will update the series and repost. Thanks! Daniel ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 4/5] input: touchscreen: eeti: fix link to documentation in header 2018-06-17 11:46 [PATCH 1/5] dt-bindings: input: touchscreen: add bindings for eeti touchscreen controller Daniel Mack 2018-06-17 11:46 ` [PATCH 2/5] input: touchscreen: eeti: add device tree matching table Daniel Mack 2018-06-17 11:46 ` [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen Daniel Mack @ 2018-06-17 11:46 ` Daniel Mack 2018-06-17 11:46 ` [PATCH 5/5] input: touchscreen: eeti: update email address Daniel Mack 3 siblings, 0 replies; 7+ messages in thread From: Daniel Mack @ 2018-06-17 11:46 UTC (permalink / raw) To: dmitry.torokhov, robh+dt; +Cc: linux-input, devicetree, Daniel Mack Keep this up-to-date in case anybody need to dive into the documentation again. Signed-off-by: Daniel Mack <daniel@zonque.org> --- drivers/input/touchscreen/eeti_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c index e7fade1a895c..0c1092fb4955 100644 --- a/drivers/input/touchscreen/eeti_ts.c +++ b/drivers/input/touchscreen/eeti_ts.c @@ -3,7 +3,7 @@ * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de> * * See EETI's software guide for the protocol specification: - * http://home.eeti.com.tw/web20/eg/guide.htm + * http://home.eeti.com.tw/documentation.html * * Based on migor_ts.c * Copyright (c) 2008 Magnus Damm -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/5] input: touchscreen: eeti: update email address 2018-06-17 11:46 [PATCH 1/5] dt-bindings: input: touchscreen: add bindings for eeti touchscreen controller Daniel Mack ` (2 preceding siblings ...) 2018-06-17 11:46 ` [PATCH 4/5] input: touchscreen: eeti: fix link to documentation in header Daniel Mack @ 2018-06-17 11:46 ` Daniel Mack 3 siblings, 0 replies; 7+ messages in thread From: Daniel Mack @ 2018-06-17 11:46 UTC (permalink / raw) To: dmitry.torokhov, robh+dt; +Cc: linux-input, devicetree, Daniel Mack Update the email address in the header and in the module properties. Signed-off-by: Daniel Mack <daniel@zonque.org> --- drivers/input/touchscreen/eeti_ts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c index 0c1092fb4955..51060299b06a 100644 --- a/drivers/input/touchscreen/eeti_ts.c +++ b/drivers/input/touchscreen/eeti_ts.c @@ -1,6 +1,6 @@ /* * Touch Screen driver for EETI's I2C connected touch screen panels - * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de> + * Copyright (c) 2009,2018 Daniel Mack <daniel@zonque.org> * * See EETI's software guide for the protocol specification: * http://home.eeti.com.tw/documentation.html @@ -291,5 +291,5 @@ static struct i2c_driver eeti_ts_driver = { module_i2c_driver(eeti_ts_driver); MODULE_DESCRIPTION("EETI Touchscreen driver"); -MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>"); +MODULE_AUTHOR("Daniel Mack <daniel@zonque.org>"); MODULE_LICENSE("GPL"); -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-06-23 15:41 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-06-17 11:46 [PATCH 1/5] dt-bindings: input: touchscreen: add bindings for eeti touchscreen controller Daniel Mack 2018-06-17 11:46 ` [PATCH 2/5] input: touchscreen: eeti: add device tree matching table Daniel Mack 2018-06-17 11:46 ` [PATCH 3/5] input: touchscreen: eeti: add support for DT properties to flip screen Daniel Mack 2018-06-22 18:59 ` Dmitry Torokhov 2018-06-23 15:41 ` Daniel Mack 2018-06-17 11:46 ` [PATCH 4/5] input: touchscreen: eeti: fix link to documentation in header Daniel Mack 2018-06-17 11:46 ` [PATCH 5/5] input: touchscreen: eeti: update email address Daniel Mack
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.