diff options
author | Denis Brockus <dbrockus@chromium.org> | 2019-12-09 08:41:36 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-12-10 19:18:12 +0000 |
commit | 4ee83b2cdf8b222228fde4baf08ab218a06148db (patch) | |
tree | be8afc3a78aeb492b877d8eafe46469a089785ad | |
parent | 160f5d39b0ca31124b1e0d0218442fa65dbd77ea (diff) | |
download | chrome-ec-4ee83b2cdf8b222228fde4baf08ab218a06148db.tar.gz |
nct38xx: change rmw operations to use i2c update
BUG=none
BRANCH=none
TEST=make buildall -j
Change-Id: I93add5d4e3f633ad9ce799576407835b6d1e41e8
Signed-off-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1958410
Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r-- | driver/tcpm/nct38xx.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/driver/tcpm/nct38xx.c b/driver/tcpm/nct38xx.c index 8939c52924..0714e99f8f 100644 --- a/driver/tcpm/nct38xx.c +++ b/driver/tcpm/nct38xx.c @@ -56,21 +56,19 @@ static int nct38xx_tcpm_init(int port) return rv; /* Disable OVP */ - rv = tcpc_read(port, TCPC_REG_FAULT_CTRL, ®); - if (rv) - return rv; - reg = reg | TCPC_REG_FAULT_CTRL_VBUS_OVP_FAULT_DIS; - rv = tcpc_write(port, TCPC_REG_FAULT_CTRL, reg); + rv = tcpc_update8(port, + TCPC_REG_FAULT_CTRL, + TCPC_REG_FAULT_CTRL_VBUS_OVP_FAULT_DIS, + MASK_SET); if (rv) return rv; /* Enable VBus monitor and Disable FRS */ - rv = tcpc_read(port, TCPC_REG_POWER_CTRL, ®); - if (rv) - return rv; - reg = reg & ~(TCPC_REG_POWER_CTRL_VBUS_VOL_MONITOR_DIS | - TCPC_REG_POWER_CTRL_FRS_ENABLE); - rv = tcpc_write(port, TCPC_REG_POWER_CTRL, reg); + rv = tcpc_update8(port, + TCPC_REG_POWER_CTRL, + (TCPC_REG_POWER_CTRL_VBUS_VOL_MONITOR_DIS | + TCPC_REG_POWER_CTRL_FRS_ENABLE), + MASK_CLR); if (rv) return rv; @@ -95,13 +93,12 @@ static int nct38xx_tcpm_init(int port) * Enable the Vendor Define alert event only when the IO expander * feature is defined */ - if (IS_ENABLED(CONFIG_IO_EXPANDER_NCT38XX)) { - int mask; + if (IS_ENABLED(CONFIG_IO_EXPANDER_NCT38XX)) + rv |= tcpc_update16(port, + TCPC_REG_ALERT_MASK, + TCPC_REG_ALERT_VENDOR_DEF, + MASK_SET); - rv |= tcpc_read16(port, TCPC_REG_ALERT_MASK, &mask); - mask |= TCPC_REG_ALERT_VENDOR_DEF; - rv |= tcpc_write16(port, TCPC_REG_ALERT_MASK, mask); - } return rv; } |