18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/power/fsl,imx-gpc.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Freescale i.MX General Power Controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Philipp Zabel <p.zabel@pengutronix.de> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: | 138c2ecf20Sopenharmony_ci The i.MX6 General Power Control (GPC) block contains DVFS load tracking 148c2ecf20Sopenharmony_ci counters and Power Gating Control (PGC). 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci The power domains are generic power domain providers as documented in 178c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/power/power-domain.yaml. They are 188c2ecf20Sopenharmony_ci described as subnodes of the power gating controller 'pgc' node of the GPC. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci IP cores belonging to a power domain should contain a 'power-domains' 218c2ecf20Sopenharmony_ci property that is a phandle pointing to the power domain the device belongs 228c2ecf20Sopenharmony_ci to. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciproperties: 258c2ecf20Sopenharmony_ci compatible: 268c2ecf20Sopenharmony_ci enum: 278c2ecf20Sopenharmony_ci - fsl,imx6q-gpc 288c2ecf20Sopenharmony_ci - fsl,imx6qp-gpc 298c2ecf20Sopenharmony_ci - fsl,imx6sl-gpc 308c2ecf20Sopenharmony_ci - fsl,imx6sx-gpc 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci reg: 338c2ecf20Sopenharmony_ci maxItems: 1 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci interrupts: 368c2ecf20Sopenharmony_ci maxItems: 1 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci clocks: 398c2ecf20Sopenharmony_ci maxItems: 1 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci clock-names: 428c2ecf20Sopenharmony_ci const: ipg 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci pgc: 458c2ecf20Sopenharmony_ci type: object 468c2ecf20Sopenharmony_ci description: list of power domains provided by this controller. 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci patternProperties: 498c2ecf20Sopenharmony_ci "power-domain@[0-9]$": 508c2ecf20Sopenharmony_ci type: object 518c2ecf20Sopenharmony_ci properties: 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci '#power-domain-cells': 548c2ecf20Sopenharmony_ci const: 0 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci reg: 578c2ecf20Sopenharmony_ci description: | 588c2ecf20Sopenharmony_ci The following DOMAIN_INDEX values are valid for i.MX6Q: 598c2ecf20Sopenharmony_ci ARM_DOMAIN 0 608c2ecf20Sopenharmony_ci PU_DOMAIN 1 618c2ecf20Sopenharmony_ci The following additional DOMAIN_INDEX value is valid for i.MX6SL: 628c2ecf20Sopenharmony_ci DISPLAY_DOMAIN 2 638c2ecf20Sopenharmony_ci The following additional DOMAIN_INDEX value is valid for i.MX6SX: 648c2ecf20Sopenharmony_ci PCI_DOMAIN 3 658c2ecf20Sopenharmony_ci maxItems: 1 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci clocks: 688c2ecf20Sopenharmony_ci description: | 698c2ecf20Sopenharmony_ci A number of phandles to clocks that need to be enabled during domain 708c2ecf20Sopenharmony_ci power-up sequencing to ensure reset propagation into devices located 718c2ecf20Sopenharmony_ci inside this power domain. 728c2ecf20Sopenharmony_ci minItems: 1 738c2ecf20Sopenharmony_ci maxItems: 7 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci power-supply: true 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci required: 788c2ecf20Sopenharmony_ci - '#power-domain-cells' 798c2ecf20Sopenharmony_ci - reg 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_cirequired: 828c2ecf20Sopenharmony_ci - compatible 838c2ecf20Sopenharmony_ci - reg 848c2ecf20Sopenharmony_ci - interrupts 858c2ecf20Sopenharmony_ci - clocks 868c2ecf20Sopenharmony_ci - clock-names 878c2ecf20Sopenharmony_ci - pgc 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ciadditionalProperties: false 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ciexamples: 928c2ecf20Sopenharmony_ci - | 938c2ecf20Sopenharmony_ci #include <dt-bindings/clock/imx6qdl-clock.h> 948c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci gpc@20dc000 { 978c2ecf20Sopenharmony_ci compatible = "fsl,imx6q-gpc"; 988c2ecf20Sopenharmony_ci reg = <0x020dc000 0x4000>; 998c2ecf20Sopenharmony_ci interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>; 1008c2ecf20Sopenharmony_ci clocks = <&clks IMX6QDL_CLK_IPG>; 1018c2ecf20Sopenharmony_ci clock-names = "ipg"; 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ci pgc { 1048c2ecf20Sopenharmony_ci #address-cells = <1>; 1058c2ecf20Sopenharmony_ci #size-cells = <0>; 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci power-domain@0 { 1088c2ecf20Sopenharmony_ci reg = <0>; 1098c2ecf20Sopenharmony_ci #power-domain-cells = <0>; 1108c2ecf20Sopenharmony_ci }; 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci pd_pu: power-domain@1 { 1138c2ecf20Sopenharmony_ci reg = <1>; 1148c2ecf20Sopenharmony_ci #power-domain-cells = <0>; 1158c2ecf20Sopenharmony_ci power-supply = <®_pu>; 1168c2ecf20Sopenharmony_ci clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>, 1178c2ecf20Sopenharmony_ci <&clks IMX6QDL_CLK_GPU3D_SHADER>, 1188c2ecf20Sopenharmony_ci <&clks IMX6QDL_CLK_GPU2D_CORE>, 1198c2ecf20Sopenharmony_ci <&clks IMX6QDL_CLK_GPU2D_AXI>, 1208c2ecf20Sopenharmony_ci <&clks IMX6QDL_CLK_OPENVG_AXI>, 1218c2ecf20Sopenharmony_ci <&clks IMX6QDL_CLK_VPU_AXI>; 1228c2ecf20Sopenharmony_ci }; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci }; 125