blob: b957acff57aa448071e0deda91a3e11eb78ca184 [file] [log] [blame]
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +05301* Exynos Thermal Management Unit (TMU)
2
3** Required properties:
4
5- compatible : One of the following:
Chanwoo Choi1fe56dc2014-07-01 09:33:19 +09006 "samsung,exynos3250-tmu"
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +05307 "samsung,exynos4412-tmu"
8 "samsung,exynos4210-tmu"
9 "samsung,exynos5250-tmu"
Naveen Krishna Chatradhi923488a2013-12-20 17:49:10 +053010 "samsung,exynos5260-tmu"
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053011 "samsung,exynos5420-tmu" for TMU channel 0, 1 on Exynos5420
12 "samsung,exynos5420-tmu-ext-triminfo" for TMU channels 2, 3 and 4
13 Exynos5420 (Must pass triminfo base and triminfo clock)
Krzysztof Kozlowskia41e9392016-02-18 14:14:18 +090014 "samsung,exynos5433-tmu"
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053015 "samsung,exynos5440-tmu"
Abhilash Kesavan14ccc172015-01-27 11:18:21 +053016 "samsung,exynos7-tmu"
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053017- interrupt-parent : The phandle for the interrupt controller
18- reg : Address range of the thermal registers. For soc's which has multiple
19 instances of TMU and some registers are shared across all TMU's like
20 interrupt related then 2 set of register has to supplied. First set
Naveen Krishna Chatradhi9025d562013-12-19 11:36:08 +053021 belongs to register set of TMU instance and second set belongs to
22 registers shared with the TMU instance.
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053023
24 NOTE: On Exynos5420, the TRIMINFO register is misplaced for TMU
25 channels 2, 3 and 4
26 Use "samsung,exynos5420-tmu-ext-triminfo" in cases, there is a misplaced
27 register, also provide clock to access that base.
28
29 TRIMINFO at 0x1006c000 contains data for TMU channel 3
30 TRIMINFO at 0x100a0000 contains data for TMU channel 4
31 TRIMINFO at 0x10068000 contains data for TMU channel 2
32
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053033- interrupts : Should contain interrupt for thermal system
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053034- clocks : The main clocks for TMU device
35 -- 1. operational clock for TMU channel
36 -- 2. optional clock to access the shared registers of TMU channel
Abhilash Kesavan14ccc172015-01-27 11:18:21 +053037 -- 3. optional special clock for functional operation
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053038- clock-names : Thermal system clock name
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053039 -- "tmu_apbif" operational clock for current TMU channel
40 -- "tmu_triminfo_apbif" clock to access the shared triminfo register
41 for current TMU channel
Abhilash Kesavan14ccc172015-01-27 11:18:21 +053042 -- "tmu_sclk" clock for functional operation of the current TMU
43 channel
Krzysztof Kozlowskifa7b29e2016-02-18 14:14:19 +090044
45The Exynos TMU supports generating interrupts when reaching given
46temperature thresholds. Number of supported thermal trip points depends
47on the SoC (only first trip points defined in DT will be configured):
48 - most of SoC: 4
49 - samsung,exynos5433-tmu: 8
50 - samsung,exynos7-tmu: 8
51
Javier Martinez Canillas7bc40dd2016-02-18 15:19:09 -030052** Optional properties:
53
54- vtmu-supply: This entry is optional and provides the regulator node supplying
55 voltage to TMU. If needed this entry can be placed inside
56 board/platform specific dts file.
57
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053058Example 1):
59
Rob Herringafc3bca2017-12-21 12:29:17 -060060 tmu@100c0000 {
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053061 compatible = "samsung,exynos4412-tmu";
62 interrupt-parent = <&combiner>;
63 reg = <0x100C0000 0x100>;
64 interrupts = <2 4>;
65 clocks = <&clock 383>;
66 clock-names = "tmu_apbif";
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053067 vtmu-supply = <&tmu_regulator_node>;
Bartlomiej Zolnierkiewicz8b8b5902018-03-06 15:43:54 +010068 #thermal-sensor-cells = <0>;
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053069 };
70
71Example 2):
72
73 tmuctrl_0: tmuctrl@160118 {
74 compatible = "samsung,exynos5440-tmu";
75 reg = <0x160118 0x230>, <0x160368 0x10>;
76 interrupts = <0 58 0>;
77 clocks = <&clock 21>;
78 clock-names = "tmu_apbif";
Bartlomiej Zolnierkiewicz8b8b5902018-03-06 15:43:54 +010079 #thermal-sensor-cells = <0>;
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +053080 };
81
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053082Example 3): (In case of Exynos5420 "with misplaced TRIMINFO register")
83 tmu_cpu2: tmu@10068000 {
84 compatible = "samsung,exynos5420-tmu-ext-triminfo";
85 reg = <0x10068000 0x100>, <0x1006c000 0x4>;
86 interrupts = <0 184 0>;
87 clocks = <&clock 318>, <&clock 318>;
88 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
Bartlomiej Zolnierkiewicz8b8b5902018-03-06 15:43:54 +010089 #thermal-sensor-cells = <0>;
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053090 };
91
92 tmu_cpu3: tmu@1006c000 {
93 compatible = "samsung,exynos5420-tmu-ext-triminfo";
94 reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
95 interrupts = <0 185 0>;
96 clocks = <&clock 318>, <&clock 319>;
97 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
Bartlomiej Zolnierkiewicz8b8b5902018-03-06 15:43:54 +010098 #thermal-sensor-cells = <0>;
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +053099 };
100
101 tmu_gpu: tmu@100a0000 {
102 compatible = "samsung,exynos5420-tmu-ext-triminfo";
103 reg = <0x100a0000 0x100>, <0x10068000 0x4>;
104 interrupts = <0 215 0>;
105 clocks = <&clock 319>, <&clock 318>;
106 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
Bartlomiej Zolnierkiewicz8b8b5902018-03-06 15:43:54 +0100107 #thermal-sensor-cells = <0>;
Naveen Krishna Chatradhi14a11dc2013-12-19 11:36:31 +0530108 };
109
Amit Daniel Kachhap0e971942013-06-24 16:20:48 +0530110Note: For multi-instance tmu each instance should have an alias correctly
111numbered in "aliases" node.
112
113Example:
114
115aliases {
116 tmuctrl0 = &tmuctrl_0;
117 tmuctrl1 = &tmuctrl_1;
118 tmuctrl2 = &tmuctrl_2;
119};