1/* 2 * Low-level IRQ helper macros for TI DaVinci-based platforms 3 * 4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com> 5 * 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 9 * or implied. 10 */ 11#include <mach/io.h> 12#include <mach/irqs.h> 13 14 .macro disable_fiq 15 .endm 16 17 .macro get_irqnr_preamble, base, tmp 18 ldr \base, =davinci_intc_base 19 ldr \base, [\base] 20 .endm 21 22 .macro arch_ret_to_user, tmp1, tmp2 23 .endm 24 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 28 ldr \tmp, [\tmp] 29 cmp \tmp, #DAVINCI_INTC_TYPE_CP_INTC 30 beq 1001f 31#endif 32#if defined(CONFIG_AINTC) 33 ldr \tmp, [\base, #0x14] 34 movs \tmp, \tmp, lsr #2 35 sub \irqnr, \tmp, #1 36 b 1002f 37#endif 38#if defined(CONFIG_CP_INTC) 391001: ldr \irqnr, [\base, #0x80] /* get irq number */ 40 and \irqnr, \irqnr, #0xff /* irq is in bits 0-9 */ 41 mov \tmp, \irqnr, lsr #3 42 and \tmp, \tmp, #0xfc 43 add \tmp, \tmp, #0x280 /* get the register offset */ 44 ldr \irqstat, [\base, \tmp] /* get the intc status */ 45 cmp \irqstat, #0x0 46#endif 471002: 48 .endm 49 50 .macro irq_prio_table 51 .endm 52