diff options
author | Edward Hill <ecgh@chromium.org> | 2020-01-30 11:27:09 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-02-14 20:23:06 +0000 |
commit | fd5e9c3980c81098bd6dd84c7d927c779187f8a2 (patch) | |
tree | 4522d5228c98921ecd8919416635dac5b5564550 /baseboard | |
parent | cf32f9f86ca2add5a457f53670c42123b429bffa (diff) | |
download | chrome-ec-fd5e9c3980c81098bd6dd84c7d927c779187f8a2.tar.gz |
zork: HPD for DB OPT1 HDMI
Add interrupt handler for HDMI_CONN_HPD_3V3_DB from IO expander on
DB OPT1 and connect to AP's DP1_HPD.
BUG=b:146468190
BRANCH=none
TEST=HDMI works with DB OPT1
Change-Id: I2cfd1a630d046086594335a20c98ff77953f59eb
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2031651
Diffstat (limited to 'baseboard')
-rw-r--r-- | baseboard/zork/baseboard.c | 20 | ||||
-rw-r--r-- | baseboard/zork/baseboard.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/baseboard/zork/baseboard.c b/baseboard/zork/baseboard.c index f2fe31891e..05fe765345 100644 --- a/baseboard/zork/baseboard.c +++ b/baseboard/zork/baseboard.c @@ -337,6 +337,9 @@ void baseboard_tcpc_init(void) /* Enable BC 1.2 interrupts */ gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL); gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL); + + /* Enable HPD interrupts */ + ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB); } DECLARE_HOOK(HOOK_INIT, baseboard_tcpc_init, HOOK_PRIO_INIT_I2C + 1); @@ -1161,3 +1164,20 @@ void board_hibernate(void) msleep(300); } } + +static void hdmi_hpd_handler(void) +{ + int hpd = 0; + + /* Pass HPD through from DB OPT1 HDMI connector to AP's DP1. */ + ioex_get_level(IOEX_HDMI_CONN_HPD_3V3_DB, &hpd); + gpio_set_level(GPIO_DP1_HPD, hpd); + ccprints("HDMI HPD %d", hpd); +} +DECLARE_DEFERRED(hdmi_hpd_handler); + +void hdmi_hpd_interrupt(enum ioex_signal signal) +{ + /* Debounce for 2 msec. */ + hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC)); +} diff --git a/baseboard/zork/baseboard.h b/baseboard/zork/baseboard.h index 269e012672..b186ee92bc 100644 --- a/baseboard/zork/baseboard.h +++ b/baseboard/zork/baseboard.h @@ -320,6 +320,7 @@ void board_reset_pd_mcu(void); void tcpc_alert_event(enum gpio_signal signal); void bc12_interrupt(enum gpio_signal signal); void ppc_interrupt(enum gpio_signal signal); +void hdmi_hpd_interrupt(enum ioex_signal signal); int board_is_convertible(void); void board_update_sensor_config_from_sku(void); |