123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- From 7d8b3864b38d881cf105328ff8569f47446811ad Mon Sep 17 00:00:00 2001
- From: Balsam CHIHI <[email protected]>
- Date: Tue, 17 Oct 2023 21:05:43 +0200
- Subject: [PATCH 41/42] thermal/drivers/mediatek/lvts_thermal: Add mt8192
- support
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- Add LVTS Driver support for MT8192.
- Co-developed-by: Nícolas F. R. A. Prado <[email protected]>
- Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
- Signed-off-by: Balsam CHIHI <[email protected]>
- Reviewed-by: Nícolas F. R. A. Prado <[email protected]>
- [[email protected]: cosmetic changes, rebase]
- Signed-off-by: Bernhard Rosenkränzer <[email protected]>
- Reviewed-by: Matthias Brugger <[email protected]>
- Reviewed-by: Alexandre Mergnat <[email protected]>
- Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
- Signed-off-by: Daniel Lezcano <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- ---
- drivers/thermal/mediatek/lvts_thermal.c | 95 +++++++++++++++++++++++++
- 1 file changed, 95 insertions(+)
- --- a/drivers/thermal/mediatek/lvts_thermal.c
- +++ b/drivers/thermal/mediatek/lvts_thermal.c
- @@ -92,6 +92,7 @@
- #define LVTS_MSR_READ_WAIT_US (LVTS_MSR_READ_TIMEOUT_US / 2)
-
- #define LVTS_HW_SHUTDOWN_MT7988 105000
- +#define LVTS_HW_SHUTDOWN_MT8192 105000
- #define LVTS_HW_SHUTDOWN_MT8195 105000
-
- #define LVTS_MINIMUM_THRESHOLD 20000
- @@ -1331,6 +1332,88 @@ static int lvts_resume(struct device *de
- return 0;
- }
-
- +static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
- + {
- + .cal_offset = { 0x04, 0x08 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_MCU_BIG_CPU0 },
- + { .dt_id = MT8192_MCU_BIG_CPU1 }
- + },
- + .num_lvts_sensor = 2,
- + .offset = 0x0,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + .mode = LVTS_MSR_FILTERED_MODE,
- + },
- + {
- + .cal_offset = { 0x0c, 0x10 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_MCU_BIG_CPU2 },
- + { .dt_id = MT8192_MCU_BIG_CPU3 }
- + },
- + .num_lvts_sensor = 2,
- + .offset = 0x100,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + .mode = LVTS_MSR_FILTERED_MODE,
- + },
- + {
- + .cal_offset = { 0x14, 0x18, 0x1c, 0x20 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_MCU_LITTLE_CPU0 },
- + { .dt_id = MT8192_MCU_LITTLE_CPU1 },
- + { .dt_id = MT8192_MCU_LITTLE_CPU2 },
- + { .dt_id = MT8192_MCU_LITTLE_CPU3 }
- + },
- + .num_lvts_sensor = 4,
- + .offset = 0x200,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + .mode = LVTS_MSR_FILTERED_MODE,
- + }
- +};
- +
- +static const struct lvts_ctrl_data mt8192_lvts_ap_data_ctrl[] = {
- + {
- + .cal_offset = { 0x24, 0x28 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_AP_VPU0 },
- + { .dt_id = MT8192_AP_VPU1 }
- + },
- + .num_lvts_sensor = 2,
- + .offset = 0x0,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + },
- + {
- + .cal_offset = { 0x2c, 0x30 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_AP_GPU0 },
- + { .dt_id = MT8192_AP_GPU1 }
- + },
- + .num_lvts_sensor = 2,
- + .offset = 0x100,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + },
- + {
- + .cal_offset = { 0x34, 0x38 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_AP_INFRA },
- + { .dt_id = MT8192_AP_CAM },
- + },
- + .num_lvts_sensor = 2,
- + .offset = 0x200,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + },
- + {
- + .cal_offset = { 0x3c, 0x40, 0x44 },
- + .lvts_sensor = {
- + { .dt_id = MT8192_AP_MD0 },
- + { .dt_id = MT8192_AP_MD1 },
- + { .dt_id = MT8192_AP_MD2 }
- + },
- + .num_lvts_sensor = 3,
- + .offset = 0x300,
- + .hw_tshut_temp = LVTS_HW_SHUTDOWN_MT8192,
- + }
- +};
- +
- static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = {
- {
- .cal_offset = { 0x04, 0x07 },
- @@ -1417,6 +1500,16 @@ static const struct lvts_data mt7988_lvt
- .temp_offset = LVTS_COEFF_B_MT7988,
- };
-
- +static const struct lvts_data mt8192_lvts_mcu_data = {
- + .lvts_ctrl = mt8192_lvts_mcu_data_ctrl,
- + .num_lvts_ctrl = ARRAY_SIZE(mt8192_lvts_mcu_data_ctrl),
- +};
- +
- +static const struct lvts_data mt8192_lvts_ap_data = {
- + .lvts_ctrl = mt8192_lvts_ap_data_ctrl,
- + .num_lvts_ctrl = ARRAY_SIZE(mt8192_lvts_ap_data_ctrl),
- +};
- +
- static const struct lvts_data mt8195_lvts_mcu_data = {
- .lvts_ctrl = mt8195_lvts_mcu_data_ctrl,
- .num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl),
- @@ -1433,6 +1526,8 @@ static const struct lvts_data mt8195_lvt
-
- static const struct of_device_id lvts_of_match[] = {
- { .compatible = "mediatek,mt7988-lvts-ap", .data = &mt7988_lvts_ap_data },
- + { .compatible = "mediatek,mt8192-lvts-mcu", .data = &mt8192_lvts_mcu_data },
- + { .compatible = "mediatek,mt8192-lvts-ap", .data = &mt8192_lvts_ap_data },
- { .compatible = "mediatek,mt8195-lvts-mcu", .data = &mt8195_lvts_mcu_data },
- { .compatible = "mediatek,mt8195-lvts-ap", .data = &mt8195_lvts_ap_data },
- {},
|