summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-01-30 11:27:09 -0700
committerCommit Bot <commit-bot@chromium.org>2020-02-14 20:23:06 +0000
commitfd5e9c3980c81098bd6dd84c7d927c779187f8a2 (patch)
tree4522d5228c98921ecd8919416635dac5b5564550 /baseboard
parentcf32f9f86ca2add5a457f53670c42123b429bffa (diff)
downloadchrome-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.c20
-rw-r--r--baseboard/zork/baseboard.h1
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);