* Generic PM domains

System on chip designs are often divided into multiple PM domains that can be
used for power gating of selected IP blocks for power saving by reduced leakage
current.

This device tree binding can be used to bind PM domain consumer devices with
their PM domains provided by PM domain providers. A PM domain provider can be
represented by any node in the device tree and can provide one or more PM
domains. A consumer node can refer to the provider by a phandle and a set of
phandle arguments (so called PM domain specifiers) of length specified by the
#power-domain-cells property in the PM domain provider node.

==PM domain providers==

Required properties:
 - #power-domain-cells : Number of cells in a PM domain specifier;
   Typically 0 for nodes representing a single PM domain and 1 for nodes
   providing multiple PM domains (e.g. power controllers), but can be any value
   as specified by device tree binding documentation of particular provider.

Optional properties:
 - power-domains : A phandle and PM domain specifier as defined by bindings of
                   the power controller specified by phandle.
   Some power domains might be powered from another power domain (or have
   other hardware specific dependencies). For representing such dependency
   a standard PM domain consumer binding is used. When provided, all domains
   created by the given provider should be subdomains of the domain
   specified by this binding. More details about power domain specifier are
   available in the next section.

- domain-idle-states : A phandle of an idle-state that shall be soaked into a
                generic domain power state. The idle state definitions are
                compatible with domain-idle-state specified in [1]. phandles
                that are not compatible with domain-idle-state will be
                ignored.
  The domain-idle-state property reflects the idle state of this PM domain and
  not the idle states of the devices or sub-domains in the PM domain. Devices
  and sub-domains have their own idle-states independent of the parent
  domain's idle states. In the absence of this property, the domain would be
  considered as capable of being powered-on or powered-off.

Example:

	power: power-controller@12340000 {
		compatible = "foo,power-controller";
		reg = <0x12340000 0x1000>;
		#power-domain-cells = <1>;
	};

The node above defines a power controller that is a PM domain provider and
expects one cell as its phandle argument.

Example 2:

	parent: power-controller@12340000 {
		compatible = "foo,power-controller";
		reg = <0x12340000 0x1000>;
		#power-domain-cells = <1>;
	};

	child: power-controller@12341000 {
		compatible = "foo,power-controller";
		reg = <0x12341000 0x1000>;
		power-domains = <&parent 0>;
		#power-domain-cells = <1>;
	};

The nodes above define two power controllers: 'parent' and 'child'.
Domains created by the 'child' power controller are subdomains of '0' power
domain provided by the 'parent' power controller.

Example 3:
	parent: power-controller@12340000 {
		compatible = "foo,power-controller";
		reg = <0x12340000 0x1000>;
		#power-domain-cells = <0>;
		domain-idle-states = <&DOMAIN_RET>, <&DOMAIN_PWR_DN>;
	};

	child: power-controller@12341000 {
		compatible = "foo,power-controller";
		reg = <0x12341000 0x1000>;
		power-domains = <&parent>;
		#power-domain-cells = <0>;
		domain-idle-states = <&DOMAIN_PWR_DN>;
	};

	DOMAIN_RET: state@0 {
		compatible = "domain-idle-state";
		reg = <0x0>;
		entry-latency-us = <1000>;
		exit-latency-us = <2000>;
		min-residency-us = <10000>;
	};

	DOMAIN_PWR_DN: state@1 {
		compatible = "domain-idle-state";
		reg = <0x1>;
		entry-latency-us = <5000>;
		exit-latency-us = <8000>;
		min-residency-us = <7000>;
	};

==PM domain consumers==

Required properties:
 - power-domains : A phandle and PM domain specifier as defined by bindings of
                   the power controller specified by phandle.

Example:

	leaky-device@12350000 {
		compatible = "foo,i-leak-current";
		reg = <0x12350000 0x1000>;
		power-domains = <&power 0>;
	};

The node above defines a typical PM domain consumer device, which is located
inside a PM domain with index 0 of a power controller represented by a node
with the label "power".

[1]. Documentation/devicetree/bindings/power/domain-idle-state.txt
