summaryrefslogtreecommitdiff
path: root/board/ezkinil
diff options
context:
space:
mode:
Diffstat (limited to 'board/ezkinil')
-rw-r--r--board/ezkinil/board.c23
-rw-r--r--board/ezkinil/board.h1
2 files changed, 23 insertions, 1 deletions
diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c
index 69bf41d215..074a7694b0 100644
--- a/board/ezkinil/board.c
+++ b/board/ezkinil/board.c
@@ -6,6 +6,7 @@
#include "adc.h"
#include "adc_chip.h"
#include "button.h"
+#include "cbi_ssfc.h"
#include "charge_state_v2.h"
#include "cros_board_info.h"
#include "driver/accelgyro_bmi_common.h"
@@ -336,9 +337,29 @@ void motion_interrupt(enum gpio_signal signal)
* USB-C MUX/Retimer dynamic configuration
*/
+int board_usbc1_retimer_inhpd = IOEX_USB_C1_HPD_IN_DB;
+
static void setup_mux(void)
{
- if (ec_config_has_usbc1_retimer_tusb544()) {
+ enum ec_ssfc_c1_mux mux = get_cbi_ssfc_c1_mux();
+
+ if (mux == SSFC_C1_MUX_NONE && ec_config_has_usbc1_retimer_tusb544())
+ mux = SSFC_C1_MUX_TUSB544;
+
+ if (mux == SSFC_C1_MUX_PS8818) {
+ ccprints("C1 PS8818 detected");
+ /*
+ * Main MUX is FP5, secondary MUX is PS8818
+ *
+ * Replace usb_muxes[USBC_PORT_C1] with the AMD FP5
+ * table entry.
+ */
+ memcpy(&usb_muxes[USBC_PORT_C1],
+ &usbc1_amd_fp5_usb_mux,
+ sizeof(struct usb_mux));
+ /* Set the PS8818 as the secondary MUX */
+ usb_muxes[USBC_PORT_C1].next_mux = &usbc1_ps8818;
+ } else if (mux == SSFC_C1_MUX_TUSB544) {
ccprints("C1 TUSB544 detected");
/*
* Main MUX is FP5, secondary MUX is TUSB544
diff --git a/board/ezkinil/board.h b/board/ezkinil/board.h
index b823ded45a..e3ec10d456 100644
--- a/board/ezkinil/board.h
+++ b/board/ezkinil/board.h
@@ -204,6 +204,7 @@ static inline bool ec_config_has_hdmi_conn_hpd(void)
: GPIO_DP2_HPD)
extern const struct usb_mux usbc1_tusb544;
+extern const struct usb_mux usbc1_ps8818;
extern const struct usb_mux usbc1_ps8743;
extern struct usb_mux usbc1_amd_fp5_usb_mux;