Documentation / devicetree / bindings / regulator / mcp16502-regulator.txt


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
MCP16502 PMIC

Required properties:
- compatible: "microchip,mcp16502"
- reg: I2C slave address
- lpm-gpios: GPIO for LPM pin. Note that this GPIO *must* remain high during
	     suspend-to-ram, keeping the PMIC into HIBERNATE mode; this
	     property is optional;
- regulators: A node that houses a sub-node for each regulator within
              the device. Each sub-node is identified using the node's
              name. The content of each sub-node is defined by the
              standard binding for regulators; see regulator.txt.

Regulators of MCP16502 PMIC:
1) VDD_IO	- Buck (1.2 - 3.7 V)
2) VDD_DDR	- Buck (0.6 - 1.85 V)
3) VDD_CORE	- Buck (0.6 - 1.85 V)
4) VDD_OTHER	- BUCK (0.6 - 1.85 V)
5) LDO1		- LDO  (1.2 - 3.7 V)
6) LDO2		- LDO  (1.2 - 3.7 V)

Regulator modes:
2 - FPWM: higher precision, higher consumption
4 - AutoPFM: lower precision, lower consumption

Each regulator is defined using the standard binding for regulators.

Example:

mcp16502@5b {
	compatible = "microchip,mcp16502";
	reg = <0x5b>;
	status = "okay";
	lpm-gpios = <&pioBU 7 GPIO_ACTIVE_HIGH>;

	regulators {
		VDD_IO {
			regulator-name = "VDD_IO";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <3700000>;
			regulator-initial-mode = <2>;
			regulator-allowed-modes = <2>, <4>;
			regulator-always-on;

			regulator-state-standby {
				regulator-on-in-suspend;
				regulator-mode = <4>;
			};

			regulator-state-mem {
				regulator-off-in-suspend;
				regulator-mode = <4>;
			};
		};

		VDD_DDR {
			regulator-name = "VDD_DDR";
			regulator-min-microvolt = <600000>;
			regulator-max-microvolt = <1850000>;
			regulator-initial-mode = <2>;
			regulator-allowed-modes = <2>, <4>;
			regulator-always-on;

			regulator-state-standby {
				regulator-on-in-suspend;
				regulator-mode = <4>;
			};

			regulator-state-mem {
				regulator-on-in-suspend;
				regulator-mode = <4>;
			};
		};

		VDD_CORE {
			regulator-name = "VDD_CORE";
			regulator-min-microvolt = <600000>;
			regulator-max-microvolt = <1850000>;
			regulator-initial-mode = <2>;
			regulator-allowed-modes = <2>, <4>;
			regulator-always-on;

			regulator-state-standby {
				regulator-on-in-suspend;
				regulator-mode = <4>;
			};

			regulator-state-mem {
				regulator-off-in-suspend;
				regulator-mode = <4>;
			};
		};

		VDD_OTHER {
			regulator-name = "VDD_OTHER";
			regulator-min-microvolt = <600000>;
			regulator-max-microvolt = <1850000>;
			regulator-initial-mode = <2>;
			regulator-allowed-modes = <2>, <4>;
			regulator-always-on;

			regulator-state-standby {
				regulator-on-in-suspend;
				regulator-mode = <4>;
			};

			regulator-state-mem {
				regulator-off-in-suspend;
				regulator-mode = <4>;
			};
		};

		LDO1 {
			regulator-name = "LDO1";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <3700000>;
			regulator-always-on;

			regulator-state-standby {
				regulator-on-in-suspend;
			};

			regulator-state-mem {
				regulator-off-in-suspend;
			};
		};

		LDO2 {
			regulator-name = "LDO2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <3700000>;
			regulator-always-on;

			regulator-state-standby {
				regulator-on-in-suspend;
			};

			regulator-state-mem {
				regulator-off-in-suspend;
			};
		};

	};
};