1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| /*
| * Low-level IRQ helper macros for TI DaVinci-based platforms
| *
| * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
| *
| * 2007 (c) MontaVista Software, Inc. This file is licensed under
| * the terms of the GNU General Public License version 2. This program
| * is licensed "as is" without any warranty of any kind, whether express
| * or implied.
| */
| #include <mach/irqs.h>
|
| .macro get_irqnr_preamble, base, tmp
| ldr \base, =davinci_intc_base
| ldr \base, [\base]
| .endm
|
| .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
| #if defined(CONFIG_AINTC) && defined(CONFIG_CP_INTC)
| ldr \tmp, =davinci_intc_type
| ldr \tmp, [\tmp]
| cmp \tmp, #DAVINCI_INTC_TYPE_CP_INTC
| beq 1001f
| #endif
| #if defined(CONFIG_AINTC)
| ldr \tmp, [\base, #0x14]
| movs \tmp, \tmp, lsr #2
| sub \irqnr, \tmp, #1
| b 1002f
| #endif
| #if defined(CONFIG_CP_INTC)
| 1001: ldr \irqnr, [\base, #0x80] /* get irq number */
| mov \tmp, \irqnr, lsr #31
| and \irqnr, \irqnr, #0xff /* irq is in bits 0-9 */
| and \tmp, \tmp, #0x1
| cmp \tmp, #0x1
| #endif
| 1002:
| .endm
|
|