From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ulf Hansson Subject: Re: [PATCH v2 1/6] ARM: Exynos: add support for sub-power domains Date: Tue, 13 Jan 2015 11:44:25 +0100 Message-ID: References: <1421141991-15155-1-git-send-email-m.szyprowski@samsung.com> <1421141991-15155-2-git-send-email-m.szyprowski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from mail-qc0-f178.google.com ([209.85.216.178]:33518 "EHLO mail-qc0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751028AbbAMKo0 (ORCPT ); Tue, 13 Jan 2015 05:44:26 -0500 Received: by mail-qc0-f178.google.com with SMTP id p6so1522929qcv.9 for ; Tue, 13 Jan 2015 02:44:25 -0800 (PST) In-Reply-To: <1421141991-15155-2-git-send-email-m.szyprowski@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org List-Id: linux-samsung-soc@vger.kernel.org To: Marek Szyprowski Cc: linux-samsung-soc , Kukjin Kim , Tobias Jakobi , Daniel Drake , Andrzej Hajda , Inki Dae , Tomasz Figa , Kyungmin Park , Pankaj Dubey , Amit Daniel Kachhap , Geert Uytterhoeven On 13 January 2015 at 10:39, Marek Szyprowski wrote: > This patch adds support for making one power domain a sub-domain of > other domain. This is useful for modeling power dependences for devices > like TV Mixer or Camera ISP, which needs to have more than one power > domain enabled to be operational. > > Based on previous work by Amit Daniel Kachhap . > > Signed-off-by: Marek Szyprowski > --- > .../bindings/arm/exynos/power_domain.txt | 2 ++ > arch/arm/mach-exynos/pm_domains.c | 28 ++++++++++++++++++++++ > 2 files changed, 30 insertions(+) > > diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > index f4445e5..28918a9 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. > +- power-domains: generic power domain binding pointing to a master power domain > + that the given domain is a part of I would prefer this to be documented as a generic way to configure power domain parents, in Documentation/devicetree/bindings/power/power_domain.txt. > > Node of a device using power domains must have a power-domains 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 20f2671..37266a8 100644 > --- a/arch/arm/mach-exynos/pm_domains.c > +++ b/arch/arm/mach-exynos/pm_domains.c > @@ -161,6 +161,34 @@ no_clk: > of_genpd_add_provider_simple(np, &pd->pd); > } > > + /* Assign the child power domains to their parents */ > + for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") { > + struct generic_pm_domain *child_domain, *parent_domain; > + struct of_phandle_args args; > + > + args.np = np; > + args.args_count = 0; > + child_domain = of_genpd_get_from_provider(&args); > + if (!child_domain) > + continue; > + > + if (of_parse_phandle_with_args(np, "power-domains", > + "#power-domain-cells", 0, &args) != 0) > + continue; > + > + parent_domain = of_genpd_get_from_provider(&args); > + if (!parent_domain) > + continue; > + > + if (pm_genpd_add_subdomain(parent_domain, child_domain)) > + pr_warn("%s failed to add subdomain: %s\n", > + parent_domain->name, child_domain->name); > + else > + pr_info("%s has as child subdomain: %s.\n", > + parent_domain->name, child_domain->name); > + of_node_put(np); > + } How do you maintain the order of how domains are being initialized? For example, don't you need to initialize all "parents" prior their children? > + > return 0; > } > arch_initcall(exynos4_pm_init_power_domain); > -- > 1.9.2 > I noticed this patch wasn't sent to linux-arm, I guess it should? Kind regards Uffe