From 84bb5f4e1958b0fe82991b027ef0f166c109faa2 Mon Sep 17 00:00:00 2001 From: Liju-Clr Chen Date: Mon, 6 Feb 2023 15:58:44 +0800 Subject: 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/72839 Reviewed-by: Yu-Ping Wu Reviewed-by: Yidi Lin Tested-by: build bot (Jenkins) Reviewed-by: Rex-BC Chen Reviewed-by: Eric Lai --- src/mainboard/google/geralt/mainboard.c | 3 +++ src/soc/mediatek/common/include/soc/mt6359p.h | 1 + src/soc/mediatek/common/mt6359p.c | 4 ++-- src/soc/mediatek/mt8188/msdc.c | 2 -- 4 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mainboard/google/geralt/mainboard.c b/src/mainboard/google/geralt/mainboard.c index ff893e0aaa..ee8b005d3e 100644 --- a/src/mainboard/google/geralt/mainboard.c +++ b/src/mainboard/google/geralt/mainboard.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "display.h" @@ -11,6 +12,8 @@ static void mainboard_init(struct device *dev) { + mt6359p_init_pmif_arb(); + if (display_init_required()) { if (configure_display() < 0) printk(BIOS_ERR, "%s: Failed to init display\n", __func__); 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 #include #include -#include 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); -- cgit v1.2.3