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