bcm1480_int.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. /* *********************************************************************
  2. * BCM1280/BCM1480 Board Support Package
  3. *
  4. * Interrupt Mapper definitions File: bcm1480_int.h
  5. *
  6. * This module contains constants for manipulating the
  7. * BCM1255/BCM1280/BCM1455/BCM1480's interrupt mapper and
  8. * definitions for the interrupt sources.
  9. *
  10. * BCM1480 specification level: 1X55_1X80-UM100-D4 (11/24/03)
  11. *
  12. *********************************************************************
  13. *
  14. * Copyright 2000,2001,2002,2003
  15. * Broadcom Corporation. All rights reserved.
  16. *
  17. * This program is free software; you can redistribute it and/or
  18. * modify it under the terms of the GNU General Public License as
  19. * published by the Free Software Foundation; either version 2 of
  20. * the License, or (at your option) any later version.
  21. *
  22. * This program is distributed in the hope that it will be useful,
  23. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  24. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  25. * GNU General Public License for more details.
  26. *
  27. * You should have received a copy of the GNU General Public License
  28. * along with this program; if not, write to the Free Software
  29. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  30. * MA 02111-1307 USA
  31. ********************************************************************* */
  32. #ifndef _BCM1480_INT_H
  33. #define _BCM1480_INT_H
  34. #include <asm/sibyte/sb1250_defs.h>
  35. /* *********************************************************************
  36. * Interrupt Mapper Constants
  37. ********************************************************************* */
  38. /*
  39. * The interrupt mapper deals with 128-bit logical registers that are
  40. * implemented as pairs of 64-bit registers, with the "low" 64 bits in
  41. * a register that has an address 0x1000 higher(!) than the
  42. * corresponding "high" register.
  43. *
  44. * For appropriate registers, bit 0 of the "high" register is a
  45. * cascade bit that summarizes (as a bit-OR) the 64 bits of the "low"
  46. * register.
  47. */
  48. /*
  49. * This entire file uses _BCM1480_ in all the symbols because it is
  50. * entirely BCM1480 specific.
  51. */
  52. /*
  53. * Interrupt sources (Table 22)
  54. */
  55. #define K_BCM1480_INT_SOURCES 128
  56. #define _BCM1480_INT_HIGH(k) (k)
  57. #define _BCM1480_INT_LOW(k) ((k)+64)
  58. #define K_BCM1480_INT_ADDR_TRAP _BCM1480_INT_HIGH(1)
  59. #define K_BCM1480_INT_GPIO_0 _BCM1480_INT_HIGH(4)
  60. #define K_BCM1480_INT_GPIO_1 _BCM1480_INT_HIGH(5)
  61. #define K_BCM1480_INT_GPIO_2 _BCM1480_INT_HIGH(6)
  62. #define K_BCM1480_INT_GPIO_3 _BCM1480_INT_HIGH(7)
  63. #define K_BCM1480_INT_PCI_INTA _BCM1480_INT_HIGH(8)
  64. #define K_BCM1480_INT_PCI_INTB _BCM1480_INT_HIGH(9)
  65. #define K_BCM1480_INT_PCI_INTC _BCM1480_INT_HIGH(10)
  66. #define K_BCM1480_INT_PCI_INTD _BCM1480_INT_HIGH(11)
  67. #define K_BCM1480_INT_CYCLE_CP0 _BCM1480_INT_HIGH(12)
  68. #define K_BCM1480_INT_CYCLE_CP1 _BCM1480_INT_HIGH(13)
  69. #define K_BCM1480_INT_CYCLE_CP2 _BCM1480_INT_HIGH(14)
  70. #define K_BCM1480_INT_CYCLE_CP3 _BCM1480_INT_HIGH(15)
  71. #define K_BCM1480_INT_TIMER_0 _BCM1480_INT_HIGH(20)
  72. #define K_BCM1480_INT_TIMER_1 _BCM1480_INT_HIGH(21)
  73. #define K_BCM1480_INT_TIMER_2 _BCM1480_INT_HIGH(22)
  74. #define K_BCM1480_INT_TIMER_3 _BCM1480_INT_HIGH(23)
  75. #define K_BCM1480_INT_DM_CH_0 _BCM1480_INT_HIGH(28)
  76. #define K_BCM1480_INT_DM_CH_1 _BCM1480_INT_HIGH(29)
  77. #define K_BCM1480_INT_DM_CH_2 _BCM1480_INT_HIGH(30)
  78. #define K_BCM1480_INT_DM_CH_3 _BCM1480_INT_HIGH(31)
  79. #define K_BCM1480_INT_MAC_0 _BCM1480_INT_HIGH(36)
  80. #define K_BCM1480_INT_MAC_0_CH1 _BCM1480_INT_HIGH(37)
  81. #define K_BCM1480_INT_MAC_1 _BCM1480_INT_HIGH(38)
  82. #define K_BCM1480_INT_MAC_1_CH1 _BCM1480_INT_HIGH(39)
  83. #define K_BCM1480_INT_MAC_2 _BCM1480_INT_HIGH(40)
  84. #define K_BCM1480_INT_MAC_2_CH1 _BCM1480_INT_HIGH(41)
  85. #define K_BCM1480_INT_MAC_3 _BCM1480_INT_HIGH(42)
  86. #define K_BCM1480_INT_MAC_3_CH1 _BCM1480_INT_HIGH(43)
  87. #define K_BCM1480_INT_PMI_LOW _BCM1480_INT_HIGH(52)
  88. #define K_BCM1480_INT_PMI_HIGH _BCM1480_INT_HIGH(53)
  89. #define K_BCM1480_INT_PMO_LOW _BCM1480_INT_HIGH(54)
  90. #define K_BCM1480_INT_PMO_HIGH _BCM1480_INT_HIGH(55)
  91. #define K_BCM1480_INT_MBOX_0_0 _BCM1480_INT_HIGH(56)
  92. #define K_BCM1480_INT_MBOX_0_1 _BCM1480_INT_HIGH(57)
  93. #define K_BCM1480_INT_MBOX_0_2 _BCM1480_INT_HIGH(58)
  94. #define K_BCM1480_INT_MBOX_0_3 _BCM1480_INT_HIGH(59)
  95. #define K_BCM1480_INT_MBOX_1_0 _BCM1480_INT_HIGH(60)
  96. #define K_BCM1480_INT_MBOX_1_1 _BCM1480_INT_HIGH(61)
  97. #define K_BCM1480_INT_MBOX_1_2 _BCM1480_INT_HIGH(62)
  98. #define K_BCM1480_INT_MBOX_1_3 _BCM1480_INT_HIGH(63)
  99. #define K_BCM1480_INT_BAD_ECC _BCM1480_INT_LOW(1)
  100. #define K_BCM1480_INT_COR_ECC _BCM1480_INT_LOW(2)
  101. #define K_BCM1480_INT_IO_BUS _BCM1480_INT_LOW(3)
  102. #define K_BCM1480_INT_PERF_CNT _BCM1480_INT_LOW(4)
  103. #define K_BCM1480_INT_SW_PERF_CNT _BCM1480_INT_LOW(5)
  104. #define K_BCM1480_INT_TRACE_FREEZE _BCM1480_INT_LOW(6)
  105. #define K_BCM1480_INT_SW_TRACE_FREEZE _BCM1480_INT_LOW(7)
  106. #define K_BCM1480_INT_WATCHDOG_TIMER_0 _BCM1480_INT_LOW(8)
  107. #define K_BCM1480_INT_WATCHDOG_TIMER_1 _BCM1480_INT_LOW(9)
  108. #define K_BCM1480_INT_WATCHDOG_TIMER_2 _BCM1480_INT_LOW(10)
  109. #define K_BCM1480_INT_WATCHDOG_TIMER_3 _BCM1480_INT_LOW(11)
  110. #define K_BCM1480_INT_PCI_ERROR _BCM1480_INT_LOW(16)
  111. #define K_BCM1480_INT_PCI_RESET _BCM1480_INT_LOW(17)
  112. #define K_BCM1480_INT_NODE_CONTROLLER _BCM1480_INT_LOW(18)
  113. #define K_BCM1480_INT_HOST_BRIDGE _BCM1480_INT_LOW(19)
  114. #define K_BCM1480_INT_PORT_0_FATAL _BCM1480_INT_LOW(20)
  115. #define K_BCM1480_INT_PORT_0_NONFATAL _BCM1480_INT_LOW(21)
  116. #define K_BCM1480_INT_PORT_1_FATAL _BCM1480_INT_LOW(22)
  117. #define K_BCM1480_INT_PORT_1_NONFATAL _BCM1480_INT_LOW(23)
  118. #define K_BCM1480_INT_PORT_2_FATAL _BCM1480_INT_LOW(24)
  119. #define K_BCM1480_INT_PORT_2_NONFATAL _BCM1480_INT_LOW(25)
  120. #define K_BCM1480_INT_LDT_SMI _BCM1480_INT_LOW(32)
  121. #define K_BCM1480_INT_LDT_NMI _BCM1480_INT_LOW(33)
  122. #define K_BCM1480_INT_LDT_INIT _BCM1480_INT_LOW(34)
  123. #define K_BCM1480_INT_LDT_STARTUP _BCM1480_INT_LOW(35)
  124. #define K_BCM1480_INT_LDT_EXT _BCM1480_INT_LOW(36)
  125. #define K_BCM1480_INT_SMB_0 _BCM1480_INT_LOW(40)
  126. #define K_BCM1480_INT_SMB_1 _BCM1480_INT_LOW(41)
  127. #define K_BCM1480_INT_PCMCIA _BCM1480_INT_LOW(42)
  128. #define K_BCM1480_INT_UART_0 _BCM1480_INT_LOW(44)
  129. #define K_BCM1480_INT_UART_1 _BCM1480_INT_LOW(45)
  130. #define K_BCM1480_INT_UART_2 _BCM1480_INT_LOW(46)
  131. #define K_BCM1480_INT_UART_3 _BCM1480_INT_LOW(47)
  132. #define K_BCM1480_INT_GPIO_4 _BCM1480_INT_LOW(52)
  133. #define K_BCM1480_INT_GPIO_5 _BCM1480_INT_LOW(53)
  134. #define K_BCM1480_INT_GPIO_6 _BCM1480_INT_LOW(54)
  135. #define K_BCM1480_INT_GPIO_7 _BCM1480_INT_LOW(55)
  136. #define K_BCM1480_INT_GPIO_8 _BCM1480_INT_LOW(56)
  137. #define K_BCM1480_INT_GPIO_9 _BCM1480_INT_LOW(57)
  138. #define K_BCM1480_INT_GPIO_10 _BCM1480_INT_LOW(58)
  139. #define K_BCM1480_INT_GPIO_11 _BCM1480_INT_LOW(59)
  140. #define K_BCM1480_INT_GPIO_12 _BCM1480_INT_LOW(60)
  141. #define K_BCM1480_INT_GPIO_13 _BCM1480_INT_LOW(61)
  142. #define K_BCM1480_INT_GPIO_14 _BCM1480_INT_LOW(62)
  143. #define K_BCM1480_INT_GPIO_15 _BCM1480_INT_LOW(63)
  144. /*
  145. * Mask values for each interrupt
  146. */
  147. #define _BCM1480_INT_MASK(w, n) _SB_MAKEMASK(w, ((n) & 0x3F))
  148. #define _BCM1480_INT_MASK1(n) _SB_MAKEMASK1(((n) & 0x3F))
  149. #define _BCM1480_INT_OFFSET(n) (((n) & 0x40) << 6)
  150. #define M_BCM1480_INT_CASCADE _BCM1480_INT_MASK1(_BCM1480_INT_HIGH(0))
  151. #define M_BCM1480_INT_ADDR_TRAP _BCM1480_INT_MASK1(K_BCM1480_INT_ADDR_TRAP)
  152. #define M_BCM1480_INT_GPIO_0 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_0)
  153. #define M_BCM1480_INT_GPIO_1 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_1)
  154. #define M_BCM1480_INT_GPIO_2 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_2)
  155. #define M_BCM1480_INT_GPIO_3 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_3)
  156. #define M_BCM1480_INT_PCI_INTA _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTA)
  157. #define M_BCM1480_INT_PCI_INTB _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTB)
  158. #define M_BCM1480_INT_PCI_INTC _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTC)
  159. #define M_BCM1480_INT_PCI_INTD _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTD)
  160. #define M_BCM1480_INT_CYCLE_CP0 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP0)
  161. #define M_BCM1480_INT_CYCLE_CP1 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP1)
  162. #define M_BCM1480_INT_CYCLE_CP2 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP2)
  163. #define M_BCM1480_INT_CYCLE_CP3 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP3)
  164. #define M_BCM1480_INT_TIMER_0 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_0)
  165. #define M_BCM1480_INT_TIMER_1 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_1)
  166. #define M_BCM1480_INT_TIMER_2 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_2)
  167. #define M_BCM1480_INT_TIMER_3 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_3)
  168. #define M_BCM1480_INT_DM_CH_0 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_0)
  169. #define M_BCM1480_INT_DM_CH_1 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_1)
  170. #define M_BCM1480_INT_DM_CH_2 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_2)
  171. #define M_BCM1480_INT_DM_CH_3 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_3)
  172. #define M_BCM1480_INT_MAC_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_0)
  173. #define M_BCM1480_INT_MAC_0_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_0_CH1)
  174. #define M_BCM1480_INT_MAC_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_1)
  175. #define M_BCM1480_INT_MAC_1_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_1_CH1)
  176. #define M_BCM1480_INT_MAC_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_2)
  177. #define M_BCM1480_INT_MAC_2_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_2_CH1)
  178. #define M_BCM1480_INT_MAC_3 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_3)
  179. #define M_BCM1480_INT_MAC_3_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_3_CH1)
  180. #define M_BCM1480_INT_PMI_LOW _BCM1480_INT_MASK1(K_BCM1480_INT_PMI_LOW)
  181. #define M_BCM1480_INT_PMI_HIGH _BCM1480_INT_MASK1(K_BCM1480_INT_PMI_HIGH)
  182. #define M_BCM1480_INT_PMO_LOW _BCM1480_INT_MASK1(K_BCM1480_INT_PMO_LOW)
  183. #define M_BCM1480_INT_PMO_HIGH _BCM1480_INT_MASK1(K_BCM1480_INT_PMO_HIGH)
  184. #define M_BCM1480_INT_MBOX_ALL _BCM1480_INT_MASK(8, K_BCM1480_INT_MBOX_0_0)
  185. #define M_BCM1480_INT_MBOX_0_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_0)
  186. #define M_BCM1480_INT_MBOX_0_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_1)
  187. #define M_BCM1480_INT_MBOX_0_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_2)
  188. #define M_BCM1480_INT_MBOX_0_3 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_3)
  189. #define M_BCM1480_INT_MBOX_1_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_0)
  190. #define M_BCM1480_INT_MBOX_1_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_1)
  191. #define M_BCM1480_INT_MBOX_1_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_2)
  192. #define M_BCM1480_INT_MBOX_1_3 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_3)
  193. #define M_BCM1480_INT_BAD_ECC _BCM1480_INT_MASK1(K_BCM1480_INT_BAD_ECC)
  194. #define M_BCM1480_INT_COR_ECC _BCM1480_INT_MASK1(K_BCM1480_INT_COR_ECC)
  195. #define M_BCM1480_INT_IO_BUS _BCM1480_INT_MASK1(K_BCM1480_INT_IO_BUS)
  196. #define M_BCM1480_INT_PERF_CNT _BCM1480_INT_MASK1(K_BCM1480_INT_PERF_CNT)
  197. #define M_BCM1480_INT_SW_PERF_CNT _BCM1480_INT_MASK1(K_BCM1480_INT_SW_PERF_CNT)
  198. #define M_BCM1480_INT_TRACE_FREEZE _BCM1480_INT_MASK1(K_BCM1480_INT_TRACE_FREEZE)
  199. #define M_BCM1480_INT_SW_TRACE_FREEZE _BCM1480_INT_MASK1(K_BCM1480_INT_SW_TRACE_FREEZE)
  200. #define M_BCM1480_INT_WATCHDOG_TIMER_0 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_0)
  201. #define M_BCM1480_INT_WATCHDOG_TIMER_1 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_1)
  202. #define M_BCM1480_INT_WATCHDOG_TIMER_2 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_2)
  203. #define M_BCM1480_INT_WATCHDOG_TIMER_3 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_3)
  204. #define M_BCM1480_INT_PCI_ERROR _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_ERROR)
  205. #define M_BCM1480_INT_PCI_RESET _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_RESET)
  206. #define M_BCM1480_INT_NODE_CONTROLLER _BCM1480_INT_MASK1(K_BCM1480_INT_NODE_CONTROLLER)
  207. #define M_BCM1480_INT_HOST_BRIDGE _BCM1480_INT_MASK1(K_BCM1480_INT_HOST_BRIDGE)
  208. #define M_BCM1480_INT_PORT_0_FATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_0_FATAL)
  209. #define M_BCM1480_INT_PORT_0_NONFATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_0_NONFATAL)
  210. #define M_BCM1480_INT_PORT_1_FATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_1_FATAL)
  211. #define M_BCM1480_INT_PORT_1_NONFATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_1_NONFATAL)
  212. #define M_BCM1480_INT_PORT_2_FATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_2_FATAL)
  213. #define M_BCM1480_INT_PORT_2_NONFATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_2_NONFATAL)
  214. #define M_BCM1480_INT_LDT_SMI _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_SMI)
  215. #define M_BCM1480_INT_LDT_NMI _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_NMI)
  216. #define M_BCM1480_INT_LDT_INIT _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_INIT)
  217. #define M_BCM1480_INT_LDT_STARTUP _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_STARTUP)
  218. #define M_BCM1480_INT_LDT_EXT _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_EXT)
  219. #define M_BCM1480_INT_SMB_0 _BCM1480_INT_MASK1(K_BCM1480_INT_SMB_0)
  220. #define M_BCM1480_INT_SMB_1 _BCM1480_INT_MASK1(K_BCM1480_INT_SMB_1)
  221. #define M_BCM1480_INT_PCMCIA _BCM1480_INT_MASK1(K_BCM1480_INT_PCMCIA)
  222. #define M_BCM1480_INT_UART_0 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_0)
  223. #define M_BCM1480_INT_UART_1 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_1)
  224. #define M_BCM1480_INT_UART_2 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_2)
  225. #define M_BCM1480_INT_UART_3 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_3)
  226. #define M_BCM1480_INT_GPIO_4 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_4)
  227. #define M_BCM1480_INT_GPIO_5 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_5)
  228. #define M_BCM1480_INT_GPIO_6 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_6)
  229. #define M_BCM1480_INT_GPIO_7 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_7)
  230. #define M_BCM1480_INT_GPIO_8 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_8)
  231. #define M_BCM1480_INT_GPIO_9 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_9)
  232. #define M_BCM1480_INT_GPIO_10 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_10)
  233. #define M_BCM1480_INT_GPIO_11 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_11)
  234. #define M_BCM1480_INT_GPIO_12 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_12)
  235. #define M_BCM1480_INT_GPIO_13 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_13)
  236. #define M_BCM1480_INT_GPIO_14 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_14)
  237. #define M_BCM1480_INT_GPIO_15 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_15)
  238. /*
  239. * Interrupt mappings (Table 18)
  240. */
  241. #define K_BCM1480_INT_MAP_I0 0 /* interrupt pins on processor */
  242. #define K_BCM1480_INT_MAP_I1 1
  243. #define K_BCM1480_INT_MAP_I2 2
  244. #define K_BCM1480_INT_MAP_I3 3
  245. #define K_BCM1480_INT_MAP_I4 4
  246. #define K_BCM1480_INT_MAP_I5 5
  247. #define K_BCM1480_INT_MAP_NMI 6 /* nonmaskable */
  248. #define K_BCM1480_INT_MAP_DINT 7 /* debug interrupt */
  249. /*
  250. * Interrupt LDT Set Register (Table 19)
  251. */
  252. #define S_BCM1480_INT_HT_INTMSG 0
  253. #define M_BCM1480_INT_HT_INTMSG _SB_MAKEMASK(3, S_BCM1480_INT_HT_INTMSG)
  254. #define V_BCM1480_INT_HT_INTMSG(x) _SB_MAKEVALUE(x, S_BCM1480_INT_HT_INTMSG)
  255. #define G_BCM1480_INT_HT_INTMSG(x) _SB_GETVALUE(x, S_BCM1480_INT_HT_INTMSG, M_BCM1480_INT_HT_INTMSG)
  256. #define K_BCM1480_INT_HT_INTMSG_FIXED 0
  257. #define K_BCM1480_INT_HT_INTMSG_ARBITRATED 1
  258. #define K_BCM1480_INT_HT_INTMSG_SMI 2
  259. #define K_BCM1480_INT_HT_INTMSG_NMI 3
  260. #define K_BCM1480_INT_HT_INTMSG_INIT 4
  261. #define K_BCM1480_INT_HT_INTMSG_STARTUP 5
  262. #define K_BCM1480_INT_HT_INTMSG_EXTINT 6
  263. #define K_BCM1480_INT_HT_INTMSG_RESERVED 7
  264. #define M_BCM1480_INT_HT_TRIGGERMODE _SB_MAKEMASK1(3)
  265. #define V_BCM1480_INT_HT_EDGETRIGGER 0
  266. #define V_BCM1480_INT_HT_LEVELTRIGGER M_BCM1480_INT_HT_TRIGGERMODE
  267. #define M_BCM1480_INT_HT_DESTMODE _SB_MAKEMASK1(4)
  268. #define V_BCM1480_INT_HT_PHYSICALDEST 0
  269. #define V_BCM1480_INT_HT_LOGICALDEST M_BCM1480_INT_HT_DESTMODE
  270. #define S_BCM1480_INT_HT_INTDEST 5
  271. #define M_BCM1480_INT_HT_INTDEST _SB_MAKEMASK(8, S_BCM1480_INT_HT_INTDEST)
  272. #define V_BCM1480_INT_HT_INTDEST(x) _SB_MAKEVALUE(x, S_BCM1480_INT_HT_INTDEST)
  273. #define G_BCM1480_INT_HT_INTDEST(x) _SB_GETVALUE(x, S_BCM1480_INT_HT_INTDEST, M_BCM1480_INT_HT_INTDEST)
  274. #define S_BCM1480_INT_HT_VECTOR 13
  275. #define M_BCM1480_INT_HT_VECTOR _SB_MAKEMASK(8, S_BCM1480_INT_HT_VECTOR)
  276. #define V_BCM1480_INT_HT_VECTOR(x) _SB_MAKEVALUE(x, S_BCM1480_INT_HT_VECTOR)
  277. #define G_BCM1480_INT_HT_VECTOR(x) _SB_GETVALUE(x, S_BCM1480_INT_HT_VECTOR, M_BCM1480_INT_HT_VECTOR)
  278. /*
  279. * Vector prefix (Table 4-7)
  280. */
  281. #define M_BCM1480_HTVECT_RAISE_INTLDT_HIGH 0x00
  282. #define M_BCM1480_HTVECT_RAISE_MBOX_0 0x40
  283. #define M_BCM1480_HTVECT_RAISE_INTLDT_LO 0x80
  284. #define M_BCM1480_HTVECT_RAISE_MBOX_1 0xC0
  285. #endif /* _BCM1480_INT_H */