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