xref: /linux/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/atmel,maxtouch.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Atmel maXTouch touchscreen/touchpad
8
9maintainers:
10  - Nick Dyer <nick@shmanahar.org>
11  - Linus Walleij <linus.walleij@linaro.org>
12
13description: |
14  Atmel maXTouch touchscreen or touchpads such as the mXT244
15  and similar devices.
16
17allOf:
18  - $ref: input.yaml#
19  - $ref: touchscreen/touchscreen.yaml#
20
21properties:
22  compatible:
23    const: atmel,maxtouch
24
25  reg:
26    maxItems: 1
27
28  interrupts:
29    maxItems: 1
30
31  vdda-supply:
32    description:
33      Optional regulator for the AVDD analog voltage.
34
35  vdd-supply:
36    description:
37      Optional regulator for the VDD digital voltage.
38
39  reset-gpios:
40    maxItems: 1
41    description:
42      Optional GPIO specifier for the touchscreen's reset pin
43      (active low). The line must be flagged with
44      GPIO_ACTIVE_LOW.
45
46  wake-gpios:
47    maxItems: 1
48    description:
49      Optional GPIO specifier for the touchscreen's wake pin
50      (active low). The line must be flagged with
51      GPIO_ACTIVE_LOW.
52
53  linux,gpio-keymap:
54    $ref: /schemas/types.yaml#/definitions/uint32-array
55    description: |
56      When enabled, the SPT_GPIOPWN_T19 object sends messages
57      on GPIO bit changes. An array of up to 8 entries can be provided
58      indicating the Linux keycode mapped to each bit of the status byte,
59      starting at the LSB. Linux keycodes are defined in
60      <dt-bindings/input/input.h>.
61
62      Note: the numbering of the GPIOs and the bit they start at varies
63      between maXTouch devices. You must either refer to the documentation,
64      or experiment to determine which bit corresponds to which input. Use
65      KEY_RESERVED for unused padding values.
66
67  linux,keycodes:
68    minItems: 1
69    maxItems: 8
70
71  atmel,wakeup-method:
72    $ref: /schemas/types.yaml#/definitions/uint32
73    description: |
74      The WAKE line is an active-low input that is used to wake up the touch
75      controller from deep-sleep mode before communication with the controller
76      could be started. This optional feature used to minimize current
77      consumption when the controller is in deep sleep mode. This feature is
78      relevant only to some controller families, like mXT1386 controller for
79      example.
80
81      The WAKE pin can be connected in one of the following ways:
82       1) left permanently low
83       2) connected to the I2C-compatible SCL pin
84       3) connected to a GPIO pin on the host
85    enum:
86      - 0 # ATMEL_MXT_WAKEUP_NONE
87      - 1 # ATMEL_MXT_WAKEUP_I2C_SCL
88      - 2 # ATMEL_MXT_WAKEUP_GPIO
89    default: 0
90
91  wakeup-source:
92    type: boolean
93
94required:
95  - compatible
96  - reg
97  - interrupts
98
99unevaluatedProperties: false
100
101examples:
102  - |
103    #include <dt-bindings/interrupt-controller/irq.h>
104    #include <dt-bindings/input/atmel-maxtouch.h>
105    #include <dt-bindings/gpio/gpio.h>
106    i2c {
107      #address-cells = <1>;
108      #size-cells = <0>;
109      touchscreen@4a {
110        compatible = "atmel,maxtouch";
111        reg = <0x4a>;
112        interrupt-parent = <&gpio>;
113        interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
114        reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
115        vdda-supply = <&ab8500_ldo_aux2_reg>;
116        vdd-supply = <&ab8500_ldo_aux5_reg>;
117        atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>;
118      };
119    };
120
121...
122