Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/thermal/samsung,exynos-thermal.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung Exynos SoC Thermal Management Unit (TMU)
8
9maintainers:
10 - Krzysztof Kozlowski <krzk@kernel.org>
11
12description: |
13 For multi-instance tmu each instance should have an alias correctly numbered
14 in "aliases" node.
15
16properties:
17 compatible:
18 enum:
19 - samsung,exynos3250-tmu
20 - samsung,exynos4412-tmu
21 - samsung,exynos4210-tmu
22 - samsung,exynos5250-tmu
23 - samsung,exynos5260-tmu
24 # For TMU channel 0, 1 on Exynos5420:
25 - samsung,exynos5420-tmu
26 # For TMU channels 2, 3 and 4 of Exynos5420:
27 - samsung,exynos5420-tmu-ext-triminfo
28 - samsung,exynos5433-tmu
29 - samsung,exynos7-tmu
30
31 clocks:
32 minItems: 1
33 maxItems: 3
34
35 clock-names:
36 minItems: 1
37 maxItems: 3
38
39 interrupts:
40 description: |
41 The Exynos TMU supports generating interrupts when reaching given
42 temperature thresholds. Number of supported thermal trip points depends
43 on the SoC (only first trip points defined in DT will be configured)::
44 - most of SoC: 4
45 - samsung,exynos5433-tmu: 8
46 - samsung,exynos7-tmu: 8
47 maxItems: 1
48
49 reg:
50 items:
51 - description: TMU instance registers.
52 - description: |
53 Shared TMU registers.
54
55 Note:: On Exynos5420, the TRIMINFO register is misplaced for TMU
56 channels 2, 3 and 4 Use "samsung,exynos5420-tmu-ext-triminfo" in
57 cases, there is a misplaced register, also provide clock to access
58 that base.
59 TRIMINFO at 0x1006c000 contains data for TMU channel 3
60 TRIMINFO at 0x100a0000 contains data for TMU channel 4
61 TRIMINFO at 0x10068000 contains data for TMU channel 2
62 minItems: 1
63
64 '#thermal-sensor-cells':
65 const: 0
66
67 vtmu-supply:
68 description: The regulator node supplying voltage to TMU.
69
70required:
71 - compatible
72 - clocks
73 - clock-names
74 - interrupts
75 - reg
76
77allOf:
78 - $ref: /schemas/thermal/thermal-sensor.yaml
79 - if:
80 properties:
81 compatible:
82 contains:
83 const: samsung,exynos5420-tmu-ext-triminfo
84 then:
85 properties:
86 clocks:
87 items:
88 - description:
89 Operational clock for TMU channel.
90 - description:
91 Optional clock to access the shared registers (e.g. TRIMINFO) of TMU
92 channel.
93 clock-names:
94 items:
95 - const: tmu_apbif
96 - const: tmu_triminfo_apbif
97 reg:
98 minItems: 2
99 maxItems: 2
100 - if:
101 properties:
102 compatible:
103 contains:
104 enum:
105 - samsung,exynos5433-tmu
106 - samsung,exynos7-tmu
107 then:
108 properties:
109 clocks:
110 items:
111 - description:
112 Operational clock for TMU channel.
113 - description:
114 Optional special clock for functional operation of TMU channel.
115 clock-names:
116 items:
117 - const: tmu_apbif
118 - const: tmu_sclk
119 reg:
120 minItems: 1
121 maxItems: 1
122
123 - if:
124 properties:
125 compatible:
126 contains:
127 enum:
128 - samsung,exynos3250-tmu
129 - samsung,exynos4412-tmu
130 - samsung,exynos4210-tmu
131 - samsung,exynos5250-tmu
132 - samsung,exynos5260-tmu
133 - samsung,exynos5420-tmu
134 then:
135 properties:
136 clocks:
137 minItems: 1
138 maxItems: 1
139 reg:
140 minItems: 1
141 maxItems: 1
142
143additionalProperties: false
144
145examples:
146 - |
147 #include <dt-bindings/clock/exynos4.h>
148
149 tmu@100c0000 {
150 compatible = "samsung,exynos4412-tmu";
151 reg = <0x100C0000 0x100>;
152 interrupt-parent = <&combiner>;
153 interrupts = <2 4>;
154 #thermal-sensor-cells = <0>;
155 clocks = <&clock CLK_TMU_APBIF>;
156 clock-names = "tmu_apbif";
157 vtmu-supply = <&ldo10_reg>;
158 };
159
160 - |
161 #include <dt-bindings/interrupt-controller/arm-gic.h>
162
163 tmu@10068000 {
164 compatible = "samsung,exynos5420-tmu-ext-triminfo";
165 reg = <0x10068000 0x100>, <0x1006c000 0x4>;
166 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
167 #thermal-sensor-cells = <0>;
168 clocks = <&clock 318>, <&clock 318>; /* CLK_TMU */
169 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
170 vtmu-supply = <&ldo7_reg>;
171 };
172
173 - |
174 #include <dt-bindings/interrupt-controller/arm-gic.h>
175
176 tmu@10060000 {
177 compatible = "samsung,exynos5433-tmu";
178 reg = <0x10060000 0x200>;
179 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
180 #thermal-sensor-cells = <0>;
181 clocks = <&cmu_peris 3>, /* CLK_PCLK_TMU0_APBIF */
182 <&cmu_peris 35>; /* CLK_SCLK_TMU0 */
183 clock-names = "tmu_apbif", "tmu_sclk";
184 vtmu-supply = <&ldo3_reg>;
185 };