diff options
author | Jett Rink <jettrink@chromium.org> | 2018-08-30 16:13:26 -0600 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-05 16:11:04 -0700 |
commit | daed130e62e7332037e46c70277816e0630ad04a (patch) | |
tree | c43f204a27f41a41a46c41905957f104123934c0 /driver/usb_mux_pi3usb30532.c | |
parent | 4173a851603b2e00b241150092292b5a29ba3be2 (diff) | |
download | chrome-ec-daed130e62e7332037e46c70277816e0630ad04a.tar.gz |
ss-mux: update semantics for TCPC/MUX only used as MUX
This converts the compile time option of
CONFIG_USB_PD_TCPM_TCPCI_MUX_ONLY into a runtime option to better
support draggon egg designs and reduce CONFIG complexity in general.
Introduce new mux_read/write to read from tcpc_config_t or mux driver
depending on new flag setting.
Audited all mux drivers for any use of tcpc_read/write and updated to
mux_read/write.
BRANCH=none
BUG=b:110937880
TEST=On Bip with CL stack:
Verified by connecting DP monitor at boot;
Verified plug / unplug of DP cable works;
Change-Id: I968893b886ff0ccc4074beae5ec42973814ae77c
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1200062
Commit-Ready: Gaggery Tsai <gaggery.tsai@intel.corp-partner.google.com>
Reviewed-by: Scott Collyer <scollyer@chromium.org>
Diffstat (limited to 'driver/usb_mux_pi3usb30532.c')
-rw-r--r-- | driver/usb_mux_pi3usb30532.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/driver/usb_mux_pi3usb30532.c b/driver/usb_mux_pi3usb30532.c index 57f81ff3e9..54d6f49fe7 100644 --- a/driver/usb_mux_pi3usb30532.c +++ b/driver/usb_mux_pi3usb30532.c @@ -11,7 +11,7 @@ #include "usb_mux.h" #include "util.h" -static int pi3usb30532_read(int i2c_addr, uint8_t reg, uint8_t *val) +static int pi3usb30532_read(int port, uint8_t reg, uint8_t *val) { int read, res; @@ -20,7 +20,7 @@ static int pi3usb30532_read(int i2c_addr, uint8_t reg, uint8_t *val) * Second byte read will be vendor ID. * Third byte read will be selection control. */ - res = i2c_read16(I2C_PORT_USB_MUX, i2c_addr, 0, &read); + res = i2c_read16(I2C_PORT_USB_MUX, MUX_ADDR(port), 0, &read); if (res) return res; @@ -32,32 +32,32 @@ static int pi3usb30532_read(int i2c_addr, uint8_t reg, uint8_t *val) return EC_SUCCESS; } -static int pi3usb30532_write(int i2c_addr, uint8_t reg, uint8_t val) +static int pi3usb30532_write(int port, uint8_t reg, uint8_t val) { if (reg != PI3USB30532_REG_CONTROL) return EC_ERROR_UNKNOWN; - return i2c_write8(I2C_PORT_USB_MUX, i2c_addr, 0, val); + return i2c_write8(I2C_PORT_USB_MUX, MUX_ADDR(port), 0, val); } -static int pi3usb30532_reset(int i2c_addr) +static int pi3usb30532_reset(int port) { return pi3usb30532_write( - i2c_addr, + port, PI3USB30532_REG_CONTROL, (PI3USB30532_MODE_POWERDOWN & PI3USB30532_CTRL_MASK) | PI3USB30532_CTRL_RSVD); } -static int pi3usb30532_init(int i2c_addr) +static int pi3usb30532_init(int port) { uint8_t val; int res; - res = pi3usb30532_reset(i2c_addr); + res = pi3usb30532_reset(port); if (res) return res; - res = pi3usb30532_read(i2c_addr, PI3USB30532_REG_VENDOR, &val); + res = pi3usb30532_read(port, PI3USB30532_REG_VENDOR, &val); if (res) return res; if (val != PI3USB30532_VENDOR_ID) @@ -67,7 +67,7 @@ static int pi3usb30532_init(int i2c_addr) } /* Writes control register to set switch mode */ -static int pi3usb30532_set_mux(int i2c_addr, mux_state_t mux_state) +static int pi3usb30532_set_mux(int port, mux_state_t mux_state) { uint8_t reg = 0; @@ -78,18 +78,18 @@ static int pi3usb30532_set_mux(int i2c_addr, mux_state_t mux_state) if (mux_state & MUX_POLARITY_INVERTED) reg |= PI3USB30532_BIT_SWAP; - return pi3usb30532_write(i2c_addr, PI3USB30532_REG_CONTROL, + return pi3usb30532_write(port, PI3USB30532_REG_CONTROL, reg | PI3USB30532_CTRL_RSVD); } /* Reads control register and updates mux_state accordingly */ -static int pi3usb30532_get_mux(int i2c_addr, mux_state_t *mux_state) +static int pi3usb30532_get_mux(int port, mux_state_t *mux_state) { uint8_t reg = 0; uint8_t res; *mux_state = 0; - res = pi3usb30532_read(i2c_addr, PI3USB30532_REG_CONTROL, ®); + res = pi3usb30532_read(port, PI3USB30532_REG_CONTROL, ®); if (res) return res; |