diff options
author | Geert Uytterhoeven <geert+renesas@glider.be> | 2014-10-23 07:19:01 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2014-10-27 19:40:18 -0400 |
commit | dc4470e177973feedd82596969d86468a1695b1e (patch) | |
tree | 3647c986ffa9626169447f2665234c810d172a55 /arch/arm/mach-shmobile | |
parent | 4ee7830c3ef9224bd078abe41a33c7396f827078 (diff) |
ARM: shmobile: r8a7740: Add A3SM pm domain support
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>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/pm-r8a7740.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/arm/mach-shmobile/pm-r8a7740.c b/arch/arm/mach-shmobile/pm-r8a7740.c index 27117a8a49ad..ac2eecd6f5ea 100644 --- a/arch/arm/mach-shmobile/pm-r8a7740.c +++ b/arch/arm/mach-shmobile/pm-r8a7740.c | |||
@@ -14,10 +14,10 @@ | |||
14 | #include "pm-rmobile.h" | 14 | #include "pm-rmobile.h" |
15 | 15 | ||
16 | #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM) | 16 | #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM) |
17 | static int r8a7740_pd_a4s_suspend(void) | 17 | static int r8a7740_pd_a3sm_suspend(void) |
18 | { | 18 | { |
19 | /* | 19 | /* |
20 | * The A4S domain contains the CPU core and therefore it should | 20 | * The A3SM domain contains the CPU core and therefore it should |
21 | * only be turned off if the CPU is not in use. | 21 | * only be turned off if the CPU is not in use. |
22 | */ | 22 | */ |
23 | return -EBUSY; | 23 | return -EBUSY; |
@@ -63,9 +63,7 @@ static struct rmobile_pm_domain r8a7740_pm_domains[] = { | |||
63 | }, { | 63 | }, { |
64 | .genpd.name = "A4S", | 64 | .genpd.name = "A4S", |
65 | .bit_shift = 10, | 65 | .bit_shift = 10, |
66 | .gov = &pm_domain_always_on_gov, | ||
67 | .no_debug = true, | 66 | .no_debug = true, |
68 | .suspend = r8a7740_pd_a4s_suspend, | ||
69 | }, { | 67 | }, { |
70 | .genpd.name = "A3SP", | 68 | .genpd.name = "A3SP", |
71 | .bit_shift = 11, | 69 | .bit_shift = 11, |
@@ -73,6 +71,11 @@ static struct rmobile_pm_domain r8a7740_pm_domains[] = { | |||
73 | .no_debug = true, | 71 | .no_debug = true, |
74 | .suspend = r8a7740_pd_a3sp_suspend, | 72 | .suspend = r8a7740_pd_a3sp_suspend, |
75 | }, { | 73 | }, { |
74 | .genpd.name = "A3SM", | ||
75 | .bit_shift = 12, | ||
76 | .gov = &pm_domain_always_on_gov, | ||
77 | .suspend = r8a7740_pd_a3sm_suspend, | ||
78 | }, { | ||
76 | .genpd.name = "A3SG", | 79 | .genpd.name = "A3SG", |
77 | .bit_shift = 13, | 80 | .bit_shift = 13, |
78 | }, { | 81 | }, { |
@@ -86,6 +89,7 @@ void __init r8a7740_init_pm_domains(void) | |||
86 | rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains)); | 89 | rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains)); |
87 | pm_genpd_add_subdomain_names("A4R", "A3RV"); | 90 | pm_genpd_add_subdomain_names("A4R", "A3RV"); |
88 | pm_genpd_add_subdomain_names("A4S", "A3SP"); | 91 | pm_genpd_add_subdomain_names("A4S", "A3SP"); |
92 | pm_genpd_add_subdomain_names("A4S", "A3SM"); | ||
89 | pm_genpd_add_subdomain_names("A4S", "A3SG"); | 93 | pm_genpd_add_subdomain_names("A4S", "A3SG"); |
90 | } | 94 | } |
91 | #endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */ | 95 | #endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */ |