# 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

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false
