Hi Nikolaus,
You need the patchset which enables this feature, which was delayed for further work. It's now ready...
https://patchwork.kernel.org/patch/9918947/ https://patchwork.kernel.org/patch/9918949/ https://patchwork.kernel.org/patch/9918951/ https://patchwork.kernel.org/patch/9918953/ https://patchwork.kernel.org/patch/9918955/
And flip the #if 0 protecting bq27421_dm_regs
I'd love to support that chip in this patchset if you can test non-default settings for all 3 options this week?
Thanks, Liam
On Tue, Aug 29, 2017 at 2:43 AM, H. Nikolaus Schaller hns@goldelico.com wrote:
Hi, I am trying to get this working on our bq27421.
But the only message I get is:
[ 6.086407] bq27xxx-battery 1-0055: data memory update not supported for chip
A little research shows that this message comes from
http://elixir.free-electrons.com/linux/v4.13-rc7/source/drivers/power/supply/bq27xxx_battery.c#L1279
So di->dm_regs is NULL.
But doing an fgrep for dm_regs shows no line of code where the pointer is set to a non-null value:
master hns$ fgrep -R dm_regs * drivers/power/supply/bq27xxx_battery.c: .class = (di)->dm_regs[i].subclass_id, \ drivers/power/supply/bq27xxx_battery.c: .block = (di)->dm_regs[i].offset / BQ27XXX_DM_SZ, \ drivers/power/supply/bq27xxx_battery.c: struct bq27xxx_dm_reg *reg = &di->dm_regs[reg_id]; drivers/power/supply/bq27xxx_battery.c: if (!di->dm_regs) { drivers/power/supply/bq27xxx_battery.c: max = di->dm_regs[BQ27XXX_DM_DESIGN_ENERGY].max; drivers/power/supply/bq27xxx_battery.c: max = di->dm_regs[BQ27XXX_DM_DESIGN_CAPACITY].max; drivers/power/supply/bq27xxx_battery.c: min = di->dm_regs[BQ27XXX_DM_TERMINATE_VOLTAGE].min; drivers/power/supply/bq27xxx_battery.c: max = di->dm_regs[BQ27XXX_DM_TERMINATE_VOLTAGE].max; Binary file drivers/power/supply/bq27xxx_battery.ko matches Binary file drivers/power/supply/bq27xxx_battery.o matches Binary file drivers/power/supply/bq27xxx_battery_i2c.ko matches Binary file drivers/power/supply/bq27xxx_battery_i2c.o matches include/linux/power/bq27xxx_battery.h: struct bq27xxx_dm_reg *dm_regs; master hns$
What am I doing wrong here?
BR and thanks, Nikolaus