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

title: ROHM BD71815 Power Management Integrated Circuit regulators

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

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

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

  The valid names for BD71815 regulator nodes are
  buck1, buck2, buck3, buck4, buck5,
  ldo1, ldo2, ldo3, ldo4, ldo5,
  ldodvref, ldolpsr, wled

properties:
  wled:
    type: object
    description:
      properties for wled regulator
    $ref: regulator.yaml#

    properties:
      regulator-name:
        const: wled

patternProperties:
  "^((ldo|buck)[1-5]|ldolpsr|ldodvref)$":
    type: object
    description:
      Properties for single LDO/BUCK regulator.
    $ref: regulator.yaml#

    properties:
      regulator-name:
        pattern: "^((ldo|buck)[1-5]|ldolpsr|ldodvref)$"
        description:
          should be "ldo1", ..., "ldo5", "buck1", ..., "buck5" and "ldolpsr"
          for ldolpsr regulator, "ldodvref" for ldodvref reglator.

      rohm,vsel-gpios:
        description:
          GPIO used to control ldo4 state (when ldo4 is controlled by GPIO).

      rohm,dvs-run-voltage:
        description:
          PMIC "RUN" state voltage in uV when PMIC HW states are used. See
          comments below for bucks/LDOs which support this. 0 means
          regulator should be disabled at RUN state.
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 3300000

      rohm,dvs-snvs-voltage:
        description:
          Whether to keep regulator enabled at "SNVS" state or not.
          0 means regulator should be disabled at SNVS state, non zero voltage
          keeps regulator enabled. BD71815 does not change voltage level
          when PMIC transitions to SNVS.SNVS voltage depends on the previous
          state (from which the PMIC transitioned to SNVS).
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 3300000

      rohm,dvs-suspend-voltage:
        description:
          PMIC "SUSPEND" state voltage in uV when PMIC HW states are used. See
          comments below for bucks/LDOs which support this. 0 means
          regulator should be disabled at SUSPEND state.
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 3300000

      rohm,dvs-lpsr-voltage:
        description:
          PMIC "LPSR" state voltage in uV when PMIC HW states are used. See
          comments below for bucks/LDOs which support this. 0 means
          regulator should be disabled at LPSR state.
        $ref: "/schemas/types.yaml#/definitions/uint32"
        minimum: 0
        maximum: 3300000

        # Bucks 1 and 2 support giving separate voltages for operational states
        # (RUN /CLEAN according to data-sheet) and non operational states
        # (LPSR/SUSPEND). The voltage is automatically changed when HW
        # state changes. Omitting these properties from bucks 1 and 2 leave
        # buck voltages to not be toggled by HW state. Enable status may still
        # be toggled by state changes depending on HW default settings.
        #
        # Bucks 3-5 and ldos 1-5 support setting the RUN state voltage here.
        # Given RUN voltage is used at all states if regulator is enabled at
        # given state.
        # Values given for other states are regarded as enable/disable at
        # given state (see below).
        #
        # All regulators except WLED support specifying enable/disable status
        # for each of the HW states (RUN/SNVS/SUSPEND/LPSR). HW defaults can
        # be overridden by setting voltage to 0 (regulator disabled at given
        # state) or non-zero (regulator enabled at given state). Please note
        # that setting non zero voltages for bucks 1/2 will also enable voltage
        # changes according to state change.

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false
