| Lennert Buytenhek | c471307 | 2006-03-28 21:18:54 +0100 | [diff] [blame] | 1 | /* | 
|  | 2 | * include/asm-arm/arch-ixp23xx/irqs.h | 
|  | 3 | * | 
|  | 4 | * IRQ definitions for IXP23XX based systems | 
|  | 5 | * | 
|  | 6 | * Author: Naeem Afzal <naeem.m.afzal@intel.com> | 
|  | 7 | * | 
|  | 8 | * Copyright (C) 2003-2004 Intel Corporation. | 
|  | 9 | * | 
|  | 10 | * This program is free software; you can redistribute it and/or modify | 
|  | 11 | * it under the terms of the GNU General Public License version 2 as | 
|  | 12 | * published by the Free Software Foundation. | 
|  | 13 | */ | 
|  | 14 |  | 
|  | 15 | #ifndef __ASM_ARCH_IRQS_H | 
|  | 16 | #define __ASM_ARCH_IRQS_H | 
|  | 17 |  | 
|  | 18 | #define NR_IXP23XX_IRQS			IRQ_IXP23XX_INTB+1 | 
|  | 19 | #define IRQ_IXP23XX_EXTIRQS		NR_IXP23XX_IRQS | 
|  | 20 |  | 
|  | 21 |  | 
|  | 22 | #define IRQ_IXP23XX_DBG0		0	/* Debug/Execution/MBox */ | 
|  | 23 | #define IRQ_IXP23XX_DBG1		1	/* Debug/Execution/MBox */ | 
|  | 24 | #define IRQ_IXP23XX_NPE_TRG		2	/* npe_trigger */ | 
|  | 25 | #define IRQ_IXP23XX_TIMER1		3	/* Timer[0] */ | 
|  | 26 | #define IRQ_IXP23XX_TIMER2		4	/* Timer[1] */ | 
|  | 27 | #define IRQ_IXP23XX_TIMESTAMP		5	/* Timer[2], Time-stamp */ | 
|  | 28 | #define IRQ_IXP23XX_WDOG		6	/* Time[3], Watchdog Timer */ | 
|  | 29 | #define IRQ_IXP23XX_PCI_DBELL		7	/* PCI Doorbell */ | 
|  | 30 | #define IRQ_IXP23XX_PCI_DMA1		8	/* PCI DMA Channel 1 */ | 
|  | 31 | #define IRQ_IXP23XX_PCI_DMA2		9	/* PCI DMA Channel 2 */ | 
|  | 32 | #define IRQ_IXP23XX_PCI_DMA3		10	/* PCI DMA Channel 3 */ | 
|  | 33 | #define IRQ_IXP23XX_PCI_INT_RPH		11	/* pcxg_pci_int_rph */ | 
|  | 34 | #define IRQ_IXP23XX_CPP_PMU		12	/* xpxg_pm_int_rpl */ | 
|  | 35 | #define IRQ_IXP23XX_SWINT0		13	/* S/W Interrupt0 */ | 
|  | 36 | #define IRQ_IXP23XX_SWINT1		14	/* S/W Interrupt1 */ | 
|  | 37 | #define IRQ_IXP23XX_UART2		15	/* UART1 Interrupt */ | 
|  | 38 | #define IRQ_IXP23XX_UART1		16	/* UART0 Interrupt */ | 
|  | 39 | #define IRQ_IXP23XX_XSI_PMU_ROLLOVER	17	/* AHB Performance M. Unit counter rollover */ | 
|  | 40 | #define IRQ_IXP23XX_XSI_AHB_PM0		18	/* intr_pm_o */ | 
|  | 41 | #define IRQ_IXP23XX_XSI_AHB_ECE0	19	/* intr_ece_o */ | 
|  | 42 | #define IRQ_IXP23XX_XSI_AHB_GASKET	20	/* gas_intr_o */ | 
|  | 43 | #define IRQ_IXP23XX_XSI_CPP		21	/* xsi2cpp_int */ | 
|  | 44 | #define IRQ_IXP23XX_CPP_XSI		22	/* cpp2xsi_int */ | 
|  | 45 | #define IRQ_IXP23XX_ME_ATTN0		23	/* ME_ATTN */ | 
|  | 46 | #define IRQ_IXP23XX_ME_ATTN1		24	/* ME_ATTN */ | 
|  | 47 | #define IRQ_IXP23XX_ME_ATTN2		25	/* ME_ATTN */ | 
|  | 48 | #define IRQ_IXP23XX_ME_ATTN3		26	/* ME_ATTN */ | 
|  | 49 | #define IRQ_IXP23XX_PCI_ERR_RPH		27	/* PCXG_PCI_ERR_RPH */ | 
|  | 50 | #define IRQ_IXP23XX_D0XG_ECC_CORR	28	/* D0XG_DRAM_ECC_CORR */ | 
|  | 51 | #define IRQ_IXP23XX_D0XG_ECC_UNCORR	29	/* D0XG_DRAM_ECC_UNCORR */ | 
|  | 52 | #define IRQ_IXP23XX_SRAM_ERR1		30	/* SRAM1_ERR */ | 
|  | 53 | #define IRQ_IXP23XX_SRAM_ERR0		31	/* SRAM0_ERR */ | 
|  | 54 | #define IRQ_IXP23XX_MEDIA_ERR		32	/* MEDIA_ERR */ | 
|  | 55 | #define IRQ_IXP23XX_STH_DRAM_ECC_MAJ	33	/* STH_DRAM0_ECC_MAJ */ | 
|  | 56 | #define IRQ_IXP23XX_GPIO6		34	/* GPIO0 interrupts */ | 
|  | 57 | #define IRQ_IXP23XX_GPIO7		35	/* GPIO1 interrupts */ | 
|  | 58 | #define IRQ_IXP23XX_GPIO8		36	/* GPIO2 interrupts */ | 
|  | 59 | #define IRQ_IXP23XX_GPIO9		37	/* GPIO3 interrupts */ | 
|  | 60 | #define IRQ_IXP23XX_GPIO10		38	/* GPIO4 interrupts */ | 
|  | 61 | #define IRQ_IXP23XX_GPIO11		39	/* GPIO5 interrupts */ | 
|  | 62 | #define IRQ_IXP23XX_GPIO12		40	/* GPIO6 interrupts */ | 
|  | 63 | #define IRQ_IXP23XX_GPIO13		41	/* GPIO7 interrupts */ | 
|  | 64 | #define IRQ_IXP23XX_GPIO14		42	/* GPIO8 interrupts */ | 
|  | 65 | #define IRQ_IXP23XX_GPIO15		43	/* GPIO9 interrupts */ | 
|  | 66 | #define IRQ_IXP23XX_SHAC_RING0		44	/* SHAC Ring Full */ | 
|  | 67 | #define IRQ_IXP23XX_SHAC_RING1		45	/* SHAC Ring Full */ | 
|  | 68 | #define IRQ_IXP23XX_SHAC_RING2		46	/* SHAC Ring Full */ | 
|  | 69 | #define IRQ_IXP23XX_SHAC_RING3		47	/* SHAC Ring Full */ | 
|  | 70 | #define IRQ_IXP23XX_SHAC_RING4		48	/* SHAC Ring Full */ | 
|  | 71 | #define IRQ_IXP23XX_SHAC_RING5		49	/* SHAC Ring Full */ | 
|  | 72 | #define IRQ_IXP23XX_SHAC_RING6		50	/* SHAC RING Full */ | 
|  | 73 | #define IRQ_IXP23XX_SHAC_RING7		51	/* SHAC Ring Full */ | 
|  | 74 | #define IRQ_IXP23XX_SHAC_RING8		52	/* SHAC Ring Full */ | 
|  | 75 | #define IRQ_IXP23XX_SHAC_RING9		53	/* SHAC Ring Full */ | 
|  | 76 | #define IRQ_IXP23XX_SHAC_RING10		54	/* SHAC Ring Full */ | 
|  | 77 | #define IRQ_IXP23XX_SHAC_RING11		55	/* SHAC Ring Full */ | 
|  | 78 | #define IRQ_IXP23XX_ME_THREAD_A0_ME0	56	/* ME_THREAD_A */ | 
|  | 79 | #define IRQ_IXP23XX_ME_THREAD_A1_ME0	57	/* ME_THREAD_A */ | 
|  | 80 | #define IRQ_IXP23XX_ME_THREAD_A2_ME0	58	/* ME_THREAD_A */ | 
|  | 81 | #define IRQ_IXP23XX_ME_THREAD_A3_ME0	59	/* ME_THREAD_A */ | 
|  | 82 | #define IRQ_IXP23XX_ME_THREAD_A4_ME0	60	/* ME_THREAD_A */ | 
|  | 83 | #define IRQ_IXP23XX_ME_THREAD_A5_ME0	61	/* ME_THREAD_A */ | 
|  | 84 | #define IRQ_IXP23XX_ME_THREAD_A6_ME0	62	/* ME_THREAD_A */ | 
|  | 85 | #define IRQ_IXP23XX_ME_THREAD_A7_ME0	63	/* ME_THREAD_A */ | 
|  | 86 | #define IRQ_IXP23XX_ME_THREAD_A8_ME1	64	/* ME_THREAD_A */ | 
|  | 87 | #define IRQ_IXP23XX_ME_THREAD_A9_ME1	65	/* ME_THREAD_A */ | 
|  | 88 | #define IRQ_IXP23XX_ME_THREAD_A10_ME1	66	/* ME_THREAD_A */ | 
|  | 89 | #define IRQ_IXP23XX_ME_THREAD_A11_ME1	67	/* ME_THREAD_A */ | 
|  | 90 | #define IRQ_IXP23XX_ME_THREAD_A12_ME1	68	/* ME_THREAD_A */ | 
|  | 91 | #define IRQ_IXP23XX_ME_THREAD_A13_ME1	69	/* ME_THREAD_A */ | 
|  | 92 | #define IRQ_IXP23XX_ME_THREAD_A14_ME1	70	/* ME_THREAD_A */ | 
|  | 93 | #define IRQ_IXP23XX_ME_THREAD_A15_ME1	71	/* ME_THREAD_A */ | 
|  | 94 | #define IRQ_IXP23XX_ME_THREAD_A16_ME2	72	/* ME_THREAD_A */ | 
|  | 95 | #define IRQ_IXP23XX_ME_THREAD_A17_ME2	73	/* ME_THREAD_A */ | 
|  | 96 | #define IRQ_IXP23XX_ME_THREAD_A18_ME2	74	/* ME_THREAD_A */ | 
|  | 97 | #define IRQ_IXP23XX_ME_THREAD_A19_ME2	75	/* ME_THREAD_A */ | 
|  | 98 | #define IRQ_IXP23XX_ME_THREAD_A20_ME2	76	/* ME_THREAD_A */ | 
|  | 99 | #define IRQ_IXP23XX_ME_THREAD_A21_ME2	77	/* ME_THREAD_A */ | 
|  | 100 | #define IRQ_IXP23XX_ME_THREAD_A22_ME2	78	/* ME_THREAD_A */ | 
|  | 101 | #define IRQ_IXP23XX_ME_THREAD_A23_ME2	79	/* ME_THREAD_A */ | 
|  | 102 | #define IRQ_IXP23XX_ME_THREAD_A24_ME3	80	/* ME_THREAD_A */ | 
|  | 103 | #define IRQ_IXP23XX_ME_THREAD_A25_ME3	81	/* ME_THREAD_A */ | 
|  | 104 | #define IRQ_IXP23XX_ME_THREAD_A26_ME3	82	/* ME_THREAD_A */ | 
|  | 105 | #define IRQ_IXP23XX_ME_THREAD_A27_ME3	83	/* ME_THREAD_A */ | 
|  | 106 | #define IRQ_IXP23XX_ME_THREAD_A28_ME3	84	/* ME_THREAD_A */ | 
|  | 107 | #define IRQ_IXP23XX_ME_THREAD_A29_ME3	85	/* ME_THREAD_A */ | 
|  | 108 | #define IRQ_IXP23XX_ME_THREAD_A30_ME3	86	/* ME_THREAD_A */ | 
|  | 109 | #define IRQ_IXP23XX_ME_THREAD_A31_ME3	87	/* ME_THREAD_A */ | 
|  | 110 | #define IRQ_IXP23XX_ME_THREAD_B0_ME0	88	/* ME_THREAD_B */ | 
|  | 111 | #define IRQ_IXP23XX_ME_THREAD_B1_ME0	89	/* ME_THREAD_B */ | 
|  | 112 | #define IRQ_IXP23XX_ME_THREAD_B2_ME0	90	/* ME_THREAD_B */ | 
|  | 113 | #define IRQ_IXP23XX_ME_THREAD_B3_ME0	91	/* ME_THREAD_B */ | 
|  | 114 | #define IRQ_IXP23XX_ME_THREAD_B4_ME0	92	/* ME_THREAD_B */ | 
|  | 115 | #define IRQ_IXP23XX_ME_THREAD_B5_ME0	93	/* ME_THREAD_B */ | 
|  | 116 | #define IRQ_IXP23XX_ME_THREAD_B6_ME0	94	/* ME_THREAD_B */ | 
|  | 117 | #define IRQ_IXP23XX_ME_THREAD_B7_ME0	95	/* ME_THREAD_B */ | 
|  | 118 | #define IRQ_IXP23XX_ME_THREAD_B8_ME1	96	/* ME_THREAD_B */ | 
|  | 119 | #define IRQ_IXP23XX_ME_THREAD_B9_ME1	97	/* ME_THREAD_B */ | 
|  | 120 | #define IRQ_IXP23XX_ME_THREAD_B10_ME1	98	/* ME_THREAD_B */ | 
|  | 121 | #define IRQ_IXP23XX_ME_THREAD_B11_ME1	99	/* ME_THREAD_B */ | 
|  | 122 | #define IRQ_IXP23XX_ME_THREAD_B12_ME1	100	/* ME_THREAD_B */ | 
|  | 123 | #define IRQ_IXP23XX_ME_THREAD_B13_ME1	101	/* ME_THREAD_B */ | 
|  | 124 | #define IRQ_IXP23XX_ME_THREAD_B14_ME1	102	/* ME_THREAD_B */ | 
|  | 125 | #define IRQ_IXP23XX_ME_THREAD_B15_ME1	103	/* ME_THREAD_B */ | 
|  | 126 | #define IRQ_IXP23XX_ME_THREAD_B16_ME2	104	/* ME_THREAD_B */ | 
|  | 127 | #define IRQ_IXP23XX_ME_THREAD_B17_ME2	105	/* ME_THREAD_B */ | 
|  | 128 | #define IRQ_IXP23XX_ME_THREAD_B18_ME2	106	/* ME_THREAD_B */ | 
|  | 129 | #define IRQ_IXP23XX_ME_THREAD_B19_ME2	107	/* ME_THREAD_B */ | 
|  | 130 | #define IRQ_IXP23XX_ME_THREAD_B20_ME2	108	/* ME_THREAD_B */ | 
|  | 131 | #define IRQ_IXP23XX_ME_THREAD_B21_ME2	109	/* ME_THREAD_B */ | 
|  | 132 | #define IRQ_IXP23XX_ME_THREAD_B22_ME2	110	/* ME_THREAD_B */ | 
|  | 133 | #define IRQ_IXP23XX_ME_THREAD_B23_ME2	111	/* ME_THREAD_B */ | 
|  | 134 | #define IRQ_IXP23XX_ME_THREAD_B24_ME3	112	/* ME_THREAD_B */ | 
|  | 135 | #define IRQ_IXP23XX_ME_THREAD_B25_ME3	113	/* ME_THREAD_B */ | 
|  | 136 | #define IRQ_IXP23XX_ME_THREAD_B26_ME3	114	/* ME_THREAD_B */ | 
|  | 137 | #define IRQ_IXP23XX_ME_THREAD_B27_ME3	115	/* ME_THREAD_B */ | 
|  | 138 | #define IRQ_IXP23XX_ME_THREAD_B28_ME3	116	/* ME_THREAD_B */ | 
|  | 139 | #define IRQ_IXP23XX_ME_THREAD_B29_ME3	117	/* ME_THREAD_B */ | 
|  | 140 | #define IRQ_IXP23XX_ME_THREAD_B30_ME3	118	/* ME_THREAD_B */ | 
|  | 141 | #define IRQ_IXP23XX_ME_THREAD_B31_ME3	119	/* ME_THREAD_B */ | 
|  | 142 |  | 
|  | 143 | #define NUM_IXP23XX_RAW_IRQS		120 | 
|  | 144 |  | 
|  | 145 | #define IRQ_IXP23XX_INTA		120	/* Indirect pcxg_pci_int_rph */ | 
|  | 146 | #define IRQ_IXP23XX_INTB		121	/* Indirect pcxg_pci_int_rph */ | 
|  | 147 |  | 
|  | 148 | #define NR_IXP23XX_IRQ			(IRQ_IXP23XX_INTB + 1) | 
|  | 149 |  | 
|  | 150 | /* | 
|  | 151 | * We default to 32 per-board IRQs. Increase this number if you need | 
|  | 152 | * more, but keep it realistic. | 
|  | 153 | */ | 
|  | 154 | #define NR_IXP23XX_MACH_IRQS 		32 | 
|  | 155 |  | 
| Roel Kluin | 98aa686 | 2007-11-29 14:25:21 +0100 | [diff] [blame^] | 156 | #define NR_IRQS				(NR_IXP23XX_IRQS + NR_IXP23XX_MACH_IRQS) | 
| Lennert Buytenhek | c471307 | 2006-03-28 21:18:54 +0100 | [diff] [blame] | 157 |  | 
|  | 158 | #define IXP23XX_MACH_IRQ(irq) 		(NR_IXP23XX_IRQ + (irq)) | 
|  | 159 |  | 
|  | 160 |  | 
|  | 161 | /* | 
|  | 162 | * IXDP2351-specific interrupts | 
|  | 163 | */ | 
|  | 164 |  | 
|  | 165 | /* | 
|  | 166 | * External PCI interrupts signaled through INTB | 
|  | 167 | * | 
|  | 168 | */ | 
|  | 169 | #define IXDP2351_INTB_IRQ_BASE 		0 | 
|  | 170 | #define IRQ_IXDP2351_INTA_82546		IXP23XX_MACH_IRQ(0) | 
|  | 171 | #define IRQ_IXDP2351_INTB_82546		IXP23XX_MACH_IRQ(1) | 
|  | 172 | #define IRQ_IXDP2351_SPCI_DB_0		IXP23XX_MACH_IRQ(2) | 
|  | 173 | #define IRQ_IXDP2351_SPCI_DB_1		IXP23XX_MACH_IRQ(3) | 
|  | 174 | #define IRQ_IXDP2351_SPCI_PMC_INTA	IXP23XX_MACH_IRQ(4) | 
|  | 175 | #define IRQ_IXDP2351_SPCI_PMC_INTB	IXP23XX_MACH_IRQ(5) | 
|  | 176 | #define IRQ_IXDP2351_SPCI_PMC_INTC	IXP23XX_MACH_IRQ(6) | 
|  | 177 | #define IRQ_IXDP2351_SPCI_PMC_INTD	IXP23XX_MACH_IRQ(7) | 
|  | 178 | #define IRQ_IXDP2351_SPCI_FIC		IXP23XX_MACH_IRQ(8) | 
|  | 179 |  | 
|  | 180 | #define IXDP2351_INTB_IRQ_BIT(irq)	(irq - IXP23XX_MACH_IRQ(0)) | 
|  | 181 | #define IXDP2351_INTB_IRQ_MASK(irq)	(1 << IXDP2351_INTB_IRQ_BIT(irq)) | 
|  | 182 | #define IXDP2351_INTB_IRQ_VALID		0x01FF | 
|  | 183 | #define IXDP2351_INTB_IRQ_NUM 		16 | 
|  | 184 |  | 
|  | 185 | /* | 
|  | 186 | * Other external interrupts signaled through INTA | 
|  | 187 | */ | 
|  | 188 | #define IXDP2351_INTA_IRQ_BASE 		16 | 
|  | 189 | #define IRQ_IXDP2351_IPMI_FROM		IXP23XX_MACH_IRQ(16) | 
|  | 190 | #define IRQ_IXDP2351_125US		IXP23XX_MACH_IRQ(17) | 
|  | 191 | #define IRQ_IXDP2351_DB_0_ADD		IXP23XX_MACH_IRQ(18) | 
|  | 192 | #define IRQ_IXDP2351_DB_1_ADD		IXP23XX_MACH_IRQ(19) | 
|  | 193 | #define IRQ_IXDP2351_DEBUG1		IXP23XX_MACH_IRQ(20) | 
|  | 194 | #define IRQ_IXDP2351_ADD_UART		IXP23XX_MACH_IRQ(21) | 
|  | 195 | #define IRQ_IXDP2351_FIC_ADD		IXP23XX_MACH_IRQ(24) | 
|  | 196 | #define IRQ_IXDP2351_CS8900		IXP23XX_MACH_IRQ(25) | 
|  | 197 | #define IRQ_IXDP2351_BBSRAM		IXP23XX_MACH_IRQ(26) | 
|  | 198 | #define IRQ_IXDP2351_CONFIG_MEDIA	IXP23XX_MACH_IRQ(27) | 
|  | 199 | #define IRQ_IXDP2351_CLOCK_REF		IXP23XX_MACH_IRQ(28) | 
|  | 200 | #define IRQ_IXDP2351_A10_NP		IXP23XX_MACH_IRQ(29) | 
|  | 201 | #define IRQ_IXDP2351_A11_NP		IXP23XX_MACH_IRQ(30) | 
|  | 202 | #define IRQ_IXDP2351_DEBUG_NP		IXP23XX_MACH_IRQ(31) | 
|  | 203 |  | 
|  | 204 | #define IXDP2351_INTA_IRQ_BIT(irq) 	(irq - IXP23XX_MACH_IRQ(16)) | 
|  | 205 | #define IXDP2351_INTA_IRQ_MASK(irq) 	(1 << IXDP2351_INTA_IRQ_BIT(irq)) | 
|  | 206 | #define IXDP2351_INTA_IRQ_VALID 	0xFF3F | 
|  | 207 | #define IXDP2351_INTA_IRQ_NUM 		16 | 
|  | 208 |  | 
|  | 209 |  | 
|  | 210 | /* | 
|  | 211 | * ADI RoadRunner IRQs | 
|  | 212 | */ | 
|  | 213 | #define IRQ_ROADRUNNER_PCI_INTA 	IRQ_IXP23XX_INTA | 
|  | 214 | #define IRQ_ROADRUNNER_PCI_INTB 	IRQ_IXP23XX_INTB | 
|  | 215 | #define IRQ_ROADRUNNER_PCI_INTC 	IRQ_IXP23XX_GPIO11 | 
|  | 216 | #define IRQ_ROADRUNNER_PCI_INTD 	IRQ_IXP23XX_GPIO12 | 
|  | 217 |  | 
|  | 218 | /* | 
|  | 219 | * Put new board definitions here | 
|  | 220 | */ | 
|  | 221 |  | 
|  | 222 |  | 
|  | 223 | #endif |