diff mbox

[2/2] Input: atmel_mxt_ts - Add keycodes array example

Message ID 53EE307E.8060507@itdev.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Nick Dyer Aug. 15, 2014, 4:08 p.m. UTC
On 15/08/14 13:01, Javier Martinez Canillas wrote:
>> By passing all these keycodes the touchpad worked as expected for me and the
>> driver did the same than the Chrome OS driver that has these keycodes hardcoded
>> when is_tp is true.
>>
>>> at the protocol guide for T19.
>>
>> I don't have access to proper documentation and I wouldn't expect people to have
>> access to non-public docs in order to use a Device Tree binding.
>>
>> That's why I wanted to document an example, so using this property could be
>> easier for others and they shouldn't have to look at the driver in order to
>> figure it out (and getting it wrong as you said :) )
>>
>> So it would be great if you could provide an example on how this is supposed to
>> be used.
> 
> Any comments on this? I would really appreciate if you can expand on how
> this DT property is supposed to be used so I can re-spin the atmel support
> patch for Peach boards.

The below patch improves the documentation for the gpio-property. Stephen
Warren has a good example here:
https://github.com/swarren/linux-tegra/commit/09789801

trackpad@4b {
  compatible = "atmel,maxtouch";
  reg = <0x4b>;
  interrupt-parent = <&gpio>;
  interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_LOW>;
  linux,gpio-keymap = <0 0 0 BTN_LEFT>;
};

This maps BTN_LEFT to the 4th bit of the T19 message. I haven't looked up
what GPIO number that corresponds to on the mXT224SL that he has, it varies
with the particular maXTouch device you have.

Hope this helps.

Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
---
 Documentation/devicetree/bindings/input/atmel,maxtouch.txt | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Comments

Stephen Warren Aug. 15, 2014, 4:13 p.m. UTC | #1
On 08/15/2014 10:08 AM, Nick Dyer wrote:
> On 15/08/14 13:01, Javier Martinez Canillas wrote:
>>> By passing all these keycodes the touchpad worked as expected for me and the
>>> driver did the same than the Chrome OS driver that has these keycodes hardcoded
>>> when is_tp is true.
>>>
>>>> at the protocol guide for T19.
>>>
>>> I don't have access to proper documentation and I wouldn't expect people to have
>>> access to non-public docs in order to use a Device Tree binding.
>>>
>>> That's why I wanted to document an example, so using this property could be
>>> easier for others and they shouldn't have to look at the driver in order to
>>> figure it out (and getting it wrong as you said :) )
>>>
>>> So it would be great if you could provide an example on how this is supposed to
>>> be used.
>>
>> Any comments on this? I would really appreciate if you can expand on how
>> this DT property is supposed to be used so I can re-spin the atmel support
>> patch for Peach boards.
>
> The below patch improves the documentation for the gpio-property.

That patch makes sense, and is a nice description,
Acked-by: Stephen Warren <swarren@nvidia.com>

> diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt

>   Example:
>
>          touch@4b {
>

Perhaps it makes sense to add a linux,gpio-keymap property into the 
example too though; IIRC there was an earlier patch to the docs that did 
this?
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Javier Martinez Canillas Aug. 18, 2014, 1:20 p.m. UTC | #2
Hello Nick,

On 08/15/2014 06:08 PM, Nick Dyer wrote:
>> 
>> Any comments on this? I would really appreciate if you can expand on how
>> this DT property is supposed to be used so I can re-spin the atmel support
>> patch for Peach boards.
> 
> The below patch improves the documentation for the gpio-property. Stephen
> Warren has a good example here:
> https://github.com/swarren/linux-tegra/commit/09789801
> 
> trackpad@4b {
>   compatible = "atmel,maxtouch";
>   reg = <0x4b>;
>   interrupt-parent = <&gpio>;
>   interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_LOW>;
>   linux,gpio-keymap = <0 0 0 BTN_LEFT>;
> };
> 
> This maps BTN_LEFT to the 4th bit of the T19 message. I haven't looked up
> what GPIO number that corresponds to on the mXT224SL that he has, it varies
> with the particular maXTouch device you have.
> 
> Hope this helps.
>

Thanks a lot for the patch and the pointer to Stephen's DTS. I'll do some
experimentation then to figure out the right values since I don't have
proper documentation. Fortunately the Chrome OS 3.8 downstream driver
works on -next so I can use evdev to compare if both drivers behave the same.

> Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>

Best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
index baef432..1852906 100644
--- a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
+++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
@@ -11,10 +11,17 @@  Required properties:

 Optional properties for main touchpad device:

-- linux,gpio-keymap: An array of up to 4 entries indicating the Linux
-    keycode generated by each GPIO. Linux keycodes are defined in
+- linux,gpio-keymap: When enabled, the SPT_GPIOPWN_T19 object sends messages
+    on GPIO bit changes. An array of up to 8 entries can be provided
+    indicating the Linux keycode mapped to each bit of the status byte,
+    starting at the LSB. Linux keycodes are defined in
     <dt-bindings/input/input.h>.

+    Note: the numbering of the GPIOs and the bit they start at varies between
+    maXTouch devices. You must either refer to the documentation, or
+    experiment to determine which bit corresponds to which input. Use
+    KEY_RESERVED for unused padding values.
+
 Example:

        touch@4b {