summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/pm-r8a7740.c
diff options
context:
space:
mode:
authorBastian Hecht <hechtb@gmail.com>2012-12-05 13:13:07 +0100
committerSimon Horman <horms+renesas@verge.net.au>2013-01-25 04:43:46 +0100
commit895d3b53fd910f78c52cba89243107fb132538f3 (patch)
tree680a247468bd82e90855b3ff2535877261b777aa /arch/arm/mach-shmobile/pm-r8a7740.c
parentARM: shmobile: sh73a0: Add CPU sleep suspend (diff)
downloadlinux-895d3b53fd910f78c52cba89243107fb132538f3.tar.xz
linux-895d3b53fd910f78c52cba89243107fb132538f3.zip
ARM: shmobile: r8a7740: Add CPU sleep suspend
Add the lighest possible sleep mode on Cortex-A9 cores: CPU sleep. It is entered by a simple dsb and wfi instruction via cpu_do_idle(). As just clocks are stopped there is no need to save or restore any state of the system. Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> Acked-by: Magnus Damm <damm@opensource.se> [ horms@verge.net.au: Added missing includes ] Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/mach-shmobile/pm-r8a7740.c')
-rw-r--r--arch/arm/mach-shmobile/pm-r8a7740.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/pm-r8a7740.c b/arch/arm/mach-shmobile/pm-r8a7740.c
index 21e5316d2d88..40b87aa1d448 100644
--- a/arch/arm/mach-shmobile/pm-r8a7740.c
+++ b/arch/arm/mach-shmobile/pm-r8a7740.c
@@ -9,7 +9,9 @@
* for more details.
*/
#include <linux/console.h>
+#include <linux/suspend.h>
#include <mach/pm-rmobile.h>
+#include <mach/common.h>
#ifdef CONFIG_PM
static int r8a7740_pd_a4s_suspend(void)
@@ -58,3 +60,23 @@ void __init r8a7740_init_pm_domains(void)
}
#endif /* CONFIG_PM */
+
+#ifdef CONFIG_SUSPEND
+static int r8a7740_enter_suspend(suspend_state_t suspend_state)
+{
+ cpu_do_idle();
+ return 0;
+}
+
+static void r8a7740_suspend_init(void)
+{
+ shmobile_suspend_ops.enter = r8a7740_enter_suspend;
+}
+#else
+static void r8a7740_suspend_init(void) {}
+#endif
+
+void __init r8a7740_pm_init(void)
+{
+ r8a7740_suspend_init();
+}