GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / thermal / rcar-gen3-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-gen3-thermal.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Renesas R-Car Gen3 Thermal Sensor
9
10 description:
11   On most R-Car Gen3 and later SoCs, the thermal sensor controllers (TSC)
12   control the thermal sensors (THS) which are the analog circuits for
13   measuring temperature (Tj) inside the LSI.
14
15 maintainers:
16   - Niklas Söderlund <niklas.soderlund@ragnatech.se>
17
18 properties:
19   compatible:
20     enum:
21       - renesas,r8a774a1-thermal # RZ/G2M
22       - renesas,r8a774b1-thermal # RZ/G2N
23       - renesas,r8a774e1-thermal # RZ/G2H
24       - renesas,r8a7795-thermal  # R-Car H3
25       - renesas,r8a7796-thermal  # R-Car M3-W
26       - renesas,r8a77961-thermal # R-Car M3-W+
27       - renesas,r8a77965-thermal # R-Car M3-N
28       - renesas,r8a77980-thermal # R-Car V3H
29       - renesas,r8a779a0-thermal # R-Car V3U
30       - renesas,r8a779f0-thermal # R-Car S4-8
31
32   reg: true
33
34   interrupts:
35     items:
36       - description: TEMP1 interrupt
37       - description: TEMP2 interrupt
38       - description: TEMP3 interrupt
39
40   clocks:
41     maxItems: 1
42
43   power-domains:
44     maxItems: 1
45
46   resets:
47     maxItems: 1
48
49   "#thermal-sensor-cells":
50     const: 1
51
52 required:
53   - compatible
54   - reg
55   - clocks
56   - power-domains
57   - resets
58   - "#thermal-sensor-cells"
59
60 if:
61   properties:
62     compatible:
63       contains:
64         enum:
65           - renesas,r8a779a0-thermal
66 then:
67   properties:
68     reg:
69       items:
70         - description: TSC0 registers
71         - description: TSC1 registers
72         - description: TSC2 registers
73         - description: TSC3 registers
74         - description: TSC4 registers
75 else:
76   properties:
77     reg:
78       minItems: 2
79       items:
80         - description: TSC1 registers
81         - description: TSC2 registers
82         - description: TSC3 registers
83   if:
84     not:
85       properties:
86         compatible:
87           contains:
88             enum:
89               - renesas,r8a779f0-thermal
90   then:
91     required:
92       - interrupts
93
94 additionalProperties: false
95
96 examples:
97   - |
98     #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
99     #include <dt-bindings/interrupt-controller/arm-gic.h>
100     #include <dt-bindings/power/r8a7795-sysc.h>
101
102     tsc: thermal@e6198000 {
103             compatible = "renesas,r8a7795-thermal";
104             reg = <0xe6198000 0x100>,
105                   <0xe61a0000 0x100>,
106                   <0xe61a8000 0x100>;
107             interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
108                          <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
109                          <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
110             clocks = <&cpg CPG_MOD 522>;
111             power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
112             resets = <&cpg 522>;
113             #thermal-sensor-cells = <1>;
114     };
115
116     thermal-zones {
117             sensor_thermal: sensor-thermal {
118                     polling-delay-passive = <250>;
119                     polling-delay = <1000>;
120                     thermal-sensors = <&tsc 0>;
121
122                     trips {
123                             sensor1_crit: sensor1-crit {
124                                     temperature = <90000>;
125                                     hysteresis = <2000>;
126                                     type = "critical";
127                             };
128                     };
129             };
130     };
131   - |
132     #include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
133     #include <dt-bindings/interrupt-controller/arm-gic.h>
134     #include <dt-bindings/power/r8a779a0-sysc.h>
135
136     tsc_r8a779a0: thermal@e6190000 {
137             compatible = "renesas,r8a779a0-thermal";
138             reg = <0xe6190000 0x200>,
139                   <0xe6198000 0x200>,
140                   <0xe61a0000 0x200>,
141                   <0xe61a8000 0x200>,
142                   <0xe61b0000 0x200>;
143             clocks = <&cpg CPG_MOD 919>;
144             power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
145             resets = <&cpg 919>;
146             #thermal-sensor-cells = <1>;
147     };