[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251104031533.9419-2-Niklaus.Liu@mediatek.com>
Date: Tue, 4 Nov 2025 11:15:11 +0800
From: niklaus.liu <Niklaus.Liu@...iatek.com>
To: Matthias Brugger <matthias.bgg@...il.com>, AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>
CC: <linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
<linux-mediatek@...ts.infradead.org>,
<Project_Global_Chrome_Upstream_Group@...iatek.com>,
<sirius.wang@...iatek.com>, <vince-wl.liu@...iatek.com>,
<jh.hsu@...iatek.com>, <zhigang.qin@...iatek.com>, <sen.chu@...iatek.com>,
Niklaus Liu <niklaus.liu@...iatek.com>
Subject: [PATCH 1/1] soc: mediatek: mtk-regulator-coupler: Add support for MT8189
From: Niklaus Liu <niklaus.liu@...iatek.com>
Enhance the regulator coupler driver to support GPU power control on the
MediaTek MT8189 platform. This update ensures proper coordination of
multiple regulators required for GPU operation,improving power management
and system stability.
Signed-off-by: Niklaus Liu <niklaus.liu@...iatek.com>
---
drivers/soc/mediatek/mtk-regulator-coupler.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/mediatek/mtk-regulator-coupler.c b/drivers/soc/mediatek/mtk-regulator-coupler.c
index 0b6a2884145e..f6e3b2a3a5a8 100644
--- a/drivers/soc/mediatek/mtk-regulator-coupler.c
+++ b/drivers/soc/mediatek/mtk-regulator-coupler.c
@@ -42,6 +42,18 @@ static int mediatek_regulator_balance_voltage(struct regulator_coupler *coupler,
int max_uV = INT_MAX;
int ret;
+ /*
+ * When vsram_gpu is enabled or disabled and the use_count of the
+ * vsram_gpu regulator is zero, the regulator coupler driver will
+ * execute regulator_do_balance_voltage, which adjusts the vsram_gpu
+ * voltage to the minimum value. This may result in vsram_gpu being
+ * lower than vgpu. Therefore, when enabling or disabling vsram_gpu,
+ * the 8189 temporarily skips the regulator coupler driver's modification
+ * of the vsram_gpu voltage.
+ */
+ if (of_machine_is_compatible("mediatek,mt8189") && rdev == mrc->vsram_rdev)
+ return 0;
+
/*
* If the target device is on, setting the SRAM voltage directly
* is not supported as it scales through its coupled supply voltage.
@@ -148,7 +160,8 @@ static int mediatek_regulator_coupler_init(void)
if (!of_machine_is_compatible("mediatek,mt8183") &&
!of_machine_is_compatible("mediatek,mt8186") &&
!of_machine_is_compatible("mediatek,mt8188") &&
- !of_machine_is_compatible("mediatek,mt8192"))
+ !of_machine_is_compatible("mediatek,mt8192") &&
+ !of_machine_is_compatible("mediatek,mt8189"))
return 0;
return regulator_coupler_register(&mediatek_coupler.coupler);
--
2.46.0
Powered by blists - more mailing lists