regulator: dt-bindings: add MCP16502 regulator bindings
authorAndrei.Stefanescu@microchip.com <Andrei.Stefanescu@microchip.com>
Wed, 12 Dec 2018 18:31:08 +0000 (18:31 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 13 Dec 2018 12:16:38 +0000 (12:16 +0000)
This patch describes the compatible and the device tree
bindings necessary for the MCP16502 PMIC.

Signed-off-by: Andrei Stefanescu <andrei.stefanescu@microchip.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt b/Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt
new file mode 100644 (file)
index 0000000..b8f843f
--- /dev/null
@@ -0,0 +1,143 @@
+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.
+- 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.
+
+Regualtors 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;
+                       };
+               };
+
+       };
+};