xref: /freebsd/sys/contrib/device-tree/Bindings/regulator/mcp16502-regulator.txt (revision cab6a39d7b343596a5823e65c0f7b426551ec22d)
1MCP16502 PMIC
2
3Required properties:
4- compatible: "microchip,mcp16502"
5- reg: I2C slave address
6- lpm-gpios: GPIO for LPM pin. Note that this GPIO *must* remain high during
7	     suspend-to-ram, keeping the PMIC into HIBERNATE mode; this
8	     property is optional;
9- regulators: A node that houses a sub-node for each regulator within
10              the device. Each sub-node is identified using the node's
11              name. The content of each sub-node is defined by the
12              standard binding for regulators; see regulator.txt.
13
14Regulators of MCP16502 PMIC:
151) VDD_IO	- Buck (1.2 - 3.7 V)
162) VDD_DDR	- Buck (0.6 - 1.85 V)
173) VDD_CORE	- Buck (0.6 - 1.85 V)
184) VDD_OTHER	- BUCK (0.6 - 1.85 V)
195) LDO1		- LDO  (1.2 - 3.7 V)
206) LDO2		- LDO  (1.2 - 3.7 V)
21
22Regulator modes:
232 - FPWM: higher precision, higher consumption
244 - AutoPFM: lower precision, lower consumption
25
26Each regulator is defined using the standard binding for regulators.
27
28Example:
29
30mcp16502@5b {
31	compatible = "microchip,mcp16502";
32	reg = <0x5b>;
33	status = "okay";
34	lpm-gpios = <&pioBU 7 GPIO_ACTIVE_HIGH>;
35
36	regulators {
37		VDD_IO {
38			regulator-name = "VDD_IO";
39			regulator-min-microvolt = <1200000>;
40			regulator-max-microvolt = <3700000>;
41			regulator-initial-mode = <2>;
42			regulator-allowed-modes = <2>, <4>;
43			regulator-always-on;
44
45			regulator-state-standby {
46				regulator-on-in-suspend;
47				regulator-mode = <4>;
48			};
49
50			regulator-state-mem {
51				regulator-off-in-suspend;
52				regulator-mode = <4>;
53			};
54		};
55
56		VDD_DDR {
57			regulator-name = "VDD_DDR";
58			regulator-min-microvolt = <600000>;
59			regulator-max-microvolt = <1850000>;
60			regulator-initial-mode = <2>;
61			regulator-allowed-modes = <2>, <4>;
62			regulator-always-on;
63
64			regulator-state-standby {
65				regulator-on-in-suspend;
66				regulator-mode = <4>;
67			};
68
69			regulator-state-mem {
70				regulator-on-in-suspend;
71				regulator-mode = <4>;
72			};
73		};
74
75		VDD_CORE {
76			regulator-name = "VDD_CORE";
77			regulator-min-microvolt = <600000>;
78			regulator-max-microvolt = <1850000>;
79			regulator-initial-mode = <2>;
80			regulator-allowed-modes = <2>, <4>;
81			regulator-always-on;
82
83			regulator-state-standby {
84				regulator-on-in-suspend;
85				regulator-mode = <4>;
86			};
87
88			regulator-state-mem {
89				regulator-off-in-suspend;
90				regulator-mode = <4>;
91			};
92		};
93
94		VDD_OTHER {
95			regulator-name = "VDD_OTHER";
96			regulator-min-microvolt = <600000>;
97			regulator-max-microvolt = <1850000>;
98			regulator-initial-mode = <2>;
99			regulator-allowed-modes = <2>, <4>;
100			regulator-always-on;
101
102			regulator-state-standby {
103				regulator-on-in-suspend;
104				regulator-mode = <4>;
105			};
106
107			regulator-state-mem {
108				regulator-off-in-suspend;
109				regulator-mode = <4>;
110			};
111		};
112
113		LDO1 {
114			regulator-name = "LDO1";
115			regulator-min-microvolt = <1200000>;
116			regulator-max-microvolt = <3700000>;
117			regulator-always-on;
118
119			regulator-state-standby {
120				regulator-on-in-suspend;
121			};
122
123			regulator-state-mem {
124				regulator-off-in-suspend;
125			};
126		};
127
128		LDO2 {
129			regulator-name = "LDO2";
130			regulator-min-microvolt = <1200000>;
131			regulator-max-microvolt = <3700000>;
132			regulator-always-on;
133
134			regulator-state-standby {
135				regulator-on-in-suspend;
136			};
137
138			regulator-state-mem {
139				regulator-off-in-suspend;
140			};
141		};
142
143	};
144};
145