diff options
author | Jitao Shi <jitao.shi@mediatek.com> | 2016-01-11 19:24:37 +0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2016-05-09 08:32:24 +0200 |
commit | 8ea218b2cbed7f7571cb464e7a9b10c5248c38dd (patch) | |
tree | e2268e35473bb739035d54b196fa357cd0093dc6 /src | |
parent | 4a04a7bf10d7b2c372247fce297f7a69b85de250 (diff) |
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 <pgeorgi@chromium.org>
Original-Commit-Id: 2e9d57a42402631923c96e70bc2eff5c135de2fc
Original-Change-Id: I748b0eac9a0aab1d38d5d44a1a50dc33d5375379
Original-Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/331813
Original-Commit-Ready: Yidi Lin <yidi.lin@mediatek.com>
Original-Tested-by: Yidi Lin <yidi.lin@mediatek.com>
Original-Reviewed-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-on: https://review.coreboot.org/14690
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/oak/mainboard.c | 43 | ||||
-rw-r--r-- | src/soc/mediatek/mt8173/include/soc/mt6391.h | 2 | ||||
-rw-r--r-- | src/soc/mediatek/mt8173/mt6391.c | 2 |
3 files changed, 45 insertions, 2 deletions
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"); diff --git a/src/soc/mediatek/mt8173/include/soc/mt6391.h b/src/soc/mediatek/mt8173/include/soc/mt6391.h index c2a2ef39d5..3091d06ed3 100644 --- a/src/soc/mediatek/mt8173/include/soc/mt6391.h +++ b/src/soc/mediatek/mt8173/include/soc/mt6391.h @@ -264,7 +264,7 @@ enum{ enum ldo_power { LDO_VCAMD = 0, /* VGP1 */ - LDO_VCAMIO = 1, /* VGP2 */ + LDO_VGP2 = 1, /* VGP2 */ LDO_VCAMAF = 2, /* VGP3 */ LDO_VGP4 = 3, LDO_VGP5 = 4, diff --git a/src/soc/mediatek/mt8173/mt6391.c b/src/soc/mediatek/mt8173/mt6391.c index ced86d7ff0..f88fb8efca 100644 --- a/src/soc/mediatek/mt8173/mt6391.c +++ b/src/soc/mediatek/mt8173/mt6391.c @@ -98,7 +98,7 @@ void mt6391_configure_ldo(enum ldo_power ldo, enum ldo_voltage vsel) if (vsel == LDO_1P22) vsel = 0; break; - case LDO_VCAMIO: + case LDO_VGP2: assert(vsel != 1); if (vsel == LDO_1P0) vsel = 1; |