summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongBeum.Ha <ybha@samsung.corp-partner.google.com>2021-01-27 10:05:28 +0900
committerCommit Bot <commit-bot@chromium.org>2021-02-02 22:21:54 +0000
commit869c6c528b670e90f845035553e4eefedde88672 (patch)
tree6d801195afe54ffcbbd7412e655758ca5bf37acb
parent113e8ceff47b1abd93dd5895e57b60c521dda5fb (diff)
downloadchrome-ec-869c6c528b670e90f845035553e4eefedde88672.tar.gz
sasuke : tune usb_eq and usb_gain on port 1
tune usb_eq and usb_gain on port 1 BUG=b:176862264 BRANCH=None TEST=make -j BOARD=sasuke update ec and check usb eq register Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com> Change-Id: Ief9bc8d545e94d2e4726ed61d12739e7e872aabc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2649895 Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--board/sasuke/board.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/board/sasuke/board.c b/board/sasuke/board.c
index 8e1f9fdb14..962f4a6bab 100644
--- a/board/sasuke/board.c
+++ b/board/sasuke/board.c
@@ -468,6 +468,8 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
};
+static int board_nb7v904m_mux_set(const struct usb_mux *me,
+ mux_state_t mux_state);
const struct usb_mux usbc0_retimer = {
.usb_port = 0,
.i2c_port = I2C_PORT_USB_C0,
@@ -479,7 +481,9 @@ const struct usb_mux usbc1_retimer = {
.i2c_port = I2C_PORT_SUB_USB_C1,
.i2c_addr_flags = NB7V904M_I2C_ADDR0,
.driver = &nb7v904m_usb_redriver_drv,
+ .board_set = &board_nb7v904m_mux_set,
};
+
const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
{
.usb_port = 0,
@@ -497,6 +501,71 @@ const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
}
};
+/* USB Mux */
+static int board_nb7v904m_mux_set(const struct usb_mux *me,
+ mux_state_t mux_state)
+{
+ int rv = EC_SUCCESS;
+ int flipped = !!(mux_state & USB_PD_MUX_POLARITY_INVERTED);
+
+ if (mux_state & USB_PD_MUX_USB_ENABLED) {
+ /* USB with DP */
+ if (mux_state & USB_PD_MUX_DP_ENABLED) {
+ if (flipped) {
+ rv |= nb7v904m_tune_usb_set_eq(me,
+ NB7V904M_CH_A_EQ_10_DB,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_D_EQ_4_DB);
+ rv |= nb7v904m_tune_usb_flat_gain(me,
+ NB7V904M_CH_ALL_SKIP_GAIN,
+ NB7V904M_CH_B_GAIN_3P5_DB,
+ NB7V904M_CH_C_GAIN_0_DB,
+ NB7V904M_CH_ALL_SKIP_GAIN);
+ }
+ else {
+ rv |= nb7v904m_tune_usb_set_eq(me,
+ NB7V904M_CH_A_EQ_4_DB,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_D_EQ_10_DB);
+ rv |= nb7v904m_tune_usb_flat_gain(me,
+ NB7V904M_CH_ALL_SKIP_GAIN,
+ NB7V904M_CH_B_GAIN_0_DB,
+ NB7V904M_CH_C_GAIN_3P5_DB,
+ NB7V904M_CH_ALL_SKIP_GAIN);
+ }
+ } else {
+ /* USB only */
+ rv |= nb7v904m_tune_usb_set_eq(me,
+ NB7V904M_CH_A_EQ_10_DB,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_D_EQ_10_DB);
+ rv |= nb7v904m_tune_usb_flat_gain(me,
+ NB7V904M_CH_ALL_SKIP_GAIN,
+ NB7V904M_CH_B_GAIN_3P5_DB,
+ NB7V904M_CH_C_GAIN_3P5_DB,
+ NB7V904M_CH_ALL_SKIP_GAIN);
+ }
+
+ } else if (mux_state & USB_PD_MUX_DP_ENABLED) {
+ /* 4 lanes DP */
+ rv |= nb7v904m_tune_usb_set_eq(me,
+ NB7V904M_CH_A_EQ_4_DB,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_ALL_SKIP_EQ,
+ NB7V904M_CH_D_EQ_4_DB);
+ rv |= nb7v904m_tune_usb_flat_gain(me,
+ NB7V904M_CH_ALL_SKIP_GAIN,
+ NB7V904M_CH_B_GAIN_0_DB,
+ NB7V904M_CH_C_GAIN_0_DB,
+ NB7V904M_CH_ALL_SKIP_GAIN);
+ }
+
+ return rv;
+}
+
uint16_t tcpc_get_alert_status(void)
{
uint16_t status = 0;