diff --git a/src/mainboard/google/rauru/Kconfig b/src/mainboard/google/rauru/Kconfig index b32923dd23..9bccc87893 100644 --- a/src/mainboard/google/rauru/Kconfig +++ b/src/mainboard/google/rauru/Kconfig @@ -48,6 +48,12 @@ config MAINBOARD_PART_NUMBER default "Navi" if BOARD_GOOGLE_NAVI default "Rauru" if BOARD_GOOGLE_RAURU +config VARIANT_DIR + default "navi" if BOARD_GOOGLE_NAVI + +config OVERRIDE_DEVICETREE + default "variants/\$(CONFIG_VARIANT_DIR)/overridetree.cb" if BOARD_GOOGLE_NAVI + config BOOT_DEVICE_SPI_FLASH_BUS int default 8 diff --git a/src/mainboard/google/rauru/Makefile.mk b/src/mainboard/google/rauru/Makefile.mk index 6ea1ffb83a..64624a16a9 100644 --- a/src/mainboard/google/rauru/Makefile.mk +++ b/src/mainboard/google/rauru/Makefile.mk @@ -12,3 +12,7 @@ ramstage-y += boardid.c ramstage-y += mainboard.c ramstage-y += panel.c ramstage-y += regulator.c + +CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/include + +subdirs-y += variants/$(VARIANT_DIR) diff --git a/src/mainboard/google/rauru/include/variants.h b/src/mainboard/google/rauru/include/variants.h new file mode 100644 index 0000000000..853b64a8ba --- /dev/null +++ b/src/mainboard/google/rauru/include/variants.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef __MAINBOARD_GOOGLE_RAURU_VARIANTS_H__ +#define __MAINBOARD_GOOGLE_RAURU_VARIANTS_H__ + +#include + +void fw_config_panel_override(struct panel_description *panel); + +#endif /* __MAINBOARD_GOOGLE_RAURU_VARIANTS_H__ */ diff --git a/src/mainboard/google/rauru/panel.c b/src/mainboard/google/rauru/panel.c index 92d2f30cf1..cb7042ae3c 100644 --- a/src/mainboard/google/rauru/panel.c +++ b/src/mainboard/google/rauru/panel.c @@ -4,6 +4,7 @@ #include #include #include +#include #include "gpio.h" #include "panel.h" @@ -20,7 +21,7 @@ static void power_on_panel(void) gpio_set_mode(GPIO_EDP_HPD_1V8, GPIO_FUNC(EINT13, EDP_TX_HPD)); } -static struct panel_description panel = { +static struct panel_description rauru_panel = { .configure_backlight = configure_backlight, .power_on = power_on_panel, .disp_path = DISP_PATH_EDP, @@ -41,10 +42,16 @@ static struct panel_description edp_panel = { .orientation = LB_FB_ORIENTATION_NORMAL, }; +__weak void fw_config_panel_override(struct panel_description *panel) +{ +} + struct panel_description *get_active_panel(void) { if (CONFIG(BOARD_GOOGLE_RAURU)) - return &panel; + return &rauru_panel; + + fw_config_panel_override(&edp_panel); return &edp_panel; } diff --git a/src/mainboard/google/rauru/variants/navi/Makefile.mk b/src/mainboard/google/rauru/variants/navi/Makefile.mk new file mode 100644 index 0000000000..52fd109576 --- /dev/null +++ b/src/mainboard/google/rauru/variants/navi/Makefile.mk @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only + +ramstage-y += fw_config.c diff --git a/src/mainboard/google/rauru/variants/navi/fw_config.c b/src/mainboard/google/rauru/variants/navi/fw_config.c new file mode 100644 index 0000000000..50f5df9903 --- /dev/null +++ b/src/mainboard/google/rauru/variants/navi/fw_config.c @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ + +#include +#include +#include + +void fw_config_panel_override(struct panel_description *panel) +{ + if (fw_config_probe(FW_CONFIG(OLED_WQXGA_PLUS, PRESENT))) + panel->quirks |= PANEL_QUIRK_FORCE_MAX_SWING; +} diff --git a/src/mainboard/google/rauru/variants/navi/overridetree.cb b/src/mainboard/google/rauru/variants/navi/overridetree.cb new file mode 100644 index 0000000000..cbc5e29713 --- /dev/null +++ b/src/mainboard/google/rauru/variants/navi/overridetree.cb @@ -0,0 +1,13 @@ +## SPDX-License-Identifier: GPL-2.0-only + +fw_config + field OLED_WQXGA_PLUS 1 1 + option PRESENT 1 + option ABSENT 0 + end +end + +chip soc/mediatek/mt8196 + device domain 0 on + end +end