Message ID | 20170122071404.9654-6-matt@ranostay.consulting (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Hi, I queued this into power-supply's for-next branch. I fixed up the patch subject & description: power: supply: bq27xxx: add BQ27425 chip id This fixes over- & undertemperature detection of BQ27425. -- Sebastian On Sat, Jan 21, 2017 at 11:14:01PM -0800, Matt Ranostay wrote: > Signed-off-by: Matt Ranostay <matt@ranostay.consulting> > --- > drivers/power/supply/bq27xxx_battery.c | 23 ++++++++++++++++++++++- > drivers/power/supply/bq27xxx_battery_i2c.c | 2 +- > include/linux/power/bq27xxx_battery.h | 3 ++- > 3 files changed, 25 insertions(+), 3 deletions(-) > > diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c > index 398801a21b86..12ecea308186 100644 > --- a/drivers/power/supply/bq27xxx_battery.c > +++ b/drivers/power/supply/bq27xxx_battery.c > @@ -417,6 +417,25 @@ static u8 bq27xxx_regs[][BQ27XXX_REG_MAX] = { > [BQ27XXX_REG_DCAP] = 0x3c, > [BQ27XXX_REG_AP] = 0x18, > }, > + [BQ27425] = { > + [BQ27XXX_REG_CTRL] = 0x00, > + [BQ27XXX_REG_TEMP] = 0x02, > + [BQ27XXX_REG_INT_TEMP] = 0x1e, > + [BQ27XXX_REG_VOLT] = 0x04, > + [BQ27XXX_REG_AI] = 0x10, > + [BQ27XXX_REG_FLAGS] = 0x06, > + [BQ27XXX_REG_TTE] = INVALID_REG_ADDR, > + [BQ27XXX_REG_TTF] = INVALID_REG_ADDR, > + [BQ27XXX_REG_TTES] = INVALID_REG_ADDR, > + [BQ27XXX_REG_TTECP] = INVALID_REG_ADDR, > + [BQ27XXX_REG_NAC] = 0x08, > + [BQ27XXX_REG_FCC] = 0x0e, > + [BQ27XXX_REG_CYCT] = INVALID_REG_ADDR, > + [BQ27XXX_REG_AE] = INVALID_REG_ADDR, > + [BQ27XXX_REG_SOC] = 0x1c, > + [BQ27XXX_REG_DCAP] = 0x3c, > + [BQ27XXX_REG_AP] = 0x18, > + }, > }; > > static enum power_supply_property bq27000_battery_props[] = { > @@ -752,6 +771,7 @@ static struct { > BQ27XXX_PROP(BQ27541, bq27541_battery_props), > BQ27XXX_PROP(BQ27545, bq27545_battery_props), > BQ27XXX_PROP(BQ27421, bq27421_battery_props), > + BQ27XXX_PROP(BQ27425, bq27421_battery_props), > }; > > static DEFINE_MUTEX(bq27xxx_list_lock); > @@ -1015,6 +1035,7 @@ static bool bq27xxx_battery_overtemp(struct bq27xxx_device_info *di, u16 flags) > return flags & (BQ27XXX_FLAG_OTC | BQ27XXX_FLAG_OTD); > case BQ27530: > case BQ27421: > + case BQ27425: > return flags & BQ27XXX_FLAG_OT; > default: > return false; > @@ -1026,7 +1047,7 @@ static bool bq27xxx_battery_overtemp(struct bq27xxx_device_info *di, u16 flags) > */ > static bool bq27xxx_battery_undertemp(struct bq27xxx_device_info *di, u16 flags) > { > - if (di->chip == BQ27530 || di->chip == BQ27421) > + if (di->chip == BQ27530 || di->chip == BQ27421 || di->chip == BQ27425) > return flags & BQ27XXX_FLAG_UT; > > return false; > diff --git a/drivers/power/supply/bq27xxx_battery_i2c.c b/drivers/power/supply/bq27xxx_battery_i2c.c > index c68fbc3fe50a..2ea2d0b06948 100644 > --- a/drivers/power/supply/bq27xxx_battery_i2c.c > +++ b/drivers/power/supply/bq27xxx_battery_i2c.c > @@ -167,9 +167,9 @@ static const struct i2c_device_id bq27xxx_i2c_id_table[] = { > { "bq27742", BQ27541 }, > { "bq27545", BQ27545 }, > { "bq27421", BQ27421 }, > - { "bq27425", BQ27421 }, > { "bq27441", BQ27421 }, > { "bq27621", BQ27421 }, > + { "bq27425", BQ27425 }, > {}, > }; > MODULE_DEVICE_TABLE(i2c, bq27xxx_i2c_id_table); > diff --git a/include/linux/power/bq27xxx_battery.h b/include/linux/power/bq27xxx_battery.h > index b312bcef53da..3f265dbf11af 100644 > --- a/include/linux/power/bq27xxx_battery.h > +++ b/include/linux/power/bq27xxx_battery.h > @@ -17,7 +17,8 @@ enum bq27xxx_chip { > BQ27530, /* bq27530, bq27531 */ > BQ27541, /* bq27541, bq27542, bq27546, bq27742 */ > BQ27545, /* bq27545 */ > - BQ27421, /* bq27421, bq27425, bq27441, bq27621 */ > + BQ27421, /* bq27421, bq27441, bq27621 */ > + BQ27425, /* bq27425 */ > }; > > /** > -- > 2.10.2 >
On Sun, 2017-01-29 at 15:35:12, Sebastian Reichel wrote: >I queued this into power-supply's for-next branch. I fixed up >the patch subject & description: > >power: supply: bq27xxx: add BQ27425 chip id > >This fixes over- & undertemperature detection of BQ27425. This patch is not a bugfix, it just creates a chip id for use later in patchset. It probably should go in with the rest of the patches. Should we roll it into the main bq27xxx_battery.c patch? Also there is a cosmetic flaw in it. Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index 398801a21b86..12ecea308186 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -417,6 +417,25 @@ static u8 bq27xxx_regs[][BQ27XXX_REG_MAX] = { [BQ27XXX_REG_DCAP] = 0x3c, [BQ27XXX_REG_AP] = 0x18, }, + [BQ27425] = { + [BQ27XXX_REG_CTRL] = 0x00, + [BQ27XXX_REG_TEMP] = 0x02, + [BQ27XXX_REG_INT_TEMP] = 0x1e, + [BQ27XXX_REG_VOLT] = 0x04, + [BQ27XXX_REG_AI] = 0x10, + [BQ27XXX_REG_FLAGS] = 0x06, + [BQ27XXX_REG_TTE] = INVALID_REG_ADDR, + [BQ27XXX_REG_TTF] = INVALID_REG_ADDR, + [BQ27XXX_REG_TTES] = INVALID_REG_ADDR, + [BQ27XXX_REG_TTECP] = INVALID_REG_ADDR, + [BQ27XXX_REG_NAC] = 0x08, + [BQ27XXX_REG_FCC] = 0x0e, + [BQ27XXX_REG_CYCT] = INVALID_REG_ADDR, + [BQ27XXX_REG_AE] = INVALID_REG_ADDR, + [BQ27XXX_REG_SOC] = 0x1c, + [BQ27XXX_REG_DCAP] = 0x3c, + [BQ27XXX_REG_AP] = 0x18, + }, }; static enum power_supply_property bq27000_battery_props[] = { @@ -752,6 +771,7 @@ static struct { BQ27XXX_PROP(BQ27541, bq27541_battery_props), BQ27XXX_PROP(BQ27545, bq27545_battery_props), BQ27XXX_PROP(BQ27421, bq27421_battery_props), + BQ27XXX_PROP(BQ27425, bq27421_battery_props), }; static DEFINE_MUTEX(bq27xxx_list_lock); @@ -1015,6 +1035,7 @@ static bool bq27xxx_battery_overtemp(struct bq27xxx_device_info *di, u16 flags) return flags & (BQ27XXX_FLAG_OTC | BQ27XXX_FLAG_OTD); case BQ27530: case BQ27421: + case BQ27425: return flags & BQ27XXX_FLAG_OT; default: return false; @@ -1026,7 +1047,7 @@ static bool bq27xxx_battery_overtemp(struct bq27xxx_device_info *di, u16 flags) */ static bool bq27xxx_battery_undertemp(struct bq27xxx_device_info *di, u16 flags) { - if (di->chip == BQ27530 || di->chip == BQ27421) + if (di->chip == BQ27530 || di->chip == BQ27421 || di->chip == BQ27425) return flags & BQ27XXX_FLAG_UT; return false; diff --git a/drivers/power/supply/bq27xxx_battery_i2c.c b/drivers/power/supply/bq27xxx_battery_i2c.c index c68fbc3fe50a..2ea2d0b06948 100644 --- a/drivers/power/supply/bq27xxx_battery_i2c.c +++ b/drivers/power/supply/bq27xxx_battery_i2c.c @@ -167,9 +167,9 @@ static const struct i2c_device_id bq27xxx_i2c_id_table[] = { { "bq27742", BQ27541 }, { "bq27545", BQ27545 }, { "bq27421", BQ27421 }, - { "bq27425", BQ27421 }, { "bq27441", BQ27421 }, { "bq27621", BQ27421 }, + { "bq27425", BQ27425 }, {}, }; MODULE_DEVICE_TABLE(i2c, bq27xxx_i2c_id_table); diff --git a/include/linux/power/bq27xxx_battery.h b/include/linux/power/bq27xxx_battery.h index b312bcef53da..3f265dbf11af 100644 --- a/include/linux/power/bq27xxx_battery.h +++ b/include/linux/power/bq27xxx_battery.h @@ -17,7 +17,8 @@ enum bq27xxx_chip { BQ27530, /* bq27530, bq27531 */ BQ27541, /* bq27541, bq27542, bq27546, bq27742 */ BQ27545, /* bq27545 */ - BQ27421, /* bq27421, bq27425, bq27441, bq27621 */ + BQ27421, /* bq27421, bq27441, bq27621 */ + BQ27425, /* bq27425 */ }; /**
Signed-off-by: Matt Ranostay <matt@ranostay.consulting> --- drivers/power/supply/bq27xxx_battery.c | 23 ++++++++++++++++++++++- drivers/power/supply/bq27xxx_battery_i2c.c | 2 +- include/linux/power/bq27xxx_battery.h | 3 ++- 3 files changed, 25 insertions(+), 3 deletions(-)