1 |
2 |
drasko |
/*
|
2 |
|
|
* Copyright (C) 2009 B Labs Ltd.
|
3 |
|
|
*/
|
4 |
|
|
|
5 |
|
|
#ifndef __PLATFORM_IRQ_H__
|
6 |
|
|
#define __PLATFORM_IRQ_H__
|
7 |
|
|
|
8 |
|
|
/* Actually there are 4 GIC's on the EB, only 2 are used for tile site 1 */
|
9 |
|
|
#define IRQ_CHIPS_MAX 2
|
10 |
|
|
|
11 |
|
|
#if defined(CONFIG_CPU_ARM11MPCORE) || defined (CONFIG_CPU_CORTEXA9)
|
12 |
|
|
#define IRQS_MAX 64
|
13 |
|
|
#else
|
14 |
|
|
#define IRQS_MAX 96
|
15 |
|
|
#endif
|
16 |
|
|
|
17 |
|
|
/*
|
18 |
|
|
* Interrupt Distribution:
|
19 |
|
|
* 0-31: Used as SI provided by distributed interrupt controller
|
20 |
|
|
* 32-63: Externel Peripheral Interrupts
|
21 |
|
|
* 64-71: Interrupts from tile site 1
|
22 |
|
|
* 72-79: Interrupts from tile site 2
|
23 |
|
|
* 80-95: PCI and reserved Interrupts
|
24 |
|
|
*/
|
25 |
|
|
#define EB_GIC_IRQ_OFFSET 32
|
26 |
|
|
#define EB_IRQ_WATCHDOG (EB_GIC_IRQ_OFFSET + 0)
|
27 |
|
|
#define EB_IRQ_SOFTINT (EB_GIC_IRQ_OFFSET + 1)
|
28 |
|
|
#define EB_IRQ_COMRX (EB_GIC_IRQ_OFFSET + 2)
|
29 |
|
|
#define EB_IRQ_COMTX (EB_GIC_IRQ_OFFSET + 3)
|
30 |
|
|
#define EB_IRQ_TIMER01 (EB_GIC_IRQ_OFFSET + 4)
|
31 |
|
|
#define EB_IRQ_TIMER23 (EB_GIC_IRQ_OFFSET + 5)
|
32 |
|
|
#define EB_IRQ_GPIO0 (EB_GIC_IRQ_OFFSET + 6)
|
33 |
|
|
#define EB_IRQ_GPIO1 (EB_GIC_IRQ_OFFSET + 7)
|
34 |
|
|
#define EB_IRQ_GPIO2 (EB_GIC_IRQ_OFFSET + 8)
|
35 |
|
|
|
36 |
|
|
#define EB_IRQ_RTC (EB_GIC_IRQ_OFFSET + 10)
|
37 |
|
|
#define EB_IRQ_UART0 (EB_GIC_IRQ_OFFSET + 12)
|
38 |
|
|
#define EB_IRQ_UART1 (EB_GIC_IRQ_OFFSET + 13)
|
39 |
|
|
#define EB_IRQ_UART2 (EB_GIC_IRQ_OFFSET + 14)
|
40 |
|
|
#define EB_IRQ_UART3 (EB_GIC_IRQ_OFFSET + 15)
|
41 |
|
|
#define EB_IRQ_SCI (EB_GIC_IRQ_OFFSET + 16) /* Smart Card Interface */
|
42 |
|
|
#define EB_IRQ_MCI0 (EB_GIC_IRQ_OFFSET + 17)
|
43 |
|
|
#define EB_IRQ_MCI1 (EB_GIC_IRQ_OFFSET + 18)
|
44 |
|
|
#define EB_IRQ_AACI (EB_GIC_IRQ_OFFSET + 19) /* Advanced Audio codec */
|
45 |
|
|
#define EB_IRQ_KMI0 (EB_GIC_IRQ_OFFSET + 20) /* Keyboard */
|
46 |
|
|
#define EB_IRQ_KMI1 (EB_GIC_IRQ_OFFSET + 21) /* Mouse */
|
47 |
|
|
#define EB_IRQ_LCD (EB_GIC_IRQ_OFFSET + 20) /* Character LCD */
|
48 |
|
|
#define EB_IRQ_DMAC (EB_GIC_IRQ_OFFSET + 20) /* DMA Controller */
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
/* Interrupt Sources to ARM 11 MPCore or EB+A9 MPCore GIC */
|
52 |
|
|
#define MPCORE_GIC_IRQ_AACI (EB_GIC_IRQ_OFFSET + 0)
|
53 |
|
|
#define MPCORE_GIC_IRQ_TIMER01 (EB_GIC_IRQ_OFFSET + 1)
|
54 |
|
|
#define MPCORE_GIC_IRQ_TIMER23 (EB_GIC_IRQ_OFFSET + 2)
|
55 |
|
|
#define MPCORE_GIC_IRQ_USB (EB_GIC_IRQ_OFFSET + 3)
|
56 |
|
|
#define MPCORE_GIC_IRQ_UART0 (EB_GIC_IRQ_OFFSET + 4)
|
57 |
|
|
#define MPCORE_GIC_IRQ_UART1 (EB_GIC_IRQ_OFFSET + 5)
|
58 |
|
|
#define MPCORE_GIC_IRQ_RTC (EB_GIC_IRQ_OFFSET + 6)
|
59 |
|
|
#define MPCORE_GIC_IRQ_KMI0 (EB_GIC_IRQ_OFFSET + 7)
|
60 |
|
|
#define MPCORE_GIC_IRQ_KMI1 (EB_GIC_IRQ_OFFSET + 8)
|
61 |
|
|
#define MPCORE_GIC_IRQ_ETH (EB_GIC_IRQ_OFFSET + 9)
|
62 |
|
|
|
63 |
|
|
/* Interrupt from GIC1 on Base board */
|
64 |
|
|
#define MPCORE_GIC_IRQ_EB_GIC1 (EB_GIC_IRQ_OFFSET + 10)
|
65 |
|
|
#define MPCORE_GIC_IRQ_EB_GIC2 (EB_GIC_IRQ_OFFSET + 11)
|
66 |
|
|
#define MPCORE_GIC_IRQ_EB_GIC3 (EB_GIC_IRQ_OFFSET + 12)
|
67 |
|
|
#define MPCORE_GIC_IRQ_EB_GIC4 (EB_GIC_IRQ_OFFSET + 13)
|
68 |
|
|
|
69 |
|
|
#if defined (CONFIG_CPU_ARM11MPCORE) || defined (CONFIG_CPU_CORTEXA9)
|
70 |
|
|
#define IRQ_TIMER0 MPCORE_GIC_IRQ_TIMER01
|
71 |
|
|
#define IRQ_TIMER1 MPCORE_GIC_IRQ_TIMER23
|
72 |
|
|
#define IRQ_KEYBOARD0 MPCORE_GIC_IRQ_TIMER01
|
73 |
|
|
#define IRQ_MOUSE0 MPCORE_GIC_IRQ_KMI1
|
74 |
|
|
#else
|
75 |
|
|
#define IRQ_TIMER0 EB_IRQ_TIMER01
|
76 |
|
|
#define IRQ_TIMER1 EB_IRQ_TIMER23
|
77 |
|
|
#define IRQ_KEYBOARD0 EB_IRQ_KMI0
|
78 |
|
|
#define IRQ_MOUSE0 EB_IRQ_KMI1
|
79 |
|
|
#endif
|
80 |
|
|
|
81 |
|
|
#endif /* __PLATFORM_IRQ_H__ */
|