xref: /linux/Documentation/devicetree/bindings/regulator/microchip,mcp16502.yaml (revision 566ab427f827b0256d3e8ce0235d088e6a9c28bd)
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
7title: MCP16502 - High-Performance PMIC
8
9maintainers:
10  - Andrei Simion <andrei.simion@microchip.com>
11
12description:
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
18properties:
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  lvin-supply:
32    description: Input supply phandle for LDO1 and LDO2
33
34  pvin1-supply:
35    description: Input supply phandle for VDD_IO (BUCK1)
36
37  pvin2-supply:
38    description: Input supply phandle for VDD_DDR (BUCK2)
39
40  pvin3-supply:
41    description: Input supply phandle for VDD_CORE (BUCK3)
42
43  pvin4-supply:
44    description: Input supply phandle for VDD_OTHER (BUCK4)
45
46  regulators:
47    type: object
48    additionalProperties: false
49    description: List of regulators and its properties.
50
51    patternProperties:
52      "^(VDD_(IO|CORE|DDR|OTHER)|LDO[1-2])$":
53        type: object
54        $ref: regulator.yaml#
55        unevaluatedProperties: false
56
57        properties:
58          regulator-initial-mode:
59            enum: [2, 4]
60            default: 2
61            description: Initial operating mode
62
63          regulator-allowed-modes:
64            items:
65              enum: [2, 4]
66            description: Supported modes
67              2 - FPWM higher precision, higher consumption
68              4 - AutoPFM lower precision, lower consumption
69
70required:
71  - compatible
72  - reg
73  - regulators
74
75additionalProperties: false
76
77examples:
78  - |
79    i2c {
80        #address-cells = <1>;
81        #size-cells = <0>;
82
83        pmic@5b {
84            compatible = "microchip,mcp16502";
85            reg = <0x5b>;
86            lvin-supply = <&reg_5v>;
87            pvin1-supply = <&reg_5v>;
88            pvin2-supply = <&reg_5v>;
89            pvin3-supply = <&reg_5v>;
90            pvin4-supply = <&reg_5v>;
91
92            regulators {
93                VDD_IO {
94                    regulator-name = "VDD_IO";
95                    regulator-min-microvolt = <3300000>;
96                    regulator-max-microvolt = <3300000>;
97                    regulator-initial-mode = <2>;
98                    regulator-allowed-modes = <2>, <4>;
99                    regulator-always-on;
100
101                    regulator-state-standby {
102                        regulator-on-in-suspend;
103                        regulator-mode = <4>;
104                    };
105
106                    regulator-state-mem {
107                        regulator-off-in-suspend;
108                        regulator-mode = <4>;
109                    };
110                };
111
112                VDD_DDR {
113                    regulator-name = "VDD_DDR";
114                    regulator-min-microvolt = <1350000>;
115                    regulator-max-microvolt = <1350000>;
116                    regulator-initial-mode = <2>;
117                    regulator-allowed-modes = <2>, <4>;
118                    regulator-always-on;
119
120                    regulator-state-standby {
121                        regulator-on-in-suspend;
122                        regulator-mode = <4>;
123                    };
124
125                    regulator-state-mem {
126                        regulator-on-in-suspend;
127                        regulator-mode = <4>;
128                    };
129                };
130
131                VDD_CORE {
132                    regulator-name = "VDD_CORE";
133                    regulator-min-microvolt = <1150000>;
134                    regulator-max-microvolt = <1150000>;
135                    regulator-initial-mode = <2>;
136                    regulator-allowed-modes = <2>, <4>;
137                    regulator-always-on;
138
139                    regulator-state-standby {
140                        regulator-on-in-suspend;
141                        regulator-mode = <4>;
142                    };
143
144                    regulator-state-mem {
145                        regulator-off-in-suspend;
146                        regulator-mode = <4>;
147                    };
148                };
149
150                VDD_OTHER {
151                    regulator-name = "VDD_OTHER";
152                    regulator-min-microvolt = <1050000>;
153                    regulator-max-microvolt = <1250000>;
154                    regulator-initial-mode = <2>;
155                    regulator-allowed-modes = <2>, <4>;
156                    regulator-always-on;
157
158                    regulator-state-standby {
159                        regulator-on-in-suspend;
160                        regulator-mode = <4>;
161                    };
162
163                    regulator-state-mem {
164                        regulator-off-in-suspend;
165                        regulator-mode = <4>;
166                    };
167                };
168
169                LDO1 {
170                    regulator-name = "LDO1";
171                    regulator-min-microvolt = <1800000>;
172                    regulator-max-microvolt = <1800000>;
173                    regulator-always-on;
174
175                    regulator-state-standby {
176                        regulator-on-in-suspend;
177                    };
178
179                    regulator-state-mem {
180                        regulator-off-in-suspend;
181                    };
182                };
183
184                LDO2 {
185                    regulator-name = "LDO2";
186                    regulator-min-microvolt = <1200000>;
187                    regulator-max-microvolt = <3700000>;
188                    regulator-always-on;
189
190                    regulator-state-standby {
191                        regulator-on-in-suspend;
192                    };
193
194                    regulator-state-mem {
195                        regulator-off-in-suspend;
196                    };
197                };
198            };
199        };
200    };
201