830-v6.7-47-thermal-drivers-mediatek-lvts_thermal-Add-mt8192-sup.patch 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. From 7d8b3864b38d881cf105328ff8569f47446811ad Mon Sep 17 00:00:00 2001
  2. From: Balsam CHIHI <[email protected]>
  3. Date: Tue, 17 Oct 2023 21:05:43 +0200
  4. Subject: [PATCH 41/42] thermal/drivers/mediatek/lvts_thermal: Add mt8192
  5. support
  6. MIME-Version: 1.0
  7. Content-Type: text/plain; charset=UTF-8
  8. Content-Transfer-Encoding: 8bit
  9. Add LVTS Driver support for MT8192.
  10. Co-developed-by: Nícolas F. R. A. Prado <[email protected]>
  11. Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
  12. Signed-off-by: Balsam CHIHI <[email protected]>
  13. Reviewed-by: Nícolas F. R. A. Prado <[email protected]>
  14. [[email protected]: cosmetic changes, rebase]
  15. Signed-off-by: Bernhard Rosenkränzer <[email protected]>
  16. Reviewed-by: Matthias Brugger <[email protected]>
  17. Reviewed-by: Alexandre Mergnat <[email protected]>
  18. Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
  19. Signed-off-by: Daniel Lezcano <[email protected]>
  20. Link: https://lore.kernel.org/r/[email protected]
  21. ---
  22. drivers/thermal/mediatek/lvts_thermal.c | 95 +++++++++++++++++++++++++
  23. 1 file changed, 95 insertions(+)
  24. --- a/drivers/thermal/mediatek/lvts_thermal.c
  25. +++ b/drivers/thermal/mediatek/lvts_thermal.c
  26. @@ -92,6 +92,7 @@
  27. #define LVTS_MSR_READ_WAIT_US (LVTS_MSR_READ_TIMEOUT_US / 2)
  28. #define LVTS_HW_SHUTDOWN_MT7988 105000
  29. +#define LVTS_HW_SHUTDOWN_MT8192 105000
  30. #define LVTS_HW_SHUTDOWN_MT8195 105000
  31. #define LVTS_MINIMUM_THRESHOLD 20000
  32. @@ -1331,6 +1332,88 @@ static int lvts_resume(struct device *de
  33. return 0;
  34. }
  35. +static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
  36. + {
  37. + .cal_offset = { 0x04, 0x08 },
  38. + .lvts_sensor = {
  39. + { .dt_id = MT8192_MCU_BIG_CPU0 },
  40. + { .dt_id = MT8192_MCU_BIG_CPU1 }
  41. + },
  42. + .num_lvts_sensor = 2,
  43. + .offset = 0x0,
  44. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  45. + .mode = LVTS_MSR_FILTERED_MODE,
  46. + },
  47. + {
  48. + .cal_offset = { 0x0c, 0x10 },
  49. + .lvts_sensor = {
  50. + { .dt_id = MT8192_MCU_BIG_CPU2 },
  51. + { .dt_id = MT8192_MCU_BIG_CPU3 }
  52. + },
  53. + .num_lvts_sensor = 2,
  54. + .offset = 0x100,
  55. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  56. + .mode = LVTS_MSR_FILTERED_MODE,
  57. + },
  58. + {
  59. + .cal_offset = { 0x14, 0x18, 0x1c, 0x20 },
  60. + .lvts_sensor = {
  61. + { .dt_id = MT8192_MCU_LITTLE_CPU0 },
  62. + { .dt_id = MT8192_MCU_LITTLE_CPU1 },
  63. + { .dt_id = MT8192_MCU_LITTLE_CPU2 },
  64. + { .dt_id = MT8192_MCU_LITTLE_CPU3 }
  65. + },
  66. + .num_lvts_sensor = 4,
  67. + .offset = 0x200,
  68. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  69. + .mode = LVTS_MSR_FILTERED_MODE,
  70. + }
  71. +};
  72. +
  73. +static const struct lvts_ctrl_data mt8192_lvts_ap_data_ctrl[] = {
  74. + {
  75. + .cal_offset = { 0x24, 0x28 },
  76. + .lvts_sensor = {
  77. + { .dt_id = MT8192_AP_VPU0 },
  78. + { .dt_id = MT8192_AP_VPU1 }
  79. + },
  80. + .num_lvts_sensor = 2,
  81. + .offset = 0x0,
  82. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  83. + },
  84. + {
  85. + .cal_offset = { 0x2c, 0x30 },
  86. + .lvts_sensor = {
  87. + { .dt_id = MT8192_AP_GPU0 },
  88. + { .dt_id = MT8192_AP_GPU1 }
  89. + },
  90. + .num_lvts_sensor = 2,
  91. + .offset = 0x100,
  92. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  93. + },
  94. + {
  95. + .cal_offset = { 0x34, 0x38 },
  96. + .lvts_sensor = {
  97. + { .dt_id = MT8192_AP_INFRA },
  98. + { .dt_id = MT8192_AP_CAM },
  99. + },
  100. + .num_lvts_sensor = 2,
  101. + .offset = 0x200,
  102. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  103. + },
  104. + {
  105. + .cal_offset = { 0x3c, 0x40, 0x44 },
  106. + .lvts_sensor = {
  107. + { .dt_id = MT8192_AP_MD0 },
  108. + { .dt_id = MT8192_AP_MD1 },
  109. + { .dt_id = MT8192_AP_MD2 }
  110. + },
  111. + .num_lvts_sensor = 3,
  112. + .offset = 0x300,
  113. + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
  114. + }
  115. +};
  116. +
  117. static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = {
  118. {
  119. .cal_offset = { 0x04, 0x07 },
  120. @@ -1417,6 +1500,16 @@ static const struct lvts_data mt7988_lvt
  121. .temp_offset = LVTS_COEFF_B_MT7988,
  122. };
  123. +static const struct lvts_data mt8192_lvts_mcu_data = {
  124. + .lvts_ctrl = mt8192_lvts_mcu_data_ctrl,
  125. + .num_lvts_ctrl = ARRAY_SIZE(mt8192_lvts_mcu_data_ctrl),
  126. +};
  127. +
  128. +static const struct lvts_data mt8192_lvts_ap_data = {
  129. + .lvts_ctrl = mt8192_lvts_ap_data_ctrl,
  130. + .num_lvts_ctrl = ARRAY_SIZE(mt8192_lvts_ap_data_ctrl),
  131. +};
  132. +
  133. static const struct lvts_data mt8195_lvts_mcu_data = {
  134. .lvts_ctrl = mt8195_lvts_mcu_data_ctrl,
  135. .num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl),
  136. @@ -1433,6 +1526,8 @@ static const struct lvts_data mt8195_lvt
  137. static const struct of_device_id lvts_of_match[] = {
  138. { .compatible = "mediatek,mt7988-lvts-ap", .data = &mt7988_lvts_ap_data },
  139. + { .compatible = "mediatek,mt8192-lvts-mcu", .data = &mt8192_lvts_mcu_data },
  140. + { .compatible = "mediatek,mt8192-lvts-ap", .data = &mt8192_lvts_ap_data },
  141. { .compatible = "mediatek,mt8195-lvts-mcu", .data = &mt8195_lvts_mcu_data },
  142. { .compatible = "mediatek,mt8195-lvts-ap", .data = &mt8195_lvts_ap_data },
  143. {},