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

From: Grygorii Strashko
Date: Fri Sep 26 2014 - 12:41:29 EST


On 09/26/2014 01:23 AM, Kevin Hilman wrote:
Grygorii Strashko <grygorii.strashko@xxxxxx> writes:

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@2a40000 {
compatible = "ti,keystone-navigator-qmss";
...
power-domains = <&qmss_domain>;

Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>

[...]

+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...

+ ret = pm_clk_suspend(dm->dev);

...but this calls clk_disable().

+ 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...

+ ret = pm_clk_resume(dm->dev);

...but this calls clk_enable().

-ECONFUSED.


Will update.

Thanks you for comments.

Regards,
-grygorii



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/