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_and_base, irqnr, irqstat, base, tmp
18 ldr \base, =(EP93XX_AHB_VIRT_BASE)
19 orr \base, \base, #0x000b0000
21 ldr \irqstat, [\base] @ lower 32 interrupts
25 eor \base, \base, #0x00070000
26 ldr \irqstat, [\base] @ upper 32 interrupts
32 movs \tmp, \irqstat, lsl #16
34 addeq \irqnr, \irqnr, #16
36 movs \tmp, \irqstat, lsl #8
38 addeq \irqnr, \irqnr, #8
40 movs \tmp, \irqstat, lsl #4
42 addeq \irqnr, \irqnr, #4
44 movs \tmp, \irqstat, lsl #2
46 addeq \irqnr, \irqnr, #2
48 movs \tmp, \irqstat, lsl #1
49 addeq \irqnr, \irqnr, #1