1/* 2 * include/asm-arm/arch-sa1100/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 disable_fiq 12 .endm 13 14 .macro get_irqnr_preamble, base, tmp 15 mov \base, #0xfa000000 @ ICIP = 0xfa050000 16 add \base, \base, #0x00050000 17 .endm 18 19 .macro arch_ret_to_user, tmp1, tmp2 20 .endm 21 22 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 23 ldr \irqstat, [\base] @ get irqs 24 ldr \irqnr, [\base, #4] @ ICMR = 0xfa050004 25 ands \irqstat, \irqstat, \irqnr 26 mov \irqnr, #0 27 beq 1001f 28 tst \irqstat, #0xff 29 moveq \irqstat, \irqstat, lsr #8 30 addeq \irqnr, \irqnr, #8 31 tsteq \irqstat, #0xff 32 moveq \irqstat, \irqstat, lsr #8 33 addeq \irqnr, \irqnr, #8 34 tsteq \irqstat, #0xff 35 moveq \irqstat, \irqstat, lsr #8 36 addeq \irqnr, \irqnr, #8 37 tst \irqstat, #0x0f 38 moveq \irqstat, \irqstat, lsr #4 39 addeq \irqnr, \irqnr, #4 40 tst \irqstat, #0x03 41 moveq \irqstat, \irqstat, lsr #2 42 addeq \irqnr, \irqnr, #2 43 tst \irqstat, #0x01 44 addeqs \irqnr, \irqnr, #1 451001: 46 .endm 47