Thread (2 messages) 2 messages, 2 authors, 2014-09-26

[RFC PATCH 2/4] ARM: keystone: pm: switch to use generic pm domains

From: grygorii.strashko@ti.com (Grygorii Strashko)
Date: 2014-09-26 16:41:26
Also in: linux-pm, lkml

On 09/26/2014 01:23 AM, Kevin Hilman wrote:
Grygorii Strashko [off-list ref] writes:
quoted
This patch switches Keystone 2 PM code to use Generic PM domains
instead of PM  clock domains because of the lack of DT support
for the last.

Keystone 2 PM domain should be specified per device for which
Runtime PM has to be enabled and handles the list of functional clocks
to enable/disable device.

Example:
  qmss_domain: qmss_pm_controller {
	compatible = "ti,keystone-pm-controller";
	clocks = <&chipclk13>;
	#power-domain-cells = <0>;
  };

  qmss: qmss at 2a40000 {
	compatible = "ti,keystone-navigator-qmss";
	...
	power-domains = <&qmss_domain>;

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
[...]
quoted
+static int keystone_pm_domain_power_off(struct generic_pm_domain *genpd)
+{
+	int ret;
+	struct keystone_domain *dm = container_of(genpd,
+						  struct keystone_domain,
+						  base);
+
+	/* Enable reset clocks for all devices in the PU domain */
This says enable clocks...
quoted
+	ret = pm_clk_suspend(dm->dev);
...but this calls clk_disable().
quoted
+	if (ret)
+		dev_err(dm->dev, "can't turn off clocks %d\n", ret);
+
+	return ret;
+}
+
+static int keystone_pm_domain_power_on(struct generic_pm_domain *genpd)
+{
+	int ret;
+	struct keystone_domain *dm = container_of(genpd,
+						  struct keystone_domain,
+						  base);
+
+	/* Disable reset clocks for all devices in the PU domain */
And this says disable clocks...
quoted
+	ret = pm_clk_resume(dm->dev);
...but this calls clk_enable().

-ECONFUSED.
Will update.

Thanks you for comments.

Regards,
-grygorii
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help