104f1842aSLinus Walleij# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
204f1842aSLinus Walleij%YAML 1.2
304f1842aSLinus Walleij---
404f1842aSLinus Walleij$id: http://devicetree.org/schemas/input/atmel,maxtouch.yaml#
504f1842aSLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
604f1842aSLinus Walleij
704f1842aSLinus Walleijtitle: Atmel maXTouch touchscreen/touchpad
804f1842aSLinus Walleij
904f1842aSLinus Walleijmaintainers:
1004f1842aSLinus Walleij  - Nick Dyer <nick@shmanahar.org>
1104f1842aSLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
1204f1842aSLinus Walleij
1304f1842aSLinus Walleijdescription: |
1404f1842aSLinus Walleij  Atmel maXTouch touchscreen or touchpads such as the mXT244
1504f1842aSLinus Walleij  and similar devices.
1604f1842aSLinus Walleij
17*272a2618SAndré ApitzschallOf:
18*272a2618SAndré Apitzsch  - $ref: input.yaml#
19*272a2618SAndré Apitzsch
2004f1842aSLinus Walleijproperties:
2104f1842aSLinus Walleij  compatible:
2204f1842aSLinus Walleij    const: atmel,maxtouch
2304f1842aSLinus Walleij
2404f1842aSLinus Walleij  reg:
2504f1842aSLinus Walleij    maxItems: 1
2604f1842aSLinus Walleij
2704f1842aSLinus Walleij  interrupts:
2804f1842aSLinus Walleij    maxItems: 1
2904f1842aSLinus Walleij
3004f1842aSLinus Walleij  vdda-supply:
3104f1842aSLinus Walleij    description:
3204f1842aSLinus Walleij      Optional regulator for the AVDD analog voltage.
3304f1842aSLinus Walleij
3404f1842aSLinus Walleij  vdd-supply:
3504f1842aSLinus Walleij    description:
3604f1842aSLinus Walleij      Optional regulator for the VDD digital voltage.
3704f1842aSLinus Walleij
3804f1842aSLinus Walleij  reset-gpios:
3904f1842aSLinus Walleij    maxItems: 1
4004f1842aSLinus Walleij    description:
4104f1842aSLinus Walleij      Optional GPIO specifier for the touchscreen's reset pin
4204f1842aSLinus Walleij      (active low). The line must be flagged with
4304f1842aSLinus Walleij      GPIO_ACTIVE_LOW.
4404f1842aSLinus Walleij
45ae4c86a0SDmitry Osipenko  wake-gpios:
46ae4c86a0SDmitry Osipenko    maxItems: 1
47ae4c86a0SDmitry Osipenko    description:
48ae4c86a0SDmitry Osipenko      Optional GPIO specifier for the touchscreen's wake pin
49ae4c86a0SDmitry Osipenko      (active low). The line must be flagged with
50ae4c86a0SDmitry Osipenko      GPIO_ACTIVE_LOW.
51ae4c86a0SDmitry Osipenko
5204f1842aSLinus Walleij  linux,gpio-keymap:
5304f1842aSLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint32-array
5404f1842aSLinus Walleij    description: |
5504f1842aSLinus Walleij      When enabled, the SPT_GPIOPWN_T19 object sends messages
5604f1842aSLinus Walleij      on GPIO bit changes. An array of up to 8 entries can be provided
5704f1842aSLinus Walleij      indicating the Linux keycode mapped to each bit of the status byte,
5804f1842aSLinus Walleij      starting at the LSB. Linux keycodes are defined in
5904f1842aSLinus Walleij      <dt-bindings/input/input.h>.
6004f1842aSLinus Walleij
6104f1842aSLinus Walleij      Note: the numbering of the GPIOs and the bit they start at varies
6204f1842aSLinus Walleij      between maXTouch devices. You must either refer to the documentation,
6304f1842aSLinus Walleij      or experiment to determine which bit corresponds to which input. Use
6404f1842aSLinus Walleij      KEY_RESERVED for unused padding values.
6504f1842aSLinus Walleij
66*272a2618SAndré Apitzsch  linux,keycodes:
67*272a2618SAndré Apitzsch    minItems: 1
68*272a2618SAndré Apitzsch    maxItems: 8
69*272a2618SAndré Apitzsch
70ae4c86a0SDmitry Osipenko  atmel,wakeup-method:
71ae4c86a0SDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
72ae4c86a0SDmitry Osipenko    description: |
73ae4c86a0SDmitry Osipenko      The WAKE line is an active-low input that is used to wake up the touch
74ae4c86a0SDmitry Osipenko      controller from deep-sleep mode before communication with the controller
75ae4c86a0SDmitry Osipenko      could be started. This optional feature used to minimize current
76ae4c86a0SDmitry Osipenko      consumption when the controller is in deep sleep mode. This feature is
77ae4c86a0SDmitry Osipenko      relevant only to some controller families, like mXT1386 controller for
78ae4c86a0SDmitry Osipenko      example.
79ae4c86a0SDmitry Osipenko
80ae4c86a0SDmitry Osipenko      The WAKE pin can be connected in one of the following ways:
81ae4c86a0SDmitry Osipenko       1) left permanently low
82ae4c86a0SDmitry Osipenko       2) connected to the I2C-compatible SCL pin
83ae4c86a0SDmitry Osipenko       3) connected to a GPIO pin on the host
84ae4c86a0SDmitry Osipenko    enum:
85ae4c86a0SDmitry Osipenko      - 0 # ATMEL_MXT_WAKEUP_NONE
86ae4c86a0SDmitry Osipenko      - 1 # ATMEL_MXT_WAKEUP_I2C_SCL
87ae4c86a0SDmitry Osipenko      - 2 # ATMEL_MXT_WAKEUP_GPIO
88ae4c86a0SDmitry Osipenko    default: 0
89ae4c86a0SDmitry Osipenko
905b0e6fd8SKrzysztof Kozlowski  wakeup-source:
915b0e6fd8SKrzysztof Kozlowski    type: boolean
925b0e6fd8SKrzysztof Kozlowski
9304f1842aSLinus Walleijrequired:
9404f1842aSLinus Walleij  - compatible
9504f1842aSLinus Walleij  - reg
9604f1842aSLinus Walleij  - interrupts
9704f1842aSLinus Walleij
9804f1842aSLinus WalleijadditionalProperties: false
9904f1842aSLinus Walleij
10004f1842aSLinus Walleijexamples:
10104f1842aSLinus Walleij  - |
10204f1842aSLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
103ae4c86a0SDmitry Osipenko    #include <dt-bindings/input/atmel-maxtouch.h>
10404f1842aSLinus Walleij    #include <dt-bindings/gpio/gpio.h>
10504f1842aSLinus Walleij    i2c {
10604f1842aSLinus Walleij      #address-cells = <1>;
10704f1842aSLinus Walleij      #size-cells = <0>;
10804f1842aSLinus Walleij      touchscreen@4a {
10904f1842aSLinus Walleij        compatible = "atmel,maxtouch";
11004f1842aSLinus Walleij        reg = <0x4a>;
11104f1842aSLinus Walleij        interrupt-parent = <&gpio>;
11204f1842aSLinus Walleij        interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
11304f1842aSLinus Walleij        reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
11404f1842aSLinus Walleij        vdda-supply = <&ab8500_ldo_aux2_reg>;
11504f1842aSLinus Walleij        vdd-supply = <&ab8500_ldo_aux5_reg>;
116ae4c86a0SDmitry Osipenko        atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>;
11704f1842aSLinus Walleij      };
11804f1842aSLinus Walleij    };
11904f1842aSLinus Walleij
12004f1842aSLinus Walleij...
121