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

title: RK816 Power Management Integrated Circuit

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

description:
  Rockchip RK816 series PMIC. This device consists of an i2c controlled MFD
  that includes regulators, a RTC, a GPIO controller, a power button, and a
  battery charger manager with fuel gauge.

properties:
  compatible:
    enum:
      - rockchip,rk816

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

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

  clock-output-names:
    maxItems: 2

  gpio-controller: true

  '#gpio-cells':
    const: 2

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

  wakeup-source:
    type: boolean

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

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

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

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

  vcc5-supply:
    description:
      The input supply for ldo1, ldo2, and ldo3.

  vcc6-supply:
    description:
      The input supply for ldo4, ldo5, and ldo6.

  vcc7-supply:
    description:
      The input supply for boost.

  vcc8-supply:
    description:
      The input supply for otg-switch.

  regulators:
    type: object
    patternProperties:
      '^(boost|dcdc[1-4]|ldo[1-6]|otg-switch)$':
        type: object
        $ref: /schemas/regulator/regulator.yaml#
        unevaluatedProperties: false
    additionalProperties: false

patternProperties:
  '-pins$':
    type: object
    additionalProperties: false
    $ref: /schemas/pinctrl/pinmux-node.yaml

    properties:
      function:
        enum: [gpio, thermistor]

      pins:
        $ref: /schemas/types.yaml#/definitions/string
        const: gpio0

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>;

        rk816: pmic@1a {
            compatible = "rockchip,rk816";
            reg = <0x1a>;
            interrupt-parent = <&gpio0>;
            interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
            clock-output-names = "xin32k", "rk816-clkout2";
            pinctrl-names = "default";
            pinctrl-0 = <&pmic_int_l>;
            gpio-controller;
            system-power-controller;
            wakeup-source;
            #clock-cells = <1>;
            #gpio-cells = <2>;

            vcc1-supply = <&vcc_sys>;
            vcc2-supply = <&vcc_sys>;
            vcc3-supply = <&vcc_sys>;
            vcc4-supply = <&vcc_sys>;
            vcc5-supply = <&vcc33_io>;
            vcc6-supply = <&vcc_sys>;

            regulators {
                vdd_cpu: dcdc1 {
                    regulator-name = "vdd_cpu";
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <1450000>;
                    regulator-ramp-delay = <6001>;
                    regulator-initial-mode = <1>;
                    regulator-always-on;
                    regulator-boot-on;

                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_logic: dcdc2 {
                    regulator-name = "vdd_logic";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <1250000>;
                    regulator-ramp-delay = <6001>;
                    regulator-initial-mode = <1>;
                    regulator-always-on;
                    regulator-boot-on;

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1000000>;
                    };
                };

                vcc_ddr: dcdc3 {
                    regulator-name = "vcc_ddr";
                    regulator-initial-mode = <1>;
                    regulator-always-on;
                    regulator-boot-on;

                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                vcc33_io: dcdc4 {
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vcc33_io";
                    regulator-initial-mode = <1>;
                    regulator-always-on;
                    regulator-boot-on;

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <3300000>;
                    };
                };

                vccio_pmu: ldo1 {
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vccio_pmu";
                    regulator-always-on;
                    regulator-boot-on;

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <3300000>;
                    };
                };

                vcc_tp: ldo2 {
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vcc_tp";

                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_10: ldo3 {
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1000000>;
                    regulator-name = "vdd_10";
                    regulator-always-on;
                    regulator-boot-on;

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1000000>;
                    };
                };

                vcc18_lcd: ldo4 {
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-name = "vcc18_lcd";

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1800000>;
                    };
                };

                vccio_sd: ldo5 {
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vccio_sd";

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <3300000>;
                    };
                };

                vdd10_lcd: ldo6 {
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1000000>;
                    regulator-name = "vdd10_lcd";

                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1000000>;
                    };
                };
            };

            rk816_gpio_pins: gpio-pins {
                function = "gpio";
                pins = "gpio0";
            };
        };
    };
