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