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 <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Ifdf43748a139050ec9fba50f918e071dc622a670
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87799
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
Vince Liu 2025-03-28 11:11:54 +08:00 committed by Yidi Lin
commit 090bce1042
2 changed files with 29 additions and 1 deletions

View file

@ -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,
};

View file

@ -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;