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