162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/input/atmel,maxtouch.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Atmel maXTouch touchscreen/touchpad
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Nick Dyer <nick@shmanahar.org>
1162306a36Sopenharmony_ci  - Linus Walleij <linus.walleij@linaro.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  Atmel maXTouch touchscreen or touchpads such as the mXT244
1562306a36Sopenharmony_ci  and similar devices.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciallOf:
1862306a36Sopenharmony_ci  - $ref: input.yaml#
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    const: atmel,maxtouch
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  reg:
2562306a36Sopenharmony_ci    maxItems: 1
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  interrupts:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  vdda-supply:
3162306a36Sopenharmony_ci    description:
3262306a36Sopenharmony_ci      Optional regulator for the AVDD analog voltage.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  vdd-supply:
3562306a36Sopenharmony_ci    description:
3662306a36Sopenharmony_ci      Optional regulator for the VDD digital voltage.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  reset-gpios:
3962306a36Sopenharmony_ci    maxItems: 1
4062306a36Sopenharmony_ci    description:
4162306a36Sopenharmony_ci      Optional GPIO specifier for the touchscreen's reset pin
4262306a36Sopenharmony_ci      (active low). The line must be flagged with
4362306a36Sopenharmony_ci      GPIO_ACTIVE_LOW.
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  wake-gpios:
4662306a36Sopenharmony_ci    maxItems: 1
4762306a36Sopenharmony_ci    description:
4862306a36Sopenharmony_ci      Optional GPIO specifier for the touchscreen's wake pin
4962306a36Sopenharmony_ci      (active low). The line must be flagged with
5062306a36Sopenharmony_ci      GPIO_ACTIVE_LOW.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  linux,gpio-keymap:
5362306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32-array
5462306a36Sopenharmony_ci    description: |
5562306a36Sopenharmony_ci      When enabled, the SPT_GPIOPWN_T19 object sends messages
5662306a36Sopenharmony_ci      on GPIO bit changes. An array of up to 8 entries can be provided
5762306a36Sopenharmony_ci      indicating the Linux keycode mapped to each bit of the status byte,
5862306a36Sopenharmony_ci      starting at the LSB. Linux keycodes are defined in
5962306a36Sopenharmony_ci      <dt-bindings/input/input.h>.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci      Note: the numbering of the GPIOs and the bit they start at varies
6262306a36Sopenharmony_ci      between maXTouch devices. You must either refer to the documentation,
6362306a36Sopenharmony_ci      or experiment to determine which bit corresponds to which input. Use
6462306a36Sopenharmony_ci      KEY_RESERVED for unused padding values.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci  linux,keycodes:
6762306a36Sopenharmony_ci    minItems: 1
6862306a36Sopenharmony_ci    maxItems: 8
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  atmel,wakeup-method:
7162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
7262306a36Sopenharmony_ci    description: |
7362306a36Sopenharmony_ci      The WAKE line is an active-low input that is used to wake up the touch
7462306a36Sopenharmony_ci      controller from deep-sleep mode before communication with the controller
7562306a36Sopenharmony_ci      could be started. This optional feature used to minimize current
7662306a36Sopenharmony_ci      consumption when the controller is in deep sleep mode. This feature is
7762306a36Sopenharmony_ci      relevant only to some controller families, like mXT1386 controller for
7862306a36Sopenharmony_ci      example.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci      The WAKE pin can be connected in one of the following ways:
8162306a36Sopenharmony_ci       1) left permanently low
8262306a36Sopenharmony_ci       2) connected to the I2C-compatible SCL pin
8362306a36Sopenharmony_ci       3) connected to a GPIO pin on the host
8462306a36Sopenharmony_ci    enum:
8562306a36Sopenharmony_ci      - 0 # ATMEL_MXT_WAKEUP_NONE
8662306a36Sopenharmony_ci      - 1 # ATMEL_MXT_WAKEUP_I2C_SCL
8762306a36Sopenharmony_ci      - 2 # ATMEL_MXT_WAKEUP_GPIO
8862306a36Sopenharmony_ci    default: 0
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci  wakeup-source:
9162306a36Sopenharmony_ci    type: boolean
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_cirequired:
9462306a36Sopenharmony_ci  - compatible
9562306a36Sopenharmony_ci  - reg
9662306a36Sopenharmony_ci  - interrupts
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciadditionalProperties: false
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciexamples:
10162306a36Sopenharmony_ci  - |
10262306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
10362306a36Sopenharmony_ci    #include <dt-bindings/input/atmel-maxtouch.h>
10462306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
10562306a36Sopenharmony_ci    i2c {
10662306a36Sopenharmony_ci      #address-cells = <1>;
10762306a36Sopenharmony_ci      #size-cells = <0>;
10862306a36Sopenharmony_ci      touchscreen@4a {
10962306a36Sopenharmony_ci        compatible = "atmel,maxtouch";
11062306a36Sopenharmony_ci        reg = <0x4a>;
11162306a36Sopenharmony_ci        interrupt-parent = <&gpio>;
11262306a36Sopenharmony_ci        interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
11362306a36Sopenharmony_ci        reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
11462306a36Sopenharmony_ci        vdda-supply = <&ab8500_ldo_aux2_reg>;
11562306a36Sopenharmony_ci        vdd-supply = <&ab8500_ldo_aux5_reg>;
11662306a36Sopenharmony_ci        atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>;
11762306a36Sopenharmony_ci      };
11862306a36Sopenharmony_ci    };
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci...
121