Thread (22 messages) 22 messages, 5 authors, 2012-01-05

[PATCH 1/2] PM / Domains: Add OF support

From: Thomas Abraham <hidden>
Date: 2011-12-28 05:10:05
Also in: linux-devicetree, linux-samsung-soc

Hi Mark, Rafael,

On 27 December 2011 02:14, Rafael J. Wysocki [off-list ref] wrote:
On Monday, December 26, 2011, Mark Brown wrote:
quoted
On Mon, Dec 26, 2011 at 08:13:19PM +0100, Rafael J. Wysocki wrote:
quoted
On Monday, December 12, 2011, Thomas Abraham wrote:
quoted
quoted
A device node pointer is added to generic pm domain structure to associate
the domain with a node in the device tree.
quoted
That sounds fine except for one thing: PM domains are not devices, so adding
"device node" pointers to them is kind of confusing. ?Perhaps there should be
something like struct dt_node, representing a more general device tree node?
There's struct of_node which is exactly that, though practically
speaking you need a device if you're going to bind automatically to
something from the device tree in a sensible fashion and there is actual
hardware under there so a device does make some sense.
In patch 2/2 of this series, the platform code looks for nodes in
device tree that represent a power domain. When a power domain node is
found, a generic power domain is instantiated with pm_genpd_init()
using the information available from the node in device tree. There is
no automatic binding required in this case. The power domain node does
represent a hardware that manages the power domain.
quoted
This is in part compatibility with the existing Exynos code which uses
devices to probe the domains for non-DT systems.
Well, that's not a general case, though.

It doesn't feel approporiate to use a "device node" pointer for something
that's not based on struct device, at least not a generic level, so I wonder
if there's a different way.
A device node pointer or of_node pointer is a simple pointer to a
instance of a node in device tree. All nodes in a device tree need not
represent a corresponding 'struct device'. A node in device tree can
described a hardware feature such as a power domain supported in the
hardware.

The addition of device tree support for generic power domains in this
patchset is generic for all platforms. The platform code instantiates
generic power domains from device tree with the of_node pointer
assigned to 'struct generic_pm_domain'. Then, in
__pm_genpd_add_device(), given a of_node pointer (to gen_pd), it is
possible to find a matching power domain to select.

Thanks,
Thomas.
Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help