]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
thermal/drivers/qoriq: Power down TMU on system suspend
authorAlice Guo <alice.guo@nxp.com>
Mon, 9 Dec 2024 16:48:59 +0000 (11:48 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:12:28 +0000 (11:12 +0200)
[ Upstream commit 229f3feb4b0442835b27d519679168bea2de96c2 ]

Enable power-down of TMU (Thermal Management Unit) for TMU version 2 during
system suspend to save power. Save approximately 4.3mW on VDD_ANA_1P8 on
i.MX93 platforms.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20241209164859.3758906-2-Frank.Li@nxp.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thermal/qoriq_thermal.c

index 52e26be8c53df6f273b4a7298a238d83fb7ee415..aed2729f63d06c532c2d4bf818886ad490ee5f03 100644 (file)
@@ -18,6 +18,7 @@
 #define SITES_MAX              16
 #define TMR_DISABLE            0x0
 #define TMR_ME                 0x80000000
+#define TMR_CMD                        BIT(29)
 #define TMR_ALPF               0x0c000000
 #define TMR_ALPF_V2            0x03000000
 #define TMTMIR_DEFAULT 0x0000000f
@@ -356,6 +357,12 @@ static int qoriq_tmu_suspend(struct device *dev)
        if (ret)
                return ret;
 
+       if (data->ver > TMU_VER1) {
+               ret = regmap_set_bits(data->regmap, REGS_TMR, TMR_CMD);
+               if (ret)
+                       return ret;
+       }
+
        clk_disable_unprepare(data->clk);
 
        return 0;
@@ -370,6 +377,12 @@ static int qoriq_tmu_resume(struct device *dev)
        if (ret)
                return ret;
 
+       if (data->ver > TMU_VER1) {
+               ret = regmap_clear_bits(data->regmap, REGS_TMR, TMR_CMD);
+               if (ret)
+                       return ret;
+       }
+
        /* Enable monitoring */
        return regmap_update_bits(data->regmap, REGS_TMR, TMR_ME, TMR_ME);
 }