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

title: Maxim MAX77802 Power Management IC

maintainers:
  - Javier Martinez Canillas <javier@dowhile0.org>
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for Maxim MAX77802 Power Management
  Integrated Circuit (PMIC).

  The Maxim MAX77802 is a Power Management IC which includes voltage and
  current regulators (10 high efficiency Buck regulators and 32 Low-DropOut
  (LDO)), RTC and clock outputs.

  The MAX77802 provides two 32.768khz clock outputs that can be controlled
  (gated/ungated) over I2C.  The clock IDs are defined as preprocessor macros
  in dt-bindings/clock/maxim,max77802.h.

properties:
  compatible:
    const: maxim,max77802

  '#clock-cells':
    const: 1

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  regulators:
    $ref: /schemas/regulator/maxim,max77802.yaml
    description:
      List of child nodes that specify the regulators.

  inb1-supply:
    description: Power supply for buck1
  inb2-supply:
    description: Power supply for buck2
  inb3-supply:
    description: Power supply for buck3
  inb4-supply:
    description: Power supply for buck4
  inb5-supply:
    description: Power supply for buck5
  inb6-supply:
    description: Power supply for buck6
  inb7-supply:
    description: Power supply for buck7
  inb8-supply:
    description: Power supply for buck8
  inb9-supply:
    description: Power supply for buck9
  inb10-supply:
    description: Power supply for buck10

  inl1-supply:
    description: Power supply for LDO8, LDO15
  inl2-supply:
    description: Power supply for LDO17, LDO27, LDO30, LDO35
  inl3-supply:
    description: Power supply for LDO3, LDO5, LDO7, LDO7
  inl4-supply:
    description: Power supply for LDO10, LDO11, LDO13, LDO14
  inl5-supply:
    description: Power supply for LDO9, LDO19
  inl6-supply:
    description: Power supply for LDO4, LDO21, LDO24, LDO33
  inl7-supply:
    description: Power supply for LDO18, LDO20, LDO28, LDO29
  inl9-supply:
    description: Power supply for LDO12, LDO23, LDO25, LDO26, LDO32, LDO34
  inl10-supply:
    description: Power supply for LDO1, LDO2

  wakeup-source: true

required:
  - compatible
  - '#clock-cells'
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/regulator/maxim,max77802.h>

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

        pmic@9 {
            compatible = "maxim,max77802";
            interrupt-parent = <&gpx3>;
            interrupts = <1 IRQ_TYPE_NONE>;
            pinctrl-names = "default";
            pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
                        <&pmic_dvs_1>, <&pmic_dvs_2>, <&pmic_dvs_3>;
            wakeup-source;
            reg = <0x9>;
            #clock-cells = <1>;

            inb1-supply = <&tps65090_dcdc2>;
            inb2-supply = <&tps65090_dcdc1>;
            inb3-supply = <&tps65090_dcdc2>;
            inb4-supply = <&tps65090_dcdc2>;
            inb5-supply = <&tps65090_dcdc1>;
            inb6-supply = <&tps65090_dcdc2>;
            inb7-supply = <&tps65090_dcdc1>;
            inb8-supply = <&tps65090_dcdc1>;
            inb9-supply = <&tps65090_dcdc1>;
            inb10-supply = <&tps65090_dcdc1>;

            inl1-supply = <&buck5_reg>;
            inl2-supply = <&buck7_reg>;
            inl3-supply = <&buck9_reg>;
            inl4-supply = <&buck9_reg>;
            inl5-supply = <&buck9_reg>;
            inl6-supply = <&tps65090_dcdc2>;
            inl7-supply = <&buck9_reg>;
            inl9-supply = <&tps65090_dcdc2>;
            inl10-supply = <&buck7_reg>;

            regulators {
                BUCK1 {
                    regulator-name = "vdd_mif";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <1300000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-ramp-delay = <12500>;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                BUCK2 {
                    regulator-name = "vdd_arm";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <1500000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-ramp-delay = <12500>;
                    regulator-coupled-with = <&buck3_reg>;
                    regulator-coupled-max-spread = <300000>;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                // ...

                BUCK10 {
                    regulator-name = "vdd_1v8";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                LDO1 {
                    regulator-name = "vdd_1v0";
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1000000>;
                    regulator-always-on;
                    regulator-initial-mode = <MAX77802_OPMODE_NORMAL>;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-mode = <MAX77802_OPMODE_LP>;
                    };
                };

                // ...

                LDO35 {
                    regulator-name = "ldo_35";
                    regulator-min-microvolt = <1200000>;
                    regulator-max-microvolt = <1200000>;
                };
            };
        };
    };
