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

title: RK809 Power Management Integrated Circuit

maintainers:
  - Chris Zhong <zyw@rock-chips.com>
  - Zhang Qing <zhangqing@rock-chips.com>

description: |
  Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD
  that includes regulators, an RTC, and power button.

properties:
  compatible:
    enum:
      - rockchip,rk809

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  '#clock-cells':
    description: |
      See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
    minimum: 0
    maximum: 1

  clock-output-names:
    description:
      From common clock binding to override the default output clock name.

  rockchip,system-power-controller:
    type: boolean
    description:
      Telling whether or not this PMIC is controlling the system power.

  wakeup-source:
    type: boolean
    description:
      Device can be used as a wakeup source.

  vcc1-supply:
    description:
      The input supply for DCDC_REG1.

  vcc2-supply:
    description:
      The input supply for DCDC_REG2.

  vcc3-supply:
    description:
      The input supply for DCDC_REG3.

  vcc4-supply:
    description:
      The input supply for DCDC_REG4.

  vcc5-supply:
    description:
      The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.

  vcc6-supply:
    description:
      The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.

  vcc7-supply:
    description:
      The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.

  vcc8-supply:
    description:
      The input supply for SWITCH_REG1.

  vcc9-supply:
    description:
      The input supply for DCDC_REG5 and SWITCH_REG2.

  regulators:
    type: object
    patternProperties:
      "^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$":
        type: object
        $ref: ../regulator/regulator.yaml#
    unevaluatedProperties: false

allOf:
  - if:
      properties:
        '#clock-cells':
          const: 0

    then:
      properties:
        clock-output-names:
          maxItems: 1

    else:
      properties:
        clock-output-names:
          maxItems: 2

required:
  - compatible
  - reg
  - interrupts
  - "#clock-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/pinctrl/rockchip.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        rk808: pmic@1b {
            compatible = "rockchip,rk808";
            reg = <0x1b>;
            #clock-cells = <1>;
            clock-output-names = "xin32k", "rk808-clkout2";
            interrupt-parent = <&gpio3>;
            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&pmic_int_l_pin>;
            rockchip,system-power-controller;
            wakeup-source;

            vcc1-supply = <&vcc_sysin>;
            vcc2-supply = <&vcc_sysin>;
            vcc3-supply = <&vcc_sysin>;
            vcc4-supply = <&vcc_sysin>;
            vcc6-supply = <&vcc_sysin>;
            vcc7-supply = <&vcc_sysin>;
            vcc8-supply = <&vcc3v3_sys>;
            vcc9-supply = <&vcc_sysin>;
            vcc10-supply = <&vcc_sysin>;
            vcc11-supply = <&vcc_sysin>;
            vcc12-supply = <&vcc3v3_sys>;

            regulators {
                vdd_center: DCDC_REG1 {
                    regulator-name = "vdd_center";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <1350000>;
                    regulator-ramp-delay = <6001>;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_cpu_l: DCDC_REG2 {
                    regulator-name = "vdd_cpu_l";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <1350000>;
                    regulator-ramp-delay = <6001>;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vcc_ddr: DCDC_REG3 {
                    regulator-name = "vcc_ddr";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                vcc_1v8: vcc_wl: DCDC_REG4 {
                    regulator-name = "vcc_1v8";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1800000>;
                    };
                };

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

                vcc_sdio: LDO_REG4 {
                    regulator-name = "vcc_sdio";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <3000000>;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <3000000>;
                    };
                };

                vcca3v0_codec: LDO_REG5 {
                    regulator-name = "vcca3v0_codec";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <3000000>;
                    regulator-max-microvolt = <3000000>;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vcc_1v5: LDO_REG6 {
                    regulator-name = "vcc_1v5";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1500000>;
                    regulator-max-microvolt = <1500000>;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1500000>;
                    };
                };

                vcca1v8_codec: LDO_REG7 {
                    regulator-name = "vcca1v8_codec";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vcc_3v0: LDO_REG8 {
                    regulator-name = "vcc_3v0";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <3000000>;
                    regulator-max-microvolt = <3000000>;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <3000000>;
                    };
                };

                vcc3v3_s3: SWITCH_REG1 {
                    regulator-name = "vcc3v3_s3";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vcc3v3_s0: SWITCH_REG2 {
                    regulator-name = "vcc3v3_s0";
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };
            };
        };
    };
