# Copyright 2019-2020, Peter Bigot Consulting, LLC
# Copyright 2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

description: |
  Voltage/Current Regulators

  Properties are inherited from Linux. See
  linux/Documentation/devicetree/bindings/regulator/regulator.yaml.

include: power.yaml

properties:
  regulator-name:
    type: string
    description: A string used as a descriptive name for regulator outputs

  regulator-init-microvolt:
    type: int
    description: Voltage set during initialisation

  regulator-min-microvolt:
    type: int
    description: smallest voltage consumers may set

  regulator-max-microvolt:
    type: int
    description: largest voltage consumers may set

  regulator-microvolt-offset:
    type: int
    description: Offset applied to voltages to compensate for voltage drops

  regulator-init-microamp:
    type: int
    description: Current set during initialisation

  regulator-min-microamp:
    type: int
    description: smallest current consumers may set

  regulator-max-microamp:
    type: int
    description: largest current consumers may set

  regulator-input-current-limit-microamp:
    type: int
    description: maximum input current regulator allows

  regulator-always-on:
    type: boolean
    description: boolean, regulator should never be disabled

  regulator-boot-on:
    type: boolean
    description: |
      bootloader/firmware enabled regulator.
      It's expected that this regulator was left on by the bootloader.
      If the bootloader didn't leave it on then OS should turn it on
      at boot but shouldn't prevent it from being turned off later.
      This property is intended to only be used for regulators where
      software cannot read the state of the regulator.

  regulator-allow-bypass:
    type: boolean
    description: allow the regulator to go into bypass mode

  regulator-allow-set-load:
    type: boolean
    description: allow the regulator performance level to be configured

  regulator-ramp-delay:
    type: int
    description: |
      ramp delay for regulator(in uV/us) For hardware which supports disabling
      ramp rate, it should be explicitly initialised to zero
      (regulator-ramp-delay = <0>) for disabling ramp delay.

  regulator-enable-ramp-delay:
    type: int
    description: |
      The time taken, in microseconds, for the supply rail to reach the target
      voltage, plus/minus whatever tolerance the board design requires. This
      property describes the total system ramp time required due to the
      combination of internal ramping of the regulator itself, and board design
      issues such as trace capacitance and load on the supply.

  regulator-settling-time-us:
    type: int
    description: |
      Settling time, in microseconds, for voltage change if regulator have the
      constant time for any level voltage change. This is useful when regulator
      have exponential voltage change.

  regulator-settling-time-up-us:
    type: int
    description: |
      Settling time, in microseconds, for voltage increase if the regulator
      needs a constant time to settle after voltage increases of any level. This
      is useful for regulators with exponential voltage changes.

  regulator-settling-time-down-us:
    type: int
    description: |
      Settling time, in microseconds, for voltage decrease if the regulator
      needs a constant time to settle after voltage decreases of any level. This
      is useful for regulators with exponential voltage changes.

  regulator-soft-start:
    type: boolean
    description: Enable soft start so that voltage ramps slowly

  regulator-initial-mode:
    type: int
    description: |
      Initial operating mode. The set of possible operating modes depends on the
      capabilities of every hardware so each device binding documentation
      explains which values the regulator supports.

  regulator-allowed-modes:
    type: array
    description: |
      List of operating modes that software is allowed to configure for the
      regulator at run-time. Elements may be specified in any order. The set of
      possible operating modes depends on the capabilities of every hardware so
      each device binding document explains which values the regulator supports.

  regulator-system-load:
    type: int
    description: |
      Load in uA present on regulator that is not captured by any consumer
      request.

  regulator-pull-down:
    type: boolean
    description: Enable pull down resistor when the regulator is disabled.

  regulator-over-current-protection:
    type: boolean
    description: Enable over current protection.

  regulator-oc-protection-microamp:
    type: int
    description: |
      Set over current protection limit. This is a limit where hardware performs
      emergency shutdown. Zero can be passed to disable protection and value '1'
      indicates that protection should be enabled but limit setting can be
      omitted.

  regulator-oc-error-microamp:
    type: int
    description: |
      Set over current error limit. This is a limit where part of the hardware
      probably is malfunctional and damage prevention is requested. Zero can be
      passed to disable error detection and value '1' indicates that detection
      should be enabled but limit setting can be omitted.

  regulator-oc-warn-microamp:
    type: int
    description: |
      Set over current warning limit. This is a limit where hardware is assumed
      still to be functional but approaching limit where it gets damaged.
      Recovery actions should be initiated. Zero can be passed to disable
      detection and value '1' indicates that detection should be enabled but
      limit setting can be omitted.

  regulator-ov-protection-microvolt:
    type: int
    description: |
      Set over voltage protection limit. This is a limit where hardware performs
      emergency shutdown. Zero can be passed to disable protection and value '1'
      indicates that protection should be enabled but limit setting can be
      omitted. Limit is given as microvolt offset from voltage set to regulator.

  regulator-ov-error-microvolt:
    type: int
    description: |
      Set over voltage error limit. This is a limit where part of the hardware
      probably is malfunctional and damage prevention is requested Zero can be
      passed to disable error detection and value '1' indicates that detection
      should be enabled but limit setting can be omitted. Limit is given as
      microvolt offset from voltage set to regulator.

  regulator-ov-warn-microvolt:
    type: int
    description: |
      Set over voltage warning limit. This is a limit where hardware is assumed
      still to be functional but approaching limit where it gets damaged.
      Recovery actions should be initiated. Zero can be passed to disable
      detection and value '1' indicates that detection should be enabled but
      limit setting can be omitted. Limit is given as microvolt offset from
      voltage set to regulator.

  regulator-uv-protection-microvolt:
    type: int
    description: |
      Set over under voltage protection limit. This is a limit where hardware
      performs emergency shutdown. Zero can be passed to disable protection and
      value '1' indicates that protection should be enabled but limit setting
      can be omitted. Limit is given as microvolt offset from voltage set to
      regulator.

  regulator-uv-error-microvolt:
    type: int
    description: |
      Set under voltage error limit. This is a limit where part of the hardware
      probably is malfunctional and damage prevention is requested Zero can be
      passed to disable error detection and value '1' indicates that detection
      should be enabled but limit setting can be omitted. Limit is given as
      microvolt offset from voltage set to regulator.

  regulator-uv-warn-microvolt:
    type: int
    description: |
      Set over under voltage warning limit. This is a limit where hardware is
      assumed still to be functional but approaching limit where it gets
      damaged. Recovery actions should be initiated. Zero can be passed to
      disable detection and value '1' indicates that detection should be enabled
      but limit setting can be omitted. Limit is given as microvolt offset from
      voltage set to regulator.

  regulator-temp-protection-kelvin:
    type: int
    description: |
      Set over temperature protection limit. This is a limit where hardware
      performs emergency shutdown. Zero can be passed to disable protection and
      value '1' indicates that protection should be enabled but limit setting
      can be omitted.

  regulator-temp-error-kelvin:
    type: int
    description: |
      Set over temperature error limit. This is a limit where part of the
      hardware probably is malfunctional and damage prevention is requested Zero
      can be passed to disable error detection and value '1' indicates that
      detection should be enabled but limit setting can be omitted.

  regulator-temp-warn-kelvin:
    type: int
    description: |
      Set over temperature warning limit. This is a limit where hardware is
      assumed still to be functional but approaching limit where it gets
      damaged. Recovery actions should be initiated. Zero can be passed to
      disable detection and value '1' indicates that detection should be enabled
      but limit setting can be omitted.

  regulator-active-discharge:
    type: int
    enum:
      - 0
      - 1
    description: |
      tristate, enable/disable active discharge of regulators. The values are:
      0: Disable active discharge.
      1: Enable active discharge.
      Absence of this property will leave configuration to default.

  regulator-max-step-microvolt:
    type: int
    description: |
      Maximum difference between current and target voltages that can be changed
      safely in a single step.

  startup-delay-us:
    type: int
    description: Startup time, in microseconds

  off-on-delay-us:
    type: int
    description: Off to on delay time, in microseconds
