[PATCH v8] bq27xxx: support interchangeable OnePlus 6/6T fuel gauges

From: Rinat Muhamedgaliev via B4 Relay

Date: Mon Oct 19 2026 - 15:09:20 EST


OnePlus 6 and 6T battery packs can contain either a bq27411 or a bq27541
fuel gauge. The two chips require different register maps.

The DeviceType check now lives in the bus-neutral battery core, where it
uses the existing register-map and control-register helpers. For bq27411
and bq27541, it compares the type selected by the compatible with the
reported type and chooses the detected profile.

Tested on a OnePlus 6T with DeviceType 0x0541 (bq27541): 4.338 V, 100%
capacity, 27.8 C, and Full/Good status. Testing on DeviceType 0x0421
(bq27411) hardware would be appreciated.

Changes in v8:
- Move DeviceType detection to the bus-neutral battery core.
- Use the existing register map and control-command definitions.
- Link to v7: https://patch.msgid.link/20261019-master-v7-0-a1fc488d9c77@xxxxxxxxx

Changes in v7:
- Determine the expected DeviceType through an extensible chip switch.
- Mark the probe-time list for extension with DeviceType-capable fuel gauges.
- Link to v6: https://patch.msgid.link/20261019-master-v6-0-c4b36129721e@xxxxxxxxx

Changes in v6:
- Compare the detected model with the compatible-selected model.
- Support both BQ27411-to-BQ27541 and BQ27541-to-BQ27411 detection.

Changes in v5:
- Report detected and expected DeviceType values instead of hard-coding chip names.
- Describe an unknown DeviceType as unrecognized.

Changes in v4:
- Drop the generic compatible and binding update.
- Keep the established OnePlus DTS unchanged.

---
Rinat Muhamedgaliev (1):
power: supply: bq27xxx: detect bq27541 behind bq27411 compatible

drivers/power/supply/bq27xxx_battery.c | 61 ++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
---
base-commit: 830b3c68c1fb1e9176028d02ef86f3cf76aa2476
change-id: 20260927-master-bd0afd9696ef

Best regards,
--
Rinat Muhamedgaliev <rinat.muhamedgaliev@xxxxxxxxx>