From 291778a1bdfa3f6ec4fc0a6ab1a42533c4f9e978 Mon Sep 17 00:00:00 2001 From: Yang Wu Date: Thu, 19 Dec 2024 19:10:07 +0800 Subject: [PATCH] mb/google/corsola: Add new board variant Wyrdeer Add a new Staryu follower device 'Wyrdeer'. And add MIPI panel support. BUG=b:379810871 TEST=emerge-staryu coreboot chromeos-bootimage and check FW screen BRANCH=corsola Change-Id: I07b73c97d8d51b32f557e31d834ffc6cfb8420ed Signed-off-by: Yang Wu Reviewed-on: https://review.coreboot.org/c/coreboot/+/85742 Tested-by: build bot (Jenkins) Reviewed-by: Yidi Lin Reviewed-by: Yu-Ping Wu --- src/mainboard/google/corsola/Kconfig | 8 +++-- src/mainboard/google/corsola/Kconfig.name | 3 ++ src/mainboard/google/corsola/Makefile.mk | 1 + src/mainboard/google/corsola/panel_wyrdeer.c | 37 ++++++++++++++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/mainboard/google/corsola/panel_wyrdeer.c diff --git a/src/mainboard/google/corsola/Kconfig b/src/mainboard/google/corsola/Kconfig index 41f9845710..6977bd41c4 100644 --- a/src/mainboard/google/corsola/Kconfig +++ b/src/mainboard/google/corsola/Kconfig @@ -23,7 +23,8 @@ config BOARD_GOOGLE_KRABBY_COMMON config BOARD_GOOGLE_STARYU_COMMON def_bool BOARD_GOOGLE_STARMIE || \ - BOARD_GOOGLE_WUGTRIO + BOARD_GOOGLE_WUGTRIO || \ + BOARD_GOOGLE_WYRDEER if BOARD_GOOGLE_CORSOLA_COMMON @@ -31,7 +32,8 @@ config CORSOLA_SDCARD_INIT def_bool BOARD_GOOGLE_KINGLER_COMMON || \ BOARD_GOOGLE_MAGIKARP || \ BOARD_GOOGLE_TENTACRUEL || \ - BOARD_GOOGLE_WUGTRIO + BOARD_GOOGLE_WUGTRIO || \ + BOARD_GOOGLE_WYRDEER config BOARD_SPECIFIC_OPTIONS def_bool y @@ -70,6 +72,7 @@ config BOARD_SPECIFIC_OPTIONS select FW_CONFIG select FW_CONFIG_SOURCE_CHROMEEC_CBI select MIPI_PANEL_KD_KD101NE3_40TI if BOARD_GOOGLE_WUGTRIO + select MIPI_PANEL_KD_KD110N11_51IE if BOARD_GOOGLE_WYRDEER select MIPI_PANEL_LCE_LMFBX101117480 if BOARD_GOOGLE_WUGTRIO select MIPI_PANEL_STA_ER88577 if BOARD_GOOGLE_WUGTRIO select MIPI_PANEL_STA_HIMAX83102_J02 if BOARD_GOOGLE_STARMIE @@ -99,6 +102,7 @@ config MAINBOARD_PART_NUMBER default "Veluza" if BOARD_GOOGLE_VELUZA default "Voltorb" if BOARD_GOOGLE_VOLTORB default "Wugtrio" if BOARD_GOOGLE_WUGTRIO + default "Wyrdeer" if BOARD_GOOGLE_WYRDEER config BOOT_DEVICE_SPI_FLASH_BUS int diff --git a/src/mainboard/google/corsola/Kconfig.name b/src/mainboard/google/corsola/Kconfig.name index ab6a132868..5de50c3533 100644 --- a/src/mainboard/google/corsola/Kconfig.name +++ b/src/mainboard/google/corsola/Kconfig.name @@ -47,3 +47,6 @@ config BOARD_GOOGLE_STARMIE config BOARD_GOOGLE_WUGTRIO bool "-> Wugtrio" + +config BOARD_GOOGLE_WYRDEER + bool "-> Wyrdeer" diff --git a/src/mainboard/google/corsola/Makefile.mk b/src/mainboard/google/corsola/Makefile.mk index 6ff22c6073..ef60282a30 100644 --- a/src/mainboard/google/corsola/Makefile.mk +++ b/src/mainboard/google/corsola/Makefile.mk @@ -29,3 +29,4 @@ ramstage-y += reset.c ramstage-$(CONFIG_BOARD_GOOGLE_STARMIE) += panel_starmie.c ramstage-$(CONFIG_BOARD_GOOGLE_WUGTRIO) += panel_wugtrio.c +ramstage-$(CONFIG_BOARD_GOOGLE_WYRDEER) += panel_wyrdeer.c diff --git a/src/mainboard/google/corsola/panel_wyrdeer.c b/src/mainboard/google/corsola/panel_wyrdeer.c new file mode 100644 index 0000000000..5ae3120d21 --- /dev/null +++ b/src/mainboard/google/corsola/panel_wyrdeer.c @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include + +#include "gpio.h" +#include "panel.h" + +static void mipi_panel_power_on(void) +{ + struct tps65132s_cfg config = { + .i2c_bus = PMIC_I2C_BUS, + .en = GPIO_EN_PP3300_DISP_X, + .sync = GPIO_TCHPAD_INT_ODL, + }; + tps65132s_power_on(&config); +} + +static struct panel_description wyrdeer_panels[] = { + /* K&D Technology panel */ + [6] = { + .configure_backlight = backlight_control, + .power_on = mipi_panel_power_on, + .name = "KD_KD110N11_51IE", + .disp_path = DISP_PATH_MIPI, + .orientation = LB_FB_ORIENTATION_LEFT_UP, + }, +}; + +struct panel_description *get_panel_description(void) +{ + uint32_t id = panel_id() & 0xF; + if (id >= ARRAY_SIZE(wyrdeer_panels)) + return NULL; + + return &wyrdeer_panels[id]; +}