Merge tag 'drm-next-2020-12-24' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / thermal / rcar-thermal.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 # Copyright (C) 2020 Renesas Electronics Corp.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/thermal/rcar-thermal.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Renesas R-Car Thermal
9
10 maintainers:
11   - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12
13 properties:
14   compatible:
15     oneOf:
16       - items:
17           - enum:
18               - renesas,thermal-r8a73a4 # R-Mobile APE6
19               - renesas,thermal-r8a7779 # R-Car H1
20           - const: renesas,rcar-thermal # Generic without thermal-zone
21       - items:
22           - enum:
23               - renesas,thermal-r8a7742 # RZ/G1H
24               - renesas,thermal-r8a7743 # RZ/G1M
25               - renesas,thermal-r8a7744 # RZ/G1N
26           - const: renesas,rcar-gen2-thermal # Generic thermal-zone
27       - items:
28           - enum:
29               - renesas,thermal-r8a7790 # R-Car H2
30               - renesas,thermal-r8a7791 # R-Car M2-W
31               - renesas,thermal-r8a7792 # R-Car V2H
32               - renesas,thermal-r8a7793 # R-Car M2-N
33           - const: renesas,rcar-gen2-thermal # Generic thermal-zone
34           - const: renesas,rcar-thermal # Generic without thermal-zone
35       - items:
36           - enum:
37               - renesas,thermal-r8a774c0 # RZ/G2E
38               - renesas,thermal-r8a77970 # R-Car V3M
39               - renesas,thermal-r8a77990 # R-Car E3
40               - renesas,thermal-r8a77995 # R-Car D3
41   reg:
42     description:
43       Address ranges of the thermal registers. If more then one range is given
44       the first one must be the common registers followed by each sensor
45       according the the datasheet.
46     minItems: 1
47     maxItems: 4
48
49   interrupts:
50     minItems: 1
51     maxItems: 3
52
53   clocks:
54     maxItems: 1
55
56   power-domains:
57     maxItems: 1
58
59   resets:
60     maxItems: 1
61
62   "#thermal-sensor-cells":
63     const: 0
64
65 required:
66   - compatible
67   - reg
68
69 allOf:
70   - if:
71       not:
72         properties:
73           compatible:
74             contains:
75               enum:
76                 - renesas,thermal-r8a73a4 # R-Mobile APE6
77                 - renesas,thermal-r8a7779 # R-Car H1
78     then:
79       required:
80         - resets
81         - '#thermal-sensor-cells'
82
83   - if:
84       not:
85         properties:
86           compatible:
87             contains:
88               const: renesas,thermal-r8a7779 # R-Car H1
89     then:
90       required:
91         - interrupts
92         - clocks
93         - power-domains
94
95 additionalProperties: false
96
97 examples:
98   # Example (non interrupt support)
99   - |
100     thermal@ffc48000 {
101             compatible = "renesas,thermal-r8a7779", "renesas,rcar-thermal";
102             reg = <0xffc48000 0x38>;
103     };
104
105   # Example (interrupt support)
106   - |
107     #include <dt-bindings/clock/r8a73a4-clock.h>
108     #include <dt-bindings/interrupt-controller/arm-gic.h>
109     #include <dt-bindings/interrupt-controller/irq.h>
110
111     thermal@e61f0000 {
112             compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
113             reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>,
114                   <0xe61f0200 0x38>, <0xe61f0300 0x38>;
115             interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
116             clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>;
117             power-domains = <&pd_c5>;
118     };
119
120   # Example (with thermal-zone)
121   - |
122     #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
123     #include <dt-bindings/interrupt-controller/arm-gic.h>
124     #include <dt-bindings/power/r8a7790-sysc.h>
125
126     thermal: thermal@e61f0000 {
127       compatible = "renesas,thermal-r8a7790",
128                    "renesas,rcar-gen2-thermal",
129                    "renesas,rcar-thermal";
130             reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>;
131             interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
132             clocks = <&cpg CPG_MOD 522>;
133             power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
134             resets = <&cpg 522>;
135             #thermal-sensor-cells = <0>;
136     };
137
138     thermal-zones {
139             cpu_thermal: cpu-thermal {
140                     polling-delay-passive = <1000>;
141                     polling-delay = <5000>;
142
143                     thermal-sensors = <&thermal>;
144
145                     trips {
146                             cpu-crit {
147                                     temperature = <115000>;
148                                     hysteresis = <0>;
149                                     type = "critical";
150                             };
151                     };
152                     cooling-maps {
153                     };
154             };
155     };