summaryrefslogtreecommitdiff
path: root/include/battery.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/battery.h')
-rw-r--r--include/battery.h53
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 */