diff options
author | Tang Zhentian1 <ztang@analogixsemi.com> | 2016-09-09 10:49:22 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-21 19:37:19 -0700 |
commit | 0fbbafc151fd2d08c7aa8400a77c103bd019c245 (patch) | |
tree | ca32cc99165a4779d34553197f192f0b4a1c91b4 | |
parent | 0174d4f85bc83d9081c39de1d5399cab45c61a72 (diff) | |
download | chrome-ec-0fbbafc151fd2d08c7aa8400a77c103bd019c245.tar.gz |
tcpm: anx74xx: fix wrong clear CABLE_DET bit in 0x50:43 register.
BUG=None
TEST=Verify cable detect is correct.
BRANCH=None
Change-Id: I6eb7c6cd979120835f89bbb68116ddbc03813f3b
Signed-off-by: Tang Zhentian1 <ztang@analogixsemi.com>
Reviewed-on: https://chromium-review.googlesource.com/382868
Commit-Ready: Kevin K Wong <kevin.k.wong@intel.com>
Tested-by: Kevin K Wong <kevin.k.wong@intel.com>
Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r-- | driver/tcpm/anx74xx.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/driver/tcpm/anx74xx.c b/driver/tcpm/anx74xx.c index 8ce164d817..3da89c108c 100644 --- a/driver/tcpm/anx74xx.c +++ b/driver/tcpm/anx74xx.c @@ -144,21 +144,25 @@ static int anx74xx_tcpm_mux_init(int i2c_addr) static int anx74xx_tcpm_mux_exit(int port) { - int rv = EC_SUCCESS; - - rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_2, - ANX74XX_REG_MODE_TRANS); - rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_1, - 0x0); - rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_5, - 0x04); - rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_2, - 0x0); + int rv = EC_SUCCESS; + int reg = 0x0; + + rv = tcpc_read(port, ANX74XX_REG_ANALOG_CTRL_2, ®); if (rv) return EC_ERROR_UNKNOWN; + + rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_2, reg | ANX74XX_REG_MODE_TRANS); + rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_1, 0x0); + rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_5, 0x04); + rv |= tcpc_write(port, ANX74XX_REG_ANALOG_CTRL_2, reg & 0x09); + if (rv) + return EC_ERROR_UNKNOWN; + return rv; + } + static int anx74xx_set_mux(int port, int polarity) { int reg, rv = EC_SUCCESS; |