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/touchscreen/cypress,tt21000.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Cypress TT21000 touchscreen controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription: The Cypress TT21000 series (also known as "CYTTSP5" after
1062306a36Sopenharmony_ci  the marketing name Cypress TrueTouch Standard Product series 5).
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cimaintainers:
1362306a36Sopenharmony_ci  - Alistair Francis <alistair@alistair23.me>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciallOf:
1662306a36Sopenharmony_ci  - $ref: touchscreen.yaml#
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    const: cypress,tt21000
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  reg:
2362306a36Sopenharmony_ci    maxItems: 1
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  '#address-cells':
2662306a36Sopenharmony_ci    const: 1
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  '#size-cells':
2962306a36Sopenharmony_ci    const: 0
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  interrupts:
3262306a36Sopenharmony_ci    maxItems: 1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  vdd-supply:
3562306a36Sopenharmony_ci    description: Regulator for voltage.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  reset-gpios:
3862306a36Sopenharmony_ci    maxItems: 1
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  linux,keycodes:
4162306a36Sopenharmony_ci    description: EV_ABS specific event code generated by the axis.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  wakeup-source: true
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cipatternProperties:
4662306a36Sopenharmony_ci  "^button@[0-9]+$":
4762306a36Sopenharmony_ci    type: object
4862306a36Sopenharmony_ci    $ref: ../input.yaml#
4962306a36Sopenharmony_ci    properties:
5062306a36Sopenharmony_ci      reg:
5162306a36Sopenharmony_ci        maxItems: 1
5262306a36Sopenharmony_ci      linux,keycodes:
5362306a36Sopenharmony_ci        description: Keycode to emit
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci    required:
5662306a36Sopenharmony_ci      - reg
5762306a36Sopenharmony_ci      - linux,keycodes
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci    additionalProperties: false
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cirequired:
6262306a36Sopenharmony_ci  - compatible
6362306a36Sopenharmony_ci  - reg
6462306a36Sopenharmony_ci  - interrupts
6562306a36Sopenharmony_ci  - vdd-supply
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciunevaluatedProperties: false
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ciexamples:
7062306a36Sopenharmony_ci  - |
7162306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
7262306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
7362306a36Sopenharmony_ci    #include <dt-bindings/input/linux-event-codes.h>
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci    i2c {
7662306a36Sopenharmony_ci        #address-cells = <1>;
7762306a36Sopenharmony_ci        #size-cells = <0>;
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci        touchscreen@24 {
8062306a36Sopenharmony_ci            #address-cells = <1>;
8162306a36Sopenharmony_ci            #size-cells = <0>;
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci            compatible = "cypress,tt21000";
8462306a36Sopenharmony_ci            reg = <0x24>;
8562306a36Sopenharmony_ci            pinctrl-names = "default";
8662306a36Sopenharmony_ci            pinctrl-0 = <&tp_reset_ds203>;
8762306a36Sopenharmony_ci            interrupt-parent = <&pio>;
8862306a36Sopenharmony_ci            interrupts = <1 5 IRQ_TYPE_LEVEL_LOW>;
8962306a36Sopenharmony_ci            reset-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>;
9062306a36Sopenharmony_ci            vdd-supply = <&reg_touch>;
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci            button@0 {
9362306a36Sopenharmony_ci                reg = <0>;
9462306a36Sopenharmony_ci                linux,keycodes = <KEY_HOMEPAGE>;
9562306a36Sopenharmony_ci            };
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci            button@1 {
9862306a36Sopenharmony_ci                reg = <1>;
9962306a36Sopenharmony_ci                linux,keycodes = <KEY_MENU>;
10062306a36Sopenharmony_ci            };
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci            button@2 {
10362306a36Sopenharmony_ci                reg = <2>;
10462306a36Sopenharmony_ci                linux,keycodes = <KEY_BACK>;
10562306a36Sopenharmony_ci            };
10662306a36Sopenharmony_ci        };
10762306a36Sopenharmony_ci    };
10862306a36Sopenharmony_ci...
109