1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/touchscreen/goodix,gt9916.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Goodix Berlin series touchscreen controller
8
9description: The Goodix Berlin series of touchscreen controllers
10  be connected to either I2C or SPI buses.
11
12maintainers:
13  - Neil Armstrong <neil.armstrong@linaro.org>
14
15allOf:
16  - $ref: touchscreen.yaml#
17  - $ref: /schemas/spi/spi-peripheral-props.yaml#
18
19properties:
20  compatible:
21    enum:
22      - goodix,gt9916
23
24  reg:
25    maxItems: 1
26
27  interrupts:
28    maxItems: 1
29
30  reset-gpios:
31    maxItems: 1
32
33  avdd-supply:
34    description: Analog power supply regulator on AVDD pin
35
36  vddio-supply:
37    description: power supply regulator on VDDIO pin
38
39  spi-max-frequency: true
40  touchscreen-inverted-x: true
41  touchscreen-inverted-y: true
42  touchscreen-size-x: true
43  touchscreen-size-y: true
44  touchscreen-swapped-x-y: true
45
46additionalProperties: false
47
48required:
49  - compatible
50  - reg
51  - interrupts
52  - avdd-supply
53  - touchscreen-size-x
54  - touchscreen-size-y
55
56examples:
57  - |
58    #include <dt-bindings/interrupt-controller/irq.h>
59    #include <dt-bindings/gpio/gpio.h>
60    i2c {
61      #address-cells = <1>;
62      #size-cells = <0>;
63      touchscreen@5d {
64        compatible = "goodix,gt9916";
65        reg = <0x5d>;
66        interrupt-parent = <&gpio>;
67        interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
68        reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
69        avdd-supply = <&ts_avdd>;
70        touchscreen-size-x = <1024>;
71        touchscreen-size-y = <768>;
72      };
73    };
74  - |
75    #include <dt-bindings/interrupt-controller/irq.h>
76    #include <dt-bindings/gpio/gpio.h>
77    spi {
78      #address-cells = <1>;
79      #size-cells = <0>;
80      num-cs = <1>;
81      cs-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
82      touchscreen@0 {
83        compatible = "goodix,gt9916";
84        reg = <0>;
85        interrupt-parent = <&gpio>;
86        interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
87        reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
88        avdd-supply = <&ts_avdd>;
89        spi-max-frequency = <1000000>;
90        touchscreen-size-x = <1024>;
91        touchscreen-size-y = <768>;
92      };
93    };
94
95...
96