18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/power/supply/summit,smb347-charger.yaml#"
58c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Battery charger driver for SMB345, SMB347 and SMB358
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - David Heidelberg <david@ixit.cz>
118c2ecf20Sopenharmony_ci  - Dmitry Osipenko <digetx@gmail.com>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciproperties:
148c2ecf20Sopenharmony_ci  compatible:
158c2ecf20Sopenharmony_ci    enum:
168c2ecf20Sopenharmony_ci      - summit,smb345
178c2ecf20Sopenharmony_ci      - summit,smb347
188c2ecf20Sopenharmony_ci      - summit,smb358
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci  reg:
218c2ecf20Sopenharmony_ci    maxItems: 1
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  interrupts:
248c2ecf20Sopenharmony_ci    maxItems: 1
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  monitored-battery:
278c2ecf20Sopenharmony_ci    description: phandle to the battery node
288c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci  summit,enable-usb-charging:
318c2ecf20Sopenharmony_ci    type: boolean
328c2ecf20Sopenharmony_ci    description: Enable charging through USB.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  summit,enable-otg-charging:
358c2ecf20Sopenharmony_ci    type: boolean
368c2ecf20Sopenharmony_ci    description: Provide power for USB OTG
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  summit,enable-mains-charging:
398c2ecf20Sopenharmony_ci    type: boolean
408c2ecf20Sopenharmony_ci    description: Enable charging through mains
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci  summit,enable-charge-control:
438c2ecf20Sopenharmony_ci    description: Enable charging control
448c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
458c2ecf20Sopenharmony_ci    enum:
468c2ecf20Sopenharmony_ci      - 0 # SMB3XX_CHG_ENABLE_SW SW (I2C interface)
478c2ecf20Sopenharmony_ci      - 1 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW Pin control (Active Low)
488c2ecf20Sopenharmony_ci      - 2 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH Pin control (Active High)
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci  summit,fast-voltage-threshold-microvolt:
518c2ecf20Sopenharmony_ci    description: Voltage threshold to transit to fast charge mode (in uV)
528c2ecf20Sopenharmony_ci    minimum: 2400000
538c2ecf20Sopenharmony_ci    maximum: 3000000
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci  summit,mains-current-limit-microamp:
568c2ecf20Sopenharmony_ci    description: Maximum input current from AC/DC input (in uA)
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  summit,usb-current-limit-microamp:
598c2ecf20Sopenharmony_ci    description: Maximum input current from USB input (in uA)
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci  summit,charge-current-compensation-microamp:
628c2ecf20Sopenharmony_ci    description: Charge current compensation (in uA)
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci  summit,chip-temperature-threshold-celsius:
658c2ecf20Sopenharmony_ci    description: Chip temperature for thermal regulation in °C.
668c2ecf20Sopenharmony_ci    enum: [100, 110, 120, 130]
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci  summit,soft-compensation-method:
698c2ecf20Sopenharmony_ci    description: Soft temperature limit compensation method
708c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
718c2ecf20Sopenharmony_ci    enum:
728c2ecf20Sopenharmony_ci      - 0 # SMB3XX_SOFT_TEMP_COMPENSATE_NONE Compensation none
738c2ecf20Sopenharmony_ci      - 1 # SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT Current compensation
748c2ecf20Sopenharmony_ci      - 2 # SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE Voltage compensation
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciallOf:
778c2ecf20Sopenharmony_ci  - if:
788c2ecf20Sopenharmony_ci      properties:
798c2ecf20Sopenharmony_ci        compatible:
808c2ecf20Sopenharmony_ci          enum:
818c2ecf20Sopenharmony_ci            - summit,smb345
828c2ecf20Sopenharmony_ci            - summit,smb358
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci    then:
858c2ecf20Sopenharmony_ci      properties:
868c2ecf20Sopenharmony_ci        summit,mains-current-limit-microamp:
878c2ecf20Sopenharmony_ci          enum: [ 300000, 500000, 700000, 1000000,
888c2ecf20Sopenharmony_ci                  1500000, 1800000, 2000000]
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci        summit,usb-current-limit-microamp:
918c2ecf20Sopenharmony_ci          enum: [ 300000, 500000, 700000, 1000000,
928c2ecf20Sopenharmony_ci                  1500000, 1800000, 2000000]
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci        summit,charge-current-compensation-microamp:
958c2ecf20Sopenharmony_ci          enum: [200000, 450000, 600000, 900000]
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci    else:
988c2ecf20Sopenharmony_ci      properties:
998c2ecf20Sopenharmony_ci        summit,mains-current-limit-microamp:
1008c2ecf20Sopenharmony_ci          enum: [ 300000, 500000, 700000, 900000, 1200000,
1018c2ecf20Sopenharmony_ci                  1500000, 1800000, 2000000, 2200000, 2500000]
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci        summit,usb-current-limit-microamp:
1048c2ecf20Sopenharmony_ci          enum: [ 300000, 500000, 700000, 900000, 1200000,
1058c2ecf20Sopenharmony_ci                  1500000, 1800000, 2000000, 2200000, 2500000]
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci        summit,charge-current-compensation-microamp:
1088c2ecf20Sopenharmony_ci          enum: [250000, 700000, 900000, 1200000]
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_cirequired:
1118c2ecf20Sopenharmony_ci  - compatible
1128c2ecf20Sopenharmony_ci  - reg
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_cianyOf:
1158c2ecf20Sopenharmony_ci  - required:
1168c2ecf20Sopenharmony_ci      - summit,enable-usb-charging
1178c2ecf20Sopenharmony_ci  - required:
1188c2ecf20Sopenharmony_ci      - summit,enable-otg-charging
1198c2ecf20Sopenharmony_ci  - required:
1208c2ecf20Sopenharmony_ci      - summit,enable-mains-charging
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ciadditionalProperties: false
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ciexamples:
1258c2ecf20Sopenharmony_ci  - |
1268c2ecf20Sopenharmony_ci    #include <dt-bindings/power/summit,smb347-charger.h>
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci    i2c {
1298c2ecf20Sopenharmony_ci        #address-cells = <1>;
1308c2ecf20Sopenharmony_ci        #size-cells = <0>;
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci        charger@7f {
1338c2ecf20Sopenharmony_ci            compatible = "summit,smb347";
1348c2ecf20Sopenharmony_ci            reg = <0x7f>;
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci            summit,enable-charge-control = <SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH>;
1378c2ecf20Sopenharmony_ci            summit,chip-temperature-threshold-celsius = <110>;
1388c2ecf20Sopenharmony_ci            summit,mains-current-limit-microamp = <2000000>;
1398c2ecf20Sopenharmony_ci            summit,usb-current-limit-microamp = <500000>;
1408c2ecf20Sopenharmony_ci            summit,enable-usb-charging;
1418c2ecf20Sopenharmony_ci            summit,enable-mains-charging;
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci            monitored-battery = <&battery>;
1448c2ecf20Sopenharmony_ci        };
1458c2ecf20Sopenharmony_ci    };
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci    battery: battery-cell {
1488c2ecf20Sopenharmony_ci        compatible = "simple-battery";
1498c2ecf20Sopenharmony_ci        constant-charge-current-max-microamp = <1800000>;
1508c2ecf20Sopenharmony_ci        operating-range-celsius = <0 45>;
1518c2ecf20Sopenharmony_ci        alert-celsius = <3 42>;
1528c2ecf20Sopenharmony_ci    };
153