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

title: RK808 Power Management Integrated Circuit

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

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

properties:
  compatible:
    enum:
      - rockchip,rk808

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

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

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

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

  system-power-controller: true

  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.

  vcc6-supply:
    description:
      The input supply for LDO_REG1 and LDO_REG2.

  vcc7-supply:
    description:
      The input supply for LDO_REG3 and LDO_REG7.

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

  vcc9-supply:
    description:
      The input supply for LDO_REG4 and LDO_REG5.

  vcc10-supply:
    description:
      The input supply for LDO_REG6.

  vcc11-supply:
    description:
      The input supply for LDO_REG8.

  vcc12-supply:
    description:
      The input supply for SWITCH_REG2.

  vddio-supply:
    description:
      The input supply for digital IO.

  dvs-gpios:
    description: |
      buck1/2 can be controlled by gpio dvs, this is GPIO specifiers for
      2 host gpio's used for dvs. The format of the gpio specifier
      depends in the gpio controller. If DVS GPIOs aren't present,
      voltage changes will happen very quickly with no slow ramp time.
    maxItems: 2

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

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";
            clock-output-names = "xin32k", "rk808-clkout2";
            interrupt-parent = <&gpio0>;
            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>;
            dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
                <&gpio7 15 GPIO_ACTIVE_HIGH>;
            reg = <0x1b>;
            rockchip,system-power-controller;
            wakeup-source;
            #clock-cells = <1>;

            vcc8-supply = <&vcc_18>;
            vcc9-supply = <&vcc_io>;
            vcc10-supply = <&vcc_io>;
            vcc12-supply = <&vcc_io>;
            vddio-supply = <&vccio_pmu>;

            regulators {
                vdd_cpu: DCDC_REG1 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <1300000>;
                    regulator-name = "vdd_arm";
                };

                vdd_gpu: DCDC_REG2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <1250000>;
                    regulator-name = "vdd_gpu";
                };

                vcc_ddr: DCDC_REG3 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-name = "vcc_ddr";
                };

                vcc_io: DCDC_REG4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vcc_io";
                };

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

                vcc_tp: LDO_REG2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vcc_tp";
                };

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

                vcc18_lcd: LDO_REG4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-name = "vcc18_lcd";
                };

                vccio_sd: LDO_REG5 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vccio_sd";
                };

                vdd10_lcd: LDO_REG6 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1000000>;
                    regulator-name = "vdd10_lcd";
                };

                vcc_18: LDO_REG7 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-name = "vcc_18";
                };

                vcca_codec: LDO_REG8 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-name = "vcca_codec";
                };

                vcc_wl: SWITCH_REG1 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-name = "vcc_wl";
                };

                vcc_lcd: SWITCH_REG2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-name = "vcc_lcd";
                };
            };
        };
    };
