Re: [PATCHv3 1/5] Input: add common DT binding for touchscreens

From: Tony Lindgren
Date: Mon May 05 2014 - 16:12:19 EST


* Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> [140505 12:52]:
> On Mon, May 05, 2014 at 12:41:26PM -0700, Tony Lindgren wrote:
> > * Sebastian Reichel <sre@xxxxxxxxxx> [140425 16:56]:
> > > Add common DT binding documentation for touchscreen devices and
> > > implement input_parse_touchscreen_of_params, which parses the common
> > > properties and configures the input device accordingly.
> > >
> > > The method currently does not interpret the axis inversion properties,
> > > since there is no matching flag in the generic linux input device.
> > >
> > > Signed-off-by: Sebastian Reichel <sre@xxxxxxxxxx>
> > > ---
> > > .../bindings/input/touchscreen/touchscreen.txt | 27 +++++++++++++++++
> > > drivers/input/input.c | 34 ++++++++++++++++++++++
> > > include/linux/input.h | 8 +++++
> > > 3 files changed, 69 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt b/Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt
> > > new file mode 100644
> > > index 0000000..d8e0616
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt
> > > @@ -0,0 +1,27 @@
> > > +General Touchscreen Properties:
> > > +
> > > +Optional properties for Touchscreens:
> > > + - touchscreen-size-x : horizontal resolution of touchscreen
> > > + (in pixels)
> > > + - touchscreen-size-y : vertical resolution of touchscreen
> > > + (in pixels)
> > > + - touchscreen-max-pressure : maximum reported pressure (arbitrary range
> > > + dependent on the controller)
> > > + - touchscreen-fuzz-x : horizontal noise value of the absolute input
> > > + device (in pixels)
> > > + - touchscreen-fuzz-y : vertical noise value of the absolute input
> > > + device (in pixels)
> > > + - touchscreen-fuzz-pressure : pressure noise value of the absolute input
> > > + device (arbitrary range dependent on the
> > > + controller)
>
> Fuzz seems like linux-specific property, not generic one.
>
>
> > > + - touchscreen-inverted-x : X axis is inverted (boolean)
> > > + - touchscreen-inverted-y : Y axis is inverted (boolean)
> >
> > We probably also need something to swap x and y depending on the
> > display orientation in addition to the touchscreen-inverted-x and y.
> > Just swapping x and y is not enough depending if we rotate by 270
> > degrees instead of 90 degrees.
> >
> > Naturally that part can be added later.
>
> So far we've been relying on upper layers (such as tslib) to perform
> such transformations rather than re-implementing it in every driver. Are
> we saying that we need to implement this in input core?

We seem to have that already partially implemented at least with
ti,swap-xy in Documentation/devicetree/bindings/input/ads7846.txt.

But that only works for the 90 degree rotation case as it's missing
something similar to touchscreen-inverted-x I just noticed few days
ago while trying to make some legacy code disappear :)

No idea where rotation should be specified. But if the panel is
rotated based on the DT property or kernel cmdline, probably the
touchscreen should be too? In most cases touchscreens are integrated
together with the LCD panel, and they are not separate like other
input devices.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/