diff mbox series

[1/8] dt-bindings: power: supply: Add DT schema for Qualcomm SMBCHG

Message ID 20220808073459.396278-2-y.oudjana@protonmail.com
State New
Headers show
Series power: supply: Add driver for Qualcomm SMBCHG | expand

Commit Message

Yassine Oudjana Aug. 8, 2022, 7:34 a.m. UTC
From: Yassine Oudjana <y.oudjana@protonmail.com>

Add DT schema for the switch-mode battery charger found on Qualcomm
PMICs such as PMI8994. Due to lack of documentation, some interrupt
descriptions might be inaccurate.

Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
---
 .../bindings/power/supply/qcom,smbchg.yaml    | 205 ++++++++++++++++++
 MAINTAINERS                                   |   8 +
 2 files changed, 213 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml

Comments

Krzysztof Kozlowski Aug. 8, 2022, 8:42 a.m. UTC | #1
On 08/08/2022 10:34, Yassine Oudjana wrote:
> From: Yassine Oudjana <y.oudjana@protonmail.com>
> 
> Add DT schema for the switch-mode battery charger found on Qualcomm
> PMICs such as PMI8994. Due to lack of documentation, some interrupt
> descriptions might be inaccurate.
> 
> Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
> ---
>  .../bindings/power/supply/qcom,smbchg.yaml    | 205 ++++++++++++++++++
>  MAINTAINERS                                   |   8 +
>  2 files changed, 213 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml
> 
> diff --git a/Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml b/Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml
> new file mode 100644
> index 000000000000..d825a9c10b3e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml
> @@ -0,0 +1,205 @@
> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/power/supply/qcom,smbchg.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm PMIC Switch-Mode Battery Charger
> +
> +maintainers:
> +  - Yassine Oudjana <y.oudjana@protonmail.com>
> +  - Alejandro Tafalla <atafalla@dnyon.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,pmi8994-smbchg
> +      - qcom,pmi8996-smbchg
> +
> +  reg:
> +    maxItems: 1
> +
> +  monitored-battery:
> +    description: |
> +      phandle of battery characteristics node.
> +      The charger uses the following properties:
> +      - charge-term-current-microamp
> +      - constant-charge-current-max-microamp
> +      - voltage-max-design-microvolt
> +      The constant-charge-current-max-microamp and voltage-max-design-microvolt
> +      properties must be set.
> +      See Documentation/devicetree/bindings/power/supply/battery.yaml
> +
> +  interrupts:
> +    items:
> +      - description: Charger error
> +      - description: Charger inhibited
> +      - description: Charger precharge safety timer timeout
> +      - description: Charger charge safety timer timeout
> +      - description: Charger pre to fast charging switch threshold reached
> +      - description: Charger recharge threshold reached
> +      - description: Charger taper threshold reached
> +      - description: Charger charge termination threshold reached
> +      - description: Battery hot
> +      - description: Battery warm
> +      - description: Battery cold
> +      - description: Battery cool
> +      - description: Battery overvoltage
> +      - description: Battery low
> +      - description: Battery missing
> +      - description: Battery thermistor missing # unconfirmed
> +      - description: USB input undervolt
> +      - description: USB input overvolt
> +      - description: USB input source detected
> +      - description: OTG regulator failure
> +      - description: OTG regulator overcurrent
> +      - description: Automatic input current limiting done
> +      - description: USB ID pin changed
> +      - description: DC input undervolt
> +      - description: DC input overvolt
> +      - description: Power OK
> +      - description: Temperature shutdown
> +      - description: Watchdog timeout
> +      - description: Flash failure
> +      - description: OTST2 # unknown
> +      - description: OTST3 # unknown

It seems you listed register interrupts, not physical pins. This should
be interrupt lines.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml b/Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml
new file mode 100644
index 000000000000..d825a9c10b3e
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml
@@ -0,0 +1,205 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/supply/qcom,smbchg.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm PMIC Switch-Mode Battery Charger
+
+maintainers:
+  - Yassine Oudjana <y.oudjana@protonmail.com>
+  - Alejandro Tafalla <atafalla@dnyon.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pmi8994-smbchg
+      - qcom,pmi8996-smbchg
+
+  reg:
+    maxItems: 1
+
+  monitored-battery:
+    description: |
+      phandle of battery characteristics node.
+      The charger uses the following properties:
+      - charge-term-current-microamp
+      - constant-charge-current-max-microamp
+      - voltage-max-design-microvolt
+      The constant-charge-current-max-microamp and voltage-max-design-microvolt
+      properties must be set.
+      See Documentation/devicetree/bindings/power/supply/battery.yaml
+
+  interrupts:
+    items:
+      - description: Charger error
+      - description: Charger inhibited
+      - description: Charger precharge safety timer timeout
+      - description: Charger charge safety timer timeout
+      - description: Charger pre to fast charging switch threshold reached
+      - description: Charger recharge threshold reached
+      - description: Charger taper threshold reached
+      - description: Charger charge termination threshold reached
+      - description: Battery hot
+      - description: Battery warm
+      - description: Battery cold
+      - description: Battery cool
+      - description: Battery overvoltage
+      - description: Battery low
+      - description: Battery missing
+      - description: Battery thermistor missing # unconfirmed
+      - description: USB input undervolt
+      - description: USB input overvolt
+      - description: USB input source detected
+      - description: OTG regulator failure
+      - description: OTG regulator overcurrent
+      - description: Automatic input current limiting done
+      - description: USB ID pin changed
+      - description: DC input undervolt
+      - description: DC input overvolt
+      - description: Power OK
+      - description: Temperature shutdown
+      - description: Watchdog timeout
+      - description: Flash failure
+      - description: OTST2 # unknown
+      - description: OTST3 # unknown
+
+  interrupt-names:
+    items:
+      - const: chg-error
+      - const: chg-inhibit
+      - const: chg-prechg-sft
+      - const: chg-complete-chg-sft
+      - const: chg-p2f-thr
+      - const: chg-rechg-thr
+      - const: chg-taper-thr
+      - const: chg-tcc-thr
+      - const: batt-hot
+      - const: batt-warm
+      - const: batt-cold
+      - const: batt-cool
+      - const: batt-ov
+      - const: batt-low
+      - const: batt-missing
+      - const: batt-term-missing
+      - const: usbin-uv
+      - const: usbin-ov
+      - const: usbin-src-det
+      - const: otg-fail
+      - const: otg-oc
+      - const: aicl-done
+      - const: usbid-change
+      - const: dcin-uv
+      - const: dcin-ov
+      - const: power-ok
+      - const: temp-shutdown
+      - const: wdog-timeout
+      - const: flash-fail
+      - const: otst2
+      - const: otst3
+
+  otg-vbus:
+    type: object
+
+    description:
+      OTG regulator subnode.
+
+required:
+  - compatible
+  - reg
+  - monitored-battery
+  - interrupts
+  - interrupt-names
+  - otg-vbus
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    battery: battery {
+        compatible = "simple-battery";
+
+        charge-full-design-microamp-hours = <4070000>;
+        charge-term-current-microamp = <100000>;
+        voltage-min-design-microvolt = <3400000>;
+        voltage-max-design-microvolt = <4400000>;
+    };
+
+    pmic {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        charger@1000 {
+            compatible = "qcom,pmi8996-smbchg";
+            reg = <0x1000>;
+
+            interrupts = <0x2 0x10 0x0 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x10 0x1 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x10 0x2 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x10 0x3 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x10 0x4 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x10 0x5 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x10 0x6 IRQ_TYPE_EDGE_RISING>,
+                         <0x2 0x10 0x7 IRQ_TYPE_EDGE_RISING>,
+                         <0x2 0x12 0x0 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x1 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x3 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x4 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x5 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x6 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x12 0x7 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x13 0x0 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x13 0x1 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x13 0x2 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x13 0x3 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x13 0x4 IRQ_TYPE_EDGE_RISING>,
+                         <0x2 0x13 0x5 IRQ_TYPE_EDGE_RISING>,
+                         <0x2 0x13 0x6 IRQ_TYPE_EDGE_FALLING>,
+                         <0x2 0x14 0x0 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x14 0x1 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x16 0x0 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x16 0x1 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x16 0x2 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x16 0x3 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x16 0x4 IRQ_TYPE_EDGE_BOTH>,
+                         <0x2 0x16 0x5 IRQ_TYPE_EDGE_BOTH>;
+            interrupt-names = "chg-error",
+                              "chg-inhibit",
+                              "chg-prechg-sft",
+                              "chg-complete-chg-sft",
+                              "chg-p2f-thr",
+                              "chg-rechg-thr",
+                              "chg-taper-thr",
+                              "chg-tcc-thr",
+                              "batt-hot",
+                              "batt-warm",
+                              "batt-cold",
+                              "batt-cool",
+                              "batt-ov",
+                              "batt-low",
+                              "batt-missing",
+                              "batt-term-missing",
+                              "usbin-uv",
+                              "usbin-ov",
+                              "usbin-src-det",
+                              "otg-fail",
+                              "otg-oc",
+                              "aicl-done",
+                              "usbid-change",
+                              "dcin-uv",
+                              "dcin-ov",
+                              "power-ok",
+                              "temp-shutdown",
+                              "wdog-timeout",
+                              "flash-fail",
+                              "otst2",
+                              "otst3";
+
+            monitored-battery = <&battery>;
+
+            otg-vbus { };
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 3796fd700727..7e9f5893c0eb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16951,6 +16951,14 @@  F:	Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst
 F:	drivers/net/ethernet/qualcomm/rmnet/
 F:	include/linux/if_rmnet.h
 
+QUALCOMM SMBCHG DRIVER
+M:	Yassine Oudjana <y.oudjana@protonmail.com>
+M:	Alejandro Tafalla <atafalla@dnyon.com>
+L:	linux-pm@vger.kernel.org
+L:	linux-arm-msm@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml
+
 QUALCOMM TSENS THERMAL DRIVER
 M:	Amit Kucheria <amitk@kernel.org>
 M:	Thara Gopinath <thara.gopinath@gmail.com>