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

Manaf Meethalavalappu Pallikunhi
2026-02-05T21:15:01Z

Add devicetree binding documentation for Qualcomm PMIC Battery Current
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@oss.qualcomm.com>
---
.../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@oss.qualcomm.com>
+
+description: |
+ 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
+
+ - 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
+
+ reg:
+ maxItems: 1
+ description: BCL base address in the SPMI PMIC register map
+
+ interrupts:
+ minItems: 2
+ maxItems: 2
+ description:
+ BCL alarm interrupts for different threshold levels
+
+ interrupt-names:
+ items:
+ - const: bcl-max-min
+ - const: bcl-critical
+
+ 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
+ minItems: 2
+ maxItems: 2
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - interrupt-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ pmic {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bcl@1d00 {
+ compatible = "qcom,pm7250b-bcl", "qcom,bcl-v1";
+ reg = <0x1d00>;
+ interrupts = <0x2 0x1d 0x0 IRQ_TYPE_EDGE_RISING>,
+ <0x2 0x1d 0x1 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "bcl-max-min",
+ "bcl-critical";
+ overcurrent-thresholds-milliamp = <5500 6000>;
+ };
+ };

--
2.43.0