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