summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-05-11 20:57:36 -0600
committerCommit Bot <commit-bot@chromium.org>2020-05-12 19:04:35 +0000
commitbed36a791d22cfb3e139d4fe4c145eb0b11eebdb (patch)
treec53679b8a194f6668c625feda9f2caa9d7eacab3
parent65aa151d0544051118259fc086093670eef26518 (diff)
downloadchrome-ec-bed36a791d22cfb3e139d4fe4c145eb0b11eebdb.tar.gz
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 <ecgh@chromium.org> Change-Id: Ib12943e6ebbbd9af9c46ac548921aea5eb96f504 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2195187 Reviewed-by: David Huang <david.huang@quanta.corp-partner.google.com> Reviewed-by: Denis Brockus <dbrockus@chromium.org> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
-rw-r--r--baseboard/zork/variant_trembyle.c3
-rw-r--r--board/berknip/board.c3
-rw-r--r--board/berknip/board.h9
-rw-r--r--board/ezkinil/board.c3
-rw-r--r--board/ezkinil/board.h9
-rw-r--r--board/morphius/board.c3
-rw-r--r--board/morphius/board.h9
-rw-r--r--board/trembyle/board.c3
-rw-r--r--board/trembyle/board.h9
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()) \