summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongBeum.Ha <ybha@samsung.corp-partner.google.com>2021-02-10 13:44:00 +0900
committerCommit Bot <commit-bot@chromium.org>2021-02-19 03:07:11 +0000
commit60a29cbb1acef64d85eafb77dd35fd43363870b8 (patch)
treea57b0928de64558f236204b743b3801406a51f76
parent468aa199ee65d2cd63610b08a41ce317bf297bec (diff)
downloadchrome-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.c90
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;