From 8ea218b2cbed7f7571cb464e7a9b10c5248c38dd Mon Sep 17 00:00:00 2001 From: Jitao Shi Date: Mon, 11 Jan 2016 19:24:37 +0800 Subject: google/oak: configure display BRANCH=none BUG=chrome-os-partner:43706 TEST=saw bootloader screen on rev4 and rev5 Change-Id: I844fed6f63467ad04d17115934a1e4724cc0b671 Signed-off-by: Patrick Georgi Original-Commit-Id: 2e9d57a42402631923c96e70bc2eff5c135de2fc Original-Change-Id: I748b0eac9a0aab1d38d5d44a1a50dc33d5375379 Original-Signed-off-by: Jitao Shi Original-Reviewed-on: https://chromium-review.googlesource.com/331813 Original-Commit-Ready: Yidi Lin Original-Tested-by: Yidi Lin Original-Reviewed-by: Julius Werner Original-Reviewed-by: Daniel Kurtz Reviewed-on: https://review.coreboot.org/14690 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/mainboard/google/oak/mainboard.c | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src/mainboard/google/oak/mainboard.c') diff --git a/src/mainboard/google/oak/mainboard.c b/src/mainboard/google/oak/mainboard.c index 6bd42e3686..5001a9a52b 100644 --- a/src/mainboard/google/oak/mainboard.c +++ b/src/mainboard/google/oak/mainboard.c @@ -152,6 +152,48 @@ static void configure_backlight(void) gpio_output(PAD_PCM_TX, 0); /* PANEL_POWER_EN */ } +static void configure_display(void) +{ + mtcmos_display_power_on(); + + switch (board_id()) { + case 0: + /* board from Rev0, Rev1 */ + /* vgp2 set to 1.8V for it6151 */ + mt6391_configure_ldo(LDO_VGP2, LDO_1P8); + gpio_output(PAD_PCM_RX, 0); /* IT6151_SYSRSTN */ + gpio_output(PAD_CMMCLK, 1); /* PANEL_3V3_ENABLE */ + gpio_output(PAD_PCM_SYNC, 1); /* IT6151_1V2_ENABLE */ + gpio_output(PAD_PCM_RX, 1); /* IT6151_SYSRSTN */ + break; + case 1: + /* board from Rev0, Rev1 */ + /* vgp2 set to 1.8V for it6151 */ + mt6391_configure_ldo(LDO_VGP2, LDO_1P8); + gpio_output(PAD_URTS0, 0); /* IT6151_SYSRSTN */ + gpio_output(PAD_URTS2, 1); /* IT6151_1V2_ENABLE */ + gpio_output(PAD_CMMCLK, 1); /* PANEL_3V3_ENABLE */ + gpio_output(PAD_URTS0, 1); /* IT6151_SYSRSTN */ + break; + default: + /* board from Rev2 */ + gpio_output(PAD_CMMCLK, 1); /* PANEL_3V3_ENABLE */ + /* vgp2 set to 3.3V for ps8640 */ + mt6391_configure_ldo(LDO_VGP2, LDO_3P3); + gpio_output(PAD_URTS0, 0); /* PS8640_SYSRSTN */ + /* PS8640_1V2_ENABLE */ + gpio_output(board_id() == 4 ? PAD_SRCLKENAI2 : PAD_URTS2, 1); + /* delay 2ms for vgp2 and PS8640_1V2_ENABLE stable */ + mdelay(2); + /* PS8640_PDN */ + gpio_output(board_id() > 4 ? PAD_LCM_RST : PAD_UCTS0, 1); + gpio_output(PAD_PCM_CLK, 1); /* PS8640_MODE_CONF */ + gpio_output(PAD_URTS0, 1); /* PS8640_SYSRSTN */ + /* for level shift(1.8V to 3.3V) on */ + udelay(100); + } +} + static void display_startup(void) { struct edid edid; @@ -207,6 +249,7 @@ static void mainboard_init(device_t dev) configure_audio(); if (display_init_required()) { configure_backlight(); + configure_display(); display_startup(); } else { printk(BIOS_INFO, "Skipping display init.\n"); -- cgit v1.2.3