diff options
author | Diana Z <dzigterman@chromium.org> | 2021-06-16 11:25:31 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-14 22:11:45 +0000 |
commit | b95a06b0a1ebe2d85a713b30eec678d00adb7c66 (patch) | |
tree | cc1684322667150777c9d8e8d3a8f70430563e4d /common/battery_fuel_gauge.c | |
parent | aa284fcd49379fefe869b502050aaa40110ea1de (diff) | |
download | chrome-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.c | 17 |
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; |