xref: /linux/Documentation/devicetree/bindings/regulator/microchip,mcp16502.yaml (revision 36a1818f5a1e50b805317ba13f827067d50f6970)
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  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
55required:
56  - compatible
57  - reg
58  - regulators
59
60additionalProperties: false
61
62examples:
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    };
181