Re: [PATCH 1/4] dt-bindings: hwmon: Add qcom,bcl-hwmon yaml bindings

From: Manaf Meethalavalappu Pallikunhi

Date: Thu Feb 12 2026 - 15:25:13 EST


Hi Krzysztof,


On 2/6/2026 1:39 PM, Krzysztof Kozlowski wrote:
On Fri, Feb 06, 2026 at 02:44:05AM +0530, Manaf Meethalavalappu Pallikunhi wrote:
Add devicetree binding documentation for Qualcomm PMIC Battery Current
Subject - You almost hit bingo of what not to do. You miss the third one.
When you hit the bingo, get in touch for a beer.

And before, read the docs, because this was repeated SO MANY TIMES.
Sure, I will update in next revision


Limiting (BCL) hardware monitor. The BCL hardware provides monitoring
and alarm functionality for battery overcurrent and battery/system
under voltage conditions.

Signed-off-by: Manaf Meethalavalappu Pallikunhi <manaf.pallikunhi@xxxxxxxxxxxxxxxx>
---
.../devicetree/bindings/hwmon/qcom,bcl-hwmon.yaml | 128 +++++++++++++++++++++
1 file changed, 128 insertions(+)

diff --git a/Documentation/devicetree/bindings/hwmon/qcom,bcl-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/qcom,bcl-hwmon.yaml
new file mode 100644
index 000000000000..a0e8eaf13eec
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/qcom,bcl-hwmon.yaml
@@ -0,0 +1,128 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/qcom,bcl-hwmon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SPMI PMIC Battery Current Limiting (BCL) Hardware Monitor
+
+maintainers:
+ - Manaf Meethalavalappu Pallikunhi <manaf.pallikunhi@xxxxxxxxxxxxxxxx>
+
+description: |
Do not need '|' unless you need to preserve formatting.
ACK

+ SPMI PMIC Battery Current Limiting (BCL) hardware provides monitoring and
+ alarm functionality for battery overcurrent and battery or system under
+ voltage conditions. It monitors battery voltage and current, and
+ can trigger interrupts when configurable thresholds are exceeded.
+
+properties:
+ compatible:
+ oneOf:
+ - description: v1 based BCL
+ items:
+ - enum:
+ - qcom,pm7250b-bcl
+ - qcom,pm8250b-bcl
+ - const: qcom,bcl-v1
Drop all bcl fallbacks. Pointless, incorrect and misleading.
ACK

+
+ - description: v2 based BCL
+ items:
+ - enum:
+ - qcom,pm8350b-bcl
+ - qcom,pm8350c-bcl
+ - const: qcom,bcl-v2
+
+ - description: v3 bmx based BCL
+ items:
+ - enum:
+ - qcom,pm8550b-bcl
+ - qcom,pm7550ba-bcl
+ - const: qcom,bcl-v3-bmx
+
+ - description: v3 core based BCL
+ items:
+ - enum:
+ - qcom,pm8550-bc0l
+ - qcom,pm7550-bcl
+ - const: qcom,bcl-v3-core
+
+ - description: v3 wb based BCL
+ items:
+ - enum:
+ - qcom,pmw5100-bcl
+ - const: qcom,bcl-v3-wb
+
+ - description: v4 bmx based BCL
+ items:
+ - enum:
+ - qcom,pmih010-bcl
+ - const: qcom,bcl-v4-bmx
+
+ - description: v4 bmx with different scale based BCL
+ items:
+ - enum:
+ - qcom,pmv010-bcl
+ - const: qcom,bcl-v4-pmv010
+
+ - description: v4 core based BCL
+ items:
+ - enum:
+ - qcom,pmh010-bcl
+ - const: qcom,bcl-v4-core
+
+ - description: v4 wb based BCL
+ items:
+ - enum:
+ - qcom,pmw6100-bcl
+ - const: qcom,bcl-v4-wb
I really do not get what you are expressing here but all this is wrong.

+
+ reg:
+ maxItems: 1
+ description: BCL base address in the SPMI PMIC register map
Bus defines it. Drop descrip=tion.
ACK

+
+ interrupts:
+ minItems: 2
Drop.
ACK

+ maxItems: 2
+ description:
+ BCL alarm interrupts for different threshold levels
Drop
ACK

+
+ interrupt-names:
+ items:
+ - const: bcl-max-min
+ - const: bcl-critical
Drop bcl
ACK

+
+ overcurrent-thresholds-milliamp:
+ description:
+ Current thresholds in milliamperes for the two configurable current
+ alarm levels (max and critical). These values are used to override
+ default thresholds if a platform has different battery ocp specification.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
No, please read basic guides or presentations about DT bindings. The
suffix already defines this.
ACK

+ minItems: 2
+ maxItems: 2
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - interrupt-names
+
+unevaluatedProperties: false
You did not bother to read the docs prior to posting this.

You are supposed to do internal review first. Did it happen? I checked
and cannot find anything. It's not acceptable to use the community
instead of your internal review.

NAK
My understanding is, it is optional. I will send v2 for internal review.

+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ pmic {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bcl@1d00 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).

ACK, Will use  node name as  sensor

Thanks,

Manaf


Best regards,
Krzysztof