From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Manaf Meethalavalappu Pallikunhi
<manaf.pallikunhi@oss.qualcomm.com>,
Guenter Roeck <linux@roeck-us.net>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
amit.kucheria@oss.qualcomm.com,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>,
Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com>,
Sebastian Reichel <sre@kernel.org>
Cc: linux-hwmon@vger.kernel.org, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/4] arm64: dts: qcom: pm7250b: Enable Qualcomm BCL device
Date: Wed, 25 Feb 2026 12:47:47 +0100 [thread overview]
Message-ID: <5da495ce-9114-49da-82a2-0d9082a3e506@oss.qualcomm.com> (raw)
In-Reply-To: <cbfd429a-459a-481a-93b5-fc9204d9ca8c@oss.qualcomm.com>
On 2/24/26 7:35 PM, Manaf Meethalavalappu Pallikunhi wrote:
> Hi Konrad,
>
> On 2/19/2026 6:34 PM, Konrad Dybcio wrote:
>> On 2/19/26 12:34 PM, Manaf Meethalavalappu Pallikunhi wrote:
>>> Hi Konrad,
>>>
>>> On 2/16/2026 5:18 PM, Konrad Dybcio wrote:
>>>> On 2/13/26 12:55 PM, Manaf Meethalavalappu Pallikunhi wrote:
>>>>> Hi Konrad,
>>>>>
>>>>> On 2/6/2026 2:41 PM, Konrad Dybcio wrote:
>>>>>> On 2/5/26 10:14 PM, Manaf Meethalavalappu Pallikunhi wrote:
>>>>>>> Enable Qualcomm BCL hardware devicetree binding configuration
>>>>>>> for pm7250b.
>>>>>>>
>>>>>>> Signed-off-by: Manaf Meethalavalappu Pallikunhi <manaf.pallikunhi@oss.qualcomm.com>
>>>>>>> ---
>>>>>>> arch/arm64/boot/dts/qcom/pm7250b.dtsi | 10 ++++++++++
>>>>>>> 1 file changed, 10 insertions(+)
>>>>>>>
>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/pm7250b.dtsi b/arch/arm64/boot/dts/qcom/pm7250b.dtsi
>>>>>>> index 0761e6b5fd8d..69ad76831cde 100644
>>>>>>> --- a/arch/arm64/boot/dts/qcom/pm7250b.dtsi
>>>>>>> +++ b/arch/arm64/boot/dts/qcom/pm7250b.dtsi
>>>>>>> @@ -202,6 +202,16 @@ pm7250b_gpios: gpio@c000 {
>>>>>>> interrupt-controller;
>>>>>>> #interrupt-cells = <2>;
>>>>>>> };
>>>>>>> +
>>>>>>> + bcl@1d00 {
>>>>>>> + compatible = "qcom,pm7250b-bcl", "qcom,bcl-v1";
>>>>>>> + reg = <0x1d00>;
>>>>>>> + interrupts = <PM7250B_SID 0x1d 0x0 IRQ_TYPE_EDGE_RISING>,
>>>>>>> + <PM7250B_SID 0x1d 0x1 IRQ_TYPE_EDGE_RISING>;
>>>>>>> + interrupt-names = "bcl-max-min",
>>>>>>> + "bcl-critical";
>>>>>> We should strip the "bcl-" prefix, since these interrupts happen
>>>>>> to be under the bcl device
>>>>> Ack
>>>>>>
>>>>>>> + overcurrent-thresholds-milliamp = <5500 6000>;
>>>>>> Is that something that we expect to change between boards, or is
>>>>>> that an electrical characteristic of the PM7250B?
>>>>> Yes, It can change based on battery used for that board as these thresholds will be close below battery OCP spec.
>>>>> It is not based on pmic spec. Max current threshold support for specific pmic bcl is taken care in driver pmic data.
>>>>
>>>> Okay, so this property must not live in the common PMIC DTSI then..
>>>
>>> Ack, I will move it into board file wherever it is required in next revision
>>>
>>>>
>>>> I think ideally this could be communicated over battmgr, since it already
>>>> has a lot of information about the battery that's currently connected to
>>>> the device. Do you think that would be reasonable? Would you know who we
>>>> could talk to internally?
>>>
>>> We are not adding any battery information here. This configuration is specifically for the BCL peripheral to monitor current and trigger an over‑current alarm. While the BCL settings are derived from battery specifications, they are not the same as the battery’s own limits,the BCL thresholds will always be set below the battery’s OCP specification.
>>> The intent of the BCL is to provide early detection of over‑current or under‑voltage conditions, notify the SoC/peripherals, and allow corrective action before the system ever reaches the battery’s actual protection limits.
>>
>> Right, but as you say they are derived from the battery spec, I would
>> guesstimate it's something like "90% max current", so swapping out different
>> batteries for the same device could potentially affect this value. Since we
>
> No, there is no predefined equation to derive these values directly from the battery specifications. The actual limits depend on multiple factors, including the underlying mitigation support available on the board for different components (fast path/slow path), the peak‑current use cases defined for that board, the battery characteristics etc. Simply swapping the battery will not automatically make it work. These parameters must be carefully tuned and configured.
What I had in mind is that if a battery is dual- (or more-) sourced for a
given device by a given vendor, they could perform all that tuning and then
store the data alongside other battery configuration that they presumably
already are required to include in battmgr for all of the specific battery
types they intend to support
> I discussed this with the internal battery manager driver team, and they mentioned that the power‑supply framework does not expose any discharging current spec details. Typically, only charging‑current–related information is provided.
Right, but the power-supply framework happens to be open-source, so if that
would be worth implementing, I think the maintainers would certainly be open
to having that discussion (+Sebastian)
> For some modern battery use cases, these configurations must also be adjusted dynamically based on factors such as ambient temperature and battery state of charge. The driver already supports this through the hwmon sysfs interface, allowing these values to be overridden at runtime.
One could assume that depends on (presumably) proprietary userspace and I
would imagine it'd be generally preferred to keep as much charging infra as
possible inside the kernel (or even better, in some battle-tested FW).
Konrad
next prev parent reply other threads:[~2026-02-25 11:47 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-05 21:14 [PATCH 0/4] hwmon: Add Qualcomm PMIC BCL hardware monitor driver Manaf Meethalavalappu Pallikunhi
2026-02-05 21:14 ` [PATCH 1/4] dt-bindings: hwmon: Add qcom,bcl-hwmon yaml bindings Manaf Meethalavalappu Pallikunhi
2026-02-06 8:09 ` Krzysztof Kozlowski
2026-02-12 20:24 ` Manaf Meethalavalappu Pallikunhi
2026-02-06 9:08 ` Dmitry Baryshkov
2026-02-12 20:41 ` Manaf Meethalavalappu Pallikunhi
2026-02-06 9:08 ` Konrad Dybcio
2026-02-13 6:04 ` Manaf Meethalavalappu Pallikunhi
2026-02-13 10:41 ` Konrad Dybcio
2026-02-13 12:00 ` Manaf Meethalavalappu Pallikunhi
2026-02-05 21:14 ` [PATCH 2/4] hwmon: Add Qualcomm PMIC BCL hardware monitor driver Manaf Meethalavalappu Pallikunhi
2026-02-06 8:12 ` Krzysztof Kozlowski
2026-02-13 6:21 ` Manaf Meethalavalappu Pallikunhi
2026-02-06 9:27 ` Konrad Dybcio
2026-02-06 9:38 ` Krzysztof Kozlowski
2026-02-13 9:42 ` Manaf Meethalavalappu Pallikunhi
2026-02-13 10:55 ` Konrad Dybcio
2026-02-06 13:24 ` Bjorn Andersson
2026-02-13 11:38 ` Manaf Meethalavalappu Pallikunhi
2026-02-08 1:27 ` kernel test robot
2026-03-20 14:52 ` Daniel Lezcano
2026-03-20 15:22 ` Guenter Roeck
2026-03-20 16:08 ` Daniel Lezcano
2026-03-20 16:59 ` Guenter Roeck
2026-03-20 17:23 ` Daniel Lezcano
2026-04-17 18:08 ` Manaf Meethalavalappu Pallikunhi
2026-04-17 18:01 ` Manaf Meethalavalappu Pallikunhi
2026-02-05 21:14 ` [PATCH 3/4] arm64: dts: qcom: pm7250b: Enable Qualcomm BCL device Manaf Meethalavalappu Pallikunhi
2026-02-06 8:13 ` Krzysztof Kozlowski
2026-02-13 11:44 ` Manaf Meethalavalappu Pallikunhi
2026-02-06 9:11 ` Konrad Dybcio
2026-02-13 11:55 ` Manaf Meethalavalappu Pallikunhi
2026-02-16 11:48 ` Konrad Dybcio
2026-02-19 11:34 ` Manaf Meethalavalappu Pallikunhi
2026-02-19 13:04 ` Konrad Dybcio
2026-02-24 18:35 ` Manaf Meethalavalappu Pallikunhi
2026-02-25 11:47 ` Konrad Dybcio [this message]
2026-02-06 9:11 ` Konrad Dybcio
2026-02-13 11:56 ` Manaf Meethalavalappu Pallikunhi
2026-02-05 21:14 ` [PATCH 4/4] arm64: dts: qcom: pm8350c: " Manaf Meethalavalappu Pallikunhi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5da495ce-9114-49da-82a2-0d9082a3e506@oss.qualcomm.com \
--to=konrad.dybcio@oss.qualcomm.com \
--cc=amit.kucheria@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=gaurav.kohli@oss.qualcomm.com \
--cc=kamal.wadhwa@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=manaf.pallikunhi@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=sre@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox