summaryrefslogtreecommitdiff
path: root/arch/sh/boards/mach-hp6xx/pm_wakeup.S
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-08-05 17:04:01 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-08-05 17:04:01 -0300
commit57f0f512b273f60d52568b8c6b77e17f5636edc0 (patch)
tree5e910f0e82173f4ef4f51111366a3f1299037a7b /arch/sh/boards/mach-hp6xx/pm_wakeup.S
Initial import
Diffstat (limited to 'arch/sh/boards/mach-hp6xx/pm_wakeup.S')
-rw-r--r--arch/sh/boards/mach-hp6xx/pm_wakeup.S43
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-hp6xx/pm_wakeup.S b/arch/sh/boards/mach-hp6xx/pm_wakeup.S
new file mode 100644
index 000000000..4f18d44e0
--- /dev/null
+++ b/arch/sh/boards/mach-hp6xx/pm_wakeup.S
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2006 Andriy Skulysh <askulsyh@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/linkage.h>
+#include <cpu/mmu_context.h>
+
+/*
+ * Kernel mode register usage:
+ * k0 scratch
+ * k1 scratch
+ * For more details, please have a look at entry.S
+ */
+
+#define k0 r0
+#define k1 r1
+
+ENTRY(wakeup_start)
+! clear STBY bit
+ mov #-126, k1
+ and #127, k0
+ mov.b k0, @k1
+! enable refresh
+ mov.l 5f, k1
+ mov.w 6f, k0
+ mov.w k0, @k1
+! jump to handler
+ mov.l 4f, k1
+ jmp @k1
+ nop
+
+ .align 2
+4: .long handle_interrupt
+5: .long 0xffffff68
+6: .word 0x0524
+
+ENTRY(wakeup_end)
+ nop