xref: /openbmc/linux/Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
196f3fb86SAndrei.Stefanescu@microchip.comMCP16502 PMIC
296f3fb86SAndrei.Stefanescu@microchip.com
396f3fb86SAndrei.Stefanescu@microchip.comRequired properties:
496f3fb86SAndrei.Stefanescu@microchip.com- compatible: "microchip,mcp16502"
596f3fb86SAndrei.Stefanescu@microchip.com- reg: I2C slave address
696f3fb86SAndrei.Stefanescu@microchip.com- lpm-gpios: GPIO for LPM pin. Note that this GPIO *must* remain high during
7*eea0b4e2SClaudiu Beznea	     suspend-to-ram, keeping the PMIC into HIBERNATE mode; this
8*eea0b4e2SClaudiu Beznea	     property is optional;
996f3fb86SAndrei.Stefanescu@microchip.com- regulators: A node that houses a sub-node for each regulator within
1096f3fb86SAndrei.Stefanescu@microchip.com              the device. Each sub-node is identified using the node's
1196f3fb86SAndrei.Stefanescu@microchip.com              name. The content of each sub-node is defined by the
1296f3fb86SAndrei.Stefanescu@microchip.com              standard binding for regulators; see regulator.txt.
1396f3fb86SAndrei.Stefanescu@microchip.com
1433f369efSMichael KleinRegulators of MCP16502 PMIC:
1596f3fb86SAndrei.Stefanescu@microchip.com1) VDD_IO	- Buck (1.2 - 3.7 V)
1696f3fb86SAndrei.Stefanescu@microchip.com2) VDD_DDR	- Buck (0.6 - 1.85 V)
1796f3fb86SAndrei.Stefanescu@microchip.com3) VDD_CORE	- Buck (0.6 - 1.85 V)
1896f3fb86SAndrei.Stefanescu@microchip.com4) VDD_OTHER	- BUCK (0.6 - 1.85 V)
1996f3fb86SAndrei.Stefanescu@microchip.com5) LDO1		- LDO  (1.2 - 3.7 V)
2096f3fb86SAndrei.Stefanescu@microchip.com6) LDO2		- LDO  (1.2 - 3.7 V)
2196f3fb86SAndrei.Stefanescu@microchip.com
2296f3fb86SAndrei.Stefanescu@microchip.comRegulator modes:
2396f3fb86SAndrei.Stefanescu@microchip.com2 - FPWM: higher precision, higher consumption
2496f3fb86SAndrei.Stefanescu@microchip.com4 - AutoPFM: lower precision, lower consumption
2596f3fb86SAndrei.Stefanescu@microchip.com
2696f3fb86SAndrei.Stefanescu@microchip.comEach regulator is defined using the standard binding for regulators.
2796f3fb86SAndrei.Stefanescu@microchip.com
2896f3fb86SAndrei.Stefanescu@microchip.comExample:
2996f3fb86SAndrei.Stefanescu@microchip.com
3096f3fb86SAndrei.Stefanescu@microchip.commcp16502@5b {
3196f3fb86SAndrei.Stefanescu@microchip.com	compatible = "microchip,mcp16502";
3296f3fb86SAndrei.Stefanescu@microchip.com	reg = <0x5b>;
3396f3fb86SAndrei.Stefanescu@microchip.com	status = "okay";
3496f3fb86SAndrei.Stefanescu@microchip.com	lpm-gpios = <&pioBU 7 GPIO_ACTIVE_HIGH>;
3596f3fb86SAndrei.Stefanescu@microchip.com
3696f3fb86SAndrei.Stefanescu@microchip.com	regulators {
3796f3fb86SAndrei.Stefanescu@microchip.com		VDD_IO {
3896f3fb86SAndrei.Stefanescu@microchip.com			regulator-name = "VDD_IO";
3996f3fb86SAndrei.Stefanescu@microchip.com			regulator-min-microvolt = <1200000>;
4096f3fb86SAndrei.Stefanescu@microchip.com			regulator-max-microvolt = <3700000>;
4196f3fb86SAndrei.Stefanescu@microchip.com			regulator-initial-mode = <2>;
4296f3fb86SAndrei.Stefanescu@microchip.com			regulator-allowed-modes = <2>, <4>;
4396f3fb86SAndrei.Stefanescu@microchip.com			regulator-always-on;
4496f3fb86SAndrei.Stefanescu@microchip.com
4596f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-standby {
4696f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
4796f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
4896f3fb86SAndrei.Stefanescu@microchip.com			};
4996f3fb86SAndrei.Stefanescu@microchip.com
5096f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-mem {
5196f3fb86SAndrei.Stefanescu@microchip.com				regulator-off-in-suspend;
5296f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
5396f3fb86SAndrei.Stefanescu@microchip.com			};
5496f3fb86SAndrei.Stefanescu@microchip.com		};
5596f3fb86SAndrei.Stefanescu@microchip.com
5696f3fb86SAndrei.Stefanescu@microchip.com		VDD_DDR {
5796f3fb86SAndrei.Stefanescu@microchip.com			regulator-name = "VDD_DDR";
5896f3fb86SAndrei.Stefanescu@microchip.com			regulator-min-microvolt = <600000>;
5996f3fb86SAndrei.Stefanescu@microchip.com			regulator-max-microvolt = <1850000>;
6096f3fb86SAndrei.Stefanescu@microchip.com			regulator-initial-mode = <2>;
6196f3fb86SAndrei.Stefanescu@microchip.com			regulator-allowed-modes = <2>, <4>;
6296f3fb86SAndrei.Stefanescu@microchip.com			regulator-always-on;
6396f3fb86SAndrei.Stefanescu@microchip.com
6496f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-standby {
6596f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
6696f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
6796f3fb86SAndrei.Stefanescu@microchip.com			};
6896f3fb86SAndrei.Stefanescu@microchip.com
6996f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-mem {
7096f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
7196f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
7296f3fb86SAndrei.Stefanescu@microchip.com			};
7396f3fb86SAndrei.Stefanescu@microchip.com		};
7496f3fb86SAndrei.Stefanescu@microchip.com
7596f3fb86SAndrei.Stefanescu@microchip.com		VDD_CORE {
7696f3fb86SAndrei.Stefanescu@microchip.com			regulator-name = "VDD_CORE";
7796f3fb86SAndrei.Stefanescu@microchip.com			regulator-min-microvolt = <600000>;
7896f3fb86SAndrei.Stefanescu@microchip.com			regulator-max-microvolt = <1850000>;
7996f3fb86SAndrei.Stefanescu@microchip.com			regulator-initial-mode = <2>;
8096f3fb86SAndrei.Stefanescu@microchip.com			regulator-allowed-modes = <2>, <4>;
8196f3fb86SAndrei.Stefanescu@microchip.com			regulator-always-on;
8296f3fb86SAndrei.Stefanescu@microchip.com
8396f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-standby {
8496f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
8596f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
8696f3fb86SAndrei.Stefanescu@microchip.com			};
8796f3fb86SAndrei.Stefanescu@microchip.com
8896f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-mem {
8996f3fb86SAndrei.Stefanescu@microchip.com				regulator-off-in-suspend;
9096f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
9196f3fb86SAndrei.Stefanescu@microchip.com			};
9296f3fb86SAndrei.Stefanescu@microchip.com		};
9396f3fb86SAndrei.Stefanescu@microchip.com
9496f3fb86SAndrei.Stefanescu@microchip.com		VDD_OTHER {
9596f3fb86SAndrei.Stefanescu@microchip.com			regulator-name = "VDD_OTHER";
9696f3fb86SAndrei.Stefanescu@microchip.com			regulator-min-microvolt = <600000>;
9796f3fb86SAndrei.Stefanescu@microchip.com			regulator-max-microvolt = <1850000>;
9896f3fb86SAndrei.Stefanescu@microchip.com			regulator-initial-mode = <2>;
9996f3fb86SAndrei.Stefanescu@microchip.com			regulator-allowed-modes = <2>, <4>;
10096f3fb86SAndrei.Stefanescu@microchip.com			regulator-always-on;
10196f3fb86SAndrei.Stefanescu@microchip.com
10296f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-standby {
10396f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
10496f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
10596f3fb86SAndrei.Stefanescu@microchip.com			};
10696f3fb86SAndrei.Stefanescu@microchip.com
10796f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-mem {
10896f3fb86SAndrei.Stefanescu@microchip.com				regulator-off-in-suspend;
10996f3fb86SAndrei.Stefanescu@microchip.com				regulator-mode = <4>;
11096f3fb86SAndrei.Stefanescu@microchip.com			};
11196f3fb86SAndrei.Stefanescu@microchip.com		};
11296f3fb86SAndrei.Stefanescu@microchip.com
11396f3fb86SAndrei.Stefanescu@microchip.com		LDO1 {
11496f3fb86SAndrei.Stefanescu@microchip.com			regulator-name = "LDO1";
11596f3fb86SAndrei.Stefanescu@microchip.com			regulator-min-microvolt = <1200000>;
11696f3fb86SAndrei.Stefanescu@microchip.com			regulator-max-microvolt = <3700000>;
11796f3fb86SAndrei.Stefanescu@microchip.com			regulator-always-on;
11896f3fb86SAndrei.Stefanescu@microchip.com
11996f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-standby {
12096f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
12196f3fb86SAndrei.Stefanescu@microchip.com			};
12296f3fb86SAndrei.Stefanescu@microchip.com
12396f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-mem {
12496f3fb86SAndrei.Stefanescu@microchip.com				regulator-off-in-suspend;
12596f3fb86SAndrei.Stefanescu@microchip.com			};
12696f3fb86SAndrei.Stefanescu@microchip.com		};
12796f3fb86SAndrei.Stefanescu@microchip.com
12896f3fb86SAndrei.Stefanescu@microchip.com		LDO2 {
12996f3fb86SAndrei.Stefanescu@microchip.com			regulator-name = "LDO2";
13096f3fb86SAndrei.Stefanescu@microchip.com			regulator-min-microvolt = <1200000>;
13196f3fb86SAndrei.Stefanescu@microchip.com			regulator-max-microvolt = <3700000>;
13296f3fb86SAndrei.Stefanescu@microchip.com			regulator-always-on;
13396f3fb86SAndrei.Stefanescu@microchip.com
13496f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-standby {
13596f3fb86SAndrei.Stefanescu@microchip.com				regulator-on-in-suspend;
13696f3fb86SAndrei.Stefanescu@microchip.com			};
13796f3fb86SAndrei.Stefanescu@microchip.com
13896f3fb86SAndrei.Stefanescu@microchip.com			regulator-state-mem {
13996f3fb86SAndrei.Stefanescu@microchip.com				regulator-off-in-suspend;
14096f3fb86SAndrei.Stefanescu@microchip.com			};
14196f3fb86SAndrei.Stefanescu@microchip.com		};
14296f3fb86SAndrei.Stefanescu@microchip.com
14396f3fb86SAndrei.Stefanescu@microchip.com	};
14496f3fb86SAndrei.Stefanescu@microchip.com};
145