From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
Kukjin Kim <kgene@kernel.org>,
Tobias Jakobi <Liquid.Acid@gmx.net>,
Daniel Drake <drake@endlessm.com>,
Andrzej Hajda <a.hajda@samsung.com>,
Inki Dae <inki.dae@samsung.com>,
Tomasz Figa <tomasz.figa@gmail.com>,
Kyungmin Park <kyungmin.park@samsung.com>,
Pankaj Dubey <pankaj.dubey@samsung.com>,
Amit Daniel Kachhap <amit.daniel@samsung.com>,
Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: [PATCH v2 1/6] ARM: Exynos: add support for sub-power domains
Date: Tue, 13 Jan 2015 11:53:59 +0100 [thread overview]
Message-ID: <54B4F947.1000704@samsung.com> (raw)
In-Reply-To: <CAPDyKFpVuoKN0EgZG2qso3GbYZFqEMet2Ca06J7u8YEO=-JfCg@mail.gmail.com>
Hello,
On 2015-01-13 11:44, Ulf Hansson wrote:
> On 13 January 2015 at 10:39, Marek Szyprowski <m.szyprowski@samsung.com> 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 <amit.daniel@samsung.com>.
>>
>> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
>> ---
>> .../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.
Well, right now it is a specific feature of exynos power domains,
however if you
want I can add a note in
Documentation/devicetree/bindings/power/power_domain.txt
on defining child-parent relation. However it will be still up to the
power domain
providers to implement support for it.
>> 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?
All power domains, which have been added to the system were already
initialized in
the previous loop (executed before the added code). Once all
'exynos4210-pd' gets
initialized, they are scanned for child-parent relation.
>
>> +
>> 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?
Yes, I forgot about that. I will add it in the next version.
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
next prev parent reply other threads:[~2015-01-13 10:54 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-13 9:39 [PATCH v2 0/6] Enable HDMI support on Exynos platforms Marek Szyprowski
2015-01-13 9:39 ` [PATCH v2 1/6] ARM: Exynos: add support for sub-power domains Marek Szyprowski
2015-01-13 10:44 ` Ulf Hansson
2015-01-13 10:53 ` Marek Szyprowski [this message]
2015-01-13 14:44 ` Ulf Hansson
2015-01-13 9:39 ` [PATCH v2 2/6] ARM: dts: exynos4: add hdmi related nodes Marek Szyprowski
2015-01-13 9:39 ` [PATCH v2 3/6] ARM: dts: exynos4: add dependency between TV and LCD0 power domains Marek Szyprowski
2015-01-13 9:39 ` [PATCH v2 4/6] ARM: dts: exynos4412-odroid: enable hdmi support Marek Szyprowski
2015-01-13 9:41 ` [PATCH v2 5/6] ARM: dts: exynos4210-universal_c210: " Marek Szyprowski
2015-01-13 9:41 ` [PATCH v2 6/6] ARM: dts: exynos5250: add display power domain Marek Szyprowski
2015-01-14 15:25 ` [PATCH v2 0/6] Enable HDMI support on Exynos platforms Tobias Jakobi
2015-01-15 10:06 ` Marek Szyprowski
2015-01-15 10:10 ` Tobias Jakobi
2015-01-15 10:26 ` Marek Szyprowski
2015-01-15 10:41 ` Joonyoung Shim
2015-01-15 13:57 ` Tobias Jakobi
2015-01-15 13:59 ` Tobias Jakobi
2015-01-15 23:54 ` Tobias Jakobi
2015-01-16 22:32 ` Tobias Jakobi
2015-01-16 22:44 ` Tobias Jakobi
2015-01-19 6:04 ` Joonyoung Shim
2015-01-19 16:30 ` Marek Szyprowski
2015-01-19 23:03 ` Tobias Jakobi
2015-01-20 7:54 ` Marek Szyprowski
2015-01-19 23:33 ` Tobias Jakobi
2015-01-20 11:25 ` Javier Martinez Canillas
2015-01-29 13:31 ` [RFC] drm/exynos: move hdmi clk disable out of pm ops Gustavo Padovan
2015-01-30 2:02 ` Joonyoung Shim
2015-01-30 8:03 ` Javier Martinez Canillas
2015-01-30 8:05 ` Javier Martinez Canillas
2015-01-30 8:27 ` Joonyoung Shim
2015-01-30 21:45 ` [PATCH] drm/exynos: don' disable hdmi clocks for exynos5420 Gustavo Padovan
2015-02-02 5:34 ` Joonyoung Shim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54B4F947.1000704@samsung.com \
--to=m.szyprowski@samsung.com \
--cc=Liquid.Acid@gmx.net \
--cc=a.hajda@samsung.com \
--cc=amit.daniel@samsung.com \
--cc=drake@endlessm.com \
--cc=geert@linux-m68k.org \
--cc=inki.dae@samsung.com \
--cc=kgene@kernel.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=pankaj.dubey@samsung.com \
--cc=tomasz.figa@gmail.com \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox