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 enum octeon_irq {
15 /* 1 - 8 represent the 8 MIPS standard interrupt sources */
16 	OCTEON_IRQ_SW0 = 1,
17 	OCTEON_IRQ_SW1,
18 /* CIU0, CUI2, CIU4 are 3, 4, 5 */
19 	OCTEON_IRQ_5 = 6,
20 	OCTEON_IRQ_PERF,
21 	OCTEON_IRQ_TIMER,
22 /* sources in CIU_INTX_EN0 */
23 	OCTEON_IRQ_WORKQ0,
24 	OCTEON_IRQ_GPIO0 = OCTEON_IRQ_WORKQ0 + 16,
25 	OCTEON_IRQ_WDOG0 = OCTEON_IRQ_GPIO0 + 16,
26 	OCTEON_IRQ_WDOG15 = OCTEON_IRQ_WDOG0 + 15,
27 	OCTEON_IRQ_MBOX0 = OCTEON_IRQ_WDOG0 + 16,
28 	OCTEON_IRQ_MBOX1,
29 	OCTEON_IRQ_UART0,
30 	OCTEON_IRQ_UART1,
31 	OCTEON_IRQ_UART2,
32 	OCTEON_IRQ_PCI_INT0,
33 	OCTEON_IRQ_PCI_INT1,
34 	OCTEON_IRQ_PCI_INT2,
35 	OCTEON_IRQ_PCI_INT3,
36 	OCTEON_IRQ_PCI_MSI0,
37 	OCTEON_IRQ_PCI_MSI1,
38 	OCTEON_IRQ_PCI_MSI2,
39 	OCTEON_IRQ_PCI_MSI3,
40 
41 	OCTEON_IRQ_TWSI,
42 	OCTEON_IRQ_TWSI2,
43 	OCTEON_IRQ_RML,
44 	OCTEON_IRQ_TIMER0,
45 	OCTEON_IRQ_TIMER1,
46 	OCTEON_IRQ_TIMER2,
47 	OCTEON_IRQ_TIMER3,
48 	OCTEON_IRQ_USB0,
49 	OCTEON_IRQ_USB1,
50 	OCTEON_IRQ_MII0,
51 	OCTEON_IRQ_MII1,
52 	OCTEON_IRQ_BOOTDMA,
53 #ifndef CONFIG_PCI_MSI
54 	OCTEON_IRQ_LAST = 127
55 #endif
56 };
57 
58 #ifdef CONFIG_PCI_MSI
59 /* 256 - 511 represent the MSI interrupts 0-255 */
60 #define OCTEON_IRQ_MSI_BIT0	(256)
61 
62 #define OCTEON_IRQ_MSI_LAST      (OCTEON_IRQ_MSI_BIT0 + 255)
63 #define OCTEON_IRQ_LAST          (OCTEON_IRQ_MSI_LAST + 1)
64 #endif
65 
66 #endif
67