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