GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / regulator / active-semi,act8945a.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/regulator/active-semi,act8945a.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Active-semi ACT8945a regulator
8
9 maintainers:
10   - Paul Cercueil <paul@crapouillou.net>
11
12 properties:
13   compatible:
14     const: active-semi,act8945a
15
16   reg:
17     maxItems: 1
18
19   system-power-controller:
20     description:
21       Indicates that the ACT8945a is responsible for powering OFF
22       the system.
23     type: boolean
24
25   active-semi,vsel-high:
26     description:
27       Indicates the VSEL pin is high. If this property is missing,
28       the VSEL pin is assumed to be low.
29     type: boolean
30
31   regulators:
32     type: object
33     additionalProperties: false
34
35     properties:
36       REG_DCDC1:
37         type: object
38         $ref: /schemas/regulator/regulator.yaml#
39         unevaluatedProperties: false
40
41         properties:
42           vp1-supply:
43             description: Handle to the VP1 input supply
44
45       REG_DCDC2:
46         type: object
47         $ref: /schemas/regulator/regulator.yaml#
48         unevaluatedProperties: false
49
50         properties:
51           vp2-supply:
52             description: Handle to the VP2 input supply
53
54       REG_DCDC3:
55         type: object
56         $ref: /schemas/regulator/regulator.yaml#
57         unevaluatedProperties: false
58
59         properties:
60           vp3-supply:
61             description: Handle to the VP3 input supply
62
63     patternProperties:
64       "^REG_LDO[1-2]$":
65         type: object
66         $ref: /schemas/regulator/regulator.yaml#
67         unevaluatedProperties: false
68
69         properties:
70           inl45-supply:
71             description: Handle to the INL45 input supply
72
73       "^REG_LDO[3-4]$":
74         type: object
75         $ref: /schemas/regulator/regulator.yaml#
76         unevaluatedProperties: false
77
78         properties:
79           inl67-supply:
80             description: Handle to the INL67 input supply
81
82   charger:
83     type: object
84     additionalProperties: false
85
86     properties:
87       compatible:
88         const: active-semi,act8945a-charger
89
90       interrupts:
91         maxItems: 1
92
93       active-semi,chglev-gpios:
94         description: CGHLEV GPIO
95         maxItems: 1
96
97       active-semi,lbo-gpios:
98         description: LBO GPIO
99         maxItems: 1
100
101       active-semi,input-voltage-threshold-microvolt:
102         description: Input voltage threshold
103         maxItems: 1
104
105       active-semi,precondition-timeout:
106         description: Precondition timeout
107         $ref: /schemas/types.yaml#/definitions/uint32
108
109       active-semi,total-timeout:
110         description: Total timeout
111         $ref: /schemas/types.yaml#/definitions/uint32
112
113     required:
114       - compatible
115       - interrupts
116
117 additionalProperties: false
118
119 required:
120   - reg
121   - compatible
122   - regulators
123
124 examples:
125   - |
126     #include <dt-bindings/gpio/gpio.h>
127     #include <dt-bindings/interrupt-controller/irq.h>
128     #include <dt-bindings/mfd/atmel-flexcom.h>
129     #include <dt-bindings/regulator/active-semi,8945a-regulator.h>
130
131     i2c {
132       #address-cells = <1>;
133       #size-cells = <0>;
134
135       pmic@5b {
136         compatible = "active-semi,act8945a";
137         reg = <0x5b>;
138         active-semi,vsel-high;
139
140         regulators {
141           REG_DCDC1 {
142             regulator-name = "VDD_1V35";
143             regulator-min-microvolt = <1350000>;
144             regulator-max-microvolt = <1350000>;
145             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
146                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
147             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
148             regulator-always-on;
149
150             regulator-state-mem {
151               regulator-on-in-suspend;
152               regulator-suspend-min-microvolt = <1400000>;
153               regulator-suspend-max-microvolt = <1400000>;
154               regulator-changeable-in-suspend;
155               regulator-mode = <ACT8945A_REGULATOR_MODE_LOWPOWER>;
156             };
157           };
158
159           REG_DCDC2 {
160             regulator-name = "VDD_1V2";
161             regulator-min-microvolt = <1100000>;
162             regulator-max-microvolt = <1300000>;
163             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
164                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
165             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
166             regulator-always-on;
167
168             regulator-state-mem {
169               regulator-off-in-suspend;
170             };
171           };
172
173           REG_DCDC3 {
174             regulator-name = "VDD_3V3";
175             regulator-min-microvolt = <3300000>;
176             regulator-max-microvolt = <3300000>;
177             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
178                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
179             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
180             regulator-always-on;
181
182             regulator-state-mem {
183               regulator-off-in-suspend;
184             };
185           };
186
187           REG_LDO1 {
188             regulator-name = "VDD_FUSE";
189             regulator-min-microvolt = <2500000>;
190             regulator-max-microvolt = <2500000>;
191             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
192                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
193             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
194             regulator-always-on;
195
196             regulator-state-mem {
197               regulator-off-in-suspend;
198             };
199           };
200
201           REG_LDO2 {
202             regulator-name = "VDD_3V3_LP";
203             regulator-min-microvolt = <3300000>;
204             regulator-max-microvolt = <3300000>;
205             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
206                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
207             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
208             regulator-always-on;
209
210             regulator-state-mem {
211               regulator-off-in-suspend;
212             };
213           };
214
215           REG_LDO3 {
216             regulator-name = "VDD_LED";
217             regulator-min-microvolt = <3300000>;
218             regulator-max-microvolt = <3300000>;
219             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
220                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
221             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
222             regulator-always-on;
223
224             regulator-state-mem {
225               regulator-off-in-suspend;
226             };
227           };
228
229           REG_LDO4 {
230             regulator-name = "VDD_SDHC_1V8";
231             regulator-min-microvolt = <1800000>;
232             regulator-max-microvolt = <1800000>;
233             regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
234                                       <ACT8945A_REGULATOR_MODE_LOWPOWER>;
235             regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
236             regulator-always-on;
237
238             regulator-state-mem {
239               regulator-off-in-suspend;
240             };
241           };
242         };
243
244         charger {
245           compatible = "active-semi,act8945a-charger";
246           pinctrl-names = "default";
247           pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
248           interrupt-parent = <&pioA>;
249           interrupts = <45 IRQ_TYPE_EDGE_RISING>;
250
251           active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
252           active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
253           active-semi,input-voltage-threshold-microvolt = <6600>;
254           active-semi,precondition-timeout = <40>;
255           active-semi,total-timeout = <3>;
256         };
257       };
258     };