1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/adc/ti,tsc2046.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Texas Instruments TSC2046 touch screen controller.
8
9maintainers:
10  - Oleksij Rempel <o.rempel@pengutronix.de>
11
12description: |
13  TSC2046 is a touch screen controller with 8 channels ADC.
14
15properties:
16  compatible:
17    enum:
18      - ti,tsc2046e-adc
19
20  reg:
21    maxItems: 1
22
23  interrupts:
24    maxItems: 1
25
26  vref-supply:
27    description: Optional supply of the reference voltage
28
29  "#io-channel-cells":
30    const: 1
31
32  '#address-cells':
33    const: 1
34
35  '#size-cells':
36    const: 0
37
38required:
39  - compatible
40  - reg
41
42patternProperties:
43  "^channel@[0-7]$":
44    $ref: "adc.yaml"
45    type: object
46
47    properties:
48      reg:
49        description: |
50          The channel number. It can have up to 8 channels
51        items:
52          minimum: 0
53          maximum: 7
54
55      settling-time-us: true
56      oversampling-ratio: true
57
58    required:
59      - reg
60
61    additionalProperties: false
62
63allOf:
64  - $ref: /schemas/spi/spi-peripheral-props.yaml#
65
66unevaluatedProperties: false
67
68examples:
69  - |
70    #include <dt-bindings/interrupt-controller/irq.h>
71    spi {
72        #address-cells = <1>;
73        #size-cells = <0>;
74
75        adc@0 {
76            compatible = "ti,tsc2046e-adc";
77            reg = <0>;
78            spi-max-frequency = <1000000>;
79            interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>;
80            #io-channel-cells = <1>;
81
82            #address-cells = <1>;
83            #size-cells = <0>;
84
85            channel@0 {
86              reg = <0>;
87            };
88            channel@1 {
89              reg = <1>;
90              settling-time-us = <700>;
91              oversampling-ratio = <5>;
92            };
93            channel@2 {
94              reg = <2>;
95            };
96            channel@3 {
97              reg = <3>;
98              settling-time-us = <700>;
99              oversampling-ratio = <5>;
100            };
101            channel@4 {
102              reg = <4>;
103              settling-time-us = <700>;
104              oversampling-ratio = <5>;
105            };
106            channel@5 {
107              reg = <5>;
108              settling-time-us = <700>;
109              oversampling-ratio = <5>;
110            };
111            channel@6 {
112              reg = <6>;
113            };
114            channel@7 {
115              reg = <7>;
116            };
117        };
118    };
119...
120