Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[pandora-kernel.git] / arch / arm / mach-davinci / include / mach / irqs.h
1 /*
2  * DaVinci interrupt controller definitions
3  *
4  *  Copyright (C) 2006 Texas Instruments.
5  *
6  *  This program is free software; you can redistribute  it and/or modify it
7  *  under  the terms of  the GNU General  Public License as published by the
8  *  Free Software Foundation;  either version 2 of the  License, or (at your
9  *  option) any later version.
10  *
11  *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
12  *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
13  *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
14  *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
15  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16  *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
17  *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
18  *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
19  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20  *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21  *
22  *  You should have received a copy of the  GNU General Public License along
23  *  with this program; if not, write  to the Free Software Foundation, Inc.,
24  *  675 Mass Ave, Cambridge, MA 02139, USA.
25  *
26  */
27 #ifndef __ASM_ARCH_IRQS_H
28 #define __ASM_ARCH_IRQS_H
29
30 /* Base address */
31 #define DAVINCI_ARM_INTC_BASE 0x01C48000
32
33 #define DAVINCI_INTC_TYPE_AINTC         0
34 #define DAVINCI_INTC_TYPE_CP_INTC       1
35
36 /* Interrupt lines */
37 #define IRQ_VDINT0       0
38 #define IRQ_VDINT1       1
39 #define IRQ_VDINT2       2
40 #define IRQ_HISTINT      3
41 #define IRQ_H3AINT       4
42 #define IRQ_PRVUINT      5
43 #define IRQ_RSZINT       6
44 #define IRQ_VFOCINT      7
45 #define IRQ_VENCINT      8
46 #define IRQ_ASQINT       9
47 #define IRQ_IMXINT       10
48 #define IRQ_VLCDINT      11
49 #define IRQ_USBINT       12
50 #define IRQ_EMACINT      13
51
52 #define IRQ_CCINT0       16
53 #define IRQ_CCERRINT     17
54 #define IRQ_TCERRINT0    18
55 #define IRQ_TCERRINT     19
56 #define IRQ_PSCIN        20
57
58 #define IRQ_IDE          22
59 #define IRQ_HPIINT       23
60 #define IRQ_MBXINT       24
61 #define IRQ_MBRINT       25
62 #define IRQ_MMCINT       26
63 #define IRQ_SDIOINT      27
64 #define IRQ_MSINT        28
65 #define IRQ_DDRINT       29
66 #define IRQ_AEMIFINT     30
67 #define IRQ_VLQINT       31
68 #define IRQ_TINT0_TINT12 32
69 #define IRQ_TINT0_TINT34 33
70 #define IRQ_TINT1_TINT12 34
71 #define IRQ_TINT1_TINT34 35
72 #define IRQ_PWMINT0      36
73 #define IRQ_PWMINT1      37
74 #define IRQ_PWMINT2      38
75 #define IRQ_I2C          39
76 #define IRQ_UARTINT0     40
77 #define IRQ_UARTINT1     41
78 #define IRQ_UARTINT2     42
79 #define IRQ_SPINT0       43
80 #define IRQ_SPINT1       44
81
82 #define IRQ_DSP2ARM0     46
83 #define IRQ_DSP2ARM1     47
84 #define IRQ_GPIO0        48
85 #define IRQ_GPIO1        49
86 #define IRQ_GPIO2        50
87 #define IRQ_GPIO3        51
88 #define IRQ_GPIO4        52
89 #define IRQ_GPIO5        53
90 #define IRQ_GPIO6        54
91 #define IRQ_GPIO7        55
92 #define IRQ_GPIOBNK0     56
93 #define IRQ_GPIOBNK1     57
94 #define IRQ_GPIOBNK2     58
95 #define IRQ_GPIOBNK3     59
96 #define IRQ_GPIOBNK4     60
97 #define IRQ_COMMTX       61
98 #define IRQ_COMMRX       62
99 #define IRQ_EMUINT       63
100
101 #define DAVINCI_N_AINTC_IRQ     64
102
103 #define ARCH_TIMER_IRQ IRQ_TINT1_TINT34
104
105 /* DaVinci DM6467-specific Interrupts */
106 #define IRQ_DM646X_VP_VERTINT0  0
107 #define IRQ_DM646X_VP_VERTINT1  1
108 #define IRQ_DM646X_VP_VERTINT2  2
109 #define IRQ_DM646X_VP_VERTINT3  3
110 #define IRQ_DM646X_VP_ERRINT    4
111 #define IRQ_DM646X_RESERVED_1   5
112 #define IRQ_DM646X_RESERVED_2   6
113 #define IRQ_DM646X_WDINT        7
114 #define IRQ_DM646X_CRGENINT0    8
115 #define IRQ_DM646X_CRGENINT1    9
116 #define IRQ_DM646X_TSIFINT0     10
117 #define IRQ_DM646X_TSIFINT1     11
118 #define IRQ_DM646X_VDCEINT      12
119 #define IRQ_DM646X_USBINT       13
120 #define IRQ_DM646X_USBDMAINT    14
121 #define IRQ_DM646X_PCIINT       15
122 #define IRQ_DM646X_TCERRINT2    20
123 #define IRQ_DM646X_TCERRINT3    21
124 #define IRQ_DM646X_IDE          22
125 #define IRQ_DM646X_HPIINT       23
126 #define IRQ_DM646X_EMACRXTHINT  24
127 #define IRQ_DM646X_EMACRXINT    25
128 #define IRQ_DM646X_EMACTXINT    26
129 #define IRQ_DM646X_EMACMISCINT  27
130 #define IRQ_DM646X_MCASP0TXINT  28
131 #define IRQ_DM646X_MCASP0RXINT  29
132 #define IRQ_DM646X_RESERVED_3   31
133 #define IRQ_DM646X_MCASP1TXINT  32
134 #define IRQ_DM646X_VLQINT       38
135 #define IRQ_DM646X_UARTINT2     42
136 #define IRQ_DM646X_SPINT0       43
137 #define IRQ_DM646X_SPINT1       44
138 #define IRQ_DM646X_DSP2ARMINT   45
139 #define IRQ_DM646X_RESERVED_4   46
140 #define IRQ_DM646X_PSCINT       47
141 #define IRQ_DM646X_GPIO0        48
142 #define IRQ_DM646X_GPIO1        49
143 #define IRQ_DM646X_GPIO2        50
144 #define IRQ_DM646X_GPIO3        51
145 #define IRQ_DM646X_GPIO4        52
146 #define IRQ_DM646X_GPIO5        53
147 #define IRQ_DM646X_GPIO6        54
148 #define IRQ_DM646X_GPIO7        55
149 #define IRQ_DM646X_GPIOBNK0     56
150 #define IRQ_DM646X_GPIOBNK1     57
151 #define IRQ_DM646X_GPIOBNK2     58
152 #define IRQ_DM646X_DDRINT       59
153 #define IRQ_DM646X_AEMIFINT     60
154
155 /* DaVinci DM355-specific Interrupts */
156 #define IRQ_DM355_CCDC_VDINT0   0
157 #define IRQ_DM355_CCDC_VDINT1   1
158 #define IRQ_DM355_CCDC_VDINT2   2
159 #define IRQ_DM355_IPIPE_HST     3
160 #define IRQ_DM355_H3AINT        4
161 #define IRQ_DM355_IPIPE_SDR     5
162 #define IRQ_DM355_IPIPEIFINT    6
163 #define IRQ_DM355_OSDINT        7
164 #define IRQ_DM355_VENCINT       8
165 #define IRQ_DM355_IMCOPINT      11
166 #define IRQ_DM355_RTOINT        13
167 #define IRQ_DM355_TINT4         13
168 #define IRQ_DM355_TINT2_TINT12  13
169 #define IRQ_DM355_UARTINT2      14
170 #define IRQ_DM355_TINT5         14
171 #define IRQ_DM355_TINT2_TINT34  14
172 #define IRQ_DM355_TINT6         15
173 #define IRQ_DM355_TINT3_TINT12  15
174 #define IRQ_DM355_SPINT1_0      17
175 #define IRQ_DM355_SPINT1_1      18
176 #define IRQ_DM355_SPINT2_0      19
177 #define IRQ_DM355_SPINT2_1      21
178 #define IRQ_DM355_TINT7         22
179 #define IRQ_DM355_TINT3_TINT34  22
180 #define IRQ_DM355_SDIOINT0      23
181 #define IRQ_DM355_MMCINT0       26
182 #define IRQ_DM355_MSINT         26
183 #define IRQ_DM355_MMCINT1       27
184 #define IRQ_DM355_PWMINT3       28
185 #define IRQ_DM355_SDIOINT1      31
186 #define IRQ_DM355_SPINT0_0      42
187 #define IRQ_DM355_SPINT0_1      43
188 #define IRQ_DM355_GPIO0         44
189 #define IRQ_DM355_GPIO1         45
190 #define IRQ_DM355_GPIO2         46
191 #define IRQ_DM355_GPIO3         47
192 #define IRQ_DM355_GPIO4         48
193 #define IRQ_DM355_GPIO5         49
194 #define IRQ_DM355_GPIO6         50
195 #define IRQ_DM355_GPIO7         51
196 #define IRQ_DM355_GPIO8         52
197 #define IRQ_DM355_GPIO9         53
198 #define IRQ_DM355_GPIOBNK0      54
199 #define IRQ_DM355_GPIOBNK1      55
200 #define IRQ_DM355_GPIOBNK2      56
201 #define IRQ_DM355_GPIOBNK3      57
202 #define IRQ_DM355_GPIOBNK4      58
203 #define IRQ_DM355_GPIOBNK5      59
204 #define IRQ_DM355_GPIOBNK6      60
205
206 /* DaVinci DM365-specific Interrupts */
207 #define IRQ_DM365_INSFINT       7
208 #define IRQ_DM365_IMXINT1       8
209 #define IRQ_DM365_IMXINT0       10
210 #define IRQ_DM365_KLD_ARMINT    10
211 #define IRQ_DM365_IMCOPINT      11
212 #define IRQ_DM365_RTOINT        13
213 #define IRQ_DM365_TINT5         14
214 #define IRQ_DM365_TINT6         15
215 #define IRQ_DM365_SPINT2_1      21
216 #define IRQ_DM365_TINT7         22
217 #define IRQ_DM365_SDIOINT0      23
218 #define IRQ_DM365_MMCINT1       27
219 #define IRQ_DM365_PWMINT3       28
220 #define IRQ_DM365_SDIOINT1      31
221 #define IRQ_DM365_SPIINT0_0     42
222 #define IRQ_DM365_SPIINT3_0     43
223 #define IRQ_DM365_GPIO0         44
224 #define IRQ_DM365_GPIO1         45
225 #define IRQ_DM365_GPIO2         46
226 #define IRQ_DM365_GPIO3         47
227 #define IRQ_DM365_GPIO4         48
228 #define IRQ_DM365_GPIO5         49
229 #define IRQ_DM365_GPIO6         50
230 #define IRQ_DM365_GPIO7         51
231 #define IRQ_DM365_EMAC_RXTHRESH 52
232 #define IRQ_DM365_EMAC_RXPULSE  53
233 #define IRQ_DM365_EMAC_TXPULSE  54
234 #define IRQ_DM365_EMAC_MISCPULSE 55
235 #define IRQ_DM365_GPIO12        56
236 #define IRQ_DM365_GPIO13        57
237 #define IRQ_DM365_GPIO14        58
238 #define IRQ_DM365_GPIO15        59
239 #define IRQ_DM365_ADCINT        59
240 #define IRQ_DM365_KEYINT        60
241 #define IRQ_DM365_TCERRINT2     61
242 #define IRQ_DM365_TCERRINT3     62
243 #define IRQ_DM365_EMUINT        63
244
245 /* DA8XX interrupts */
246 #define IRQ_DA8XX_COMMTX                0
247 #define IRQ_DA8XX_COMMRX                1
248 #define IRQ_DA8XX_NINT                  2
249 #define IRQ_DA8XX_EVTOUT0               3
250 #define IRQ_DA8XX_EVTOUT1               4
251 #define IRQ_DA8XX_EVTOUT2               5
252 #define IRQ_DA8XX_EVTOUT3               6
253 #define IRQ_DA8XX_EVTOUT4               7
254 #define IRQ_DA8XX_EVTOUT5               8
255 #define IRQ_DA8XX_EVTOUT6               9
256 #define IRQ_DA8XX_EVTOUT7               10
257 #define IRQ_DA8XX_CCINT0                11
258 #define IRQ_DA8XX_CCERRINT              12
259 #define IRQ_DA8XX_TCERRINT0             13
260 #define IRQ_DA8XX_AEMIFINT              14
261 #define IRQ_DA8XX_I2CINT0               15
262 #define IRQ_DA8XX_MMCSDINT0             16
263 #define IRQ_DA8XX_MMCSDINT1             17
264 #define IRQ_DA8XX_ALLINT0               18
265 #define IRQ_DA8XX_RTC                   19
266 #define IRQ_DA8XX_SPINT0                20
267 #define IRQ_DA8XX_TINT12_0              21
268 #define IRQ_DA8XX_TINT34_0              22
269 #define IRQ_DA8XX_TINT12_1              23
270 #define IRQ_DA8XX_TINT34_1              24
271 #define IRQ_DA8XX_UARTINT0              25
272 #define IRQ_DA8XX_KEYMGRINT             26
273 #define IRQ_DA8XX_SECINT                26
274 #define IRQ_DA8XX_SECKEYERR             26
275 #define IRQ_DA8XX_CHIPINT0              28
276 #define IRQ_DA8XX_CHIPINT1              29
277 #define IRQ_DA8XX_CHIPINT2              30
278 #define IRQ_DA8XX_CHIPINT3              31
279 #define IRQ_DA8XX_TCERRINT1             32
280 #define IRQ_DA8XX_C0_RX_THRESH_PULSE    33
281 #define IRQ_DA8XX_C0_RX_PULSE           34
282 #define IRQ_DA8XX_C0_TX_PULSE           35
283 #define IRQ_DA8XX_C0_MISC_PULSE         36
284 #define IRQ_DA8XX_C1_RX_THRESH_PULSE    37
285 #define IRQ_DA8XX_C1_RX_PULSE           38
286 #define IRQ_DA8XX_C1_TX_PULSE           39
287 #define IRQ_DA8XX_C1_MISC_PULSE         40
288 #define IRQ_DA8XX_MEMERR                41
289 #define IRQ_DA8XX_GPIO0                 42
290 #define IRQ_DA8XX_GPIO1                 43
291 #define IRQ_DA8XX_GPIO2                 44
292 #define IRQ_DA8XX_GPIO3                 45
293 #define IRQ_DA8XX_GPIO4                 46
294 #define IRQ_DA8XX_GPIO5                 47
295 #define IRQ_DA8XX_GPIO6                 48
296 #define IRQ_DA8XX_GPIO7                 49
297 #define IRQ_DA8XX_GPIO8                 50
298 #define IRQ_DA8XX_I2CINT1               51
299 #define IRQ_DA8XX_LCDINT                52
300 #define IRQ_DA8XX_UARTINT1              53
301 #define IRQ_DA8XX_MCASPINT              54
302 #define IRQ_DA8XX_ALLINT1               55
303 #define IRQ_DA8XX_SPINT1                56
304 #define IRQ_DA8XX_UHPI_INT1             57
305 #define IRQ_DA8XX_USB_INT               58
306 #define IRQ_DA8XX_IRQN                  59
307 #define IRQ_DA8XX_RWAKEUP               60
308 #define IRQ_DA8XX_UARTINT2              61
309 #define IRQ_DA8XX_DFTSSINT              62
310 #define IRQ_DA8XX_EHRPWM0               63
311 #define IRQ_DA8XX_EHRPWM0TZ             64
312 #define IRQ_DA8XX_EHRPWM1               65
313 #define IRQ_DA8XX_EHRPWM1TZ             66
314 #define IRQ_DA8XX_ECAP0                 69
315 #define IRQ_DA8XX_ECAP1                 70
316 #define IRQ_DA8XX_ECAP2                 71
317 #define IRQ_DA8XX_ARMCLKSTOPREQ         90
318
319 /* DA830 specific interrupts */
320 #define IRQ_DA830_MPUERR                27
321 #define IRQ_DA830_IOPUERR               27
322 #define IRQ_DA830_BOOTCFGERR            27
323 #define IRQ_DA830_EHRPWM2               67
324 #define IRQ_DA830_EHRPWM2TZ             68
325 #define IRQ_DA830_EQEP0                 72
326 #define IRQ_DA830_EQEP1                 73
327 #define IRQ_DA830_T12CMPINT0_0          74
328 #define IRQ_DA830_T12CMPINT1_0          75
329 #define IRQ_DA830_T12CMPINT2_0          76
330 #define IRQ_DA830_T12CMPINT3_0          77
331 #define IRQ_DA830_T12CMPINT4_0          78
332 #define IRQ_DA830_T12CMPINT5_0          79
333 #define IRQ_DA830_T12CMPINT6_0          80
334 #define IRQ_DA830_T12CMPINT7_0          81
335 #define IRQ_DA830_T12CMPINT0_1          82
336 #define IRQ_DA830_T12CMPINT1_1          83
337 #define IRQ_DA830_T12CMPINT2_1          84
338 #define IRQ_DA830_T12CMPINT3_1          85
339 #define IRQ_DA830_T12CMPINT4_1          86
340 #define IRQ_DA830_T12CMPINT5_1          87
341 #define IRQ_DA830_T12CMPINT6_1          88
342 #define IRQ_DA830_T12CMPINT7_1          89
343
344 #define DA830_N_CP_INTC_IRQ             96
345
346 /* DA850 speicific interrupts */
347 #define IRQ_DA850_MPUADDRERR0           27
348 #define IRQ_DA850_MPUPROTERR0           27
349 #define IRQ_DA850_IOPUADDRERR0          27
350 #define IRQ_DA850_IOPUPROTERR0          27
351 #define IRQ_DA850_IOPUADDRERR1          27
352 #define IRQ_DA850_IOPUPROTERR1          27
353 #define IRQ_DA850_IOPUADDRERR2          27
354 #define IRQ_DA850_IOPUPROTERR2          27
355 #define IRQ_DA850_BOOTCFG_ADDR_ERR      27
356 #define IRQ_DA850_BOOTCFG_PROT_ERR      27
357 #define IRQ_DA850_MPUADDRERR1           27
358 #define IRQ_DA850_MPUPROTERR1           27
359 #define IRQ_DA850_IOPUADDRERR3          27
360 #define IRQ_DA850_IOPUPROTERR3          27
361 #define IRQ_DA850_IOPUADDRERR4          27
362 #define IRQ_DA850_IOPUPROTERR4          27
363 #define IRQ_DA850_IOPUADDRERR5          27
364 #define IRQ_DA850_IOPUPROTERR5          27
365 #define IRQ_DA850_MIOPU_BOOTCFG_ERR     27
366 #define IRQ_DA850_SATAINT               67
367 #define IRQ_DA850_TINT12_2              68
368 #define IRQ_DA850_TINT34_2              68
369 #define IRQ_DA850_TINTALL_2             68
370 #define IRQ_DA850_MMCSDINT0_1           72
371 #define IRQ_DA850_MMCSDINT1_1           73
372 #define IRQ_DA850_T12CMPINT0_2          74
373 #define IRQ_DA850_T12CMPINT1_2          75
374 #define IRQ_DA850_T12CMPINT2_2          76
375 #define IRQ_DA850_T12CMPINT3_2          77
376 #define IRQ_DA850_T12CMPINT4_2          78
377 #define IRQ_DA850_T12CMPINT5_2          79
378 #define IRQ_DA850_T12CMPINT6_2          80
379 #define IRQ_DA850_T12CMPINT7_2          81
380 #define IRQ_DA850_T12CMPINT0_3          82
381 #define IRQ_DA850_T12CMPINT1_3          83
382 #define IRQ_DA850_T12CMPINT2_3          84
383 #define IRQ_DA850_T12CMPINT3_3          85
384 #define IRQ_DA850_T12CMPINT4_3          86
385 #define IRQ_DA850_T12CMPINT5_3          87
386 #define IRQ_DA850_T12CMPINT6_3          88
387 #define IRQ_DA850_T12CMPINT7_3          89
388 #define IRQ_DA850_RPIINT                91
389 #define IRQ_DA850_VPIFINT               92
390 #define IRQ_DA850_CCINT1                93
391 #define IRQ_DA850_CCERRINT1             94
392 #define IRQ_DA850_TCERRINT2             95
393 #define IRQ_DA850_TINT12_3              96
394 #define IRQ_DA850_TINT34_3              96
395 #define IRQ_DA850_TINTALL_3             96
396 #define IRQ_DA850_MCBSP0RINT            97
397 #define IRQ_DA850_MCBSP0XINT            98
398 #define IRQ_DA850_MCBSP1RINT            99
399 #define IRQ_DA850_MCBSP1XINT            100
400
401 #define DA850_N_CP_INTC_IRQ             101
402
403 /* da850 currently has the most gpio pins (144) */
404 #define DAVINCI_N_GPIO                  144
405 /* da850 currently has the most irqs so use DA850_N_CP_INTC_IRQ */
406 #define NR_IRQS                         (DA850_N_CP_INTC_IRQ + DAVINCI_N_GPIO)
407
408 #endif /* __ASM_ARCH_IRQS_H */