1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/power/fsl,imx-gpc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Freescale i.MX General Power Controller 8 9maintainers: 10 - Philipp Zabel <p.zabel@pengutronix.de> 11 12description: | 13 The i.MX6 General Power Control (GPC) block contains DVFS load tracking 14 counters and Power Gating Control (PGC). 15 16 The power domains are generic power domain providers as documented in 17 Documentation/devicetree/bindings/power/power-domain.yaml. They are 18 described as subnodes of the power gating controller 'pgc' node of the GPC. 19 20 IP cores belonging to a power domain should contain a 'power-domains' 21 property that is a phandle pointing to the power domain the device belongs 22 to. 23 24properties: 25 compatible: 26 oneOf: 27 - enum: 28 - fsl,imx6q-gpc 29 - items: 30 - enum: 31 - fsl,imx6qp-gpc 32 - fsl,imx6sl-gpc 33 - fsl,imx6sx-gpc 34 - fsl,imx6ul-gpc 35 - const: fsl,imx6q-gpc 36 37 reg: 38 maxItems: 1 39 40 interrupts: 41 maxItems: 1 42 43 interrupt-controller: true 44 '#interrupt-cells': 45 const: 3 46 47 clocks: 48 maxItems: 1 49 50 clock-names: 51 const: ipg 52 53 pgc: 54 type: object 55 additionalProperties: false 56 description: list of power domains provided by this controller. 57 58 properties: 59 '#address-cells': 60 const: 1 61 62 '#size-cells': 63 const: 0 64 65 patternProperties: 66 "power-domain@[0-9]$": 67 type: object 68 additionalProperties: false 69 70 properties: 71 72 '#power-domain-cells': 73 const: 0 74 75 reg: 76 description: | 77 The following DOMAIN_INDEX values are valid for i.MX6Q: 78 ARM_DOMAIN 0 79 PU_DOMAIN 1 80 The following additional DOMAIN_INDEX value is valid for i.MX6SL: 81 DISPLAY_DOMAIN 2 82 The following additional DOMAIN_INDEX value is valid for i.MX6SX: 83 PCI_DOMAIN 3 84 maxItems: 1 85 86 clocks: 87 description: | 88 A number of phandles to clocks that need to be enabled during domain 89 power-up sequencing to ensure reset propagation into devices located 90 inside this power domain. 91 minItems: 1 92 maxItems: 7 93 94 power-supply: true 95 96 required: 97 - '#power-domain-cells' 98 - reg 99 100 required: 101 - '#address-cells' 102 - '#size-cells' 103 104required: 105 - compatible 106 - reg 107 - interrupts 108 - clocks 109 - clock-names 110 - pgc 111 112additionalProperties: false 113 114examples: 115 - | 116 #include <dt-bindings/clock/imx6qdl-clock.h> 117 #include <dt-bindings/interrupt-controller/arm-gic.h> 118 119 gpc@20dc000 { 120 compatible = "fsl,imx6q-gpc"; 121 reg = <0x020dc000 0x4000>; 122 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>; 123 clocks = <&clks IMX6QDL_CLK_IPG>; 124 clock-names = "ipg"; 125 126 pgc { 127 #address-cells = <1>; 128 #size-cells = <0>; 129 130 power-domain@0 { 131 reg = <0>; 132 #power-domain-cells = <0>; 133 }; 134 135 pd_pu: power-domain@1 { 136 reg = <1>; 137 #power-domain-cells = <0>; 138 power-supply = <®_pu>; 139 clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>, 140 <&clks IMX6QDL_CLK_GPU3D_SHADER>, 141 <&clks IMX6QDL_CLK_GPU2D_CORE>, 142 <&clks IMX6QDL_CLK_GPU2D_AXI>, 143 <&clks IMX6QDL_CLK_OPENVG_AXI>, 144 <&clks IMX6QDL_CLK_VPU_AXI>; 145 }; 146 }; 147 }; 148