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 /include | |
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 'include')
-rw-r--r-- | include/battery_fuel_gauge.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/battery_fuel_gauge.h b/include/battery_fuel_gauge.h index 36da40b274..eb54b64c53 100644 --- a/include/battery_fuel_gauge.h +++ b/include/battery_fuel_gauge.h @@ -9,6 +9,7 @@ #define __CROS_EC_BATTERY_FUEL_GAUGE_H #include "battery.h" +#include <stdbool.h> /* Number of writes needed to invoke battery cutoff command */ #define SHIP_MODE_WRITES 2 @@ -25,6 +26,12 @@ struct ship_mode_info { const uint16_t reg_data[SHIP_MODE_WRITES]; }; +struct sleep_mode_info { + const bool sleep_supported; + const uint8_t reg_addr; + const uint16_t reg_data; +}; + struct fet_info { const int mfgacc_support; const uint8_t reg_addr; @@ -39,6 +46,7 @@ struct fuel_gauge_info { const char *device_name; const uint8_t override_nil; const struct ship_mode_info ship_mode; + const struct sleep_mode_info sleep_mode; const struct fet_info fet; #ifdef CONFIG_BATTERY_MEASURE_IMBALANCE @@ -99,4 +107,11 @@ int cut_off_battery_block_write(const struct ship_mode_info *ship_mode); */ int cut_off_battery_sb_write(const struct ship_mode_info *ship_mode); +/** + * Send the fuel gauge sleep command through SMBus. + * + * @return 0 if successful, non-zero if error occurred + */ +enum ec_error_list battery_sleep_fuel_gauge(void); + #endif /* __CROS_EC_BATTERY_FUEL_GAUGE_H */ |