1/* 2 * Low-level IRQ helper macros for Gemini platform. 3 * 4 * Copyright (C) 2001-2006 Storlink, Corp. 5 * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt> 6 * 7 * This file is licensed under the terms of the GNU General Public 8 * License version 2. This program is licensed "as is" without any 9 * warranty of any kind, whether express or implied. 10 */ 11#include <mach/hardware.h> 12 13#define IRQ_STATUS 0x14 14 15 .macro get_irqnr_preamble, base, tmp 16 .endm 17 18 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 19 ldr \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS) 20 ldr \irqnr, [\irqstat] 21 cmp \irqnr, #0 22 beq 2313f 23 mov \tmp, \irqnr 24 mov \irqnr, #0 252312: 26 tst \tmp, #1 27 bne 2313f 28 add \irqnr, \irqnr, #1 29 mov \tmp, \tmp, lsr #1 30 cmp \irqnr, #31 31 bcc 2312b 322313: 33 .endm 34