diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-12-14 15:08:51 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-12-20 21:56:45 -0800 |
commit | d00a15a78d1fa82c81798081d960fd0bcd5eca33 (patch) | |
tree | 11aeffc6d0855d1a2f313037cc944ddd3981fd3f /driver | |
parent | 9cc53cb892ca53f600235241b3f0ddcdeea09da6 (diff) | |
download | chrome-ec-d00a15a78d1fa82c81798081d960fd0bcd5eca33.tar.gz |
tcpm: anx74xx: Remove auto-toggle support
Auto-role toggle on the anx74xx does not function correctly with
e-marked cables and cannot be used.
Also check for TCPC support for auto-toggle at runtime, to allow
auto-toggle supported TCPC to be used alongside an unsupported part.
(from CL:420405)
BUG=chrome-os-partner:60890
BRANCH=reef
TEST=Manual on reef, boot to S0:
`pd 0 state`: Toggling between SRC_DISCONNECTED / SNK_DISCONNECTED
`pd 1 state`: DRP_AUTO_TOGGLE
Also verify port 0 can become sink + source correctly in S0.
Change-Id: Iafdedf31773feef23923cefe1f4fb02fcffda120
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/420866
Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/tcpm/anx74xx.c | 18 | ||||
-rw-r--r-- | driver/tcpm/tcpm.h | 5 |
2 files changed, 5 insertions, 18 deletions
diff --git a/driver/tcpm/anx74xx.c b/driver/tcpm/anx74xx.c index 08525a0d08..0501788080 100644 --- a/driver/tcpm/anx74xx.c +++ b/driver/tcpm/anx74xx.c @@ -548,21 +548,6 @@ static int anx74xx_tcpm_set_cc(int port, int pull) return rv; } -#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE -static int anx74xx_tcpc_drp_toggle(int port) -{ - int rv; - - /* Disable CC software Control */ - rv = anx74xx_cc_software_ctrl(port, 0); - -#ifdef CONFIG_USB_PD_TCPC_LOW_POWER - anx74xx_set_power_mode(port, ANX74XX_STANDBY_MODE); -#endif - return rv; -} -#endif - static int anx74xx_tcpm_set_polarity(int port, int polarity) { int reg, mux_state, rv = EC_SUCCESS; @@ -924,9 +909,6 @@ const struct tcpm_drv anx74xx_tcpm_drv = { #ifdef CONFIG_USB_PD_DISCHARGE_TCPC .tcpc_discharge_vbus = &anx74xx_tcpc_discharge_vbus, #endif -#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE - .drp_toggle = &anx74xx_tcpc_drp_toggle, -#endif }; #ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC diff --git a/driver/tcpm/tcpm.h b/driver/tcpm/tcpm.h index 57950dc34d..1c7c6edff3 100644 --- a/driver/tcpm/tcpm.h +++ b/driver/tcpm/tcpm.h @@ -137,6 +137,11 @@ static inline void tcpc_discharge_vbus(int port, int enable) } #ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE +static inline int tcpm_auto_toggle_supported(int port) +{ + return !!tcpc_config[port].drv->drp_toggle; +} + static inline int tcpm_set_drp_toggle(int port) { return tcpc_config[port].drv->drp_toggle(port); |