summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver/charger/bq24773.c18
-rw-r--r--driver/charger/bq24773.h15
2 files changed, 19 insertions, 14 deletions
diff --git a/driver/charger/bq24773.c b/driver/charger/bq24773.c
index 23b9a1b428..0c79f8acca 100644
--- a/driver/charger/bq24773.c
+++ b/driver/charger/bq24773.c
@@ -197,16 +197,19 @@ int charger_post_init(void)
#ifndef BOARD_SAMUS
/* Turn off PROCHOT warning */
- rv = i2c_write8(I2C_PORT_CHARGER, BQ24773_ADDR,
- BQ24773_PROCHOT_OPTION1, 0);
+ rv = raw_read16(REG_PROCHOT_OPTION1, &option);
+ if (rv)
+ return rv;
+
+ option &= ~PROCHOT_OPTION1_SELECTOR_MASK;
+
+ rv = raw_write16(REG_PROCHOT_OPTION1, option);
#else
/* On Samus, use PROCHOT warning to detect charging problems */
/* Turn on PROCHOT warning */
- rv = i2c_write16(I2C_PORT_CHARGER, BQ24773_ADDR,
- BQ24773_PROCHOT_OPTION1, 0x8120);
+ rv = raw_write16(REG_PROCHOT_OPTION1, 0x8120);
/* Set PROCHOT ICRIT warning when IADP is >120% of IDPM */
- rv |= i2c_write16(I2C_PORT_CHARGER, BQ24773_ADDR,
- BQ24773_PROCHOT_OPTION0, 0x1b54);
+ rv |= raw_write16(REG_PROCHOT_OPTION0, 0x1b54);
#endif
if (rv)
@@ -214,8 +217,7 @@ int charger_post_init(void)
#ifdef CONFIG_CHARGER_ILIM_PIN_DISABLED
/* Read the external ILIM pin enabled flag. */
- rv = i2c_read16(I2C_PORT_CHARGER, BQ24773_ADDR,
- BQ24773_CHARGE_OPTION2, &option2);
+ rv = raw_read16(REG_CHARGE_OPTION2, &option2);
if (rv)
return rv;
diff --git a/driver/charger/bq24773.h b/driver/charger/bq24773.h
index 4e1e68a6b9..944ac2a814 100644
--- a/driver/charger/bq24773.h
+++ b/driver/charger/bq24773.h
@@ -19,8 +19,8 @@
#define BQ24770_CHARGE_OPTION0 0x12
#define BQ24770_CHARGE_OPTION1 0x3B
#define BQ24770_CHARGE_OPTION2 0x38
-#define BQ24770_PROTECT_OPTION0 0x3C
-#define BQ24770_PROTECT_OPTION1 0x3D
+#define BQ24770_PROCHOT_OPTION0 0x3C
+#define BQ24770_PROCHOT_OPTION1 0x3D
#define BQ24770_CHARGE_CURRENT 0x14
#define BQ24770_MAX_CHARGE_VOLTAGE 0x15
#define BQ24770_MIN_SYSTEM_VOLTAGE 0x3E
@@ -46,6 +46,9 @@
#define OPTION2_EN_EXTILIM (1 << 7)
+/* Prochot Option bits */
+#define PROCHOT_OPTION1_SELECTOR_MASK 0x7f /* [6:0] PROCHOT SELECTOR */
+
/* ChargeCurrent Register - 0x14 (mA) */
#define CHARGE_I_OFF 0
#define CHARGE_I_MIN 128
@@ -69,8 +72,8 @@
#define REG_CHARGE_OPTION0 BQ24770_CHARGE_OPTION0
#define REG_CHARGE_OPTION1 BQ24770_CHARGE_OPTION1
#define REG_CHARGE_OPTION2 BQ24770_CHARGE_OPTION2
- #define REG_PROTECT_OPTION0 BQ24770_PROTECT_OPTION0
- #define REG_PROTECT_OPTION1 BQ24770_PROTECT_OPTION1
+ #define REG_PROCHOT_OPTION0 BQ24770_PROCHOT_OPTION0
+ #define REG_PROCHOT_OPTION1 BQ24770_PROCHOT_OPTION1
#define REG_CHARGE_CURRENT BQ24770_CHARGE_CURRENT
#define REG_MAX_CHARGE_VOLTAGE BQ24770_MAX_CHARGE_VOLTAGE
#define REG_MIN_SYSTEM_VOLTAGE BQ24770_MIN_SYSTEM_VOLTAGE
@@ -85,8 +88,8 @@
#define REG_CHARGE_OPTION0 BQ24773_CHARGE_OPTION0
#define REG_CHARGE_OPTION1 BQ24773_CHARGE_OPTION1
#define REG_CHARGE_OPTION2 BQ24773_CHARGE_OPTION2
- #define REG_PROTECT_OPTION0 BQ24773_PROTECT_OPTION0
- #define REG_PROTECT_OPTION1 BQ24773_PROTECT_OPTION1
+ #define REG_PROCHOT_OPTION0 BQ24773_PROCHOT_OPTION0
+ #define REG_PROCHOT_OPTION1 BQ24773_PROCHOT_OPTION1
#define REG_CHARGE_CURRENT BQ24773_CHARGE_CURRENT
#define REG_MAX_CHARGE_VOLTAGE BQ24773_MAX_CHARGE_VOLTAGE
#define REG_MIN_SYSTEM_VOLTAGE BQ24773_MIN_SYSTEM_VOLTAGE