18c2ecf20Sopenharmony_ci* Exynos Thermal Management Unit (TMU)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci** Required properties:
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci- compatible : One of the following:
68c2ecf20Sopenharmony_ci	       "samsung,exynos3250-tmu"
78c2ecf20Sopenharmony_ci	       "samsung,exynos4412-tmu"
88c2ecf20Sopenharmony_ci	       "samsung,exynos4210-tmu"
98c2ecf20Sopenharmony_ci	       "samsung,exynos5250-tmu"
108c2ecf20Sopenharmony_ci	       "samsung,exynos5260-tmu"
118c2ecf20Sopenharmony_ci	       "samsung,exynos5420-tmu" for TMU channel 0, 1 on Exynos5420
128c2ecf20Sopenharmony_ci	       "samsung,exynos5420-tmu-ext-triminfo" for TMU channels 2, 3 and 4
138c2ecf20Sopenharmony_ci			Exynos5420 (Must pass triminfo base and triminfo clock)
148c2ecf20Sopenharmony_ci               "samsung,exynos5433-tmu"
158c2ecf20Sopenharmony_ci	       "samsung,exynos7-tmu"
168c2ecf20Sopenharmony_ci- reg : Address range of the thermal registers. For soc's which has multiple
178c2ecf20Sopenharmony_ci	instances of TMU and some registers are shared across all TMU's like
188c2ecf20Sopenharmony_ci	interrupt related then 2 set of register has to supplied. First set
198c2ecf20Sopenharmony_ci	belongs	to register set of TMU instance and second set belongs to
208c2ecf20Sopenharmony_ci	registers shared with the TMU instance.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  NOTE: On Exynos5420, the TRIMINFO register is misplaced for TMU
238c2ecf20Sopenharmony_ci	channels 2, 3 and 4
248c2ecf20Sopenharmony_ci	Use "samsung,exynos5420-tmu-ext-triminfo" in cases, there is a misplaced
258c2ecf20Sopenharmony_ci	register, also provide clock to access that base.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	TRIMINFO at 0x1006c000 contains data for TMU channel 3
288c2ecf20Sopenharmony_ci	TRIMINFO at 0x100a0000 contains data for TMU channel 4
298c2ecf20Sopenharmony_ci	TRIMINFO at 0x10068000 contains data for TMU channel 2
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci- interrupts : Should contain interrupt for thermal system
328c2ecf20Sopenharmony_ci- clocks : The main clocks for TMU device
338c2ecf20Sopenharmony_ci	-- 1. operational clock for TMU channel
348c2ecf20Sopenharmony_ci	-- 2. optional clock to access the shared registers of TMU channel
358c2ecf20Sopenharmony_ci	-- 3. optional special clock for functional operation
368c2ecf20Sopenharmony_ci- clock-names : Thermal system clock name
378c2ecf20Sopenharmony_ci	-- "tmu_apbif" operational clock for current TMU channel
388c2ecf20Sopenharmony_ci	-- "tmu_triminfo_apbif" clock to access the shared triminfo register
398c2ecf20Sopenharmony_ci		for current TMU channel
408c2ecf20Sopenharmony_ci	-- "tmu_sclk" clock for functional operation of the current TMU
418c2ecf20Sopenharmony_ci		channel
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciThe Exynos TMU supports generating interrupts when reaching given
448c2ecf20Sopenharmony_citemperature thresholds. Number of supported thermal trip points depends
458c2ecf20Sopenharmony_cion the SoC (only first trip points defined in DT will be configured):
468c2ecf20Sopenharmony_ci - most of SoC: 4
478c2ecf20Sopenharmony_ci - samsung,exynos5433-tmu: 8
488c2ecf20Sopenharmony_ci - samsung,exynos7-tmu: 8
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci** Optional properties:
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci- vtmu-supply: This entry is optional and provides the regulator node supplying
538c2ecf20Sopenharmony_ci		voltage to TMU. If needed this entry can be placed inside
548c2ecf20Sopenharmony_ci		board/platform specific dts file.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciExample 1):
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci	tmu@100c0000 {
598c2ecf20Sopenharmony_ci		compatible = "samsung,exynos4412-tmu";
608c2ecf20Sopenharmony_ci		interrupt-parent = <&combiner>;
618c2ecf20Sopenharmony_ci		reg = <0x100C0000 0x100>;
628c2ecf20Sopenharmony_ci		interrupts = <2 4>;
638c2ecf20Sopenharmony_ci		clocks = <&clock 383>;
648c2ecf20Sopenharmony_ci		clock-names = "tmu_apbif";
658c2ecf20Sopenharmony_ci		vtmu-supply = <&tmu_regulator_node>;
668c2ecf20Sopenharmony_ci		#thermal-sensor-cells = <0>;
678c2ecf20Sopenharmony_ci	};
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciExample 2): (In case of Exynos5420 "with misplaced TRIMINFO register")
708c2ecf20Sopenharmony_ci	tmu_cpu2: tmu@10068000 {
718c2ecf20Sopenharmony_ci		compatible = "samsung,exynos5420-tmu-ext-triminfo";
728c2ecf20Sopenharmony_ci		reg = <0x10068000 0x100>, <0x1006c000 0x4>;
738c2ecf20Sopenharmony_ci		interrupts = <0 184 0>;
748c2ecf20Sopenharmony_ci		clocks = <&clock 318>, <&clock 318>;
758c2ecf20Sopenharmony_ci		clock-names = "tmu_apbif", "tmu_triminfo_apbif";
768c2ecf20Sopenharmony_ci		#thermal-sensor-cells = <0>;
778c2ecf20Sopenharmony_ci	};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci	tmu_cpu3: tmu@1006c000 {
808c2ecf20Sopenharmony_ci		compatible = "samsung,exynos5420-tmu-ext-triminfo";
818c2ecf20Sopenharmony_ci		reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
828c2ecf20Sopenharmony_ci		interrupts = <0 185 0>;
838c2ecf20Sopenharmony_ci		clocks = <&clock 318>, <&clock 319>;
848c2ecf20Sopenharmony_ci		clock-names = "tmu_apbif", "tmu_triminfo_apbif";
858c2ecf20Sopenharmony_ci		#thermal-sensor-cells = <0>;
868c2ecf20Sopenharmony_ci	};
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci	tmu_gpu: tmu@100a0000 {
898c2ecf20Sopenharmony_ci		compatible = "samsung,exynos5420-tmu-ext-triminfo";
908c2ecf20Sopenharmony_ci		reg = <0x100a0000 0x100>, <0x10068000 0x4>;
918c2ecf20Sopenharmony_ci		interrupts = <0 215 0>;
928c2ecf20Sopenharmony_ci		clocks = <&clock 319>, <&clock 318>;
938c2ecf20Sopenharmony_ci		clock-names = "tmu_apbif", "tmu_triminfo_apbif";
948c2ecf20Sopenharmony_ci		#thermal-sensor-cells = <0>;
958c2ecf20Sopenharmony_ci	};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciNote: For multi-instance tmu each instance should have an alias correctly
988c2ecf20Sopenharmony_cinumbered in "aliases" node.
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciExample:
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_cialiases {
1038c2ecf20Sopenharmony_ci	tmuctrl0 = &tmuctrl_0;
1048c2ecf20Sopenharmony_ci	tmuctrl1 = &tmuctrl_1;
1058c2ecf20Sopenharmony_ci	tmuctrl2 = &tmuctrl_2;
1068c2ecf20Sopenharmony_ci};
107