1a09e64fbSRussell King /* 2a09e64fbSRussell King * arch/arm/mach-sa1100/include/mach/irqs.h 3a09e64fbSRussell King * 4a09e64fbSRussell King * Copyright (C) 1996 Russell King 5a09e64fbSRussell King * Copyright (C) 1998 Deborah Wallach (updates for SA1100/Brutus). 6a09e64fbSRussell King * Copyright (C) 1999 Nicolas Pitre (full GPIO irq isolation) 7a09e64fbSRussell King * 8a09e64fbSRussell King * 2001/11/14 RMK Cleaned up and standardised a lot of the IRQs. 9a09e64fbSRussell King */ 10a09e64fbSRussell King 11*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO0_SC 1 12*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO1_SC 2 13*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO2_SC 3 14*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO3_SC 4 15*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO4_SC 5 16*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO5_SC 6 17*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO6_SC 7 18*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO7_SC 8 19*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO8_SC 9 20*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO9_SC 10 21*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO10_SC 11 2218f3aec3SDmitry Eremin-Solenikov #define IRQ_GPIO11_27 12 2318f3aec3SDmitry Eremin-Solenikov #define IRQ_LCD 13 /* LCD controller */ 2418f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser0UDC 14 /* Ser. port 0 UDC */ 2518f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser1SDLC 15 /* Ser. port 1 SDLC */ 2618f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser1UART 16 /* Ser. port 1 UART */ 2718f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser2ICP 17 /* Ser. port 2 ICP */ 2818f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser3UART 18 /* Ser. port 3 UART */ 2918f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser4MCP 19 /* Ser. port 4 MCP */ 3018f3aec3SDmitry Eremin-Solenikov #define IRQ_Ser4SSP 20 /* Ser. port 4 SSP */ 3118f3aec3SDmitry Eremin-Solenikov #define IRQ_DMA0 21 /* DMA controller channel 0 */ 3218f3aec3SDmitry Eremin-Solenikov #define IRQ_DMA1 22 /* DMA controller channel 1 */ 3318f3aec3SDmitry Eremin-Solenikov #define IRQ_DMA2 23 /* DMA controller channel 2 */ 3418f3aec3SDmitry Eremin-Solenikov #define IRQ_DMA3 24 /* DMA controller channel 3 */ 3518f3aec3SDmitry Eremin-Solenikov #define IRQ_DMA4 25 /* DMA controller channel 4 */ 3618f3aec3SDmitry Eremin-Solenikov #define IRQ_DMA5 26 /* DMA controller channel 5 */ 3718f3aec3SDmitry Eremin-Solenikov #define IRQ_OST0 27 /* OS Timer match 0 */ 3818f3aec3SDmitry Eremin-Solenikov #define IRQ_OST1 28 /* OS Timer match 1 */ 3918f3aec3SDmitry Eremin-Solenikov #define IRQ_OST2 29 /* OS Timer match 2 */ 4018f3aec3SDmitry Eremin-Solenikov #define IRQ_OST3 30 /* OS Timer match 3 */ 4118f3aec3SDmitry Eremin-Solenikov #define IRQ_RTC1Hz 31 /* RTC 1 Hz clock */ 4218f3aec3SDmitry Eremin-Solenikov #define IRQ_RTCAlrm 32 /* RTC Alarm */ 43a09e64fbSRussell King 44*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO0 33 45*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO1 34 46*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO2 35 47*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO3 36 48*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO4 37 49*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO5 38 50*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO6 39 51*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO7 40 52*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO8 41 53*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO9 42 54*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO10 43 55*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO11 44 56*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO12 45 57*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO13 46 58*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO14 47 59*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO15 48 60*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO16 49 61*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO17 50 62*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO18 51 63*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO19 52 64*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO20 53 65*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO21 54 66*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO22 55 67*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO23 56 68*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO24 57 69*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO25 58 70*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO26 59 71*83508093SDmitry Eremin-Solenikov #define IRQ_GPIO27 60 72a09e64fbSRussell King 73a09e64fbSRussell King /* 74a09e64fbSRussell King * The next 16 interrupts are for board specific purposes. Since 75a09e64fbSRussell King * the kernel can only run on one machine at a time, we can re-use 76a09e64fbSRussell King * these. If you need more, increase IRQ_BOARD_END, but keep it 77*83508093SDmitry Eremin-Solenikov * within sensible limits. IRQs 61 to 76 are available. 78a09e64fbSRussell King */ 79*83508093SDmitry Eremin-Solenikov #define IRQ_BOARD_START 61 80*83508093SDmitry Eremin-Solenikov #define IRQ_BOARD_END 77 81a09e64fbSRussell King 82a09e64fbSRussell King /* 83a09e64fbSRussell King * Figure out the MAX IRQ number. 84a09e64fbSRussell King * 85375dec92SRussell King * Neponset, SA1111 and UCB1x00 are sparse IRQ aware, so can dynamically 86375dec92SRussell King * allocate their IRQs above NR_IRQS. 87375dec92SRussell King * 88375dec92SRussell King * LoCoMo has 4 additional IRQs, but is not sparse IRQ aware, and so has 89375dec92SRussell King * to be included in the NR_IRQS calculation. 90a09e64fbSRussell King */ 91375dec92SRussell King #ifdef CONFIG_SHARP_LOCOMO 92375dec92SRussell King #define NR_IRQS_LOCOMO 4 93a09e64fbSRussell King #else 94375dec92SRussell King #define NR_IRQS_LOCOMO 0 95a09e64fbSRussell King #endif 96f314f33bSRob Herring 97375dec92SRussell King #ifndef NR_IRQS 98375dec92SRussell King #define NR_IRQS (IRQ_BOARD_START + NR_IRQS_LOCOMO) 99375dec92SRussell King #endif 100375dec92SRussell King #define SA1100_NR_IRQS (IRQ_BOARD_START + NR_IRQS_LOCOMO) 101