Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / arch / sh / boards / mach-hp6xx / pm_wakeup.S
1 /* SPDX-License-Identifier: GPL-2.0
2  *
3  * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com>
4  */
5
6 #include <linux/linkage.h>
7 #include <cpu/mmu_context.h>
8
9 /*
10  * Kernel mode register usage:
11  *      k0      scratch
12  *      k1      scratch
13  * For more details, please have a look at entry.S
14  */
15
16 #define k0      r0
17 #define k1      r1
18
19 ENTRY(wakeup_start)
20 ! clear STBY bit
21         mov     #-126, k1
22         and     #127, k0
23         mov.b   k0, @k1
24 ! enable refresh
25         mov.l   5f, k1
26         mov.w   6f, k0
27         mov.w   k0, @k1
28 ! jump to handler
29         mov.l   4f, k1
30         jmp     @k1
31          nop
32
33         .align  2
34 4:      .long   handle_interrupt
35 5:      .long   0xffffff68
36 6:      .word   0x0524
37
38 ENTRY(wakeup_end)
39         nop