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