GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / iio / adc / ti,tsc2046.yaml
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
7 title: Texas Instruments TSC2046 touch screen controller.
8
9 maintainers:
10   - Oleksij Rempel <o.rempel@pengutronix.de>
11
12 description: |
13   TSC2046 is a touch screen controller with 8 channels ADC.
14
15 properties:
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
38 required:
39   - compatible
40   - reg
41
42 patternProperties:
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
63 allOf:
64   - $ref: /schemas/spi/spi-peripheral-props.yaml#
65
66 unevaluatedProperties: false
67
68 examples:
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 ...