diff options
Diffstat (limited to 'board/anahera/usbc_config.c')
-rw-r--r-- | board/anahera/usbc_config.c | 112 |
1 files changed, 61 insertions, 51 deletions
diff --git a/board/anahera/usbc_config.c b/board/anahera/usbc_config.c index 52b6b498f0..b0fd5551d9 100644 --- a/board/anahera/usbc_config.c +++ b/board/anahera/usbc_config.c @@ -1,4 +1,4 @@ -/* Copyright 2021 The Chromium OS Authors. All rights reserved. +/* Copyright 2021 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -32,8 +32,8 @@ #include "usb_pd.h" #include "usb_pd_tcpm.h" -#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args) -#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args) +#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ##args) +#define CPRINTS(format, args...) cprints(CC_USBPD, format, ##args) /* USBC TCPC configuration */ const struct tcpc_config_t tcpc_config[] = { @@ -79,33 +79,43 @@ BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT); unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips); /* USBC mux configuration - Alder Lake includes internal mux */ -static const struct usb_mux usbc0_tcss_usb_mux = { - .usb_port = USBC_PORT_C0, - .driver = &virtual_usb_mux_driver, - .hpd_update = &virtual_hpd_update, +static const struct usb_mux_chain usbc0_tcss_usb_mux = { + .mux = + &(const struct usb_mux){ + .usb_port = USBC_PORT_C0, + .driver = &virtual_usb_mux_driver, + .hpd_update = &virtual_hpd_update, + }, }; -static const struct usb_mux usbc1_tcss_usb_mux = { - .usb_port = USBC_PORT_C1, - .driver = &virtual_usb_mux_driver, - .hpd_update = &virtual_hpd_update, +static const struct usb_mux_chain usbc1_tcss_usb_mux = { + .mux = + &(const struct usb_mux){ + .usb_port = USBC_PORT_C1, + .driver = &virtual_usb_mux_driver, + .hpd_update = &virtual_hpd_update, + }, }; -const struct usb_mux usb_muxes[] = { +const struct usb_mux_chain usb_muxes[] = { [USBC_PORT_C0] = { - .usb_port = USBC_PORT_C0, - .driver = &bb_usb_retimer, - .hpd_update = bb_retimer_hpd_update, - .i2c_port = I2C_PORT_USB_C0_MUX, - .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR, - .next_mux = &usbc0_tcss_usb_mux, + .mux = &(const struct usb_mux) { + .usb_port = USBC_PORT_C0, + .driver = &bb_usb_retimer, + .hpd_update = bb_retimer_hpd_update, + .i2c_port = I2C_PORT_USB_C0_MUX, + .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR, + }, + .next = &usbc0_tcss_usb_mux, }, [USBC_PORT_C1] = { - .usb_port = USBC_PORT_C1, - .driver = &bb_usb_retimer, - .hpd_update = bb_retimer_hpd_update, - .i2c_port = I2C_PORT_USB_C1_MUX, - .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR, - .next_mux = &usbc1_tcss_usb_mux, + .mux = &(const struct usb_mux) { + .usb_port = USBC_PORT_C1, + .driver = &bb_usb_retimer, + .hpd_update = bb_retimer_hpd_update, + .i2c_port = I2C_PORT_USB_C1_MUX, + .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR, + }, + .next = &usbc1_tcss_usb_mux, }, }; BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT); @@ -321,33 +331,33 @@ const static struct ps8811_reg_val equalizer_wwan_table[] = { { /* Set channel A EQ setting */ .reg = PS8811_REG1_USB_AEQ_LEVEL, - .val = (PS8811_AEQ_I2C_LEVEL_UP_13DB << - PS8811_AEQ_I2C_LEVEL_UP_SHIFT) | - (PS8811_AEQ_PIN_LEVEL_UP_18DB << - PS8811_AEQ_PIN_LEVEL_UP_SHIFT), + .val = (PS8811_AEQ_I2C_LEVEL_UP_13DB + << PS8811_AEQ_I2C_LEVEL_UP_SHIFT) | + (PS8811_AEQ_PIN_LEVEL_UP_18DB + << PS8811_AEQ_PIN_LEVEL_UP_SHIFT), }, { /* Set ADE pin setting */ .reg = PS8811_REG1_USB_ADE_CONFIG, - .val = (PS8811_ADE_PIN_MID_LEVEL_3DB << - PS8811_ADE_PIN_MID_LEVEL_SHIFT) | - PS8811_AEQ_CONFIG_REG_ENABLE | - PS8811_AEQ_ADAPTIVE_REG_ENABLE, + .val = (PS8811_ADE_PIN_MID_LEVEL_3DB + << PS8811_ADE_PIN_MID_LEVEL_SHIFT) | + PS8811_AEQ_CONFIG_REG_ENABLE | + PS8811_AEQ_ADAPTIVE_REG_ENABLE, }, { /* Set channel B EQ setting */ .reg = PS8811_REG1_USB_BEQ_LEVEL, - .val = (PS8811_BEQ_I2C_LEVEL_UP_10P5DB << - PS8811_BEQ_I2C_LEVEL_UP_SHIFT) | - (PS8811_BEQ_PIN_LEVEL_UP_18DB << - PS8811_BEQ_PIN_LEVEL_UP_SHIFT), + .val = (PS8811_BEQ_I2C_LEVEL_UP_10P5DB + << PS8811_BEQ_I2C_LEVEL_UP_SHIFT) | + (PS8811_BEQ_PIN_LEVEL_UP_18DB + << PS8811_BEQ_PIN_LEVEL_UP_SHIFT), }, { /* Set BDE pin setting */ .reg = PS8811_REG1_USB_BDE_CONFIG, - .val = (PS8811_BDE_PIN_MID_LEVEL_3DB << - PS8811_BDE_PIN_MID_LEVEL_SHIFT) | - PS8811_BEQ_CONFIG_REG_ENABLE, + .val = (PS8811_BDE_PIN_MID_LEVEL_3DB + << PS8811_BDE_PIN_MID_LEVEL_SHIFT) | + PS8811_BEQ_CONFIG_REG_ENABLE, }, }; @@ -357,8 +367,8 @@ const static struct ps8811_reg_val equalizer_wlan_table[] = { { /* Set 50ohm adjust for B channel */ .reg = PS8811_REG1_50OHM_ADJUST_CHAN_B, - .val = (PS8811_50OHM_ADJUST_CHAN_B_MINUS_9PCT << - PS8811_50OHM_ADJUST_CHAN_B_SHIFT), + .val = (PS8811_50OHM_ADJUST_CHAN_B_MINUS_9PCT + << PS8811_50OHM_ADJUST_CHAN_B_SHIFT), }, }; @@ -371,16 +381,16 @@ static int usba_retimer_init(int port) int i; const struct usb_mux *me = &usba_ps8811[port]; - rv = ps8811_i2c_read(me, PS8811_REG_PAGE1, - PS8811_REG1_USB_BEQ_LEVEL, &val); + rv = ps8811_i2c_read(me, PS8811_REG_PAGE1, PS8811_REG1_USB_BEQ_LEVEL, + &val); switch (port) { case USBA_PORT_A0: /* Set channel A output swing */ - rv = 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); + rv = 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); break; case USBA_PORT_A1: if (ec_cfg_has_lte()) { @@ -403,9 +413,9 @@ static int usba_retimer_init(int port) PS8811_REG1_USB_CHAN_B_DE_PS_MSB, PS8811_CHAN_B_DE_PS_MSB_MASK, 0x16); - for (i = 0; i < NUM_EQ_WWAN_ARRAY; i++) - rv |= ps8811_i2c_write(me, PS8811_REG_PAGE1, + rv |= ps8811_i2c_write( + me, PS8811_REG_PAGE1, equalizer_wwan_table[i].reg, equalizer_wwan_table[i].val); } else { @@ -416,9 +426,9 @@ static int usba_retimer_init(int port) PS8811_CHAN_A_SWING_MASK, 0x2 << PS8811_CHAN_A_SWING_SHIFT); - for (i = 0; i < NUM_EQ_WLAN_ARRAY; i++) - rv |= ps8811_i2c_write(me, PS8811_REG_PAGE1, + rv |= ps8811_i2c_write( + me, PS8811_REG_PAGE1, equalizer_wlan_table[i].reg, equalizer_wlan_table[i].val); } |