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