18ec6d935SJohn Crispin /*
28ec6d935SJohn Crispin  *  This program is free software; you can redistribute it and/or modify it
38ec6d935SJohn Crispin  *  under the terms of the GNU General Public License version 2 as published
48ec6d935SJohn Crispin  *  by the Free Software Foundation.
58ec6d935SJohn Crispin  *
68ec6d935SJohn Crispin  *  Copyright (C) 2010 John Crispin <blogic@openwrt.org>
78ec6d935SJohn Crispin  */
88ec6d935SJohn Crispin 
98ec6d935SJohn Crispin #ifndef _LANTIQ_XWAY_IRQ_H__
108ec6d935SJohn Crispin #define _LANTIQ_XWAY_IRQ_H__
118ec6d935SJohn Crispin 
128ec6d935SJohn Crispin #define INT_NUM_IRQ0		8
138ec6d935SJohn Crispin #define INT_NUM_IM0_IRL0	(INT_NUM_IRQ0 + 0)
148ec6d935SJohn Crispin #define INT_NUM_IM1_IRL0	(INT_NUM_IRQ0 + 32)
158ec6d935SJohn Crispin #define INT_NUM_IM2_IRL0	(INT_NUM_IRQ0 + 64)
168ec6d935SJohn Crispin #define INT_NUM_IM3_IRL0	(INT_NUM_IRQ0 + 96)
178ec6d935SJohn Crispin #define INT_NUM_IM4_IRL0	(INT_NUM_IRQ0 + 128)
188ec6d935SJohn Crispin #define INT_NUM_IM_OFFSET	(INT_NUM_IM1_IRL0 - INT_NUM_IM0_IRL0)
198ec6d935SJohn Crispin 
208ec6d935SJohn Crispin #define LTQ_ASC_TIR(x)		(INT_NUM_IM3_IRL0 + (x * 8))
218ec6d935SJohn Crispin #define LTQ_ASC_RIR(x)		(INT_NUM_IM3_IRL0 + (x * 8) + 1)
228ec6d935SJohn Crispin #define LTQ_ASC_EIR(x)		(INT_NUM_IM3_IRL0 + (x * 8) + 2)
238ec6d935SJohn Crispin 
248ec6d935SJohn Crispin #define LTQ_ASC_ASE_TIR		INT_NUM_IM2_IRL0
258ec6d935SJohn Crispin #define LTQ_ASC_ASE_RIR		(INT_NUM_IM2_IRL0 + 2)
268ec6d935SJohn Crispin #define LTQ_ASC_ASE_EIR		(INT_NUM_IM2_IRL0 + 3)
278ec6d935SJohn Crispin 
288ec6d935SJohn Crispin #define LTQ_SSC_TIR		(INT_NUM_IM0_IRL0 + 15)
298ec6d935SJohn Crispin #define LTQ_SSC_RIR		(INT_NUM_IM0_IRL0 + 14)
308ec6d935SJohn Crispin #define LTQ_SSC_EIR		(INT_NUM_IM0_IRL0 + 16)
318ec6d935SJohn Crispin 
328ec6d935SJohn Crispin #define LTQ_MEI_DYING_GASP_INT	(INT_NUM_IM1_IRL0 + 21)
338ec6d935SJohn Crispin #define LTQ_MEI_INT		(INT_NUM_IM1_IRL0 + 23)
348ec6d935SJohn Crispin 
358ec6d935SJohn Crispin #define LTQ_TIMER6_INT		(INT_NUM_IM1_IRL0 + 23)
368ec6d935SJohn Crispin #define LTQ_USB_INT		(INT_NUM_IM1_IRL0 + 22)
378ec6d935SJohn Crispin #define LTQ_USB_OC_INT		(INT_NUM_IM4_IRL0 + 23)
388ec6d935SJohn Crispin 
398ec6d935SJohn Crispin #define MIPS_CPU_TIMER_IRQ		7
408ec6d935SJohn Crispin 
418ec6d935SJohn Crispin #define LTQ_DMA_CH0_INT		(INT_NUM_IM2_IRL0)
428ec6d935SJohn Crispin #define LTQ_DMA_CH1_INT		(INT_NUM_IM2_IRL0 + 1)
438ec6d935SJohn Crispin #define LTQ_DMA_CH2_INT		(INT_NUM_IM2_IRL0 + 2)
448ec6d935SJohn Crispin #define LTQ_DMA_CH3_INT		(INT_NUM_IM2_IRL0 + 3)
458ec6d935SJohn Crispin #define LTQ_DMA_CH4_INT		(INT_NUM_IM2_IRL0 + 4)
468ec6d935SJohn Crispin #define LTQ_DMA_CH5_INT		(INT_NUM_IM2_IRL0 + 5)
478ec6d935SJohn Crispin #define LTQ_DMA_CH6_INT		(INT_NUM_IM2_IRL0 + 6)
488ec6d935SJohn Crispin #define LTQ_DMA_CH7_INT		(INT_NUM_IM2_IRL0 + 7)
498ec6d935SJohn Crispin #define LTQ_DMA_CH8_INT		(INT_NUM_IM2_IRL0 + 8)
508ec6d935SJohn Crispin #define LTQ_DMA_CH9_INT		(INT_NUM_IM2_IRL0 + 9)
518ec6d935SJohn Crispin #define LTQ_DMA_CH10_INT	(INT_NUM_IM2_IRL0 + 10)
528ec6d935SJohn Crispin #define LTQ_DMA_CH11_INT	(INT_NUM_IM2_IRL0 + 11)
538ec6d935SJohn Crispin #define LTQ_DMA_CH12_INT	(INT_NUM_IM2_IRL0 + 25)
548ec6d935SJohn Crispin #define LTQ_DMA_CH13_INT	(INT_NUM_IM2_IRL0 + 26)
558ec6d935SJohn Crispin #define LTQ_DMA_CH14_INT	(INT_NUM_IM2_IRL0 + 27)
568ec6d935SJohn Crispin #define LTQ_DMA_CH15_INT	(INT_NUM_IM2_IRL0 + 28)
578ec6d935SJohn Crispin #define LTQ_DMA_CH16_INT	(INT_NUM_IM2_IRL0 + 29)
588ec6d935SJohn Crispin #define LTQ_DMA_CH17_INT	(INT_NUM_IM2_IRL0 + 30)
598ec6d935SJohn Crispin #define LTQ_DMA_CH18_INT	(INT_NUM_IM2_IRL0 + 16)
608ec6d935SJohn Crispin #define LTQ_DMA_CH19_INT	(INT_NUM_IM2_IRL0 + 21)
618ec6d935SJohn Crispin 
628ec6d935SJohn Crispin #define LTQ_PPE_MBOX_INT	(INT_NUM_IM2_IRL0 + 24)
638ec6d935SJohn Crispin 
648ec6d935SJohn Crispin #define INT_NUM_IM4_IRL14	(INT_NUM_IM4_IRL0 + 14)
658ec6d935SJohn Crispin 
668ec6d935SJohn Crispin #endif
67