1*c1f90759SDavid Heidelberg# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c1f90759SDavid Heidelberg%YAML 1.2 3*c1f90759SDavid Heidelberg--- 4*c1f90759SDavid Heidelberg$id: "http://devicetree.org/schemas/power/supply/summit,smb347-charger.yaml#" 5*c1f90759SDavid Heidelberg$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6*c1f90759SDavid Heidelberg 7*c1f90759SDavid Heidelbergtitle: Battery charger driver for SMB345, SMB347 and SMB358 8*c1f90759SDavid Heidelberg 9*c1f90759SDavid Heidelbergmaintainers: 10*c1f90759SDavid Heidelberg - David Heidelberg <david@ixit.cz> 11*c1f90759SDavid Heidelberg - Dmitry Osipenko <digetx@gmail.com> 12*c1f90759SDavid Heidelberg 13*c1f90759SDavid Heidelbergproperties: 14*c1f90759SDavid Heidelberg compatible: 15*c1f90759SDavid Heidelberg enum: 16*c1f90759SDavid Heidelberg - summit,smb345 17*c1f90759SDavid Heidelberg - summit,smb347 18*c1f90759SDavid Heidelberg - summit,smb358 19*c1f90759SDavid Heidelberg 20*c1f90759SDavid Heidelberg reg: 21*c1f90759SDavid Heidelberg maxItems: 1 22*c1f90759SDavid Heidelberg 23*c1f90759SDavid Heidelberg interrupts: 24*c1f90759SDavid Heidelberg maxItems: 1 25*c1f90759SDavid Heidelberg 26*c1f90759SDavid Heidelberg monitored-battery: 27*c1f90759SDavid Heidelberg description: phandle to the battery node 28*c1f90759SDavid Heidelberg $ref: /schemas/types.yaml#/definitions/phandle 29*c1f90759SDavid Heidelberg 30*c1f90759SDavid Heidelberg summit,enable-usb-charging: 31*c1f90759SDavid Heidelberg type: boolean 32*c1f90759SDavid Heidelberg description: Enable charging through USB. 33*c1f90759SDavid Heidelberg 34*c1f90759SDavid Heidelberg summit,enable-otg-charging: 35*c1f90759SDavid Heidelberg type: boolean 36*c1f90759SDavid Heidelberg description: Provide power for USB OTG 37*c1f90759SDavid Heidelberg 38*c1f90759SDavid Heidelberg summit,enable-mains-charging: 39*c1f90759SDavid Heidelberg type: boolean 40*c1f90759SDavid Heidelberg description: Enable charging through mains 41*c1f90759SDavid Heidelberg 42*c1f90759SDavid Heidelberg summit,enable-charge-control: 43*c1f90759SDavid Heidelberg description: Enable charging control 44*c1f90759SDavid Heidelberg $ref: /schemas/types.yaml#/definitions/uint32 45*c1f90759SDavid Heidelberg enum: 46*c1f90759SDavid Heidelberg - 0 # SMB3XX_CHG_ENABLE_SW SW (I2C interface) 47*c1f90759SDavid Heidelberg - 1 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW Pin control (Active Low) 48*c1f90759SDavid Heidelberg - 2 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH Pin control (Active High) 49*c1f90759SDavid Heidelberg 50*c1f90759SDavid Heidelberg summit,fast-voltage-threshold-microvolt: 51*c1f90759SDavid Heidelberg description: Voltage threshold to transit to fast charge mode (in uV) 52*c1f90759SDavid Heidelberg minimum: 2400000 53*c1f90759SDavid Heidelberg maximum: 3000000 54*c1f90759SDavid Heidelberg 55*c1f90759SDavid Heidelberg summit,mains-current-limit-microamp: 56*c1f90759SDavid Heidelberg description: Maximum input current from AC/DC input (in uA) 57*c1f90759SDavid Heidelberg 58*c1f90759SDavid Heidelberg summit,usb-current-limit-microamp: 59*c1f90759SDavid Heidelberg description: Maximum input current from USB input (in uA) 60*c1f90759SDavid Heidelberg 61*c1f90759SDavid Heidelberg summit,charge-current-compensation-microamp: 62*c1f90759SDavid Heidelberg description: Charge current compensation (in uA) 63*c1f90759SDavid Heidelberg 64*c1f90759SDavid Heidelberg summit,chip-temperature-threshold-celsius: 65*c1f90759SDavid Heidelberg description: Chip temperature for thermal regulation in °C. 66*c1f90759SDavid Heidelberg enum: [100, 110, 120, 130] 67*c1f90759SDavid Heidelberg 68*c1f90759SDavid Heidelberg summit,soft-compensation-method: 69*c1f90759SDavid Heidelberg description: Soft temperature limit compensation method 70*c1f90759SDavid Heidelberg $ref: /schemas/types.yaml#/definitions/uint32 71*c1f90759SDavid Heidelberg enum: 72*c1f90759SDavid Heidelberg - 0 # SMB3XX_SOFT_TEMP_COMPENSATE_NONE Compensation none 73*c1f90759SDavid Heidelberg - 1 # SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT Current compensation 74*c1f90759SDavid Heidelberg - 2 # SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE Voltage compensation 75*c1f90759SDavid Heidelberg 76*c1f90759SDavid HeidelbergallOf: 77*c1f90759SDavid Heidelberg - if: 78*c1f90759SDavid Heidelberg properties: 79*c1f90759SDavid Heidelberg compatible: 80*c1f90759SDavid Heidelberg enum: 81*c1f90759SDavid Heidelberg - summit,smb345 82*c1f90759SDavid Heidelberg - summit,smb358 83*c1f90759SDavid Heidelberg 84*c1f90759SDavid Heidelberg then: 85*c1f90759SDavid Heidelberg properties: 86*c1f90759SDavid Heidelberg summit,mains-current-limit-microamp: 87*c1f90759SDavid Heidelberg enum: [ 300000, 500000, 700000, 1000000, 88*c1f90759SDavid Heidelberg 1500000, 1800000, 2000000] 89*c1f90759SDavid Heidelberg 90*c1f90759SDavid Heidelberg summit,usb-current-limit-microamp: 91*c1f90759SDavid Heidelberg enum: [ 300000, 500000, 700000, 1000000, 92*c1f90759SDavid Heidelberg 1500000, 1800000, 2000000] 93*c1f90759SDavid Heidelberg 94*c1f90759SDavid Heidelberg summit,charge-current-compensation-microamp: 95*c1f90759SDavid Heidelberg enum: [200000, 450000, 600000, 900000] 96*c1f90759SDavid Heidelberg 97*c1f90759SDavid Heidelberg else: 98*c1f90759SDavid Heidelberg properties: 99*c1f90759SDavid Heidelberg summit,mains-current-limit-microamp: 100*c1f90759SDavid Heidelberg enum: [ 300000, 500000, 700000, 900000, 1200000, 101*c1f90759SDavid Heidelberg 1500000, 1800000, 2000000, 2200000, 2500000] 102*c1f90759SDavid Heidelberg 103*c1f90759SDavid Heidelberg summit,usb-current-limit-microamp: 104*c1f90759SDavid Heidelberg enum: [ 300000, 500000, 700000, 900000, 1200000, 105*c1f90759SDavid Heidelberg 1500000, 1800000, 2000000, 2200000, 2500000] 106*c1f90759SDavid Heidelberg 107*c1f90759SDavid Heidelberg summit,charge-current-compensation-microamp: 108*c1f90759SDavid Heidelberg enum: [250000, 700000, 900000, 1200000] 109*c1f90759SDavid Heidelberg 110*c1f90759SDavid Heidelbergrequired: 111*c1f90759SDavid Heidelberg - compatible 112*c1f90759SDavid Heidelberg - reg 113*c1f90759SDavid Heidelberg 114*c1f90759SDavid HeidelberganyOf: 115*c1f90759SDavid Heidelberg - required: 116*c1f90759SDavid Heidelberg - summit,enable-usb-charging 117*c1f90759SDavid Heidelberg - required: 118*c1f90759SDavid Heidelberg - summit,enable-otg-charging 119*c1f90759SDavid Heidelberg - required: 120*c1f90759SDavid Heidelberg - summit,enable-mains-charging 121*c1f90759SDavid Heidelberg 122*c1f90759SDavid HeidelbergadditionalProperties: false 123*c1f90759SDavid Heidelberg 124*c1f90759SDavid Heidelbergexamples: 125*c1f90759SDavid Heidelberg - | 126*c1f90759SDavid Heidelberg #include <dt-bindings/power/summit,smb347-charger.h> 127*c1f90759SDavid Heidelberg 128*c1f90759SDavid Heidelberg i2c { 129*c1f90759SDavid Heidelberg #address-cells = <1>; 130*c1f90759SDavid Heidelberg #size-cells = <0>; 131*c1f90759SDavid Heidelberg 132*c1f90759SDavid Heidelberg charger@7f { 133*c1f90759SDavid Heidelberg compatible = "summit,smb347"; 134*c1f90759SDavid Heidelberg reg = <0x7f>; 135*c1f90759SDavid Heidelberg 136*c1f90759SDavid Heidelberg summit,enable-charge-control = <SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH>; 137*c1f90759SDavid Heidelberg summit,chip-temperature-threshold-celsius = <110>; 138*c1f90759SDavid Heidelberg summit,mains-current-limit-microamp = <2000000>; 139*c1f90759SDavid Heidelberg summit,usb-current-limit-microamp = <500000>; 140*c1f90759SDavid Heidelberg summit,enable-usb-charging; 141*c1f90759SDavid Heidelberg summit,enable-mains-charging; 142*c1f90759SDavid Heidelberg 143*c1f90759SDavid Heidelberg monitored-battery = <&battery>; 144*c1f90759SDavid Heidelberg }; 145*c1f90759SDavid Heidelberg }; 146*c1f90759SDavid Heidelberg 147*c1f90759SDavid Heidelberg battery: battery-cell { 148*c1f90759SDavid Heidelberg compatible = "simple-battery"; 149*c1f90759SDavid Heidelberg constant-charge-current-max-microamp = <1800000>; 150*c1f90759SDavid Heidelberg operating-range-celsius = <0 45>; 151*c1f90759SDavid Heidelberg alert-celsius = <3 42>; 152*c1f90759SDavid Heidelberg }; 153