summaryrefslogtreecommitdiff
path: root/common/charger.c
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2020-08-24 16:05:52 -0600
committerCommit Bot <commit-bot@chromium.org>2020-08-27 00:50:30 +0000
commit66e48a5203fd3e4d2d12ab8dad5a012c10930f84 (patch)
tree1c75b046b8dd731bf87ab63d8bb5dd141d22ee10 /common/charger.c
parent865a57be356a76cebd8fd6429dcba9ed0a4cded7 (diff)
downloadchrome-ec-66e48a5203fd3e4d2d12ab8dad5a012c10930f84.tar.gz
Charger: Call discharge on AC for all chargers
This change adds a loop to the common charger driver to set discharge on AC for all chargers, since it's unlikely a caller of this API would only want this feature enabled for a single port. BRANCH=None BUG=b:164256610 TEST=make -j buildall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ib23a93259a630016cb0f1384a6fc2b19b2baafb1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2375725 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'common/charger.c')
-rw-r--r--common/charger.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/common/charger.c b/common/charger.c
index 68f8f71ced..666d170279 100644
--- a/common/charger.c
+++ b/common/charger.c
@@ -435,17 +435,19 @@ enum ec_error_list charger_set_voltage(int chgnum, int voltage)
enum ec_error_list charger_discharge_on_ac(int enable)
{
- int chgnum = 0;
+ int chgnum;
int rv = EC_ERROR_UNIMPLEMENTED;
- if ((chgnum < 0) || (chgnum >= board_get_charger_chip_count())) {
- CPRINTS("%s(%d) Invalid charger!", __func__, chgnum);
- return EC_ERROR_INVAL;
+ /*
+ * When discharge on AC is selected, cycle through all chargers to
+ * enable or disable this feature.
+ */
+ for (chgnum = 0; chgnum < board_get_charger_chip_count(); chgnum++) {
+ if (chg_chips[chgnum].drv->discharge_on_ac)
+ rv = chg_chips[chgnum].drv->discharge_on_ac(chgnum,
+ enable);
}
- if (chg_chips[chgnum].drv->discharge_on_ac)
- rv = chg_chips[chgnum].drv->discharge_on_ac(chgnum, enable);
-
return rv;
}