Freescale i.MX General Power Controller v2
==========================================

The i.MX7S/D General Power Control (GPC) block contains Power Gating
Control (PGC) for various power domains.

Required properties:

- compatible: Should be "fsl,imx7d-gpc"

- reg: should be register base and length as documented in the
  datasheet

- interrupts: Should contain GPC interrupt request 1

Power domains contained within GPC node are generic power domain
providers, documented in
Documentation/devicetree/bindings/power/power_domain.txt, which are
described as subnodes of the power gating controller 'pgc' node,
which, in turn, is expected to contain the following:

Required properties:

- reg: Power domain index. Valid values are defined in
  include/dt-bindings/power/imx7-power.h

- #power-domain-cells: Should be 0

Optional properties:

- power-supply: Power supply used to power the domain

Example:

	gpc: gpc@303a0000 {
		compatible = "fsl,imx7d-gpc";
		reg = <0x303a0000 0x1000>;
		interrupt-controller;
		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
		#interrupt-cells = <3>;
		interrupt-parent = <&intc>;

		pgc {
			#address-cells = <1>;
			#size-cells = <0>;

			pgc_pcie_phy: power-domain@3 {
				#power-domain-cells = <0>;

				reg = <IMX7_POWER_DOMAIN_PCIE_PHY>;
				power-supply = <&reg_1p0d>;
			};
		};
	};


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

IP cores belonging to a power domain should contain a 'power-domains'
property that is a phandle for PGC node representing the domain.

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

	pcie: pcie@33800000 {
	      reg = <0x33800000 0x4000>,
	            <0x4ff00000 0x80000>;
		/* ... */
		power-domains = <&pgc_pcie_phy>;
		/* ... */
	};
