Commit | Line | Data |
---|---|---|
c97c6864 TL |
1 | /* |
2 | * arch/arm/mach-omap1/include/mach/entry-macro.S | |
3 | * | |
4 | * Low-level IRQ helper macros for OMAP-based platforms | |
5 | * | |
6 | * Copyright (C) 2009 Texas Instruments | |
7 | * | |
8 | * This file is licensed under the terms of the GNU General Public | |
9 | * License version 2. This program is licensed "as is" without any | |
10 | * warranty of any kind, whether express or implied. | |
11 | */ | |
12 | #include <mach/hardware.h> | |
13 | #include <mach/io.h> | |
14 | #include <mach/irqs.h> | |
15 | #include <asm/hardware/gic.h> | |
16 | ||
c97c6864 TL |
17 | .macro get_irqnr_preamble, base, tmp |
18 | .endm | |
19 | ||
c97c6864 TL |
20 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp |
21 | ldr \base, =OMAP1_IO_ADDRESS(OMAP_IH1_BASE) | |
22 | ldr \irqnr, [\base, #IRQ_ITR_REG_OFFSET] | |
23 | ldr \tmp, [\base, #IRQ_MIR_REG_OFFSET] | |
24 | mov \irqstat, #0xffffffff | |
25 | bic \tmp, \irqstat, \tmp | |
26 | tst \irqnr, \tmp | |
27 | beq 1510f | |
28 | ||
29 | ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET] | |
03a9e512 TL |
30 | ldr \tmp, =omap_irq_flags @ irq flags address |
31 | ldr \tmp, [\tmp, #0] @ irq flags value | |
c97c6864 TL |
32 | cmp \irqnr, #0 |
33 | ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] | |
03a9e512 | 34 | cmpeq \irqnr, \tmp |
c97c6864 TL |
35 | ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE) |
36 | ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] | |
37 | addeqs \irqnr, \irqnr, #32 | |
38 | 1510: | |
39 | .endm | |
40 |