irqs.h 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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. #ifndef __ASM_ARCH_IRQS_H
  15. #define __ASM_ARCH_IRQS_H
  16. #define NR_IXP23XX_IRQS IRQ_IXP23XX_INTB+1
  17. #define IRQ_IXP23XX_EXTIRQS NR_IXP23XX_IRQS
  18. #define IRQ_IXP23XX_DBG0 0 /* Debug/Execution/MBox */
  19. #define IRQ_IXP23XX_DBG1 1 /* Debug/Execution/MBox */
  20. #define IRQ_IXP23XX_NPE_TRG 2 /* npe_trigger */
  21. #define IRQ_IXP23XX_TIMER1 3 /* Timer[0] */
  22. #define IRQ_IXP23XX_TIMER2 4 /* Timer[1] */
  23. #define IRQ_IXP23XX_TIMESTAMP 5 /* Timer[2], Time-stamp */
  24. #define IRQ_IXP23XX_WDOG 6 /* Time[3], Watchdog Timer */
  25. #define IRQ_IXP23XX_PCI_DBELL 7 /* PCI Doorbell */
  26. #define IRQ_IXP23XX_PCI_DMA1 8 /* PCI DMA Channel 1 */
  27. #define IRQ_IXP23XX_PCI_DMA2 9 /* PCI DMA Channel 2 */
  28. #define IRQ_IXP23XX_PCI_DMA3 10 /* PCI DMA Channel 3 */
  29. #define IRQ_IXP23XX_PCI_INT_RPH 11 /* pcxg_pci_int_rph */
  30. #define IRQ_IXP23XX_CPP_PMU 12 /* xpxg_pm_int_rpl */
  31. #define IRQ_IXP23XX_SWINT0 13 /* S/W Interrupt0 */
  32. #define IRQ_IXP23XX_SWINT1 14 /* S/W Interrupt1 */
  33. #define IRQ_IXP23XX_UART2 15 /* UART1 Interrupt */
  34. #define IRQ_IXP23XX_UART1 16 /* UART0 Interrupt */
  35. #define IRQ_IXP23XX_XSI_PMU_ROLLOVER 17 /* AHB Performance M. Unit counter rollover */
  36. #define IRQ_IXP23XX_XSI_AHB_PM0 18 /* intr_pm_o */
  37. #define IRQ_IXP23XX_XSI_AHB_ECE0 19 /* intr_ece_o */
  38. #define IRQ_IXP23XX_XSI_AHB_GASKET 20 /* gas_intr_o */
  39. #define IRQ_IXP23XX_XSI_CPP 21 /* xsi2cpp_int */
  40. #define IRQ_IXP23XX_CPP_XSI 22 /* cpp2xsi_int */
  41. #define IRQ_IXP23XX_ME_ATTN0 23 /* ME_ATTN */
  42. #define IRQ_IXP23XX_ME_ATTN1 24 /* ME_ATTN */
  43. #define IRQ_IXP23XX_ME_ATTN2 25 /* ME_ATTN */
  44. #define IRQ_IXP23XX_ME_ATTN3 26 /* ME_ATTN */
  45. #define IRQ_IXP23XX_PCI_ERR_RPH 27 /* PCXG_PCI_ERR_RPH */
  46. #define IRQ_IXP23XX_D0XG_ECC_CORR 28 /* D0XG_DRAM_ECC_CORR */
  47. #define IRQ_IXP23XX_D0XG_ECC_UNCORR 29 /* D0XG_DRAM_ECC_UNCORR */
  48. #define IRQ_IXP23XX_SRAM_ERR1 30 /* SRAM1_ERR */
  49. #define IRQ_IXP23XX_SRAM_ERR0 31 /* SRAM0_ERR */
  50. #define IRQ_IXP23XX_MEDIA_ERR 32 /* MEDIA_ERR */
  51. #define IRQ_IXP23XX_STH_DRAM_ECC_MAJ 33 /* STH_DRAM0_ECC_MAJ */
  52. #define IRQ_IXP23XX_GPIO6 34 /* GPIO0 interrupts */
  53. #define IRQ_IXP23XX_GPIO7 35 /* GPIO1 interrupts */
  54. #define IRQ_IXP23XX_GPIO8 36 /* GPIO2 interrupts */
  55. #define IRQ_IXP23XX_GPIO9 37 /* GPIO3 interrupts */
  56. #define IRQ_IXP23XX_GPIO10 38 /* GPIO4 interrupts */
  57. #define IRQ_IXP23XX_GPIO11 39 /* GPIO5 interrupts */
  58. #define IRQ_IXP23XX_GPIO12 40 /* GPIO6 interrupts */
  59. #define IRQ_IXP23XX_GPIO13 41 /* GPIO7 interrupts */
  60. #define IRQ_IXP23XX_GPIO14 42 /* GPIO8 interrupts */
  61. #define IRQ_IXP23XX_GPIO15 43 /* GPIO9 interrupts */
  62. #define IRQ_IXP23XX_SHAC_RING0 44 /* SHAC Ring Full */
  63. #define IRQ_IXP23XX_SHAC_RING1 45 /* SHAC Ring Full */
  64. #define IRQ_IXP23XX_SHAC_RING2 46 /* SHAC Ring Full */
  65. #define IRQ_IXP23XX_SHAC_RING3 47 /* SHAC Ring Full */
  66. #define IRQ_IXP23XX_SHAC_RING4 48 /* SHAC Ring Full */
  67. #define IRQ_IXP23XX_SHAC_RING5 49 /* SHAC Ring Full */
  68. #define IRQ_IXP23XX_SHAC_RING6 50 /* SHAC RING Full */
  69. #define IRQ_IXP23XX_SHAC_RING7 51 /* SHAC Ring Full */
  70. #define IRQ_IXP23XX_SHAC_RING8 52 /* SHAC Ring Full */
  71. #define IRQ_IXP23XX_SHAC_RING9 53 /* SHAC Ring Full */
  72. #define IRQ_IXP23XX_SHAC_RING10 54 /* SHAC Ring Full */
  73. #define IRQ_IXP23XX_SHAC_RING11 55 /* SHAC Ring Full */
  74. #define IRQ_IXP23XX_ME_THREAD_A0_ME0 56 /* ME_THREAD_A */
  75. #define IRQ_IXP23XX_ME_THREAD_A1_ME0 57 /* ME_THREAD_A */
  76. #define IRQ_IXP23XX_ME_THREAD_A2_ME0 58 /* ME_THREAD_A */
  77. #define IRQ_IXP23XX_ME_THREAD_A3_ME0 59 /* ME_THREAD_A */
  78. #define IRQ_IXP23XX_ME_THREAD_A4_ME0 60 /* ME_THREAD_A */
  79. #define IRQ_IXP23XX_ME_THREAD_A5_ME0 61 /* ME_THREAD_A */
  80. #define IRQ_IXP23XX_ME_THREAD_A6_ME0 62 /* ME_THREAD_A */
  81. #define IRQ_IXP23XX_ME_THREAD_A7_ME0 63 /* ME_THREAD_A */
  82. #define IRQ_IXP23XX_ME_THREAD_A8_ME1 64 /* ME_THREAD_A */
  83. #define IRQ_IXP23XX_ME_THREAD_A9_ME1 65 /* ME_THREAD_A */
  84. #define IRQ_IXP23XX_ME_THREAD_A10_ME1 66 /* ME_THREAD_A */
  85. #define IRQ_IXP23XX_ME_THREAD_A11_ME1 67 /* ME_THREAD_A */
  86. #define IRQ_IXP23XX_ME_THREAD_A12_ME1 68 /* ME_THREAD_A */
  87. #define IRQ_IXP23XX_ME_THREAD_A13_ME1 69 /* ME_THREAD_A */
  88. #define IRQ_IXP23XX_ME_THREAD_A14_ME1 70 /* ME_THREAD_A */
  89. #define IRQ_IXP23XX_ME_THREAD_A15_ME1 71 /* ME_THREAD_A */
  90. #define IRQ_IXP23XX_ME_THREAD_A16_ME2 72 /* ME_THREAD_A */
  91. #define IRQ_IXP23XX_ME_THREAD_A17_ME2 73 /* ME_THREAD_A */
  92. #define IRQ_IXP23XX_ME_THREAD_A18_ME2 74 /* ME_THREAD_A */
  93. #define IRQ_IXP23XX_ME_THREAD_A19_ME2 75 /* ME_THREAD_A */
  94. #define IRQ_IXP23XX_ME_THREAD_A20_ME2 76 /* ME_THREAD_A */
  95. #define IRQ_IXP23XX_ME_THREAD_A21_ME2 77 /* ME_THREAD_A */
  96. #define IRQ_IXP23XX_ME_THREAD_A22_ME2 78 /* ME_THREAD_A */
  97. #define IRQ_IXP23XX_ME_THREAD_A23_ME2 79 /* ME_THREAD_A */
  98. #define IRQ_IXP23XX_ME_THREAD_A24_ME3 80 /* ME_THREAD_A */
  99. #define IRQ_IXP23XX_ME_THREAD_A25_ME3 81 /* ME_THREAD_A */
  100. #define IRQ_IXP23XX_ME_THREAD_A26_ME3 82 /* ME_THREAD_A */
  101. #define IRQ_IXP23XX_ME_THREAD_A27_ME3 83 /* ME_THREAD_A */
  102. #define IRQ_IXP23XX_ME_THREAD_A28_ME3 84 /* ME_THREAD_A */
  103. #define IRQ_IXP23XX_ME_THREAD_A29_ME3 85 /* ME_THREAD_A */
  104. #define IRQ_IXP23XX_ME_THREAD_A30_ME3 86 /* ME_THREAD_A */
  105. #define IRQ_IXP23XX_ME_THREAD_A31_ME3 87 /* ME_THREAD_A */
  106. #define IRQ_IXP23XX_ME_THREAD_B0_ME0 88 /* ME_THREAD_B */
  107. #define IRQ_IXP23XX_ME_THREAD_B1_ME0 89 /* ME_THREAD_B */
  108. #define IRQ_IXP23XX_ME_THREAD_B2_ME0 90 /* ME_THREAD_B */
  109. #define IRQ_IXP23XX_ME_THREAD_B3_ME0 91 /* ME_THREAD_B */
  110. #define IRQ_IXP23XX_ME_THREAD_B4_ME0 92 /* ME_THREAD_B */
  111. #define IRQ_IXP23XX_ME_THREAD_B5_ME0 93 /* ME_THREAD_B */
  112. #define IRQ_IXP23XX_ME_THREAD_B6_ME0 94 /* ME_THREAD_B */
  113. #define IRQ_IXP23XX_ME_THREAD_B7_ME0 95 /* ME_THREAD_B */
  114. #define IRQ_IXP23XX_ME_THREAD_B8_ME1 96 /* ME_THREAD_B */
  115. #define IRQ_IXP23XX_ME_THREAD_B9_ME1 97 /* ME_THREAD_B */
  116. #define IRQ_IXP23XX_ME_THREAD_B10_ME1 98 /* ME_THREAD_B */
  117. #define IRQ_IXP23XX_ME_THREAD_B11_ME1 99 /* ME_THREAD_B */
  118. #define IRQ_IXP23XX_ME_THREAD_B12_ME1 100 /* ME_THREAD_B */
  119. #define IRQ_IXP23XX_ME_THREAD_B13_ME1 101 /* ME_THREAD_B */
  120. #define IRQ_IXP23XX_ME_THREAD_B14_ME1 102 /* ME_THREAD_B */
  121. #define IRQ_IXP23XX_ME_THREAD_B15_ME1 103 /* ME_THREAD_B */
  122. #define IRQ_IXP23XX_ME_THREAD_B16_ME2 104 /* ME_THREAD_B */
  123. #define IRQ_IXP23XX_ME_THREAD_B17_ME2 105 /* ME_THREAD_B */
  124. #define IRQ_IXP23XX_ME_THREAD_B18_ME2 106 /* ME_THREAD_B */
  125. #define IRQ_IXP23XX_ME_THREAD_B19_ME2 107 /* ME_THREAD_B */
  126. #define IRQ_IXP23XX_ME_THREAD_B20_ME2 108 /* ME_THREAD_B */
  127. #define IRQ_IXP23XX_ME_THREAD_B21_ME2 109 /* ME_THREAD_B */
  128. #define IRQ_IXP23XX_ME_THREAD_B22_ME2 110 /* ME_THREAD_B */
  129. #define IRQ_IXP23XX_ME_THREAD_B23_ME2 111 /* ME_THREAD_B */
  130. #define IRQ_IXP23XX_ME_THREAD_B24_ME3 112 /* ME_THREAD_B */
  131. #define IRQ_IXP23XX_ME_THREAD_B25_ME3 113 /* ME_THREAD_B */
  132. #define IRQ_IXP23XX_ME_THREAD_B26_ME3 114 /* ME_THREAD_B */
  133. #define IRQ_IXP23XX_ME_THREAD_B27_ME3 115 /* ME_THREAD_B */
  134. #define IRQ_IXP23XX_ME_THREAD_B28_ME3 116 /* ME_THREAD_B */
  135. #define IRQ_IXP23XX_ME_THREAD_B29_ME3 117 /* ME_THREAD_B */
  136. #define IRQ_IXP23XX_ME_THREAD_B30_ME3 118 /* ME_THREAD_B */
  137. #define IRQ_IXP23XX_ME_THREAD_B31_ME3 119 /* ME_THREAD_B */
  138. #define NUM_IXP23XX_RAW_IRQS 120
  139. #define IRQ_IXP23XX_INTA 120 /* Indirect pcxg_pci_int_rph */
  140. #define IRQ_IXP23XX_INTB 121 /* Indirect pcxg_pci_int_rph */
  141. #define NR_IXP23XX_IRQ (IRQ_IXP23XX_INTB + 1)
  142. /*
  143. * We default to 32 per-board IRQs. Increase this number if you need
  144. * more, but keep it realistic.
  145. */
  146. #define NR_IXP23XX_MACH_IRQS 32
  147. #define NR_IRQS (NR_IXP23XX_IRQS + NR_IXP23XX_MACH_IRQS)
  148. #define IXP23XX_MACH_IRQ(irq) (NR_IXP23XX_IRQ + (irq))
  149. /*
  150. * IXDP2351-specific interrupts
  151. */
  152. /*
  153. * External PCI interrupts signaled through INTB
  154. *
  155. */
  156. #define IXDP2351_INTB_IRQ_BASE 0
  157. #define IRQ_IXDP2351_INTA_82546 IXP23XX_MACH_IRQ(0)
  158. #define IRQ_IXDP2351_INTB_82546 IXP23XX_MACH_IRQ(1)
  159. #define IRQ_IXDP2351_SPCI_DB_0 IXP23XX_MACH_IRQ(2)
  160. #define IRQ_IXDP2351_SPCI_DB_1 IXP23XX_MACH_IRQ(3)
  161. #define IRQ_IXDP2351_SPCI_PMC_INTA IXP23XX_MACH_IRQ(4)
  162. #define IRQ_IXDP2351_SPCI_PMC_INTB IXP23XX_MACH_IRQ(5)
  163. #define IRQ_IXDP2351_SPCI_PMC_INTC IXP23XX_MACH_IRQ(6)
  164. #define IRQ_IXDP2351_SPCI_PMC_INTD IXP23XX_MACH_IRQ(7)
  165. #define IRQ_IXDP2351_SPCI_FIC IXP23XX_MACH_IRQ(8)
  166. #define IXDP2351_INTB_IRQ_BIT(irq) (irq - IXP23XX_MACH_IRQ(0))
  167. #define IXDP2351_INTB_IRQ_MASK(irq) (1 << IXDP2351_INTB_IRQ_BIT(irq))
  168. #define IXDP2351_INTB_IRQ_VALID 0x01FF
  169. #define IXDP2351_INTB_IRQ_NUM 16
  170. /*
  171. * Other external interrupts signaled through INTA
  172. */
  173. #define IXDP2351_INTA_IRQ_BASE 16
  174. #define IRQ_IXDP2351_IPMI_FROM IXP23XX_MACH_IRQ(16)
  175. #define IRQ_IXDP2351_125US IXP23XX_MACH_IRQ(17)
  176. #define IRQ_IXDP2351_DB_0_ADD IXP23XX_MACH_IRQ(18)
  177. #define IRQ_IXDP2351_DB_1_ADD IXP23XX_MACH_IRQ(19)
  178. #define IRQ_IXDP2351_DEBUG1 IXP23XX_MACH_IRQ(20)
  179. #define IRQ_IXDP2351_ADD_UART IXP23XX_MACH_IRQ(21)
  180. #define IRQ_IXDP2351_FIC_ADD IXP23XX_MACH_IRQ(24)
  181. #define IRQ_IXDP2351_CS8900 IXP23XX_MACH_IRQ(25)
  182. #define IRQ_IXDP2351_BBSRAM IXP23XX_MACH_IRQ(26)
  183. #define IRQ_IXDP2351_CONFIG_MEDIA IXP23XX_MACH_IRQ(27)
  184. #define IRQ_IXDP2351_CLOCK_REF IXP23XX_MACH_IRQ(28)
  185. #define IRQ_IXDP2351_A10_NP IXP23XX_MACH_IRQ(29)
  186. #define IRQ_IXDP2351_A11_NP IXP23XX_MACH_IRQ(30)
  187. #define IRQ_IXDP2351_DEBUG_NP IXP23XX_MACH_IRQ(31)
  188. #define IXDP2351_INTA_IRQ_BIT(irq) (irq - IXP23XX_MACH_IRQ(16))
  189. #define IXDP2351_INTA_IRQ_MASK(irq) (1 << IXDP2351_INTA_IRQ_BIT(irq))
  190. #define IXDP2351_INTA_IRQ_VALID 0xFF3F
  191. #define IXDP2351_INTA_IRQ_NUM 16
  192. /*
  193. * ADI RoadRunner IRQs
  194. */
  195. #define IRQ_ROADRUNNER_PCI_INTA IRQ_IXP23XX_INTA
  196. #define IRQ_ROADRUNNER_PCI_INTB IRQ_IXP23XX_INTB
  197. #define IRQ_ROADRUNNER_PCI_INTC IRQ_IXP23XX_GPIO11
  198. #define IRQ_ROADRUNNER_PCI_INTD IRQ_IXP23XX_GPIO12
  199. /*
  200. * Put new board definitions here
  201. */
  202. #endif