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

From: Franklin S Cooper Jr
Date: Thu Oct 27 2016 - 13:55:16 EST




On 10/26/2016 06:18 PM, Rob Herring wrote:
> 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.

Would "goodix,inter-x-y" work?
>
> Rob
>