From bed36a791d22cfb3e139d4fe4c145eb0b11eebdb Mon Sep 17 00:00:00 2001 From: Edward Hill Date: Mon, 11 May 2020 20:57:36 -0600 Subject: Zork: Use FW_CONFIG for IOEX_HDMI_CONN_HPD_3V3_DB. Use FW_CONFIG to only enable IOEX_HDMI_CONN_HPD_3V3_DB interrupt when appropriate. BUG=b:156046102 BRANCH=none TEST=none Signed-off-by: Edward Hill Change-Id: Ib12943e6ebbbd9af9c46ac548921aea5eb96f504 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2195187 Reviewed-by: David Huang Reviewed-by: Denis Brockus Commit-Queue: Denis Brockus --- baseboard/zork/variant_trembyle.c | 3 --- board/berknip/board.c | 3 +++ board/berknip/board.h | 9 +++++++++ board/ezkinil/board.c | 3 +++ board/ezkinil/board.h | 9 +++++++++ board/morphius/board.c | 3 +++ board/morphius/board.h | 9 +++++++++ board/trembyle/board.c | 3 +++ board/trembyle/board.h | 9 +++++++++ 9 files changed, 48 insertions(+), 3 deletions(-) diff --git a/baseboard/zork/variant_trembyle.c b/baseboard/zork/variant_trembyle.c index 6f5ba217ba..ebb2ff6e76 100644 --- a/baseboard/zork/variant_trembyle.c +++ b/baseboard/zork/variant_trembyle.c @@ -134,9 +134,6 @@ 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); diff --git a/board/berknip/board.c b/board/berknip/board.c index d61369f645..e22b61dcef 100644 --- a/board/berknip/board.c +++ b/board/berknip/board.c @@ -311,6 +311,9 @@ void setup_fw_config(void) if (ec_config_has_mst_hub_rtd2141b()) ioex_enable_interrupt(IOEX_MST_HPD_OUT); + + if (ec_config_has_hdmi_conn_hpd()) + ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB); } DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2); diff --git a/board/berknip/board.h b/board/berknip/board.h index 8cd07fee84..ae1321dda6 100644 --- a/board/berknip/board.h +++ b/board/berknip/board.h @@ -181,6 +181,15 @@ static inline bool ec_config_has_mst_hub_rtd2141b(void) HAS_MST_HUB_RTD2141B); } +#define HAS_HDMI_CONN_HPD \ + (BIT(BERKNIP_DB_T_OPT1_USBAC_HMDI)) + +static inline bool ec_config_has_hdmi_conn_hpd(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_HDMI_CONN_HPD); +} + #define PORT_TO_HPD(port) ((port == 0) \ ? GPIO_USB_C0_HPD \ : (ec_config_has_usbc1_retimer_ps8802()) \ diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c index 77490eaa44..b62e512df4 100644 --- a/board/ezkinil/board.c +++ b/board/ezkinil/board.c @@ -320,6 +320,9 @@ void setup_fw_config(void) gpio_enable_interrupt(GPIO_6AXIS_INT_L); setup_mux(); + + if (ec_config_has_hdmi_conn_hpd()) + ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB); } DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2); diff --git a/board/ezkinil/board.h b/board/ezkinil/board.h index 0f68f35b38..343acb264b 100644 --- a/board/ezkinil/board.h +++ b/board/ezkinil/board.h @@ -170,6 +170,15 @@ static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void) HAS_HDMI_RETIMER_PI3HDX1204); } +#define HAS_HDMI_CONN_HPD \ + (BIT(EZKINIL_DB_T_OPT1_USBC_HDMI)) + +static inline bool ec_config_has_hdmi_conn_hpd(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_HDMI_CONN_HPD); +} + /* TODO: Fill in with GPIO values */ #define PORT_TO_HPD(port) ((port == 0) \ ? GPIO_USB_C0_HPD \ diff --git a/board/morphius/board.c b/board/morphius/board.c index b80971994a..627760160f 100644 --- a/board/morphius/board.c +++ b/board/morphius/board.c @@ -296,6 +296,9 @@ void setup_fw_config(void) if (ec_config_has_mst_hub_rtd2141b()) ioex_enable_interrupt(IOEX_MST_HPD_OUT); + + if (ec_config_has_hdmi_conn_hpd()) + ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB); } DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2); diff --git a/board/morphius/board.h b/board/morphius/board.h index 41aca10514..dbba5510f8 100644 --- a/board/morphius/board.h +++ b/board/morphius/board.h @@ -182,6 +182,15 @@ static inline bool ec_config_has_mst_hub_rtd2141b(void) HAS_MST_HUB_RTD2141B); } +#define HAS_HDMI_CONN_HPD \ + (BIT(MORPHIUS_DB_T_OPT1_USBC_HDMI)) + +static inline bool ec_config_has_hdmi_conn_hpd(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_HDMI_CONN_HPD); +} + #define PORT_TO_HPD(port) ((port == 0) \ ? GPIO_USB_C0_HPD \ : (ec_config_has_usbc1_retimer_ps8802()) \ diff --git a/board/trembyle/board.c b/board/trembyle/board.c index 8fa429f83a..8ae5500d32 100644 --- a/board/trembyle/board.c +++ b/board/trembyle/board.c @@ -311,6 +311,9 @@ void setup_fw_config(void) if (ec_config_has_mst_hub_rtd2141b()) ioex_enable_interrupt(IOEX_MST_HPD_OUT); + + if (ec_config_has_hdmi_conn_hpd()) + ioex_enable_interrupt(IOEX_HDMI_CONN_HPD_3V3_DB); } DECLARE_HOOK(HOOK_INIT, setup_fw_config, HOOK_PRIO_INIT_I2C + 2); diff --git a/board/trembyle/board.h b/board/trembyle/board.h index b6facff8be..228b2e0330 100644 --- a/board/trembyle/board.h +++ b/board/trembyle/board.h @@ -181,6 +181,15 @@ static inline bool ec_config_has_mst_hub_rtd2141b(void) HAS_MST_HUB_RTD2141B); } +#define HAS_HDMI_CONN_HPD \ + (BIT(TREMBYLE_DB_T_OPT1_USBAC_HMDI)) + +static inline bool ec_config_has_hdmi_conn_hpd(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_HDMI_CONN_HPD); +} + #define PORT_TO_HPD(port) ((port == 0) \ ? GPIO_USB_C0_HPD \ : (ec_config_has_usbc1_retimer_ps8802()) \ -- cgit v1.2.1