diff options
-rw-r--r-- | common/battery.c | 24 | ||||
-rw-r--r-- | driver/battery/bq27541.c | 5 | ||||
-rw-r--r-- | include/battery.h | 6 | ||||
-rw-r--r-- | include/battery_smart.h | 2 |
4 files changed, 33 insertions, 4 deletions
diff --git a/common/battery.c b/common/battery.c index 25c4bcf1f9..0d47378f94 100644 --- a/common/battery.c +++ b/common/battery.c @@ -38,6 +38,30 @@ static int print_battery_info(void) char text[32]; const char *unit; + print_item_name("Status:"); + if (check_print_error(battery_status(&value))) { + const char * const st[] = {"EMPTY", "FULL", "DCHG", "INIT",}; + const char * const al[] = {"RT", "RC", "--", "TD", + "OT", "--", "TC", "OC"}; + int i; + ccprintf("0x%04x", value); + + /* bits 0-3 are only valid when the previous transaction + * failed, so ignore them */ + + /* bits 4-7 are status */ + for (i = 0; i < 4; i++) + if (value & (1 << (i+4))) + ccprintf(" %s", st[i]); + + /* bits 15-8 are alarms */ + for (i = 0; i < 8; i++) + if (value & (1 << (i+8))) + ccprintf(" %s", al[i]); + + ccprintf("\n"); + } + print_item_name("Temp:"); if (check_print_error(battery_temperature(&value))) ccprintf("0x%04x = %.1d K (%.1d C)\n", diff --git a/driver/battery/bq27541.c b/driver/battery/bq27541.c index 42397135d0..1060a6ba13 100644 --- a/driver/battery/bq27541.c +++ b/driver/battery/bq27541.c @@ -205,6 +205,11 @@ int battery_get_mode(int *mode) return EC_ERROR_UNIMPLEMENTED; } +int battery_status(int *status) +{ + return EC_ERROR_UNIMPLEMENTED; +} + int battery_is_in_10mw_mode(int *val) { /* Always using mAh unit */ diff --git a/include/battery.h b/include/battery.h index 10d0b6dcd0..b5056cf9d4 100644 --- a/include/battery.h +++ b/include/battery.h @@ -86,7 +86,7 @@ int battery_is_connected(void); /** * Get battery mode. * - * See MODE_* constants in smart_battery.h + * See MODE_* constants in battery_smart.h * * @param mode Destination for current mode. * @return non-zero if error. @@ -96,7 +96,7 @@ int battery_get_mode(int *mode); /** * Set battery mode. * - * See MODE_* constants in smart_battery.h + * See MODE_* constants in battery_smart.h * * @param mode New mode. * @return non-zero if error. @@ -267,7 +267,7 @@ int battery_charging_allowed(int *allowed); /** * Read battery status. * - * @param status Destination for status; see STATUS_* in smart_battery.h. + * @param status Destination for status; see STATUS_* in battery_smart.h. * @return non-zero if error. */ int battery_status(int *status); diff --git a/include/battery_smart.h b/include/battery_smart.h index 6324f1c31d..3e031b8f60 100644 --- a/include/battery_smart.h +++ b/include/battery_smart.h @@ -80,7 +80,7 @@ #define STATUS_FULLY_DISCHARGED (1 << 4) #define STATUS_FULLY_CHARGED (1 << 5) #define STATUS_DISCHARGING (1 << 6) -#define STATUS_INITIALIZING (1 << 7) +#define STATUS_INITIALIZED (1 << 7) #define STATUS_REMAINING_TIME_ALARM (1 << 8) #define STATUS_REMAINING_CAPACITY_ALARM (1 << 9) #define STATUS_TERMINATE_DISCHARGE_ALARM (1 << 11) |