1 * Rockchip Power Domains
3 Rockchip processors include support for multiple power domains which can be
4 powered up/down by software based on different application scenes to save power.
6 Required properties for power domain controller:
7 - compatible: Should be one of the following.
8 "rockchip,px30-power-controller" - for PX30 SoCs.
9 "rockchip,rk3036-power-controller" - for RK3036 SoCs.
10 "rockchip,rk3066-power-controller" - for RK3066 SoCs.
11 "rockchip,rk3128-power-controller" - for RK3128 SoCs.
12 "rockchip,rk3188-power-controller" - for RK3188 SoCs.
13 "rockchip,rk3228-power-controller" - for RK3228 SoCs.
14 "rockchip,rk3288-power-controller" - for RK3288 SoCs.
15 "rockchip,rk3328-power-controller" - for RK3328 SoCs.
16 "rockchip,rk3366-power-controller" - for RK3366 SoCs.
17 "rockchip,rk3368-power-controller" - for RK3368 SoCs.
18 "rockchip,rk3399-power-controller" - for RK3399 SoCs.
19 - #power-domain-cells: Number of cells in a power-domain specifier.
20 Should be 1 for multiple PM domains.
21 - #address-cells: Should be 1.
22 - #size-cells: Should be 0.
24 Required properties for power domain sub nodes:
25 - reg: index of the power domain, should use macros in:
26 "include/dt-bindings/power/px30-power.h" - for PX30 type power domain.
27 "include/dt-bindings/power/rk3036-power.h" - for RK3036 type power domain.
28 "include/dt-bindings/power/rk3066-power.h" - for RK3066 type power domain.
29 "include/dt-bindings/power/rk3128-power.h" - for RK3128 type power domain.
30 "include/dt-bindings/power/rk3188-power.h" - for RK3188 type power domain.
31 "include/dt-bindings/power/rk3228-power.h" - for RK3228 type power domain.
32 "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
33 "include/dt-bindings/power/rk3328-power.h" - for RK3328 type power domain.
34 "include/dt-bindings/power/rk3366-power.h" - for RK3366 type power domain.
35 "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
36 "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.
37 - clocks (optional): phandles to clocks which need to be enabled while power domain
39 - pm_qos (optional): phandles to qos blocks which need to be saved and restored
40 while power domain switches state.
44 qos_gpu: qos_gpu@ffaf0000 {
46 reg = <0x0 0xffaf0000 0x0 0x20>;
51 power: power-controller {
52 compatible = "rockchip,rk3288-power-controller";
53 #power-domain-cells = <1>;
58 reg = <RK3288_PD_GPU>;
59 clocks = <&cru ACLK_GPU>;
64 power: power-controller {
65 compatible = "rockchip,rk3368-power-controller";
66 #power-domain-cells = <1>;
71 reg = <RK3368_PD_GPU_1>;
72 clocks = <&cru ACLK_GPU_CFG>;
77 power: power-controller {
78 compatible = "rockchip,rk3399-power-controller";
79 #power-domain-cells = <1>;
86 reg = <RK3399_PD_VIO>;
94 reg = <RK3399_PD_VOPB>;
98 reg = <RK3399_PD_VOPL>;
104 Node of a device using power domains must have a power-domains property,
105 containing a phandle to the power device node and an index specifying which
107 The index should use macros in:
108 "include/dt-bindings/power/px30-power.h" - for px30 type power domain.
109 "include/dt-bindings/power/rk3036-power.h" - for rk3036 type power domain.
110 "include/dt-bindings/power/rk3128-power.h" - for rk3128 type power domain.
111 "include/dt-bindings/power/rk3128-power.h" - for rk3228 type power domain.
112 "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.
113 "include/dt-bindings/power/rk3328-power.h" - for rk3328 type power domain.
114 "include/dt-bindings/power/rk3366-power.h" - for rk3366 type power domain.
115 "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.
116 "include/dt-bindings/power/rk3399-power.h" - for rk3399 type power domain.
118 Example of the node using power domain:
122 power-domains = <&power RK3288_PD_GPU>;
128 power-domains = <&power RK3368_PD_GPU_1>;
134 power-domains = <&power RK3399_PD_VOPB>;