exynos-thermal.txt 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. * Exynos Thermal Management Unit (TMU)
  2. ** Required properties:
  3. - compatible : One of the following:
  4. "samsung,exynos3250-tmu"
  5. "samsung,exynos4412-tmu"
  6. "samsung,exynos4210-tmu"
  7. "samsung,exynos5250-tmu"
  8. "samsung,exynos5260-tmu"
  9. "samsung,exynos5420-tmu" for TMU channel 0, 1 on Exynos5420
  10. "samsung,exynos5420-tmu-ext-triminfo" for TMU channels 2, 3 and 4
  11. Exynos5420 (Must pass triminfo base and triminfo clock)
  12. "samsung,exynos5433-tmu"
  13. "samsung,exynos5440-tmu"
  14. "samsung,exynos7-tmu"
  15. - interrupt-parent : The phandle for the interrupt controller
  16. - reg : Address range of the thermal registers. For soc's which has multiple
  17. instances of TMU and some registers are shared across all TMU's like
  18. interrupt related then 2 set of register has to supplied. First set
  19. belongs to register set of TMU instance and second set belongs to
  20. registers shared with the TMU instance.
  21. NOTE: On Exynos5420, the TRIMINFO register is misplaced for TMU
  22. channels 2, 3 and 4
  23. Use "samsung,exynos5420-tmu-ext-triminfo" in cases, there is a misplaced
  24. register, also provide clock to access that base.
  25. TRIMINFO at 0x1006c000 contains data for TMU channel 3
  26. TRIMINFO at 0x100a0000 contains data for TMU channel 4
  27. TRIMINFO at 0x10068000 contains data for TMU channel 2
  28. - interrupts : Should contain interrupt for thermal system
  29. - clocks : The main clocks for TMU device
  30. -- 1. operational clock for TMU channel
  31. -- 2. optional clock to access the shared registers of TMU channel
  32. -- 3. optional special clock for functional operation
  33. - clock-names : Thermal system clock name
  34. -- "tmu_apbif" operational clock for current TMU channel
  35. -- "tmu_triminfo_apbif" clock to access the shared triminfo register
  36. for current TMU channel
  37. -- "tmu_sclk" clock for functional operation of the current TMU
  38. channel
  39. The Exynos TMU supports generating interrupts when reaching given
  40. temperature thresholds. Number of supported thermal trip points depends
  41. on the SoC (only first trip points defined in DT will be configured):
  42. - most of SoC: 4
  43. - samsung,exynos5433-tmu: 8
  44. - samsung,exynos7-tmu: 8
  45. Following properties are mandatory (depending on SoC):
  46. - samsung,tmu_gain: Gain value for internal TMU operation.
  47. - samsung,tmu_reference_voltage: Value of TMU IP block's reference voltage
  48. - samsung,tmu_noise_cancel_mode: Mode for noise cancellation
  49. - samsung,tmu_efuse_value: Default level of temperature - it is needed when
  50. in factory fusing produced wrong value
  51. - samsung,tmu_min_efuse_value: Minimum temperature fused value
  52. - samsung,tmu_max_efuse_value: Maximum temperature fused value
  53. - samsung,tmu_first_point_trim: First point trimming value
  54. - samsung,tmu_second_point_trim: Second point trimming value
  55. - samsung,tmu_default_temp_offset: Default temperature offset
  56. - samsung,tmu_cal_type: Callibration type
  57. ** Optional properties:
  58. - vtmu-supply: This entry is optional and provides the regulator node supplying
  59. voltage to TMU. If needed this entry can be placed inside
  60. board/platform specific dts file.
  61. Example 1):
  62. tmu@100C0000 {
  63. compatible = "samsung,exynos4412-tmu";
  64. interrupt-parent = <&combiner>;
  65. reg = <0x100C0000 0x100>;
  66. interrupts = <2 4>;
  67. clocks = <&clock 383>;
  68. clock-names = "tmu_apbif";
  69. status = "disabled";
  70. vtmu-supply = <&tmu_regulator_node>;
  71. #include "exynos4412-tmu-sensor-conf.dtsi"
  72. };
  73. Example 2):
  74. tmuctrl_0: tmuctrl@160118 {
  75. compatible = "samsung,exynos5440-tmu";
  76. reg = <0x160118 0x230>, <0x160368 0x10>;
  77. interrupts = <0 58 0>;
  78. clocks = <&clock 21>;
  79. clock-names = "tmu_apbif";
  80. #include "exynos5440-tmu-sensor-conf.dtsi"
  81. };
  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";
  89. #include "exynos4412-tmu-sensor-conf.dtsi"
  90. };
  91. tmu_cpu3: tmu@1006c000 {
  92. compatible = "samsung,exynos5420-tmu-ext-triminfo";
  93. reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
  94. interrupts = <0 185 0>;
  95. clocks = <&clock 318>, <&clock 319>;
  96. clock-names = "tmu_apbif", "tmu_triminfo_apbif";
  97. #include "exynos4412-tmu-sensor-conf.dtsi"
  98. };
  99. tmu_gpu: tmu@100a0000 {
  100. compatible = "samsung,exynos5420-tmu-ext-triminfo";
  101. reg = <0x100a0000 0x100>, <0x10068000 0x4>;
  102. interrupts = <0 215 0>;
  103. clocks = <&clock 319>, <&clock 318>;
  104. clock-names = "tmu_apbif", "tmu_triminfo_apbif";
  105. #include "exynos4412-tmu-sensor-conf.dtsi"
  106. };
  107. Note: For multi-instance tmu each instance should have an alias correctly
  108. numbered in "aliases" node.
  109. Example:
  110. aliases {
  111. tmuctrl0 = &tmuctrl_0;
  112. tmuctrl1 = &tmuctrl_1;
  113. tmuctrl2 = &tmuctrl_2;
  114. };