diff options
-rw-r--r-- | driver/charger/bq24773.c | 18 | ||||
-rw-r--r-- | driver/charger/bq24773.h | 15 |
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 |