summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElsie Shih <elsie_shih@wistron.corp-partner.google.com>2021-12-13 13:56:01 +0800
committerCommit Bot <commit-bot@chromium.org>2021-12-16 23:44:44 +0000
commitea249368f3cedc3a25486472d6cd58251d77fcdf (patch)
tree690e32479f9cc7f205914731888727cb8d47422e
parentcb4e857ccc8f17b3f02e1df845f86408395df112 (diff)
downloadchrome-ec-ea249368f3cedc3a25486472d6cd58251d77fcdf.tar.gz
primus: add FW_CONFIG support for TBT and USB4 config
Also refer to https://chrome-internal.googlesource.com/chromeos/project /brya/primus/+/refs/heads/main/config.star#36 for the bit assignments. BUG=b:209530093 BRANCH=none TEST=make -j BOARD=primus Signed-off-by: Elsie Shih <elsie_shih@wistron.corp-partner.google.com> Change-Id: I53ac473880767efbf712a23b1b9c0f39786391b9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3330382 Reviewed-by: Scott Chao <scott_chao@wistron.corp-partner.google.com> Tested-by: Scott Chao <scott_chao@wistron.corp-partner.google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: Edward Doan <edoan@chromium.org>
-rw-r--r--board/primus/fw_config.c5
-rw-r--r--board/primus/fw_config.h18
-rw-r--r--board/primus/usbc_config.c8
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;
+}