diff options
Diffstat (limited to 'include/battery.h')
-rw-r--r-- | include/battery.h | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/include/battery.h b/include/battery.h index 2de5835807..27e678c0ba 100644 --- a/include/battery.h +++ b/include/battery.h @@ -19,13 +19,6 @@ enum battery_index { BATT_IDX_BASE = 1, }; -#ifdef CONFIG_BATTERY_V2 -extern struct ec_response_battery_static_info_v1 - battery_static[CONFIG_BATTERY_COUNT]; -extern struct ec_response_battery_dynamic_info - battery_dynamic[CONFIG_BATTERY_COUNT]; -#endif - /* Stop charge when charging and battery level >= this percentage */ #define BATTERY_LEVEL_FULL 100 @@ -54,6 +47,9 @@ extern struct ec_response_battery_dynamic_info */ #define BATTERY_LEVEL_SHUTDOWN 3 +/* Full-capacity change reqd for host event */ +#define LFCC_EVENT_THRESH 5 + /* * Sometimes we have hardware to detect battery present, sometimes we have to * wait until we've been able to talk to the battery. @@ -77,6 +73,30 @@ enum battery_disconnect_state { BATTERY_DISCONNECT_ERROR, }; +struct battery_static_info { + uint16_t design_capacity; + uint16_t design_voltage; + uint32_t cycle_count; + /* + * TODO: The fields below should be renamed & re-typed: + * uint16_t serial[32]; + * char manufacturer[32]; + * char device_name[32]; + * char chemistry[32]; + */ + /* Max string size in the SB spec is 31. */ + char manufacturer_ext[32]; /* SB_MANUFACTURER_NAME */ + char model_ext[32]; /* SB_DEVICE_NAME */ + char serial_ext[32]; /* SB_SERIAL_NUMBER */ + char type_ext[32]; /* SB_DEVICE_CHEMISTRY */ +#ifdef CONFIG_BATTERY_VENDOR_PARAM + uint8_t vendor_param[32]; +#endif +}; + +extern struct battery_static_info battery_static[]; +extern struct ec_response_battery_dynamic_info battery_dynamic[]; + /* Battery parameters */ struct batt_params { int temperature; /* Temperature in 0.1 K */ @@ -148,6 +168,9 @@ struct battery_info { int8_t charging_max_c; int8_t discharging_min_c; int8_t discharging_max_c; +#ifdef CONFIG_BATTERY_VENDOR_PARAM + uint8_t vendor_param_start; +#endif }; /** @@ -398,7 +421,7 @@ int battery_is_cut_off(void); * @param value Location to store retrieved value. * @return non-zero if error. */ -int battery_get_vendor_param(uint32_t param, uint32_t *value); +__override_proto int battery_get_vendor_param(uint32_t param, uint32_t *value); /** * Write battery vendor parameter. @@ -409,7 +432,7 @@ int battery_get_vendor_param(uint32_t param, uint32_t *value); * @param value Value to write to the battery. * @return non-zero if error. */ -int battery_set_vendor_param(uint32_t param, uint32_t value); +__override_proto int battery_set_vendor_param(uint32_t param, uint32_t value); /** * Wait for battery stable. @@ -476,4 +499,16 @@ __override_proto void board_battery_compensate_params(struct batt_params *batt); void battery_validate_params(struct batt_params *batt); +/** + * Read static battery info from a main battery and store it in a cache. + * + * @return EC_SUCCESS or EC_ERROR_*. + */ +int update_static_battery_info(void); + +/** + * Read dynamic battery info from a main battery and store it in a cache. + */ +void update_dynamic_battery_info(void); + #endif /* __CROS_EC_BATTERY_H */ |