xref: /freebsd/sys/contrib/device-tree/Bindings/regulator/microchip,mcp16502.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
101950c46SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
201950c46SEmmanuel Vadot%YAML 1.2
301950c46SEmmanuel Vadot---
401950c46SEmmanuel Vadot$id: http://devicetree.org/schemas/regulator/microchip,mcp16502.yaml#
501950c46SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
601950c46SEmmanuel Vadot
701950c46SEmmanuel Vadottitle: MCP16502 - High-Performance PMIC
801950c46SEmmanuel Vadot
901950c46SEmmanuel Vadotmaintainers:
1001950c46SEmmanuel Vadot  - Andrei Simion <andrei.simion@microchip.com>
1101950c46SEmmanuel Vadot
1201950c46SEmmanuel Vadotdescription:
1301950c46SEmmanuel Vadot  The MCP16502 is an optimally integrated PMIC compatible
1401950c46SEmmanuel Vadot  with Microchip's eMPUs(Embedded Microprocessor Units),
1501950c46SEmmanuel Vadot  requiring Dynamic Voltage Scaling (DVS) with the use
1601950c46SEmmanuel Vadot  of High-Performance mode (HPM).
1701950c46SEmmanuel Vadot
1801950c46SEmmanuel Vadotproperties:
1901950c46SEmmanuel Vadot  compatible:
2001950c46SEmmanuel Vadot    const: microchip,mcp16502
2101950c46SEmmanuel Vadot
2201950c46SEmmanuel Vadot  lpm-gpios:
2301950c46SEmmanuel Vadot    maxItems: 1
2401950c46SEmmanuel Vadot    description: GPIO for LPM pin.
2501950c46SEmmanuel Vadot      Note that this GPIO must remain high during
2601950c46SEmmanuel Vadot      suspend-to-ram, keeping the PMIC into HIBERNATE mode.
2701950c46SEmmanuel Vadot
2801950c46SEmmanuel Vadot  reg:
2901950c46SEmmanuel Vadot    maxItems: 1
3001950c46SEmmanuel Vadot
31*b2d2a78aSEmmanuel Vadot  lvin-supply:
32*b2d2a78aSEmmanuel Vadot    description: Input supply phandle for LDO1 and LDO2
33*b2d2a78aSEmmanuel Vadot
34*b2d2a78aSEmmanuel Vadot  pvin1-supply:
35*b2d2a78aSEmmanuel Vadot    description: Input supply phandle for VDD_IO (BUCK1)
36*b2d2a78aSEmmanuel Vadot
37*b2d2a78aSEmmanuel Vadot  pvin2-supply:
38*b2d2a78aSEmmanuel Vadot    description: Input supply phandle for VDD_DDR (BUCK2)
39*b2d2a78aSEmmanuel Vadot
40*b2d2a78aSEmmanuel Vadot  pvin3-supply:
41*b2d2a78aSEmmanuel Vadot    description: Input supply phandle for VDD_CORE (BUCK3)
42*b2d2a78aSEmmanuel Vadot
43*b2d2a78aSEmmanuel Vadot  pvin4-supply:
44*b2d2a78aSEmmanuel Vadot    description: Input supply phandle for VDD_OTHER (BUCK4)
45*b2d2a78aSEmmanuel Vadot
4601950c46SEmmanuel Vadot  regulators:
4701950c46SEmmanuel Vadot    type: object
4801950c46SEmmanuel Vadot    additionalProperties: false
4901950c46SEmmanuel Vadot    description: List of regulators and its properties.
5001950c46SEmmanuel Vadot
5101950c46SEmmanuel Vadot    patternProperties:
5201950c46SEmmanuel Vadot      "^(VDD_(IO|CORE|DDR|OTHER)|LDO[1-2])$":
5301950c46SEmmanuel Vadot        type: object
5401950c46SEmmanuel Vadot        $ref: regulator.yaml#
5501950c46SEmmanuel Vadot        unevaluatedProperties: false
5601950c46SEmmanuel Vadot
5701950c46SEmmanuel Vadot        properties:
5801950c46SEmmanuel Vadot          regulator-initial-mode:
5901950c46SEmmanuel Vadot            enum: [2, 4]
6001950c46SEmmanuel Vadot            default: 2
6101950c46SEmmanuel Vadot            description: Initial operating mode
6201950c46SEmmanuel Vadot
6301950c46SEmmanuel Vadot          regulator-allowed-modes:
6401950c46SEmmanuel Vadot            items:
6501950c46SEmmanuel Vadot              enum: [2, 4]
6601950c46SEmmanuel Vadot            description: Supported modes
6701950c46SEmmanuel Vadot              2 - FPWM higher precision, higher consumption
6801950c46SEmmanuel Vadot              4 - AutoPFM lower precision, lower consumption
6901950c46SEmmanuel Vadot
7001950c46SEmmanuel Vadotrequired:
7101950c46SEmmanuel Vadot  - compatible
7201950c46SEmmanuel Vadot  - reg
7301950c46SEmmanuel Vadot  - regulators
7401950c46SEmmanuel Vadot
7501950c46SEmmanuel VadotadditionalProperties: false
7601950c46SEmmanuel Vadot
7701950c46SEmmanuel Vadotexamples:
7801950c46SEmmanuel Vadot  - |
7901950c46SEmmanuel Vadot    i2c {
8001950c46SEmmanuel Vadot        #address-cells = <1>;
8101950c46SEmmanuel Vadot        #size-cells = <0>;
8201950c46SEmmanuel Vadot
8301950c46SEmmanuel Vadot        pmic@5b {
8401950c46SEmmanuel Vadot            compatible = "microchip,mcp16502";
8501950c46SEmmanuel Vadot            reg = <0x5b>;
86*b2d2a78aSEmmanuel Vadot            lvin-supply = <&reg_5v>;
87*b2d2a78aSEmmanuel Vadot            pvin1-supply = <&reg_5v>;
88*b2d2a78aSEmmanuel Vadot            pvin2-supply = <&reg_5v>;
89*b2d2a78aSEmmanuel Vadot            pvin3-supply = <&reg_5v>;
90*b2d2a78aSEmmanuel Vadot            pvin4-supply = <&reg_5v>;
9101950c46SEmmanuel Vadot
9201950c46SEmmanuel Vadot            regulators {
9301950c46SEmmanuel Vadot                VDD_IO {
9401950c46SEmmanuel Vadot                    regulator-name = "VDD_IO";
9501950c46SEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
9601950c46SEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
9701950c46SEmmanuel Vadot                    regulator-initial-mode = <2>;
9801950c46SEmmanuel Vadot                    regulator-allowed-modes = <2>, <4>;
9901950c46SEmmanuel Vadot                    regulator-always-on;
10001950c46SEmmanuel Vadot
10101950c46SEmmanuel Vadot                    regulator-state-standby {
10201950c46SEmmanuel Vadot                        regulator-on-in-suspend;
10301950c46SEmmanuel Vadot                        regulator-mode = <4>;
10401950c46SEmmanuel Vadot                    };
10501950c46SEmmanuel Vadot
10601950c46SEmmanuel Vadot                    regulator-state-mem {
10701950c46SEmmanuel Vadot                        regulator-off-in-suspend;
10801950c46SEmmanuel Vadot                        regulator-mode = <4>;
10901950c46SEmmanuel Vadot                    };
11001950c46SEmmanuel Vadot                };
11101950c46SEmmanuel Vadot
11201950c46SEmmanuel Vadot                VDD_DDR {
11301950c46SEmmanuel Vadot                    regulator-name = "VDD_DDR";
11401950c46SEmmanuel Vadot                    regulator-min-microvolt = <1350000>;
11501950c46SEmmanuel Vadot                    regulator-max-microvolt = <1350000>;
11601950c46SEmmanuel Vadot                    regulator-initial-mode = <2>;
11701950c46SEmmanuel Vadot                    regulator-allowed-modes = <2>, <4>;
11801950c46SEmmanuel Vadot                    regulator-always-on;
11901950c46SEmmanuel Vadot
12001950c46SEmmanuel Vadot                    regulator-state-standby {
12101950c46SEmmanuel Vadot                        regulator-on-in-suspend;
12201950c46SEmmanuel Vadot                        regulator-mode = <4>;
12301950c46SEmmanuel Vadot                    };
12401950c46SEmmanuel Vadot
12501950c46SEmmanuel Vadot                    regulator-state-mem {
12601950c46SEmmanuel Vadot                        regulator-on-in-suspend;
12701950c46SEmmanuel Vadot                        regulator-mode = <4>;
12801950c46SEmmanuel Vadot                    };
12901950c46SEmmanuel Vadot                };
13001950c46SEmmanuel Vadot
13101950c46SEmmanuel Vadot                VDD_CORE {
13201950c46SEmmanuel Vadot                    regulator-name = "VDD_CORE";
13301950c46SEmmanuel Vadot                    regulator-min-microvolt = <1150000>;
13401950c46SEmmanuel Vadot                    regulator-max-microvolt = <1150000>;
13501950c46SEmmanuel Vadot                    regulator-initial-mode = <2>;
13601950c46SEmmanuel Vadot                    regulator-allowed-modes = <2>, <4>;
13701950c46SEmmanuel Vadot                    regulator-always-on;
13801950c46SEmmanuel Vadot
13901950c46SEmmanuel Vadot                    regulator-state-standby {
14001950c46SEmmanuel Vadot                        regulator-on-in-suspend;
14101950c46SEmmanuel Vadot                        regulator-mode = <4>;
14201950c46SEmmanuel Vadot                    };
14301950c46SEmmanuel Vadot
14401950c46SEmmanuel Vadot                    regulator-state-mem {
14501950c46SEmmanuel Vadot                        regulator-off-in-suspend;
14601950c46SEmmanuel Vadot                        regulator-mode = <4>;
14701950c46SEmmanuel Vadot                    };
14801950c46SEmmanuel Vadot                };
14901950c46SEmmanuel Vadot
15001950c46SEmmanuel Vadot                VDD_OTHER {
15101950c46SEmmanuel Vadot                    regulator-name = "VDD_OTHER";
15201950c46SEmmanuel Vadot                    regulator-min-microvolt = <1050000>;
15301950c46SEmmanuel Vadot                    regulator-max-microvolt = <1250000>;
15401950c46SEmmanuel Vadot                    regulator-initial-mode = <2>;
15501950c46SEmmanuel Vadot                    regulator-allowed-modes = <2>, <4>;
15601950c46SEmmanuel Vadot                    regulator-always-on;
15701950c46SEmmanuel Vadot
15801950c46SEmmanuel Vadot                    regulator-state-standby {
15901950c46SEmmanuel Vadot                        regulator-on-in-suspend;
16001950c46SEmmanuel Vadot                        regulator-mode = <4>;
16101950c46SEmmanuel Vadot                    };
16201950c46SEmmanuel Vadot
16301950c46SEmmanuel Vadot                    regulator-state-mem {
16401950c46SEmmanuel Vadot                        regulator-off-in-suspend;
16501950c46SEmmanuel Vadot                        regulator-mode = <4>;
16601950c46SEmmanuel Vadot                    };
16701950c46SEmmanuel Vadot                };
16801950c46SEmmanuel Vadot
16901950c46SEmmanuel Vadot                LDO1 {
17001950c46SEmmanuel Vadot                    regulator-name = "LDO1";
17101950c46SEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
17201950c46SEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
17301950c46SEmmanuel Vadot                    regulator-always-on;
17401950c46SEmmanuel Vadot
17501950c46SEmmanuel Vadot                    regulator-state-standby {
17601950c46SEmmanuel Vadot                        regulator-on-in-suspend;
17701950c46SEmmanuel Vadot                    };
17801950c46SEmmanuel Vadot
17901950c46SEmmanuel Vadot                    regulator-state-mem {
18001950c46SEmmanuel Vadot                        regulator-off-in-suspend;
18101950c46SEmmanuel Vadot                    };
18201950c46SEmmanuel Vadot                };
18301950c46SEmmanuel Vadot
18401950c46SEmmanuel Vadot                LDO2 {
18501950c46SEmmanuel Vadot                    regulator-name = "LDO2";
18601950c46SEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
18701950c46SEmmanuel Vadot                    regulator-max-microvolt = <3700000>;
18801950c46SEmmanuel Vadot                    regulator-always-on;
18901950c46SEmmanuel Vadot
19001950c46SEmmanuel Vadot                    regulator-state-standby {
19101950c46SEmmanuel Vadot                        regulator-on-in-suspend;
19201950c46SEmmanuel Vadot                    };
19301950c46SEmmanuel Vadot
19401950c46SEmmanuel Vadot                    regulator-state-mem {
19501950c46SEmmanuel Vadot                        regulator-off-in-suspend;
19601950c46SEmmanuel Vadot                    };
19701950c46SEmmanuel Vadot                };
19801950c46SEmmanuel Vadot            };
19901950c46SEmmanuel Vadot        };
20001950c46SEmmanuel Vadot    };
201