diff options
author | Ben Chen <ben.chen2@quanta.corp-partner.google.com> | 2020-07-02 16:47:58 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-07 05:57:11 +0000 |
commit | 94ff39b6e02e00882aeea8d2f5e1a417ffe00262 (patch) | |
tree | 0867769bf8d65768d761673d15bc2150a4e4b57c /board/voxel/board.c | |
parent | b4db0c490e66368b3a2cb5bec9e4fd17c028589a (diff) | |
download | chrome-ec-94ff39b6e02e00882aeea8d2f5e1a417ffe00262.tar.gz |
voxel: supports bb_retimer for C0/C1 port
add bb retimer for C0/C1 port
BUG=b:155062762, b:155062762
BRANCH=none
TEST=make buildall PASS
Change-Id: I1da93b58eae4c28a8f7a7192518a130f80b848d9
Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2275516
Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'board/voxel/board.c')
-rw-r--r-- | board/voxel/board.c | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/board/voxel/board.c b/board/voxel/board.c index 1270860b00..cc39780324 100644 --- a/board/voxel/board.c +++ b/board/voxel/board.c @@ -147,13 +147,20 @@ const struct i2c_port_t i2c_ports[] = { .sda = GPIO_EC_I2C2_USB_C1_SDA, }, { - .name = "usb_1_mix", - .port = I2C_PORT_USB_1_MIX, + .name = "usb_0_mix", + .port = I2C_PORT_USB_0_MIX, .kbps = 100, .scl = GPIO_EC_I2C3_USB_1_MIX_SCL, .sda = GPIO_EC_I2C3_USB_1_MIX_SDA, }, { + .name = "usb_1_mix", + .port = I2C_PORT_USB_1_MIX, + .kbps = 100, + .scl = GPIO_EC_I2C4_USB_1_MIX_SCL, + .sda = GPIO_EC_I2C4_USB_1_MIX_SDA, + }, + { .name = "power", .port = I2C_PORT_POWER, .kbps = 100, @@ -215,6 +222,27 @@ const struct pwm_t pwm_channels[] = { }; BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); +/* USBC mux configuration - Tiger Lake includes internal mux */ +struct usb_mux usbc0_usb4_db_retimer = { + .usb_port = USBC_PORT_C0, + .driver = &bb_usb_retimer, + .i2c_port = I2C_PORT_USB_0_MIX, + .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR, +}; + +/***************************************************************************** + * USB-C MUX/Retimer dynamic configuration. + */ + +static void setup_mux(void) +{ + CPRINTS("C0 supports bb-retimer"); + + /* USB-C port 0 have a retimer */ + usb_muxes[USBC_PORT_C0].next_mux = &usbc0_usb4_db_retimer; +} + + void board_reset_pd_mcu(void) { /* @@ -226,6 +254,13 @@ void board_reset_pd_mcu(void) __override void board_cbi_init(void) { /* TODO(b/159025739): Voxel: check FW_CONFIG fields for USB DB type */ + setup_mux(); + + /* Reassign USB_C0_RT_RST_ODL */ + bb_controls[USBC_PORT_C0].shared_nvm = false; + bb_controls[USBC_PORT_C0].usb_ls_en_gpio = GPIO_USB_C0_LS_EN; + bb_controls[USBC_PORT_C0].retimer_rst_gpio = GPIO_USB_C0_RT_RST_ODL; + bb_controls[USBC_PORT_C0].force_power_gpio = GPIO_USB_C0_RT_FORCE_PWR; } /******************************************************************************/ |