# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/rockchip,power-controller.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Rockchip Power Domains

maintainers:
  - Elaine Zhang <zhangqing@rock-chips.com>
  - Heiko Stuebner <heiko@sntech.de>

description: |
  Rockchip processors include support for multiple power domains
  which can be powered up/down by software based on different
  application scenarios to save power.

  Power domains contained within power-controller node are
  generic power domain providers documented in
  Documentation/devicetree/bindings/power/power-domain.yaml.

  IP cores belonging to a power domain should contain a
  "power-domains" property that is a phandle for the
  power domain node representing the domain.

properties:
  $nodename:
    const: power-controller

  compatible:
    enum:
      - rockchip,px30-power-controller
      - rockchip,rk3036-power-controller
      - rockchip,rk3066-power-controller
      - rockchip,rk3128-power-controller
      - rockchip,rk3188-power-controller
      - rockchip,rk3228-power-controller
      - rockchip,rk3288-power-controller
      - rockchip,rk3328-power-controller
      - rockchip,rk3366-power-controller
      - rockchip,rk3368-power-controller
      - rockchip,rk3399-power-controller
      - rockchip,rk3568-power-controller
      - rockchip,rk3588-power-controller
      - rockchip,rv1126-power-controller

  "#power-domain-cells":
    const: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

required:
  - compatible
  - "#power-domain-cells"

additionalProperties: false

patternProperties:
  "^power-domain@[0-9a-f]+$":

    $ref: "#/$defs/pd-node"

    unevaluatedProperties: false

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      "^power-domain@[0-9a-f]+$":

        $ref: "#/$defs/pd-node"

        unevaluatedProperties: false

        properties:
          "#address-cells":
            const: 1

          "#size-cells":
            const: 0

        patternProperties:
          "^power-domain@[0-9a-f]+$":

            $ref: "#/$defs/pd-node"

            unevaluatedProperties: false

            properties:
              "#power-domain-cells":
                const: 0

$defs:
  pd-node:
    type: object
    description: |
      Represents the power domains within the power controller node.

    properties:
      reg:
        maxItems: 1
        description: |
          Power domain index. Valid values are defined in
          "include/dt-bindings/power/px30-power.h"
          "include/dt-bindings/power/rk3036-power.h"
          "include/dt-bindings/power/rk3066-power.h"
          "include/dt-bindings/power/rk3128-power.h"
          "include/dt-bindings/power/rk3188-power.h"
          "include/dt-bindings/power/rk3228-power.h"
          "include/dt-bindings/power/rk3288-power.h"
          "include/dt-bindings/power/rk3328-power.h"
          "include/dt-bindings/power/rk3366-power.h"
          "include/dt-bindings/power/rk3368-power.h"
          "include/dt-bindings/power/rk3399-power.h"
          "include/dt-bindings/power/rk3568-power.h"
          "include/dt-bindings/power/rk3588-power.h"
          "include/dt-bindings/power/rockchip,rv1126-power.h"

      clocks:
        minItems: 1
        maxItems: 30
        description: |
          A number of phandles to clocks that need to be enabled
          while power domain switches state.

      pm_qos:
        $ref: /schemas/types.yaml#/definitions/phandle-array
        items:
          maxItems: 1
        description: |
          A number of phandles to qos blocks which need to be saved and restored
          while power domain switches state.

      "#power-domain-cells":
        enum: [0, 1]
        description:
          Must be 0 for nodes representing a single PM domain and 1 for nodes
          providing multiple PM domains.

    required:
      - reg
      - "#power-domain-cells"

examples:
  - |
    #include <dt-bindings/clock/rk3399-cru.h>
    #include <dt-bindings/power/rk3399-power.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        qos_hdcp: qos@ffa90000 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffa90000 0x0 0x20>;
        };

        qos_iep: qos@ffa98000 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffa98000 0x0 0x20>;
        };

        qos_rga_r: qos@ffab0000 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffab0000 0x0 0x20>;
        };

        qos_rga_w: qos@ffab0080 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffab0080 0x0 0x20>;
        };

        qos_video_m0: qos@ffab8000 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffab8000 0x0 0x20>;
        };

        qos_video_m1_r: qos@ffac0000 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffac0000 0x0 0x20>;
        };

        qos_video_m1_w: qos@ffac0080 {
            compatible = "rockchip,rk3399-qos", "syscon";
            reg = <0x0 0xffac0080 0x0 0x20>;
        };

        power-management@ff310000 {
            compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
            reg = <0x0 0xff310000 0x0 0x1000>;

            power-controller {
                compatible = "rockchip,rk3399-power-controller";
                #power-domain-cells = <1>;
                #address-cells = <1>;
                #size-cells = <0>;

                /* These power domains are grouped by VD_CENTER */
                power-domain@RK3399_PD_IEP {
                    reg = <RK3399_PD_IEP>;
                    clocks = <&cru ACLK_IEP>,
                             <&cru HCLK_IEP>;
                    pm_qos = <&qos_iep>;
                    #power-domain-cells = <0>;
                };
                power-domain@RK3399_PD_RGA {
                    reg = <RK3399_PD_RGA>;
                    clocks = <&cru ACLK_RGA>,
                             <&cru HCLK_RGA>;
                    pm_qos = <&qos_rga_r>,
                             <&qos_rga_w>;
                    #power-domain-cells = <0>;
                };
                power-domain@RK3399_PD_VCODEC {
                    reg = <RK3399_PD_VCODEC>;
                    clocks = <&cru ACLK_VCODEC>,
                             <&cru HCLK_VCODEC>;
                    pm_qos = <&qos_video_m0>;
                    #power-domain-cells = <0>;
                };
                power-domain@RK3399_PD_VDU {
                    reg = <RK3399_PD_VDU>;
                    clocks = <&cru ACLK_VDU>,
                             <&cru HCLK_VDU>;
                    pm_qos = <&qos_video_m1_r>,
                             <&qos_video_m1_w>;
                    #power-domain-cells = <0>;
                };
                power-domain@RK3399_PD_VIO {
                    reg = <RK3399_PD_VIO>;
                    #power-domain-cells = <1>;
                    #address-cells = <1>;
                    #size-cells = <0>;

                    power-domain@RK3399_PD_HDCP {
                        reg = <RK3399_PD_HDCP>;
                        clocks = <&cru ACLK_HDCP>,
                                 <&cru HCLK_HDCP>,
                                 <&cru PCLK_HDCP>;
                        pm_qos = <&qos_hdcp>;
                        #power-domain-cells = <0>;
                    };
                };
            };
        };
    };
