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 <nancy.lin@mediatek.corp-partner.google.com>
Change-Id: Ic928b2478c41ccd03223fd2b73d9e81d303a2036
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85952
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
This commit is contained in:
Nancy Lin 2024-12-10 15:41:55 +08:00 committed by Yidi Lin
commit d30f08e295
2 changed files with 20 additions and 0 deletions

View file

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

View file

@ -1,15 +1,18 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <bootmode.h>
#include <console/console.h>
#include <device/device.h>
#include <fw_config.h>
#include <gpio.h>
#include <soc/addressmap.h>
#include <soc/bl31.h>
#include <soc/display.h>
#include <soc/dpm_v2.h>
#include <soc/gpio_common.h>
#include <soc/i2c.h>
#include <soc/msdc.h>
#include <soc/mt6373.h>
#include <soc/pcie.h>
#include <soc/spm_common.h>
#include <soc/storage.h>
@ -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();