Attention is currently required from: Hung-Te Lin, Yidi Lin, Yu-Ping Wu.
Jarried Lin has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/85951?usp=email )
Change subject: mb/google/rauru: Add edp driver in mainboard ......................................................................
mb/google/rauru: Add edp driver in mainboard
Add edp driver Adjust training flow and turn off phy power beforce phy configurate because maby link training fail
TEST=check edp training pass and show log: EQ training pass BUG=b:343351631
Signed-off-by: Bincai Liu bincai.liu@mediatek.corp-partner.google.com Change-Id: Iea610c97351beb94a49cc1044701a523b7c85a6e --- M src/mainboard/google/rauru/Kconfig M src/mainboard/google/rauru/Makefile.mk M src/mainboard/google/rauru/chromeos.c M src/mainboard/google/rauru/devicetree.cb M src/mainboard/google/rauru/gpio.h A src/mainboard/google/rauru/panel.c A src/mainboard/google/rauru/panel_navi.c 7 files changed, 105 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/51/85951/1
diff --git a/src/mainboard/google/rauru/Kconfig b/src/mainboard/google/rauru/Kconfig index 57e8c1b..a686838 100644 --- a/src/mainboard/google/rauru/Kconfig +++ b/src/mainboard/google/rauru/Kconfig @@ -33,6 +33,8 @@ select TPM_GOOGLE_TI50 if VBOOT select COMMONLIB_STORAGE select COMMONLIB_STORAGE_MMC + select FW_CONFIG + select FW_CONFIG_SOURCE_CHROMEEC_CBI
config MAINBOARD_DIR string diff --git a/src/mainboard/google/rauru/Makefile.mk b/src/mainboard/google/rauru/Makefile.mk index 98f5bbd..095d104 100644 --- a/src/mainboard/google/rauru/Makefile.mk +++ b/src/mainboard/google/rauru/Makefile.mk @@ -10,4 +10,6 @@
ramstage-y += boardid.c ramstage-y += mainboard.c +ramstage-y += panel.c +ramstage-y += panel_navi.c ramstage-y += regulator.c diff --git a/src/mainboard/google/rauru/chromeos.c b/src/mainboard/google/rauru/chromeos.c index 6a34cb9..5bab019 100644 --- a/src/mainboard/google/rauru/chromeos.c +++ b/src/mainboard/google/rauru/chromeos.c @@ -56,6 +56,15 @@ lb_add_gpios(gpios, alc5645_gpios, ARRAY_SIZE(alc5645_gpios)); else lb_add_gpios(gpios, nau8318_gpios, ARRAY_SIZE(nau8318_gpios)); + + struct lb_gpio edp_pwm_gpios[] = { + {GPIO_BL_PWM_1V8.id, ACTIVE_HIGH, -1, "PWM control"}, + }; + lb_add_gpios(gpios, edp_pwm_gpios, ARRAY_SIZE(edp_pwm_gpios)); + struct lb_gpio backlight_gpios[] = { + {GPIO_AP_EDP_BKLTEN.id, ACTIVE_HIGH, -1, "backlight enable"}, + }; + lb_add_gpios(gpios, backlight_gpios, ARRAY_SIZE(backlight_gpios)); }
int cr50_plat_irq_status(void) diff --git a/src/mainboard/google/rauru/devicetree.cb b/src/mainboard/google/rauru/devicetree.cb index 1705dbe..0127103 100644 --- a/src/mainboard/google/rauru/devicetree.cb +++ b/src/mainboard/google/rauru/devicetree.cb @@ -8,6 +8,13 @@ end end
+fw_config + field Panel 18 21 + option DEFAULT 0 + option OLED 1 + end +end + chip soc/mediatek/mt8196 device cpu_cluster 0 on end
diff --git a/src/mainboard/google/rauru/gpio.h b/src/mainboard/google/rauru/gpio.h index c1c5b4b..f8ce6f5 100644 --- a/src/mainboard/google/rauru/gpio.h +++ b/src/mainboard/google/rauru/gpio.h @@ -15,6 +15,10 @@ #define GPIO_FP_RST_1V8_S3_L GPIO(EINT26) #define GPIO_AP_FP_FW_UP_STRAP GPIO(EINT27) #define GPIO_EN_PWR_FP GPIO(PERIPHERAL_EN3) +#define GPIO_BL_PWM_1V8 GPIO(DISP_PWM) +#define GPIO_AP_EDP_BKLTEN GPIO(PERIPHERAL_EN4) +#define GPIO_EN_PP3300_EDP_X GPIO(PERIPHERAL_EN2) +#define GPIO_EDP_HPD_1V8 GPIO(EINT13)
#define GPIO_I2SI4_BCK GPIO(I2SIN1_BCK) #define GPIO_I2SI4_LRCK GPIO(I2SIN1_LRCK) diff --git a/src/mainboard/google/rauru/panel.c b/src/mainboard/google/rauru/panel.c new file mode 100644 index 0000000..c35004c --- /dev/null +++ b/src/mainboard/google/rauru/panel.c @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ + +#include <boardid.h> +#include <cbfs.h> +#include <delay.h> +#include <fw_config.h> +#include <gpio.h> +#include <soc/ddp.h> +#include <soc/dsi.h> +#include <soc/gpio_common.h> +#include <soc/mtcmos.h> + +#include "gpio.h" + +struct panel_description *get_navi_description(void); + +/* Set up backlight control pins as output pin and power-off by default */ +static void configure_backlight(void) +{ + gpio_output(GPIO_AP_EDP_BKLTEN, 0); + gpio_output(GPIO_BL_PWM_1V8, 0); +} + +static void power_on_panel(void) +{ + gpio_set_pull(GPIO_EDP_HPD_1V8, GPIO_PULL_ENABLE, GPIO_PULL_UP); + gpio_set_mode(GPIO_EDP_HPD_1V8, GPIO_FUNC(EINT13, EDP_TX_HPD)); +} + +static struct panel_description panel = { + .configure_backlight = configure_backlight, + .power_on = power_on_panel, + .disp_path = DISP_PATH_EDP, + .orientation = LB_FB_ORIENTATION_NORMAL, +}; + +struct panel_description *get_active_panel(void) +{ + if (fw_config_probe(FW_CONFIG(Panel, OLED))) { + return get_navi_description(); + } + return &panel; +} diff --git a/src/mainboard/google/rauru/panel_navi.c b/src/mainboard/google/rauru/panel_navi.c new file mode 100644 index 0000000..176d7b9 --- /dev/null +++ b/src/mainboard/google/rauru/panel_navi.c @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ + +#include <boardid.h> +#include <cbfs.h> +#include <delay.h> +#include <fw_config.h> +#include <gpio.h> +#include <soc/ddp.h> +#include <soc/dsi.h> +#include <soc/gpio_common.h> +#include <soc/mtcmos.h> + +#include "gpio.h" + +struct panel_description *get_navi_description(void); + +static void power_on_oled_panel(void) +{ + /* Navi power sequence for oled panel. */ + printk(BIOS_INFO, "%s\n", __func__); + + gpio_output(GPIO_EN_PP3300_EDP_X, 1); + gpio_set_mode(GPIO_EDP_HPD_1V8, GPIO_FUNC(EINT13, EDP_TX_HPD)); + mdelay(400); + gpio_output(GPIO_AP_EDP_BKLTEN, 1); + gpio_output(GPIO_BL_PWM_1V8, 1); +} + +static struct panel_description oled_panel = { + .power_on = power_on_oled_panel, + .disp_path = DISP_PATH_EDP, + .orientation = LB_FB_ORIENTATION_NORMAL, +}; + +struct panel_description *get_navi_description(void) +{ + return &oled_panel; +}