2 * linux/include/asm-arm/arch-ep93xx/entry-macro.S
3 * IRQ demultiplexing for EP93xx
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
12 #include <asm/arch/ep93xx-regs.h>
17 .macro get_irqnr_preamble, base, tmp
20 .macro arch_ret_to_user, tmp1, tmp2
23 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
24 ldr \base, =(EP93XX_AHB_VIRT_BASE)
25 orr \base, \base, #0x000b0000
27 ldr \irqstat, [\base] @ lower 32 interrupts
31 eor \base, \base, #0x00070000
32 ldr \irqstat, [\base] @ upper 32 interrupts
38 movs \tmp, \irqstat, lsl #16
40 addeq \irqnr, \irqnr, #16
42 movs \tmp, \irqstat, lsl #8
44 addeq \irqnr, \irqnr, #8
46 movs \tmp, \irqstat, lsl #4
48 addeq \irqnr, \irqnr, #4
50 movs \tmp, \irqstat, lsl #2
52 addeq \irqnr, \irqnr, #2
54 movs \tmp, \irqstat, lsl #1
55 addeq \irqnr, \irqnr, #1