ARM: shmobile: r8a7740: Add A3SM pm domain support
authorGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 23 Oct 2014 11:19:01 +0000 (13:19 +0200)
committerSimon Horman <horms+renesas@verge.net.au>
Mon, 27 Oct 2014 23:40:18 +0000 (08:40 +0900)
Add support for the A3SM power domain, and hook it up as a subdomain of
A4S.

This domain contains the System CPU (Cortex-A9) hardware block. Hence
move the special CPU handling from A4S to A3SM.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/pm-r8a7740.c

index 27117a8..ac2eecd 100644 (file)
 #include "pm-rmobile.h"
 
 #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
-static int r8a7740_pd_a4s_suspend(void)
+static int r8a7740_pd_a3sm_suspend(void)
 {
        /*
-        * The A4S domain contains the CPU core and therefore it should
+        * The A3SM domain contains the CPU core and therefore it should
         * only be turned off if the CPU is not in use.
         */
        return -EBUSY;
@@ -63,9 +63,7 @@ static struct rmobile_pm_domain r8a7740_pm_domains[] = {
        }, {
                .genpd.name     = "A4S",
                .bit_shift      = 10,
-               .gov            = &pm_domain_always_on_gov,
                .no_debug       = true,
-               .suspend        = r8a7740_pd_a4s_suspend,
        }, {
                .genpd.name     = "A3SP",
                .bit_shift      = 11,
@@ -73,6 +71,11 @@ static struct rmobile_pm_domain r8a7740_pm_domains[] = {
                .no_debug       = true,
                .suspend        = r8a7740_pd_a3sp_suspend,
        }, {
+               .genpd.name     = "A3SM",
+               .bit_shift      = 12,
+               .gov            = &pm_domain_always_on_gov,
+               .suspend        = r8a7740_pd_a3sm_suspend,
+       }, {
                .genpd.name     = "A3SG",
                .bit_shift      = 13,
        }, {
@@ -86,6 +89,7 @@ void __init r8a7740_init_pm_domains(void)
        rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains));
        pm_genpd_add_subdomain_names("A4R", "A3RV");
        pm_genpd_add_subdomain_names("A4S", "A3SP");
+       pm_genpd_add_subdomain_names("A4S", "A3SM");
        pm_genpd_add_subdomain_names("A4S", "A3SG");
 }
 #endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */