Comment 1 by Nikolaus Schaller, Apr 18, 2016
Labels:
Device:Pyra, Device: GTA04A5
Comment 2 by Nikolaus Schaller, Apr 22, 2016
Labels:
Device:Pyra
Device:GTA04A5
Device:Pyra, Device: GTA04A5
Comment 3 by Nikolaus Schaller, Aug 9, 2016
Summary:
bq27xxx driver - reprogram design capacity from DT if needed
Comment 4 by Nikolaus Schaller, Nov 15, 2016
There is a code fragment that detects a discrepancy but does not yet reprogram the chip as described above: http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/ work/hns/power/bq27xxx
Comment 5 by Nikolaus Schaller, Jan 8, 2017
writing to the bus needs to extend the access_methods: http://lxr.free-electrons.com/source/include/linux/power/bq27xxx_batt ery.h#L32 and platform data (check if we really need this if only i2c devices can be re-programmed): http://lxr.free-electrons.com/source/drivers/w1/slaves/w1_bq27000.c#L 42 we certainly need to add a write_i2c function http://lxr.free-electrons.com/source/drivers/power/supply/bq27xxx_bat tery_i2c.c#L36
Labels:
Type:Enhancement
Type:Defect
Comment 6 by Nikolaus Schaller, Jan 13, 2017
Has been added to feature branch: http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/ work/hns/power/bq27xxx Unfortunately trying to bring the chip into programming mode fails: root@letux:~# dmesg|fgrep bq27 [ 6.586310] bq27xxx-battery 1-0055: support ver. 1.2.0 enabled [ 6.595440] bq27xxx-battery 1-0055: mismatch in battery capacity: 1340000 instead of 6000000 [ 6.595446] bq27xxx_battery_i2c_write 00 8000 => wr 0x00 0x00 0x80 [2] [ 6.595836] bq27xxx_battery_i2c_write 00 8000 => wr 0x00 0x00 0x80 [2] [ 6.596509] bq27xxx_battery_i2c_write 00 0013 => wr 0x00 0x13 0x00 [2] [ 7.610639] bq27xxx-battery 1-0055: unable to switch to programming mode (timeout) root@letux:~# Another thing not implemented is to check for a "battery" subnode which defines the battery capacity (and potentially other parameters).
Labels:
Device:GTA04A5
Status: Accepted
Owner: hns
Status: Accepted
Owner: hns
Comment 7 by Nikolaus Schaller, Jul 16, 2017
It seems as if a solution arrived upstream in 4.13-rc1: http://elixir.free-electrons.com/linux/v4.13-rc1/source/include/linux /power_supply.h#L302 For details and examples how to set up the DT see: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/co mmit/?id=e2517f3bb44b1ac3772858f4bca0be05d36f492d So we do no longer need to develop our own driver patches. Just need to update the DT.
Labels:
Priority:Medium
Priority:Critical
Comment 8 by Nikolaus Schaller, Jul 18, 2017
First rough test with letux-4.13-rc1 shows: bq27xxx-battery 1-0055: data memory update not supported for chip This comes because di->dm_regs == NULL. So something is wrong or missing. Mainly I do not understand how di->dm_regs is intended to be set. I have not found any code setting the pointer. Not even in linux-next.
Comment 9 by Grazvydas Ignotas, Aug 28, 2017
I've fixed the reprogramming itself, code available here: https://dev.pyra-handheld.com/notaz/pyra-kernel/commits/pyra-4.10 I can send it as patches, if needed.
Comment 10 by Nikolaus Schaller, Aug 29, 2017
Fixed with new 4.13-rc7 + patches from LKML: http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/ work/hns/power/bq27xxx-v2
Status:
Fixed
Sign in to reply to this comment.
Reported by Nikolaus Schaller, Apr 9, 2016