diff options
author | Rob Barnes <robbarnes@google.com> | 2021-06-07 15:01:25 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-15 16:12:19 +0000 |
commit | 608d1a0f73522f3135f6daced3ca7871f005f683 (patch) | |
tree | 4e01cfc3aad363cc60bf7339803d514a59279f2c | |
parent | f11c1f3b205fa593c1f9eda87dad6a45439ec93d (diff) | |
download | chrome-ec-608d1a0f73522f3135f6daced3ca7871f005f683.tar.gz |
guybrush: Apply PS8811 tuning parameters
Applying tuning parameters recommended by retimer vendor.
BUG=b:189317041
TEST=Build and boot guybrush
BRANCH=None
Signed-off-by: Rob Barnes <robbarnes@google.com>
Change-Id: I59bf25b196a0f0da8e71bd41dffb3b9cef251666
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2920147
Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r-- | board/guybrush/board.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/board/guybrush/board.c b/board/guybrush/board.c index 4ab48c1374..947f012723 100644 --- a/board/guybrush/board.c +++ b/board/guybrush/board.c @@ -9,6 +9,7 @@ #include "common.h" #include "driver/accelgyro_bmi_common.h" #include "driver/accelgyro_bmi160.h" +#include "driver/retimer/ps8811.h" #include "driver/retimer/ps8818.h" #include "extpower.h" #include "gpio.h" @@ -91,6 +92,31 @@ static void board_init(void) } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); +__override enum ec_error_list +board_a1_ps8811_retimer_init(const struct usb_mux *me) +{ + /* Set channel A output swing */ + RETURN_ERROR(ps8811_i2c_field_update( + me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_A_SWING, + PS8811_CHAN_A_SWING_MASK, 0x2 << PS8811_CHAN_A_SWING_SHIFT)); + + /* Set channel B output swing */ + RETURN_ERROR(ps8811_i2c_field_update( + me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_SWING, + PS8811_CHAN_B_SWING_MASK, 0x2 << PS8811_CHAN_B_SWING_SHIFT)); + + /* Set channel B de-emphasis to -6dB and pre-shoot to 3 dB */ + RETURN_ERROR(ps8811_i2c_field_update( + me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_DE_PS_LSB, + PS8811_CHAN_B_DE_PS_LSB_MASK, PS8811_CHAN_B_DE_6_PS_3_LSB)); + + RETURN_ERROR(ps8811_i2c_field_update( + me, PS8811_REG_PAGE1, PS8811_REG1_USB_CHAN_B_DE_PS_MSB, + PS8811_CHAN_B_DE_PS_MSB_MASK, PS8811_CHAN_B_DE_6_PS_3_MSB)); + + return EC_SUCCESS; +} + /* * PS8818 set mux board tuning. * Adds in board specific gain and DP lane count configuration |