[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