summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt
blob: 65cc0345747d73f540d6c5a4e8b18acc1618953b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Freescale i.MX General Power Controller
=======================================

The i.MX6Q General Power Control (GPC) block contains DVFS load tracking
counters and Power Gating Control (PGC) for the CPU and PU (GPU/VPU) power
domains.

Required properties:
- compatible: Should be "fsl,imx6q-gpc" or "fsl,imx6sl-gpc"
- reg: should be register base and length as documented in the
  datasheet
- interrupts: Should contain GPC interrupt request 1
- pu-supply: Link to the LDO regulator powering the PU power domain
- clocks: Clock phandles to devices in the PU power domain that need
	  to be enabled during domain power-up for reset propagation.
- #power-domain-cells: Should be 1, see below:

The gpc node is a power-controller as documented by the generic power domain
bindings in Documentation/devicetree/bindings/power/power_domain.txt.

Example:

	gpc: gpc@020dc000 {
		compatible = "fsl,imx6q-gpc";
		reg = <0x020dc000 0x4000>;
		interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
			     <0 90 IRQ_TYPE_LEVEL_HIGH>;
		pu-supply = <&reg_pu>;
		clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
			 <&clks IMX6QDL_CLK_GPU3D_SHADER>,
			 <&clks IMX6QDL_CLK_GPU2D_CORE>,
			 <&clks IMX6QDL_CLK_GPU2D_AXI>,
			 <&clks IMX6QDL_CLK_OPENVG_AXI>,
			 <&clks IMX6QDL_CLK_VPU_AXI>;
		#power-domain-cells = <1>;
	};


Specifying power domain for IP modules
======================================

IP cores belonging to a power domain should contain a 'power-domains' property
that is a phandle pointing to the gpc device node and a DOMAIN_INDEX specifying
the power domain the device belongs to.

Example of a device that is part of the PU power domain:

	vpu: vpu@02040000 {
		reg = <0x02040000 0x3c000>;
		/* ... */
		power-domains = <&gpc 1>;
		/* ... */
	};

The following DOMAIN_INDEX values are valid for i.MX6Q:
ARM_DOMAIN     0
PU_DOMAIN      1
The following additional DOMAIN_INDEX value is valid for i.MX6SL:
DISPLAY_DOMAIN 2