Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 1 | * Exynos Thermal Management Unit (TMU) |
| 2 | |
| 3 | ** Required properties: |
| 4 | |
| 5 | - compatible : One of the following: |
Chanwoo Choi | 1fe56dc | 2014-07-01 09:33:19 +0900 | [diff] [blame] | 6 | "samsung,exynos3250-tmu" |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 7 | "samsung,exynos4412-tmu" |
| 8 | "samsung,exynos4210-tmu" |
| 9 | "samsung,exynos5250-tmu" |
Naveen Krishna Chatradhi | 923488a | 2013-12-20 17:49:10 +0530 | [diff] [blame] | 10 | "samsung,exynos5260-tmu" |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 11 | "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 Kozlowski | a41e939 | 2016-02-18 14:14:18 +0900 | [diff] [blame] | 14 | "samsung,exynos5433-tmu" |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 15 | "samsung,exynos5440-tmu" |
Abhilash Kesavan | 14ccc17 | 2015-01-27 11:18:21 +0530 | [diff] [blame] | 16 | "samsung,exynos7-tmu" |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 17 | - 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 Chatradhi | 9025d56 | 2013-12-19 11:36:08 +0530 | [diff] [blame] | 21 | belongs to register set of TMU instance and second set belongs to |
| 22 | registers shared with the TMU instance. |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 23 | |
| 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 Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 33 | - interrupts : Should contain interrupt for thermal system |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 34 | - 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 Kesavan | 14ccc17 | 2015-01-27 11:18:21 +0530 | [diff] [blame] | 37 | -- 3. optional special clock for functional operation |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 38 | - clock-names : Thermal system clock name |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 39 | -- "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 Kesavan | 14ccc17 | 2015-01-27 11:18:21 +0530 | [diff] [blame] | 42 | -- "tmu_sclk" clock for functional operation of the current TMU |
| 43 | channel |
Krzysztof Kozlowski | fa7b29e | 2016-02-18 14:14:19 +0900 | [diff] [blame] | 44 | |
| 45 | The Exynos TMU supports generating interrupts when reaching given |
| 46 | temperature thresholds. Number of supported thermal trip points depends |
| 47 | on 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 Canillas | 7bc40dd | 2016-02-18 15:19:09 -0300 | [diff] [blame] | 52 | ** 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 Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 58 | Example 1): |
| 59 | |
Rob Herring | afc3bca | 2017-12-21 12:29:17 -0600 | [diff] [blame] | 60 | tmu@100c0000 { |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 61 | 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 Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 67 | vtmu-supply = <&tmu_regulator_node>; |
Bartlomiej Zolnierkiewicz | 8b8b590 | 2018-03-06 15:43:54 +0100 | [diff] [blame] | 68 | #thermal-sensor-cells = <0>; |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 69 | }; |
| 70 | |
| 71 | Example 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 Zolnierkiewicz | 8b8b590 | 2018-03-06 15:43:54 +0100 | [diff] [blame] | 79 | #thermal-sensor-cells = <0>; |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 80 | }; |
| 81 | |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 82 | Example 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 Zolnierkiewicz | 8b8b590 | 2018-03-06 15:43:54 +0100 | [diff] [blame] | 89 | #thermal-sensor-cells = <0>; |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 90 | }; |
| 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 Zolnierkiewicz | 8b8b590 | 2018-03-06 15:43:54 +0100 | [diff] [blame] | 98 | #thermal-sensor-cells = <0>; |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 99 | }; |
| 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 Zolnierkiewicz | 8b8b590 | 2018-03-06 15:43:54 +0100 | [diff] [blame] | 107 | #thermal-sensor-cells = <0>; |
Naveen Krishna Chatradhi | 14a11dc | 2013-12-19 11:36:31 +0530 | [diff] [blame] | 108 | }; |
| 109 | |
Amit Daniel Kachhap | 0e97194 | 2013-06-24 16:20:48 +0530 | [diff] [blame] | 110 | Note: For multi-instance tmu each instance should have an alias correctly |
| 111 | numbered in "aliases" node. |
| 112 | |
| 113 | Example: |
| 114 | |
| 115 | aliases { |
| 116 | tmuctrl0 = &tmuctrl_0; |
| 117 | tmuctrl1 = &tmuctrl_1; |
| 118 | tmuctrl2 = &tmuctrl_2; |
| 119 | }; |