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 |