summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacky Wang <jacky5_wang@pegatron.corp-partner.google.com>2021-03-02 11:56:52 +0800
committerCommit Bot <commit-bot@chromium.org>2021-03-04 03:53:32 +0000
commit2cbb8138fc7cecf24a12add9acb9a6f330589e59 (patch)
tree513cf1bbd22468e8a1c48a17fca48eb419e0bc9a
parente0bfb89ba8ad0c36dfbd23fb1d3ff9e6b2a8de39 (diff)
downloadchrome-ec-2cbb8138fc7cecf24a12add9acb9a6f330589e59.tar.gz
galtic: Fine tune tusb544 EQ setting
Modify strength value setting of tusb544. BUG=b:179224587 BRANCH=firmware-dedede-13606.B TEST=make BOARD=galtic 1. Verified pass by EE. 2. Use "ectool i2cread" to check setting value. Signed-off-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Change-Id: I06849c9d94584e484a58cc5e614ce7d4fb60fce6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2726784 Reviewed-by: Michael5 Chen <michael5_chen1@pegatron.corp-partner.google.com> Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--board/galtic/board.c103
1 files changed, 103 insertions, 0 deletions
diff --git a/board/galtic/board.c b/board/galtic/board.c
index ce37f943bc..01a9462230 100644
--- a/board/galtic/board.c
+++ b/board/galtic/board.c
@@ -212,11 +212,114 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
};
/* USB Retimer */
+enum tusb544_conf {
+ USB_DP = 0,
+ USB_DP_INV,
+ USB,
+ USB_INV,
+ DP,
+ DP_INV
+};
+
+static int board_tusb544_set(const struct usb_mux *me,
+ mux_state_t mux_state)
+{
+ int rv = EC_SUCCESS;
+ enum tusb544_conf usb_mode = 0;
+ /* USB */
+ if (mux_state & USB_PD_MUX_USB_ENABLED) {
+ /* USB with DP */
+ if (mux_state & USB_PD_MUX_DP_ENABLED) {
+ usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
+ ? USB_DP_INV
+ : USB_DP;
+ }
+ /* USB without DP */
+ else {
+ usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
+ ? USB_INV
+ : USB;
+ }
+ }
+ /* DP without USB */
+ else if (mux_state & USB_PD_MUX_DP_ENABLED) {
+ usb_mode = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
+ ? DP_INV
+ : DP;
+ }
+ /* Nothing enabled */
+ else
+ return EC_SUCCESS;
+ /* Write the retimer config byte */
+ if (usb_mode == USB_INV) {
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_GENERAL4, 0x15);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_1, 0x33);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_2, 0x33);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_1, 0x22);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_2, 0x22);
+ } else if (usb_mode == USB) {
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_GENERAL4, 0x11);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_1, 0x33);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_2, 0x33);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_1, 0x22);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_2, 0x22);
+ } else if (usb_mode == USB_DP_INV) {
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_GENERAL4, 0x1F);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_1, 0x33);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_2, 0x99);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_1, 0x22);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_2, 0x22);
+ } else if (usb_mode == USB_DP) {
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_GENERAL4, 0x1B);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_1, 0x99);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_2, 0x33);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_1, 0x22);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_USB3_1_2, 0x22);
+ } else if (usb_mode == DP_INV) {
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_GENERAL4, 0x1E);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_1, 0x99);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_2, 0x99);
+ } else if (usb_mode == DP) {
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_GENERAL4, 0x1A);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_1, 0x99);
+ rv = i2c_write8(me->i2c_port, me->i2c_addr_flags,
+ TUSB544_REG_DISPLAYPORT_2, 0x99);
+ }
+
+ return rv;
+}
+
const struct usb_mux usbc1_retimer = {
.usb_port = 1,
.i2c_port = I2C_PORT_SUB_USB_C1,
.i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0,
.driver = &tusb544_drv,
+ .board_set = &board_tusb544_set,
};
/* USB Muxes */