summaryrefslogtreecommitdiff
path: root/board/ezkinil
diff options
context:
space:
mode:
authorDavid Huang <david.huang@quanta.corp-partner.google.com>2020-03-24 15:00:06 +0800
committerCommit Bot <commit-bot@chromium.org>2020-03-26 05:03:26 +0000
commitf21d9520fb51508d24c2128c1bc4065b30fc7a0f (patch)
treeca1bea154934c8fe0483ef403d0ff5597dc823fe /board/ezkinil
parent383b6c51874e61d9a3dd637f477a67af33e51340 (diff)
downloadchrome-ec-f21d9520fb51508d24c2128c1bc4065b30fc7a0f.tar.gz
Ezkinil: Add redriver TUSB544 and PS8743 for Ezkinil
Setup usb_muxes for TUSB544 and PS8743. BUG=None BRANCH=ezkinil TEST=verify USB is working. Signed-off-by: David Huang <david.huang@quanta.corp-partner.google.com> Change-Id: I606a571960bc0ff2634dd432573683e8d5631c6e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2115904 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'board/ezkinil')
-rw-r--r--board/ezkinil/board.c33
-rw-r--r--board/ezkinil/board.h8
2 files changed, 38 insertions, 3 deletions
diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c
index b710c60700..f881272da7 100644
--- a/board/ezkinil/board.c
+++ b/board/ezkinil/board.c
@@ -9,6 +9,9 @@
#include "driver/accelgyro_bmi160.h"
#include "driver/accel_kionix.h"
#include "driver/accel_kx022.h"
+#include "driver/retimer/tusb544.h"
+#include "driver/usb_mux/amd_fp5.h"
+#include "driver/usb_mux/ps874x.h"
#include "extpower.h"
#include "fan.h"
#include "fan_chip.h"
@@ -169,13 +172,37 @@ BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
* USB-C MUX/Retimer dynamic configuration
*/
-/* TODO: Fill in with real mux table updates */
static void setup_mux(void)
{
- if (ec_config_has_usbc1_retimer_tusb544())
+ if (ec_config_has_usbc1_retimer_tusb544()) {
ccprints("C1 TUSB544 detected");
- else if (ec_config_has_usbc1_retimer_ps8743())
+ /*
+ * Main MUX is FP5, secondary MUX is TUSB544
+ *
+ * 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 TUSB544 as the secondary MUX */
+ usb_muxes[USBC_PORT_C1].next_mux = &usbc1_tusb544;
+ } else if (ec_config_has_usbc1_retimer_ps8743()) {
ccprints("C1 PS8743 detected");
+ /*
+ * Main MUX is PS8743, secondary MUX is modified FP5
+ *
+ * Replace usb_muxes[USBC_PORT_C1] with the PS8743
+ * table entry.
+ */
+ memcpy(&usb_muxes[USBC_PORT_C1],
+ &usbc1_ps8743,
+ sizeof(struct usb_mux));
+ /* Set the AMD FP5 as the secondary MUX */
+ usb_muxes[USBC_PORT_C1].next_mux = &usbc1_amd_fp5_usb_mux;
+ /* Don't have the AMD FP5 flip */
+ usbc1_amd_fp5_usb_mux.flags = USB_MUX_FLAG_SET_WITHOUT_FLIP;
+ }
}
DECLARE_HOOK(HOOK_INIT, setup_mux, HOOK_PRIO_DEFAULT);
diff --git a/board/ezkinil/board.h b/board/ezkinil/board.h
index 00acf228dc..baf97a4d30 100644
--- a/board/ezkinil/board.h
+++ b/board/ezkinil/board.h
@@ -36,6 +36,10 @@
#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
+/* Type C mux/retimer */
+#define CONFIG_USB_MUX_PS8743
+#define CONFIG_USBC_RETIMER_TUSB544
+
/* GPIO mapping from board specific name to EC common name. */
#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL
#define GPIO_AC_PRESENT GPIO_ACOK_OD
@@ -167,6 +171,10 @@ static inline bool ec_config_has_usbc1_retimer_tusb544(void)
? GPIO_DP1_HPD \
: GPIO_DP2_HPD)
+extern const struct usb_mux usbc1_tusb544;
+extern const struct usb_mux usbc1_ps8743;
+extern struct usb_mux usbc1_amd_fp5_usb_mux;
+
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */