summaryrefslogtreecommitdiff
path: root/driver/charger/isl923x.c
diff options
context:
space:
mode:
authorYuval Peress <peress@google.com>2021-09-29 22:07:41 -0600
committerCommit Bot <commit-bot@chromium.org>2021-10-01 17:45:15 +0000
commita94daa8412b6e936c96d68bb3e5c607fde9b0972 (patch)
tree43a59efe06dba8eae72b21e3e87202d956dbf28a /driver/charger/isl923x.c
parentd5ad74574f5bf884bd1642914f522136d4218c2c (diff)
downloadchrome-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.c22
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, &reg);
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);