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