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 245