summaryrefslogtreecommitdiff
path: root/include/battery.h
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2013-08-20 16:36:38 +0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-09-05 07:19:59 +0000
commit93cb494a7e44864912843e63c04ae72912a1a2e4 (patch)
tree97399ed492eda3d72923bc1c6ceac977a2bf4061 /include/battery.h
parent3f2eba22c5d3e771904f6451a4b63a41cc6964cb (diff)
downloadchrome-ec-93cb494a7e44864912843e63c04ae72912a1a2e4.tar.gz
Add BQ27541 battery driver
BQ27541 is not a smart battery IC, and thus we cannot use existing smart battery driver. Let's add a driver that implements a smart-battery-like interface. The 'battery' console command is also moved to battery.c so that it can be reused by different battery driver. BUG=chrome-os-partner:22048 TEST=Type 'battery' and check the reported values are sane. TEST=Check 'battery' command works fine on Spring. BRANCH=None Change-Id: I5d1eaeb3f801478f3b9473fd43c1f2a2eda75859 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/66340
Diffstat (limited to 'include/battery.h')
-rw-r--r--include/battery.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/include/battery.h b/include/battery.h
index 940187fe7f..39a7aea0d1 100644
--- a/include/battery.h
+++ b/include/battery.h
@@ -31,5 +31,104 @@
*/
#define BATTERY_LEVEL_SHUTDOWN 3
+
+/* Get/set battery mode */
+int battery_get_battery_mode(int *mode);
+
+int battery_set_battery_mode(int mode);
+
+/* Read battery temperature
+ * unit: 0.1 K
+ */
+int battery_temperature(int *deci_kelvin);
+
+/* Read battery voltage
+ * unit: mV
+ */
+int battery_voltage(int *voltage);
+
+/* Relative state of charge in percent */
+int battery_state_of_charge(int *percent);
+
+/* Absolute state of charge in percent */
+int battery_state_of_charge_abs(int *percent);
+
+/*
+ * Return non-zero if the battery is reporting capacity in 10mW.
+ * Otherwise, in mAh. */
+int battery_is_in_10mw_mode(void);
+
+/*
+ * Battery remaining capacity
+ * unit: mAh or 10mW, depends on battery mode
+ */
+int battery_remaining_capacity(int *capacity);
+
+/* Battery full charge capacity */
+int battery_full_charge_capacity(int *capacity);
+
+/* Time in minutes left when discharging */
+int battery_time_to_empty(int *minutes);
+
+int battery_run_time_to_empty(int *minutes);
+
+/* Time in minutes to full when charging */
+int battery_time_to_full(int *minutes);
+
+/* The current battery desired to charge
+ * unit: mA
+ */
+int battery_desired_current(int *current);
+
+/* The voltage battery desired to charge
+ * unit: mV
+ */
+int battery_desired_voltage(int *voltage);
+
+/* Read battery status */
+int battery_status(int *status);
+
+/* Battery charge cycle count */
+int battery_cycle_count(int *count);
+
+/* Designed battery capacity
+ * unit: mAh or 10mW depends on battery mode
+ */
+int battery_design_capacity(int *capacity);
+
+/* Designed battery output voltage
+ * unit: mV
+ */
+int battery_design_voltage(int *voltage);
+
+/* Read serial number */
+int battery_serial_number(int *serial);
+
+/* Read manufacturer name */
+int battery_manufacturer_name(char *manufacturer_name, int buf_size);
+
+/* Read device name */
+int battery_device_name(char *device_name, int buf_size);
+
+/* Read battery type/chemistry */
+int battery_device_chemistry(char *device_chemistry, int buf_size);
+
+/* Read battery discharging current
+ * unit: mA
+ * negative value: charging
+ */
+int battery_current(int *current);
+int battery_average_current(int *current);
+
+/* Calculate battery time in minutes, under a charging rate
+ * rate > 0: charging, negative time to full
+ * rate < 0: discharging, positive time to empty
+ * rate == 0: invalid input, time = 0
+ */
+int battery_time_at_rate(int rate, int *minutes);
+
+/* Read manufacturer date */
+int battery_manufacturer_date(int *year, int *month, int *day);
+
#endif /* __CROS_EC_BATTERY_H */