From d30f08e295a9dcd696279f2e96ba4a961a141152 Mon Sep 17 00:00:00 2001 From: Nancy Lin Date: Tue, 10 Dec 2024 15:41:55 +0800 Subject: [PATCH] mb/google/rauru: Configure firmware display for eDP panel Add eDP panel power-on sequences and initialize the display in the ramstage. The mt6373_set_vcn33_3_voltage function sets the voltage required to power on the eDP panel. TEST=Build pass, the firmware screen displays correctly. BUG=b:343351631, b:353464237 Signed-off-by: Nancy Lin Change-Id: Ic928b2478c41ccd03223fd2b73d9e81d303a2036 Reviewed-on: https://review.coreboot.org/c/coreboot/+/85952 Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu Reviewed-by: Yidi Lin --- src/mainboard/google/rauru/Kconfig | 2 ++ src/mainboard/google/rauru/mainboard.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/mainboard/google/rauru/Kconfig b/src/mainboard/google/rauru/Kconfig index a6868380df..ae3ffb3bf3 100644 --- a/src/mainboard/google/rauru/Kconfig +++ b/src/mainboard/google/rauru/Kconfig @@ -23,6 +23,8 @@ config BOARD_SPECIFIC_OPTIONS select COMMON_CBFS_SPI_WRAPPER select SPI_FLASH select SPI_FLASH_INCLUDE_ALL_DRIVERS + select MAINBOARD_HAS_NATIVE_VGA_INIT + select HAVE_LINEAR_FRAMEBUFFER select CHROMEOS_USE_EC_WATCHDOG_FLAG if CHROMEOS select EC_GOOGLE_CHROMEEC select EC_GOOGLE_CHROMEEC_BOARDID diff --git a/src/mainboard/google/rauru/mainboard.c b/src/mainboard/google/rauru/mainboard.c index 817bcf28ac..f55da81329 100644 --- a/src/mainboard/google/rauru/mainboard.c +++ b/src/mainboard/google/rauru/mainboard.c @@ -1,15 +1,18 @@ /* SPDX-License-Identifier: GPL-2.0-only */ +#include #include #include #include #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -70,6 +73,13 @@ static void power_on_fpmcu(void) gpio_output(GPIO_FP_RST_1V8_S3_L, 1); } +static void enable_display_power_rail(void) +{ + mt6373_init_pmif_arb(); + mt6373_enable_vcn33_3(true); + mt6373_set_vcn33_3_voltage(3300000); +} + enum mtk_storage_type mainboard_get_storage_type(void) { uint32_t index = storage_id(); @@ -96,6 +106,14 @@ bool mainboard_needs_pcie_init(void) static void mainboard_init(struct device *dev) { + if (display_init_required()) { + enable_display_power_rail(); + if (mtk_display_init() < 0) + printk(BIOS_ERR, "%s: Failed to init display\n", __func__); + } else { + printk(BIOS_INFO, "%s: Skipped display initialization\n", __func__); + } + setup_usb_host(); power_on_fpmcu(); configure_audio();