dt/bindings / PM/Domains: Update binding for PM domain idle states
authorLina Iyer <lina.iyer@linaro.org>
Fri, 14 Oct 2016 17:47:53 +0000 (10:47 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 21 Oct 2016 20:20:36 +0000 (22:20 +0200)
Update DT bindings to describe idle states of PM domains.

This patch is based on the original patch by Marc Titinger.

Signed-off-by: Marc Titinger <mtitinger+renesas@baylibre.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/devicetree/bindings/power/power_domain.txt

index 025b5e7df61c630c3048d6b6befa8735296e7884..e1650364b296359557196a4e502f2185295b24a3 100644 (file)
@@ -29,6 +29,15 @@ Optional properties:
    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 arm,idle-state specified in [1].
+  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 {
@@ -59,6 +68,38 @@ 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 0>;
+               #power-domain-cells = <0>;
+               domain-idle-states = <&DOMAIN_PWR_DN>;
+       };
+
+       DOMAIN_RET: state@0 {
+               compatible = "arm,idle-state";
+               reg = <0x0>;
+               entry-latency-us = <1000>;
+               exit-latency-us = <2000>;
+               min-residency-us = <10000>;
+       };
+
+       DOMAIN_PWR_DN: state@1 {
+               compatible = "arm,idle-state";
+               reg = <0x1>;
+               entry-latency-us = <5000>;
+               exit-latency-us = <8000>;
+               min-residency-us = <7000>;
+       };
+
 ==PM domain consumers==
 
 Required properties:
@@ -76,3 +117,5 @@ Example:
 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/arm/idle-states.txt