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

title: Maxim MAX77686 Power Management IC

maintainers:
  - Chanwoo Choi <cw00.choi@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

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

  The Maxim MAX77686 is a Power Management IC which includes voltage and
  current regulators, RTC and clock outputs.

  The MAX77686 provides three 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,max77686.h.

properties:
  compatible:
    const: maxim,max77686

  '#clock-cells':
    const: 1

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

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

  wakeup-source: true

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

additionalProperties: false

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

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

        max77686: pmic@9 {
            compatible = "maxim,max77686";
            reg = <0x09>;

            interrupt-parent = <&gpx0>;
            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
            pinctrl-0 = <&max77686_irq>;
            pinctrl-names = "default";
            wakeup-source;
            #clock-cells = <1>;

            voltage-regulators {
                LDO1 {
                    regulator-name = "VALIVE_1.0V_AP";
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1000000>;
                    regulator-always-on;
                };

                LDO2 {
                    regulator-name = "VM1M2_1.2V_AP";
                    regulator-min-microvolt = <1200000>;
                    regulator-max-microvolt = <1200000>;
                    regulator-always-on;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                // ...

                LDO22 {
                    regulator-name = "VMEM_VDD_2.8V";
                    regulator-min-microvolt = <2800000>;
                    regulator-max-microvolt = <2800000>;
                    maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
                };

                // ...

                BUCK1 {
                    regulator-name = "VDD_MIF";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                BUCK2 {
                    regulator-name = "VDD_ARM";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <1500000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                // ...

                BUCK9 {
                    regulator-name = "CAM_ISP_CORE_1.2V";
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1200000>;
                    maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
                };
            };
        };
    };
