diff mbox series

[v1,3/5] regulator: mtk-dvfsrc: Add support for Dimensity 1200 MT6893

Message ID 20250410144019.475930-4-angelogioacchino.delregno@collabora.com (mailing list archive)
State New
Headers show
Series MediaTek Dimensity 1200 - Add DVFSRC support | expand

Commit Message

AngeloGioacchino Del Regno April 10, 2025, 2:40 p.m. UTC
The MediaTek Dimensity 1200 (MT6893) features the same DVFSRC
regulators as the other currently supported SoCs, but with a
different select value: add an array describing the possible
voltages for the VCORE and VSCP regulators, and assign it to
a new compatible for this SoC.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/regulator/mtk-dvfsrc-regulator.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Mark Brown April 11, 2025, 11:32 a.m. UTC | #1
On Thu, Apr 10, 2025 at 04:40:17PM +0200, AngeloGioacchino Del Regno wrote:
> The MediaTek Dimensity 1200 (MT6893) features the same DVFSRC
> regulators as the other currently supported SoCs, but with a
> different select value: add an array describing the possible
> voltages for the VCORE and VSCP regulators, and assign it to
> a new compatible for this SoC.

Acked-by: Mark Brown <broonie@kernel.org>

Though it looks like there's no build time dependency here so I could
just go ahead and apply, it's just needed as part of this for testing?
diff mbox series

Patch

diff --git a/drivers/regulator/mtk-dvfsrc-regulator.c b/drivers/regulator/mtk-dvfsrc-regulator.c
index f5662c569464..6c84bfe56872 100644
--- a/drivers/regulator/mtk-dvfsrc-regulator.c
+++ b/drivers/regulator/mtk-dvfsrc-regulator.c
@@ -117,6 +117,24 @@  static const struct dvfsrc_regulator_pdata mt6873_data = {
 	.size = ARRAY_SIZE(mt6873_regulators),
 };
 
+static const unsigned int mt6893_voltages[] = {
+	575000,
+	600000,
+	650000,
+	725000,
+	750000,
+};
+
+static const struct regulator_desc mt6893_regulators[] = {
+	MTK_DVFSRC_VREG("dvfsrc-vcore", VCORE, mt6893_voltages),
+	MTK_DVFSRC_VREG("dvfsrc-vscp", VSCP, mt6893_voltages),
+};
+
+static const struct dvfsrc_regulator_pdata mt6873_data = {
+	.descs = mt6873_regulators,
+	.size = ARRAY_SIZE(mt6873_regulators),
+};
+
 static const unsigned int mt8183_voltages[] = {
 	725000,
 	800000,
@@ -173,6 +191,7 @@  static int dvfsrc_vcore_regulator_probe(struct platform_device *pdev)
 
 static const struct of_device_id mtk_dvfsrc_regulator_match[] = {
 	{ .compatible = "mediatek,mt6873-dvfsrc-regulator", .data = &mt6873_data },
+	{ .compatible = "mediatek,mt6893-dvfsrc-regulator", .data = &mt6893_data },
 	{ .compatible = "mediatek,mt8183-dvfsrc-regulator", .data = &mt8183_data },
 	{ .compatible = "mediatek,mt8192-dvfsrc-regulator", .data = &mt6873_data },
 	{ .compatible = "mediatek,mt8195-dvfsrc-regulator", .data = &mt8195_data },