Full support for Ginger Console
[linux-ginger.git] / arch / arm / mach-shark / include / mach / entry-macro.S
blobe2853c0a3333bc403749a231196d06b4f3ea56c1
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  disable_fiq
11                 .endm
13                 .macro  get_irqnr_preamble, base, tmp
14                 .endm
16                 .macro  arch_ret_to_user, tmp1, tmp2
17                 .endm
19                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
20                 mov     r4, #0xe0000000
22                 mov     \irqstat, #0x0C
23                 strb    \irqstat, [r4, #0x20]           @outb(0x0C, 0x20) /* Poll command */
24                 ldrb    \irqnr, [r4, #0x20]             @irq = inb(0x20) & 7
25                 and     \irqstat, \irqnr, #0x80
26                 teq     \irqstat, #0
27                 beq     43f
28                 and     \irqnr, \irqnr, #7
29                 teq     \irqnr, #2
30                 bne     44f
31 43:             mov     \irqstat, #0x0C
32                 strb    \irqstat, [r4, #0xa0]           @outb(0x0C, 0xA0) /* Poll command */
33                 ldrb    \irqnr, [r4, #0xa0]             @irq = (inb(0xA0) & 7) + 8
34                 and     \irqstat, \irqnr, #0x80
35                 teq     \irqstat, #0
36                 beq     44f
37                 and     \irqnr, \irqnr, #7
38                 add     \irqnr, \irqnr, #8
39 44:             teq     \irqstat, #0
40                 .endm