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

title: Maxim MAX8973/MAX77621 voltage regulator

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    enum:
      - maxim,max8973
      - maxim,max77621

  junction-warn-millicelsius:
    description: |
      Junction warning temperature threshold in millicelsius. If die
      temperature crosses this level then device generates the warning
      interrupts.
      Please note that thermal functionality is only supported on MAX77621. The
      supported threshold warning temperature for MAX77621 are 120 degC and 140
      degC.

  maxim,dvs-gpio:
    maxItems: 1
    description: |
      GPIO which is connected to DVS pin of device.

  maxim,dvs-default-state:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]
    description: |
      Default state of GPIO during initialisation.
      1 for HIGH and 0 for LOW.

  maxim,externally-enable:
    type: boolean
    description: |
      Externally control the regulator output enable/disable.

  maxim,enable-gpio:
    maxItems: 1
    description: |
      GPIO for enable control. If the valid GPIO is provided then externally
      enable control will be considered.

  maxim,enable-remote-sense:
    type: boolean
    description: Enable remote sense.

  maxim,enable-falling-slew-rate:
    type: boolean
    description: Enable falling slew rate.

  maxim,enable-active-discharge:
    type: boolean
    description: Eable active discharge.

  maxim,enable-frequency-shift:
    type: boolean
    description: Enable 9% frequency shift.

  maxim,enable-bias-control:
    type: boolean
    description: |
      Enable bias control which can reduce the startup delay to 20us from 220us.

  maxim,enable-etr:
    type: boolean
    description: Enable Enhanced Transient Response.

  maxim,enable-high-etr-sensitivity:
    type: boolean
    description: |
      Enhanced transient response circuit is enabled and set for high
      sensitivity. If this property is available then etr will be enable
      default.
      Enhanced transient response (ETR) will affect the configuration of CKADV.

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg

unevaluatedProperties: false

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

        regulator@1b {
            compatible = "maxim,max8973";
            reg = <0x1b>;

            regulator-min-microvolt = <935000>;
            regulator-max-microvolt = <1200000>;
            regulator-boot-on;
            regulator-always-on;
        };
    };

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

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

        regulator@1b {
            compatible = "maxim,max77621";
            reg = <0x1b>;
            interrupts = <1 IRQ_TYPE_LEVEL_LOW>;

            regulator-always-on;
            regulator-boot-on;
            regulator-min-microvolt = <800000>;
            regulator-max-microvolt = <1231250>;
            regulator-name = "PPVAR_CPU";
            regulator-ramp-delay = <12500>;
            maxim,dvs-default-state = <1>;
            maxim,enable-active-discharge;
            maxim,enable-bias-control;
            maxim,enable-etr;
            maxim,enable-gpio = <&pmic 5 GPIO_ACTIVE_HIGH>;
            maxim,externally-enable;
        };
    };
