Re: [PATCH v3 3/3] arm64: dts: qcom: sdm845-oneplus: use generic fuel gauge compatible
From: Andrew Davis
Date: Fri Sep 11 2026 - 09:46:28 EST
On 9/11/26 3:21 AM, Krzysztof Kozlowski wrote:
On Thu, Sep 10, 2026 at 02:47:44AM +0300, Rinat Muhamedgaliev wrote:
OnePlus 6 and OnePlus 6T battery packs may contain either a TI
bq27411 or bq27541 fuel gauge. Use the generic ti,bq27xxx compatible
so the driver can select the register map from DeviceType at probe
time.
Tested on OnePlus 6T (fajita) with a bq27541 (DeviceType 0x0541):
after booting the new kernel, the battery reported 4.360 V, 100% state
of charge, 27.8 C, and Full status.
Fixes: 12dfb002ca01 ("arm64: dts: qcom: sdm845-oneplus-*: add fuel gauge")
What is the bug here? Your commit msg should be specific about it.
Commit msg seems pretty clear about the bug (to me at least), the DT
says the fuel gauge is a BQ27411 but that isn't the case, some shipped
with a BQ27541 fuel gauge.
(I do agree though this shouldn't have a fixes tag as back-porting this
without also back-porting the driver-side change would break users)
Since these fuel gauges often live on the battery pack and not the
device itself, folks changing their batteries might end up with
different fuel gauges, so having some detection method is going to
be helpful.
Rinat,
I'm not familiar with the bootflow on these devices, but is this something
you could detect in the bootloader and fixup the DT before it is passed
to kernel? That way the kernel gets a DT with the correct and specific
compatible to start with?
Andrew
Signed-off-by: Rinat Muhamedgaliev <rinat.muhamedgaliev@xxxxxxxxx>
---
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 4 ++--
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts | 2 +-
arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index 948a0dd..8c5cd94 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -790,8 +790,8 @@ &i2c10 {
status = "okay";
clock-frequency = <100000>;
- bq27441_fg: bq27441-battery@55 {
- compatible = "ti,bq27411";
+ bq27xxx_fg: fuel-gauge@55 {
+ compatible = "ti,bq27xxx";
And this is just breaking all users without any explanation.
status = "okay";
reg = <0x55>;
};
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
index 5f01115..cf40842 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
@@ -44,7 +44,7 @@ main_cam_ois: main-cam-ois-regulator {
};
};
-&bq27441_fg {
+&bq27xxx_fg {
No, irrelevant to the supposed bug here.
Best regards,
Krzysztof