From: Yassine Oudjana <y.oudjana@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> --- .../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@xxxxxxxxxxxxxx> + - Alejandro Tafalla <atafalla@xxxxxxxxx> + +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@xxxxxxxxxxxxxx> +M: Alejandro Tafalla <atafalla@xxxxxxxxx> +L: linux-pm@xxxxxxxxxxxxxxx +L: linux-arm-msm@xxxxxxxxxxxxxxx +S: Maintained +F: Documentation/devicetree/bindings/power/supply/qcom,smbchg.yaml + QUALCOMM TSENS THERMAL DRIVER M: Amit Kucheria <amitk@xxxxxxxxxx> M: Thara Gopinath <thara.gopinath@xxxxxxxxx> -- 2.37.1