summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/pm-sh73a0.c
diff options
context:
space:
mode:
authorBastian Hecht <hechtb@gmail.com>2012-12-05 12:13:06 +0000
committerSimon Horman <horms+renesas@verge.net.au>2013-01-25 12:43:46 +0900
commit13baf88bd69ed3cf7e2374eec4a7128f62ae9c1f (patch)
treed7c2eb25e8d7717fd2dddc7a1b8045078ed03ff3 /arch/arm/mach-shmobile/pm-sh73a0.c
parent8a21cdaee85e28489a6fe606b8eb0fef32ebf635 (diff)
downloadblackbird-op-linux-13baf88bd69ed3cf7e2374eec4a7128f62ae9c1f.tar.gz
blackbird-op-linux-13baf88bd69ed3cf7e2374eec4a7128f62ae9c1f.zip
ARM: shmobile: sh73a0: 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> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/mach-shmobile/pm-sh73a0.c')
-rw-r--r--arch/arm/mach-shmobile/pm-sh73a0.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/pm-sh73a0.c b/arch/arm/mach-shmobile/pm-sh73a0.c
new file mode 100644
index 000000000000..99086e98fbbc
--- /dev/null
+++ b/arch/arm/mach-shmobile/pm-sh73a0.c
@@ -0,0 +1,32 @@
+/*
+ * sh73a0 Power management support
+ *
+ * Copyright (C) 2012 Bastian Hecht <hechtb+renesas@gmail.com>
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#include <linux/suspend.h>
+#include <mach/common.h>
+
+#ifdef CONFIG_SUSPEND
+static int sh73a0_enter_suspend(suspend_state_t suspend_state)
+{
+ cpu_do_idle();
+ return 0;
+}
+
+static void sh73a0_suspend_init(void)
+{
+ shmobile_suspend_ops.enter = sh73a0_enter_suspend;
+}
+#else
+static void sh73a0_suspend_init(void) {}
+#endif
+
+void __init sh73a0_pm_init(void)
+{
+ sh73a0_suspend_init();
+}
OpenPOWER on IntegriCloud