xref: /openbmc/linux/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1d7462213SEnric Balletbo i Serra# SPDX-License-Identifier: GPL-2.0
2d7462213SEnric Balletbo i Serra%YAML 1.2
3d7462213SEnric Balletbo i Serra---
4d7462213SEnric Balletbo i Serra$id: http://devicetree.org/schemas/power/rockchip,power-controller.yaml#
5d7462213SEnric Balletbo i Serra$schema: http://devicetree.org/meta-schemas/core.yaml#
6d7462213SEnric Balletbo i Serra
7d7462213SEnric Balletbo i Serratitle: Rockchip Power Domains
8d7462213SEnric Balletbo i Serra
9d7462213SEnric Balletbo i Serramaintainers:
10d7462213SEnric Balletbo i Serra  - Elaine Zhang <zhangqing@rock-chips.com>
11d7462213SEnric Balletbo i Serra  - Heiko Stuebner <heiko@sntech.de>
12d7462213SEnric Balletbo i Serra
13d7462213SEnric Balletbo i Serradescription: |
14d7462213SEnric Balletbo i Serra  Rockchip processors include support for multiple power domains
15d7462213SEnric Balletbo i Serra  which can be powered up/down by software based on different
16d7462213SEnric Balletbo i Serra  application scenarios to save power.
17d7462213SEnric Balletbo i Serra
18d7462213SEnric Balletbo i Serra  Power domains contained within power-controller node are
19d7462213SEnric Balletbo i Serra  generic power domain providers documented in
20d7462213SEnric Balletbo i Serra  Documentation/devicetree/bindings/power/power-domain.yaml.
21d7462213SEnric Balletbo i Serra
22d7462213SEnric Balletbo i Serra  IP cores belonging to a power domain should contain a
23d7462213SEnric Balletbo i Serra  "power-domains" property that is a phandle for the
24d7462213SEnric Balletbo i Serra  power domain node representing the domain.
25d7462213SEnric Balletbo i Serra
26d7462213SEnric Balletbo i Serraproperties:
27d7462213SEnric Balletbo i Serra  $nodename:
28d7462213SEnric Balletbo i Serra    const: power-controller
29d7462213SEnric Balletbo i Serra
30d7462213SEnric Balletbo i Serra  compatible:
31d7462213SEnric Balletbo i Serra    enum:
32d7462213SEnric Balletbo i Serra      - rockchip,px30-power-controller
33d7462213SEnric Balletbo i Serra      - rockchip,rk3036-power-controller
34d7462213SEnric Balletbo i Serra      - rockchip,rk3066-power-controller
35d7462213SEnric Balletbo i Serra      - rockchip,rk3128-power-controller
36d7462213SEnric Balletbo i Serra      - rockchip,rk3188-power-controller
37d7462213SEnric Balletbo i Serra      - rockchip,rk3228-power-controller
38d7462213SEnric Balletbo i Serra      - rockchip,rk3288-power-controller
39d7462213SEnric Balletbo i Serra      - rockchip,rk3328-power-controller
40d7462213SEnric Balletbo i Serra      - rockchip,rk3366-power-controller
41d7462213SEnric Balletbo i Serra      - rockchip,rk3368-power-controller
42d7462213SEnric Balletbo i Serra      - rockchip,rk3399-power-controller
4366b89b8bSElaine Zhang      - rockchip,rk3568-power-controller
44*167bbadeSSebastian Reichel      - rockchip,rk3588-power-controller
452f3484b2SJagan Teki      - rockchip,rv1126-power-controller
46d7462213SEnric Balletbo i Serra
47d7462213SEnric Balletbo i Serra  "#power-domain-cells":
48d7462213SEnric Balletbo i Serra    const: 1
49d7462213SEnric Balletbo i Serra
50d7462213SEnric Balletbo i Serra  "#address-cells":
51d7462213SEnric Balletbo i Serra    const: 1
52d7462213SEnric Balletbo i Serra
53d7462213SEnric Balletbo i Serra  "#size-cells":
54d7462213SEnric Balletbo i Serra    const: 0
55d7462213SEnric Balletbo i Serra
56d7462213SEnric Balletbo i Serrarequired:
57d7462213SEnric Balletbo i Serra  - compatible
58d7462213SEnric Balletbo i Serra  - "#power-domain-cells"
59d7462213SEnric Balletbo i Serra
60d7462213SEnric Balletbo i SerraadditionalProperties: false
61d7462213SEnric Balletbo i Serra
62d7462213SEnric Balletbo i SerrapatternProperties:
63d7462213SEnric Balletbo i Serra  "^power-domain@[0-9a-f]+$":
64d7462213SEnric Balletbo i Serra
65d7462213SEnric Balletbo i Serra    $ref: "#/$defs/pd-node"
66d7462213SEnric Balletbo i Serra
67d7462213SEnric Balletbo i Serra    unevaluatedProperties: false
68d7462213SEnric Balletbo i Serra
69d7462213SEnric Balletbo i Serra    properties:
70d7462213SEnric Balletbo i Serra      "#address-cells":
71d7462213SEnric Balletbo i Serra        const: 1
72d7462213SEnric Balletbo i Serra
73d7462213SEnric Balletbo i Serra      "#size-cells":
74d7462213SEnric Balletbo i Serra        const: 0
75d7462213SEnric Balletbo i Serra
76d7462213SEnric Balletbo i Serra    patternProperties:
77d7462213SEnric Balletbo i Serra      "^power-domain@[0-9a-f]+$":
78d7462213SEnric Balletbo i Serra
79d7462213SEnric Balletbo i Serra        $ref: "#/$defs/pd-node"
80d7462213SEnric Balletbo i Serra
81d7462213SEnric Balletbo i Serra        unevaluatedProperties: false
82d7462213SEnric Balletbo i Serra
83d7462213SEnric Balletbo i Serra        properties:
84d7462213SEnric Balletbo i Serra          "#address-cells":
85d7462213SEnric Balletbo i Serra            const: 1
86d7462213SEnric Balletbo i Serra
87d7462213SEnric Balletbo i Serra          "#size-cells":
88d7462213SEnric Balletbo i Serra            const: 0
89d7462213SEnric Balletbo i Serra
90d7462213SEnric Balletbo i Serra        patternProperties:
91d7462213SEnric Balletbo i Serra          "^power-domain@[0-9a-f]+$":
92d7462213SEnric Balletbo i Serra
93d7462213SEnric Balletbo i Serra            $ref: "#/$defs/pd-node"
94d7462213SEnric Balletbo i Serra
95d7462213SEnric Balletbo i Serra            unevaluatedProperties: false
96d7462213SEnric Balletbo i Serra
97d7462213SEnric Balletbo i Serra            properties:
98d7462213SEnric Balletbo i Serra              "#power-domain-cells":
99d7462213SEnric Balletbo i Serra                const: 0
100d7462213SEnric Balletbo i Serra
101d7462213SEnric Balletbo i Serra$defs:
102d7462213SEnric Balletbo i Serra  pd-node:
103d7462213SEnric Balletbo i Serra    type: object
104d7462213SEnric Balletbo i Serra    description: |
105d7462213SEnric Balletbo i Serra      Represents the power domains within the power controller node.
106d7462213SEnric Balletbo i Serra
107d7462213SEnric Balletbo i Serra    properties:
108d7462213SEnric Balletbo i Serra      reg:
109d7462213SEnric Balletbo i Serra        maxItems: 1
110d7462213SEnric Balletbo i Serra        description: |
111d7462213SEnric Balletbo i Serra          Power domain index. Valid values are defined in
112d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/px30-power.h"
113d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3036-power.h"
114d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3066-power.h"
115d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3128-power.h"
116d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3188-power.h"
117d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3228-power.h"
118d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3288-power.h"
119d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3328-power.h"
120d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3366-power.h"
121d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3368-power.h"
122d7462213SEnric Balletbo i Serra          "include/dt-bindings/power/rk3399-power.h"
12366b89b8bSElaine Zhang          "include/dt-bindings/power/rk3568-power.h"
124*167bbadeSSebastian Reichel          "include/dt-bindings/power/rk3588-power.h"
1252f3484b2SJagan Teki          "include/dt-bindings/power/rockchip,rv1126-power.h"
126d7462213SEnric Balletbo i Serra
127d7462213SEnric Balletbo i Serra      clocks:
128d7462213SEnric Balletbo i Serra        minItems: 1
129d7462213SEnric Balletbo i Serra        maxItems: 30
130d7462213SEnric Balletbo i Serra        description: |
131d7462213SEnric Balletbo i Serra          A number of phandles to clocks that need to be enabled
132d7462213SEnric Balletbo i Serra          while power domain switches state.
133d7462213SEnric Balletbo i Serra
134d7462213SEnric Balletbo i Serra      pm_qos:
135d7462213SEnric Balletbo i Serra        $ref: /schemas/types.yaml#/definitions/phandle-array
13639bd2b6aSRob Herring        items:
13739bd2b6aSRob Herring          maxItems: 1
138d7462213SEnric Balletbo i Serra        description: |
139d7462213SEnric Balletbo i Serra          A number of phandles to qos blocks which need to be saved and restored
140d7462213SEnric Balletbo i Serra          while power domain switches state.
141d7462213SEnric Balletbo i Serra
142d7462213SEnric Balletbo i Serra      "#power-domain-cells":
143d7462213SEnric Balletbo i Serra        enum: [0, 1]
144d7462213SEnric Balletbo i Serra        description:
145d7462213SEnric Balletbo i Serra          Must be 0 for nodes representing a single PM domain and 1 for nodes
146d7462213SEnric Balletbo i Serra          providing multiple PM domains.
147d7462213SEnric Balletbo i Serra
148d7462213SEnric Balletbo i Serra    required:
149d7462213SEnric Balletbo i Serra      - reg
150d7462213SEnric Balletbo i Serra      - "#power-domain-cells"
151d7462213SEnric Balletbo i Serra
152d7462213SEnric Balletbo i Serraexamples:
153d7462213SEnric Balletbo i Serra  - |
154d7462213SEnric Balletbo i Serra    #include <dt-bindings/clock/rk3399-cru.h>
155d7462213SEnric Balletbo i Serra    #include <dt-bindings/power/rk3399-power.h>
156d7462213SEnric Balletbo i Serra
157d7462213SEnric Balletbo i Serra    soc {
158d7462213SEnric Balletbo i Serra        #address-cells = <2>;
159d7462213SEnric Balletbo i Serra        #size-cells = <2>;
160d7462213SEnric Balletbo i Serra
161d7462213SEnric Balletbo i Serra        qos_hdcp: qos@ffa90000 {
162d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
163d7462213SEnric Balletbo i Serra            reg = <0x0 0xffa90000 0x0 0x20>;
164d7462213SEnric Balletbo i Serra        };
165d7462213SEnric Balletbo i Serra
166d7462213SEnric Balletbo i Serra        qos_iep: qos@ffa98000 {
167d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
168d7462213SEnric Balletbo i Serra            reg = <0x0 0xffa98000 0x0 0x20>;
169d7462213SEnric Balletbo i Serra        };
170d7462213SEnric Balletbo i Serra
171d7462213SEnric Balletbo i Serra        qos_rga_r: qos@ffab0000 {
172d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
173d7462213SEnric Balletbo i Serra            reg = <0x0 0xffab0000 0x0 0x20>;
174d7462213SEnric Balletbo i Serra        };
175d7462213SEnric Balletbo i Serra
176d7462213SEnric Balletbo i Serra        qos_rga_w: qos@ffab0080 {
177d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
178d7462213SEnric Balletbo i Serra            reg = <0x0 0xffab0080 0x0 0x20>;
179d7462213SEnric Balletbo i Serra        };
180d7462213SEnric Balletbo i Serra
181d7462213SEnric Balletbo i Serra        qos_video_m0: qos@ffab8000 {
182d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
183d7462213SEnric Balletbo i Serra            reg = <0x0 0xffab8000 0x0 0x20>;
184d7462213SEnric Balletbo i Serra        };
185d7462213SEnric Balletbo i Serra
186d7462213SEnric Balletbo i Serra        qos_video_m1_r: qos@ffac0000 {
187d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
188d7462213SEnric Balletbo i Serra            reg = <0x0 0xffac0000 0x0 0x20>;
189d7462213SEnric Balletbo i Serra        };
190d7462213SEnric Balletbo i Serra
191d7462213SEnric Balletbo i Serra        qos_video_m1_w: qos@ffac0080 {
192d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-qos", "syscon";
193d7462213SEnric Balletbo i Serra            reg = <0x0 0xffac0080 0x0 0x20>;
194d7462213SEnric Balletbo i Serra        };
195d7462213SEnric Balletbo i Serra
196d7462213SEnric Balletbo i Serra        power-management@ff310000 {
197d7462213SEnric Balletbo i Serra            compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
198d7462213SEnric Balletbo i Serra            reg = <0x0 0xff310000 0x0 0x1000>;
199d7462213SEnric Balletbo i Serra
200d7462213SEnric Balletbo i Serra            power-controller {
201d7462213SEnric Balletbo i Serra                compatible = "rockchip,rk3399-power-controller";
202d7462213SEnric Balletbo i Serra                #power-domain-cells = <1>;
203d7462213SEnric Balletbo i Serra                #address-cells = <1>;
204d7462213SEnric Balletbo i Serra                #size-cells = <0>;
205d7462213SEnric Balletbo i Serra
206d7462213SEnric Balletbo i Serra                /* These power domains are grouped by VD_CENTER */
207d7462213SEnric Balletbo i Serra                power-domain@RK3399_PD_IEP {
208d7462213SEnric Balletbo i Serra                    reg = <RK3399_PD_IEP>;
209d7462213SEnric Balletbo i Serra                    clocks = <&cru ACLK_IEP>,
210d7462213SEnric Balletbo i Serra                             <&cru HCLK_IEP>;
211d7462213SEnric Balletbo i Serra                    pm_qos = <&qos_iep>;
212d7462213SEnric Balletbo i Serra                    #power-domain-cells = <0>;
213d7462213SEnric Balletbo i Serra                };
214d7462213SEnric Balletbo i Serra                power-domain@RK3399_PD_RGA {
215d7462213SEnric Balletbo i Serra                    reg = <RK3399_PD_RGA>;
216d7462213SEnric Balletbo i Serra                    clocks = <&cru ACLK_RGA>,
217d7462213SEnric Balletbo i Serra                             <&cru HCLK_RGA>;
218d7462213SEnric Balletbo i Serra                    pm_qos = <&qos_rga_r>,
219d7462213SEnric Balletbo i Serra                             <&qos_rga_w>;
220d7462213SEnric Balletbo i Serra                    #power-domain-cells = <0>;
221d7462213SEnric Balletbo i Serra                };
222d7462213SEnric Balletbo i Serra                power-domain@RK3399_PD_VCODEC {
223d7462213SEnric Balletbo i Serra                    reg = <RK3399_PD_VCODEC>;
224d7462213SEnric Balletbo i Serra                    clocks = <&cru ACLK_VCODEC>,
225d7462213SEnric Balletbo i Serra                             <&cru HCLK_VCODEC>;
226d7462213SEnric Balletbo i Serra                    pm_qos = <&qos_video_m0>;
227d7462213SEnric Balletbo i Serra                    #power-domain-cells = <0>;
228d7462213SEnric Balletbo i Serra                };
229d7462213SEnric Balletbo i Serra                power-domain@RK3399_PD_VDU {
230d7462213SEnric Balletbo i Serra                    reg = <RK3399_PD_VDU>;
231d7462213SEnric Balletbo i Serra                    clocks = <&cru ACLK_VDU>,
232d7462213SEnric Balletbo i Serra                             <&cru HCLK_VDU>;
233d7462213SEnric Balletbo i Serra                    pm_qos = <&qos_video_m1_r>,
234d7462213SEnric Balletbo i Serra                             <&qos_video_m1_w>;
235d7462213SEnric Balletbo i Serra                    #power-domain-cells = <0>;
236d7462213SEnric Balletbo i Serra                };
237d7462213SEnric Balletbo i Serra                power-domain@RK3399_PD_VIO {
238d7462213SEnric Balletbo i Serra                    reg = <RK3399_PD_VIO>;
239d7462213SEnric Balletbo i Serra                    #power-domain-cells = <1>;
240d7462213SEnric Balletbo i Serra                    #address-cells = <1>;
241d7462213SEnric Balletbo i Serra                    #size-cells = <0>;
242d7462213SEnric Balletbo i Serra
243d7462213SEnric Balletbo i Serra                    power-domain@RK3399_PD_HDCP {
244d7462213SEnric Balletbo i Serra                        reg = <RK3399_PD_HDCP>;
245d7462213SEnric Balletbo i Serra                        clocks = <&cru ACLK_HDCP>,
246d7462213SEnric Balletbo i Serra                                 <&cru HCLK_HDCP>,
247d7462213SEnric Balletbo i Serra                                 <&cru PCLK_HDCP>;
248d7462213SEnric Balletbo i Serra                        pm_qos = <&qos_hdcp>;
249d7462213SEnric Balletbo i Serra                        #power-domain-cells = <0>;
250d7462213SEnric Balletbo i Serra                    };
251d7462213SEnric Balletbo i Serra                };
252d7462213SEnric Balletbo i Serra            };
253d7462213SEnric Balletbo i Serra        };
254d7462213SEnric Balletbo i Serra    };
255