aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert+renesas@glider.be>2014-10-23 07:19:01 -0400
committerSimon Horman <horms+renesas@verge.net.au>2014-10-27 19:40:18 -0400
commitdc4470e177973feedd82596969d86468a1695b1e (patch)
tree3647c986ffa9626169447f2665234c810d172a55 /arch/arm/mach-shmobile
parent4ee7830c3ef9224bd078abe41a33c7396f827078 (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.c12
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)
17static int r8a7740_pd_a4s_suspend(void) 17static 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 */