Commit | Line | Data |
---|---|---|
1da177e4 | 1 | /* |
a09e64fb | 2 | * arch/arm/mach-ebsa110/include/mach/entry-macro.S |
1da177e4 LT |
3 | * |
4 | * Low-level IRQ helper macros for ebsa110 platform. | |
5 | * | |
6 | * This file is licensed under the terms of the GNU General Public | |
7 | * License version 2. This program is licensed "as is" without any | |
8 | * warranty of any kind, whether express or implied. | |
9 | */ | |
10 | ||
11 | ||
12 | ||
13 | #define IRQ_STAT 0xff000000 /* read */ | |
14 | ||
f80dff9d | 15 | .macro get_irqnr_preamble, base, tmp |
641e7912 | 16 | mov \base, #IRQ_STAT |
f80dff9d DW |
17 | .endm |
18 | ||
1da177e4 | 19 | .macro get_irqnr_and_base, irqnr, stat, base, tmp |
1da177e4 LT |
20 | ldrb \stat, [\base] @ get interrupts |
21 | mov \irqnr, #0 | |
22 | tst \stat, #15 | |
23 | addeq \irqnr, \irqnr, #4 | |
24 | moveq \stat, \stat, lsr #4 | |
25 | tst \stat, #3 | |
26 | addeq \irqnr, \irqnr, #2 | |
27 | moveq \stat, \stat, lsr #2 | |
28 | tst \stat, #1 | |
29 | addeq \irqnr, \irqnr, #1 | |
30 | moveq \stat, \stat, lsr #1 | |
31 | tst \stat, #1 @ bit 0 should be set | |
32 | .endm | |
33 |