exynos-thermal.txt 4.3 KB

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