diff options
author | Edward Hill <ecgh@chromium.org> | 2018-05-24 15:08:04 -0600 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-06-01 17:44:20 -0700 |
commit | 9734ec2d6bd5310f2bbaafded2f5fd9a69496333 (patch) | |
tree | 8857465099ffd6e8624604eedff28b6775599cae | |
parent | f30bb2839f0cd22efe0468680daf66e45a3ce862 (diff) | |
download | chrome-ec-9734ec2d6bd5310f2bbaafded2f5fd9a69496333.tar.gz |
battery: Move fuel gauge code to common
Move fuel gauge code to common to avoid duplication in octopus and
grunt baseboards.
BUG=b:79704826,b:74018100
BRANCH=none
TEST=make -j buildall
Change-Id: I58a615c9ed7906cb19b49c2baa36aaa619838cf1
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1072637
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Vijay Hiremath <vijay.p.hiremath@intel.corp-partner.google.com>
Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r-- | baseboard/grunt/baseboard.h | 1 | ||||
-rw-r--r-- | baseboard/grunt/build.mk | 1 | ||||
-rw-r--r-- | baseboard/octopus/baseboard.h | 1 | ||||
-rw-r--r-- | baseboard/octopus/baseboard_battery.h | 44 | ||||
-rw-r--r-- | baseboard/octopus/battery.c | 261 | ||||
-rw-r--r-- | baseboard/octopus/build.mk | 1 | ||||
-rw-r--r-- | board/bip/battery.c | 2 | ||||
-rw-r--r-- | board/careena/battery.c | 2 | ||||
-rw-r--r-- | board/grunt/battery.c | 2 | ||||
-rw-r--r-- | board/phaser/battery.c | 2 | ||||
-rw-r--r-- | board/yorp/battery.c | 2 | ||||
-rw-r--r-- | common/battery_fuel_gauge.c (renamed from baseboard/grunt/battery.c) | 103 | ||||
-rw-r--r-- | common/build.mk | 1 | ||||
-rw-r--r-- | include/battery_fuel_gauge.h (renamed from baseboard/grunt/baseboard_battery.h) | 13 | ||||
-rw-r--r-- | include/config.h | 7 |
15 files changed, 56 insertions, 387 deletions
diff --git a/baseboard/grunt/baseboard.h b/baseboard/grunt/baseboard.h index ac5fbf113e..4d826061fe 100644 --- a/baseboard/grunt/baseboard.h +++ b/baseboard/grunt/baseboard.h @@ -43,6 +43,7 @@ #define CONFIG_VOLUME_BUTTONS #define CONFIG_BATTERY_CUT_OFF +#define CONFIG_BATTERY_FUEL_GAUGE #define CONFIG_BATTERY_HW_PRESENT_CUSTOM #define CONFIG_BATTERY_PRESENT_CUSTOM #define CONFIG_BATTERY_REVIVE_DISCONNECT diff --git a/baseboard/grunt/build.mk b/baseboard/grunt/build.mk index 5a5942a0c6..cb9d607c36 100644 --- a/baseboard/grunt/build.mk +++ b/baseboard/grunt/build.mk @@ -7,5 +7,4 @@ # baseboard-y=baseboard.o -baseboard-$(CONFIG_BATTERY_SMART)+=battery.o baseboard-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o diff --git a/baseboard/octopus/baseboard.h b/baseboard/octopus/baseboard.h index a603690009..61213f6f9a 100644 --- a/baseboard/octopus/baseboard.h +++ b/baseboard/octopus/baseboard.h @@ -122,6 +122,7 @@ /* Common battery defines */ #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" +#define CONFIG_BATTERY_FUEL_GAUGE /* TODO(b/74427009): Ensure this works in dead battery conditions */ #define CONFIG_BATTERY_HW_PRESENT_CUSTOM #define CONFIG_BATTERY_PRESENT_CUSTOM diff --git a/baseboard/octopus/baseboard_battery.h b/baseboard/octopus/baseboard_battery.h deleted file mode 100644 index 53e3a4df65..0000000000 --- a/baseboard/octopus/baseboard_battery.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/* Octopus baseboard battery configuration */ - -#ifndef __CROS_EC_BASEBOARD_BATTERY_H -#define __CROS_EC_BASEBOARD_BATTERY_H - -#include "battery.h" - -/* Number of writes needed to invoke battery cutoff command */ -#define SHIP_MODE_WRITES 2 - -struct ship_mode_info { - const uint8_t reg_addr; - const uint16_t reg_data[SHIP_MODE_WRITES]; -}; - -struct fet_info { - const int mfgacc_support; - const uint8_t reg_addr; - const uint16_t reg_mask; - const uint16_t disconnect_val; -}; - -struct fuel_gauge_info { - const char *manuf_name; - const char *device_name; - const uint8_t override_nil; - const struct ship_mode_info ship_mode; - const struct fet_info fet; -}; -struct board_batt_params { - const struct fuel_gauge_info fuel_gauge; - const struct battery_info batt_info; -}; - -/* Forward declare variant specific data used by common octopus code */ -extern const struct board_batt_params board_battery_info[]; -extern const enum battery_type DEFAULT_BATTERY_TYPE; - -#endif /* __CROS_EC_BASEBOARD_BATTERY_H */ diff --git a/baseboard/octopus/battery.c b/baseboard/octopus/battery.c deleted file mode 100644 index 0f76f5d9cd..0000000000 --- a/baseboard/octopus/battery.c +++ /dev/null @@ -1,261 +0,0 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Battery pack vendor provided charging profile - */ - -#include "battery.h" -#include "baseboard_battery.h" -#include "battery_smart.h" -#include "charge_state.h" -#include "common.h" -#include "console.h" -#include "gpio.h" -#include "hooks.h" -#include "util.h" - -#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args) - - -static enum battery_present batt_pres_prev = BP_NOT_SURE; - -/* Get type of the battery connected on the board */ -static int board_get_battery_type(void) -{ - char manu_name[32], device_name[32]; - int i; - static enum battery_type board_battery_type = BATTERY_TYPE_COUNT; - - /* - * If board_battery_type is not the default value, then can return here - * as there is no need to query the fuel gauge. - */ - if (board_battery_type != BATTERY_TYPE_COUNT) - return board_battery_type; - - /* Get the manufacture name. If can't read then just exit */ - if (battery_manufacturer_name(manu_name, sizeof(manu_name))) - return board_battery_type; - - /* - * Compare the manufacturer name read from the fuel gauge to the - * manufacture names defined in the board_battery_info table above. If - * a device name has been specified in the board_battery_info table, - * then both the manufacture and device name must match. - */ - for (i = 0; i < BATTERY_TYPE_COUNT; i++) { - const struct fuel_gauge_info * const fuel_gauge = - &board_battery_info[i].fuel_gauge; - - if (strcasecmp(manu_name, fuel_gauge->manuf_name)) - continue; - - if (fuel_gauge->device_name == NULL) { - board_battery_type = i; - break; - } - - if (battery_device_name(device_name, sizeof(device_name))) - continue; - - if (strcasecmp(device_name, fuel_gauge->device_name)) - continue; - - CPRINTS("found batt:%s", fuel_gauge->manuf_name); - board_battery_type = i; - - break; - } - - return board_battery_type; -} - -/* - * Initialize the battery type for the board. - * - * Very first battery board_battery_info is called by the charger driver to - * initialize the charger parameters hence initialize the battery type for the - * board as soon as the I2C is initialized. - */ -static void board_init_battery_type(void) -{ - if (board_get_battery_type() == BATTERY_TYPE_COUNT) - CPRINTS("battery not found"); -} -DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1); - -static inline const struct board_batt_params *board_get_batt_params(void) -{ - int type = board_get_battery_type(); - - return &board_battery_info[type == BATTERY_TYPE_COUNT ? - DEFAULT_BATTERY_TYPE : type]; -} - -const struct battery_info *battery_get_info(void) -{ - return &board_get_batt_params()->batt_info; -} - -int board_cut_off_battery(void) -{ - int rv; - int cmd; - int data; - int type = board_get_battery_type(); - - /* If battery type is unknown can't send ship mode command */ - if (type == BATTERY_TYPE_COUNT) - return EC_RES_ERROR; - - /* Ship mode command must be sent twice to take effect */ - cmd = board_battery_info[type].fuel_gauge.ship_mode.reg_addr; - data = board_battery_info[type].fuel_gauge.ship_mode.reg_data[0]; - rv = sb_write(cmd, data); - if (rv != EC_SUCCESS) - return EC_RES_ERROR; - - data = board_battery_info[type].fuel_gauge.ship_mode.reg_data[1]; - rv = sb_write(cmd, data); - - return rv ? EC_RES_ERROR : EC_RES_SUCCESS; -} - -int charger_profile_override(struct charge_state_data *curr) -{ - int type = board_get_battery_type(); - - /* - * Some batteries, when fully discharged, may request 0 voltage/current - * which can then inadvertently disable the charger leading to the - * battery not waking up. For this type of battery, marked by - * override_nil being set, if SOC is 0 and requested voltage/current is - * 0, then use precharge current and max voltage instead. - */ - if (type != BATTERY_TYPE_COUNT && - board_battery_info[type].fuel_gauge.override_nil) { - int v = board_battery_info[type].batt_info.voltage_max; - int i = board_battery_info[type].batt_info.precharge_current; - - if (curr->requested_voltage == 0 && - curr->requested_current == 0 && - curr->batt.state_of_charge == 0) { - /* - * Battery is dead, override with precharge current and - * max voltage setting for the battery. - */ - curr->requested_voltage = v; - curr->requested_current = i; - } - } - - return 0; -} - -enum battery_present battery_hw_present(void) -{ - /* The GPIO is low when the battery is physically present */ - return gpio_get_level(GPIO_EC_BATT_PRES_L) ? BP_NO : BP_YES; -} - -static int battery_init(void) -{ - int batt_status; - - return battery_status(&batt_status) ? 0 : - !!(batt_status & STATUS_INITIALIZED); -} - -/* - * This function checks the charge/discharge FET status bits. Each battery type - * supported provides the register address, mask, and disconnect value for these - * 2 FET status bits. If the FET status matches the disconnected value, then - * BATTERY_DISCONNECTED is returned. This function is required to handle the - * cases when the fuel gauge is awake and will return a non-zero state of - * charge, but is not able yet to provide power (i.e. discharge FET is not - * active). By returning BATTERY_DISCONNECTED the AP will not be powered up - * until either the external charger is able to provided enough power, or - * the battery is able to provide power and thus prevent a brownout when the - * AP is powered on by the EC. - */ -enum battery_disconnect_state battery_get_disconnect_state(void) -{ - int rv; - int reg; - uint8_t data[6]; - int type = board_get_battery_type(); - - /* If battery type is not known, can't check CHG/DCHG FETs */ - if (type == BATTERY_TYPE_COUNT) { - /* Still don't know, so return here */ - return BATTERY_DISCONNECT_ERROR; - } - - /* Read the status of charge/discharge FETs */ - if (board_battery_info[type].fuel_gauge.fet.mfgacc_support == 1) { - rv = sb_read_mfgacc(PARAM_OPERATION_STATUS, - SB_ALT_MANUFACTURER_ACCESS, data, sizeof(data)); - /* Get the lowest 16bits of the OperationStatus() data */ - reg = data[2] | data[3] << 8; - } else - rv = sb_read(board_battery_info[type].fuel_gauge.fet.reg_addr, - ®); - - if (rv) - return BATTERY_DISCONNECT_ERROR; - - if ((reg & board_battery_info[type].fuel_gauge.fet.reg_mask) == - board_battery_info[type].fuel_gauge.fet.disconnect_val) { - CPRINTS("Batt disconnected: reg 0x%04x mask 0x%04x disc 0x%04x", - reg, - board_battery_info[type].fuel_gauge.fet.reg_mask, - board_battery_info[type].fuel_gauge.fet.disconnect_val); - return BATTERY_DISCONNECTED; - } - - return BATTERY_NOT_DISCONNECTED; -} - -/* - * Physical detection of battery. - */ -static enum battery_present battery_check_present_status(void) -{ - enum battery_present batt_pres; - - /* Get the physical hardware status */ - batt_pres = battery_hw_present(); - - /* - * If the battery is not physically connected, then no need to perform - * any more checks. - */ - if (batt_pres != BP_YES) - return batt_pres; - - /* - * If the battery is present now and was present last time we checked, - * return early. - */ - if (batt_pres == batt_pres_prev) - return batt_pres; - - /* - * Ensure that battery is: - * 1. Not in cutoff - * 2. Initialized - */ - if (battery_is_cut_off() != BATTERY_CUTOFF_STATE_NORMAL || - battery_init() == 0) { - batt_pres = BP_NO; - } - - return batt_pres; -} - -enum battery_present battery_is_present(void) -{ - batt_pres_prev = battery_check_present_status(); - return batt_pres_prev; -} diff --git a/baseboard/octopus/build.mk b/baseboard/octopus/build.mk index 3189d7cb07..2bf9b7b83d 100644 --- a/baseboard/octopus/build.mk +++ b/baseboard/octopus/build.mk @@ -7,7 +7,6 @@ # baseboard-y=baseboard.o -baseboard-$(CONFIG_BATTERY_SMART)+=battery.o baseboard-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_policy.o baseboard-$(VARIANT_OCTOPUS_EC_NPCX796FB)+=variant_ec_npcx796fb.o baseboard-$(VARIANT_OCTOPUS_EC_ITE8320)+=variant_ec_ite8320.o diff --git a/board/bip/battery.c b/board/bip/battery.c index 584584af32..e37ffbc3b7 100644 --- a/board/bip/battery.c +++ b/board/bip/battery.c @@ -5,8 +5,8 @@ * Battery pack vendor provided charging profile */ +#include "battery_fuel_gauge.h" #include "common.h" -#include "baseboard_battery.h" #include "util.h" /* diff --git a/board/careena/battery.c b/board/careena/battery.c index c0af812b9f..4cc92970c2 100644 --- a/board/careena/battery.c +++ b/board/careena/battery.c @@ -5,8 +5,8 @@ * Battery pack vendor provided charging profile */ +#include "battery_fuel_gauge.h" #include "common.h" -#include "baseboard_battery.h" #include "util.h" /* diff --git a/board/grunt/battery.c b/board/grunt/battery.c index 3dd9f84832..359ec9785b 100644 --- a/board/grunt/battery.c +++ b/board/grunt/battery.c @@ -5,8 +5,8 @@ * Battery pack vendor provided charging profile */ +#include "battery_fuel_gauge.h" #include "common.h" -#include "baseboard_battery.h" #include "util.h" /* diff --git a/board/phaser/battery.c b/board/phaser/battery.c index 6c87b18dfa..d4d054fffb 100644 --- a/board/phaser/battery.c +++ b/board/phaser/battery.c @@ -5,8 +5,8 @@ * Battery pack vendor provided charging profile */ +#include "battery_fuel_gauge.h" #include "common.h" -#include "baseboard_battery.h" #include "util.h" /* diff --git a/board/yorp/battery.c b/board/yorp/battery.c index 603beb38b9..1d8ec33d3d 100644 --- a/board/yorp/battery.c +++ b/board/yorp/battery.c @@ -5,8 +5,8 @@ * Battery pack vendor provided charging profile */ +#include "battery_fuel_gauge.h" #include "common.h" -#include "baseboard_battery.h" #include "util.h" /* diff --git a/baseboard/grunt/battery.c b/common/battery_fuel_gauge.c index 0f76f5d9cd..c14b9de4cb 100644 --- a/baseboard/grunt/battery.c +++ b/common/battery_fuel_gauge.c @@ -2,11 +2,10 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * - * Battery pack vendor provided charging profile + * Battery fuel gauge parameters */ -#include "battery.h" -#include "baseboard_battery.h" +#include "battery_fuel_gauge.h" #include "battery_smart.h" #include "charge_state.h" #include "common.h" @@ -21,73 +20,70 @@ static enum battery_present batt_pres_prev = BP_NOT_SURE; /* Get type of the battery connected on the board */ -static int board_get_battery_type(void) +static int get_battery_type(void) { - char manu_name[32], device_name[32]; + char manuf_name[32], device_name[32]; int i; - static enum battery_type board_battery_type = BATTERY_TYPE_COUNT; + static enum battery_type battery_type = BATTERY_TYPE_COUNT; /* - * If board_battery_type is not the default value, then can return here + * If battery_type is not the default value, then can return here * as there is no need to query the fuel gauge. */ - if (board_battery_type != BATTERY_TYPE_COUNT) - return board_battery_type; + if (battery_type != BATTERY_TYPE_COUNT) + return battery_type; - /* Get the manufacture name. If can't read then just exit */ - if (battery_manufacturer_name(manu_name, sizeof(manu_name))) - return board_battery_type; + /* Get the manufacturer name. If can't read then just exit */ + if (battery_manufacturer_name(manuf_name, sizeof(manuf_name))) + return battery_type; /* * Compare the manufacturer name read from the fuel gauge to the - * manufacture names defined in the board_battery_info table above. If + * manufacturer names defined in the board_battery_info table. If * a device name has been specified in the board_battery_info table, - * then both the manufacture and device name must match. + * then both the manufacturer and device name must match. */ for (i = 0; i < BATTERY_TYPE_COUNT; i++) { const struct fuel_gauge_info * const fuel_gauge = &board_battery_info[i].fuel_gauge; - if (strcasecmp(manu_name, fuel_gauge->manuf_name)) + if (strcasecmp(manuf_name, fuel_gauge->manuf_name)) continue; - if (fuel_gauge->device_name == NULL) { - board_battery_type = i; - break; - } + if (fuel_gauge->device_name != NULL) { - if (battery_device_name(device_name, sizeof(device_name))) - continue; + if (battery_device_name(device_name, + sizeof(device_name))) + continue; - if (strcasecmp(device_name, fuel_gauge->device_name)) - continue; + if (strcasecmp(device_name, fuel_gauge->device_name)) + continue; + } CPRINTS("found batt:%s", fuel_gauge->manuf_name); - board_battery_type = i; - + battery_type = i; break; } - return board_battery_type; + return battery_type; } /* * Initialize the battery type for the board. * - * Very first battery board_battery_info is called by the charger driver to - * initialize the charger parameters hence initialize the battery type for the - * board as soon as the I2C is initialized. + * The first call to battery_get_info() is when the charger task starts, so + * initialize the battery type as soon as I2C is initialized. */ -static void board_init_battery_type(void) +static void init_battery_type(void) { - if (board_get_battery_type() == BATTERY_TYPE_COUNT) + if (get_battery_type() == BATTERY_TYPE_COUNT) CPRINTS("battery not found"); } -DECLARE_HOOK(HOOK_INIT, board_init_battery_type, HOOK_PRIO_INIT_I2C + 1); +DECLARE_HOOK(HOOK_INIT, init_battery_type, HOOK_PRIO_INIT_I2C + 1); -static inline const struct board_batt_params *board_get_batt_params(void) +static inline const struct board_batt_params *get_batt_params(void) { - int type = board_get_battery_type(); + int type = get_battery_type(); return &board_battery_info[type == BATTERY_TYPE_COUNT ? DEFAULT_BATTERY_TYPE : type]; @@ -95,7 +91,7 @@ static inline const struct board_batt_params *board_get_batt_params(void) const struct battery_info *battery_get_info(void) { - return &board_get_batt_params()->batt_info; + return &get_batt_params()->batt_info; } int board_cut_off_battery(void) @@ -103,13 +99,13 @@ int board_cut_off_battery(void) int rv; int cmd; int data; - int type = board_get_battery_type(); + int type = get_battery_type(); /* If battery type is unknown can't send ship mode command */ if (type == BATTERY_TYPE_COUNT) return EC_RES_ERROR; - /* Ship mode command must be sent twice to take effect */ + /* Ship mode command requires writing 2 data values */ cmd = board_battery_info[type].fuel_gauge.ship_mode.reg_addr; data = board_battery_info[type].fuel_gauge.ship_mode.reg_data[0]; rv = sb_write(cmd, data); @@ -122,37 +118,6 @@ int board_cut_off_battery(void) return rv ? EC_RES_ERROR : EC_RES_SUCCESS; } -int charger_profile_override(struct charge_state_data *curr) -{ - int type = board_get_battery_type(); - - /* - * Some batteries, when fully discharged, may request 0 voltage/current - * which can then inadvertently disable the charger leading to the - * battery not waking up. For this type of battery, marked by - * override_nil being set, if SOC is 0 and requested voltage/current is - * 0, then use precharge current and max voltage instead. - */ - if (type != BATTERY_TYPE_COUNT && - board_battery_info[type].fuel_gauge.override_nil) { - int v = board_battery_info[type].batt_info.voltage_max; - int i = board_battery_info[type].batt_info.precharge_current; - - if (curr->requested_voltage == 0 && - curr->requested_current == 0 && - curr->batt.state_of_charge == 0) { - /* - * Battery is dead, override with precharge current and - * max voltage setting for the battery. - */ - curr->requested_voltage = v; - curr->requested_current = i; - } - } - - return 0; -} - enum battery_present battery_hw_present(void) { /* The GPIO is low when the battery is physically present */ @@ -184,7 +149,7 @@ enum battery_disconnect_state battery_get_disconnect_state(void) int rv; int reg; uint8_t data[6]; - int type = board_get_battery_type(); + int type = get_battery_type(); /* If battery type is not known, can't check CHG/DCHG FETs */ if (type == BATTERY_TYPE_COUNT) { diff --git a/common/build.mk b/common/build.mk index 9a11f4f887..602f553457 100644 --- a/common/build.mk +++ b/common/build.mk @@ -22,6 +22,7 @@ common-$(CONFIG_AP_HANG_DETECT)+=ap_hang_detect.o common-$(CONFIG_BACKLIGHT_LID)+=backlight_lid.o common-$(CONFIG_BASE32)+=base32.o common-$(CONFIG_BATTERY)+=battery.o +common-$(CONFIG_BATTERY_FUEL_GAUGE)+=battery_fuel_gauge.o common-$(CONFIG_BLUETOOTH_LE)+=bluetooth_le.o common-$(CONFIG_BLUETOOTH_LE_STACK)+=btle_hci_controller.o btle_ll.o common-$(CONFIG_CAPSENSE)+=capsense.o diff --git a/baseboard/grunt/baseboard_battery.h b/include/battery_fuel_gauge.h index 513c45a512..8de72d7d4e 100644 --- a/baseboard/grunt/baseboard_battery.h +++ b/include/battery_fuel_gauge.h @@ -1,12 +1,12 @@ /* Copyright 2018 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. + * + * Battery fuel gauge parameters */ -/* Grunt baseboard battery configuration */ - -#ifndef __CROS_EC_BASEBOARD_BATTERY_H -#define __CROS_EC_BASEBOARD_BATTERY_H +#ifndef __CROS_EC_BATTERY_FUEL_GAUGE_H +#define __CROS_EC_BATTERY_FUEL_GAUGE_H #include "battery.h" @@ -32,13 +32,14 @@ struct fuel_gauge_info { const struct ship_mode_info ship_mode; const struct fet_info fet; }; + struct board_batt_params { const struct fuel_gauge_info fuel_gauge; const struct battery_info batt_info; }; -/* Forward declare board specific data used by baseboard code */ +/* Forward declare board specific data used by common code */ extern const struct board_batt_params board_battery_info[]; extern const enum battery_type DEFAULT_BATTERY_TYPE; -#endif /* __CROS_EC_BASEBOARD_BATTERY_H */ +#endif /* __CROS_EC_BATTERY_FUEL_GAUGE_H */ diff --git a/include/config.h b/include/config.h index e7ca893b80..aa99222954 100644 --- a/include/config.h +++ b/include/config.h @@ -303,6 +303,13 @@ #undef CONFIG_BATTERY_DEVICE_CHEMISTRY /* + * If defined, the board must supply fuel gauge and battery information for + * each supported battery. This information is then used for battery cut off + * and to check the charge/discharge FET status. + */ +#undef CONFIG_BATTERY_FUEL_GAUGE + +/* * Critical battery shutdown timeout (seconds) * * If the battery is at extremely low charge (and discharging) or extremely |