* Re: [PATCH 0/3] power: supply: max17040: report charging status from a gpio-charger
[not found] <20261108144548.190622-1-huggek@klattorp.se>
@ 2026-11-08 15:09 ` Hugo Karlsson
2026-11-08 15:20 ` Svyatoslav Ryhel
0 siblings, 1 reply; 3+ messages in thread
From: Hugo Karlsson @ 2026-11-08 15:09 UTC (permalink / raw)
To: sre; +Cc: linux-pm, matheus, me, krzk, m.szyprowski, linux-kernel, clamor95
Adding the other MAX17040 reviewers, LKML, and Svyatoslav as the
author of the commit in the Fixes: tag, whom I missed when sending.
Sorry for the noise.
//Hugo
On 08/11/2026 15:45, Hugo Karlsson wrote:
> Hi,
>
> I work on OpenFlight [1], an open-source golf launch monitor built on a
> Raspberry Pi 5 with a Geekworm X1202 UPS board. The board pairs a
> MAX1704x fuel gauge at I2C address 0x36 with a GPIO that is high while
> input power is present.
>
> With the gauge and a gpio-charger described in DT and linked by
> power-supplies, the battery still always reports status "Unknown", and
> capacity reads above 100 when the cell is full (103 here). Desktop
> battery indicators then show the wrong state, so we have been shipping
> a patched taskbar plugin to work around it.
>
> Patch 1 passes the device fwnode to the power supply core. Without it,
> power-supplies is never parsed, so the supplier status lookup added in
> commit f4b782af61ae never finds a supplier.
>
> Patch 2 covers suppliers that only report "online", such as a
> gpio-charger without a charge-status GPIO: the status is derived from
> power_supply_am_i_supplied(), and the battery now sends a change event
> when its supplier changes.
>
> Patch 3 clamps the reported capacity to 100.
>
> The series is based on for-next. I tested it on a Raspberry Pi 5 with an
> X1202, on rpi-6.18.y (6.18.50), where max17040_battery.c only differs
> in the style of the i2c_device_id table:
>
> stock driver: status Unknown, capacity 103
> on mains at 100 %: Full, capacity 100
> unplugged: Discharging
> plugged in at 98 %: Charging
>
> The battery's uevent follows the charger's within 1 ms.
>
> Related changes for the same boards, for context:
> - Raspberry Pi overlay that links the gauge to the charger [2]
> - Raspberry Pi OS taskbar battery plugin reading capacity [3]
>
> The patches and changelogs were written with Claude Code
> (claude-opus-5-5) from my description of the problem. I reviewed them
> and did the hardware testing above.
>
> [1] https://github.com/open-flight/openflight
> [2] https://github.com/raspberrypi/linux/pull/7744
> [3] https://github.com/raspberrypi-ui/pplug-batt/pull/17
>
> Thanks,
> Hugo
>
> Hugo Karlsson (3):
> power: supply: max17040: pass the device fwnode to the power supply
> core
> power: supply: max17040: derive status from an online supplier
> power: supply: max17040: clamp the reported capacity to 100 %
>
> drivers/power/supply/max17040_battery.c | 28 +++++++++++++++++++++++--
> 1 file changed, 26 insertions(+), 2 deletions(-)
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 0/3] power: supply: max17040: report charging status from a gpio-charger
2026-11-08 15:09 ` [PATCH 0/3] power: supply: max17040: report charging status from a gpio-charger Hugo Karlsson
@ 2026-11-08 15:20 ` Svyatoslav Ryhel
2026-11-08 15:44 ` Hugo Karlsson
0 siblings, 1 reply; 3+ messages in thread
From: Svyatoslav Ryhel @ 2026-11-08 15:20 UTC (permalink / raw)
To: Hugo Karlsson
Cc: sre, linux-pm, matheus, me, krzk, m.szyprowski, linux-kernel
нд, 8 лист. 2026 р. о 17:09 Hugo Karlsson <huggek@klattorp.se> пише:
>
> Adding the other MAX17040 reviewers, LKML, and Svyatoslav as the
> author of the commit in the Fixes: tag, whom I missed when sending.
> Sorry for the noise.
>
I do not see your patches on https://lore.kernel.org/lkml/
> //Hugo
>
> On 08/11/2026 15:45, Hugo Karlsson wrote:
> > Hi,
> >
> > I work on OpenFlight [1], an open-source golf launch monitor built on a
> > Raspberry Pi 5 with a Geekworm X1202 UPS board. The board pairs a
> > MAX1704x fuel gauge at I2C address 0x36 with a GPIO that is high while
> > input power is present.
> >
> > With the gauge and a gpio-charger described in DT and linked by
> > power-supplies, the battery still always reports status "Unknown", and
> > capacity reads above 100 when the cell is full (103 here). Desktop
> > battery indicators then show the wrong state, so we have been shipping
> > a patched taskbar plugin to work around it.
> >
> > Patch 1 passes the device fwnode to the power supply core. Without it,
> > power-supplies is never parsed, so the supplier status lookup added in
> > commit f4b782af61ae never finds a supplier.
> >
> > Patch 2 covers suppliers that only report "online", such as a
> > gpio-charger without a charge-status GPIO: the status is derived from
> > power_supply_am_i_supplied(), and the battery now sends a change event
> > when its supplier changes.
> >
> > Patch 3 clamps the reported capacity to 100.
> >
> > The series is based on for-next. I tested it on a Raspberry Pi 5 with an
> > X1202, on rpi-6.18.y (6.18.50), where max17040_battery.c only differs
> > in the style of the i2c_device_id table:
> >
> > stock driver: status Unknown, capacity 103
> > on mains at 100 %: Full, capacity 100
> > unplugged: Discharging
> > plugged in at 98 %: Charging
> >
> > The battery's uevent follows the charger's within 1 ms.
> >
> > Related changes for the same boards, for context:
> > - Raspberry Pi overlay that links the gauge to the charger [2]
> > - Raspberry Pi OS taskbar battery plugin reading capacity [3]
> >
> > The patches and changelogs were written with Claude Code
> > (claude-opus-5-5) from my description of the problem. I reviewed them
> > and did the hardware testing above.
> >
> > [1] https://github.com/open-flight/openflight
> > [2] https://github.com/raspberrypi/linux/pull/7744
> > [3] https://github.com/raspberrypi-ui/pplug-batt/pull/17
> >
> > Thanks,
> > Hugo
> >
> > Hugo Karlsson (3):
> > power: supply: max17040: pass the device fwnode to the power supply
> > core
> > power: supply: max17040: derive status from an online supplier
> > power: supply: max17040: clamp the reported capacity to 100 %
> >
> > drivers/power/supply/max17040_battery.c | 28 +++++++++++++++++++++++--
> > 1 file changed, 26 insertions(+), 2 deletions(-)
> >
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 0/3] power: supply: max17040: report charging status from a gpio-charger
2026-11-08 15:20 ` Svyatoslav Ryhel
@ 2026-11-08 15:44 ` Hugo Karlsson
0 siblings, 0 replies; 3+ messages in thread
From: Hugo Karlsson @ 2026-11-08 15:44 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: sre, linux-pm, matheus, me, krzk, m.szyprowski, linux-kernel
Thanks, I've resent the series with LKML:
https://lore.kernel.org/lkml/20261108154241.198160-1-huggek@klattorp.se/
//Hugo, completely new on the sending side of mailing lists
On 08/11/2026 16:20, Svyatoslav Ryhel wrote:
> нд, 8 лист. 2026 р. о 17:09 Hugo Karlsson <huggek@klattorp.se> пише:
>> Adding the other MAX17040 reviewers, LKML, and Svyatoslav as the
>> author of the commit in the Fixes: tag, whom I missed when sending.
>> Sorry for the noise.
>>
> I do not see your patches on https://lore.kernel.org/lkml/
>
>> //Hugo
>>
>> On 08/11/2026 15:45, Hugo Karlsson wrote:
>>> Hi,
>>>
>>> I work on OpenFlight [1], an open-source golf launch monitor built on a
>>> Raspberry Pi 5 with a Geekworm X1202 UPS board. The board pairs a
>>> MAX1704x fuel gauge at I2C address 0x36 with a GPIO that is high while
>>> input power is present.
>>>
>>> With the gauge and a gpio-charger described in DT and linked by
>>> power-supplies, the battery still always reports status "Unknown", and
>>> capacity reads above 100 when the cell is full (103 here). Desktop
>>> battery indicators then show the wrong state, so we have been shipping
>>> a patched taskbar plugin to work around it.
>>>
>>> Patch 1 passes the device fwnode to the power supply core. Without it,
>>> power-supplies is never parsed, so the supplier status lookup added in
>>> commit f4b782af61ae never finds a supplier.
>>>
>>> Patch 2 covers suppliers that only report "online", such as a
>>> gpio-charger without a charge-status GPIO: the status is derived from
>>> power_supply_am_i_supplied(), and the battery now sends a change event
>>> when its supplier changes.
>>>
>>> Patch 3 clamps the reported capacity to 100.
>>>
>>> The series is based on for-next. I tested it on a Raspberry Pi 5 with an
>>> X1202, on rpi-6.18.y (6.18.50), where max17040_battery.c only differs
>>> in the style of the i2c_device_id table:
>>>
>>> stock driver: status Unknown, capacity 103
>>> on mains at 100 %: Full, capacity 100
>>> unplugged: Discharging
>>> plugged in at 98 %: Charging
>>>
>>> The battery's uevent follows the charger's within 1 ms.
>>>
>>> Related changes for the same boards, for context:
>>> - Raspberry Pi overlay that links the gauge to the charger [2]
>>> - Raspberry Pi OS taskbar battery plugin reading capacity [3]
>>>
>>> The patches and changelogs were written with Claude Code
>>> (claude-opus-5-5) from my description of the problem. I reviewed them
>>> and did the hardware testing above.
>>>
>>> [1] https://github.com/open-flight/openflight
>>> [2] https://github.com/raspberrypi/linux/pull/7744
>>> [3] https://github.com/raspberrypi-ui/pplug-batt/pull/17
>>>
>>> Thanks,
>>> Hugo
>>>
>>> Hugo Karlsson (3):
>>> power: supply: max17040: pass the device fwnode to the power supply
>>> core
>>> power: supply: max17040: derive status from an online supplier
>>> power: supply: max17040: clamp the reported capacity to 100 %
>>>
>>> drivers/power/supply/max17040_battery.c | 28 +++++++++++++++++++++++--
>>> 1 file changed, 26 insertions(+), 2 deletions(-)
>>>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-08 15:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20261108144548.190622-1-huggek@klattorp.se>
2026-11-08 15:09 ` [PATCH 0/3] power: supply: max17040: report charging status from a gpio-charger Hugo Karlsson
2026-11-08 15:20 ` Svyatoslav Ryhel
2026-11-08 15:44 ` Hugo Karlsson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®