summaryrefslogtreecommitdiff
path: root/baseboard/intelrvp/adlrvp.c
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2021-03-29 11:35:32 -0700
committerCommit Bot <commit-bot@chromium.org>2021-04-29 20:35:48 +0000
commitde1b38abb4d61d430ff76e2c4587eed4be5582d6 (patch)
tree7c225cae7b79e77a150690362937bf504b3f952b /baseboard/intelrvp/adlrvp.c
parent0ef0f5524e81f9a96f2bb9fd8d1517e8b0f19cb6 (diff)
downloadchrome-ec-de1b38abb4d61d430ff76e2c4587eed4be5582d6.tar.gz
adlrvp: Add TBT & USB4 overridable function
Type-C ports are not symmetrical on RVP to test various combinations. ADL-P-LP5 RVP doesn't have a platform level AUX & LSx MUX on port-2 hence do not perform USB4 & TBT operations on port-2. BUG=none BRANCH=none TEST=Connected TBT3 device on Port-2 of ADLRVP_P_LP5 board, only DP+USB is selected as expected. Change-Id: I52bbd4b8518d040cad637559cad0fd3533fcd5ea Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2791780 Reviewed-by: caveh jalali <caveh@chromium.org>
Diffstat (limited to 'baseboard/intelrvp/adlrvp.c')
-rw-r--r--baseboard/intelrvp/adlrvp.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/baseboard/intelrvp/adlrvp.c b/baseboard/intelrvp/adlrvp.c
index b8f7d71661..b5fa260c9f 100644
--- a/baseboard/intelrvp/adlrvp.c
+++ b/baseboard/intelrvp/adlrvp.c
@@ -287,7 +287,7 @@ DECLARE_HOOK(HOOK_INIT, enable_h1_irq, HOOK_PRIO_LAST);
static void configure_retimer_usbmux(void)
{
- switch (board_get_version() & 0x3F) {
+ switch (ADL_RVP_BOARD_ID(board_get_version())) {
case ADLP_LP5_T4_RVP_SKU_BOARD_ID:
/* No retimer on Port-2 */
#if defined(HAS_TASK_PD_C2)
@@ -330,9 +330,16 @@ const int pwrok_signal_deassert_count = ARRAY_SIZE(pwrok_signal_assert_list);
*/
int board_get_version(void)
{
+ /* Cache the ADLRVP board ID */
+ static int adlrvp_board_id;
+
int port0, port1;
int fab_id, board_id, bom_id;
+ /* Board ID is already read */
+ if (adlrvp_board_id)
+ return adlrvp_board_id;
+
if (ioexpander_read_intelrvp_version(&port0, &port1))
return -1;
/*
@@ -347,5 +354,27 @@ int board_get_version(void)
CPRINTS("BID:0x%x, FID:0x%x, BOM:0x%x", board_id, fab_id, bom_id);
- return board_id | (fab_id << 8);
+ adlrvp_board_id = board_id | (fab_id << 8);
+ return adlrvp_board_id;
+}
+
+__override bool board_is_tbt_usb4_port(int port)
+{
+ bool tbt_usb4 = true;
+
+ switch (ADL_RVP_BOARD_ID(board_get_version())) {
+ case ADLP_LP5_T4_RVP_SKU_BOARD_ID:
+ /* No retimer on Port-2 hence no platform level AUX & LSx mux */
+#if defined(HAS_TASK_PD_C2)
+ if (port == TYPE_C_PORT_2)
+ tbt_usb4 = false;
+#endif
+ break;
+
+ /* Add additional board SKUs */
+ default:
+ break;
+ }
+
+ return tbt_usb4;
}