1 /*
2  * Copyright 2005-2008 Analog Devices Inc.
3  *
4  * Licensed under the GPL-2 or later.
5  */
6 
7 #ifndef _BF561_IRQ_H_
8 #define _BF561_IRQ_H_
9 
10 #include <mach-common/irq.h>
11 
12 #define NR_PERI_INTS		(2 * 32)
13 
14 #define IRQ_PLL_WAKEUP		BFIN_IRQ(0)	/* PLL Wakeup Interrupt */
15 #define IRQ_DMA1_ERROR		BFIN_IRQ(1)	/* DMA1   Error (general) */
16 #define IRQ_DMA_ERROR		IRQ_DMA1_ERROR	/* DMA1   Error (general) */
17 #define IRQ_DMA2_ERROR		BFIN_IRQ(2)	/* DMA2   Error (general) */
18 #define IRQ_IMDMA_ERROR		BFIN_IRQ(3)	/* IMDMA  Error Interrupt */
19 #define IRQ_PPI1_ERROR		BFIN_IRQ(4)	/* PPI1   Error Interrupt */
20 #define IRQ_PPI_ERROR		IRQ_PPI1_ERROR	/* PPI1   Error Interrupt */
21 #define IRQ_PPI2_ERROR		BFIN_IRQ(5)	/* PPI2   Error Interrupt */
22 #define IRQ_SPORT0_ERROR	BFIN_IRQ(6)	/* SPORT0 Error Interrupt */
23 #define IRQ_SPORT1_ERROR	BFIN_IRQ(7)	/* SPORT1 Error Interrupt */
24 #define IRQ_SPI_ERROR		BFIN_IRQ(8)	/* SPI    Error Interrupt */
25 #define IRQ_UART_ERROR		BFIN_IRQ(9)	/* UART   Error Interrupt */
26 #define IRQ_RESERVED_ERROR	BFIN_IRQ(10)	/* Reversed */
27 #define IRQ_DMA1_0		BFIN_IRQ(11)	/* DMA1 0  Interrupt(PPI1) */
28 #define IRQ_PPI			IRQ_DMA1_0	/* DMA1 0  Interrupt(PPI1) */
29 #define IRQ_PPI0		IRQ_DMA1_0	/* DMA1 0  Interrupt(PPI1) */
30 #define IRQ_DMA1_1		BFIN_IRQ(12)	/* DMA1 1  Interrupt(PPI2) */
31 #define IRQ_PPI1		IRQ_DMA1_1	/* DMA1 1  Interrupt(PPI2) */
32 #define IRQ_DMA1_2		BFIN_IRQ(13)	/* DMA1 2  Interrupt */
33 #define IRQ_DMA1_3		BFIN_IRQ(14)	/* DMA1 3  Interrupt */
34 #define IRQ_DMA1_4		BFIN_IRQ(15)	/* DMA1 4  Interrupt */
35 #define IRQ_DMA1_5		BFIN_IRQ(16)	/* DMA1 5  Interrupt */
36 #define IRQ_DMA1_6		BFIN_IRQ(17)	/* DMA1 6  Interrupt */
37 #define IRQ_DMA1_7		BFIN_IRQ(18)	/* DMA1 7  Interrupt */
38 #define IRQ_DMA1_8		BFIN_IRQ(19)	/* DMA1 8  Interrupt */
39 #define IRQ_DMA1_9		BFIN_IRQ(20)	/* DMA1 9  Interrupt */
40 #define IRQ_DMA1_10		BFIN_IRQ(21)	/* DMA1 10 Interrupt */
41 #define IRQ_DMA1_11		BFIN_IRQ(22)	/* DMA1 11 Interrupt */
42 #define IRQ_DMA2_0		BFIN_IRQ(23)	/* DMA2 0  (SPORT0 RX) */
43 #define IRQ_SPORT0_RX		IRQ_DMA2_0	/* DMA2 0  (SPORT0 RX) */
44 #define IRQ_DMA2_1		BFIN_IRQ(24)	/* DMA2 1  (SPORT0 TX) */
45 #define IRQ_SPORT0_TX		IRQ_DMA2_1	/* DMA2 1  (SPORT0 TX) */
46 #define IRQ_DMA2_2		BFIN_IRQ(25)	/* DMA2 2  (SPORT1 RX) */
47 #define IRQ_SPORT1_RX		IRQ_DMA2_2	/* DMA2 2  (SPORT1 RX) */
48 #define IRQ_DMA2_3		BFIN_IRQ(26)	/* DMA2 3  (SPORT2 TX) */
49 #define IRQ_SPORT1_TX		IRQ_DMA2_3	/* DMA2 3  (SPORT2 TX) */
50 #define IRQ_DMA2_4		BFIN_IRQ(27)	/* DMA2 4  (SPI) */
51 #define IRQ_SPI			IRQ_DMA2_4	/* DMA2 4  (SPI) */
52 #define IRQ_DMA2_5		BFIN_IRQ(28)	/* DMA2 5  (UART RX) */
53 #define IRQ_UART_RX		IRQ_DMA2_5	/* DMA2 5  (UART RX) */
54 #define IRQ_DMA2_6		BFIN_IRQ(29)	/* DMA2 6  (UART TX) */
55 #define IRQ_UART_TX		IRQ_DMA2_6	/* DMA2 6  (UART TX) */
56 #define IRQ_DMA2_7		BFIN_IRQ(30)	/* DMA2 7  Interrupt */
57 #define IRQ_DMA2_8		BFIN_IRQ(31)	/* DMA2 8  Interrupt */
58 #define IRQ_DMA2_9		BFIN_IRQ(32)	/* DMA2 9  Interrupt */
59 #define IRQ_DMA2_10		BFIN_IRQ(33)	/* DMA2 10 Interrupt */
60 #define IRQ_DMA2_11		BFIN_IRQ(34)	/* DMA2 11 Interrupt */
61 #define IRQ_TIMER0		BFIN_IRQ(35)	/* TIMER 0  Interrupt */
62 #define IRQ_TIMER1		BFIN_IRQ(36)	/* TIMER 1  Interrupt */
63 #define IRQ_TIMER2		BFIN_IRQ(37)	/* TIMER 2  Interrupt */
64 #define IRQ_TIMER3		BFIN_IRQ(38)	/* TIMER 3  Interrupt */
65 #define IRQ_TIMER4		BFIN_IRQ(39)	/* TIMER 4  Interrupt */
66 #define IRQ_TIMER5		BFIN_IRQ(40)	/* TIMER 5  Interrupt */
67 #define IRQ_TIMER6		BFIN_IRQ(41)	/* TIMER 6  Interrupt */
68 #define IRQ_TIMER7		BFIN_IRQ(42)	/* TIMER 7  Interrupt */
69 #define IRQ_TIMER8		BFIN_IRQ(43)	/* TIMER 8  Interrupt */
70 #define IRQ_TIMER9		BFIN_IRQ(44)	/* TIMER 9  Interrupt */
71 #define IRQ_TIMER10		BFIN_IRQ(45)	/* TIMER 10 Interrupt */
72 #define IRQ_TIMER11		BFIN_IRQ(46)	/* TIMER 11 Interrupt */
73 #define IRQ_PROG0_INTA		BFIN_IRQ(47)	/* Programmable Flags0 A (8) */
74 #define IRQ_PROG_INTA		IRQ_PROG0_INTA	/* Programmable Flags0 A (8) */
75 #define IRQ_PROG0_INTB		BFIN_IRQ(48)	/* Programmable Flags0 B (8) */
76 #define IRQ_PROG_INTB		IRQ_PROG0_INTB	/* Programmable Flags0 B (8) */
77 #define IRQ_PROG1_INTA		BFIN_IRQ(49)	/* Programmable Flags1 A (8) */
78 #define IRQ_PROG1_INTB		BFIN_IRQ(50)	/* Programmable Flags1 B (8) */
79 #define IRQ_PROG2_INTA		BFIN_IRQ(51)	/* Programmable Flags2 A (8) */
80 #define IRQ_PROG2_INTB		BFIN_IRQ(52)	/* Programmable Flags2 B (8) */
81 #define IRQ_DMA1_WRRD0		BFIN_IRQ(53)	/* MDMA1 0 write/read INT */
82 #define IRQ_DMA_WRRD0		IRQ_DMA1_WRRD0	/* MDMA1 0 write/read INT */
83 #define IRQ_MEM_DMA0		IRQ_DMA1_WRRD0
84 #define IRQ_DMA1_WRRD1		BFIN_IRQ(54)	/* MDMA1 1 write/read INT */
85 #define IRQ_DMA_WRRD1		IRQ_DMA1_WRRD1	/* MDMA1 1 write/read INT */
86 #define IRQ_MEM_DMA1		IRQ_DMA1_WRRD1
87 #define IRQ_DMA2_WRRD0		BFIN_IRQ(55)	/* MDMA2 0 write/read INT */
88 #define IRQ_MEM_DMA2		IRQ_DMA2_WRRD0
89 #define IRQ_DMA2_WRRD1		BFIN_IRQ(56)	/* MDMA2 1 write/read INT */
90 #define IRQ_MEM_DMA3		IRQ_DMA2_WRRD1
91 #define IRQ_IMDMA_WRRD0		BFIN_IRQ(57)	/* IMDMA 0 write/read INT */
92 #define IRQ_IMEM_DMA0		IRQ_IMDMA_WRRD0
93 #define IRQ_IMDMA_WRRD1		BFIN_IRQ(58)	/* IMDMA 1 write/read INT */
94 #define IRQ_IMEM_DMA1		IRQ_IMDMA_WRRD1
95 #define IRQ_WATCH		BFIN_IRQ(59)	/* Watch Dog Timer */
96 #define IRQ_RESERVED_1		BFIN_IRQ(60)	/* Reserved interrupt */
97 #define IRQ_RESERVED_2		BFIN_IRQ(61)	/* Reserved interrupt */
98 #define IRQ_SUPPLE_0		BFIN_IRQ(62)	/* Supplemental interrupt 0 */
99 #define IRQ_SUPPLE_1		BFIN_IRQ(63)	/* supplemental interrupt 1 */
100 
101 #define SYS_IRQS		71
102 
103 #define IRQ_PF0			73
104 #define IRQ_PF1			74
105 #define IRQ_PF2			75
106 #define IRQ_PF3			76
107 #define IRQ_PF4			77
108 #define IRQ_PF5			78
109 #define IRQ_PF6			79
110 #define IRQ_PF7			80
111 #define IRQ_PF8			81
112 #define IRQ_PF9			82
113 #define IRQ_PF10		83
114 #define IRQ_PF11		84
115 #define IRQ_PF12		85
116 #define IRQ_PF13		86
117 #define IRQ_PF14		87
118 #define IRQ_PF15		88
119 #define IRQ_PF16		89
120 #define IRQ_PF17		90
121 #define IRQ_PF18		91
122 #define IRQ_PF19		92
123 #define IRQ_PF20		93
124 #define IRQ_PF21		94
125 #define IRQ_PF22		95
126 #define IRQ_PF23		96
127 #define IRQ_PF24		97
128 #define IRQ_PF25		98
129 #define IRQ_PF26		99
130 #define IRQ_PF27		100
131 #define IRQ_PF28		101
132 #define IRQ_PF29		102
133 #define IRQ_PF30		103
134 #define IRQ_PF31		104
135 #define IRQ_PF32		105
136 #define IRQ_PF33		106
137 #define IRQ_PF34		107
138 #define IRQ_PF35		108
139 #define IRQ_PF36		109
140 #define IRQ_PF37		110
141 #define IRQ_PF38		111
142 #define IRQ_PF39		112
143 #define IRQ_PF40		113
144 #define IRQ_PF41		114
145 #define IRQ_PF42		115
146 #define IRQ_PF43		116
147 #define IRQ_PF44		117
148 #define IRQ_PF45		118
149 #define IRQ_PF46		119
150 #define IRQ_PF47		120
151 
152 #define GPIO_IRQ_BASE		IRQ_PF0
153 
154 #define NR_MACH_IRQS		(IRQ_PF47 + 1)
155 
156 /* IAR0 BIT FIELDS */
157 #define IRQ_PLL_WAKEUP_POS	0
158 #define IRQ_DMA1_ERROR_POS	4
159 #define IRQ_DMA2_ERROR_POS	8
160 #define IRQ_IMDMA_ERROR_POS	12
161 #define IRQ_PPI0_ERROR_POS	16
162 #define IRQ_PPI1_ERROR_POS	20
163 #define IRQ_SPORT0_ERROR_POS	24
164 #define IRQ_SPORT1_ERROR_POS	28
165 
166 /* IAR1 BIT FIELDS */
167 #define IRQ_SPI_ERROR_POS	0
168 #define IRQ_UART_ERROR_POS	4
169 #define IRQ_RESERVED_ERROR_POS	8
170 #define IRQ_DMA1_0_POS		12
171 #define IRQ_DMA1_1_POS		16
172 #define IRQ_DMA1_2_POS		20
173 #define IRQ_DMA1_3_POS		24
174 #define IRQ_DMA1_4_POS		28
175 
176 /* IAR2 BIT FIELDS */
177 #define IRQ_DMA1_5_POS		0
178 #define IRQ_DMA1_6_POS		4
179 #define IRQ_DMA1_7_POS		8
180 #define IRQ_DMA1_8_POS		12
181 #define IRQ_DMA1_9_POS		16
182 #define IRQ_DMA1_10_POS		20
183 #define IRQ_DMA1_11_POS		24
184 #define IRQ_DMA2_0_POS		28
185 
186 /* IAR3 BIT FIELDS */
187 #define IRQ_DMA2_1_POS		0
188 #define IRQ_DMA2_2_POS		4
189 #define IRQ_DMA2_3_POS		8
190 #define IRQ_DMA2_4_POS		12
191 #define IRQ_DMA2_5_POS		16
192 #define IRQ_DMA2_6_POS		20
193 #define IRQ_DMA2_7_POS		24
194 #define IRQ_DMA2_8_POS		28
195 
196 /* IAR4 BIT FIELDS */
197 #define IRQ_DMA2_9_POS		0
198 #define IRQ_DMA2_10_POS		4
199 #define IRQ_DMA2_11_POS		8
200 #define IRQ_TIMER0_POS		12
201 #define IRQ_TIMER1_POS		16
202 #define IRQ_TIMER2_POS		20
203 #define IRQ_TIMER3_POS		24
204 #define IRQ_TIMER4_POS		28
205 
206 /* IAR5 BIT FIELDS */
207 #define IRQ_TIMER5_POS		0
208 #define IRQ_TIMER6_POS		4
209 #define IRQ_TIMER7_POS		8
210 #define IRQ_TIMER8_POS		12
211 #define IRQ_TIMER9_POS		16
212 #define IRQ_TIMER10_POS		20
213 #define IRQ_TIMER11_POS		24
214 #define IRQ_PROG0_INTA_POS	28
215 
216 /* IAR6 BIT FIELDS */
217 #define IRQ_PROG0_INTB_POS	0
218 #define IRQ_PROG1_INTA_POS	4
219 #define IRQ_PROG1_INTB_POS	8
220 #define IRQ_PROG2_INTA_POS	12
221 #define IRQ_PROG2_INTB_POS	16
222 #define IRQ_DMA1_WRRD0_POS	20
223 #define IRQ_DMA1_WRRD1_POS	24
224 #define IRQ_DMA2_WRRD0_POS	28
225 
226 /* IAR7 BIT FIELDS */
227 #define IRQ_DMA2_WRRD1_POS	0
228 #define IRQ_IMDMA_WRRD0_POS	4
229 #define IRQ_IMDMA_WRRD1_POS	8
230 #define IRQ_WDTIMER_POS		12
231 #define IRQ_RESERVED_1_POS	16
232 #define IRQ_RESERVED_2_POS	20
233 #define IRQ_SUPPLE_0_POS	24
234 #define IRQ_SUPPLE_1_POS	28
235 
236 #endif
237