code:
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;
			};
		};

	};
};


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6331-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT6331 Regulator from MediaTek Integrated

maintainers:
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

description: |
  The MT6331 PMIC provides 6 BUCK and 21 LDO (Low Dropout) regulators
  and nodes are named according to the regulator type:
  buck-<name> and ldo-<name>.
  MT6331 regulators node should be sub node of the MT6397 MFD node.

patternProperties:
  "^buck-v(core2|io18|dvfs11|dvfs12|dvfs13|dvfs14)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(core2|io18|dvfs11|dvfs12|dvfs13|dvfs14)$"

    unevaluatedProperties: false

  "^ldo-v(avdd32aud|auxa32)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(avdd32aud|auxa32)$"

    unevaluatedProperties: false

  "^ldo-v(dig18|emc33|ibr|mc|mch|mipi|rtc|sram|usb10)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(dig18|emc33|ibr|mc|mch|mipi|rtc|sram|usb10)$"

    unevaluatedProperties: false

  "^ldo-vcam(a|af|d|io)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vcam(a|af|d|io)$"

    unevaluatedProperties: false

  "^ldo-vtcxo[12]$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vtcxo[12]$"

    required:
      - regulator-name

    unevaluatedProperties: false

  "^ldo-vgp[1234]$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vgp[12]$"

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false

examples:
  - |
    pmic {
      regulators {
        mt6331_vdvfs11_reg: buck-vdvfs11 {
          regulator-name = "vdvfs11";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6331_vdvfs12_reg: buck-vdvfs12 {
          regulator-name = "vdvfs12";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6331_vdvfs13_reg: buck-vdvfs13 {
          regulator-name = "vdvfs13";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6331_vdvfs14_reg: buck-vdvfs14 {
          regulator-name = "vdvfs14";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6331_vcore2_reg: buck-vcore2 {
          regulator-name = "vcore2";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6331_vio18_reg: buck-vio18 {
          regulator-name = "vio18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <0>;
          regulator-allowed-modes = <0 1>;
        };
        mt6331_vtcxo1_reg: ldo-vtcxo1 {
          regulator-name = "vtcxo1";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-always-on;
          regulator-boot-on;
        };
        mt6331_vtcxo2_reg: ldo-vtcxo2 {
          regulator-name = "vtcxo2";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-always-on;
          regulator-boot-on;
        };
        mt6331_avdd32_aud_reg: ldo-avdd32aud {
          regulator-name = "avdd32_aud";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3200000>;
        };
        mt6331_vauxa32_reg: ldo-vauxa32 {
          regulator-name = "vauxa32";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3200000>;
        };
        mt6331_vcama_reg: ldo-vcama {
          regulator-name = "vcama";
          regulator-min-microvolt = <1500000>;
          regulator-max-microvolt = <2800000>;
          regulator-always-on;
        };
        mt6331_vio28_reg: ldo-vio28 {
          regulator-name = "vio28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-always-on;
          regulator-boot-on;
        };
        mt6331_vcamaf_reg: ldo-vcamaf {
          regulator-name = "vcam_af";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vmc_reg: ldo-vmc {
          regulator-name = "vmc";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vmch_reg: ldo-vmch {
          regulator-name = "vmch";
          regulator-min-microvolt = <3000000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vemc33_reg: ldo-vemc33 {
          regulator-name = "vemc33";
          regulator-min-microvolt = <3300000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vgp1_reg: ldo-vgp1 {
          regulator-name = "vgp1";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vsim1_reg: ldo-vsim1 {
          regulator-name = "vsim1";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
        };
        mt6331_vsim2_reg: ldo-vsim2 {
          regulator-name = "vsim2";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
        };
        mt6331_vmipi_reg: ldo-vmipi {
          regulator-name = "vmipi";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vibr_reg: ldo-vibr {
          regulator-name = "vibr";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6331_vgp4_reg: ldo-vgp4 {
          regulator-name = "vgp4";
          regulator-min-microvolt = <1600000>;
          regulator-max-microvolt = <2200000>;
        };
        mt6331_vcamd_reg: ldo-vcamd {
          regulator-name = "vcamd";
          regulator-min-microvolt = <900000>;
          regulator-max-microvolt = <1500000>;
        };
        mt6331_vusb10_reg: ldo-vusb10 {
          regulator-name = "vusb";
          regulator-min-microvolt = <1000000>;
          regulator-max-microvolt = <1300000>;
          regulator-boot-on;
        };
        mt6331_vcamio_reg: ldo-vcamio {
          regulator-name = "vcam_io";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1800000>;
        };
        mt6331_vsram_reg: ldo-vsram {
          regulator-name = "vsram";
          regulator-min-microvolt = <1012500>;
          regulator-max-microvolt = <1012500>;
          regulator-always-on;
          regulator-boot-on;
        };
        mt6331_vgp2_reg: ldo-vgp2 {
          regulator-name = "vgp2";
          regulator-min-microvolt = <1100000>;
          regulator-max-microvolt = <1500000>;
          regulator-boot-on;
        };
        mt6331_vgp3_reg: ldo-vgp3 {
          regulator-name = "vgp3";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1800000>;
        };
        mt6331_vrtc_reg: ldo-vrtc {
          regulator-name = "vrtc";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-always-on;
        };
        mt6331_vdig18_reg: ldo-vdig18 {
          regulator-name = "dvdd18_dig";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
        };
      };
    };
...

repo_name: angery/linux


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6332-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT6332 Regulator from MediaTek Integrated

maintainers:
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

description: |
  The MT6332 Companion PMIC provides 6 BUCK and 4 LDO (Low Dropout)
  regulators and nodes are named according to the regulator type:
  buck-<name> and ldo-<name>.
  MT6332 regulators node should be sub node of the MT6397 MFD node.

patternProperties:
  "^buck-v(dram|dvfs2|pa|rf18a|rf18b|sbst)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(dram|dvfs2|pa|rf18a|rf18b|sbst)$"

    unevaluatedProperties: false

  "^ldo-v(bif28|dig18|sram|usb33)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(bif28|dig18|sram|usb33)$"

    unevaluatedProperties: false

additionalProperties: false

examples:
  - |
    pmic {
      regulators {
        mt6332_vdram_reg: buck-vdram {
          regulator-name = "vdram";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-allowed-modes = <0 1>;
          regulator-always-on;
        };
        mt6332_vdvfs2_reg: buck-vdvfs2 {
          regulator-name = "vdvfs2";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1312500>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6332_vpa_reg: buck-vpa {
          regulator-name = "vpa";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <3400000>;
        };
        mt6332_vrf18a_reg: buck-vrf18a {
          regulator-name = "vrf18a";
          regulator-min-microvolt = <1050000>;
          regulator-max-microvolt = <2240625>;
          regulator-allowed-modes = <0 1>;
        };
        mt6332_vrf18b_reg: buck-vrf18b {
          regulator-name = "vrf18b";
          regulator-min-microvolt = <1050000>;
          regulator-max-microvolt = <2240625>;
          regulator-allowed-modes = <0 1>;
        };
        mt6332_vsbst_reg: buck-vsbst {
          regulator-name = "vsbst";
          regulator-min-microvolt = <3500000>;
          regulator-max-microvolt = <7468750>;
        };
        mt6332_vauxb32_reg: ldo-vauxb32 {
          regulator-name = "vauxb32";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3200000>;
        };
        mt6332_vbif28_reg: ldo-vbif28 {
          regulator-name = "vbif28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
        };
        mt6332_vdig18_reg: ldo-vdig18 {
          regulator-name = "vdig18";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1800000>;
          regulator-always-on;
        };
        mt6332_vsram_reg: ldo-vsram {
          regulator-name = "vauxa32";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-always-on;
        };
        mt6332_vusb33_reg: ldo-vusb33 {
          regulator-name = "vusb33";
          regulator-min-microvolt = <3300000>;
          regulator-max-microvolt = <3300000>;
        };
      };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6357-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek MT6357 Regulators

maintainers:
  - Chen Zhong <chen.zhong@mediatek.com>
  - Fabien Parent <fabien.parent@linaro.org>
  - Alexandre Mergnat <amergnat@baylibre.com>

description: |
  The MT6357 PMIC provides 5 BUCK and 29 LDO.
  Regulators and nodes are named according to the regulator type:
  - buck-<name>
  - ldo-<name>.
  MT6357 regulators node should be sub node of the MT6397 MFD node.

patternProperties:
  "^buck-v(core|modem|pa|proc|s1)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single BUCK regulator.

    required:
      - regulator-name
      - regulator-min-microvolt
      - regulator-max-microvolt

  "^ldo-v(camio18|aud28|aux18|io18|io28|rf12|rf18|cn18|cn28|fe28)$":
    type: object
    $ref: fixed-regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single fixed LDO regulator.

    required:
      - regulator-name
      - regulator-min-microvolt
      - regulator-max-microvolt

  "^ldo-v(efuse|ibr|ldo28|mch|cama|camd|cn33-bt|cn33-wifi)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name
      - regulator-min-microvolt
      - regulator-max-microvolt

  "^ldo-v(xo22|emc|mc|sim1|sim2|sram-others|sram-proc|dram|usb33)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name
      - regulator-min-microvolt
      - regulator-max-microvolt

additionalProperties: false

examples:
  - |
    pmic {
      regulators {
        mt6357_vproc_reg: buck-vproc {
          regulator-name = "vproc";
          regulator-min-microvolt = <518750>;
          regulator-max-microvolt = <1312500>;
          regulator-ramp-delay = <6250>;
          regulator-enable-ramp-delay = <220>;
          regulator-always-on;
        };
        mt6357_vcore_reg: buck-vcore {
          regulator-name = "vcore";
          regulator-min-microvolt = <518750>;
          regulator-max-microvolt = <1312500>;
          regulator-ramp-delay = <6250>;
          regulator-enable-ramp-delay = <220>;
          regulator-always-on;
        };
        mt6357_vmodem_reg: buck-vmodem {
          regulator-name = "vmodem";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <6250>;
          regulator-enable-ramp-delay = <220>;
        };
        mt6357_vs1_reg: buck-vs1 {
          regulator-name = "vs1";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <2200000>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <220>;
          regulator-always-on;
        };
        mt6357_vpa_reg: buck-vpa {
          regulator-name = "vpa";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <3650000>;
          regulator-ramp-delay = <50000>;
          regulator-enable-ramp-delay = <220>;
        };
        mt6357_vfe28_reg: ldo-vfe28 {
          compatible = "regulator-fixed";
          regulator-name = "vfe28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vxo22_reg: ldo-vxo22 {
          regulator-name = "vxo22";
          regulator-min-microvolt = <2200000>;
          regulator-max-microvolt = <2400000>;
          regulator-enable-ramp-delay = <110>;
        };
        mt6357_vrf18_reg: ldo-vrf18 {
          compatible = "regulator-fixed";
          regulator-name = "vrf18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <110>;
        };
        mt6357_vrf12_reg: ldo-vrf12 {
          compatible = "regulator-fixed";
          regulator-name = "vrf12";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1200000>;
          regulator-enable-ramp-delay = <110>;
        };
        mt6357_vefuse_reg: ldo-vefuse {
          regulator-name = "vefuse";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcn33_bt_reg: ldo-vcn33-bt {
          regulator-name = "vcn33-bt";
          regulator-min-microvolt = <3300000>;
          regulator-max-microvolt = <3500000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcn33_wifi_reg: ldo-vcn33-wifi {
          regulator-name = "vcn33-wifi";
          regulator-min-microvolt = <3300000>;
          regulator-max-microvolt = <3500000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcn28_reg: ldo-vcn28 {
          compatible = "regulator-fixed";
          regulator-name = "vcn28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcn18_reg: ldo-vcn18 {
          compatible = "regulator-fixed";
          regulator-name = "vcn18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcama_reg: ldo-vcama {
          regulator-name = "vcama";
          regulator-min-microvolt = <2500000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcamd_reg: ldo-vcamd {
          regulator-name = "vcamd";
          regulator-min-microvolt = <1000000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vcamio_reg: ldo-vcamio18 {
          compatible = "regulator-fixed";
          regulator-name = "vcamio";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vldo28_reg: ldo-vldo28 {
          regulator-name = "vldo28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3000000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vsram_others_reg: ldo-vsram-others {
          regulator-name = "vsram-others";
          regulator-min-microvolt = <518750>;
          regulator-max-microvolt = <1312500>;
          regulator-ramp-delay = <6250>;
          regulator-enable-ramp-delay = <110>;
          regulator-always-on;
        };
        mt6357_vsram_proc_reg: ldo-vsram-proc {
          regulator-name = "vsram-proc";
          regulator-min-microvolt = <518750>;
          regulator-max-microvolt = <1312500>;
          regulator-ramp-delay = <6250>;
          regulator-enable-ramp-delay = <110>;
          regulator-always-on;
        };
        mt6357_vaux18_reg: ldo-vaux18 {
          compatible = "regulator-fixed";
          regulator-name = "vaux18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vaud28_reg: ldo-vaud28 {
          compatible = "regulator-fixed";
          regulator-name = "vaud28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vio28_reg: ldo-vio28 {
          compatible = "regulator-fixed";
          regulator-name = "vio28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vio18_reg: ldo-vio18 {
          compatible = "regulator-fixed";
          regulator-name = "vio18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <264>;
          regulator-always-on;
        };
        mt6357_vdram_reg: ldo-vdram {
          regulator-name = "vdram";
          regulator-min-microvolt = <1100000>;
          regulator-max-microvolt = <1200000>;
          regulator-enable-ramp-delay = <3300>;
        };
        mt6357_vmc_reg: ldo-vmc {
          regulator-name = "vmc";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <3300000>;
          regulator-enable-ramp-delay = <44>;
        };
        mt6357_vmch_reg: ldo-vmch {
          regulator-name = "vmch";
          regulator-min-microvolt = <2900000>;
          regulator-max-microvolt = <3300000>;
          regulator-enable-ramp-delay = <44>;
        };
        mt6357_vemc_reg: ldo-vemc {
          regulator-name = "vemc";
          regulator-min-microvolt = <2900000>;
          regulator-max-microvolt = <3300000>;
          regulator-enable-ramp-delay = <44>;
          regulator-always-on;
        };
        mt6357_vsim1_reg: ldo-vsim1 {
          regulator-name = "vsim1";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vsim2_reg: ldo-vsim2 {
          regulator-name = "vsim2";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
          regulator-enable-ramp-delay = <264>;
        };
        mt6357_vibr_reg: ldo-vibr {
          regulator-name = "vibr";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
          regulator-enable-ramp-delay = <44>;
        };
        mt6357_vusb33_reg: ldo-vusb33 {
          regulator-name = "vusb33";
          regulator-min-microvolt = <3000000>;
          regulator-max-microvolt = <3100000>;
          regulator-enable-ramp-delay = <264>;
        };
      };
    };
...


code:
Monolithic Power Systems MP8859 voltage regulator

Required properties:
- compatible: "mps,mp8859";
- reg: I2C slave address.

Optional subnode for regulator: "mp8859_dcdc", using common regulator
bindings given in <Documentation/devicetree/bindings/regulator/regulator.txt>.

Example:

	mp8859: regulator@66 {
		compatible = "mps,mp8859";
		reg = <0x66>;
		dc_12v: mp8859_dcdc {
			regulator-name = "dc_12v";
			regulator-min-microvolt = <12000000>;
			regulator-max-microvolt = <12000000>;
			regulator-boot-on;
			regulator-always-on;
		};
	};


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mp5416.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Monolithic Power System MP5416 PMIC

maintainers:
  - Saravanan Sekar <sravanhome@gmail.com>

properties:
  $nodename:
    pattern: "^pmic@[0-9a-f]{1,2}$"
  compatible:
    enum:
      - mps,mp5416
      - mps,mp5496

  reg:
    maxItems: 1

  regulators:
    type: object
    description: |
      list of regulators provided by this controller, must be named
      after their hardware counterparts BUCK[1-4] and LDO[1-4]

    patternProperties:
      "^buck[1-4]$":
        $ref: "regulator.yaml#"
        type: object

      "^ldo[1-4]$":
        $ref: "regulator.yaml#"
        type: object

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@69 {
          compatible = "mps,mp5416";
          reg = <0x69>;

          regulators {

            buck1 {
             regulator-name = "buck1";
             regulator-min-microvolt = <600000>;
             regulator-max-microvolt = <2187500>;
             regulator-min-microamp  = <3800000>;
             regulator-max-microamp  = <6800000>;
             regulator-boot-on;
            };

            ldo2 {
             regulator-name = "ldo2";
             regulator-min-microvolt = <800000>;
             regulator-max-microvolt = <3975000>;
            };
         };
       };
     };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mp886x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Monolithic Power Systems MP8867/MP8869 voltage regulator

maintainers:
  - Jisheng Zhang <jszhang@kernel.org>

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    enum:
      - mps,mp8867
      - mps,mp8869

  reg:
    maxItems: 1

  enable-gpios:
    description: GPIO to enable/disable the regulator.
    maxItems: 1

  mps,fb-voltage-divider:
    description: An array of two integers containing the resistor
      values R1 and R2 of the feedback voltage divider in kilo ohms.
    $ref: "/schemas/types.yaml#/definitions/uint32-array"
    maxItems: 2

  mps,switch-frequency-hz:
    description: The valid switch frequency in Hertz.
    enum: [500000, 750000, 1000000, 1250000, 1500000]

required:
  - compatible
  - reg
  - enable-gpios
  - mps,fb-voltage-divider

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        regulator@62 {
          compatible = "mps,mp8869";
          regulator-name = "vcpu";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <1150000>;
          enable-gpios = <&porta 1 GPIO_ACTIVE_LOW>;
          mps,fb-voltage-divider = <80 240>;
          reg = <0x62>;
        };
    };

...


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mpq7920.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Monolithic Power System MPQ7920 PMIC

maintainers:
  - Saravanan Sekar <sravanhome@gmail.com>

properties:
  $nodename:
    pattern: "pmic@[0-9a-f]{1,2}"
  compatible:
    enum:
      - mps,mpq7920

  reg:
    maxItems: 1

  regulators:
    type: object
    $ref: regulator.yaml#

    description: |
      list of regulators provided by this controller, must be named
      after their hardware counterparts BUCK[1-4], one LDORTC, and LDO[2-5]

    properties:
      mps,switch-freq:
        $ref: "/schemas/types.yaml#/definitions/uint8"
        enum: [0, 1, 2, 3]
        default: 2
        description: |
          switching frequency must be one of following corresponding value
          1.1MHz, 1.65MHz, 2.2MHz, 2.75MHz

      ldortc:
        type: object
        $ref: regulator.yaml#

    patternProperties:
      "^ldo[1-4]$":
        type: object
        $ref: regulator.yaml#

      "^buck[1-4]$":
        type: object
        $ref: regulator.yaml#

        properties:
          mps,buck-softstart:
            $ref: "/schemas/types.yaml#/definitions/uint8"
            enum: [0, 1, 2, 3]
            description: |
              defines the soft start time of this buck, must be one of the following
              corresponding values 150us, 300us, 610us, 920us

          mps,buck-phase-delay:
            $ref: "/schemas/types.yaml#/definitions/uint8"
            enum: [0, 1, 2, 3]
            description: |
              defines the phase delay of this buck, must be one of the following
              corresponding values 0deg, 90deg, 180deg, 270deg

          mps,buck-ovp-disable:
            type: boolean
            description: |
              disables over voltage protection of this buck

        unevaluatedProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@69 {
          compatible = "mps,mpq7920";
          reg = <0x69>;

          regulators {
            mps,switch-freq = /bits/ 8 <1>;

            buck1 {
             regulator-name = "buck1";
             regulator-min-microvolt = <400000>;
             regulator-max-microvolt = <3587500>;
             regulator-min-microamp  = <460000>;
             regulator-max-microamp  = <7600000>;
             regulator-boot-on;
             mps,buck-ovp-disable;
             mps,buck-phase-delay = /bits/ 8 <2>;
             mps,buck-softstart = /bits/ 8 <1>;
            };

            ldo2 {
             regulator-name = "ldo2";
             regulator-min-microvolt = <650000>;
             regulator-max-microvolt = <3587500>;
            };
         };
       };
     };
...


code:
Mediatek MT6311 Regulator

Required properties:
- compatible: "mediatek,mt6311-regulator"
- reg: I2C slave address, usually 0x6b.
- regulators: List of regulators provided by this controller. It is named
  to VDVFS and VBIASN.
  The definition for each of these nodes is defined using the standard binding
  for regulators at Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are:
BUCK:
  VDVFS
LDO:
  VBIASN

Example:
	mt6311: pmic@6b {
		compatible = "mediatek,mt6311-regulator";
		reg = <0x6b>;

		regulators {
			mt6311_vcpu_reg: VDVFS {
				regulator-name = "VDVFS";
				regulator-min-microvolt = < 600000>;
				regulator-max-microvolt = <1400000>;
				regulator-ramp-delay = <10000>;
			};
			mt6311_ldo_reg: VBIASN {
				regulator-name = "VBIASN";
				regulator-min-microvolt = <200000>;
				regulator-max-microvolt = <800000>;
			};
		};
	};


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mt6315-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Mediatek MT6315 Regulator

maintainers:
  - Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>

description: |
  The MT6315 is a power management IC (PMIC) configurable with SPMI.
  that contains 4 BUCKs output which can combine with each other
  by different efuse settings.

properties:
  compatible:
    const: mediatek,mt6315-regulator

  reg:
    maxItems: 1

  regulators:
    type: object
    description: List of regulators and its properties

    patternProperties:
      "^vbuck[1-4]$":
        type: object
        $ref: "regulator.yaml#"
        unevaluatedProperties: false

        properties:
          regulator-compatible:
            pattern: "^vbuck[1-4]$"

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    pmic@6 {
      compatible = "mediatek,mt6315-regulator";
      reg = <0x6 0>;

      regulators {
        vbuck1 {
          regulator-compatible = "vbuck1";
          regulator-min-microvolt = <300000>;
          regulator-max-microvolt = <1193750>;
          regulator-enable-ramp-delay = <256>;
          regulator-allowed-modes = <0 1 2>;
        };

        vbuck3 {
          regulator-compatible = "vbuck3";
          regulator-min-microvolt = <300000>;
          regulator-max-microvolt = <1193750>;
          regulator-enable-ramp-delay = <256>;
          regulator-allowed-modes = <0 1 2>;
        };
      };
    };


code:
Mediatek MT6323 Regulator

All voltage regulators are defined as subnodes of the regulators node. A list
of regulators provided by this controller are defined as subnodes of the
PMIC's node. Each regulator is named according to its regulator type,
buck_<name> and ldo_<name>. The definition for each of these nodes is defined
using the standard binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are::
BUCK:
  buck_vproc, buck_vsys, buck_vpa
LDO:
  ldo_vtcxo, ldo_vcn28, ldo_vcn33_bt, ldo_vcn33_wifi, ldo_va, ldo_vcama,
  ldo_vio28, ldo_vusb, ldo_vmc, ldo_vmch, ldo_vemc3v3, ldo_vgp1, ldo_vgp2,
  ldo_vgp3, ldo_vcn18, ldo_vsim1, ldo_vsim2, ldo_vrtc, ldo_vcamaf, ldo_vibr,
  ldo_vrf18, ldo_vm, ldo_vio18, ldo_vcamd, ldo_vcamio

Example:

	pmic: mt6323 {
		mt6323regulator: regulators {
			mt6323_vproc_reg: buck_vproc{
				regulator-name = "vproc";
				regulator-min-microvolt = < 700000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vsys_reg: buck_vsys{
				regulator-name = "vsys";
				regulator-min-microvolt = <1400000>;
				regulator-max-microvolt = <2987500>;
				regulator-ramp-delay = <25000>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vpa_reg: buck_vpa{
				regulator-name = "vpa";
				regulator-min-microvolt = < 500000>;
				regulator-max-microvolt = <3650000>;
			};

			mt6323_vtcxo_reg: ldo_vtcxo{
				regulator-name = "vtcxo";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <90>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcn28_reg: ldo_vcn28{
				regulator-name = "vcn28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <185>;
			};

			mt6323_vcn33_bt_reg: ldo_vcn33_bt{
				regulator-name = "vcn33_bt";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3600000>;
				regulator-enable-ramp-delay = <185>;
			};

			mt6323_vcn33_wifi_reg: ldo_vcn33_wifi{
				regulator-name = "vcn33_wifi";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3600000>;
				regulator-enable-ramp-delay = <185>;
			};

			mt6323_va_reg: ldo_va{
				regulator-name = "va";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcama_reg: ldo_vcama{
				regulator-name = "vcama";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vio28_reg: ldo_vio28{
				regulator-name = "vio28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vusb_reg: ldo_vusb{
				regulator-name = "vusb";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <216>;
				regulator-boot-on;
			};

			mt6323_vmc_reg: ldo_vmc{
				regulator-name = "vmc";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
				regulator-boot-on;
			};

			mt6323_vmch_reg: ldo_vmch{
				regulator-name = "vmch";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
				regulator-boot-on;
			};

			mt6323_vemc3v3_reg: ldo_vemc3v3{
				regulator-name = "vemc3v3";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
				regulator-boot-on;
			};

			mt6323_vgp1_reg: ldo_vgp1{
				regulator-name = "vgp1";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vgp2_reg: ldo_vgp2{
				regulator-name = "vgp2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vgp3_reg: ldo_vgp3{
				regulator-name = "vgp3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vcn18_reg: ldo_vcn18{
				regulator-name = "vcn18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vsim1_reg: ldo_vsim1{
				regulator-name = "vsim1";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vsim2_reg: ldo_vsim2{
				regulator-name = "vsim2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vrtc_reg: ldo_vrtc{
				regulator-name = "vrtc";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcamaf_reg: ldo_vcamaf{
				regulator-name = "vcamaf";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vibr_reg: ldo_vibr{
				regulator-name = "vibr";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <36>;
			};

			mt6323_vrf18_reg: ldo_vrf18{
				regulator-name = "vrf18";
				regulator-min-microvolt = <1825000>;
				regulator-max-microvolt = <1825000>;
				regulator-enable-ramp-delay = <187>;
			};

			mt6323_vm_reg: ldo_vm{
				regulator-name = "vm";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vio18_reg: ldo_vio18{
				regulator-name = "vio18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
				regulator-always-on;
				regulator-boot-on;
			};

			mt6323_vcamd_reg: ldo_vcamd{
				regulator-name = "vcamd";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};

			mt6323_vcamio_reg: ldo_vcamio{
				regulator-name = "vcamio";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <216>;
			};
		};
	};


code:
MediaTek MT6358 Regulator

All voltage regulators provided by the MT6358 PMIC are described as the
subnodes of the MT6358 regulators node. Each regulator is named according
to its regulator type, buck_<name> and ldo_<name>. The definition for each
of these nodes is defined using the standard binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are::
BUCK:
  buck_vdram1, buck_vcore, buck_vcore_sshub, buck_vpa, buck_vproc11,
  buck_vproc12, buck_vgpu, buck_vs2, buck_vmodem, buck_vs1
LDO:
  ldo_vdram2, ldo_vsim1, ldo_vibr, ldo_vrf12, ldo_vio18, ldo_vusb, ldo_vcamio,
  ldo_vcamd, ldo_vcn18, ldo_vfe28, ldo_vsram_proc11, ldo_vcn28, ldo_vsram_others,
  ldo_vsram_others_sshub, ldo_vsram_gpu, ldo_vxo22, ldo_vefuse, ldo_vaux18,
  ldo_vmch, ldo_vbif28, ldo_vsram_proc12, ldo_vcama1, ldo_vemc, ldo_vio28, ldo_va12,
  ldo_vrf18, ldo_vcn33_bt, ldo_vcn33_wifi, ldo_vcama2, ldo_vmc, ldo_vldo28, ldo_vaud28,
  ldo_vsim2

Example:

	pmic {
		compatible = "mediatek,mt6358";

		mt6358regulator: mt6358regulator {
			compatible = "mediatek,mt6358-regulator";

			mt6358_vdram1_reg: buck_vdram1 {
				regulator-compatible = "buck_vdram1";
				regulator-name = "vdram1";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <2087500>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <0>;
				regulator-always-on;
			};

			mt6358_vcore_reg: buck_vcore {
				regulator-name = "vcore";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <200>;
				regulator-always-on;
			};

			mt6358_vpa_reg: buck_vpa {
				regulator-name = "vpa";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <3650000>;
				regulator-ramp-delay = <50000>;
				regulator-enable-ramp-delay = <250>;
			};

			mt6358_vproc11_reg: buck_vproc11 {
				regulator-name = "vproc11";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <200>;
				regulator-always-on;
			};

			mt6358_vproc12_reg: buck_vproc12 {
				regulator-name = "vproc12";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <200>;
				regulator-always-on;
			};

			mt6358_vgpu_reg: buck_vgpu {
				regulator-name = "vgpu";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <200>;
			};

			mt6358_vs2_reg: buck_vs2 {
				regulator-name = "vs2";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <2087500>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <0>;
				regulator-always-on;
			};

			mt6358_vmodem_reg: buck_vmodem {
				regulator-name = "vmodem";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <900>;
				regulator-always-on;
			};

			mt6358_vs1_reg: buck_vs1 {
				regulator-name = "vs1";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <2587500>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <0>;
				regulator-always-on;
			};

			mt6358_vdram2_reg: ldo_vdram2 {
				regulator-name = "vdram2";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <3300>;
			};

			mt6358_vsim1_reg: ldo_vsim1 {
				regulator-name = "vsim1";
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <540>;
			};

			mt6358_vibr_reg: ldo_vibr {
				regulator-name = "vibr";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <60>;
			};

			mt6358_vrf12_reg: ldo_vrf12 {
				compatible = "regulator-fixed";
				regulator-name = "vrf12";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-enable-ramp-delay = <120>;
			};

			mt6358_vio18_reg: ldo_vio18 {
				compatible = "regulator-fixed";
				regulator-name = "vio18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <2700>;
				regulator-always-on;
			};

			mt6358_vusb_reg: ldo_vusb {
				regulator-name = "vusb";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <270>;
				regulator-always-on;
			};

			mt6358_vcamio_reg: ldo_vcamio {
				compatible = "regulator-fixed";
				regulator-name = "vcamio";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vcamd_reg: ldo_vcamd {
				regulator-name = "vcamd";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vcn18_reg: ldo_vcn18 {
				compatible = "regulator-fixed";
				regulator-name = "vcn18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vfe28_reg: ldo_vfe28 {
				compatible = "regulator-fixed";
				regulator-name = "vfe28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vsram_proc11_reg: ldo_vsram_proc11 {
				regulator-name = "vsram_proc11";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <240>;
				regulator-always-on;
			};

			mt6358_vcn28_reg: ldo_vcn28 {
				compatible = "regulator-fixed";
				regulator-name = "vcn28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vsram_others_reg: ldo_vsram_others {
				regulator-name = "vsram_others";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <240>;
				regulator-always-on;
			};

			mt6358_vsram_gpu_reg: ldo_vsram_gpu {
				regulator-name = "vsram_gpu";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <240>;
			};

			mt6358_vxo22_reg: ldo_vxo22 {
				compatible = "regulator-fixed";
				regulator-name = "vxo22";
				regulator-min-microvolt = <2200000>;
				regulator-max-microvolt = <2200000>;
				regulator-enable-ramp-delay = <120>;
				regulator-always-on;
			};

			mt6358_vefuse_reg: ldo_vefuse {
				regulator-name = "vefuse";
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <1900000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vaux18_reg: ldo_vaux18 {
				compatible = "regulator-fixed";
				regulator-name = "vaux18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vmch_reg: ldo_vmch {
				regulator-name = "vmch";
				regulator-min-microvolt = <2900000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <60>;
			};

			mt6358_vbif28_reg: ldo_vbif28 {
				compatible = "regulator-fixed";
				regulator-name = "vbif28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vsram_proc12_reg: ldo_vsram_proc12 {
				regulator-name = "vsram_proc12";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
				regulator-ramp-delay = <6250>;
				regulator-enable-ramp-delay = <240>;
				regulator-always-on;
			};

			mt6358_vcama1_reg: ldo_vcama1 {
				regulator-name = "vcama1";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vemc_reg: ldo_vemc {
				regulator-name = "vemc";
				regulator-min-microvolt = <2900000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <60>;
				regulator-always-on;
			};

			mt6358_vio28_reg: ldo_vio28 {
				compatible = "regulator-fixed";
				regulator-name = "vio28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_va12_reg: ldo_va12 {
				compatible = "regulator-fixed";
				regulator-name = "va12";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-enable-ramp-delay = <270>;
				regulator-always-on;
			};

			mt6358_vrf18_reg: ldo_vrf18 {
				compatible = "regulator-fixed";
				regulator-name = "vrf18";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-enable-ramp-delay = <120>;
			};

			mt6358_vcn33_bt_reg: ldo_vcn33_bt {
				regulator-name = "vcn33_bt";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3500000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vcn33_wifi_reg: ldo_vcn33_wifi {
				regulator-name = "vcn33_wifi";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3500000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vcama2_reg: ldo_vcama2 {
				regulator-name = "vcama2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vmc_reg: ldo_vmc {
				regulator-name = "vmc";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <60>;
			};

			mt6358_vldo28_reg: ldo_vldo28 {
				regulator-name = "vldo28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vaud28_reg: ldo_vaud28 {
				compatible = "regulator-fixed";
				regulator-name = "vaud28";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vsim2_reg: ldo_vsim2 {
				regulator-name = "vsim2";
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <540>;
			};

			mt6358_vcore_sshub_reg: buck_vcore_sshub {
				regulator-name = "vcore_sshub";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
			};

			mt6358_vsram_others_sshub_reg: ldo_vsram_others_sshub {
				regulator-name = "vsram_others_sshub";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
			};
		};
	};


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mt6359-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT6359 Regulator from MediaTek Integrated

maintainers:
  - Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>

description: |
  List of regulators provided by this controller. It is named
  according to its regulator type, buck_<name> and ldo_<name>.
  MT6359 regulators node should be sub node of the MT6397 MFD node.

patternProperties:
  "^buck_v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$"

    unevaluatedProperties: false

  "^ldo_v(ibr|rf12|usb|camio|efuse|xo22)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(ibr|rf12|usb|camio|efuse|xo22)$"

    unevaluatedProperties: false

  "^ldo_v(rfck|emc|a12|a09|ufs|bbck)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(rfck|emc|a12|a09|ufs|bbck)$"

    unevaluatedProperties: false

  "^ldo_vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$"

    unevaluatedProperties: false

  "^ldo_vsram_(proc2|others|md|proc1|others_sshub)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vsram_(proc2|others|md|proc1|others_sshub)$"

    unevaluatedProperties: false

  "^ldo_v(fe|bif|io)28$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(fe|bif|io)28$"

    unevaluatedProperties: false

  "^ldo_v(aud|io|aux|rf|m)18$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(aud|io|aux|rf|m)18$"

    unevaluatedProperties: false

  "^ldo_vsim[12]$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vsim[12]$"

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false

examples:
  - |
    pmic {
      regulators {
        mt6359_vs1_buck_reg: buck_vs1 {
          regulator-name = "vs1";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <2200000>;
          regulator-enable-ramp-delay = <0>;
          regulator-always-on;
        };
        mt6359_vgpu11_buck_reg: buck_vgpu11 {
          regulator-name = "vgpu11";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vmodem_buck_reg: buck_vmodem {
          regulator-name = "vmodem";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1100000>;
          regulator-ramp-delay = <10760>;
          regulator-enable-ramp-delay = <200>;
        };
        mt6359_vpu_buck_reg: buck_vpu {
          regulator-name = "vpu";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vcore_buck_reg: buck_vcore {
          regulator-name = "vcore";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1300000>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vs2_buck_reg: buck_vs2 {
          regulator-name = "vs2";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <1600000>;
          regulator-enable-ramp-delay = <0>;
          regulator-always-on;
        };
        mt6359_vpa_buck_reg: buck_vpa {
          regulator-name = "vpa";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <3650000>;
          regulator-enable-ramp-delay = <300>;
        };
        mt6359_vproc2_buck_reg: buck_vproc2 {
          regulator-name = "vproc2";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vproc1_buck_reg: buck_vproc1 {
          regulator-name = "vproc1";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vcore_sshub_buck_reg: buck_vcore_sshub {
          regulator-name = "vcore_sshub";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
        };
        mt6359_vgpu11_sshub_buck_reg: buck_vgpu11_sshub {
          regulator-name = "vgpu11_sshub";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
        };
        mt6359_vaud18_ldo_reg: ldo_vaud18 {
          regulator-name = "vaud18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vsim1_ldo_reg: ldo_vsim1 {
          regulator-name = "vsim1";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
        };
        mt6359_vibr_ldo_reg: ldo_vibr {
          regulator-name = "vibr";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6359_vrf12_ldo_reg: ldo_vrf12 {
          regulator-name = "vrf12";
          regulator-min-microvolt = <1100000>;
          regulator-max-microvolt = <1300000>;
        };
        mt6359_vusb_ldo_reg: ldo_vusb {
          regulator-name = "vusb";
          regulator-min-microvolt = <3000000>;
          regulator-max-microvolt = <3000000>;
          regulator-enable-ramp-delay = <960>;
          regulator-always-on;
        };
        mt6359_vsram_proc2_ldo_reg: ldo_vsram_proc2 {
          regulator-name = "vsram_proc2";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <240>;
          regulator-always-on;
        };
        mt6359_vio18_ldo_reg: ldo_vio18 {
          regulator-name = "vio18";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
          regulator-enable-ramp-delay = <960>;
          regulator-always-on;
        };
        mt6359_vcamio_ldo_reg: ldo_vcamio {
          regulator-name = "vcamio";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
        };
        mt6359_vcn18_ldo_reg: ldo_vcn18 {
          regulator-name = "vcn18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vfe28_ldo_reg: ldo_vfe28 {
          regulator-name = "vfe28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <120>;
        };
        mt6359_vcn13_ldo_reg: ldo_vcn13 {
          regulator-name = "vcn13";
          regulator-min-microvolt = <900000>;
          regulator-max-microvolt = <1300000>;
        };
        mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1_bt {
          regulator-name = "vcn33_1_bt";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_vcn33_1_wifi_ldo_reg: ldo_vcn33_1_wifi {
          regulator-name = "vcn33_1_wifi";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_vaux18_ldo_reg: ldo_vaux18 {
          regulator-name = "vaux18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <240>;
          regulator-always-on;
        };
        mt6359_vsram_others_ldo_reg: ldo_vsram_others {
          regulator-name = "vsram_others";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vefuse_ldo_reg: ldo_vefuse {
          regulator-name = "vefuse";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <2000000>;
        };
        mt6359_vxo22_ldo_reg: ldo_vxo22 {
          regulator-name = "vxo22";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <2200000>;
          regulator-always-on;
        };
        mt6359_vrfck_ldo_reg: ldo_vrfck {
          regulator-name = "vrfck";
          regulator-min-microvolt = <1500000>;
          regulator-max-microvolt = <1700000>;
        };
        mt6359_vrfck_1_ldo_reg: ldo_vrfck_1 {
          regulator-name = "vrfck";
          regulator-min-microvolt = <1240000>;
          regulator-max-microvolt = <1600000>;
        };
        mt6359_vbif28_ldo_reg: ldo_vbif28 {
          regulator-name = "vbif28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vio28_ldo_reg: ldo_vio28 {
          regulator-name = "vio28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3300000>;
          regulator-always-on;
        };
        mt6359_vemc_ldo_reg: ldo_vemc {
          regulator-name = "vemc";
          regulator-min-microvolt = <2900000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6359_vemc_1_ldo_reg: ldo_vemc_1 {
          regulator-name = "vemc";
          regulator-min-microvolt = <2500000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2_bt {
          regulator-name = "vcn33_2_bt";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_vcn33_2_wifi_ldo_reg: ldo_vcn33_2_wifi {
          regulator-name = "vcn33_2_wifi";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_va12_ldo_reg: ldo_va12 {
          regulator-name = "va12";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1300000>;
          regulator-always-on;
        };
        mt6359_va09_ldo_reg: ldo_va09 {
          regulator-name = "va09";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <1200000>;
        };
        mt6359_vrf18_ldo_reg: ldo_vrf18 {
          regulator-name = "vrf18";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1810000>;
        };
        mt6359_vsram_md_ldo_reg: ldo_vsram_md {
          regulator-name = "vsram_md";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <10760>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vufs_ldo_reg: ldo_vufs {
          regulator-name = "vufs";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
        };
        mt6359_vm18_ldo_reg: ldo_vm18 {
          regulator-name = "vm18";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
          regulator-always-on;
        };
        mt6359_vbbck_ldo_reg: ldo_vbbck {
          regulator-name = "vbbck";
          regulator-min-microvolt = <1100000>;
          regulator-max-microvolt = <1200000>;
        };
        mt6359_vsram_proc1_ldo_reg: ldo_vsram_proc1 {
          regulator-name = "vsram_proc1";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <240>;
          regulator-always-on;
        };
        mt6359_vsim2_ldo_reg: ldo_vsim2 {
          regulator-name = "vsim2";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
        };
        mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub {
          regulator-name = "vsram_others_sshub";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
        };
      };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mt6360-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT6360 Regulator from MediaTek Integrated

maintainers:
  - Gene Chen <gene_chen@richtek.com>

description: |
  list of regulators provided by this controller, must be named
  after their hardware counterparts buck1/2 or ldo1/2/3/5/6/7

properties:
  compatible:
    const: mediatek,mt6360-regulator

  LDO_VIN1-supply:
    description: Input supply phandle(s) for LDO1/2/3
  LDO_VIN2-supply:
    description: Input supply phandle(s) for LDO5
  LDO_VIN3-supply:
    description: Input supply phandle(s) for LDO6/7

patternProperties:
  "^buck[12]$":
    $ref: "regulator.yaml#"
    unevaluatedProperties: false

  "^ldo[123567]$":
    $ref: "regulator.yaml#"
    unevaluatedProperties: false

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
    regulator {
      compatible = "mediatek,mt6360-regulator";
      LDO_VIN3-supply = <&BUCK2>;
      buck1 {
        regulator-name = "mt6360,buck1";
        regulator-min-microvolt = <300000>;
        regulator-max-microvolt = <1300000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP
             MT6360_OPMODE_ULP>;
      };
      BUCK2: buck2 {
        regulator-name = "mt6360,buck2";
        regulator-min-microvolt = <300000>;
        regulator-max-microvolt = <1300000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP
             MT6360_OPMODE_ULP>;
      };
      ldo6 {
        regulator-name = "mt6360,ldo6";
        regulator-min-microvolt = <500000>;
        regulator-max-microvolt = <2100000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo7 {
        regulator-name = "mt6360,ldo7";
        regulator-min-microvolt = <500000>;
        regulator-max-microvolt = <2100000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo1 {
        regulator-name = "mt6360,ldo1";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo2 {
        regulator-name = "mt6360,ldo2";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo3 {
        regulator-name = "mt6360,ldo3";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo5 {
        regulator-name = "mt6360,ldo5";
        regulator-min-microvolt = <2700000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
    };
...


code:
MediaTek MT6380 Regulator

All voltage regulators provided by the MT6380 PMIC are described as the
subnodes of the MT6380 regulators node. Each regulator is named according
to its regulator type, buck-<name> and ldo-<name>. The definition for each
of these nodes is defined using the standard binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are:
BUCK:
  buck-core1, buck-vcore, buck-vrf
LDO:
  ldo-vm ,ldo-va , ldo-vphy, ldo-vddr, ldo-vt

Example:

	regulators {
		compatible = "mediatek,mt6380-regulator";

		mt6380_vcpu_reg: buck-vcore1 {
			regulator-name = "vcore1";
			regulator-min-microvolt = < 600000>;
			regulator-max-microvolt = <1393750>;
			regulator-ramp-delay = <6250>;
			regulator-always-on;
			regulator-boot-on;
		};

		mt6380_vcore_reg: buck-vcore {
			regulator-name = "vcore";
			regulator-min-microvolt = <600000>;
			regulator-max-microvolt = <1393750>;
			regulator-ramp-delay = <6250>;
		};

		mt6380_vrf_reg: buck-vrf {
			regulator-name = "vrf";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1575000>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};

		mt6380_vm_reg: ldo-vm {
			regulator-name = "vm";
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1400000>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};

		mt6380_va_reg: ldo-va {
			regulator-name = "va";
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <3300000>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};

		mt6380_vphy_reg: ldo-vphy {
			regulator-name = "vphy";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};

		mt6380_vddr_reg: ldo-vddr {
			regulator-name = "vddr";
			regulator-min-microvolt = <1240000>;
			regulator-max-microvolt = <1840000>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};

		mt6380_vt_reg: ldo-vt {
			regulator-name = "vt";
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <3300000>;
			regulator-ramp-delay = <0>;
			regulator-always-on;
			regulator-boot-on;
		};
	};


code:
Mediatek MT6397 Regulator

Required properties:
- compatible: "mediatek,mt6397-regulator"
- mt6397regulator: List of regulators provided by this controller. It is named
  according to its regulator type, buck_<name> and ldo_<name>.
  The definition for each of these nodes is defined using the standard binding
  for regulators at Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are::
BUCK:
  buck_vpca15, buck_vpca7, buck_vsramca15, buck_vsramca7, buck_vcore, buck_vgpu,
  buck_vdrm, buck_vio18
LDO:
  ldo_vtcxo, ldo_va28, ldo_vcama, ldo_vio28, ldo_vusb, ldo_vmc, ldo_vmch,
  ldo_vemc3v3, ldo_vgp1, ldo_vgp2, ldo_vgp3, ldo_vgp4, ldo_vgp5, ldo_vgp6,
  ldo_vibr

BUCK regulators can set regulator-initial-mode and regulator-allowed-modes to
values specified in dt-bindings/regulator/mediatek,mt6397-regulator.h

Example:
	pmic {
		compatible = "mediatek,mt6397";

		mt6397regulator: mt6397regulator {
			compatible = "mediatek,mt6397-regulator";

			mt6397_vpca15_reg: buck_vpca15 {
				regulator-compatible = "buck_vpca15";
				regulator-name = "vpca15";
				regulator-min-microvolt = < 850000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <200>;
			};

			mt6397_vpca7_reg: buck_vpca7 {
				regulator-compatible = "buck_vpca7";
				regulator-name = "vpca7";
				regulator-min-microvolt = < 850000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <115>;
			};

			mt6397_vsramca15_reg: buck_vsramca15 {
				regulator-compatible = "buck_vsramca15";
				regulator-name = "vsramca15";
				regulator-min-microvolt = < 850000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <115>;

			};

			mt6397_vsramca7_reg: buck_vsramca7 {
				regulator-compatible = "buck_vsramca7";
				regulator-name = "vsramca7";
				regulator-min-microvolt = < 850000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <115>;

			};

			mt6397_vcore_reg: buck_vcore {
				regulator-compatible = "buck_vcore";
				regulator-name = "vcore";
				regulator-min-microvolt = < 850000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <115>;
			};

			mt6397_vgpu_reg: buck_vgpu {
				regulator-compatible = "buck_vgpu";
				regulator-name = "vgpu";
				regulator-min-microvolt = < 700000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <115>;
			};

			mt6397_vdrm_reg: buck_vdrm {
				regulator-compatible = "buck_vdrm";
				regulator-name = "vdrm";
				regulator-min-microvolt = < 800000>;
				regulator-max-microvolt = <1400000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <500>;
			};

			mt6397_vio18_reg: buck_vio18 {
				regulator-compatible = "buck_vio18";
				regulator-name = "vio18";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2120000>;
				regulator-ramp-delay = <12500>;
				regulator-enable-ramp-delay = <500>;
			};

			mt6397_vtcxo_reg: ldo_vtcxo {
				regulator-compatible = "ldo_vtcxo";
				regulator-name = "vtcxo";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <90>;
			};

			mt6397_va28_reg: ldo_va28 {
				regulator-compatible = "ldo_va28";
				regulator-name = "va28";
				/* fixed output 2.8 V */
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vcama_reg: ldo_vcama {
				regulator-compatible = "ldo_vcama";
				regulator-name = "vcama";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2800000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vio28_reg: ldo_vio28 {
				regulator-compatible = "ldo_vio28";
				regulator-name = "vio28";
				/* fixed output 2.8 V */
				regulator-enable-ramp-delay = <240>;
			};

			mt6397_usb_reg: ldo_vusb {
				regulator-compatible = "ldo_vusb";
				regulator-name = "vusb";
				/* fixed output 3.3 V */
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vmc_reg: ldo_vmc {
				regulator-compatible = "ldo_vmc";
				regulator-name = "vmc";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vmch_reg: ldo_vmch {
				regulator-compatible = "ldo_vmch";
				regulator-name = "vmch";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vemc_3v3_reg: ldo_vemc3v3 {
				regulator-compatible = "ldo_vemc3v3";
				regulator-name = "vemc_3v3";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vgp1_reg: ldo_vgp1 {
				regulator-compatible = "ldo_vgp1";
				regulator-name = "vcamd";
				regulator-min-microvolt = <1220000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <240>;
			};

			mt6397_vgp2_reg: ldo_vgp2 {
				egulator-compatible = "ldo_vgp2";
				regulator-name = "vcamio";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vgp3_reg: ldo_vgp3 {
				regulator-compatible = "ldo_vgp3";
				regulator-name = "vcamaf";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vgp4_reg: ldo_vgp4 {
				regulator-compatible = "ldo_vgp4";
				regulator-name = "vgp4";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vgp5_reg: ldo_vgp5 {
				regulator-compatible = "ldo_vgp5";
				regulator-name = "vgp5";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3000000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vgp6_reg: ldo_vgp6 {
				regulator-compatible = "ldo_vgp6";
				regulator-name = "vgp6";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};

			mt6397_vibr_reg: ldo_vibr {
				regulator-compatible = "ldo_vibr";
				regulator-name = "vibr";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
				regulator-enable-ramp-delay = <218>;
			};
		};
	};


code:
NVIDIA Tegra Regulators Coupling
================================

NVIDIA Tegra SoC's have a mandatory voltage-coupling between regulators.
Thus on Tegra20 there are 3 coupled regulators and on NVIDIA Tegra30
there are 2.

Tegra20 voltage coupling
------------------------

On Tegra20 SoC's there are 3 coupled regulators: CORE, RTC and CPU.
The CORE and RTC voltages shall be in a range of 170mV from each other
and they both shall be higher than the CPU voltage by at least 120mV.

Tegra30 voltage coupling
------------------------

On Tegra30 SoC's there are 2 coupled regulators: CORE and CPU. The CORE
and CPU voltages shall be in a range of 300mV from each other and CORE
voltage shall be higher than the CPU by N mV, where N depends on the CPU
voltage.

Required properties:
- nvidia,tegra-core-regulator: Boolean property that designates regulator
  as the "Core domain" voltage regulator.
- nvidia,tegra-rtc-regulator: Boolean property that designates regulator
  as the "RTC domain" voltage regulator.
- nvidia,tegra-cpu-regulator: Boolean property that designates regulator
  as the "CPU domain" voltage regulator.

Example:

	pmic {
		regulators {
			core_vdd_reg: core {
				regulator-name = "vdd_core";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1300000>;
				regulator-coupled-with = <&rtc_vdd_reg &cpu_vdd_reg>;
				regulator-coupled-max-spread = <170000 550000>;

				nvidia,tegra-core-regulator;
			};

			rtc_vdd_reg: rtc {
				regulator-name = "vdd_rtc";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1300000>;
				regulator-coupled-with = <&core_vdd_reg &cpu_vdd_reg>;
				regulator-coupled-max-spread = <170000 550000>;

				nvidia,tegra-rtc-regulator;
			};

			cpu_vdd_reg: cpu {
				regulator-name = "vdd_cpu";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1125000>;
				regulator-coupled-with = <&core_vdd_reg &rtc_vdd_reg>;
				regulator-coupled-max-spread = <550000 550000>;

				nvidia,tegra-cpu-regulator;
			};
		};
	};


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/nxp,pca9450-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP PCA9450A/B/C Power Management Integrated Circuit regulators

maintainers:
  - Robin Gong <yibin.gong@nxp.com>

description: |
  Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
  definition for each of these nodes is defined using the standard
  binding for regulators at
  Documentation/devicetree/bindings/regulator/regulator.txt.
  Datasheet is available at
  https://www.nxp.com/docs/en/data-sheet/PCA9450DS.pdf

#The valid names for PCA9450 regulator nodes are:
#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6,
#LDO1, LDO2, LDO3, LDO4, LDO5
#Note: Buck3 removed on PCA9450B and connect with Buck1 on PCA9450C.

properties:
  compatible:
    enum:
      - nxp,pca9450a
      - nxp,pca9450b
      - nxp,pca9450c

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  regulators:
    type: object
    description: |
      list of regulators provided by this controller

    patternProperties:
      "^LDO[1-5]$":
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single LDO regulator.

        unevaluatedProperties: false

      "^BUCK[1-6]$":
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single BUCK regulator.

        properties:
          nxp,dvs-run-voltage:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            minimum: 600000
            maximum: 2187500
            description:
              PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
              dvs(dynamic voltage scaling) property.

          nxp,dvs-standby-voltage:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            minimum: 600000
            maximum: 2187500
            description:
              PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
              dvs(dynamic voltage scaling) property.

        unevaluatedProperties: false

    additionalProperties: false

  sd-vsel-gpios:
    description: GPIO that is used to switch LDO5 between being configured by
      LDO5CTRL_L or LDO5CTRL_H register. Use this if the SD_VSEL signal is
      connected to a host GPIO.

  nxp,i2c-lt-enable:
    type: boolean
    description:
      Indicates that the I2C Level Translator is used.

  nxp,wdog_b-warm-reset:
    type: boolean
    description:
      When WDOG_B signal is asserted a warm reset will be done instead of cold
      reset.

required:
  - compatible
  - reg
  - interrupts
  - regulators

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        pmic: pmic@25 {
            compatible = "nxp,pca9450b";
            reg = <0x25>;
            pinctrl-0 = <&pinctrl_pmic>;
            interrupt-parent = <&gpio1>;
            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;

            regulators {
                buck1: BUCK1 {
                    regulator-name = "BUCK1";
                    regulator-min-microvolt = <600000>;
                    regulator-max-microvolt = <2187500>;
                    regulator-boot-on;
                    regulator-always-on;
                    regulator-ramp-delay = <3125>;
                };
                buck2: BUCK2 {
                    regulator-name = "BUCK2";
                    regulator-min-microvolt = <600000>;
                    regulator-max-microvolt = <2187500>;
                    regulator-boot-on;
                    regulator-always-on;
                    regulator-ramp-delay = <3125>;
                    nxp,dvs-run-voltage = <950000>;
                    nxp,dvs-standby-voltage = <850000>;
                };
                buck4: BUCK4 {
                    regulator-name = "BUCK4";
                    regulator-min-microvolt = <600000>;
                    regulator-max-microvolt = <3400000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
                buck5: BUCK5 {
                    regulator-name = "BUCK5";
                    regulator-min-microvolt = <600000>;
                    regulator-max-microvolt = <3400000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
                buck6: BUCK6 {
                    regulator-name = "BUCK6";
                    regulator-min-microvolt = <600000>;
                    regulator-max-microvolt = <3400000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo1: LDO1 {
                    regulator-name = "LDO1";
                    regulator-min-microvolt = <1600000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
                ldo2: LDO2 {
                    regulator-name = "LDO2";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <1150000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
                ldo3: LDO3 {
                    regulator-name = "LDO3";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
                ldo4: LDO4 {
                    regulator-name = "LDO4";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
                ldo5: LDO5 {
                    regulator-name = "LDO5";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
            };
        };
    };


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/nxp,pf8x00-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP PF8100/PF8121A/PF8200 PMIC regulators

maintainers:
  - Jagan Teki <jagan@amarulasolutions.com>
  - Troy Kisky <troy.kisky@boundarydevices.com>

description: |
  PF8100/PF8121A/PF8200 is a PMIC designed for highperformance consumer
  applications. It features seven high efficiency buck converters, four
  linear and one vsnvs regulators. It has built-in one time programmable
  fuse bank for device configurations.

properties:
  compatible:
    enum:
      - nxp,pf8100
      - nxp,pf8121a
      - nxp,pf8200

  reg:
    maxItems: 1

  regulators:
    type: object
    description: |
      list of regulators provided by this controller

    patternProperties:
      "^ldo[1-4]$":
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single LDO regulator.

        properties:
          regulator-name:
            pattern: "^ldo[1-4]$"
            description:
              should be "ldo1", ..., "ldo4"

        unevaluatedProperties: false

      "^buck[1-7]$":
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single BUCK regulator.

        properties:
          regulator-name:
            pattern: "^buck[1-7]$"
            description:
              should be "buck1", ..., "buck7"

          nxp,ilim-ma:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            minimum: 2100
            maximum: 4500
            deprecated: true
            description:
              BUCK regulators current limit in mA.
              This property is deprecated, please use
              "regulator-max-microamp" instead.

              Listed current limits in mA are,
              2100 (default)
              2600
              3000
              4500

          nxp,phase-shift:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            default: 0
            enum: [ 0, 45, 90, 135, 180, 225, 270, 315 ]
            description:
              BUCK regulators phase shift control in degrees.

        unevaluatedProperties: false

    properties:
      vsnvs:
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single VSNVS regulator.

        properties:
          regulator-name:
            pattern: "^vsnvs$"
            description:
              should be "vsnvs"

        unevaluatedProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    i2c1 {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@8 {
            compatible = "nxp,pf8100";
            reg = <0x08>;

            regulators {
                reg_ldo1: ldo1 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <5000000>;
                    regulator-min-microvolt = <1500000>;
                };

                reg_ldo2: ldo2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <5000000>;
                    regulator-min-microvolt = <1500000>;
                };

                reg_ldo3: ldo3 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <5000000>;
                    regulator-min-microvolt = <1500000>;
                };

                reg_ldo4: ldo4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <5000000>;
                    regulator-min-microvolt = <1500000>;
                };

                reg_buck1: buck1 {
                    nxp,ilim-ma = <4500>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <1800000>;
                    regulator-min-microvolt =  <400000>;
                };

                reg_buck2: buck2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <1800000>;
                    regulator-min-microvolt =  <400000>;
                };

                reg_buck3: buck3 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <1800000>;
                    regulator-min-microvolt =  <400000>;
                };

                reg_buck4: buck4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <1800000>;
                    regulator-min-microvolt =  <400000>;
                };

                reg_buck5: buck5 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <1800000>;
                    regulator-min-microvolt =  <400000>;
                };

                reg_buck6: buck6 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <1800000>;
                    regulator-min-microvolt =  <400000>;
                };

                reg_buck7: buck7 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <3300000>;
                    regulator-min-microvolt = <3300000>;
                };

                reg_vsnvs: vsnvs {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-max-microvolt = <3300000>;
                    regulator-min-microvolt = <1800000>;
                };
            };
        };
    };


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/onnn,fan53880.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Onsemi FAN53880 PMIC

maintainers:
  - Christoph Fritz <chf.fritz@googlemail.com>

description: |
  The FAN53880 is an I2C porgrammable power management IC (PMIC)
  that contains a BUCK (step-down converter), four low dropouts (LDO)
  and one BOOST (step-up converter) output. It is designed for mobile
  power applications.

properties:
  $nodename:
    pattern: "pmic@[0-9a-f]{1,2}"
  compatible:
    enum:
      - onnn,fan53880

  reg:
    maxItems: 1

  VIN12-supply:
    description: Input supply phandle(s) for LDO1 and LDO2

  VIN3-supply:
    description: Input supply phandle(s) for LDO3

  VIN4-supply:
    description: Input supply phandle(s) for LDO4

  PVIN-supply:
    description: Input supply phandle(s) for BUCK and BOOST

  regulators:
    type: object
    $ref: regulator.yaml#
    description: |
      list of regulators provided by this controller, must be named
      after their hardware counterparts LDO[1-4], BUCK and BOOST

    patternProperties:
      "^LDO[1-4]$":
        type: object
        $ref: regulator.yaml#

      "^BUCK|BOOST$":
        type: object
        $ref: regulator.yaml#

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@35 {
            compatible = "onnn,fan53880";
            reg = <0x35>;

            PVIN-supply = <&fixreg_example_vcc>;

            regulators {
                BUCK {
                    regulator-min-microvolt = <1200000>;
                    regulator-max-microvolt = <1200000>;
                };
            };
       };
     };
...


code:
* palmas regulator IP block devicetree bindings

The tps659038 for the AM57x class have OTP spins that
have different part numbers but the same functionality. There
is not a need to add the OTP spins to the palmas driver. The
spin devices should use the tps659038 as it's compatible value.
This is the list of those devices:
tps659037

Required properties:
- compatible : Should be from the list
  ti,twl6035-pmic
  ti,twl6036-pmic
  ti,twl6037-pmic
  ti,tps65913-pmic
  ti,tps65914-pmic
  ti,tps65917-pmic
  ti,tps659038-pmic
and also the generic series names
  ti,palmas-pmic
- interrupts : The interrupt number and the type which can be looked up here:
	       arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h
- interrupts-name: The names of the individual interrupts.

Optional properties:
- ti,ldo6-vibrator : ldo6 is in vibrator mode

Optional nodes:
- regulators : Must contain a sub-node per regulator from the list below.
	       Each sub-node should contain the constraints and initialization
	       information for that regulator. See regulator.txt for a
	       description of standard properties for these sub-nodes.
	       Additional custom properties  are listed below.

	       For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
	       smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
	       smps10_out2, smps10_out1, ldo[1-9], ldoln, ldousb.

	       Optional sub-node properties:
	       ti,warm-reset - maintain voltage during warm reset(boolean)
	       ti,roof-floor - This takes as optional argument on platform supporting
	       the rail from desired external control. If there is no argument then
	       it will be assume that it is controlled by NSLEEP pin.
	       The valid value for external pins are:
			ENABLE1 then 1,
			ENABLE2 then 2 or
			NSLEEP then 3.
	       ti,mode-sleep - mode to adopt in pmic sleep 0 - off, 1 - auto,
	       2 - eco, 3 - forced pwm
	       ti,smps-range - OTP has the wrong range set for the hardware so override
	       0 - low range, 1 - high range.

- ti,system-power-controller: Telling whether or not this pmic is controlling
			      the system power.

Example:

#include <dt-bindings/interrupt-controller/irq.h>

pmic {
	compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
	interrupt-parent = <&palmas>;
	interrupts = <14 IRQ_TYPE_NONE>;
	interrupts-name = "short-irq";

	ti,ldo6-vibrator;

	ti,system-power-controller;

	regulators {
		smps12_reg : smps12 {
			regulator-name = "smps12";
			regulator-min-microvolt = < 600000>;
			regulator-max-microvolt = <1500000>;
			regulator-always-on;
			regulator-boot-on;
			ti,warm-reset;
			ti,roof-floor = <1>; /* ENABLE1 control */
			ti,mode-sleep = <0>;
			ti,smps-range = <1>;
		};

		ldo1_reg: ldo1 {
			regulator-name = "ldo1";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};
	};
};


code:
PBIAS internal regulator for SD card dual voltage i/o pads on OMAP SoCs.

Required properties:
- compatible:
  - should be "ti,pbias-dra7" for DRA7
  - should be "ti,pbias-omap2" for OMAP2
  - should be "ti,pbias-omap3" for OMAP3
  - should be "ti,pbias-omap4" for OMAP4
  - should be "ti,pbias-omap5" for OMAP5
  - "ti,pbias-omap" is deprecated
- reg: pbias register offset from syscon base and size of pbias register.
- syscon : phandle of the system control module
- regulator-name : should be
			pbias_mmc_omap2430 for OMAP2430, OMAP3 SoCs
			pbias_sim_omap3 for OMAP3 SoCs
			pbias_mmc_omap4 for OMAP4 SoCs
			pbias_mmc_omap5 for OMAP5 and DRA7 SoC

Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt

Example:

		pbias_regulator: pbias_regulator {
			compatible = "ti,pbias-omap";
			reg = <0 0x4>;
			syscon = <&omap5_padconf_global>;
			pbias_mmc_reg: pbias_mmc_omap5 {
				regulator-name = "pbias_mmc_omap5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
			};