Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 598da548 authored by Lina Iyer's avatar Lina Iyer Committed by Rafael J. Wysocki
Browse files

PM / Domains: Fix compatible for domain idle state



Re-using idle state definition provided by arm,idle-state for domain
idle states creates a lot of confusion and limits further evolution of
the domain idle definition. To keep things clear and simple, define a
idle states for domain using a new compatible "domain-idle-state".

Fix existing PM domains code to look for the newly defined compatible.

Signed-off-by: default avatarLina Iyer <lina.iyer@linaro.org>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Reviewed-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 34994692
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
PM Domain Idle State Node:

A domain idle state node represents the state parameters that will be used to
select the state when there are no active components in the domain.

The state node has the following parameters -

- compatible:
	Usage: Required
	Value type: <string>
	Definition: Must be "domain-idle-state".

- entry-latency-us
	Usage: Required
	Value type: <prop-encoded-array>
	Definition: u32 value representing worst case latency in
		    microseconds required to enter the idle state.
		    The exit-latency-us duration may be guaranteed
		    only after entry-latency-us has passed.

- exit-latency-us
	Usage: Required
	Value type: <prop-encoded-array>
	Definition: u32 value representing worst case latency
		    in microseconds required to exit the idle state.

- min-residency-us
	Usage: Required
	Value type: <prop-encoded-array>
	Definition: u32 value representing minimum residency duration
		    in microseconds after which the idle state will yield
		    power benefits after overcoming the overhead in entering
i		    the idle state.
+4 −4
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ Optional properties:

- 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].
                compatible with domain-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
@@ -85,7 +85,7 @@ Example 3:
	};

	DOMAIN_RET: state@0 {
		compatible = "arm,idle-state";
		compatible = "domain-idle-state";
		reg = <0x0>;
		entry-latency-us = <1000>;
		exit-latency-us = <2000>;
@@ -93,7 +93,7 @@ Example 3:
	};

	DOMAIN_PWR_DN: state@1 {
		compatible = "arm,idle-state";
		compatible = "domain-idle-state";
		reg = <0x1>;
		entry-latency-us = <5000>;
		exit-latency-us = <8000>;
@@ -118,4 +118,4 @@ 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
[1]. Documentation/devicetree/bindings/power/domain-idle-state.txt
+1 −1
Original line number Diff line number Diff line
@@ -2049,7 +2049,7 @@ int genpd_dev_pm_attach(struct device *dev)
EXPORT_SYMBOL_GPL(genpd_dev_pm_attach);

static const struct of_device_id idle_state_match[] = {
	{ .compatible = "arm,idle-state", },
	{ .compatible = "domain-idle-state", },
	{ }
};