diff options
author | Bruce <Bruce.Wan@quantatw.com> | 2016-11-10 13:46:21 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-11-12 20:33:07 -0800 |
commit | c6273b6145974b0c8fbb6ab925cb65026430818d (patch) | |
tree | b7e3f021c170f17d947682365e24fac6cb57f4ee | |
parent | 3f728b4ca62f2e1f4c8b89d6097e91c3f24571c9 (diff) | |
download | chrome-ec-c6273b6145974b0c8fbb6ab925cb65026430818d.tar.gz |
Pyro: clear hpd bit in board level tcpc init
PD alternate mode is covered in tcpc interface. So tcpci_tcpm_init()
doesn't reset HPD. If keeping HDMI/DP type-C cable connected, doing
sysjump sets HPD signal to high while it's already high(this high comes
from previous state), then OS doesn't output to HDMI/DP monitor.
BUG=None
BRANCH=none
TEST=make buildall
Change-Id: Ic3bc75b1e5579816d8c1b294fe2eb65a20e3eae3
Signed-off-by: Bruce.Wan <Bruce.Wan@quantatw.com>
Reviewed-on: https://chromium-review.googlesource.com/409751
Commit-Ready: Keith Tzeng <keith.tzeng@quantatw.com>
Tested-by: Keith Tzeng <keith.tzeng@quantatw.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | board/pyro/board.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/board/pyro/board.c b/board/pyro/board.c index e34fcbdd89..11fbc3c0c6 100644 --- a/board/pyro/board.c +++ b/board/pyro/board.c @@ -302,6 +302,8 @@ void board_print_tcpc_fw_version(int port) void board_tcpc_init(void) { + int port; + /* Only reset TCPC if not sysjump */ if (!system_jumped_to_this_image()) board_reset_pd_mcu(); @@ -311,6 +313,16 @@ void board_tcpc_init(void) /* Enable TCPC1 interrupt */ gpio_enable_interrupt(GPIO_USB_C1_PD_INT_ODL); + + /* + * Initialize HPD to low; after sysjump SOC needs to see + * HPD pulse to enable video path + */ + for (port = 0; port < CONFIG_USB_PD_PORT_COUNT; port++) { + const struct usb_mux *mux = &usb_muxes[port]; + + mux->hpd_update(port, 0, 0); + } } DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1); |