diff options
Diffstat (limited to 'driver/battery')
-rw-r--r-- | driver/battery/bq27541.c | 2 | ||||
-rw-r--r-- | driver/battery/bq27621_g1.c | 2 | ||||
-rw-r--r-- | driver/battery/max17055.c | 6 | ||||
-rw-r--r-- | driver/battery/max17055.h | 2 | ||||
-rw-r--r-- | driver/battery/mm8013.c | 5 | ||||
-rw-r--r-- | driver/battery/mm8013.h | 40 | ||||
-rw-r--r-- | driver/battery/smart.c | 17 |
7 files changed, 61 insertions, 13 deletions
diff --git a/driver/battery/bq27541.c b/driver/battery/bq27541.c index b01aef3714..13c7689e8b 100644 --- a/driver/battery/bq27541.c +++ b/driver/battery/bq27541.c @@ -12,7 +12,7 @@ #include "i2c.h" #include "util.h" -#define BQ27541_ADDR 0xaa +#define BQ27541_ADDR__7bf 0x55 #define BQ27541_TYPE_ID 0x0541 #define BQ27741_TYPE_ID 0x0741 #define BQ27742_TYPE_ID 0x0742 diff --git a/driver/battery/bq27621_g1.c b/driver/battery/bq27621_g1.c index 304fe67241..c242d54461 100644 --- a/driver/battery/bq27621_g1.c +++ b/driver/battery/bq27621_g1.c @@ -13,7 +13,7 @@ #include "util.h" #include "timer.h" -#define BQ27621_ADDR 0xaa +#define BQ27621_ADDR__7bf 0x55 #define BQ27621_TYPE_ID 0x0621 #define REG_CTRL 0x00 diff --git a/driver/battery/max17055.c b/driver/battery/max17055.c index d0e0124468..f11be99f96 100644 --- a/driver/battery/max17055.c +++ b/driver/battery/max17055.c @@ -65,12 +65,14 @@ static int fake_state_of_charge = -1; static int max17055_read(int offset, int *data) { - return i2c_read16(I2C_PORT_BATTERY, MAX17055_ADDR, offset, data); + return i2c_read16__7bf(I2C_PORT_BATTERY, MAX17055_ADDR__7bf, + offset, data); } static int max17055_write(int offset, int data) { - return i2c_write16(I2C_PORT_BATTERY, MAX17055_ADDR, offset, data); + return i2c_write16__7bf(I2C_PORT_BATTERY, MAX17055_ADDR__7bf, + offset, data); } /* Return 1 if the device id is correct. */ diff --git a/driver/battery/max17055.h b/driver/battery/max17055.h index 5a3764d9de..1e1c2e8c42 100644 --- a/driver/battery/max17055.h +++ b/driver/battery/max17055.h @@ -8,7 +8,7 @@ #ifndef __CROS_EC_MAX17055_H #define __CROS_EC_MAX17055_H -#define MAX17055_ADDR 0x6c +#define MAX17055_ADDR__7bf 0x36 #define MAX17055_DEVICE_ID 0x4010 #define REG_STATUS 0x00 diff --git a/driver/battery/mm8013.c b/driver/battery/mm8013.c index 012f3a25bd..87926553db 100644 --- a/driver/battery/mm8013.c +++ b/driver/battery/mm8013.c @@ -23,7 +23,7 @@ static int mm8013_read16(int offset, int *data) int rv; *data = 0; - rv = i2c_read16(I2C_PORT_BATTERY, MM8013_ADDR, offset, data); + rv = i2c_read16__7bf(I2C_PORT_BATTERY, MM8013_ADDR__7bf, offset, data); usleep(I2C_WAIT_TIME); if (rv) return rv; @@ -34,7 +34,8 @@ static int mm8013_read_block(int offset, uint8_t *data, int len) { int rv; - rv = i2c_read_block(I2C_PORT_BATTERY, MM8013_ADDR, offset, data, len); + rv = i2c_read_block__7bf(I2C_PORT_BATTERY, MM8013_ADDR__7bf, + offset, data, len); usleep(I2C_WAIT_TIME); if (rv) return rv; diff --git a/driver/battery/mm8013.h b/driver/battery/mm8013.h new file mode 100644 index 0000000000..5acdcdff68 --- /dev/null +++ b/driver/battery/mm8013.h @@ -0,0 +1,40 @@ +/* Copyright 2019 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Battery driver for MM8013. + */ + +#ifndef __CROS_EC_MM8013_H +#define __CROS_EC_MM8013_H + +#define MM8013_ADDR__7bf 0x55 + +#define REG_TEMPERATURE 0x06 +#define REG_VOLTAGE 0x08 +#define REG_FLAGS 0x0a +#define REG_FULL_CHARGE_CAPACITY 0x0e +#define REG_REMAINING_CAPACITY 0x10 +#define REG_AVERAGE_CURRENT 0x14 +#define REG_AVERAGE_TIME_TO_EMPTY 0x16 +#define REG_AVERAGE_TIME_TO_FULL 0x18 +#define REG_STATE_OF_CHARGE 0x2c +#define REG_CYCLE_COUNT 0x2a +#define REG_DESIGN_CAPACITY 0x3c +#define REG_PRODUCT_INFORMATION 0x64 + +/* Over Temperature in charge */ +#define MM8013_FLAG_OTC BIT(15) +/* Over Temperature in discharge */ +#define MM8013_FLAG_OTD BIT(14) +/* Over-charge */ +#define MM8013_FLAG_BATHI BIT(13) +/* Full Charge */ +#define MM8013_FLAG_FC BIT(9) +/* Charge allowed */ +#define MM8013_FLAG_CHG BIT(8) +/* Discharge */ +#define MM8013_FLAG_DSG BIT(0) + + +#endif /* __CROS_EC_MM8013_H */ diff --git a/driver/battery/smart.c b/driver/battery/smart.c index 7a47a93f19..d231ce6148 100644 --- a/driver/battery/smart.c +++ b/driver/battery/smart.c @@ -30,7 +30,9 @@ test_mockable int sb_read(int cmd, int *param) if (battery_is_cut_off()) return EC_RES_ACCESS_DENIED; #endif - return i2c_read16(I2C_PORT_BATTERY, BATTERY_ADDR, cmd, param); + + return i2c_read16__7bf(I2C_PORT_BATTERY, BATTERY_ADDR__7bf, + cmd, param); } test_mockable int sb_write(int cmd, int param) @@ -42,7 +44,9 @@ test_mockable int sb_write(int cmd, int param) if (battery_is_cut_off()) return EC_RES_ACCESS_DENIED; #endif - return i2c_write16(I2C_PORT_BATTERY, BATTERY_ADDR, cmd, param); + + return i2c_write16__7bf(I2C_PORT_BATTERY, BATTERY_ADDR__7bf, + cmd, param); } int sb_read_string(int offset, uint8_t *data, int len) @@ -54,8 +58,9 @@ int sb_read_string(int offset, uint8_t *data, int len) if (battery_is_cut_off()) return EC_RES_ACCESS_DENIED; #endif - return i2c_read_string(I2C_PORT_BATTERY, BATTERY_ADDR, - offset, data, len); + + return i2c_read_string__7bf(I2C_PORT_BATTERY, BATTERY_ADDR__7bf, + offset, data, len); } int sb_read_mfgacc(int cmd, int block, uint8_t *data, int len) @@ -99,8 +104,8 @@ int sb_write_block(int reg, const uint8_t *val, int len) #endif /* TODO: implement smbus_write_block. */ - return i2c_write_block(I2C_PORT_BATTERY, BATTERY_ADDR, reg, val, len); - + return i2c_write_block__7bf(I2C_PORT_BATTERY, BATTERY_ADDR__7bf, + reg, val, len); } int battery_get_mode(int *mode) |