diff options
-rw-r--r-- | board/primus/fw_config.c | 5 | ||||
-rw-r--r-- | board/primus/fw_config.h | 18 | ||||
-rw-r--r-- | board/primus/usbc_config.c | 8 |
3 files changed, 29 insertions, 2 deletions
diff --git a/board/primus/fw_config.c b/board/primus/fw_config.c index 9506e778b5..0384d05b9d 100644 --- a/board/primus/fw_config.c +++ b/board/primus/fw_config.c @@ -54,6 +54,11 @@ union primus_cbi_fw_config get_fw_config(void) return fw_config; } +enum ec_cfg_mlb_usb ec_cfg_mlb_usb(void) +{ + return fw_config.mlb_usb; +} + enum ec_cfg_usb_db_type ec_cfg_usb_db_type(void) { return fw_config.usb_db; diff --git a/board/primus/fw_config.h b/board/primus/fw_config.h index cbccbd07a9..f8792f1443 100644 --- a/board/primus/fw_config.h +++ b/board/primus/fw_config.h @@ -25,14 +25,21 @@ enum ec_cfg_keyboard_backlight_type { KEYBOARD_BACKLIGHT_ENABLED = 1 }; +enum ec_cfg_mlb_usb { + MLB_USB_TBT = 0, + MLB_USB_USB4 = 1 +}; + union primus_cbi_fw_config { struct { enum ec_cfg_usb_db_type usb_db : 4; uint32_t sd_db : 2; - uint32_t lte_db : 1; + uint32_t reserved_0 : 1; enum ec_cfg_keyboard_backlight_type kb_bl : 1; uint32_t audio : 3; - uint32_t reserved_1 : 21; + uint32_t cellular_db : 2; + enum ec_cfg_mlb_usb mlb_usb : 1; + uint32_t reserved_1 : 18; }; uint32_t raw_value; }; @@ -45,6 +52,13 @@ union primus_cbi_fw_config { union primus_cbi_fw_config get_fw_config(void); /** + * Get MLB USB type from FW_CONFIG. + * + * @return the MLB USB type. + */ +enum ec_cfg_mlb_usb ec_cfg_mlb_usb(void); + +/** * Get the USB daughter board type from FW_CONFIG. * * @return the USB daughter board type. diff --git a/board/primus/usbc_config.c b/board/primus/usbc_config.c index 2207b1b085..44f58c184e 100644 --- a/board/primus/usbc_config.c +++ b/board/primus/usbc_config.c @@ -274,3 +274,11 @@ __override bool board_is_dts_port(int port) { return port == USBC_PORT_C0; } + +__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port) +{ + if (ec_cfg_mlb_usb()) + return TBT_SS_U32_GEN1_GEN2; + + return TBT_SS_TBT_GEN3; +} |