• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/arm/mach-ixp23xx/include/mach/
1/*
2 * arch/arm/mach-ixp23xx/include/mach/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
156#define NR_IRQS				(NR_IXP23XX_IRQS + NR_IXP23XX_MACH_IRQS)
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
224