summaryrefslogtreecommitdiff
path: root/driver/charger/isl923x.c
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2020-02-20 14:26:05 -0800
committerCommit Bot <commit-bot@chromium.org>2020-02-25 04:02:02 +0000
commit36564aa905fa79922db41f11ceff932f2f435cfc (patch)
treedb234e5214e650471c779410b9452dce9d593414 /driver/charger/isl923x.c
parentf6ee241a55abb590917cb8ffbf13c22f2f52bc57 (diff)
downloadchrome-ec-36564aa905fa79922db41f11ceff932f2f435cfc.tar.gz
isl923x: Add isl923x_set_comparator_inversion()
This commit adds an API to set the general comparator output polarity inversion. BUG=b:149794574 BRANCH=None TEST=Add some code to waddledoo to exercise this API, build and flash, verify it behaves as expected. Change-Id: Ib412ce9ad0e44e974ee5fc59bc30a26de65c94c5 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2067169 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org> Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'driver/charger/isl923x.c')
-rw-r--r--driver/charger/isl923x.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/driver/charger/isl923x.c b/driver/charger/isl923x.c
index 6336b4acaf..5b36a1df06 100644
--- a/driver/charger/isl923x.c
+++ b/driver/charger/isl923x.c
@@ -345,6 +345,31 @@ int isl923x_set_dc_prochot(uint16_t ma)
return rv;
}
+int isl923x_set_comparator_inversion(int chgnum, int invert)
+{
+ int rv;
+ int regval;
+
+ rv = i2c_read16(chg_chips[chgnum].i2c_port,
+ chg_chips[chgnum].i2c_addr_flags,
+ ISL923X_REG_CONTROL2, &regval);
+ if (invert)
+ regval |= ISL923X_C2_INVERT_CMOUT;
+ else
+ regval &= ~ISL923X_C2_INVERT_CMOUT;
+
+ if (!rv)
+ rv |= i2c_write16(chg_chips[chgnum].i2c_port,
+ chg_chips[chgnum].i2c_addr_flags,
+ ISL923X_REG_CONTROL2, regval);
+
+ if (rv)
+ CPRINTS("%s (%d) set_comparator_inversion failed (rv: %d)",
+ CHARGER_NAME, chgnum, rv);
+
+ return rv;
+}
+
static void isl923x_init(int chgnum)
{
int reg;