diff options
author | YongBeum.Ha <ybha@samsung.corp-partner.google.com> | 2021-02-10 13:44:00 +0900 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-02-19 03:07:11 +0000 |
commit | 60a29cbb1acef64d85eafb77dd35fd43363870b8 (patch) | |
tree | a57b0928de64558f236204b743b3801406a51f76 | |
parent | 468aa199ee65d2cd63610b08a41ce317bf297bec (diff) | |
download | chrome-ec-60a29cbb1acef64d85eafb77dd35fd43363870b8.tar.gz |
sasuke : tune retimer 0/1
tune retimer to improve eDP signal
BUG=b:176862264
BRANCH=None
TEST=make -j BOARD=sasuke
Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com>
Change-Id: I57b62cc7f598d15478e837af508c59fa58c68d72
Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2684082
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | board/sasuke/board.c | 90 |
1 files changed, 87 insertions, 3 deletions
diff --git a/board/sasuke/board.c b/board/sasuke/board.c index 9d147b9822..01da8e3322 100644 --- a/board/sasuke/board.c +++ b/board/sasuke/board.c @@ -513,6 +513,7 @@ static int board_nb7v904m_mux_set_c0(const struct usb_mux *me, mux_state_t mux_state) { int rv = EC_SUCCESS; + int flipped = !!(mux_state & USB_PD_MUX_POLARITY_INVERTED); if (board_id == -1) { uint32_t val; @@ -524,19 +525,82 @@ static int board_nb7v904m_mux_set_c0(const struct usb_mux *me, } if (mux_state & USB_PD_MUX_USB_ENABLED) { - /* USB with DP */ if (mux_state & USB_PD_MUX_DP_ENABLED) { - /* will be used on future */ + /* USB with DP */ + if (flipped) { + rv |= nb7v904m_tune_usb_set_eq(me, + NB7V904M_CH_A_EQ_10_DB, + NB7V904M_CH_B_EQ_0_DB, + NB7V904M_CH_C_EQ_2_DB, + NB7V904M_CH_D_EQ_2_DB); + rv |= nb7v904m_tune_usb_flat_gain(me, + NB7V904M_CH_A_GAIN_0_DB, + NB7V904M_CH_B_GAIN_1P5_DB, + NB7V904M_CH_C_GAIN_0_DB, + NB7V904M_CH_D_GAIN_0_DB); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_C, + NB7V904M_LOSS_PROFILE_C); + } + else { + rv |= nb7v904m_tune_usb_set_eq(me, + NB7V904M_CH_A_EQ_2_DB, + NB7V904M_CH_B_EQ_2_DB, + NB7V904M_CH_C_EQ_0_DB, + NB7V904M_CH_D_EQ_10_DB); + rv |= nb7v904m_tune_usb_flat_gain(me, + NB7V904M_CH_A_GAIN_0_DB, + NB7V904M_CH_B_GAIN_0_DB, + NB7V904M_CH_C_GAIN_1P5_DB, + NB7V904M_CH_D_GAIN_0_DB); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_C, + NB7V904M_LOSS_PROFILE_C, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A); + } } else { /* USB only */ if (board_id == 2) rv |= nb7v904m_set_aux_ch_switch(me, NB7V904M_AUX_CH_FLIPPED); + + rv |= nb7v904m_tune_usb_set_eq(me, + NB7V904M_CH_A_EQ_10_DB, + NB7V904M_CH_B_EQ_0_DB, + NB7V904M_CH_C_EQ_0_DB, + NB7V904M_CH_D_EQ_10_DB); + rv |= nb7v904m_tune_usb_flat_gain(me, + NB7V904M_CH_A_GAIN_0_DB, + NB7V904M_CH_B_GAIN_1P5_DB, + NB7V904M_CH_C_GAIN_1P5_DB, + NB7V904M_CH_D_GAIN_0_DB); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A); } } else if (mux_state & USB_PD_MUX_DP_ENABLED) { /* 4 lanes DP */ - /* will be used on future */ + rv |= nb7v904m_tune_usb_set_eq(me, + NB7V904M_CH_A_EQ_2_DB, + NB7V904M_CH_B_EQ_2_DB, + NB7V904M_CH_C_EQ_2_DB, + NB7V904M_CH_D_EQ_2_DB); + rv |= nb7v904m_tune_usb_flat_gain(me, + NB7V904M_CH_A_GAIN_0_DB, + NB7V904M_CH_B_GAIN_0_DB, + NB7V904M_CH_C_GAIN_0_DB, + NB7V904M_CH_D_GAIN_0_DB); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_C, + NB7V904M_LOSS_PROFILE_C, + NB7V904M_LOSS_PROFILE_C, + NB7V904M_LOSS_PROFILE_C); } return rv; @@ -563,6 +627,11 @@ static int board_nb7v904m_mux_set(const struct usb_mux *me, NB7V904M_CH_B_GAIN_3P5_DB, NB7V904M_CH_C_GAIN_0_DB, NB7V904M_CH_ALL_SKIP_GAIN); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_D, + NB7V904M_LOSS_PROFILE_D); } else { rv |= nb7v904m_tune_usb_set_eq(me, @@ -575,6 +644,11 @@ static int board_nb7v904m_mux_set(const struct usb_mux *me, NB7V904M_CH_B_GAIN_0_DB, NB7V904M_CH_C_GAIN_3P5_DB, NB7V904M_CH_ALL_SKIP_GAIN); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_D, + NB7V904M_LOSS_PROFILE_D, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A); } } else { /* USB only */ @@ -588,6 +662,11 @@ static int board_nb7v904m_mux_set(const struct usb_mux *me, NB7V904M_CH_B_GAIN_3P5_DB, NB7V904M_CH_C_GAIN_3P5_DB, NB7V904M_CH_ALL_SKIP_GAIN); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A, + NB7V904M_LOSS_PROFILE_A); } } else if (mux_state & USB_PD_MUX_DP_ENABLED) { @@ -602,6 +681,11 @@ static int board_nb7v904m_mux_set(const struct usb_mux *me, NB7V904M_CH_B_GAIN_0_DB, NB7V904M_CH_C_GAIN_0_DB, NB7V904M_CH_ALL_SKIP_GAIN); + rv |= nb7v904m_set_loss_profile_match(me, + NB7V904M_LOSS_PROFILE_D, + NB7V904M_LOSS_PROFILE_D, + NB7V904M_LOSS_PROFILE_D, + NB7V904M_LOSS_PROFILE_D); } return rv; |