[PATCH v2 2/7] ARM: Exynos: add support for sub-power domains
Geert Uytterhoeven
geert at linux-m68k.org
Wed Dec 3 04:36:44 PST 2014
Hi Marek,
On Wed, Dec 3, 2014 at 1:33 PM, Marek Szyprowski
<m.szyprowski at samsung.com> wrote:
> diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
> index abde1ea8a119..b884358ebb1a 100644
> --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
> +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
> @@ -22,6 +22,8 @@ Optional Properties:
> - pclkN, clkN: Pairs of parent of input clock and input clock to the
> devices in this power domain. Maximum of 4 pairs (N = 0 to 3)
> are supported currently.
> +- samsung,power-domain: phandle to a master power domain that the given domain
> + is a part of
For new DTSes I'd recommend using the generic "power-domains" only.
Or do you already have a DTS where tv-power-domain at 10023C20 uses
"samsung,power-domain" in the wild?
> Node of a device using power domains must have a samsung,power-domain property
> defined with a phandle to respective power domain.
> diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
> index 20f267121b3e..fa9a47ddad81 100644
> --- a/arch/arm/mach-exynos/pm_domains.c
> +++ b/arch/arm/mach-exynos/pm_domains.c
> @@ -108,7 +108,7 @@ static int exynos_pd_power_off(struct generic_pm_domain *domain)
> static __init int exynos4_pm_init_power_domain(void)
> {
> struct platform_device *pdev;
> - struct device_node *np;
> + struct device_node *np, *master_np;
>
> for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") {
> struct exynos_pm_domain *pd;
> @@ -159,6 +159,15 @@ no_clk:
>
> pm_genpd_init(&pd->pd, NULL, !on);
> of_genpd_add_provider_simple(np, &pd->pd);
> +
> + /* make master and slave hierarchy */
> + master_np = of_parse_phandle(np, "samsung,power-domain", 0);
> + if (!master_np)
> + master_np = of_parse_phandle(np, "power-domains", 0);
> + if (master_np) {
> + pm_genpd_add_subdomain_names(master_np->name, np->name);
> + of_node_put(master_np);
> + }
--
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-arm-kernel
mailing list