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

title: ROHM BD71837 Power Management Integrated Circuit regulators

maintainers:
  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

description: |
  List of regulators provided by this controller. BD71837 regulators node
  should be sub node of the BD71837 MFD node. See BD71837 MFD bindings at
  Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
  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.
  Note that if BD71837 starts at RUN state you probably want to use
  regulator-boot-on at least for BUCK6 and BUCK7 so that those are not
  disabled by driver at startup. LDO5 and LDO6 are supplied by those and
  if they are disabled at startup the voltage monitoring for LDO5/LDO6 will
  cause PMIC to reset.

#The valid names for BD71837 regulator nodes are:
#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
#LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7

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

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

    unevaluatedProperties: false

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

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

      rohm,dvs-run-voltage:
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 1300000
        description:
          PMIC default "RUN" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-idle-voltage:
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 1300000
        description:
          PMIC default "IDLE" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-suspend-voltage:
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 1300000
        description:
          PMIC default "SUSPEND" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

        # Supported default DVS states:
        #
        # BD71837:
        # buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
        # ----------------------------------------------------------------
        # 1    | supported       | supported        | supported
        # ----------------------------------------------------------------
        # 2    | supported       | supported        | not supported
        # ----------------------------------------------------------------
        # 3    | supported       | not supported    | not supported
        # ----------------------------------------------------------------
        # 4    | supported       | not supported    | not supported
        # ----------------------------------------------------------------
        # rest | not supported   | not supported    | not supported

      # BD71837 power outputs can either be controlled by the PMIC internal
      # hardware state machine or by software. If you need regulators to be
      # turned ON/OFF for example based on PMIC_STBY_REQ line (which toggles
      # PMIC HW state machine) - then you should set this property.
      # Tradeoff is that then SW can't control the ON/OFF state for this
      # regulator (other than invoking a PMIC state change).
      rohm,no-regulator-enable-control:
        description: |
          Enable/Disable control of this regulator must be left to the
          PMIC hardware state machine.
        type: boolean

      # Setups where regulator (especially the buck8) output voltage is scaled
      # by adding external connection where some other regulator output is
      # connected to feedback-pin (over suitable resistors) is getting popular
      # amongst users of BD71837. (This allows for example scaling down the
      # buck8 voltages to suit lover GPU voltages for projects where buck8 is
      # (ab)used to supply power for GPU.
      #
      # So we allow describing this external connection from DT and scale the
      # voltages accordingly. This is what the connection should look like:
      #
      # |---------------|
      # |       buck 8  |-------+----->Vout
      # |               |       |
      # |---------------|       |
      #        |                |
      #        |                |
      #        +-------+--R2----+
      #                |
      #                R1
      #                |
      #        V FB-pull-up
      #
      # Here the buck output is sifted according to formula:
      #
      # Vout_o = Vo - (Vpu - Vo)*R2/R1
      # Linear_step = step_orig*(R1+R2)/R1
      #
      # where:
      # Vout_o is adjusted voltage output at vsel reg value 0
      # Vo is original voltage output at vsel reg value 0
      # Vpu is the pull-up voltage V FB-pull-up in the picture
      # R1 and R2 are resistor values.

      rohm,fb-pull-up-microvolt:
        description:
          Feedback-pin has pull-up connection to adjust voltage range. This is
          the used pull-up voltage before R1.

      rohm,feedback-pull-up-r1-ohms:
        description:
          Feedback-pin has pull-up connection to adjust voltage range. This is
          the used R1 resistor.

      rohm,feedback-pull-up-r2-ohms:
        description:
          Feedback-pin has pull-up connection to adjust voltage range. This is
          the used R2 resistor.

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false


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

title: ROHM BD71847 and BD71850 Power Management Integrated Circuit regulators

maintainers:
  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

description: |
  List of regulators provided by this controller. BD71847 regulators node
  should be sub node of the BD71847 MFD node. See BD71847 MFD bindings at
  Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
  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.
  Note that if BD71847 starts at RUN state you probably want to use
  regulator-boot-on at least for BUCK5. LDO6 is supplied by it and it must
  not be disabled by driver at startup. If BUCK5 is disabled at startup the
  voltage monitoring for LDO5/LDO6 can cause PMIC to reset.

#The valid names for BD71847 regulator nodes are:
#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
#LDO1, LDO2, LDO3, LDO4, LDO5, LDO6

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

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

    unevaluatedProperties: false

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

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

      rohm,dvs-run-voltage:
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 1300000
        description:
          PMIC default "RUN" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-idle-voltage:
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 1300000
        description:
          PMIC default "IDLE" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-suspend-voltage:
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 1300000
        description:
          PMIC default "SUSPEND" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

        # Supported default DVS states:
        #
        # BD71847:
        # buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
        # ----------------------------------------------------------------
        # 1    | supported       | supported        | supported
        # ----------------------------------------------------------------
        # 2    | supported       | supported        | not supported
        # ----------------------------------------------------------------
        # rest | not supported   | not supported    | not supported

      # BD718(47/50) power outputs can either be controlled by the PMIC internal
      # hardware state machine or by software. If you need regulators to be
      # turned ON/OFF for example based on PMIC_STBY_REQ line (which toggles
      # PMIC HW state machine) - then you should set this property.
      # Tradeoff is that then SW can't control the ON/OFF state for this
      # regulator (other than invoking a PMIC state change).
      rohm,no-regulator-enable-control:
        description: |
          Enable/Disable control of this regulator must be left to the
          PMIC hardware state machine.
        type: boolean

      # Setups where regulator (especially the buck8) output voltage is scaled
      # by adding external connection where some other regulator output is
      # connected to feedback-pin (over suitable resistors) is getting popular
      # amongst users of BD71837. (This allows for example scaling down the
      # buck8 voltages to suit lover GPU voltages for projects where buck8 is
      # (ab)used to supply power for GPU.
      #
      # So we allow describing this external connection from DT and scale the
      # voltages accordingly. This is what the connection should look like:
      #
      # |---------------|
      # |       buck 8  |-------+----->Vout
      # |               |       |
      # |---------------|       |
      #        |                |
      #        |                |
      #        +-------+--R2----+
      #                |
      #                R1
      #                |
      #        V FB-pull-up
      #
      # Here the buck output is sifted according to formula:
      #
      # Vout_o = Vo - (Vpu - Vo)*R2/R1
      # Linear_step = step_orig*(R1+R2)/R1
      #
      # where:
      # Vout_o is adjusted voltage output at vsel reg value 0
      # Vo is original voltage output at vsel reg value 0
      # Vpu is the pull-up voltage V FB-pull-up in the picture
      # R1 and R2 are resistor values.

      rohm,fb-pull-up-microvolt:
        description:
          Feedback-pin has pull-up connection to adjust voltage range. This is
          the used pull-up voltage before R1.

      rohm,feedback-pull-up-r1-ohms:
        description:
          Feedback-pin has pull-up connection to adjust voltage range. This is
          the used R1 resistor.

      rohm,feedback-pull-up-r2-ohms:
        description:
          Feedback-pin has pull-up connection to adjust voltage range. This is
          the used R2 resistor.

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false

repo_name: angery/linux


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

title: ROHM BD9576 and BD9573 Power Management Integrated Circuit regulators

maintainers:
  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

description: |
  This module is part of the ROHM BD9576 MFD device. For more details
  see Documentation/devicetree/bindings/mfd/rohm,bd9576-pmic.yaml.

  The regulator controller is represented as a sub-node of the PMIC node
  on the device tree.

  The valid names for BD9576 regulator nodes are
  regulator-vd50, regulator-vd18, regulator-vdddr, regulator-vd10,
  regulator-voutl1, regulator-vouts1

patternProperties:
  "^regulator-.+$":
    type: object
    description:
      Properties for single regulator.
    $ref: "regulator.yaml#"

    properties:
      rohm,ocw-fet-ron-micro-ohms:
        description: |
          External FET's ON-resistance. Required if VoutS1 OCP/OCW is
          to be set.

    required:
      - regulator-name

    unevaluatedProperties: false
additionalProperties: false


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

title: Samsung S2MPA01 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S2MPA01 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s2mpa01.yaml for
  additional information and example.

patternProperties:
  # 26 LDOs
  "^LDO([1-9]|1[0-9]|2[0-6])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name

  # 10 bucks
  "^BUCK([1-9]|10)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single BUCK regulator.

    properties:
      regulator-ramp-delay:
        enum: [0, 6250, 12500, 25000, 50000]
        default: 12500
        description: |
          May be 0 for disabling the ramp delay on BUCK{1,2,3,4}.

          In the absence of the regulator-ramp-delay property, the default ramp
          delay will be used.

          Note: Some bucks share the ramp rate setting i.e. same ramp value
          will be set for a particular group of bucks so provide the same
          regulator-ramp-delay value for them.
          Groups sharing ramp rate:
            * buck{1,6},
            * buck{2,4},
            * buck{8,9,10}.

    required:
      - regulator-name

additionalProperties: false


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

title: Samsung S2MPS11 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S2MPS11 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
  additional information and example.

patternProperties:
  # 38 LDOs
  "^LDO([1-9]|[1-2][0-9]|3[0-8])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name

  # 10 bucks
  "^BUCK([1-9]|10)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single BUCK regulator.

    required:
      - regulator-name

additionalProperties: false


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

title: Samsung S2MPS13 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S2MPS13 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
  additional information and example.

patternProperties:
  # 40 LDOs
  "^LDO([1-9]|[1-3][0-9]|40)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name

  # 10 bucks
  "^BUCK([1-9]|10)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single BUCK regulator.

    required:
      - regulator-name

additionalProperties: false


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

title: Samsung S2MPS14 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S2MPS14 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
  additional information and example.

patternProperties:
  # 25 LDOs
  "^LDO([1-9]|[1][0-9]|2[0-5])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name

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

    required:
      - regulator-name

additionalProperties: false


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

title: Samsung S2MPS15 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S2MPS15 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
  additional information and example.

patternProperties:
  # 27 LDOs
  "^LDO([1-9]|[1][0-9]|2[0-7])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name

  # 10 bucks
  "^BUCK([1-9]|10)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single BUCK regulator.

    required:
      - regulator-name

additionalProperties: false


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

title: Samsung S2MPU02 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S2MPU02 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
  additional information and example.

patternProperties:
  # 28 LDOs
  "^LDO([1-9]|1[0-9]|2[0-8])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    required:
      - regulator-name

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

    required:
      - regulator-name

additionalProperties: false


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

title: Samsung S5M8767 Power Management IC regulators

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The S5M8767 provides buck and LDO regulators.

  See also Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml for
  additional information and example.

patternProperties:
  # 28 LDOs
  "^LDO([1-9]|1[0-9]|2[0-8])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    properties:
      op_mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 1
        description: |
          Describes the different operating modes of the LDO's with power mode
          change in SOC. The different possible values are:
            0 - always off mode
            1 - on in normal mode
            2 - low power mode
            3 - suspend mode

    required:
      - regulator-name

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

    properties:
      op_mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 1
        description: |
          Describes the different operating modes of the regulator with power
          mode change in SOC. The different possible values are:
            0 - always off mode
            1 - on in normal mode
            2 - low power mode
            3 - suspend mode

    required:
      - regulator-name

properties:
  # 9 buck
  BUCK9:
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single BUCK regulator.

    properties:
      op_mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 1
        description: |
          Describes the different operating modes of the regulator with power
          mode change in SOC. The different possible values are:
            0 - always off mode
            1 - on in normal mode
            2 - low power mode
            3 - suspend mode

      s5m8767,pmic-ext-control-gpios:
        maxItems: 1
        description: |
          GPIO specifier for one GPIO controlling this regulator on/off.

    required:
      - regulator-name

additionalProperties: false


code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/silergy,sy8106a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Silergy SY8106A Voltage Regulator

maintainers:
  - Ondrej Jirman <megous@megous.com>

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    const: silergy,sy8106a

  reg:
    maxItems: 1

  silergy,fixed-microvolt:
    description: >
      The voltage when I2C regulating is disabled (set by external resistor
      like a fixed voltage)

required:
  - compatible
  - reg
  - silergy,fixed-microvolt

unevaluatedProperties: false

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

        regulator@65 {
            compatible = "silergy,sy8106a";
            reg = <0x65>;
            regulator-name = "sy8106a-vdd";
            silergy,fixed-microvolt = <1200000>;
            regulator-min-microvolt = <1000000>;
            regulator-max-microvolt = <1400000>;
            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/silergy,sy8824x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: silergy sy8824c,sy8824e,sy20276 and sy20278 PMIC

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

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    enum:
      - silergy,sy8824c
      - silergy,sy8824e
      - silergy,sy20276
      - silergy,sy20278

  reg:
    maxItems: 1

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        regulator@60 {
          compatible = "silergy,sy8824c";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <1150000>;
          reg = <0x60>;
        };
    };

...


code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/silergy,sy8827n.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: silergy sy8827n PMIC

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

properties:
  compatible:
    enum:
      - silergy,sy8827n

  reg:
    maxItems: 1

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

  silergy,vsel-state-high:
    type: boolean
    description:
      Indicates if the VSEL pin is set to high.
      If this property is missing, assume the VSEL pin is set to low.

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        regulator@60 {
          compatible = "silergy,sy8827n";
          reg = <0x60>;
        };
    };

...


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

title: Silicon Mitus SM5703 multi function device regulators

maintainers:
  - Markuss Broks <markuss.broks@gmail.com>

description: |
  SM5703 regulators node should be a sub node of the SM5703 MFD node. See SM5703 MFD
  bindings at Documentation/devicetree/bindings/mfd/siliconmitus,sm5703.yaml
  Regulator nodes should be named as USBLDO_<number>, BUCK, VBUS, LDO_<number>.
  The definition for each of these nodes is defined using the standard
  binding for regulators at Documentation/devicetree/bindings/regulator/regulator.txt.

properties:
  buck:
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for the BUCK regulator.

  vbus:
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for the VBUS regulator.

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

  "^usbldo[1-2]$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for a single USBLDO regulator.

additionalProperties: false


code:
SKY81452 voltage regulator

Required properties:
- regulator node named lout.
- any required generic properties defined in regulator.txt

Optional properties:
- any available generic properties defined in regulator.txt

Example:

	regulator {
		lout {
			regulator-name = "sky81452-lout";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <8000000>;
		};
	};


code:
* Dialog Semiconductor SLG51000 Voltage Regulator

Required properties:
- compatible : Should be "dlg,slg51000" for SLG51000
- reg : Specifies the I2C slave address.
- xxx-supply: Input voltage supply regulator for ldo3 to ldo7.
  These entries are required if regulators are enabled for a device.
  An absence of these properties can cause the regulator registration to fail.
  If some of input supply is powered through battery or always-on supply then
  also it is required to have these parameters with proper node handle of always
  on power supply.
    vin3-supply: Input supply for ldo3
    vin4-supply: Input supply for ldo4
    vin5-supply: Input supply for ldo5
    vin6-supply: Input supply for ldo6
    vin7-supply: Input supply for ldo7

Optional properties:
- interrupt-parent : Specifies the reference to the interrupt controller.
- interrupts : IRQ line information.
- dlg,cs-gpios : Specify a valid GPIO for chip select

Sub-nodes:
- regulators : This node defines the settings for the regulators.
  The content of the sub-node is defined by the standard binding
  for regulators; see regulator.txt.

  The SLG51000 regulators are bound using their names listed below:
    ldo1
    ldo2
    ldo3
    ldo4
    ldo5
    ldo6
    ldo7

Optional properties for regulators:
- enable-gpios : Specify a valid GPIO for platform control of the regulator.

Example:
	pmic: slg51000@75 {
		compatible = "dlg,slg51000";
		reg = <0x75>;

		regulators {
			ldo1 {
			        regulator-name = "ldo1";
			        regulator-min-microvolt = <2400000>;
			        regulator-max-microvolt = <3300000>;
			};

			ldo2 {
			        regulator-name = "ldo2";
			        regulator-min-microvolt = <2400000>;
			        regulator-max-microvolt = <3300000>;
			};

			ldo3 {
			        regulator-name = "ldo3";
			        regulator-min-microvolt = <1200000>;
			        regulator-max-microvolt = <3750000>;
			};

			ldo4 {
			        regulator-name = "ldo4";
			        regulator-min-microvolt = <1200000>;
			        regulator-max-microvolt = <3750000>;
			};

			ldo5 {
			        regulator-name = "ldo5";
			        regulator-min-microvolt = <500000>;
			        regulator-max-microvolt = <1200000>;
			};

			ldo6 {
			        regulator-name = "ldo6";
			        regulator-min-microvolt = <500000>;
			        regulator-max-microvolt = <1200000>;
			};

			ldo7 {
			        regulator-name = "ldo7";
			        regulator-min-microvolt = <1200000>;
			        regulator-max-microvolt = <3750000>;
			};
		};
	};


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

title: Socionext UniPhier regulator controller

description: |
  This regulator controls VBUS and belongs to USB3 glue layer. Before using
  the regulator, it is necessary to control the clocks and resets to enable
  this layer. These clocks and resets should be described in each property.

maintainers:
  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

# USB3 Controller

properties:
  compatible:
    enum:
      - socionext,uniphier-pro4-usb3-regulator
      - socionext,uniphier-pro5-usb3-regulator
      - socionext,uniphier-pxs2-usb3-regulator
      - socionext,uniphier-ld20-usb3-regulator
      - socionext,uniphier-pxs3-usb3-regulator
      - socionext,uniphier-nx1-usb3-regulator

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names: true

  resets:
    minItems: 1
    maxItems: 2

  reset-names: true

allOf:
  - $ref: "regulator.yaml#"
  - if:
      properties:
        compatible:
          contains:
            enum:
              - socionext,uniphier-pro4-usb3-regulator
              - socionext,uniphier-pro5-usb3-regulator
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          items:
            - const: gio
            - const: link
        resets:
          minItems: 2
          maxItems: 2
        reset-names:
          items:
            - const: gio
            - const: link
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          const: link
        resets:
          maxItems: 1
        reset-names:
          const: link

unevaluatedProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - resets
  - reset-names

examples:
  - |
    usb-glue@65b00000 {
        compatible = "simple-mfd";
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x65b00000 0x400>;

        usb_vbus0: regulators@100 {
            compatible = "socionext,uniphier-ld20-usb3-regulator";
            reg = <0x100 0x10>;
            clock-names = "link";
            clocks = <&sys_clk 14>;
            reset-names = "link";
            resets = <&sys_rst 14>;
        };
    };


code:
Spreadtrum SC2731 Voltage regulators

The SC2731 integrates low-voltage and low quiescent current DCDC/LDO.
14 LDO and 3 DCDCs are designed for external use. All DCDCs/LDOs have
their own bypass (power-down) control signals. External tantalum or MLCC
ceramic capacitors are recommended to use with these LDOs.

Required properties:
 - compatible: should be "sprd,sc27xx-regulator".

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_CPU0, BUCK_CPU1, BUCK_RF
LDO:
	LDO_CAMA0, LDO_CAMA1, LDO_CAMMOT, LDO_VLDO, LDO_EMMCCORE, LDO_SDCORE,
	LDO_SDIO, LDO_WIFIPA, LDO_USB33, LDO_CAMD0, LDO_CAMD1, LDO_CON,
	LDO_CAMIO, LDO_SRAM

Example:
	regulators {
		compatible = "sprd,sc27xx-regulator";

		vddarm0: BUCK_CPU0 {
			regulator-name = "vddarm0";
			regulator-min-microvolt = <400000>;
			regulator-max-microvolt = <1996875>;
			regulator-ramp-delay = <25000>;
			regulator-always-on;
		};

		vddcama0: LDO_CAMA0 {
			regulator-name = "vddcama0";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <3750000>;
			regulator-enable-ramp-delay = <100>;
		};
		...
	};


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

title: STMicroelectronics STM32 booster for ADC analog input switches bindings

maintainers:
  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>

description: |
  Some STM32 devices embed a 3.3V booster supplied by Vdda, that can be used
  to supply ADC analog input switches.

allOf:
  - $ref: "regulator.yaml#"

properties:
  compatible:
    enum:
      - st,stm32h7-booster
      - st,stm32mp1-booster

  st,syscfg:
    $ref: "/schemas/types.yaml#/definitions/phandle"
    description: phandle to system configuration controller.

  vdda-supply:
    description: phandle to the vdda input analog voltage.

required:
  - compatible
  - st,syscfg
  - vdda-supply

unevaluatedProperties: false

examples:
  - |
    regulator-booster {
      compatible = "st,stm32mp1-booster";
      st,syscfg = <&syscfg>;
      vdda-supply = <&vdda>;
    };

...


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

title: STMicroelectronics STM32 Voltage reference buffer bindings

description: |
  Some STM32 devices embed a voltage reference buffer which can be used as
  voltage reference for ADCs, DACs and also as voltage reference for external
  components through the dedicated VREF+ pin.

maintainers:
  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>

allOf:
  - $ref: "regulator.yaml#"

properties:
  compatible:
    const: st,stm32-vrefbuf

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  vdda-supply:
    description: phandle to the vdda input analog voltage.

required:
  - compatible
  - reg
  - clocks
  - vdda-supply

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/stm32mp1-clks.h>
    vrefbuf@50025000 {
      compatible = "st,stm32-vrefbuf";
      reg = <0x50025000 0x8>;
      regulator-min-microvolt = <1500000>;
      regulator-max-microvolt = <2500000>;
      clocks = <&rcc VREF>;
      vdda-supply = <&vdda>;
    };

...


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

title: STM32MP1 PWR voltage regulators

maintainers:
  - Pascal Paillet <p.paillet@foss.st.com>

properties:
  compatible:
    const: st,stm32mp1,pwr-reg

  reg:
    maxItems: 1

  vdd-supply:
    description: Input supply phandle(s) for vdd input

  vdd_3v3_usbfs-supply:
    description: Input supply phandle(s) for vdd_3v3_usbfs input

patternProperties:
  "^(reg11|reg18|usb33)$":
    type: object

    $ref: "regulator.yaml#"

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    pwr@50001000 {
      compatible = "st,stm32mp1,pwr-reg";
      reg = <0x50001000 0x10>;
      vdd-supply = <&vdd>;
      vdd_3v3_usbfs-supply = <&vdd_usb>;

      reg11 {
        regulator-name = "reg11";
        regulator-min-microvolt = <1100000>;
        regulator-max-microvolt = <1100000>;
      };

      reg18 {
        regulator-name = "reg18";
        regulator-min-microvolt = <1800000>;
        regulator-max-microvolt = <1800000>;
      };

      usb33 {
        regulator-name = "usb33";
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
      };
    };
...


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

title: Texas Instruments TPS6236x Voltage Regulators

maintainers:
  - Laxman Dewangan <ldewangan@nvidia.com>

description: |
  The TPS6236x are a family of step down dc-dc converter with
  an input voltage range of 2.5V to 5.5V. The devices provide
  up to 3A peak load current, and an output voltage range of
  0.77V to 1.4V (TPS62360/62) and 0.5V to 1.77V (TPS62361B/63).

  Datasheet is available at:
  https://www.ti.com/lit/gpn/tps62360

allOf:
  - $ref: "regulator.yaml#"

properties:
  compatible:
    enum:
      - ti,tps62360
      - ti,tps62361
      - ti,tps62362
      - ti,tps62363

  reg:
    maxItems: 1

  ti,vsel0-gpio:
    description: |
      GPIO for controlling VSEL0 line. If this property
      is missing, then assume that there is no GPIO for
      VSEL0 control.
    maxItems: 1

  ti,vsel1-gpio:
    description: |
      GPIO for controlling VSEL1 line. If this property
      is missing, then assume that there is no GPIO for
      VSEL1 control.
    maxItems: 1

  ti,enable-vout-discharge:
    description: Enable output discharge.
    type: boolean

  ti,enable-pull-down:
    description: Enable pull down.
    type: boolean

  ti,vsel0-state-high:
    description: |
      Initial state of VSEL0 input is high. If this property
      is missing, then assume the state as low.
    type: boolean

  ti,vsel1-state-high:
    description: |
      Initial state of VSEL1 input is high. If this property
      is missing, then assume the state as low.
    type: boolean

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        regulator@60 {
            compatible = "ti,tps62361";
            reg = <0x60>;
            regulator-name = "tps62361-vout";
            regulator-min-microvolt = <500000>;
            regulator-max-microvolt = <1500000>;
            regulator-boot-on;
            ti,vsel0-gpio = <&gpio1 16 GPIO_ACTIVE_HIGH>;
            ti,vsel1-gpio = <&gpio1 17 GPIO_ACTIVE_HIGH>;
            ti,vsel0-state-high;
            ti,vsel1-state-high;
            ti,enable-pull-down;
            ti,enable-vout-discharge;
        };
    };

...


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

title: TI TPS62864/TPS6286/TPS62868/TPS62869 voltage regulator

maintainers:
  - Vincent Whitchurch <vincent.whitchurch@axis.com>

properties:
  compatible:
    enum:
      - ti,tps62864
      - ti,tps62866
      - ti,tps62868
      - ti,tps62869

  reg:
    maxItems: 1

  regulators:
    type: object

    properties:
      "SW":
        type: object
        $ref: regulator.yaml#
        unevaluatedProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    #include <dt-bindings/regulator/ti,tps62864.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      regulator@48 {
        compatible = "ti,tps62864";
        reg = <0x48>;

        regulators {
          SW {
            regulator-name = "+0.85V";
            regulator-min-microvolt = <800000>;
            regulator-max-microvolt = <890000>;
            regulator-initial-mode = <TPS62864_MODE_FPWM>;
          };
        };
      };
    };

...


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

title: TI tps65219 Power Management Integrated Circuit regulators

maintainers:
  - Jerome Neanne <jerome.neanne@baylibre.com>

description: |
  Regulator nodes should be named to buck<number> and ldo<number>.

properties:
  compatible:
    enum:
      - ti,tps65219

  reg:
    maxItems: 1

  system-power-controller:
    type: boolean
    description: Optional property that indicates that this device is
      controlling system power.

  interrupts:
    description: Short-circuit, over-current, under-voltage for regulators, PB interrupts.
    maxItems: 1

  interrupt-controller: true

  '#interrupt-cells':
    description: Specifies the PIN numbers and Flags, as defined in
      include/dt-bindings/interrupt-controller/irq.h
    const: 1

  ti,power-button:
    type: boolean
    description: |
      Optional property that sets the EN/PB/VSENSE pin to be a
      power-button.
      TPS65219 has a multipurpose pin called EN/PB/VSENSE that can be either
      1. EN in which case it functions as an enable pin.
      2. VSENSE which compares the voltages and triggers an automatic
      on/off request.
      3. PB in which case it can be configured to trigger an interrupt
      to the SoC.
      ti,power-button reflects the last one of those options
      where the board has a button wired to the pin and triggers
      an interrupt on pressing it.

  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.

        unevaluatedProperties: false

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

        unevaluatedProperties: false

    additionalProperties: false

patternProperties:
  "^buck[1-3]-supply$":
    description: Input supply phandle of one regulator.

  "^ldo[1-4]-supply$":
    description: Input supply phandle of one regulator.

required:
  - compatible
  - reg
  - interrupts
  - regulators

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        tps65219: pmic@30 {
            compatible = "ti,tps65219";
            reg = <0x30>;
            buck1-supply = <&vcc_3v3_sys>;
            buck2-supply = <&vcc_3v3_sys>;
            buck3-supply = <&vcc_3v3_sys>;
            ldo1-supply = <&vcc_3v3_sys>;
            ldo2-supply = <&buck2_reg>;
            ldo3-supply = <&vcc_3v3_sys>;
            ldo4-supply = <&vcc_3v3_sys>;

            pinctrl-0 = <&pmic_irq_pins_default>;

            interrupt-parent = <&gic500>;
            interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
            ti,power-button;

            regulators {
                buck1_reg: buck1 {
                    regulator-name = "VDD_CORE";
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <750000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                buck2_reg: buck2 {
                    regulator-name = "VCC1V8";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                buck3_reg: buck3 {
                    regulator-name = "VDD_LPDDR4";
                    regulator-min-microvolt = <1100000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

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

                ldo2_reg: ldo2 {
                    regulator-name = "VDDAR_CORE";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <850000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo3_reg: ldo3 {
                    regulator-name = "VDDA_1V8";
                    regulator-min-microvolt = <18000000>;
                    regulator-max-microvolt = <18000000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo4_reg: ldo4 {
                    regulator-name = "VDD_PHY_2V5";
                    regulator-min-microvolt = <25000000>;
                    regulator-max-microvolt = <25000000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
            };
        };
    };


code:
Adaptive Body Bias(ABB) SoC internal LDO regulator for Texas Instruments SoCs

Required Properties:
- compatible: Should be one of:
  - "ti,abb-v1" for older SoCs like OMAP3
  - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5
  - "ti,abb-v3" for a generic definition where setup and control registers are
     provided (example: DRA7)
- reg: Address and length of the register set for the device. It contains
  the information of registers in the same order as described by reg-names
- reg-names: Should contain the reg names
  - "base-address"	- contains base address of ABB module (ti,abb-v1,ti,abb-v2)
  - "control-address"	- contains control register address of ABB module (ti,abb-v3)
  - "setup-address"	- contains setup register address of ABB module (ti,abb-v3)
  - "int-address"	- contains address of interrupt register for ABB module
  (also see Optional properties)
- #address-cells: should be 0
- #size-cells: should be 0
- clocks: should point to the clock node used by ABB module
- ti,settling-time: Settling time in uSecs from SoC documentation for ABB module
	to settle down(target time for SR2_WTCNT_VALUE).
- ti,clock-cycles: SoC specific data about count of system ti,clock-cycles used for
	computing settling time from SoC Documentation for ABB module(clock
	cycles for SR2_WTCNT_VALUE).
- ti,tranxdone-status-mask: Mask to the int-register to write-to-clear mask
	indicating LDO tranxdone (operation complete).
- ti,abb_info: An array of 6-tuples u32 items providing information about ABB
	configuration needed per operational voltage of the device.
	Each item consists of the following in the same order:
	volt: voltage in uV - Only used to index ABB information.
	ABB mode: one of the following:
		0-bypass
		1-Forward Body Bias(FBB)
		3-Reverse Body Bias(RBB)
	efuse:	(see Optional properties)
	RBB enable efuse Mask:	(See Optional properties)
	FBB enable efuse Mask:	(See Optional properties)
	Vset value efuse Mask:	(See Optional properties)

	NOTE: If more than 1 entry is present, then regulator is setup to change
	      voltage, allowing for various modes to be selected indexed off
	      the regulator. Further, ABB LDOs are considered always-on by
	      default.

Optional Properties:
- reg-names: In addition to the required properties, the following are optional
  - "efuse-address"	- Contains efuse base address used to pick up ABB info.
  - "ldo-address"	- Contains address of ABB LDO override register.
	"efuse-address" is required for this.
- ti,ldovbb-vset-mask	- Required if ldo-address is set, mask for LDO override
	register to provide override vset value.
- ti,ldovbb-override-mask - Required if ldo-address is set, mask for LDO
	override register to enable override vset value.
- ti,abb_opp_sel: Addendum to the description in required properties
	efuse: Mandatory if 'efuse-address' register is defined. Provides offset
	       from efuse-address to pick up ABB characteristics. Set to 0 if
	       'efuse-address' is not defined.
	RBB enable efuse Mask:	Optional if 'efuse-address' register is defined.
		'ABB mode' is force set to RBB mode if value at "efuse-address"
		+ efuse maps to RBB mask. Set to 0 to ignore this.
	FBB enable efuse Mask:	Optional if 'efuse-address' register is defined.
		'ABB mode' is force set to FBB mode if value at "efuse-address"
		+ efuse maps to FBB mask (valid only if RBB mask does not match)
		Set to 0 to ignore this.
	Vset value efuse Mask:	Mandatory if ldo-address is set. Picks up from
		efuse the value to set in 'ti,ldovbb-vset-mask' at ldo-address.

Example #1: Simplest configuration (no efuse data, hard coded ABB table):
abb_x: regulator-abb-x {
	compatible = "ti,abb-v1";
	regulator-name = "abb_x";
	#address-cells = <0>;
	#size-cells = <0>;
	reg = <0x483072f0 0x8>, <0x48306818 0x4>;
	reg-names = "base-address", "int-address";
	ti,tranxdone-status-mask = <0x4000000>;
	clocks = <&sysclk>;
	ti,settling-time = <30>;
	ti,clock-cycles = <8>;
	ti,abb_info = <
	/* uV		ABB	efuse	rbb_m	fbb_m	vset_m */
	1012500		0	0	0	0	0 /* Bypass */
	1200000		3	0	0	0	0 /* RBB mandatory */
	1320000		1	0	0	0	0 /* FBB mandatory */
	>;
};

Example #2: Efuse bits contain ABB mode setting (no LDO override capability)
abb_y: regulator-abb-y {
	compatible = "ti,abb-v2";
	regulator-name = "abb_y";
	#address-cells = <0>;
	#size-cells = <0>;
	reg = <0x4a307bd0 0x8>, <0x4a306014 0x4>, <0x4A002268 0x8>;
	reg-names = "base-address", "int-address", "efuse-address";
	ti,tranxdone-status-mask = <0x4000000>;
	clocks = <&sysclk>;
	ti,settling-time = <50>;
	ti,clock-cycles = <16>;
	ti,abb_info = <
	/* uV		ABB	efuse	rbb_m	fbb_m	vset_m */
	975000		0	0	0	0	0 /* Bypass */
	1012500		0	0	0x40000	0	0 /* RBB optional */
	1200000		0	0x4	0	0x40000	0 /* FBB optional */
	1320000		1	0	0	0	0 /* FBB mandatory */
	>;
};

Example #3: Efuse bits contain ABB mode setting and LDO override capability
abb_z: regulator-abb-z {
	compatible = "ti,abb-v2";
	regulator-name = "abb_z";
	#address-cells = <0>;
	#size-cells = <0>;
	reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>,
	      <0x4a002194 0x8>, <0x4ae0C314 0x4>;
	reg-names = "base-address", "int-address",
		    "efuse-address", "ldo-address";
	ti,tranxdone-status-mask = <0x8000000>;
	/* LDOVBBMM_MUX_CTRL */
	ti,ldovbb-override-mask = <0x400>;
	/* LDOVBBMM_VSET_OUT */
	ti,ldovbb-vset-mask = <0x1F>;
	clocks = <&sysclk>;
	ti,settling-time = <50>;
	ti,clock-cycles = <16>;
	ti,abb_info = <
	/* uV	ABB	efuse	rbb_m	fbb_m	vset_m */
	975000	0	0	0	0	0	/* Bypass */
	1200000	0	0x4	0	0x40000	0x1f00	/* FBB optional, vset */
	>;
};


code:
TPS51632 Voltage regulators

Required properties:
- compatible: Must be "ti,tps51632"
- reg: I2C slave address

Optional properties:
- ti,enable-pwm-dvfs: Enable the DVFS voltage control through the PWM interface.
- ti,dvfs-step-20mV: The 20mV step voltage when PWM DVFS enabled. Missing this
	will set 10mV step voltage in PWM DVFS mode. In normal mode, the voltage
	step is 10mV as per datasheet.

Any property defined as part of the core regulator binding, defined in
regulator.txt, can also be used.

Example:

	tps51632 {
		compatible = "ti,tps51632";
		reg =  <0x43>;
		regulator-name = "tps51632-vout";
		regulator-min-microvolt = <500000>;
		regulator-max-microvolt = <1500000>;
		regulator-boot-on;
		ti,enable-pwm-dvfs;
		ti,dvfs-step-20mV;
	};


code:
TPS65023 family of regulators

Required properties:
- compatible: Must be one of the following.
	"ti,tps65020",
	"ti,tps65021",
	"ti,tps65023",
- reg: I2C slave address
- regulators: list of regulators provided by this controller, must be named
  after their hardware counterparts: VDCDC[1-3] and LDO[1-2]
- regulators: This is the list of child nodes that specify the regulator
  initialization data for defined regulators. The definition for each of
  these nodes is defined using the standard binding for regulators found at
  Documentation/devicetree/bindings/regulator/regulator.txt.

Each regulator is defined using the standard binding for regulators.

Example:

	tps65023@48 {
		compatible = "ti,tps65023";
		reg = <0x48>;

		regulators {
			VDCDC1 {
				regulator-name = "vdd_mpu";
				regulator-always-on;
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

			VDCDC2 {
				regulator-name = "vdd_core";
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			VDCDC3 {
				regulator-name = "vdd_io";
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			LDO1 {
				regulator-name = "vdd_usb18";
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			LDO2 {
				regulator-name = "vdd_usb33";
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};


code:
TPS65090 regulators

Required properties:
- compatible: "ti,tps65090"
- reg: I2C slave address
- interrupts: the interrupt outputs of the controller
- regulators: A node that houses a sub-node for each regulator within the
  device. Each sub-node is identified using the node's name, with valid
  values listed below. The content of each sub-node is defined by the
  standard binding for regulators; see regulator.txt.
  dcdc[1-3], fet[1-7] and ldo[1-2] respectively.
- vsys[1-3]-supply: The input supply for DCDC[1-3] respectively.
- infet[1-7]-supply: The input supply for FET[1-7] respectively.
- vsys-l[1-2]-supply: The input supply for LDO[1-2] respectively.

Optional properties:
- ti,enable-ext-control: This is applicable for DCDC1, DCDC2 and DCDC3.
  If DCDCs are externally controlled then this property should be there.
- dcdc-ext-control-gpios: This is applicable for DCDC1, DCDC2 and DCDC3.
  If DCDCs are externally controlled and if it is from GPIO then GPIO
  number should be provided. If it is externally controlled and no GPIO
  entry then driver will just configure this rails as external control
  and will not provide any enable/disable APIs.
- ti,overcurrent-wait: This is applicable to FET registers, which have a
  poorly defined "overcurrent wait" field.  If this property is present it
  should be between 0 - 3.  If this property isn't present we won't touch the
  "overcurrent wait" field and we'll leave it to the BIOS/EC to deal with.

Each regulator is defined using the standard binding for regulators.

Example:

	tps65090@48 {
		compatible = "ti,tps65090";
		reg = <0x48>;
		interrupts = <0 88 0x4>;

		vsys1-supply = <&some_reg>;
		vsys2-supply = <&some_reg>;
		vsys3-supply = <&some_reg>;
		infet1-supply = <&some_reg>;
		infet2-supply = <&some_reg>;
		infet3-supply = <&some_reg>;
		infet4-supply = <&some_reg>;
		infet5-supply = <&some_reg>;
		infet6-supply = <&some_reg>;
		infet7-supply = <&some_reg>;
		vsys-l1-supply = <&some_reg>;
		vsys-l2-supply = <&some_reg>;

		regulators {
			dcdc1 {
				regulator-name = "dcdc1";
				regulator-boot-on;
				regulator-always-on;
				ti,enable-ext-control;
				dcdc-ext-control-gpios = <&gpio 10 0>;
			};

			dcdc2 {
				regulator-name = "dcdc2";
				regulator-boot-on;
				regulator-always-on;
			};

			dcdc3 {
				regulator-name = "dcdc3";
				regulator-boot-on;
				regulator-always-on;
			};

			fet1 {
				regulator-name = "fet1";
				regulator-boot-on;
				regulator-always-on;
			};

			fet2 {
				regulator-name = "fet2";
				regulator-boot-on;
				regulator-always-on;
			};

			fet3 {
				regulator-name = "fet3";
				regulator-boot-on;
				regulator-always-on;
			};

			fet4 {
				regulator-name = "fet4";
				regulator-boot-on;
				regulator-always-on;
			};

			fet5 {
				regulator-name = "fet5";
				regulator-boot-on;
				regulator-always-on;
			};

			fet6 {
				regulator-name = "fet6";
				regulator-boot-on;
				regulator-always-on;
			};

			fet7 {
				regulator-name = "fet7";
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1 {
				regulator-name = "ldo1";
				regulator-boot-on;
				regulator-always-on;
			};

			ldo2 {
				regulator-name = "ldo2";
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};


code:
TPS65132 regulators

Required properties:
- compatible: "ti,tps65132"
- reg: I2C slave address

Optional Subnode:
Device supports two regulators OUTP and OUTN. A sub node within the
   device node describe the properties of these regulators. The sub-node
   names must be as follows:
	-For regulator outp, the sub node name should be "outp".
	-For regulator outn, the sub node name should be "outn".

-enable-gpios:(active high, output) Regulators are controlled by the input pins.
   If it is connected to GPIO through host system then provide the
   gpio number as per gpio.txt.
-active-discharge-gpios: (active high, output) Some configurations use delay mechanisms
  on the enable pin, to keep the regulator enabled for some time after
  the enable signal goes low. This GPIO is used to actively discharge
  the delay mechanism. Requires specification of ti,active-discharge-time-us
-ti,active-discharge-time-us: how long the active discharge gpio should be
  asserted for during active discharge, in microseconds.

Each regulator is defined using the standard binding for regulators.

Example:

	tps65132@3e {
		compatible = "ti,tps65132";
		reg = <0x3e>;

		outp {
			regulator-name = "outp";
			regulator-boot-on;
			regulator-always-on;
			enable-gpios = <&gpio 23 0>;
		};

		outn {
			regulator-name = "outn";
			regulator-boot-on;
			regulator-always-on;
			regulator-active-discharge = <0>;
			enable-gpios = <&gpio 40 0>;
		};
	};


code:
TPS65217 family of regulators

Required properties:
- compatible: "ti,tps65217"
- reg: I2C slave address
- regulators: list of regulators provided by this controller, must be named
  after their hardware counterparts: dcdc[1-3] and ldo[1-4]
- regulators: This is the list of child nodes that specify the regulator
  initialization data for defined regulators. Not all regulators for the given
  device need to be present. The definition for each of these nodes is defined
  using the standard binding for regulators found at
  Documentation/devicetree/bindings/regulator/regulator.txt.

Optional properties:
- ti,pmic-shutdown-controller: Telling the PMIC to shutdown on PWR_EN toggle.

  The valid names for regulators are:
  tps65217: dcdc1, dcdc2, dcdc3, ldo1, ldo2, ldo3 and ldo4

Each regulator is defined using the standard binding for regulators.

Example:

	tps: tps@24 {
		compatible = "ti,tps65217";
		ti,pmic-shutdown-controller;

		regulators {
			dcdc1_reg: dcdc1 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			dcdc2_reg: dcdc2 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			dcdc3_reg: dcc3 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1_reg: ldo1 {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo2_reg: ldo2 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

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

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


code:
TPS65218 family of regulators

Required properties:
- compatible: "ti,tps65218"
- reg: I2C slave address

- List of regulators provided by this controller, must be named
  after their hardware counterparts: dcdc[1-6] and ldo1
- This is the list of child nodes that specify the regulator
  initialization data for defined regulators. Not all regulators for the given
  device need to be present. The definition for each of these nodes is defined
  using the standard binding for regulators found at ./regulator.txt.

  The valid names for regulators are:
  tps65217: regulator-dcdc1, regulator-dcdc2, regulator-dcdc3, regulator-dcdc4,
  regulator-dcdc5, regulator-dcdc6, regulator-ldo1, regulator-ls3.
  Each regulator is defined using the standard binding for regulators.

Example:
tps65218: tps65218@24 {
	reg = <0x24>;
	compatible = "ti,tps65218";
	interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* NMIn */
	interrupt-controller;
	#interrupt-cells = <2>;

	dcdc1: regulator-dcdc1 {
		regulator-name = "vdd_core";
		regulator-min-microvolt = <912000>;
		regulator-max-microvolt = <1144000>;
		regulator-boot-on;
		regulator-always-on;
	};

	dcdc2: regulator-dcdc2 {
		regulator-name = "vdd_mpu";
		regulator-min-microvolt = <912000>;
		regulator-max-microvolt = <1378000>;
		regulator-boot-on;
		regulator-always-on;
	};

	dcdc3: regulator-dcdc3 {
		regulator-name = "vdcdc3";
		regulator-min-microvolt = <1500000>;
		regulator-max-microvolt = <1500000>;
		regulator-boot-on;
		regulator-always-on;
	};

	dcdc5: regulator-dcdc5 {
		regulator-name = "v1_0bat";
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
		regulator-boot-on;
		regulator-always-on;
	};

	dcdc6: regulator-dcdc6 {
		regulator-name = "v1_8bat";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-boot-on;
		regulator-always-on;
	};

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

	ls2: regulator-ls2 {
		regulator-min-microamp = <100000>;
		regulator-max-microamp = <1000000>;
	};

	ls3: regulator-ls3 {
		regulator-min-microamp = <100000>;
		regulator-max-microamp = <1000000>;
	};
};


code:
TPS6586x family of regulators

Required properties:
- compatible: "ti,tps6586x"
- reg: I2C slave address
- interrupts: the interrupt outputs of the controller
- #gpio-cells: number of cells to describe a GPIO
- gpio-controller: mark the device as a GPIO controller
- regulators: A node that houses a sub-node for each regulator within the
  device. Each sub-node is identified using the node's name (or the deprecated
  regulator-compatible property if present), with valid values listed below.
  The content of each sub-node is defined by the standard binding for
  regulators; see regulator.txt.
  sys, sm[0-2], ldo[0-9] and ldo_rtc
- sys-supply: The input supply for SYS.
- vin-sm0-supply: The input supply for the SM0.
- vin-sm1-supply: The input supply for the SM1.
- vin-sm2-supply: The input supply for the SM2.
- vinldo01-supply: The input supply for the LDO1 and LDO2
- vinldo23-supply: The input supply for the LDO2 and LDO3
- vinldo4-supply: The input supply for the LDO4
- vinldo678-supply: The input supply for the LDO6, LDO7 and LDO8
- vinldo9-supply: The input supply for the LDO9

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

Each regulator is defined using the standard binding for regulators.

Note: LDO5 and LDO_RTC is supplied by SYS regulator internally and driver
      take care of making proper parent child relationship.

Example:

	pmu: tps6586x@34 {
		compatible = "ti,tps6586x";
		reg = <0x34>;
		interrupts = <0 88 0x4>;

		#gpio-cells = <2>;
		gpio-controller;

		ti,system-power-controller;

		sys-supply = <&some_reg>;
		vin-sm0-supply = <&some_reg>;
		vin-sm1-supply = <&some_reg>;
		vin-sm2-supply = <&some_reg>;
		vinldo01-supply = <...>;
		vinldo23-supply = <...>;
		vinldo4-supply = <...>;
		vinldo678-supply = <...>;
		vinldo9-supply = <...>;

		regulators {
			sys_reg: sys {
				regulator-name = "vdd_sys";
				regulator-boot-on;
				regulator-always-on;
			};

			sm0_reg: sm0 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sm1_reg: sm1 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sm2_reg: sm2 {
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <4550000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo0_reg: ldo0 {
				regulator-name = "PCIE CLK";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo1_reg: ldo1 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
			};

			ldo2_reg: ldo2 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
			};

			ldo3_reg: ldo3 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo4_reg: ldo4 {
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <2475000>;
			};

			ldo5_reg: ldo5 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo6_reg: ldo6 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo7_reg: ldo7 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo8_reg: ldo8 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo9_reg: ldo9 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};


code:
TWL family of regulators

Required properties:
For twl6030 regulators/LDOs
- compatible:
  - "ti,twl6030-vaux1" for VAUX1 LDO
  - "ti,twl6030-vaux2" for VAUX2 LDO
  - "ti,twl6030-vaux3" for VAUX3 LDO
  - "ti,twl6030-vmmc" for VMMC LDO
  - "ti,twl6030-vpp" for VPP LDO
  - "ti,twl6030-vusim" for VUSIM LDO
  - "ti,twl6030-vana" for VANA LDO
  - "ti,twl6030-vcxio" for VCXIO LDO
  - "ti,twl6030-vdac" for VDAC LDO
  - "ti,twl6030-vusb" for VUSB LDO
  - "ti,twl6030-v1v8" for V1V8 LDO
  - "ti,twl6030-v2v1" for V2V1 LDO
  - "ti,twl6030-vdd1" for VDD1 SMPS
  - "ti,twl6030-vdd2" for VDD2 SMPS
  - "ti,twl6030-vdd3" for VDD3 SMPS
For twl6032 regulators/LDOs
- compatible:
  - "ti,twl6032-ldo1" for LDO1 LDO
  - "ti,twl6032-ldo2" for LDO2 LDO
  - "ti,twl6032-ldo3" for LDO3 LDO
  - "ti,twl6032-ldo4" for LDO4 LDO
  - "ti,twl6032-ldo5" for LDO5 LDO
  - "ti,twl6032-ldo6" for LDO6 LDO
  - "ti,twl6032-ldo7" for LDO7 LDO
  - "ti,twl6032-ldoln" for LDOLN LDO
  - "ti,twl6032-ldousb" for LDOUSB LDO
  - "ti,twl6032-smps3" for SMPS3 SMPS
  - "ti,twl6032-smps4" for SMPS4 SMPS
  - "ti,twl6032-vio" for VIO SMPS
For twl4030 regulators/LDOs
- compatible:
  - "ti,twl4030-vaux1" for VAUX1 LDO
  - "ti,twl4030-vaux2" for VAUX2 LDO
  - "ti,twl5030-vaux2" for VAUX2 LDO
  - "ti,twl4030-vaux3" for VAUX3 LDO
  - "ti,twl4030-vaux4" for VAUX4 LDO
  - "ti,twl4030-vmmc1" for VMMC1 LDO
  - "ti,twl4030-vmmc2" for VMMC2 LDO
  - "ti,twl4030-vpll1" for VPLL1 LDO
  - "ti,twl4030-vpll2" for VPLL2 LDO
  - "ti,twl4030-vsim" for VSIM LDO
  - "ti,twl4030-vdac" for VDAC LDO
  - "ti,twl4030-vintana2" for VINTANA2 LDO
  - "ti,twl4030-vio" for VIO LDO
  - "ti,twl4030-vdd1" for VDD1 SMPS
  - "ti,twl4030-vdd2" for VDD2 SMPS
  - "ti,twl4030-vintana1" for VINTANA1 LDO
  - "ti,twl4030-vintdig" for VINTDIG LDO
  - "ti,twl4030-vusb1v5" for VUSB1V5 LDO
  - "ti,twl4030-vusb1v8" for VUSB1V8 LDO
  - "ti,twl4030-vusb3v1" for VUSB3V1 LDO

Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt
For twl4030 regulators/LDOs:
 - regulator-initial-mode:
  - 0x08 - Sleep mode, the nominal output voltage is maintained with low power
           consumption with low load current capability.
  - 0x0e - Active mode, the regulator can deliver its nominal output voltage
           with full-load current capability.

Example:

	xyz: regulator@0 {
		compatible = "ti,twl6030-vaux1";
		regulator-min-microvolt  = <1000000>;
		regulator-max-microvolt  = <3000000>;
	};

For twl6030 regulators/LDOs:

 - ti,retain-on-reset: Does not turn off the supplies during warm
                       reset. Could be needed for VMMC, as TWL6030
                       reset sequence for this signal does not comply
                       with the SD specification.


code:
Bindings for Voltage controlled regulators
==========================================

Required properties:
--------------------
- compatible		  : must be "vctrl-regulator".
- regulator-min-microvolt : smallest voltage consumers may set
- regulator-max-microvolt : largest voltage consumers may set
- ctrl-supply		  : The regulator supplying the control voltage.
- ctrl-voltage-range	  : an array of two integer values describing the range
			    (min/max) of the control voltage. The values specify
			    the control voltage needed to generate the corresponding
			    regulator-min/max-microvolt output voltage.

Optional properties:
--------------------
- ovp-threshold-percent	: overvoltage protection (OVP) threshold of the
			  regulator in percent. Some regulators have an OVP
			  circuitry which shuts down the regulator when the
			  actual output voltage deviates beyond a certain
			  margin from the expected value for a given control
			  voltage. On larger voltage decreases this can occur
			  undesiredly since the output voltage does not adjust
			  inmediately to changes in the control voltage. To
			  avoid this situation the vctrl driver breaks down
			  larger voltage decreases into multiple steps, where
			  each step is within the OVP threshold.
- min-slew-down-rate	: Describes how slowly the regulator voltage will decay
			  down in the worst case (lightest expected load).
			  Specified in uV / us (like main regulator ramp rate).
			  This value is required when ovp-threshold-percent is
			  specified.

Example:

	vctrl-reg {
		compatible = "vctrl-regulator";
		regulator-name = "vctrl_reg";

		ctrl-supply = <&ctrl_reg>;

		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1500000>;

		ctrl-voltage-range = <200000 500000>;

		min-slew-down-rate = <225>;
		ovp-threshold-percent = <16>;
	};


code:
Versatile Express voltage regulators
------------------------------------

Requires node properties:
- "compatible" value: "arm,vexpress-volt"
- "arm,vexpress-sysreg,func" when controlled via vexpress-sysreg
  (see Documentation/devicetree/bindings/arm/vexpress-config.yaml
  for more details)

Required regulator properties:
- "regulator-name"
- "regulator-always-on"

Optional regulator properties:
- "regulator-min-microvolt"
- "regulator-max-microvolt"

See Documentation/devicetree/bindings/regulator/regulator.txt
for more details about the regulator properties.

When no "regulator-[min|max]-microvolt" properties are defined,
the device is treated as fixed (or rather "read-only") regulator.

Example:
	volt@0 {
		compatible = "arm,vexpress-volt";
		arm,vexpress-sysreg,func = <2 0>;
		regulator-name = "Cores";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1050000>;
		regulator-always-on;
	};


code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/vqmmc-ipq4019-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm IPQ4019 VQMMC SD LDO regulator

maintainers:
  - Robert Marko <robert.marko@sartura.hr>

description: |
  Qualcomm IPQ4019 SoC-s feature a built a build SD/EMMC controller,
  in order to support both 1.8 and 3V I/O voltage levels an LDO
  controller is also embedded.

allOf:
  - $ref: "regulator.yaml#"

properties:
  compatible:
    const: qcom,vqmmc-ipq4019-regulator

  reg:
    maxItems: 1

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    regulator@1948000 {
      compatible = "qcom,vqmmc-ipq4019-regulator";
      reg = <0x01948000 0x4>;
      regulator-name = "vqmmc";
      regulator-min-microvolt = <1500000>;
      regulator-max-microvolt = <3000000>;
      regulator-always-on;
    };
...


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

title: Cirrus Logic/Wolfson Microelectronics Arizona/Madera class audio SoCs

maintainers:
  - patches@opensource.cirrus.com

description: |
  These devices are audio SoCs with extensive digital capabilities and a
  range of analogue I/O.

  This document lists regulator specific bindings, see the primary binding
  document. For Wolfson Microelectronic Arizona codecs ../mfd/wlf,arizona.yaml
  and for Cirrus Logic Madera codecs ../mfd/madera.txt

properties:
  wlf,ldoena:
    description:
      GPIO specifier for the GPIO controlling LDOENA.
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    maxItems: 1

  ldo1:
    description:
      Initial data for the LDO1 regulator.
    $ref: "regulator.yaml#"
    type: object

  micvdd:
    description:
      Initial data for the MICVDD regulator.
    $ref: "regulator.yaml#"
    type: object

additionalProperties: true


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/remoteproc/amlogic,meson-mx-ao-arc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Amlogic Meson AO ARC Remote Processor bindings

description:
  Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs embed an ARC core
  controller for always-on operations, typically used for managing
  system suspend. Meson6 and older use a ARC core based on the ARCv1
  ISA, while Meson8, Meson8b and Meson8m2 use an ARC EM4 (ARCv2 ISA)
  core.

maintainers:
  - Martin Blumenstingl <martin.blumenstingl@googlemail.com>

properties:
  compatible:
    items:
      - enum:
          - amlogic,meson8-ao-arc
          - amlogic,meson8b-ao-arc
      - const: amlogic,meson-mx-ao-arc

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description:
      The name of the firmware which should be loaded for this remote
      processor.

  reg:
    description:
      Address ranges of the remap and CPU control addresses for the
      remote processor.
    minItems: 2

  reg-names:
    items:
      - const: remap
      - const: cpu

  resets:
    minItems: 1

  clocks:
    minItems: 1

  sram:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      phandles to a reserved SRAM region which is used as the memory of
      the ARC core. The region should be defined as child nodes of the
      AHB SRAM node as per the generic bindings in
      Documentation/devicetree/bindings/sram/sram.yaml

  amlogic,secbus2:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      A phandle to the SECBUS2 region which contains some configuration
      bits of this remote processor

required:
  - compatible
  - reg
  - reg-names
  - resets
  - clocks
  - sram
  - amlogic,secbus2

additionalProperties: false

examples:
  - |
    remoteproc@1c {
      compatible= "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc";
      reg = <0x1c 0x8>, <0x38 0x8>;
      reg-names = "remap", "cpu";
      resets = <&media_cpu_reset>;
      clocks = <&media_cpu_clock>;
      sram = <&ahb_sram_ao_arc>;
      amlogic,secbus2 = <&secbus2>;
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/remoteproc/fsl,imx-rproc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: NXP i.MX Co-Processor Bindings

description:
  This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.

maintainers:
  - Peng Fan <peng.fan@nxp.com>

properties:
  compatible:
    enum:
      - fsl,imx6sx-cm4
      - fsl,imx7d-cm4
      - fsl,imx7ulp-cm4
      - fsl,imx8mm-cm4
      - fsl,imx8mn-cm7
      - fsl,imx8mp-cm7
      - fsl,imx8mq-cm4
      - fsl,imx8ulp-cm33
      - fsl,imx93-cm33

  clocks:
    maxItems: 1

  syscon:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to syscon block which provide access to System Reset Controller

  mbox-names:
    items:
      - const: tx
      - const: rx
      - const: rxdb

  mboxes:
    description:
      This property is required only if the rpmsg/virtio functionality is used.
      List of <&phandle type channel> - 1 channel for TX, 1 channel for RX, 1 channel for RXDB.
      (see mailbox/fsl,mu.yaml)
    minItems: 1
    maxItems: 3

  memory-region:
    description:
      If present, a phandle for a reserved memory area that used for vdev buffer,
      resource table, vring region and others used by remote processor.
    minItems: 1
    maxItems: 32

  fsl,auto-boot:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Indicate whether need to load the default firmware and start the remote
      processor automatically.

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx7d-clock.h>
    m4_reserved_sysmem1: cm4@80000000 {
      reg = <0x80000000 0x80000>;
    };

    m4_reserved_sysmem2: cm4@81000000 {
      reg = <0x81000000 0x80000>;
    };

    imx7d-cm4 {
      compatible	= "fsl,imx7d-cm4";
      memory-region	= <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
      syscon		= <&src>;
      clocks		= <&clks IMX7D_ARM_M4_ROOT_CLK>;
    };

  - |
    #include <dt-bindings/clock/imx8mm-clock.h>

    imx8mm-cm4 {
      compatible = "fsl,imx8mm-cm4";
      clocks = <&clk IMX8MM_CLK_M4_DIV>;
      mbox-names = "tx", "rx", "rxdb";
      mboxes = <&mu 0 1
                &mu 1 1
                &mu 3 1>;
      memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
      syscon = <&src>;
    };
...


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

title: Ingenic Video Processing Unit bindings

description:
  Inside the Video Processing Unit (VPU) of the recent JZ47xx SoCs from
  Ingenic is a second Xburst MIPS CPU very similar to the main core.
  This document describes the devicetree bindings for this auxiliary
  processor.

maintainers:
  - Paul Cercueil <paul@crapouillou.net>

properties:
  compatible:
    const: ingenic,jz4770-vpu-rproc

  reg:
    items:
      - description: aux registers
      - description: tcsm0 registers
      - description: tcsm1 registers
      - description: sram registers

  reg-names:
    items:
      - const: aux
      - const: tcsm0
      - const: tcsm1
      - const: sram

  clocks:
    items:
      - description: aux clock
      - description: vpu clock

  clock-names:
    items:
      - const: aux
      - const: vpu

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/ingenic,jz4770-cgu.h>

    vpu: video-decoder@132a0000 {
      compatible = "ingenic,jz4770-vpu-rproc";

      reg = <0x132a0000 0x20>, /* AUX */
            <0x132b0000 0x4000>, /* TCSM0 */
            <0x132c0000 0xc000>, /* TCSM1 */
            <0x132f0000 0x7000>; /* SRAM */
      reg-names = "aux", "tcsm0", "tcsm1", "sram";

      clocks = <&cgu JZ4770_CLK_AUX>, <&cgu JZ4770_CLK_VPU>;
      clock-names = "aux", "vpu";

      interrupt-parent = <&cpuintc>;
      interrupts = <3>;
    };


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

title: Mediatek SCP Bindings

maintainers:
  - Tinghan Shen <tinghan.shen@mediatek.com>

description:
  This binding provides support for ARM Cortex M4 Co-processor found on some
  Mediatek SoCs.

properties:
  compatible:
    enum:
      - mediatek,mt8183-scp
      - mediatek,mt8186-scp
      - mediatek,mt8188-scp
      - mediatek,mt8192-scp
      - mediatek,mt8195-scp

  reg:
    description:
      Should contain the address ranges for memory regions SRAM, CFG, and,
      on some platforms, L1TCM.
    minItems: 2
    maxItems: 3

  reg-names:
    minItems: 2
    items:
      - const: sram
      - const: cfg
      - const: l1tcm

  clocks:
    description:
      Clock for co-processor (see ../clock/clock-bindings.txt).
      Required by mt8183 and mt8192.
    maxItems: 1

  clock-names:
    const: main

  interrupts:
    maxItems: 1

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description:
      If present, name (or relative path) of the file within the
      firmware search path containing the firmware image used when
      initializing SCP.

  memory-region:
    maxItems: 1

required:
  - compatible
  - reg
  - reg-names

allOf:
  - if:
      properties:
        compatible:
          enum:
            - mediatek,mt8183-scp
            - mediatek,mt8192-scp
    then:
      required:
        - clocks
        - clock-names

  - if:
      properties:
        compatible:
          enum:
            - mediatek,mt8183-scp
            - mediatek,mt8186-scp
            - mediatek,mt8188-scp
    then:
      properties:
        reg:
          maxItems: 2
        reg-names:
          maxItems: 2

additionalProperties:
  type: object
  description:
    Subnodes of the SCP represent rpmsg devices. The names of the devices
    are not important. The properties of these nodes are defined by the
    individual bindings for the rpmsg devices.
  properties:
    mediatek,rpmsg-name:
      $ref: /schemas/types.yaml#/definitions/string-array
      description:
        Contains the name for the rpmsg device. Used to match
        the subnode to rpmsg device announced by SCP.

  required:
    - mediatek,rpmsg-name

examples:
  - |
    #include <dt-bindings/clock/mt8192-clk.h>

    scp@10500000 {
        compatible = "mediatek,mt8192-scp";
        reg = <0x10500000 0x80000>,
              <0x10700000 0x8000>,
              <0x10720000 0xe0000>;
        reg-names = "sram", "cfg", "l1tcm";
        clocks = <&infracfg CLK_INFRA_SCPSYS>;
        clock-names = "main";

        cros_ec {
            mediatek,rpmsg-name = "cros-ec-rpmsg";
        };
    };


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

title: Qualcomm ADSP Peripheral Image Loader binding

maintainers:
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

description:
  This document defines the binding for a component that loads and boots
  firmware on the Qualcomm ADSP Hexagon core.

properties:
  compatible:
    enum:
      - qcom,msm8226-adsp-pil
      - qcom,msm8974-adsp-pil
      - qcom,msm8996-adsp-pil
      - qcom,msm8996-slpi-pil
      - qcom,msm8998-adsp-pas
      - qcom,msm8998-slpi-pas
      - qcom,qcs404-adsp-pas
      - qcom,qcs404-cdsp-pas
      - qcom,qcs404-wcss-pas
      - qcom,sc7180-mpss-pas
      - qcom,sc7280-mpss-pas
      - qcom,sc8180x-adsp-pas
      - qcom,sc8180x-cdsp-pas
      - qcom,sc8180x-mpss-pas
      - qcom,sc8280xp-adsp-pas
      - qcom,sc8280xp-nsp0-pas
      - qcom,sc8280xp-nsp1-pas
      - qcom,sdm660-adsp-pas
      - qcom,sdm845-adsp-pas
      - qcom,sdm845-cdsp-pas
      - qcom,sdx55-mpss-pas
      - qcom,sm6350-adsp-pas
      - qcom,sm6350-cdsp-pas
      - qcom,sm6350-mpss-pas
      - qcom,sm8150-adsp-pas
      - qcom,sm8150-cdsp-pas
      - qcom,sm8150-mpss-pas
      - qcom,sm8150-slpi-pas
      - qcom,sm8250-adsp-pas
      - qcom,sm8250-cdsp-pas
      - qcom,sm8250-slpi-pas
      - qcom,sm8350-adsp-pas
      - qcom,sm8350-cdsp-pas
      - qcom,sm8350-slpi-pas
      - qcom,sm8350-mpss-pas
      - qcom,sm8450-adsp-pas
      - qcom,sm8450-cdsp-pas
      - qcom,sm8450-mpss-pas
      - qcom,sm8450-slpi-pas

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 8

  clock-names:
    minItems: 1
    maxItems: 8

  interconnects:
    maxItems: 1

  interrupts:
    minItems: 5
    items:
      - description: Watchdog interrupt
      - description: Fatal interrupt
      - description: Ready interrupt
      - description: Handover interrupt
      - description: Stop acknowledge interrupt
      - description: Shutdown acknowledge interrupt

  interrupt-names:
    minItems: 5
    items:
      - const: wdog
      - const: fatal
      - const: ready
      - const: handover
      - const: stop-ack
      - const: shutdown-ack

  resets:
    minItems: 1
    maxItems: 3

  reset-names:
    minItems: 1
    maxItems: 3

  cx-supply:
    description: Phandle to the CX regulator

  px-supply:
    description: Phandle to the PX regulator

  power-domains:
    minItems: 1
    maxItems: 3

  power-domain-names:
    minItems: 1
    maxItems: 3

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description: Firmware name for the Hexagon core

  memory-region:
    maxItems: 1
    description: Reference to the reserved-memory for the Hexagon core

  qcom,qmp:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: Reference to the AOSS side-channel message RAM.

  qcom,smem-states:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: States used by the AP to signal the Hexagon core
    items:
      - description: Stop the modem

  qcom,smem-state-names:
    description: The names of the state bits used for SMP2P output
    items:
      - const: stop

  qcom,halt-regs:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: Phandle reference to a syscon representing TCSR
          - description: offsets within syscon for q6 halt registers
          - description: offsets within syscon for modem halt registers
          - description: offsets within syscon for nc halt registers
    description:
      Phandle reference to a syscon representing TCSR followed by the
      three offsets within syscon for q6, modem and nc halt registers.

  smd-edge:
    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    description:
      Qualcomm Shared Memory subnode which represents communication edge,
      channels and devices related to the ADSP.
    unevaluatedProperties: false

  glink-edge:
    $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
    description:
      Qualcomm G-Link subnode which represents communication edge, channels
      and devices related to the ADSP.

required:
  - compatible
  - clocks
  - clock-names
  - interrupts
  - interrupt-names
  - memory-region
  - qcom,smem-states
  - qcom,smem-state-names

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8226-adsp-pil
              - qcom,msm8974-adsp-pil
              - qcom,msm8996-adsp-pil
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-adsp-pas
              - qcom,qcs404-adsp-pas
              - qcom,qcs404-wcss-pas
              - qcom,sc7280-mpss-pas
              - qcom,sc8180x-adsp-pas
              - qcom,sc8180x-cdsp-pas
              - qcom,sc8180x-mpss-pas
              - qcom,sc8280xp-adsp-pas
              - qcom,sc8280xp-nsp0-pas
              - qcom,sc8280xp-nsp1-pas
              - qcom,sdm845-adsp-pas
              - qcom,sdm845-cdsp-pas
              - qcom,sm6350-adsp-pas
              - qcom,sm6350-cdsp-pas
              - qcom,sm6350-mpss-pas
              - qcom,sm8150-adsp-pas
              - qcom,sm8150-cdsp-pas
              - qcom,sm8150-mpss-pas
              - qcom,sm8150-slpi-pas
              - qcom,sm8250-adsp-pas
              - qcom,sm8250-cdsp-pas
              - qcom,sm8250-slpi-pas
              - qcom,sm8350-adsp-pas
              - qcom,sm8350-cdsp-pas
              - qcom,sm8350-slpi-pas
              - qcom,sm8350-mpss-pas
              - qcom,sm8450-adsp-pas
              - qcom,sm8450-cdsp-pas
              - qcom,sm8450-slpi-pas
              - qcom,sm8450-mpss-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
        clock-names:
          items:
            - const: xo

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8998-slpi-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
            - description: AGGRE2 clock
        clock-names:
          items:
            - const: xo
            - const: aggre2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs404-cdsp-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
            - description: SWAY clock
            - description: TBU clock
            - description: BIMC clock
            - description: AHB AON clock
            - description: Q6SS SLAVE clock
            - description: Q6SS MASTER clock
            - description: Q6 AXIM clock
        clock-names:
          items:
            - const: xo
            - const: sway
            - const: tbu
            - const: bimc
            - const: ahb_aon
            - const: q6ss_slave
            - const: q6ss_master
            - const: q6_axim

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
            - description: IFACE clock
            - description: BUS clock
            - description: NAC clock
            - description: SNOC AXI clock
            - description: MNOC AXI clock
        clock-names:
          items:
            - const: xo
            - const: iface
            - const: bus
            - const: nav
            - const: snoc_axi
            - const: mnoc_axi

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8226-adsp-pil
              - qcom,msm8974-adsp-pil
              - qcom,msm8996-adsp-pil
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-adsp-pas
              - qcom,msm8998-slpi-pas
              - qcom,qcs404-adsp-pas
              - qcom,qcs404-cdsp-pas
              - qcom,qcs404-wcss-pas
              - qcom,sc8180x-adsp-pas
              - qcom,sc8180x-cdsp-pas
              - qcom,sc8280xp-adsp-pas
              - qcom,sc8280xp-nsp0-pas
              - qcom,sc8280xp-nsp1-pas
              - qcom,sdm845-adsp-pas
              - qcom,sdm845-cdsp-pas
              - qcom,sm6350-adsp-pas
              - qcom,sm6350-cdsp-pas
              - qcom,sm8150-adsp-pas
              - qcom,sm8150-cdsp-pas
              - qcom,sm8150-slpi-pas
              - qcom,sm8250-adsp-pas
              - qcom,sm8250-cdsp-pas
              - qcom,sm8250-slpi-pas
              - qcom,sm8350-adsp-pas
              - qcom,sm8350-cdsp-pas
              - qcom,sm8350-slpi-pas
              - qcom,sm8450-adsp-pas
              - qcom,sm8450-cdsp-pas
              - qcom,sm8450-slpi-pas
    then:
      properties:
        interrupts:
          maxItems: 5
        interrupt-names:
          maxItems: 5

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
              - qcom,sc7280-mpss-pas
              - qcom,sc8180x-mpss-pas
              - qcom,sdx55-mpss-pas
              - qcom,sm6350-mpss-pas
              - qcom,sm8150-mpss-pas
              - qcom,sm8350-mpss-pas
              - qcom,sm8450-mpss-pas
    then:
      properties:
        interrupts:
          minItems: 6
        interrupt-names:
          minItems: 6

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8974-adsp-pil
    then:
      required:
        - cx-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8226-adsp-pil
              - qcom,msm8996-adsp-pil
              - qcom,msm8998-adsp-pas
              - qcom,sm8150-adsp-pas
              - qcom,sm8150-cdsp-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
        power-domain-names:
          items:
            - const: cx

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-slpi-pas
    then:
      properties:
        power-domains:
          items:
            - description: SSC-CX power domain
        power-domain-names:
          items:
            - const: ssc_cx
      required:
        - px-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
            - description: MX power domain
            - description: MSS power domain
        power-domain-names:
          items:
            - const: cx
            - const: mx
            - const: mss

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm6350-cdsp-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
            - description: MX power domain
        power-domain-names:
          items:
            - const: cx
            - const: mx

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7280-mpss-pas
              - qcom,sdx55-mpss-pas
              - qcom,sm6350-mpss-pas
              - qcom,sm8150-mpss-pas
              - qcom,sm8350-mpss-pas
              - qcom,sm8450-mpss-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
            - description: MSS power domain
        power-domain-names:
          items:
            - const: cx
            - const: mss

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc8180x-adsp-pas
              - qcom,sc8180x-cdsp-pas
              - qcom,sc8280xp-adsp-pas
              - qcom,sm6350-adsp-pas
              - qcom,sm8150-slpi-pas
              - qcom,sm8250-adsp-pas
              - qcom,sm8250-slpi-pas
              - qcom,sm8350-adsp-pas
              - qcom,sm8350-slpi-pas
              - qcom,sm8450-adsp-pas
              - qcom,sm8450-slpi-pas
    then:
      properties:
        power-domains:
          items:
            - description: LCX power domain
            - description: LMX power domain
        power-domain-names:
          items:
            - const: lcx
            - const: lmx

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8350-cdsp-pas
              - qcom,sm8450-cdsp-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
            - description: MXC power domain
        power-domain-names:
          items:
            - const: cx
            - const: mxc

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc8280xp-nsp0-pas
              - qcom,sc8280xp-nsp1-pas
    then:
      properties:
        power-domains:
          items:
            - description: NSP power domain
        power-domain-names:
          items:
            - const: nsp

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs404-cdsp-pas
    then:
      properties:
        resets:
          items:
            - description: CDSP restart
        reset-names:
          items:
            - const: restart

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
              - qcom,sc7280-mpss-pas
    then:
      properties:
        resets:
          items:
            - description: MSS restart
            - description: PDC reset
        reset-names:
          items:
            - const: mss_restart
            - const: pdc_reset

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8226-adsp-pil
              - qcom,msm8974-adsp-pil
              - qcom,msm8996-adsp-pil
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-adsp-pas
              - qcom,msm8998-slpi-pas
              - qcom,qcs404-adsp-pas
              - qcom,qcs404-cdsp-pas
              - qcom,qcs404-wcss-pas
              - qcom,sdm660-adsp-pas
              - qcom,sdx55-mpss-pas
    then:
      properties:
        qcom,qmp: false

examples:
  - |
    #include <dt-bindings/clock/qcom,rpmcc.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    adsp {
        compatible = "qcom,msm8974-adsp-pil";

        interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "wdog",
                  "fatal",
                  "ready",
                  "handover",
                  "stop-ack";

        clocks = <&rpmcc RPM_CXO_CLK>;
        clock-names = "xo";

        cx-supply = <&pm8841_s2>;

        memory-region = <&adsp_region>;

        qcom,smem-states = <&adsp_smp2p_out 0>;
        qcom,smem-state-names = "stop";

        smd-edge {
            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;

            qcom,ipc = <&apcs 8 8>;
            qcom,smd-edge = <1>;
        };
    };