blob: 14b110de78a9caf133dce9b9f5c99f29c06385c5 [file] [log] [blame]
Russell Kinga09e64f2008-08-05 16:14:15 +01001/*
2 * arch/arm/mach-ebsa110/include/mach/entry-macro.S
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
Russell Kinga09e64f2008-08-05 16:14:15 +010015 .macro get_irqnr_preamble, base, tmp
16 mov \base, #IRQ_STAT
17 .endm
18
Russell Kinga09e64f2008-08-05 16:14:15 +010019 .macro get_irqnr_and_base, irqnr, stat, base, tmp
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