1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * arch/arm/mach-footbridge/include/mach/entry-macro.S 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Low-level IRQ helper macros for footbridge-based platforms 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This file is licensed under the terms of the GNU General Public 7*4882a593Smuzhiyun * License version 2. This program is licensed "as is" without any 8*4882a593Smuzhiyun * warranty of any kind, whether express or implied. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun#include <mach/hardware.h> 11*4882a593Smuzhiyun#include <mach/irqs.h> 12*4882a593Smuzhiyun#include <asm/hardware/dec21285.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun .equ dc21285_high, ARMCSR_BASE & 0xff000000 15*4882a593Smuzhiyun .equ dc21285_low, ARMCSR_BASE & 0x00ffffff 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun .macro get_irqnr_preamble, base, tmp 18*4882a593Smuzhiyun mov \base, #dc21285_high 19*4882a593Smuzhiyun .if dc21285_low 20*4882a593Smuzhiyun orr \base, \base, #dc21285_low 21*4882a593Smuzhiyun .endif 22*4882a593Smuzhiyun .endm 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 25*4882a593Smuzhiyun ldr \irqstat, [\base, #0x180] @ get interrupts 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun mov \irqnr, #IRQ_SDRAMPARITY 28*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_SDRAMPARITY 29*4882a593Smuzhiyun bne 1001f 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_UART_RX 32*4882a593Smuzhiyun movne \irqnr, #IRQ_CONRX 33*4882a593Smuzhiyun bne 1001f 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_DMA1 36*4882a593Smuzhiyun movne \irqnr, #IRQ_DMA1 37*4882a593Smuzhiyun bne 1001f 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_DMA2 40*4882a593Smuzhiyun movne \irqnr, #IRQ_DMA2 41*4882a593Smuzhiyun bne 1001f 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_IN0 44*4882a593Smuzhiyun movne \irqnr, #IRQ_IN0 45*4882a593Smuzhiyun bne 1001f 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_IN1 48*4882a593Smuzhiyun movne \irqnr, #IRQ_IN1 49*4882a593Smuzhiyun bne 1001f 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_IN2 52*4882a593Smuzhiyun movne \irqnr, #IRQ_IN2 53*4882a593Smuzhiyun bne 1001f 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_IN3 56*4882a593Smuzhiyun movne \irqnr, #IRQ_IN3 57*4882a593Smuzhiyun bne 1001f 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_PCI 60*4882a593Smuzhiyun movne \irqnr, #IRQ_PCI 61*4882a593Smuzhiyun bne 1001f 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_DOORBELLHOST 64*4882a593Smuzhiyun movne \irqnr, #IRQ_DOORBELLHOST 65*4882a593Smuzhiyun bne 1001f 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_I2OINPOST 68*4882a593Smuzhiyun movne \irqnr, #IRQ_I2OINPOST 69*4882a593Smuzhiyun bne 1001f 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_TIMER1 72*4882a593Smuzhiyun movne \irqnr, #IRQ_TIMER1 73*4882a593Smuzhiyun bne 1001f 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_TIMER2 76*4882a593Smuzhiyun movne \irqnr, #IRQ_TIMER2 77*4882a593Smuzhiyun bne 1001f 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_TIMER3 80*4882a593Smuzhiyun movne \irqnr, #IRQ_TIMER3 81*4882a593Smuzhiyun bne 1001f 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_UART_TX 84*4882a593Smuzhiyun movne \irqnr, #IRQ_CONTX 85*4882a593Smuzhiyun bne 1001f 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_PCI_ABORT 88*4882a593Smuzhiyun movne \irqnr, #IRQ_PCI_ABORT 89*4882a593Smuzhiyun bne 1001f 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_PCI_SERR 92*4882a593Smuzhiyun movne \irqnr, #IRQ_PCI_SERR 93*4882a593Smuzhiyun bne 1001f 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_DISCARD_TIMER 96*4882a593Smuzhiyun movne \irqnr, #IRQ_DISCARD_TIMER 97*4882a593Smuzhiyun bne 1001f 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_PCI_DPERR 100*4882a593Smuzhiyun movne \irqnr, #IRQ_PCI_DPERR 101*4882a593Smuzhiyun bne 1001f 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun tst \irqstat, #IRQ_MASK_PCI_PERR 104*4882a593Smuzhiyun movne \irqnr, #IRQ_PCI_PERR 105*4882a593Smuzhiyun1001: 106*4882a593Smuzhiyun .endm 107*4882a593Smuzhiyun 108