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

From: Krzysztof Kozlowski

Date: Fri Feb 06 2026 - 03:09:10 EST


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.


> 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.

> + 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.

> +
> + - 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.

> +
> + interrupts:
> + minItems: 2

Drop.

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

Drop

> +
> + interrupt-names:
> + items:
> + - const: bcl-max-min
> + - const: bcl-critical

Drop bcl

> +
> + 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.

> + 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

> +
> +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).

Best regards,
Krzysztof