1* Rockchip Power Domains 2 3Rockchip processors include support for multiple power domains which can be 4powered up/down by software based on different application scenes to save power. 5 6Required 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. 23 24Required 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 38 switches state. 39- pm_qos (optional): phandles to qos blocks which need to be saved and restored 40 while power domain switches state. 41 42Qos Example: 43 44 qos_gpu: qos_gpu@ffaf0000 { 45 compatible ="syscon"; 46 reg = <0x0 0xffaf0000 0x0 0x20>; 47 }; 48 49Example: 50 51 power: power-controller { 52 compatible = "rockchip,rk3288-power-controller"; 53 #power-domain-cells = <1>; 54 #address-cells = <1>; 55 #size-cells = <0>; 56 57 pd_gpu { 58 reg = <RK3288_PD_GPU>; 59 clocks = <&cru ACLK_GPU>; 60 pm_qos = <&qos_gpu>; 61 }; 62 }; 63 64 power: power-controller { 65 compatible = "rockchip,rk3368-power-controller"; 66 #power-domain-cells = <1>; 67 #address-cells = <1>; 68 #size-cells = <0>; 69 70 pd_gpu_1 { 71 reg = <RK3368_PD_GPU_1>; 72 clocks = <&cru ACLK_GPU_CFG>; 73 }; 74 }; 75 76Example 2: 77 power: power-controller { 78 compatible = "rockchip,rk3399-power-controller"; 79 #power-domain-cells = <1>; 80 #address-cells = <1>; 81 #size-cells = <0>; 82 83 pd_vio { 84 #address-cells = <1>; 85 #size-cells = <0>; 86 reg = <RK3399_PD_VIO>; 87 88 pd_vo { 89 #address-cells = <1>; 90 #size-cells = <0>; 91 reg = <RK3399_PD_VO>; 92 93 pd_vopb { 94 reg = <RK3399_PD_VOPB>; 95 }; 96 97 pd_vopl { 98 reg = <RK3399_PD_VOPL>; 99 }; 100 }; 101 }; 102 }; 103 104Node of a device using power domains must have a power-domains property, 105containing a phandle to the power device node and an index specifying which 106power domain to use. 107The 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. 117 118Example of the node using power domain: 119 120 node { 121 /* ... */ 122 power-domains = <&power RK3288_PD_GPU>; 123 /* ... */ 124 }; 125 126 node { 127 /* ... */ 128 power-domains = <&power RK3368_PD_GPU_1>; 129 /* ... */ 130 }; 131 132 node { 133 /* ... */ 134 power-domains = <&power RK3399_PD_VOPB>; 135 /* ... */ 136 }; 137