summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@chromium.org>2019-12-09 08:41:36 -0700
committerCommit Bot <commit-bot@chromium.org>2019-12-10 19:18:12 +0000
commit4ee83b2cdf8b222228fde4baf08ab218a06148db (patch)
treebe8afc3a78aeb492b877d8eafe46469a089785ad
parent160f5d39b0ca31124b1e0d0218442fa65dbd77ea (diff)
downloadchrome-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.c31
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, &reg);
- 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, &reg);
- 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;
}