1
2
3
4
5
6
7
8
9 #include <linux/linkage.h>
10 #include <asm/assembler.h>
11 #include <mach/hardware.h>
12 #include <mach/map.h>
13
14 #include <mach/regs-irq.h>
15
16 .text
17
18 .global s3c2412_sleep_enter
19
20 s3c2412_sleep_enter:
21 mov r0, #0
22 ldr r1, =S3C2410_INTPND
23 ldr r2, =S3C2410_SRCPND
24 ldr r3, =S3C2410_EINTPEND
25
26 teq r0, r0
27 bl s3c2412_sleep_enter1
28 teq pc, r0
29 bl s3c2412_sleep_enter1
30
31 .align 5
32
33
34
35
36
37 s3c2412_sleep_enter1:
38 mcr p15, 0, r0, c7, c10, 4
39 mcrne p15, 0, r0, c7, c0, 4
40
41
42
43
44
45
46 ldrne r9, [r1]
47 strne r9, [r1]
48 ldrne r9, [r2]
49 strne r9, [r2]
50 ldrne r9, [r3]
51 strne r9, [r3]
52 bne s3c2412_sleep_enter1
53
54 ret lr