1/* 2 * arch/arm/mach-sa1100/include/mach/entry-macro.S 3 * 4 * Low-level IRQ helper macros for SA1100-based platforms 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 .macro get_irqnr_preamble, base, tmp 12 mov \base, #0xfa000000 @ ICIP = 0xfa050000 13 add \base, \base, #0x00050000 14 .endm 15 16 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 17 ldr \irqstat, [\base] @ get irqs 18 ldr \irqnr, [\base, #4] @ ICMR = 0xfa050004 19 ands \irqstat, \irqstat, \irqnr 20 mov \irqnr, #0 21 beq 1001f 22 tst \irqstat, #0xff 23 moveq \irqstat, \irqstat, lsr #8 24 addeq \irqnr, \irqnr, #8 25 tsteq \irqstat, #0xff 26 moveq \irqstat, \irqstat, lsr #8 27 addeq \irqnr, \irqnr, #8 28 tsteq \irqstat, #0xff 29 moveq \irqstat, \irqstat, lsr #8 30 addeq \irqnr, \irqnr, #8 31 tst \irqstat, #0x0f 32 moveq \irqstat, \irqstat, lsr #4 33 addeq \irqnr, \irqnr, #4 34 tst \irqstat, #0x03 35 moveq \irqstat, \irqstat, lsr #2 36 addeq \irqnr, \irqnr, #2 37 tst \irqstat, #0x01 38 addeqs \irqnr, \irqnr, #1 391001: 40 .endm 41 42