2 * Low-level IRQ helper macros for TI DaVinci-based platforms
4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
12 #include <mach/irqs.h>
17 .macro get_irqnr_preamble, base, tmp
18 ldr \base, =davinci_intc_base
22 .macro arch_ret_to_user, tmp1, tmp2
25 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
26 #if defined(CONFIG_AINTC) && defined(CONFIG_CP_INTC)
27 ldr \tmp, =davinci_intc_type
29 cmp \tmp, #DAVINCI_INTC_TYPE_CP_INTC
32 #if defined(CONFIG_AINTC)
33 ldr \tmp, [\base, #0x14]
34 movs \tmp, \tmp, lsr #2
38 #if defined(CONFIG_CP_INTC)
39 1001: ldr \irqnr, [\base, #0x80] /* get irq number */
40 and \irqnr, \irqnr, #0xff /* irq is in bits 0-9 */
41 mov \tmp, \irqnr, lsr #3
43 add \tmp, \tmp, #0x280 /* get the register offset */
44 ldr \irqstat, [\base, \tmp] /* get the intc status */