GNU Linux-libre 5.10.217-gnu1
[releases.git] / Documentation / devicetree / bindings / thermal / allwinner,sun8i-a83t-ths.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/thermal/allwinner,sun8i-a83t-ths.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner SUN8I Thermal Controller Device Tree Bindings
8
9 maintainers:
10   - Vasily Khoruzhick <anarsoul@gmail.com>
11   - Yangtao Li <tiny.windzz@gmail.com>
12
13 properties:
14   compatible:
15     enum:
16       - allwinner,sun8i-a83t-ths
17       - allwinner,sun8i-h3-ths
18       - allwinner,sun8i-r40-ths
19       - allwinner,sun50i-a64-ths
20       - allwinner,sun50i-a100-ths
21       - allwinner,sun50i-h5-ths
22       - allwinner,sun50i-h6-ths
23
24   clocks:
25     minItems: 1
26     maxItems: 2
27     items:
28       - description: Bus Clock
29       - description: Module Clock
30
31   clock-names:
32     minItems: 1
33     maxItems: 2
34     items:
35       - const: bus
36       - const: mod
37
38   reg:
39     maxItems: 1
40
41   interrupts:
42     maxItems: 1
43
44   resets:
45     maxItems: 1
46
47   nvmem-cells:
48     maxItems: 1
49     description: Calibration data for thermal sensors
50
51   nvmem-cell-names:
52     const: calibration
53
54   # See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for details
55   "#thermal-sensor-cells":
56     enum:
57       - 0
58       - 1
59
60 allOf:
61   - if:
62       properties:
63         compatible:
64           contains:
65             enum:
66               - allwinner,sun50i-a100-ths
67               - allwinner,sun50i-h6-ths
68
69     then:
70       properties:
71         clocks:
72           maxItems: 1
73
74         clock-names:
75           maxItems: 1
76
77     else:
78       properties:
79         clocks:
80           minItems: 2
81
82         clock-names:
83           minItems: 2
84
85   - if:
86       properties:
87         compatible:
88           contains:
89             const: allwinner,sun8i-h3-ths
90
91     then:
92       properties:
93         "#thermal-sensor-cells":
94           const: 0
95
96     else:
97       properties:
98         "#thermal-sensor-cells":
99           const: 1
100
101   - if:
102       properties:
103         compatible:
104           contains:
105             enum:
106               - const: allwinner,sun8i-h3-ths
107               - const: allwinner,sun8i-r40-ths
108               - const: allwinner,sun50i-a64-ths
109               - const: allwinner,sun50i-a100-ths
110               - const: allwinner,sun50i-h5-ths
111               - const: allwinner,sun50i-h6-ths
112
113     then:
114       required:
115         - clocks
116         - clock-names
117         - resets
118
119 required:
120   - compatible
121   - reg
122   - interrupts
123   - '#thermal-sensor-cells'
124
125 additionalProperties: false
126
127 examples:
128   - |
129     thermal-sensor@1f04000 {
130          compatible = "allwinner,sun8i-a83t-ths";
131          reg = <0x01f04000 0x100>;
132          interrupts = <0 31 0>;
133          nvmem-cells = <&ths_calibration>;
134          nvmem-cell-names = "calibration";
135          #thermal-sensor-cells = <1>;
136     };
137
138   - |
139     thermal-sensor@1c25000 {
140          compatible = "allwinner,sun8i-h3-ths";
141          reg = <0x01c25000 0x400>;
142          clocks = <&ccu 0>, <&ccu 1>;
143          clock-names = "bus", "mod";
144          resets = <&ccu 2>;
145          interrupts = <0 31 0>;
146          nvmem-cells = <&ths_calibration>;
147          nvmem-cell-names = "calibration";
148          #thermal-sensor-cells = <0>;
149     };
150
151   - |
152     thermal-sensor@5070400 {
153          compatible = "allwinner,sun50i-h6-ths";
154          reg = <0x05070400 0x100>;
155          clocks = <&ccu 0>;
156          clock-names = "bus";
157          resets = <&ccu 2>;
158          interrupts = <0 15 0>;
159          nvmem-cells = <&ths_calibration>;
160          nvmem-cell-names = "calibration";
161          #thermal-sensor-cells = <1>;
162     };
163
164 ...