Re: [PATCH v2 5/8] power: supply: qcom_battmgr: Add charge control support

From: Fenglin Wu
Date: Sun Jun 08 2025 - 22:39:56 EST



On 6/7/2025 5:46 PM, Konrad Dybcio wrote:
On 6/3/25 12:37 PM, Dmitry Baryshkov wrote:
On Tue, Jun 03, 2025 at 01:48:11PM +0800, Fenglin Wu wrote:
On 5/31/2025 6:36 PM, György Kurucz wrote:
Add charge control support for SM8550 and X1E80100.
Thank you for this, tested on my Lenovo Yoga Slim 7x, the limiting works
well, I finally don't have to worry about leaving my laptop plugged in
for too long.

One small thing I noticed is that after setting the sysfs values and
rebooting, they report 0 again. The limiting appears to stay in effect
though, so it seems that the firmware does keep the values, but Linux
does not read them back. Indeed, looking at the code, it seems that
actually reading back the values is only implemented for the SM8550.
Right.

Based on offline information, X1E80100 doesn't support reading back those
threshold values in battery management firmware, so I can only use the
cached values for sysfs read.
Which limits usablity of the attribute, it is now impossible to identify
whether it is enabled or disabled. Is there a chance of fixing that for
the X1E80100 platform?
Is there a chance we store that value in SDAM and can read it back?

Konrad

The thresholds are stored in PMIC SDAM registers by ADSP after receiving the set requests, and ADSP reads them back during initialization. This is why ADSP retains them upon device reboot.

I spoke with the battery management firmware team, and they have no plans to update the battery management firmware for X1E80100 further. Consequently, they cannot provide any interfaces to read these thresholds through PMIC Glink.

Reading them from the existing SDAM registers requires adding "nvmem-cells" DT properties to specify the SDAM registers. However, the "pmic_glink.power-supply" device is an auxiliary device created by the pmic_glink driver and does not have an associated DT node. Is there any method to create a DT node and add DT properties for an auxiliary device?