blob: 1aca3646789efffc309f5b5fdc0581c8192bf6c8 [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001# 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 };