Merge tag 'linux-kselftest-kunit-5.15-rc1' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / power / supply / summit,smb347-charger.yaml
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
7 title: Battery charger driver for SMB345, SMB347 and SMB358
8
9 maintainers:
10   - David Heidelberg <david@ixit.cz>
11   - Dmitry Osipenko <digetx@gmail.com>
12
13 properties:
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
96 allOf:
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
130 required:
131   - compatible
132   - reg
133
134 anyOf:
135   - required:
136       - summit,enable-usb-charging
137   - required:
138       - summit,enable-otg-charging
139   - required:
140       - summit,enable-mains-charging
141
142 additionalProperties: false
143
144 examples:
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     };