162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/power/supply/summit,smb347-charger.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Battery charger driver for SMB345, SMB347 and SMB358 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - David Heidelberg <david@ixit.cz> 1162306a36Sopenharmony_ci - Dmitry Osipenko <digetx@gmail.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciproperties: 1462306a36Sopenharmony_ci compatible: 1562306a36Sopenharmony_ci enum: 1662306a36Sopenharmony_ci - summit,smb345 1762306a36Sopenharmony_ci - summit,smb347 1862306a36Sopenharmony_ci - summit,smb358 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci reg: 2162306a36Sopenharmony_ci maxItems: 1 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci interrupts: 2462306a36Sopenharmony_ci maxItems: 1 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci monitored-battery: 2762306a36Sopenharmony_ci description: phandle to the battery node 2862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci summit,enable-usb-charging: 3162306a36Sopenharmony_ci type: boolean 3262306a36Sopenharmony_ci description: Enable charging through USB. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci summit,enable-otg-charging: 3562306a36Sopenharmony_ci type: boolean 3662306a36Sopenharmony_ci description: Provide power for USB OTG 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci summit,enable-mains-charging: 3962306a36Sopenharmony_ci type: boolean 4062306a36Sopenharmony_ci description: Enable charging through mains 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci summit,enable-charge-control: 4362306a36Sopenharmony_ci description: Enable charging control 4462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 4562306a36Sopenharmony_ci enum: 4662306a36Sopenharmony_ci - 0 # SMB3XX_CHG_ENABLE_SW SW (I2C interface) 4762306a36Sopenharmony_ci - 1 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW Pin control (Active Low) 4862306a36Sopenharmony_ci - 2 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH Pin control (Active High) 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci summit,fast-voltage-threshold-microvolt: 5162306a36Sopenharmony_ci description: Voltage threshold to transit to fast charge mode (in uV) 5262306a36Sopenharmony_ci minimum: 2400000 5362306a36Sopenharmony_ci maximum: 3000000 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci summit,mains-current-limit-microamp: 5662306a36Sopenharmony_ci description: Maximum input current from AC/DC input (in uA) 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci summit,usb-current-limit-microamp: 5962306a36Sopenharmony_ci description: Maximum input current from USB input (in uA) 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci summit,charge-current-compensation-microamp: 6262306a36Sopenharmony_ci description: Charge current compensation (in uA) 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci summit,chip-temperature-threshold-celsius: 6562306a36Sopenharmony_ci description: Chip temperature for thermal regulation in °C. 6662306a36Sopenharmony_ci enum: [100, 110, 120, 130] 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci summit,soft-compensation-method: 6962306a36Sopenharmony_ci description: Soft temperature limit compensation method 7062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7162306a36Sopenharmony_ci enum: 7262306a36Sopenharmony_ci - 0 # SMB3XX_SOFT_TEMP_COMPENSATE_NONE Compensation none 7362306a36Sopenharmony_ci - 1 # SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT Current compensation 7462306a36Sopenharmony_ci - 2 # SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE Voltage compensation 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci summit,inok-polarity: 7762306a36Sopenharmony_ci description: | 7862306a36Sopenharmony_ci Polarity of INOK signal indicating presence of external power supply. 7962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8062306a36Sopenharmony_ci enum: 8162306a36Sopenharmony_ci - 0 # SMB3XX_SYSOK_INOK_ACTIVE_LOW 8262306a36Sopenharmony_ci - 1 # SMB3XX_SYSOK_INOK_ACTIVE_HIGH 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci usb-vbus: 8562306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 8662306a36Sopenharmony_ci type: object 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci properties: 8962306a36Sopenharmony_ci summit,needs-inok-toggle: 9062306a36Sopenharmony_ci type: boolean 9162306a36Sopenharmony_ci description: INOK signal is fixed and polarity needs to be toggled 9262306a36Sopenharmony_ci in order to enable/disable output mode. 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci unevaluatedProperties: false 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ciallOf: 9762306a36Sopenharmony_ci - if: 9862306a36Sopenharmony_ci properties: 9962306a36Sopenharmony_ci compatible: 10062306a36Sopenharmony_ci enum: 10162306a36Sopenharmony_ci - summit,smb345 10262306a36Sopenharmony_ci - summit,smb358 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci then: 10562306a36Sopenharmony_ci properties: 10662306a36Sopenharmony_ci summit,mains-current-limit-microamp: 10762306a36Sopenharmony_ci enum: [ 300000, 500000, 700000, 1000000, 10862306a36Sopenharmony_ci 1500000, 1800000, 2000000] 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci summit,usb-current-limit-microamp: 11162306a36Sopenharmony_ci enum: [ 300000, 500000, 700000, 1000000, 11262306a36Sopenharmony_ci 1500000, 1800000, 2000000] 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci summit,charge-current-compensation-microamp: 11562306a36Sopenharmony_ci enum: [200000, 450000, 600000, 900000] 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci else: 11862306a36Sopenharmony_ci properties: 11962306a36Sopenharmony_ci summit,mains-current-limit-microamp: 12062306a36Sopenharmony_ci enum: [ 300000, 500000, 700000, 900000, 1200000, 12162306a36Sopenharmony_ci 1500000, 1800000, 2000000, 2200000, 2500000] 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci summit,usb-current-limit-microamp: 12462306a36Sopenharmony_ci enum: [ 300000, 500000, 700000, 900000, 1200000, 12562306a36Sopenharmony_ci 1500000, 1800000, 2000000, 2200000, 2500000] 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci summit,charge-current-compensation-microamp: 12862306a36Sopenharmony_ci enum: [250000, 700000, 900000, 1200000] 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_cirequired: 13162306a36Sopenharmony_ci - compatible 13262306a36Sopenharmony_ci - reg 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_cianyOf: 13562306a36Sopenharmony_ci - required: 13662306a36Sopenharmony_ci - summit,enable-usb-charging 13762306a36Sopenharmony_ci - required: 13862306a36Sopenharmony_ci - summit,enable-otg-charging 13962306a36Sopenharmony_ci - required: 14062306a36Sopenharmony_ci - summit,enable-mains-charging 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ciadditionalProperties: false 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ciexamples: 14562306a36Sopenharmony_ci - | 14662306a36Sopenharmony_ci #include <dt-bindings/power/summit,smb347-charger.h> 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci i2c { 14962306a36Sopenharmony_ci #address-cells = <1>; 15062306a36Sopenharmony_ci #size-cells = <0>; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci charger@7f { 15362306a36Sopenharmony_ci compatible = "summit,smb347"; 15462306a36Sopenharmony_ci reg = <0x7f>; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci summit,enable-charge-control = <SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH>; 15762306a36Sopenharmony_ci summit,inok-polarity = <SMB3XX_SYSOK_INOK_ACTIVE_LOW>; 15862306a36Sopenharmony_ci summit,chip-temperature-threshold-celsius = <110>; 15962306a36Sopenharmony_ci summit,mains-current-limit-microamp = <2000000>; 16062306a36Sopenharmony_ci summit,usb-current-limit-microamp = <500000>; 16162306a36Sopenharmony_ci summit,enable-usb-charging; 16262306a36Sopenharmony_ci summit,enable-mains-charging; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci monitored-battery = <&battery>; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci usb-vbus { 16762306a36Sopenharmony_ci regulator-name = "usb_vbus"; 16862306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 16962306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 17062306a36Sopenharmony_ci regulator-min-microamp = <750000>; 17162306a36Sopenharmony_ci regulator-max-microamp = <750000>; 17262306a36Sopenharmony_ci summit,needs-inok-toggle; 17362306a36Sopenharmony_ci }; 17462306a36Sopenharmony_ci }; 17562306a36Sopenharmony_ci }; 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci battery: battery-cell { 17862306a36Sopenharmony_ci compatible = "simple-battery"; 17962306a36Sopenharmony_ci constant-charge-current-max-microamp = <1800000>; 18062306a36Sopenharmony_ci operating-range-celsius = <0 45>; 18162306a36Sopenharmony_ci alert-celsius = <3 42>; 18262306a36Sopenharmony_ci }; 183