From 090bce1042ff4225fabb5644f1a338374aacddbd Mon Sep 17 00:00:00 2001 From: Vince Liu Date: Fri, 28 Mar 2025 11:11:54 +0800 Subject: [PATCH] soc/mediatek/common: Add VMODEM and VSRAM_MD bucks support for MT6359 Add support for VMODEM and VSRAM_MD buck converters in MT6359. These buck converters are required for MT8189 to adjust voltage and CPU frequency. BUG=b:379008996 BRANCH=none TEST=build passed. Signed-off-by: Zhigang Qin Change-Id: Ifdf43748a139050ec9fba50f918e071dc622a670 Reviewed-on: https://review.coreboot.org/c/coreboot/+/87799 Reviewed-by: Yidi Lin Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu --- src/soc/mediatek/common/include/soc/mt6359p.h | 8 ++++++- src/soc/mediatek/common/mt6359p.c | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/soc/mediatek/common/include/soc/mt6359p.h b/src/soc/mediatek/common/include/soc/mt6359p.h index b829eb6e83..017e6c8d61 100644 --- a/src/soc/mediatek/common/include/soc/mt6359p.h +++ b/src/soc/mediatek/common/include/soc/mt6359p.h @@ -22,6 +22,8 @@ enum { PMIC_VCORE_ELR0 = 0x152c, PMIC_VGPU11_DBG0 = 0x15a6, PMIC_VGPU11_ELR0 = 0x15b4, + PMIC_VMODEM_DBG0 = 0x16a6, + PMIC_VMODEM_ELR0 = 0x16ae, PMIC_VS2_VOTER = 0x18aa, PMIC_VS2_VOTER_CFG = 0x18b0, PMIC_VS2_ELR0 = 0x18b4, @@ -30,12 +32,14 @@ enum { PMIC_VPA_DBG0 = 0x1914, PMIC_BUCK_VPA_DLC_CON0 = 0x1918, PMIC_BUCK_VPA_DLC_CON1 = 0x191a, - PMIC_VSIM1_CON0 = 0x1cd0, PMIC_VSRAM_PROC1_ELR = 0x1b44, PMIC_VSRAM_PROC2_ELR = 0x1b46, + PMIC_VSRAM_MD_ELR = 0x1b4a, + PMIC_VSIM1_CON0 = 0x1cd0, PMIC_VM18_CON0 = 0x1d88, PMIC_VSRAM_PROC1_VOSEL1 = 0x1e90, PMIC_VSRAM_PROC2_VOSEL1 = 0x1eb0, + PMIC_VSRAM_MD_VOSEL1 = 0x1f36, PMIC_VSIM1_ANA_CON0 = 0x1fa2, PMIC_VM18_ANA_CON0 = 0x2020, }; @@ -62,6 +66,8 @@ enum { MT6359P_PA, MT6359P_SIM1, MT6359P_VM18, + MT6359P_VMODEM, + MT6359P_VSRAM_MD, MT6359P_MAX, }; diff --git a/src/soc/mediatek/common/mt6359p.c b/src/soc/mediatek/common/mt6359p.c index 6b09d57caa..8026f29915 100644 --- a/src/soc/mediatek/common/mt6359p.c +++ b/src/soc/mediatek/common/mt6359p.c @@ -190,6 +190,16 @@ void mt6359p_buck_set_voltage(u32 buck_id, u32 buck_uv) vol_reg = PMIC_VPA_CON1; vol_step = 50000; break; + case MT6359P_VMODEM: + vol_offset = 400000; + vol_reg = PMIC_VMODEM_ELR0; + vol_step = 6250; + break; + case MT6359P_VSRAM_MD: + vol_offset = 500000; + vol_reg = PMIC_VSRAM_MD_ELR; + vol_step = 6250; + break; default: die("ERROR: Unknown buck_id %u", buck_id); return; @@ -237,6 +247,18 @@ u32 mt6359p_buck_get_voltage(u32 buck_id) vol_reg = PMIC_VPA_DBG0; vol_step = 50000; break; + case MT6359P_VMODEM: + vol_shift = 0; + vol_offset = 400000; + vol_reg = PMIC_VMODEM_DBG0; + vol_step = 6250; + break; + case MT6359P_VSRAM_MD: + vol_shift = 8; + vol_offset = 500000; + vol_reg = PMIC_VSRAM_MD_VOSEL1; + vol_step = 6250; + break; default: die("ERROR: Unknown buck_id %u", buck_id); return 0;