Re: [PATCH 4/4] Input: goodix - Support interchanging x and y coordinates in hardware

From: Rob Herring
Date: Wed Oct 26 2016 - 19:18:25 EST


On Thu, Oct 20, 2016 at 02:59:17PM -0500, Franklin S Cooper Jr wrote:
> On systems with a fixed display/touchscreen orientation it is important to
> pass in the "correct" x and y coordinates based on the orientation.
> Currently, to support landscape and portrait touchscreen-swapped-x-y
> simply does the following:
>
> Assuming touchscreen is as follows:
> X: 1280 Y:800 programmed in touchscreen controller and also interchange
> bit cleared. Assuming ts mounted in portrait mode.
>
> 1280 (X)
> ------
> | |
> | | 800 (Y)
> | |
> | |
> ------
>
> 800 (Y)
> ------
> | |
> | | 1280 (X)
> | |
> | |
> ------
>
> However, the above isn't really what we want especially in distros that
> assumes a fixed orientation. In this case what we really want is to
> interchange the x and y coordinates so the Y coordinate can return a max
> value of 1280 and X can return a max value of 800.
>
> 800 (X)
> ------
> | |
> | | 1280 (Y)
> | |
> | |
> ------
>
> Since the driver is limited to the value reported by the touchscreen
> controller this issue can't be fixed purely in the driver. Therefore,
> add a new DT property that supports interchanging X and Y coordinates
> internally within the hardware.

I'm not sure I follow why existing properties don't cover this.

>
> Signed-off-by: Franklin S Cooper Jr <fcooper@xxxxxx>
> ---
> .../devicetree/bindings/input/touchscreen/goodix.txt | 2 ++
> drivers/input/touchscreen/goodix.c | 13 +++++++++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.txt b/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
> index ebc7cb7..b8be2ab 100644
> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
> @@ -25,6 +25,8 @@ Optional properties:
> - touchscreen-inverted-y : Y axis is inverted (boolean)
> - touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
> (swapping is done after inverting the axis)
> + - touchscreen-inter-x-y : X and Y maximum values programmed in the device
> + are interchanged internally in hardware. (boolean)

Minimally this should be vendor specific and have a vendor prefix I
think.

Rob