summaryrefslogtreecommitdiff
path: root/common/battery_fuel_gauge.c
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2021-06-16 11:25:31 -0600
committerCommit Bot <commit-bot@chromium.org>2021-07-14 22:11:45 +0000
commitb95a06b0a1ebe2d85a713b30eec678d00adb7c66 (patch)
treecc1684322667150777c9d8e8d3a8f70430563e4d /common/battery_fuel_gauge.c
parentaa284fcd49379fefe869b502050aaa40110ea1de (diff)
downloadchrome-ec-b95a06b0a1ebe2d85a713b30eec678d00adb7c66.tar.gz
Fuel Gauge: Add interface for optional sleep support
Some fuel gauges may support a "sleep" mode which will enable lower power consumption in some states. Set up a structure for this along with an API which boards may use to call it. BRANCH=None BUG=b:186774653 TEST=make -j buildall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I155702bfb50a7353c7728445d60ecf853e39e4c2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2967037 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'common/battery_fuel_gauge.c')
-rw-r--r--common/battery_fuel_gauge.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/common/battery_fuel_gauge.c b/common/battery_fuel_gauge.c
index 8135344f41..528713d68f 100644
--- a/common/battery_fuel_gauge.c
+++ b/common/battery_fuel_gauge.c
@@ -156,6 +156,23 @@ int board_cut_off_battery(void)
return rv ? EC_RES_ERROR : EC_RES_SUCCESS;
}
+enum ec_error_list battery_sleep_fuel_gauge(void)
+{
+ const struct sleep_mode_info *sleep_command;
+ int type = get_battery_type();
+
+ /* Sleep entry command must be supplied as it will vary by gauge */
+ if (type == BATTERY_TYPE_COUNT)
+ return EC_ERROR_UNKNOWN;
+
+ sleep_command = &board_battery_info[type].fuel_gauge.sleep_mode;
+
+ if (!sleep_command->sleep_supported)
+ return EC_ERROR_UNIMPLEMENTED;
+
+ return sb_write(sleep_command->reg_addr, sleep_command->reg_data);
+}
+
static enum ec_error_list battery_get_fet_status_regval(int *regval)
{
int rv;