Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / power / supply / charger-manager.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/power/supply/charger-manager.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Charger Manager
8
9 maintainers:
10   - Sebastian Reichel <sre@kernel.org>
11
12 description: |
13   Binding for the legacy charger manager driver.
14   Please do not use for new products.
15
16 properties:
17   compatible:
18     const: charger-manager
19
20   cm-chargers:
21     description: name of chargers
22     $ref: /schemas/types.yaml#/definitions/string-array
23
24   cm-num-chargers:
25     $ref: /schemas/types.yaml#/definitions/uint32
26     deprecated: true
27
28   cm-fuel-gauge:
29     description: name of battery fuel gauge
30     $ref: /schemas/types.yaml#/definitions/string
31
32   cm-name:
33     description: name of the charger manager
34     default: battery
35     $ref: /schemas/types.yaml#/definitions/string
36
37   cm-poll-mode:
38     description: polling mode
39     default: 0
40     enum:
41       - 0 # disabled
42       - 1 # always
43       - 2 # when external power is connected
44       - 3 # when charging
45
46   cm-poll-interval:
47     description: polling interval (in ms)
48     $ref: /schemas/types.yaml#/definitions/uint32
49
50   cm-battery-stat:
51     description: battery status
52     enum:
53       - 0 # battery always present
54       - 1 # no battery
55       - 2 # check presence via fuel gauge
56       - 3 # check presence via charger
57
58   cm-fullbatt-vchkdrop-volt:
59     description: voltage drop before restarting charging in uV
60     $ref: /schemas/types.yaml#/definitions/uint32
61
62   cm-fullbatt-vchkdrop-ms:
63     deprecated: true
64
65   cm-fullbatt-voltage:
66     description: voltage of full battery in uV
67     $ref: /schemas/types.yaml#/definitions/uint32
68
69   cm-fullbatt-soc:
70     description: state of charge to consider as full battery in %
71     $ref: /schemas/types.yaml#/definitions/uint32
72
73   cm-fullbatt-capacity:
74     description: capcity to consider as full battery in uAh
75     $ref: /schemas/types.yaml#/definitions/uint32
76
77   cm-thermal-zone:
78     description: name of external thermometer's thermal zone
79     $ref: /schemas/types.yaml#/definitions/string
80
81   cm-discharging-max:
82     description: limits of discharging duration in ms
83     $ref: /schemas/types.yaml#/definitions/uint32
84
85   cm-charging-max:
86     description: limits of charging duration in ms
87     $ref: /schemas/types.yaml#/definitions/uint32
88
89   cm-battery-cold:
90     description: critical cold temperature of battery for charging in deci-degree celsius
91     $ref: /schemas/types.yaml#/definitions/uint32
92
93   cm-battery-cold-in-minus:
94     description: if set cm-battery-cold temperature is in minus degrees
95     type: boolean
96
97   cm-battery-hot:
98     description: critical hot temperature of battery for charging in deci-degree celsius
99     $ref: /schemas/types.yaml#/definitions/uint32
100
101   cm-battery-temp-diff:
102     description: temperature difference to allow recharging in deci-degree celsius
103     $ref: /schemas/types.yaml#/definitions/uint32
104
105 patternProperties:
106   "-supply$":
107     description: regulator consumer, named according to cm-regulator-name
108     $ref: /schemas/types.yaml#/definitions/phandle
109
110   "^regulator[@-][0-9]$":
111     type: object
112     properties:
113       cm-regulator-name:
114         description: name of charger regulator
115         $ref: /schemas/types.yaml#/definitions/string
116
117     required:
118       - cm-regulator-name
119
120     additionalProperties: false
121
122     patternProperties:
123       "^cable[@-][0-9]$":
124         type: object
125         properties:
126           cm-cable-name:
127             description: name of charger cable
128             enum:
129               - USB
130               - USB-HOST
131               - SDP
132               - DCP
133               - CDP
134               - ACA
135               - FAST-CHARGER
136               - SLOW-CHARGER
137               - WPT
138               - PD
139               - DOCK
140               - JIG
141               - MECHANICAL
142
143           cm-cable-extcon:
144             description: name of extcon dev
145             $ref: /schemas/types.yaml#/definitions/string
146
147           cm-cable-min:
148             description: minimum current of cable in uA
149             $ref: /schemas/types.yaml#/definitions/uint32
150
151           cm-cable-max:
152             description: maximum current of cable in uA
153             $ref: /schemas/types.yaml#/definitions/uint32
154
155         required:
156           - cm-cable-name
157           - cm-cable-extcon
158
159         additionalProperties: false
160
161 required:
162   - compatible
163   - cm-chargers
164   - cm-fuel-gauge
165
166 additionalProperties: false
167
168 examples:
169   - |
170     charger-manager {
171         compatible = "charger-manager";
172         chg-reg-supply = <&charger_regulator>;
173
174         cm-name = "battery";
175         /* Always polling ON : 30s */
176         cm-poll-mode = <1>;
177         cm-poll-interval = <30000>;
178
179         cm-fullbatt-vchkdrop-volt = <150000>;
180         cm-fullbatt-soc = <100>;
181
182         cm-battery-stat = <3>;
183
184         cm-chargers = "charger0", "charger1", "charger2";
185
186         cm-fuel-gauge = "fuelgauge0";
187
188         cm-thermal-zone = "thermal_zone.1";
189         /* in deci centigrade */
190         cm-battery-cold = <50>;
191         cm-battery-cold-in-minus;
192         cm-battery-hot = <800>;
193         cm-battery-temp-diff = <100>;
194
195         /* Allow charging for 5hr */
196         cm-charging-max = <18000000>;
197         /* Allow discharging for 2hr */
198         cm-discharging-max = <7200000>;
199
200         regulator-0 {
201             cm-regulator-name = "chg-reg";
202             cable-0 {
203                 cm-cable-name = "USB";
204                 cm-cable-extcon = "extcon-dev.0";
205                 cm-cable-min = <475000>;
206                 cm-cable-max = <500000>;
207             };
208             cable-1 {
209                 cm-cable-name = "SDP";
210                 cm-cable-extcon = "extcon-dev.0";
211                 cm-cable-min = <650000>;
212                 cm-cable-max = <675000>;
213             };
214         };
215     };