mb/google/skywalker: Add mainboard_prepare_cr50_reset()

The LCD MIPI panel requires proper power-off commands before reset.
Skipping them may cause overpotential conditions, leading to image
stickiness or flicker.

On MTK platforms, CR50 reset is the only reboot path in coreboot.
Add mainboard_prepare_cr50_reset() implementation on skywalker to
power off the MIPI panel before issuing CR50 reset.

BUG=b:474187570
TEST=emerge-jedi coreboot chromeos-bootimage
BRANCH=skywalker

Change-Id: I46a654e03ca2e7374cdaf05729f12b182669a64f
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91507
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Zhengqiao Xia <xiazhengqiao@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Yang Wu 2026-03-02 20:26:54 +08:00 committed by Yu-Ping Wu
commit b5a703e5a0

View file

@ -19,6 +19,7 @@
#include <soc/spm_common.h>
#include <soc/storage.h>
#include <soc/usb.h>
#include <vendorcode/google/chromeos/chromeos.h>
#include "gpio.h"
#include "panel.h"
@ -107,6 +108,13 @@ static void power_on_fpmcu(void)
gpio_output(GPIO_FP_RST_1V8_S3_L, 1);
}
void mainboard_prepare_cr50_reset(void)
{
printk(BIOS_INFO, "%s: Powering MIPI panel off\n", __func__);
if (mtk_mipi_panel_poweroff() < 0)
printk(BIOS_ERR, "%s: Failed to power off MIPI panel\n", __func__);
}
enum mtk_storage_type mainboard_get_storage_type(void)
{
uint32_t index = storage_id();