Re: [PATCH 2/2] ARM: Exynos: Hook up power domains to generic power domain infrastructure
From: Thomas Abraham <hidden>
Date: 2012-01-02 02:14:09
Also in:
linux-arm-kernel, linux-samsung-soc
Hi Sylwester, On 29 December 2011 00:28, Sylwester Nawrocki [off-list ref] wrote:
Hi Thomas, On 12/12/2011 04:46 PM, Thomas Abraham wrote:quoted
The generic power domain infrastructure is used to control the power domains available on Exynos4. For non-dt platforms, the power domains are statically instantiated. For dt platforms, the power domain nodes found in the device tree are instantiated. Cc: Kukjin Kim <redacted> Cc: Rob Herring <redacted> Cc: Grant Likely <redacted> Signed-off-by: Thomas Abraham <redacted> --- This patch is mainly derived from Mark Brown's work on generic power domain support for s3c64xx platforms. The existing exynos4 power domain implementation is not removed in this patch. The devices are not yet registered with the power domains for non-dt platforms. arch/arm/mach-exynos/Kconfig | 1 + arch/arm/mach-exynos/pm.c | 179 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+), 0 deletions(-)
[...]
Sorry, I haven't reviewed your patch carefully enough. So for dt platforms pd->base is initialized from "reg" property, directly from each power domain's DT node. Only the static power domain instantiation for non-dt platforms would possibly need some code modifications when new SoCs are added. Would be nice to have a relevant patch for *.dts files in this series too. :)
The following is a snippet from the dts file used for testing.
[...]
lcd0:power-domain-lcd0 {
compatible = "samsung,exynos4210-pd";
reg = <0x10023C00 0x10>;
};
[...]
fimd0:display-controller {
compatible = "samsung,exynos4-fimd";
[...]
pd = <&lcd0>;
};
The fimd (display controller) driver would then do the following.
parp = of_get_property(pdev->dev.of_node, "pd", NULL);
pd_np = of_find_node_by_phandle(be32_to_cpup(parp));
pm_genpd_of_add_device(pd_np, &pdev->dev);
The lookup is based on the node pointer of the power domain.
Thanks,
Thomas.