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

title: Dialog Semiconductor DA9121 voltage regulator

maintainers:
  - Adam Ward <Adam.Ward.opensource@diasemi.com>

description: |
  Dialog Semiconductor DA9121 Single-channel 10A double-phase buck converter
  Dialog Semiconductor DA9122 Double-channel  5A single-phase buck converter
  Dialog Semiconductor DA9220 Double-channel  3A single-phase buck converter
  Dialog Semiconductor DA9217 Single-channel  6A double-phase buck converter
  Dialog Semiconductor DA9130 Single-channel 10A double-phase buck converter
  Dialog Semiconductor DA9131 Double-channel  5A single-phase buck converter
  Dialog Semiconductor DA9132 Double-channel  3A single-phase buck converter

  Current limits

  This is PER PHASE, and the current limit setting in the devices reflect
  that with a maximum 10A limit. Allowing for transients at/near double
  the rated current, this translates across the device range to per
  channel figures as so...

                               | DA9121    DA9122     DA9220    DA9217   DA9140
                               | /DA9130   /DA9131    /DA9132
    -----------------------------------------------------------------------------
    Output current / channel   | 10000000   5000000   3000000   6000000  40000000
    Output current / phase     |  5000000   5000000   3000000   3000000   9500000
    -----------------------------------------------------------------------------
    Min regulator-min-microvolt|   300000    300000    300000    300000    500000
    Max regulator-max-microvolt|  1900000   1900000   1900000   1900000   1000000
    Device hardware default    |  1000000   1000000   1000000   1000000   1000000
    -----------------------------------------------------------------------------
    Min regulator-min-microamp |  7000000   3500000   3500000   7000000  26000000
    Max regulator-max-microamp | 20000000  10000000   6000000  12000000  78000000
    Device hardware default    | 15000000   7500000   5500000  11000000  58000000

properties:
  $nodename:
    pattern: "pmic@[0-9a-f]{1,2}"
  compatible:
    enum:
      - dlg,da9121
      - dlg,da9122
      - dlg,da9220
      - dlg,da9217
      - dlg,da9130
      - dlg,da9131
      - dlg,da9132
      - dlg,da9140

  reg:
    maxItems: 1
    description: Specifies the I2C slave address.

  interrupts:
    maxItems: 1
    description: IRQ line information.

  dlg,irq-polling-delay-passive-ms:
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 1000
    maximum: 10000
    description: |
      Specify the polling period, measured in milliseconds, between interrupt status
      update checks. Range 1000-10000 ms.

  regulators:
    type: object
    $ref: regulator.yaml#
    description: |
      This node defines the settings for the BUCK. The content of the
      sub-node is defined by the standard binding for regulators; see regulator.yaml.
      The DA9121 regulator is bound using their names listed below
      buck1 - BUCK1
      buck2 - BUCK2       //DA9122, DA9220, DA9131, DA9132 only

    patternProperties:
      "^buck([1-2])$":
        type: object
        $ref: regulator.yaml#

        properties:
          regulator-mode:
            maxItems: 1
            description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h

          regulator-initial-mode:
            maxItems: 1
            description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h

          enable-gpios:
            maxItems: 1
            description: Specify a valid GPIO for platform control of the regulator

          dlg,ripple-cancel:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            description: |
              Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h
              Only present on multi-channel devices (DA9122, DA9220, DA9131, DA9132)

        unevaluatedProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/regulator/dlg,da9121-regulator.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      pmic@68 {
        compatible = "dlg,da9121";
        reg = <0x68>;

        interrupt-parent = <&gpio6>;
        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;

        dlg,irq-polling-delay-passive-ms = <2000>;

        regulators {
          DA9121_BUCK1: buck1 {
            regulator-name = "BUCK1";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1900000>;
            regulator-min-microamp = <7000000>;
            regulator-max-microamp = <20000000>;
            regulator-boot-on;
            regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
            enable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
          };
        };
      };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/regulator/dlg,da9121-regulator.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      pmic@68 {
        compatible = "dlg,da9122";
        reg = <0x68>;

        interrupt-parent = <&gpio6>;
        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;

        dlg,irq-polling-delay-passive-ms = <2000>;

        regulators {
          DA9122_BUCK1: buck1 {
            regulator-name = "BUCK1";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1900000>;
            regulator-min-microamp = <3500000>;
            regulator-max-microamp = <10000000>;
            regulator-boot-on;
            regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
            enable-gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>;
            dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>;
          };
          DA9122_BUCK2: buck2 {
            regulator-name = "BUCK2";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1900000>;
            regulator-min-microamp = <3500000>;
            regulator-max-microamp = <10000000>;
            regulator-boot-on;
            regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
            enable-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
            dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>;
          };
        };
      };
    };
...
