summaryrefslogtreecommitdiff
path: root/driver/usb_mux_pi3usb30532.c
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2018-08-30 16:13:26 -0600
committerchrome-bot <chrome-bot@chromium.org>2018-09-05 16:11:04 -0700
commitdaed130e62e7332037e46c70277816e0630ad04a (patch)
treec43f204a27f41a41a46c41905957f104123934c0 /driver/usb_mux_pi3usb30532.c
parent4173a851603b2e00b241150092292b5a29ba3be2 (diff)
downloadchrome-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.c26
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, &reg);
+ res = pi3usb30532_read(port, PI3USB30532_REG_CONTROL, &reg);
if (res)
return res;