diff options
author | Yuval Peress <peress@google.com> | 2021-09-29 22:07:41 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-10-01 17:45:15 +0000 |
commit | a94daa8412b6e936c96d68bb3e5c607fde9b0972 (patch) | |
tree | 43a59efe06dba8eae72b21e3e87202d956dbf28a /driver/charger/isl923x.c | |
parent | d5ad74574f5bf884bd1642914f522136d4218c2c (diff) | |
download | chrome-ec-a94daa8412b6e936c96d68bb3e5c607fde9b0972.tar.gz |
zephyr: charger: Allow multiple (different) chips
There's no real restriction that the same chip needs to be used for
charging. Remove 'choice' and allow multiple charging drivers to be
set for the same board. This change also requires re-naming the
mutex to avoid conflict because of the way Zephyr allocates them.
BRANCH=none
BUG=b:201602829
TEST=zmake testall
Signed-off-by: Yuval Peress <peress@google.com>
Change-Id: I522247bc7dbdae6d6c360a37dfbc1031f4058983
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3195199
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Aaron Massey <aaronmassey@google.com>
Diffstat (limited to 'driver/charger/isl923x.c')
-rw-r--r-- | driver/charger/isl923x.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/driver/charger/isl923x.c b/driver/charger/isl923x.c index 9e3284c29f..b530629aab 100644 --- a/driver/charger/isl923x.c +++ b/driver/charger/isl923x.c @@ -95,7 +95,7 @@ enum isl923x_mon_dir { MON_CHARGE = 0, MON_DISCHARGE = 1 }; static int learn_mode; /* Mutex for CONTROL1 register, that can be updated from multiple tasks. */ -K_MUTEX_DEFINE(control1_mutex); +K_MUTEX_DEFINE(control1_mutex_isl923x); static enum ec_error_list isl923x_discharge_on_ac(int chgnum, int enable); @@ -189,7 +189,7 @@ static int get_amon_bmon(int chgnum, enum isl923x_amon_bmon amon, return ret; } - mutex_lock(&control1_mutex); + mutex_lock(&control1_mutex_isl923x); ret = raw_read16(chgnum, ISL923X_REG_CONTROL1, ®); if (!ret) { @@ -204,7 +204,7 @@ static int get_amon_bmon(int chgnum, enum isl923x_amon_bmon amon, ret = raw_write16(chgnum, ISL923X_REG_CONTROL1, reg); } - mutex_unlock(&control1_mutex); + mutex_unlock(&control1_mutex_isl923x); if (ret) return ret; @@ -271,7 +271,7 @@ static enum ec_error_list isl923x_enable_otg_power(int chgnum, int enabled) { int rv, control1; - mutex_lock(&control1_mutex); + mutex_lock(&control1_mutex_isl923x); rv = raw_read16(chgnum, ISL923X_REG_CONTROL1, &control1); if (rv) @@ -285,7 +285,7 @@ static enum ec_error_list isl923x_enable_otg_power(int chgnum, int enabled) rv = raw_write16(chgnum, ISL923X_REG_CONTROL1, control1); out: - mutex_unlock(&control1_mutex); + mutex_unlock(&control1_mutex_isl923x); return rv; } @@ -775,7 +775,7 @@ static enum ec_error_list isl923x_discharge_on_ac(int chgnum, int enable) int rv; int control1; - mutex_lock(&control1_mutex); + mutex_lock(&control1_mutex_isl923x); rv = raw_read16(chgnum, ISL923X_REG_CONTROL1, &control1); if (rv) @@ -792,7 +792,7 @@ static enum ec_error_list isl923x_discharge_on_ac(int chgnum, int enable) learn_mode = !rv && enable; out: - mutex_unlock(&control1_mutex); + mutex_unlock(&control1_mutex_isl923x); return rv; } @@ -1022,7 +1022,7 @@ static void charger_enable_psys(void) { int val; - mutex_lock(&control1_mutex); + mutex_lock(&control1_mutex_isl923x); /* * enable system power monitor PSYS function @@ -1038,7 +1038,7 @@ static void charger_enable_psys(void) psys_enabled = 1; out: - mutex_unlock(&control1_mutex); + mutex_unlock(&control1_mutex_isl923x); } DECLARE_HOOK(HOOK_CHIPSET_RESUME, charger_enable_psys, HOOK_PRIO_DEFAULT); @@ -1046,7 +1046,7 @@ static void charger_disable_psys(void) { int val; - mutex_lock(&control1_mutex); + mutex_lock(&control1_mutex_isl923x); /* * disable system power monitor PSYS function @@ -1062,7 +1062,7 @@ static void charger_disable_psys(void) psys_enabled = 0; out: - mutex_unlock(&control1_mutex); + mutex_unlock(&control1_mutex_isl923x); } DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, charger_disable_psys, HOOK_PRIO_DEFAULT); |