diff options
Diffstat (limited to 'driver/battery/smart.c')
-rw-r--r-- | driver/battery/smart.c | 92 |
1 files changed, 41 insertions, 51 deletions
diff --git a/driver/battery/smart.c b/driver/battery/smart.c index c87a1a6cdc..0a6cd145f3 100644 --- a/driver/battery/smart.c +++ b/driver/battery/smart.c @@ -1,4 +1,4 @@ -/* Copyright 2012 The Chromium OS Authors. All rights reserved. +/* Copyright 2012 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -15,9 +15,9 @@ /* Console output macros */ #define CPUTS(outstr) cputs(CC_CHARGER, outstr); -#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args) +#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ##args) -#define BATTERY_NO_RESPONSE_TIMEOUT (1000*MSEC) +#define BATTERY_NO_RESPONSE_TIMEOUT (1000 * MSEC) static int fake_state_of_charge = -1; static int fake_temperature = -1; @@ -92,8 +92,7 @@ int sb_read_string(int offset, uint8_t *data, int len) if (battery_supports_pec()) addr_flags |= I2C_FLAG_PEC; - return i2c_read_string(I2C_PORT_BATTERY, addr_flags, offset, data, - len); + return i2c_read_string(I2C_PORT_BATTERY, addr_flags, offset, data, len); } int sb_read_sized_block(int offset, uint8_t *data, int len) @@ -315,12 +314,12 @@ test_mockable int battery_manufacture_date(int *year, int *month, int *day) /* battery date format: * ymd = day + month * 32 + (year - 1980) * 512 */ - *year = ((ymd & MANUFACTURE_DATE_YEAR_MASK) >> - MANUFACTURE_DATE_YEAR_SHIFT) + MANUFACTURE_DATE_YEAR_OFFSET; + *year = ((ymd & MANUFACTURE_DATE_YEAR_MASK) >> + MANUFACTURE_DATE_YEAR_SHIFT) + + MANUFACTURE_DATE_YEAR_OFFSET; *month = (ymd & MANUFACTURE_DATE_MONTH_MASK) >> MANUFACTURE_DATE_MONTH_SHIFT; - *day = (ymd & MANUFACTURE_DATE_DAY_MASK) >> - MANUFACTURE_DATE_DAY_SHIFT; + *day = (ymd & MANUFACTURE_DATE_DAY_MASK) >> MANUFACTURE_DATE_DAY_SHIFT; return EC_SUCCESS; } @@ -408,16 +407,16 @@ void battery_get_params(struct batt_params *batt) memcpy(&batt_new, batt, sizeof(*batt)); batt_new.flags = 0; - if (sb_read(SB_TEMPERATURE, &batt_new.temperature) - && fake_temperature < 0) + if (sb_read(SB_TEMPERATURE, &batt_new.temperature) && + fake_temperature < 0) batt_new.flags |= BATT_FLAG_BAD_TEMPERATURE; /* If temperature is faked, override with faked data */ if (fake_temperature >= 0) batt_new.temperature = fake_temperature; - if (sb_read(SB_RELATIVE_STATE_OF_CHARGE, &batt_new.state_of_charge) - && fake_state_of_charge < 0) + if (sb_read(SB_RELATIVE_STATE_OF_CHARGE, &batt_new.state_of_charge) && + fake_state_of_charge < 0) batt_new.flags |= BATT_FLAG_BAD_STATE_OF_CHARGE; if (sb_read(SB_VOLTAGE, &batt_new.voltage)) @@ -455,7 +454,7 @@ void battery_get_params(struct batt_params *batt) batt_new.flags |= BATT_FLAG_IMBALANCED_CELL; #endif -#if defined(CONFIG_BATTERY_PRESENT_CUSTOM) || \ +#if defined(CONFIG_BATTERY_PRESENT_CUSTOM) || \ defined(CONFIG_BATTERY_PRESENT_GPIO) /* Hardware can tell us for certain */ batt_new.is_present = battery_is_present(); @@ -471,23 +470,20 @@ void battery_get_params(struct batt_params *batt) * Charging allowed if both desired voltage and current are nonzero * and battery isn't full (and we read them all correctly). */ - if (!(batt_new.flags & (BATT_FLAG_BAD_DESIRED_VOLTAGE | - BATT_FLAG_BAD_DESIRED_CURRENT | - BATT_FLAG_BAD_STATE_OF_CHARGE)) && + if (!(batt_new.flags & + (BATT_FLAG_BAD_DESIRED_VOLTAGE | BATT_FLAG_BAD_DESIRED_CURRENT | + BATT_FLAG_BAD_STATE_OF_CHARGE)) && #ifdef CONFIG_BATTERY_REQUESTS_NIL_WHEN_DEAD - /* - * TODO (crosbug.com/p/29467): remove this workaround - * for dead battery that requests no voltage/current - */ - ((batt_new.desired_voltage && - batt_new.desired_current && - batt_new.state_of_charge < BATTERY_LEVEL_FULL) || - (batt_new.desired_voltage == 0 && - batt_new.desired_current == 0 && - batt_new.state_of_charge == 0))) + /* + * TODO (crosbug.com/p/29467): remove this workaround + * for dead battery that requests no voltage/current + */ + ((batt_new.desired_voltage && batt_new.desired_current && + batt_new.state_of_charge < BATTERY_LEVEL_FULL) || + (batt_new.desired_voltage == 0 && batt_new.desired_current == 0 && + batt_new.state_of_charge == 0))) #else - batt_new.desired_voltage && - batt_new.desired_current && + batt_new.desired_voltage && batt_new.desired_current && batt_new.state_of_charge < BATTERY_LEVEL_FULL) #endif batt_new.flags |= BATT_FLAG_WANT_CHARGE; @@ -515,7 +511,7 @@ int battery_wait_for_stable(void) uint64_t wait_timeout = get_time().val + BATTERY_NO_RESPONSE_TIMEOUT; CPRINTS("Wait for battery stabilized during %d", - BATTERY_NO_RESPONSE_TIMEOUT); + BATTERY_NO_RESPONSE_TIMEOUT); while (get_time().val < wait_timeout) { /* Starting pinging battery */ if (battery_status(&status) == EC_SUCCESS) { @@ -530,7 +526,7 @@ int battery_wait_for_stable(void) } #if defined(CONFIG_CMD_BATTFAKE) -static int command_battfake(int argc, char **argv) +static int command_battfake(int argc, const char **argv) { char *e; int v; @@ -552,7 +548,7 @@ DECLARE_CONSOLE_COMMAND(battfake, command_battfake, "percent (-1 = use real level)", "Set fake battery level"); -static int command_batttempfake(int argc, char **argv) +static int command_batttempfake(int argc, const char **argv) { char *e; int t; @@ -571,13 +567,14 @@ static int command_batttempfake(int argc, char **argv) return EC_SUCCESS; } -DECLARE_CONSOLE_COMMAND(batttempfake, command_batttempfake, - "temperature (-1 = use real temperature)", - "Set fake battery temperature in deciKelvin (2731 = 273.1 K = 0 deg C)"); +DECLARE_CONSOLE_COMMAND( + batttempfake, command_batttempfake, + "temperature (-1 = use real temperature)", + "Set fake battery temperature in deciKelvin (2731 = 273.1 K = 0 deg C)"); #endif #ifdef CONFIG_CMD_BATT_MFG_ACCESS -static int command_batt_mfg_access_read(int argc, char **argv) +static int command_batt_mfg_access_read(int argc, const char **argv) { char *e; uint8_t data[32]; @@ -643,8 +640,7 @@ host_command_sb_read_word(struct host_cmd_handler_args *args) return EC_RES_SUCCESS; } -DECLARE_HOST_COMMAND(EC_CMD_SB_READ_WORD, - host_command_sb_read_word, +DECLARE_HOST_COMMAND(EC_CMD_SB_READ_WORD, host_command_sb_read_word, EC_VER_MASK(0)); static enum ec_status @@ -661,8 +657,7 @@ host_command_sb_write_word(struct host_cmd_handler_args *args) return EC_RES_SUCCESS; } -DECLARE_HOST_COMMAND(EC_CMD_SB_WRITE_WORD, - host_command_sb_write_word, +DECLARE_HOST_COMMAND(EC_CMD_SB_WRITE_WORD, host_command_sb_write_word, EC_VER_MASK(0)); static enum ec_status @@ -672,10 +667,8 @@ host_command_sb_read_block(struct host_cmd_handler_args *args) const struct ec_params_sb_rd *p = args->params; struct ec_response_sb_rd_block *r = args->response; - if ((p->reg != SB_MANUFACTURER_NAME) && - (p->reg != SB_DEVICE_NAME) && - (p->reg != SB_DEVICE_CHEMISTRY) && - (p->reg != SB_MANUFACTURER_DATA)) + if ((p->reg != SB_MANUFACTURER_NAME) && (p->reg != SB_DEVICE_NAME) && + (p->reg != SB_DEVICE_CHEMISTRY) && (p->reg != SB_MANUFACTURER_DATA)) return EC_RES_INVALID_PARAM; rv = sb_read_string(p->reg, r->data, 32); if (rv) @@ -685,8 +678,7 @@ host_command_sb_read_block(struct host_cmd_handler_args *args) return EC_RES_SUCCESS; } -DECLARE_HOST_COMMAND(EC_CMD_SB_READ_BLOCK, - host_command_sb_read_block, +DECLARE_HOST_COMMAND(EC_CMD_SB_READ_BLOCK, host_command_sb_read_block, EC_VER_MASK(0)); static enum ec_status @@ -695,8 +687,7 @@ host_command_sb_write_block(struct host_cmd_handler_args *args) /* Not implemented */ return EC_RES_INVALID_COMMAND; } -DECLARE_HOST_COMMAND(EC_CMD_SB_WRITE_BLOCK, - host_command_sb_write_block, +DECLARE_HOST_COMMAND(EC_CMD_SB_WRITE_BLOCK, host_command_sb_write_block, EC_VER_MASK(0)); #endif @@ -707,8 +698,8 @@ test_mockable int sb_i2c_test_read(int cmd, int *param) int rv; if (cmd == SB_DEVICE_CHEMISTRY) { - rv = battery_device_chemistry(chemistry, - sizeof(CONFIG_BATTERY_DEVICE_CHEMISTRY)); + rv = battery_device_chemistry( + chemistry, sizeof(CONFIG_BATTERY_DEVICE_CHEMISTRY)); if (rv) return rv; if (strcasecmp(chemistry, CONFIG_BATTERY_DEVICE_CHEMISTRY)) @@ -718,7 +709,6 @@ test_mockable int sb_i2c_test_read(int cmd, int *param) return EC_SUCCESS; } - return sb_read(cmd, param); } |