Merge branch 'samsung/exynos5' into next/soc2
[linux-2.6.git] / arch / arm / mach-shark / include / mach / entry-macro.S
1 /*
2  * arch/arm/mach-shark/include/mach/entry-macro.S
3  *
4  * Low-level IRQ helper macros for Shark platform
5  *
6  * This file is licensed under  the terms of the GNU General Public
7  * License version 2. This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10                 .macro  get_irqnr_preamble, base, tmp
11                 mov     \base, #0xe0000000
12                 .endm
13
14                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
15
16                 mov     \irqstat, #0x0C
17                 strb    \irqstat, [\base, #0x20]        @outb(0x0C, 0x20) /* Poll command */
18                 ldrb    \irqnr, [\base, #0x20]          @irq = inb(0x20) & 7
19                 and     \irqstat, \irqnr, #0x80
20                 teq     \irqstat, #0
21                 beq     43f
22                 and     \irqnr, \irqnr, #7
23                 teq     \irqnr, #2
24                 bne     44f
25 43:             mov     \irqstat, #0x0C
26                 strb    \irqstat, [\base, #0xa0]        @outb(0x0C, 0xA0) /* Poll command */
27                 ldrb    \irqnr, [\base, #0xa0]          @irq = (inb(0xA0) & 7) + 8
28                 and     \irqstat, \irqnr, #0x80
29                 teq     \irqstat, #0
30                 beq     44f
31                 and     \irqnr, \irqnr, #7
32                 add     \irqnr, \irqnr, #8
33 44:             teq     \irqstat, #0
34                 .endm
35