162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/power/fsl,imx-gpc.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Freescale i.MX General Power Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Philipp Zabel <p.zabel@pengutronix.de> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci The i.MX6 General Power Control (GPC) block contains DVFS load tracking 1462306a36Sopenharmony_ci counters and Power Gating Control (PGC). 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci The power domains are generic power domain providers as documented in 1762306a36Sopenharmony_ci Documentation/devicetree/bindings/power/power-domain.yaml. They are 1862306a36Sopenharmony_ci described as subnodes of the power gating controller 'pgc' node of the GPC. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci IP cores belonging to a power domain should contain a 'power-domains' 2162306a36Sopenharmony_ci property that is a phandle pointing to the power domain the device belongs 2262306a36Sopenharmony_ci to. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciproperties: 2562306a36Sopenharmony_ci compatible: 2662306a36Sopenharmony_ci oneOf: 2762306a36Sopenharmony_ci - enum: 2862306a36Sopenharmony_ci - fsl,imx6q-gpc 2962306a36Sopenharmony_ci - items: 3062306a36Sopenharmony_ci - enum: 3162306a36Sopenharmony_ci - fsl,imx6qp-gpc 3262306a36Sopenharmony_ci - fsl,imx6sl-gpc 3362306a36Sopenharmony_ci - fsl,imx6sx-gpc 3462306a36Sopenharmony_ci - fsl,imx6ul-gpc 3562306a36Sopenharmony_ci - const: fsl,imx6q-gpc 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci reg: 3862306a36Sopenharmony_ci maxItems: 1 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci interrupts: 4162306a36Sopenharmony_ci maxItems: 1 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci interrupt-controller: true 4462306a36Sopenharmony_ci '#interrupt-cells': 4562306a36Sopenharmony_ci const: 3 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci clocks: 4862306a36Sopenharmony_ci maxItems: 1 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci clock-names: 5162306a36Sopenharmony_ci const: ipg 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci pgc: 5462306a36Sopenharmony_ci type: object 5562306a36Sopenharmony_ci additionalProperties: false 5662306a36Sopenharmony_ci description: list of power domains provided by this controller. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci properties: 5962306a36Sopenharmony_ci '#address-cells': 6062306a36Sopenharmony_ci const: 1 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci '#size-cells': 6362306a36Sopenharmony_ci const: 0 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci patternProperties: 6662306a36Sopenharmony_ci "power-domain@[0-9]$": 6762306a36Sopenharmony_ci type: object 6862306a36Sopenharmony_ci additionalProperties: false 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci properties: 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci '#power-domain-cells': 7362306a36Sopenharmony_ci const: 0 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci reg: 7662306a36Sopenharmony_ci description: | 7762306a36Sopenharmony_ci The following DOMAIN_INDEX values are valid for i.MX6Q: 7862306a36Sopenharmony_ci ARM_DOMAIN 0 7962306a36Sopenharmony_ci PU_DOMAIN 1 8062306a36Sopenharmony_ci The following additional DOMAIN_INDEX value is valid for i.MX6SL: 8162306a36Sopenharmony_ci DISPLAY_DOMAIN 2 8262306a36Sopenharmony_ci The following additional DOMAIN_INDEX value is valid for i.MX6SX: 8362306a36Sopenharmony_ci PCI_DOMAIN 3 8462306a36Sopenharmony_ci maxItems: 1 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci clocks: 8762306a36Sopenharmony_ci description: | 8862306a36Sopenharmony_ci A number of phandles to clocks that need to be enabled during domain 8962306a36Sopenharmony_ci power-up sequencing to ensure reset propagation into devices located 9062306a36Sopenharmony_ci inside this power domain. 9162306a36Sopenharmony_ci minItems: 1 9262306a36Sopenharmony_ci maxItems: 7 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci power-supply: true 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci required: 9762306a36Sopenharmony_ci - '#power-domain-cells' 9862306a36Sopenharmony_ci - reg 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci required: 10162306a36Sopenharmony_ci - '#address-cells' 10262306a36Sopenharmony_ci - '#size-cells' 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_cirequired: 10562306a36Sopenharmony_ci - compatible 10662306a36Sopenharmony_ci - reg 10762306a36Sopenharmony_ci - interrupts 10862306a36Sopenharmony_ci - clocks 10962306a36Sopenharmony_ci - clock-names 11062306a36Sopenharmony_ci - pgc 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ciadditionalProperties: false 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ciexamples: 11562306a36Sopenharmony_ci - | 11662306a36Sopenharmony_ci #include <dt-bindings/clock/imx6qdl-clock.h> 11762306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci gpc@20dc000 { 12062306a36Sopenharmony_ci compatible = "fsl,imx6q-gpc"; 12162306a36Sopenharmony_ci reg = <0x020dc000 0x4000>; 12262306a36Sopenharmony_ci interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>; 12362306a36Sopenharmony_ci clocks = <&clks IMX6QDL_CLK_IPG>; 12462306a36Sopenharmony_ci clock-names = "ipg"; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci pgc { 12762306a36Sopenharmony_ci #address-cells = <1>; 12862306a36Sopenharmony_ci #size-cells = <0>; 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci power-domain@0 { 13162306a36Sopenharmony_ci reg = <0>; 13262306a36Sopenharmony_ci #power-domain-cells = <0>; 13362306a36Sopenharmony_ci }; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci pd_pu: power-domain@1 { 13662306a36Sopenharmony_ci reg = <1>; 13762306a36Sopenharmony_ci #power-domain-cells = <0>; 13862306a36Sopenharmony_ci power-supply = <®_pu>; 13962306a36Sopenharmony_ci clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>, 14062306a36Sopenharmony_ci <&clks IMX6QDL_CLK_GPU3D_SHADER>, 14162306a36Sopenharmony_ci <&clks IMX6QDL_CLK_GPU2D_CORE>, 14262306a36Sopenharmony_ci <&clks IMX6QDL_CLK_GPU2D_AXI>, 14362306a36Sopenharmony_ci <&clks IMX6QDL_CLK_OPENVG_AXI>, 14462306a36Sopenharmony_ci <&clks IMX6QDL_CLK_VPU_AXI>; 14562306a36Sopenharmony_ci }; 14662306a36Sopenharmony_ci }; 14762306a36Sopenharmony_ci }; 148