# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/power/supply/summit,smb347-charger.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Battery charger driver for SMB345, SMB347 and SMB358 maintainers: - David Heidelberg - Dmitry Osipenko properties: compatible: enum: - summit,smb345 - summit,smb347 - summit,smb358 reg: maxItems: 1 interrupts: maxItems: 1 monitored-battery: description: phandle to the battery node $ref: /schemas/types.yaml#/definitions/phandle summit,enable-usb-charging: type: boolean description: Enable charging through USB. summit,enable-otg-charging: type: boolean description: Provide power for USB OTG summit,enable-mains-charging: type: boolean description: Enable charging through mains summit,enable-charge-control: description: Enable charging control $ref: /schemas/types.yaml#/definitions/uint32 enum: - 0 # SMB3XX_CHG_ENABLE_SW SW (I2C interface) - 1 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW Pin control (Active Low) - 2 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH Pin control (Active High) summit,fast-voltage-threshold-microvolt: description: Voltage threshold to transit to fast charge mode (in uV) minimum: 2400000 maximum: 3000000 summit,mains-current-limit-microamp: description: Maximum input current from AC/DC input (in uA) summit,usb-current-limit-microamp: description: Maximum input current from USB input (in uA) summit,charge-current-compensation-microamp: description: Charge current compensation (in uA) summit,chip-temperature-threshold-celsius: description: Chip temperature for thermal regulation in °C. enum: [100, 110, 120, 130] summit,soft-compensation-method: description: Soft temperature limit compensation method $ref: /schemas/types.yaml#/definitions/uint32 enum: - 0 # SMB3XX_SOFT_TEMP_COMPENSATE_NONE Compensation none - 1 # SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT Current compensation - 2 # SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE Voltage compensation summit,inok-polarity: description: | Polarity of INOK signal indicating presence of external power supply. $ref: /schemas/types.yaml#/definitions/uint32 enum: - 0 # SMB3XX_SYSOK_INOK_ACTIVE_LOW - 1 # SMB3XX_SYSOK_INOK_ACTIVE_HIGH usb-vbus: $ref: /schemas/regulator/regulator.yaml# type: object properties: summit,needs-inok-toggle: type: boolean description: INOK signal is fixed and polarity needs to be toggled in order to enable/disable output mode. unevaluatedProperties: false allOf: - if: properties: compatible: enum: - summit,smb345 - summit,smb358 then: properties: summit,mains-current-limit-microamp: enum: [ 300000, 500000, 700000, 1000000, 1500000, 1800000, 2000000] summit,usb-current-limit-microamp: enum: [ 300000, 500000, 700000, 1000000, 1500000, 1800000, 2000000] summit,charge-current-compensation-microamp: enum: [200000, 450000, 600000, 900000] else: properties: summit,mains-current-limit-microamp: enum: [ 300000, 500000, 700000, 900000, 1200000, 1500000, 1800000, 2000000, 2200000, 2500000] summit,usb-current-limit-microamp: enum: [ 300000, 500000, 700000, 900000, 1200000, 1500000, 1800000, 2000000, 2200000, 2500000] summit,charge-current-compensation-microamp: enum: [250000, 700000, 900000, 1200000] required: - compatible - reg anyOf: - required: - summit,enable-usb-charging - required: - summit,enable-otg-charging - required: - summit,enable-mains-charging additionalProperties: false examples: - | #include i2c { #address-cells = <1>; #size-cells = <0>; charger@7f { compatible = "summit,smb347"; reg = <0x7f>; summit,enable-charge-control = ; summit,inok-polarity = ; summit,chip-temperature-threshold-celsius = <110>; summit,mains-current-limit-microamp = <2000000>; summit,usb-current-limit-microamp = <500000>; summit,enable-usb-charging; summit,enable-mains-charging; monitored-battery = <&battery>; usb-vbus { regulator-name = "usb_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-min-microamp = <750000>; regulator-max-microamp = <750000>; summit,needs-inok-toggle; }; }; }; battery: battery-cell { compatible = "simple-battery"; constant-charge-current-max-microamp = <1800000>; operating-range-celsius = <0 45>; alert-celsius = <3 42>; };