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