summaryrefslogtreecommitdiff
path: root/driver/battery
diff options
context:
space:
mode:
Diffstat (limited to 'driver/battery')
-rw-r--r--driver/battery/bq27541.c2
-rw-r--r--driver/battery/bq27621_g1.c2
-rw-r--r--driver/battery/max17055.c6
-rw-r--r--driver/battery/max17055.h2
-rw-r--r--driver/battery/mm8013.c5
-rw-r--r--driver/battery/mm8013.h40
-rw-r--r--driver/battery/smart.c17
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)