Linux 6.11-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / regulator / microchip,mcp16502.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/microchip,mcp16502.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: MCP16502 - High-Performance PMIC
8
9 maintainers:
10   - Andrei Simion <andrei.simion@microchip.com>
11
12 description:
13   The MCP16502 is an optimally integrated PMIC compatible
14   with Microchip's eMPUs(Embedded Microprocessor Units),
15   requiring Dynamic Voltage Scaling (DVS) with the use
16   of High-Performance mode (HPM).
17
18 properties:
19   compatible:
20     const: microchip,mcp16502
21
22   lpm-gpios:
23     maxItems: 1
24     description: GPIO for LPM pin.
25       Note that this GPIO must remain high during
26       suspend-to-ram, keeping the PMIC into HIBERNATE mode.
27
28   reg:
29     maxItems: 1
30
31   regulators:
32     type: object
33     additionalProperties: false
34     description: List of regulators and its properties.
35
36     patternProperties:
37       "^(VDD_(IO|CORE|DDR|OTHER)|LDO[1-2])$":
38         type: object
39         $ref: regulator.yaml#
40         unevaluatedProperties: false
41
42         properties:
43           regulator-initial-mode:
44             enum: [2, 4]
45             default: 2
46             description: Initial operating mode
47
48           regulator-allowed-modes:
49             items:
50               enum: [2, 4]
51             description: Supported modes
52               2 - FPWM higher precision, higher consumption
53               4 - AutoPFM lower precision, lower consumption
54
55 required:
56   - compatible
57   - reg
58   - regulators
59
60 additionalProperties: false
61
62 examples:
63   - |
64     i2c {
65         #address-cells = <1>;
66         #size-cells = <0>;
67
68         pmic@5b {
69             compatible = "microchip,mcp16502";
70             reg = <0x5b>;
71
72             regulators {
73                 VDD_IO {
74                     regulator-name = "VDD_IO";
75                     regulator-min-microvolt = <3300000>;
76                     regulator-max-microvolt = <3300000>;
77                     regulator-initial-mode = <2>;
78                     regulator-allowed-modes = <2>, <4>;
79                     regulator-always-on;
80
81                     regulator-state-standby {
82                         regulator-on-in-suspend;
83                         regulator-mode = <4>;
84                     };
85
86                     regulator-state-mem {
87                         regulator-off-in-suspend;
88                         regulator-mode = <4>;
89                     };
90                 };
91
92                 VDD_DDR {
93                     regulator-name = "VDD_DDR";
94                     regulator-min-microvolt = <1350000>;
95                     regulator-max-microvolt = <1350000>;
96                     regulator-initial-mode = <2>;
97                     regulator-allowed-modes = <2>, <4>;
98                     regulator-always-on;
99
100                     regulator-state-standby {
101                         regulator-on-in-suspend;
102                         regulator-mode = <4>;
103                     };
104
105                     regulator-state-mem {
106                         regulator-on-in-suspend;
107                         regulator-mode = <4>;
108                     };
109                 };
110
111                 VDD_CORE {
112                     regulator-name = "VDD_CORE";
113                     regulator-min-microvolt = <1150000>;
114                     regulator-max-microvolt = <1150000>;
115                     regulator-initial-mode = <2>;
116                     regulator-allowed-modes = <2>, <4>;
117                     regulator-always-on;
118
119                     regulator-state-standby {
120                         regulator-on-in-suspend;
121                         regulator-mode = <4>;
122                     };
123
124                     regulator-state-mem {
125                         regulator-off-in-suspend;
126                         regulator-mode = <4>;
127                     };
128                 };
129
130                 VDD_OTHER {
131                     regulator-name = "VDD_OTHER";
132                     regulator-min-microvolt = <1050000>;
133                     regulator-max-microvolt = <1250000>;
134                     regulator-initial-mode = <2>;
135                     regulator-allowed-modes = <2>, <4>;
136                     regulator-always-on;
137
138                     regulator-state-standby {
139                         regulator-on-in-suspend;
140                         regulator-mode = <4>;
141                     };
142
143                     regulator-state-mem {
144                         regulator-off-in-suspend;
145                         regulator-mode = <4>;
146                     };
147                 };
148
149                 LDO1 {
150                     regulator-name = "LDO1";
151                     regulator-min-microvolt = <1800000>;
152                     regulator-max-microvolt = <1800000>;
153                     regulator-always-on;
154
155                     regulator-state-standby {
156                         regulator-on-in-suspend;
157                     };
158
159                     regulator-state-mem {
160                         regulator-off-in-suspend;
161                     };
162                 };
163
164                 LDO2 {
165                     regulator-name = "LDO2";
166                     regulator-min-microvolt = <1200000>;
167                     regulator-max-microvolt = <3700000>;
168                     regulator-always-on;
169
170                     regulator-state-standby {
171                         regulator-on-in-suspend;
172                     };
173
174                     regulator-state-mem {
175                         regulator-off-in-suspend;
176                     };
177                 };
178             };
179         };
180     };