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/tcpm/anx7688.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/tcpm/anx7688.c')
-rw-r--r-- | driver/tcpm/anx7688.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/driver/tcpm/anx7688.c b/driver/tcpm/anx7688.c index 6b73108739..6cbfba9dcf 100644 --- a/driver/tcpm/anx7688.c +++ b/driver/tcpm/anx7688.c @@ -138,13 +138,12 @@ static void anx7688_tcpc_alert(int port) anx7688_update_hpd_enable(port); } -static int anx7688_mux_set(int i2c_addr, mux_state_t mux_state) +static int anx7688_mux_set(int port, mux_state_t mux_state) { int reg = 0; int rv, polarity; - int port = i2c_addr; /* use port index in port_addr field */ - rv = tcpc_read(port, TCPC_REG_CONFIG_STD_OUTPUT, ®); + rv = mux_read(port, TCPC_REG_CONFIG_STD_OUTPUT, ®); if (rv != EC_SUCCESS) return rv; @@ -155,14 +154,14 @@ static int anx7688_mux_set(int i2c_addr, mux_state_t mux_state) reg |= TCPC_REG_CONFIG_STD_OUTPUT_MUX_DP; /* ANX7688 needs to set bit0 */ - rv = tcpc_read(port, TCPC_REG_TCPC_CTRL, &polarity); + rv = mux_read(port, TCPC_REG_TCPC_CTRL, &polarity); if (rv != EC_SUCCESS) return rv; /* copy the polarity from TCPC_CTRL[0], take care clear then set */ reg &= ~TCPC_REG_TCPC_CTRL_POLARITY(1); reg |= TCPC_REG_TCPC_CTRL_POLARITY(polarity); - return tcpc_write(port, TCPC_REG_CONFIG_STD_OUTPUT, reg); + return mux_write(port, TCPC_REG_CONFIG_STD_OUTPUT, reg); } #ifdef CONFIG_USB_PD_VBUS_DETECT_TCPC |