diff options
author | Nicolas Boichat <drinkcat@google.com> | 2017-02-16 15:39:33 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-02-17 04:09:37 -0800 |
commit | 887298ba503ec80011ec35f761cd752b0e2f0b7a (patch) | |
tree | e11592cf524874986dc2bdbb2e93d846a1536bee | |
parent | 0cc39b214a64eb77e776529cfcb80cdd0712546d (diff) | |
download | chrome-ec-887298ba503ec80011ec35f761cd752b0e2f0b7a.tar.gz |
anx74xx: Restore behaviour if CONFIG_USB_PD_TCPC_LOW_POWER is unset
Commit 18327455c1 ("ANX74xx: add TCPC low power mode for different
DRP state") introduced new code to put ANX74xx in low power mode.
However, this broke existing boards that do not enable
CONFIG_USB_PD_TCPC_LOW_POWER (and therefore do not implement cable
detection interrupt).
BUG=chrome-os-partner:59841, chrome-os-partner:61640
BUG=chrome-os-partner:62964
BRANCH=none
TEST=on poppy, connect USB-A keyboard to ANX port via A-C adapter:
keyboard works
Change-Id: I4b66511b816afee402a7e769aa6d2c323724d071
Reviewed-on: https://chromium-review.googlesource.com/443865
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | driver/tcpm/anx74xx.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/driver/tcpm/anx74xx.c b/driver/tcpm/anx74xx.c index 56728548c6..f2660a07a1 100644 --- a/driver/tcpm/anx74xx.c +++ b/driver/tcpm/anx74xx.c @@ -75,10 +75,9 @@ static void anx74xx_tcpm_set_auto_good_crc(int port, int enable) static void anx74xx_set_power_mode(int port, int mode) { - int reg; #ifdef CONFIG_USB_PD_TCPC_LOW_POWER + int reg; anx[port].prev_mode = mode; -#endif tcpc_read(port, ANX74XX_REG_ANALOG_CTRL_0, ®); @@ -97,8 +96,9 @@ static void anx74xx_set_power_mode(int port, int mode) /* Delay recommended by Analogix for CABLE_DET setup time */ msleep(2); +#endif - board_set_tcpc_power_mode(port, mode); + board_set_tcpc_power_mode(port, mode == ANX74XX_NORMAL_MODE); } void anx74xx_tcpc_set_vbus(int port, int enable) @@ -569,8 +569,8 @@ static int anx74xx_tcpm_set_cc(int port, int pull) return rv; } -#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE -#ifdef CONFIG_USB_PD_TCPC_LOW_POWER +#if defined(CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE) && \ + defined(CONFIG_USB_PD_TCPC_LOW_POWER) void anx74xx_handle_power_mode(int port, int mode) { if (mode == ANX74XX_STANDBY_MODE) { @@ -583,16 +583,13 @@ void anx74xx_handle_power_mode(int port, int mode) anx74xx_tcpm_init(port); } } -#endif /* CONFIG_USB_PD_TCPC_LOW_POWER */ static int anx74xx_tcpc_drp_toggle(int port) { -#ifdef CONFIG_USB_PD_TCPC_LOW_POWER anx74xx_handle_power_mode(port, ANX74XX_STANDBY_MODE); -#endif return EC_SUCCESS; } -#endif /* CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE */ +#endif /* CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE && CONFIG_USB_PD_TCPC_LOW_POWER */ static int anx74xx_tcpm_set_polarity(int port, int polarity) { @@ -950,7 +947,8 @@ const struct tcpm_drv anx74xx_tcpm_drv = { .tcpc_discharge_vbus = &anx74xx_tcpc_discharge_vbus, #endif .get_chip_info = &tcpci_get_chip_info, -#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE +#if defined(CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE) && \ + defined(CONFIG_USB_PD_TCPC_LOW_POWER) .drp_toggle = &anx74xx_tcpc_drp_toggle, #endif }; |