diff options
author | Liju-Clr Chen <liju-clr.chen@mediatek.com> | 2023-02-06 15:58:44 +0800 |
---|---|---|
committer | Rex-BC Chen <rex-bc.chen@mediatek.com> | 2023-02-09 09:19:00 +0000 |
commit | 84bb5f4e1958b0fe82991b027ef0f166c109faa2 (patch) | |
tree | 394d33ddccf4d2685f50bd167498eadc43a0fc72 /src/soc | |
parent | 5aaf8df4fd9bd0cd30f4e2a8b3e67fb3bda65c1b (diff) |
mb/google/geralt: Init MT6359P only once in ramstage
The regulator MT6359P is needed by both firmware display and SD card.
To avoid duplicate initialization in ramstage, publicize init_pmif_arb()
as mt6359p_init_pmif_arb() and call it from mainboard_init(). This would
save 13 ms for boot time on Geralt.
BUG=b:244208960
TEST=test firmware display pass for BOE_TV110C9M_LL0 on Geralt.
Change-Id: I29498d186ba5665ae20e84985174fc10f8d4accd
Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72839
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/mediatek/common/include/soc/mt6359p.h | 1 | ||||
-rw-r--r-- | src/soc/mediatek/common/mt6359p.c | 4 | ||||
-rw-r--r-- | src/soc/mediatek/mt8188/msdc.c | 2 |
3 files changed, 3 insertions, 4 deletions
diff --git a/src/soc/mediatek/common/include/soc/mt6359p.h b/src/soc/mediatek/common/include/soc/mt6359p.h index 4bb62496aa..55a1a4d835 100644 --- a/src/soc/mediatek/common/include/soc/mt6359p.h +++ b/src/soc/mediatek/common/include/soc/mt6359p.h @@ -87,6 +87,7 @@ 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_init_pmif_arb(void); 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/mt6359p.c b/src/soc/mediatek/common/mt6359p.c index 78af34e1eb..47c46d0579 100644 --- a/src/soc/mediatek/common/mt6359p.c +++ b/src/soc/mediatek/common/mt6359p.c @@ -329,7 +329,7 @@ void mt6359p_enable_vm18(bool enable) mt6359p_write_field(PMIC_VM18_CON0, enable, 0x1, 0); } -static void init_pmif_arb(void) +void mt6359p_init_pmif_arb(void) { if (!pmif_arb) { pmif_arb = get_pmif_controller(PMIF_SPI, 0); @@ -343,7 +343,7 @@ static void init_pmif_arb(void) void mt6359p_init(void) { - init_pmif_arb(); + mt6359p_init_pmif_arb(); pmic_set_power_hold(); pmic_wdt_set(); pmic_protect_key_setting(false); diff --git a/src/soc/mediatek/mt8188/msdc.c b/src/soc/mediatek/mt8188/msdc.c index 37a96a736c..3aff5e9340 100644 --- a/src/soc/mediatek/mt8188/msdc.c +++ b/src/soc/mediatek/mt8188/msdc.c @@ -10,7 +10,6 @@ #include <soc/addressmap.h> #include <soc/regulator.h> #include <soc/msdc.h> -#include <soc/mt6359p.h> DEFINE_BITFIELD(MSDC0_DRV_0, 29, 18) DEFINE_BITFIELD(MSDC0_DRV_1, 17, 0) @@ -107,7 +106,6 @@ void mtk_msdc_configure_sdcard(void) MSDC1_GPIO_MODE1_0, MSDC1_GPIO_MODE1_VALUE); /* enable SD card power */ - mt6359p_init(); mainboard_enable_regulator(MTK_REGULATOR_VMCH, true); mainboard_enable_regulator(MTK_REGULATOR_VMC, true); mainboard_set_regulator_voltage(MTK_REGULATOR_VMCH, 3000000); |