Re: [PATCH v3 2/7] ARM: Exynos: add support for sub-power domains

2015-01-16 Thread Ulf Hansson
On 14 January 2015 at 14:44, Marek Szyprowski m.szyprow...@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.dan...@samsung.com

 Signed-off-by: Marek Szyprowski m.szyprow...@samsung.com

Reviewed-by: Ulf Hansson ulf.hans...@linaro.org

I also had a look at the other patches in this patchset from a PM
domain DT point of view. They looks good.

Kind regards
Uffe

 ---
  .../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..1e09703 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: phandle pointing to the parent power domain, for more 
 details
 +see 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);
 +   }
 +
 return 0;
  }
  arch_initcall(exynos4_pm_init_power_domain);
 --
 1.9.2


 ___
 linux-arm-kernel mailing list
 linux-arm-ker...@lists.infradead.org
 http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 2/7] ARM: Exynos: add support for sub-power domains

2015-01-15 Thread Marek Szyprowski

Hello All,

I'm sorry for missing some CC: in this patch, when I posted v3 to 
mailing list.

It looks that CC: lines got lost after git am + git format-patch.

Ulf, could you also ack this patch, so Kukjin can finally merge the whole
series to Samsung kernel tree?


On 2015-01-14 14:44, 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 amit.dan...@samsung.com.

Signed-off-by: Marek Szyprowski m.szyprow...@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..1e09703 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: phandle pointing to the parent power domain, for more details
+see 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);
+   }
+
return 0;
  }
  arch_initcall(exynos4_pm_init_power_domain);


Best regards
--
Marek Szyprowski, PhD
Samsung RD Institute Poland

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 2/7] ARM: Exynos: add support for sub-power domains

2015-01-14 Thread Marek Szyprowski
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.dan...@samsung.com.

Signed-off-by: Marek Szyprowski m.szyprow...@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..1e09703 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: phandle pointing to the parent power domain, for more details
+see 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);
+   }
+
return 0;
 }
 arch_initcall(exynos4_pm_init_power_domain);
-- 
1.9.2

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html