MIPS: Add Cavium OCTEON processor support files to arch/mips/cavium-octeon.
[linux-2.6.git] / arch / mips / include / asm / mach-cavium-octeon / irq.h
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 2004-2008 Cavium Networks
7  */
8 #ifndef __OCTEON_IRQ_H__
9 #define __OCTEON_IRQ_H__
10
11 #define NR_IRQS OCTEON_IRQ_LAST
12 #define MIPS_CPU_IRQ_BASE OCTEON_IRQ_SW0
13
14 /* 0 - 7 represent the i8259 master */
15 #define OCTEON_IRQ_I8259M0      0
16 #define OCTEON_IRQ_I8259M1      1
17 #define OCTEON_IRQ_I8259M2      2
18 #define OCTEON_IRQ_I8259M3      3
19 #define OCTEON_IRQ_I8259M4      4
20 #define OCTEON_IRQ_I8259M5      5
21 #define OCTEON_IRQ_I8259M6      6
22 #define OCTEON_IRQ_I8259M7      7
23 /* 8 - 15 represent the i8259 slave */
24 #define OCTEON_IRQ_I8259S0      8
25 #define OCTEON_IRQ_I8259S1      9
26 #define OCTEON_IRQ_I8259S2      10
27 #define OCTEON_IRQ_I8259S3      11
28 #define OCTEON_IRQ_I8259S4      12
29 #define OCTEON_IRQ_I8259S5      13
30 #define OCTEON_IRQ_I8259S6      14
31 #define OCTEON_IRQ_I8259S7      15
32 /* 16 - 23 represent the 8 MIPS standard interrupt sources */
33 #define OCTEON_IRQ_SW0          16
34 #define OCTEON_IRQ_SW1          17
35 #define OCTEON_IRQ_CIU0         18
36 #define OCTEON_IRQ_CIU1         19
37 #define OCTEON_IRQ_CIU4         20
38 #define OCTEON_IRQ_5            21
39 #define OCTEON_IRQ_PERF         22
40 #define OCTEON_IRQ_TIMER        23
41 /* 24 - 87 represent the sources in CIU_INTX_EN0 */
42 #define OCTEON_IRQ_WORKQ0       24
43 #define OCTEON_IRQ_WORKQ1       25
44 #define OCTEON_IRQ_WORKQ2       26
45 #define OCTEON_IRQ_WORKQ3       27
46 #define OCTEON_IRQ_WORKQ4       28
47 #define OCTEON_IRQ_WORKQ5       29
48 #define OCTEON_IRQ_WORKQ6       30
49 #define OCTEON_IRQ_WORKQ7       31
50 #define OCTEON_IRQ_WORKQ8       32
51 #define OCTEON_IRQ_WORKQ9       33
52 #define OCTEON_IRQ_WORKQ10      34
53 #define OCTEON_IRQ_WORKQ11      35
54 #define OCTEON_IRQ_WORKQ12      36
55 #define OCTEON_IRQ_WORKQ13      37
56 #define OCTEON_IRQ_WORKQ14      38
57 #define OCTEON_IRQ_WORKQ15      39
58 #define OCTEON_IRQ_GPIO0        40
59 #define OCTEON_IRQ_GPIO1        41
60 #define OCTEON_IRQ_GPIO2        42
61 #define OCTEON_IRQ_GPIO3        43
62 #define OCTEON_IRQ_GPIO4        44
63 #define OCTEON_IRQ_GPIO5        45
64 #define OCTEON_IRQ_GPIO6        46
65 #define OCTEON_IRQ_GPIO7        47
66 #define OCTEON_IRQ_GPIO8        48
67 #define OCTEON_IRQ_GPIO9        49
68 #define OCTEON_IRQ_GPIO10       50
69 #define OCTEON_IRQ_GPIO11       51
70 #define OCTEON_IRQ_GPIO12       52
71 #define OCTEON_IRQ_GPIO13       53
72 #define OCTEON_IRQ_GPIO14       54
73 #define OCTEON_IRQ_GPIO15       55
74 #define OCTEON_IRQ_MBOX0        56
75 #define OCTEON_IRQ_MBOX1        57
76 #define OCTEON_IRQ_UART0        58
77 #define OCTEON_IRQ_UART1        59
78 #define OCTEON_IRQ_PCI_INT0     60
79 #define OCTEON_IRQ_PCI_INT1     61
80 #define OCTEON_IRQ_PCI_INT2     62
81 #define OCTEON_IRQ_PCI_INT3     63
82 #define OCTEON_IRQ_PCI_MSI0     64
83 #define OCTEON_IRQ_PCI_MSI1     65
84 #define OCTEON_IRQ_PCI_MSI2     66
85 #define OCTEON_IRQ_PCI_MSI3     67
86 #define OCTEON_IRQ_RESERVED68   68      /* Summary of CIU_INT_SUM1 */
87 #define OCTEON_IRQ_TWSI         69
88 #define OCTEON_IRQ_RML          70
89 #define OCTEON_IRQ_TRACE        71
90 #define OCTEON_IRQ_GMX_DRP0     72
91 #define OCTEON_IRQ_GMX_DRP1     73
92 #define OCTEON_IRQ_IPD_DRP      74
93 #define OCTEON_IRQ_KEY_ZERO     75
94 #define OCTEON_IRQ_TIMER0       76
95 #define OCTEON_IRQ_TIMER1       77
96 #define OCTEON_IRQ_TIMER2       78
97 #define OCTEON_IRQ_TIMER3       79
98 #define OCTEON_IRQ_USB0         80
99 #define OCTEON_IRQ_PCM          81
100 #define OCTEON_IRQ_MPI          82
101 #define OCTEON_IRQ_TWSI2        83
102 #define OCTEON_IRQ_POWIQ        84
103 #define OCTEON_IRQ_IPDPPTHR     85
104 #define OCTEON_IRQ_MII0         86
105 #define OCTEON_IRQ_BOOTDMA      87
106 /* 88 - 151 represent the sources in CIU_INTX_EN1 */
107 #define OCTEON_IRQ_WDOG0        88
108 #define OCTEON_IRQ_WDOG1        89
109 #define OCTEON_IRQ_WDOG2        90
110 #define OCTEON_IRQ_WDOG3        91
111 #define OCTEON_IRQ_WDOG4        92
112 #define OCTEON_IRQ_WDOG5        93
113 #define OCTEON_IRQ_WDOG6        94
114 #define OCTEON_IRQ_WDOG7        95
115 #define OCTEON_IRQ_WDOG8        96
116 #define OCTEON_IRQ_WDOG9        97
117 #define OCTEON_IRQ_WDOG10       98
118 #define OCTEON_IRQ_WDOG11       99
119 #define OCTEON_IRQ_WDOG12       100
120 #define OCTEON_IRQ_WDOG13       101
121 #define OCTEON_IRQ_WDOG14       102
122 #define OCTEON_IRQ_WDOG15       103
123 #define OCTEON_IRQ_UART2        104
124 #define OCTEON_IRQ_USB1         105
125 #define OCTEON_IRQ_MII1         106
126 #define OCTEON_IRQ_RESERVED107  107
127 #define OCTEON_IRQ_RESERVED108  108
128 #define OCTEON_IRQ_RESERVED109  109
129 #define OCTEON_IRQ_RESERVED110  110
130 #define OCTEON_IRQ_RESERVED111  111
131 #define OCTEON_IRQ_RESERVED112  112
132 #define OCTEON_IRQ_RESERVED113  113
133 #define OCTEON_IRQ_RESERVED114  114
134 #define OCTEON_IRQ_RESERVED115  115
135 #define OCTEON_IRQ_RESERVED116  116
136 #define OCTEON_IRQ_RESERVED117  117
137 #define OCTEON_IRQ_RESERVED118  118
138 #define OCTEON_IRQ_RESERVED119  119
139 #define OCTEON_IRQ_RESERVED120  120
140 #define OCTEON_IRQ_RESERVED121  121
141 #define OCTEON_IRQ_RESERVED122  122
142 #define OCTEON_IRQ_RESERVED123  123
143 #define OCTEON_IRQ_RESERVED124  124
144 #define OCTEON_IRQ_RESERVED125  125
145 #define OCTEON_IRQ_RESERVED126  126
146 #define OCTEON_IRQ_RESERVED127  127
147 #define OCTEON_IRQ_RESERVED128  128
148 #define OCTEON_IRQ_RESERVED129  129
149 #define OCTEON_IRQ_RESERVED130  130
150 #define OCTEON_IRQ_RESERVED131  131
151 #define OCTEON_IRQ_RESERVED132  132
152 #define OCTEON_IRQ_RESERVED133  133
153 #define OCTEON_IRQ_RESERVED134  134
154 #define OCTEON_IRQ_RESERVED135  135
155 #define OCTEON_IRQ_RESERVED136  136
156 #define OCTEON_IRQ_RESERVED137  137
157 #define OCTEON_IRQ_RESERVED138  138
158 #define OCTEON_IRQ_RESERVED139  139
159 #define OCTEON_IRQ_RESERVED140  140
160 #define OCTEON_IRQ_RESERVED141  141
161 #define OCTEON_IRQ_RESERVED142  142
162 #define OCTEON_IRQ_RESERVED143  143
163 #define OCTEON_IRQ_RESERVED144  144
164 #define OCTEON_IRQ_RESERVED145  145
165 #define OCTEON_IRQ_RESERVED146  146
166 #define OCTEON_IRQ_RESERVED147  147
167 #define OCTEON_IRQ_RESERVED148  148
168 #define OCTEON_IRQ_RESERVED149  149
169 #define OCTEON_IRQ_RESERVED150  150
170 #define OCTEON_IRQ_RESERVED151  151
171
172 #ifdef CONFIG_PCI_MSI
173 /* 152 - 215 represent the MSI interrupts 0-63 */
174 #define OCTEON_IRQ_MSI_BIT0     152
175 #define OCTEON_IRQ_MSI_BIT1     153
176 #define OCTEON_IRQ_MSI_BIT2     154
177 #define OCTEON_IRQ_MSI_BIT3     155
178 #define OCTEON_IRQ_MSI_BIT4     156
179 #define OCTEON_IRQ_MSI_BIT5     157
180 #define OCTEON_IRQ_MSI_BIT6     158
181 #define OCTEON_IRQ_MSI_BIT7     159
182 #define OCTEON_IRQ_MSI_BIT8     160
183 #define OCTEON_IRQ_MSI_BIT9     161
184 #define OCTEON_IRQ_MSI_BIT10    162
185 #define OCTEON_IRQ_MSI_BIT11    163
186 #define OCTEON_IRQ_MSI_BIT12    164
187 #define OCTEON_IRQ_MSI_BIT13    165
188 #define OCTEON_IRQ_MSI_BIT14    166
189 #define OCTEON_IRQ_MSI_BIT15    167
190 #define OCTEON_IRQ_MSI_BIT16    168
191 #define OCTEON_IRQ_MSI_BIT17    169
192 #define OCTEON_IRQ_MSI_BIT18    170
193 #define OCTEON_IRQ_MSI_BIT19    171
194 #define OCTEON_IRQ_MSI_BIT20    172
195 #define OCTEON_IRQ_MSI_BIT21    173
196 #define OCTEON_IRQ_MSI_BIT22    174
197 #define OCTEON_IRQ_MSI_BIT23    175
198 #define OCTEON_IRQ_MSI_BIT24    176
199 #define OCTEON_IRQ_MSI_BIT25    177
200 #define OCTEON_IRQ_MSI_BIT26    178
201 #define OCTEON_IRQ_MSI_BIT27    179
202 #define OCTEON_IRQ_MSI_BIT28    180
203 #define OCTEON_IRQ_MSI_BIT29    181
204 #define OCTEON_IRQ_MSI_BIT30    182
205 #define OCTEON_IRQ_MSI_BIT31    183
206 #define OCTEON_IRQ_MSI_BIT32    184
207 #define OCTEON_IRQ_MSI_BIT33    185
208 #define OCTEON_IRQ_MSI_BIT34    186
209 #define OCTEON_IRQ_MSI_BIT35    187
210 #define OCTEON_IRQ_MSI_BIT36    188
211 #define OCTEON_IRQ_MSI_BIT37    189
212 #define OCTEON_IRQ_MSI_BIT38    190
213 #define OCTEON_IRQ_MSI_BIT39    191
214 #define OCTEON_IRQ_MSI_BIT40    192
215 #define OCTEON_IRQ_MSI_BIT41    193
216 #define OCTEON_IRQ_MSI_BIT42    194
217 #define OCTEON_IRQ_MSI_BIT43    195
218 #define OCTEON_IRQ_MSI_BIT44    196
219 #define OCTEON_IRQ_MSI_BIT45    197
220 #define OCTEON_IRQ_MSI_BIT46    198
221 #define OCTEON_IRQ_MSI_BIT47    199
222 #define OCTEON_IRQ_MSI_BIT48    200
223 #define OCTEON_IRQ_MSI_BIT49    201
224 #define OCTEON_IRQ_MSI_BIT50    202
225 #define OCTEON_IRQ_MSI_BIT51    203
226 #define OCTEON_IRQ_MSI_BIT52    204
227 #define OCTEON_IRQ_MSI_BIT53    205
228 #define OCTEON_IRQ_MSI_BIT54    206
229 #define OCTEON_IRQ_MSI_BIT55    207
230 #define OCTEON_IRQ_MSI_BIT56    208
231 #define OCTEON_IRQ_MSI_BIT57    209
232 #define OCTEON_IRQ_MSI_BIT58    210
233 #define OCTEON_IRQ_MSI_BIT59    211
234 #define OCTEON_IRQ_MSI_BIT60    212
235 #define OCTEON_IRQ_MSI_BIT61    213
236 #define OCTEON_IRQ_MSI_BIT62    214
237 #define OCTEON_IRQ_MSI_BIT63    215
238
239 #define OCTEON_IRQ_LAST         216
240 #else
241 #define OCTEON_IRQ_LAST         152
242 #endif
243
244 #endif