diff options
Diffstat (limited to 'kernel/arch/sh/boards/mach-hp6xx/pm_wakeup.S')
-rw-r--r-- | kernel/arch/sh/boards/mach-hp6xx/pm_wakeup.S | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/kernel/arch/sh/boards/mach-hp6xx/pm_wakeup.S b/kernel/arch/sh/boards/mach-hp6xx/pm_wakeup.S new file mode 100644 index 000000000..4f18d44e0 --- /dev/null +++ b/kernel/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 |