summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorSen Chu <sen.chu@mediatek.corp-partner.google.com>2023-01-10 22:45:11 +0800
committerFelix Held <felix-coreboot@felixheld.de>2023-02-08 15:40:42 +0000
commit012701970faaec35195ff705dfc9956404c8c516 (patch)
tree25ae19e9511684db7a566a422769636ee2d227e0 /src/soc
parentbf5f8214315199c32f9f10f52e235d97f050a3f0 (diff)
soc/mediatek: Add support for regulator VM18
To provide power to MIPI panel BOE_TV110C9M_LL0, add support for regulator VM18. BUG=b:244208960 TEST=test firmware display pass for BOE_TV110C9M_LL0 on Geralt. Change-Id: Ib8c3b2df1157b23b37492b1e9b1716903ea67799 Signed-off-by: Sen Chu <sen.chu@mediatek.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/72747 Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Reviewed-by: Yidi Lin <yidilin@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/mediatek/common/include/soc/mt6359p.h3
-rw-r--r--src/soc/mediatek/common/include/soc/regulator.h1
-rw-r--r--src/soc/mediatek/common/mt6359p.c5
3 files changed, 9 insertions, 0 deletions
diff --git a/src/soc/mediatek/common/include/soc/mt6359p.h b/src/soc/mediatek/common/include/soc/mt6359p.h
index a53be634ba..4bb62496aa 100644
--- a/src/soc/mediatek/common/include/soc/mt6359p.h
+++ b/src/soc/mediatek/common/include/soc/mt6359p.h
@@ -33,6 +33,7 @@ enum {
PMIC_VSIM1_CON0 = 0x1cd0,
PMIC_VSRAM_PROC1_ELR = 0x1b44,
PMIC_VSRAM_PROC2_ELR = 0x1b46,
+ PMIC_VM18_CON0 = 0x1d88,
PMIC_VSRAM_PROC1_VOSEL1 = 0x1e90,
PMIC_VSRAM_PROC2_VOSEL1 = 0x1eb0,
PMIC_VSIM1_ANA_CON0 = 0x1fa2,
@@ -60,6 +61,7 @@ enum {
MT6359P_CORE,
MT6359P_PA,
MT6359P_SIM1,
+ MT6359P_VM18,
MT6359P_MAX,
};
@@ -84,6 +86,7 @@ void mt6359p_set_vsim1_voltage(u32 vsim1_uv);
u32 mt6359p_get_vsim1_voltage(void);
void mt6359p_enable_vpa(bool enable);
void mt6359p_enable_vsim1(bool enable);
+void mt6359p_enable_vm18(bool enable);
void mt6359p_write_field(u32 reg, u32 val, u32 mask, u32 shift);
void pmic_init_setting(void);
void pmic_lp_setting(void);
diff --git a/src/soc/mediatek/common/include/soc/regulator.h b/src/soc/mediatek/common/include/soc/regulator.h
index 7f3bd49e04..e2b92517fd 100644
--- a/src/soc/mediatek/common/include/soc/regulator.h
+++ b/src/soc/mediatek/common/include/soc/regulator.h
@@ -22,6 +22,7 @@ enum mtk_regulator {
MTK_REGULATOR_VSRAM_PROC12,
MTK_REGULATOR_VRF12,
MTK_REGULATOR_VCN33,
+ MTK_REGULATOR_VDD18,
MTK_REGULATOR_NUM,
};
diff --git a/src/soc/mediatek/common/mt6359p.c b/src/soc/mediatek/common/mt6359p.c
index e2c8e14ca2..78af34e1eb 100644
--- a/src/soc/mediatek/common/mt6359p.c
+++ b/src/soc/mediatek/common/mt6359p.c
@@ -324,6 +324,11 @@ void mt6359p_enable_vsim1(bool enable)
mt6359p_write_field(PMIC_VSIM1_CON0, enable, 0x1, 0);
}
+void mt6359p_enable_vm18(bool enable)
+{
+ mt6359p_write_field(PMIC_VM18_CON0, enable, 0x1, 0);
+}
+
static void init_pmif_arb(void)
{
if (!pmif_arb) {