Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*  *********************************************************************
0003     *  SB1250 Board Support Package
0004     *
0005     *  Interrupt Mapper definitions     File: sb1250_int.h
0006     *
0007     *  This module contains constants for manipulating the SB1250's
0008     *  interrupt mapper and definitions for the interrupt sources.
0009     *
0010     *  SB1250 specification level:  User's manual 1/02/02
0011     *
0012     *********************************************************************
0013     *
0014     *  Copyright 2000, 2001, 2002, 2003
0015     *  Broadcom Corporation. All rights reserved.
0016     *
0017     ********************************************************************* */
0018 
0019 
0020 #ifndef _SB1250_INT_H
0021 #define _SB1250_INT_H
0022 
0023 #include <asm/sibyte/sb1250_defs.h>
0024 
0025 /*  *********************************************************************
0026     *  Interrupt Mapper Constants
0027     ********************************************************************* */
0028 
0029 /*
0030  * Interrupt sources (Table 4-8, UM 0.2)
0031  *
0032  * First, the interrupt numbers.
0033  */
0034 
0035 #define K_INT_SOURCES           64
0036 
0037 #define K_INT_WATCHDOG_TIMER_0      0
0038 #define K_INT_WATCHDOG_TIMER_1      1
0039 #define K_INT_TIMER_0           2
0040 #define K_INT_TIMER_1           3
0041 #define K_INT_TIMER_2           4
0042 #define K_INT_TIMER_3           5
0043 #define K_INT_SMB_0         6
0044 #define K_INT_SMB_1         7
0045 #define K_INT_UART_0            8
0046 #define K_INT_UART_1            9
0047 #define K_INT_SER_0         10
0048 #define K_INT_SER_1         11
0049 #define K_INT_PCMCIA            12
0050 #define K_INT_ADDR_TRAP         13
0051 #define K_INT_PERF_CNT          14
0052 #define K_INT_TRACE_FREEZE      15
0053 #define K_INT_BAD_ECC           16
0054 #define K_INT_COR_ECC           17
0055 #define K_INT_IO_BUS            18
0056 #define K_INT_MAC_0         19
0057 #define K_INT_MAC_1         20
0058 #define K_INT_MAC_2         21
0059 #define K_INT_DM_CH_0           22
0060 #define K_INT_DM_CH_1           23
0061 #define K_INT_DM_CH_2           24
0062 #define K_INT_DM_CH_3           25
0063 #define K_INT_MBOX_0            26
0064 #define K_INT_MBOX_1            27
0065 #define K_INT_MBOX_2            28
0066 #define K_INT_MBOX_3            29
0067 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
0068 #define K_INT_CYCLE_CP0_INT     30
0069 #define K_INT_CYCLE_CP1_INT     31
0070 #endif /* 1250 PASS2 || 112x PASS1 */
0071 #define K_INT_GPIO_0            32
0072 #define K_INT_GPIO_1            33
0073 #define K_INT_GPIO_2            34
0074 #define K_INT_GPIO_3            35
0075 #define K_INT_GPIO_4            36
0076 #define K_INT_GPIO_5            37
0077 #define K_INT_GPIO_6            38
0078 #define K_INT_GPIO_7            39
0079 #define K_INT_GPIO_8            40
0080 #define K_INT_GPIO_9            41
0081 #define K_INT_GPIO_10           42
0082 #define K_INT_GPIO_11           43
0083 #define K_INT_GPIO_12           44
0084 #define K_INT_GPIO_13           45
0085 #define K_INT_GPIO_14           46
0086 #define K_INT_GPIO_15           47
0087 #define K_INT_LDT_FATAL         48
0088 #define K_INT_LDT_NONFATAL      49
0089 #define K_INT_LDT_SMI           50
0090 #define K_INT_LDT_NMI           51
0091 #define K_INT_LDT_INIT          52
0092 #define K_INT_LDT_STARTUP       53
0093 #define K_INT_LDT_EXT           54
0094 #define K_INT_PCI_ERROR         55
0095 #define K_INT_PCI_INTA          56
0096 #define K_INT_PCI_INTB          57
0097 #define K_INT_PCI_INTC          58
0098 #define K_INT_PCI_INTD          59
0099 #define K_INT_SPARE_2           60
0100 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
0101 #define K_INT_MAC_0_CH1         61
0102 #define K_INT_MAC_1_CH1         62
0103 #define K_INT_MAC_2_CH1         63
0104 #endif /* 1250 PASS2 || 112x PASS1 */
0105 
0106 /*
0107  * Mask values for each interrupt
0108  */
0109 
0110 #define M_INT_WATCHDOG_TIMER_0      _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_0)
0111 #define M_INT_WATCHDOG_TIMER_1      _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_1)
0112 #define M_INT_TIMER_0           _SB_MAKEMASK1(K_INT_TIMER_0)
0113 #define M_INT_TIMER_1           _SB_MAKEMASK1(K_INT_TIMER_1)
0114 #define M_INT_TIMER_2           _SB_MAKEMASK1(K_INT_TIMER_2)
0115 #define M_INT_TIMER_3           _SB_MAKEMASK1(K_INT_TIMER_3)
0116 #define M_INT_SMB_0         _SB_MAKEMASK1(K_INT_SMB_0)
0117 #define M_INT_SMB_1         _SB_MAKEMASK1(K_INT_SMB_1)
0118 #define M_INT_UART_0            _SB_MAKEMASK1(K_INT_UART_0)
0119 #define M_INT_UART_1            _SB_MAKEMASK1(K_INT_UART_1)
0120 #define M_INT_SER_0         _SB_MAKEMASK1(K_INT_SER_0)
0121 #define M_INT_SER_1         _SB_MAKEMASK1(K_INT_SER_1)
0122 #define M_INT_PCMCIA            _SB_MAKEMASK1(K_INT_PCMCIA)
0123 #define M_INT_ADDR_TRAP         _SB_MAKEMASK1(K_INT_ADDR_TRAP)
0124 #define M_INT_PERF_CNT          _SB_MAKEMASK1(K_INT_PERF_CNT)
0125 #define M_INT_TRACE_FREEZE      _SB_MAKEMASK1(K_INT_TRACE_FREEZE)
0126 #define M_INT_BAD_ECC           _SB_MAKEMASK1(K_INT_BAD_ECC)
0127 #define M_INT_COR_ECC           _SB_MAKEMASK1(K_INT_COR_ECC)
0128 #define M_INT_IO_BUS            _SB_MAKEMASK1(K_INT_IO_BUS)
0129 #define M_INT_MAC_0         _SB_MAKEMASK1(K_INT_MAC_0)
0130 #define M_INT_MAC_1         _SB_MAKEMASK1(K_INT_MAC_1)
0131 #define M_INT_MAC_2         _SB_MAKEMASK1(K_INT_MAC_2)
0132 #define M_INT_DM_CH_0           _SB_MAKEMASK1(K_INT_DM_CH_0)
0133 #define M_INT_DM_CH_1           _SB_MAKEMASK1(K_INT_DM_CH_1)
0134 #define M_INT_DM_CH_2           _SB_MAKEMASK1(K_INT_DM_CH_2)
0135 #define M_INT_DM_CH_3           _SB_MAKEMASK1(K_INT_DM_CH_3)
0136 #define M_INT_MBOX_0            _SB_MAKEMASK1(K_INT_MBOX_0)
0137 #define M_INT_MBOX_1            _SB_MAKEMASK1(K_INT_MBOX_1)
0138 #define M_INT_MBOX_2            _SB_MAKEMASK1(K_INT_MBOX_2)
0139 #define M_INT_MBOX_3            _SB_MAKEMASK1(K_INT_MBOX_3)
0140 #define M_INT_MBOX_ALL          _SB_MAKEMASK(4, K_INT_MBOX_0)
0141 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
0142 #define M_INT_CYCLE_CP0_INT     _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
0143 #define M_INT_CYCLE_CP1_INT     _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
0144 #endif /* 1250 PASS2 || 112x PASS1 */
0145 #define M_INT_GPIO_0            _SB_MAKEMASK1(K_INT_GPIO_0)
0146 #define M_INT_GPIO_1            _SB_MAKEMASK1(K_INT_GPIO_1)
0147 #define M_INT_GPIO_2            _SB_MAKEMASK1(K_INT_GPIO_2)
0148 #define M_INT_GPIO_3            _SB_MAKEMASK1(K_INT_GPIO_3)
0149 #define M_INT_GPIO_4            _SB_MAKEMASK1(K_INT_GPIO_4)
0150 #define M_INT_GPIO_5            _SB_MAKEMASK1(K_INT_GPIO_5)
0151 #define M_INT_GPIO_6            _SB_MAKEMASK1(K_INT_GPIO_6)
0152 #define M_INT_GPIO_7            _SB_MAKEMASK1(K_INT_GPIO_7)
0153 #define M_INT_GPIO_8            _SB_MAKEMASK1(K_INT_GPIO_8)
0154 #define M_INT_GPIO_9            _SB_MAKEMASK1(K_INT_GPIO_9)
0155 #define M_INT_GPIO_10           _SB_MAKEMASK1(K_INT_GPIO_10)
0156 #define M_INT_GPIO_11           _SB_MAKEMASK1(K_INT_GPIO_11)
0157 #define M_INT_GPIO_12           _SB_MAKEMASK1(K_INT_GPIO_12)
0158 #define M_INT_GPIO_13           _SB_MAKEMASK1(K_INT_GPIO_13)
0159 #define M_INT_GPIO_14           _SB_MAKEMASK1(K_INT_GPIO_14)
0160 #define M_INT_GPIO_15           _SB_MAKEMASK1(K_INT_GPIO_15)
0161 #define M_INT_LDT_FATAL         _SB_MAKEMASK1(K_INT_LDT_FATAL)
0162 #define M_INT_LDT_NONFATAL      _SB_MAKEMASK1(K_INT_LDT_NONFATAL)
0163 #define M_INT_LDT_SMI           _SB_MAKEMASK1(K_INT_LDT_SMI)
0164 #define M_INT_LDT_NMI           _SB_MAKEMASK1(K_INT_LDT_NMI)
0165 #define M_INT_LDT_INIT          _SB_MAKEMASK1(K_INT_LDT_INIT)
0166 #define M_INT_LDT_STARTUP       _SB_MAKEMASK1(K_INT_LDT_STARTUP)
0167 #define M_INT_LDT_EXT           _SB_MAKEMASK1(K_INT_LDT_EXT)
0168 #define M_INT_PCI_ERROR         _SB_MAKEMASK1(K_INT_PCI_ERROR)
0169 #define M_INT_PCI_INTA          _SB_MAKEMASK1(K_INT_PCI_INTA)
0170 #define M_INT_PCI_INTB          _SB_MAKEMASK1(K_INT_PCI_INTB)
0171 #define M_INT_PCI_INTC          _SB_MAKEMASK1(K_INT_PCI_INTC)
0172 #define M_INT_PCI_INTD          _SB_MAKEMASK1(K_INT_PCI_INTD)
0173 #define M_INT_SPARE_2           _SB_MAKEMASK1(K_INT_SPARE_2)
0174 #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
0175 #define M_INT_MAC_0_CH1         _SB_MAKEMASK1(K_INT_MAC_0_CH1)
0176 #define M_INT_MAC_1_CH1         _SB_MAKEMASK1(K_INT_MAC_1_CH1)
0177 #define M_INT_MAC_2_CH1         _SB_MAKEMASK1(K_INT_MAC_2_CH1)
0178 #endif /* 1250 PASS2 || 112x PASS1 */
0179 
0180 /*
0181  * Interrupt mappings
0182  */
0183 
0184 #define K_INT_MAP_I0    0       /* interrupt pins on processor */
0185 #define K_INT_MAP_I1    1
0186 #define K_INT_MAP_I2    2
0187 #define K_INT_MAP_I3    3
0188 #define K_INT_MAP_I4    4
0189 #define K_INT_MAP_I5    5
0190 #define K_INT_MAP_NMI   6       /* nonmaskable */
0191 #define K_INT_MAP_DINT  7       /* debug interrupt */
0192 
0193 /*
0194  * LDT Interrupt Set Register (table 4-5)
0195  */
0196 
0197 #define S_INT_LDT_INTMSG          0
0198 #define M_INT_LDT_INTMSG          _SB_MAKEMASK(3, S_INT_LDT_INTMSG)
0199 #define V_INT_LDT_INTMSG(x)       _SB_MAKEVALUE(x, S_INT_LDT_INTMSG)
0200 #define G_INT_LDT_INTMSG(x)       _SB_GETVALUE(x, S_INT_LDT_INTMSG, M_INT_LDT_INTMSG)
0201 
0202 #define K_INT_LDT_INTMSG_FIXED        0
0203 #define K_INT_LDT_INTMSG_ARBITRATED   1
0204 #define K_INT_LDT_INTMSG_SMI          2
0205 #define K_INT_LDT_INTMSG_NMI          3
0206 #define K_INT_LDT_INTMSG_INIT         4
0207 #define K_INT_LDT_INTMSG_STARTUP      5
0208 #define K_INT_LDT_INTMSG_EXTINT       6
0209 #define K_INT_LDT_INTMSG_RESERVED     7
0210 
0211 #define M_INT_LDT_EDGETRIGGER         0
0212 #define M_INT_LDT_LEVELTRIGGER        _SB_MAKEMASK1(3)
0213 
0214 #define M_INT_LDT_PHYSICALDEST        0
0215 #define M_INT_LDT_LOGICALDEST         _SB_MAKEMASK1(4)
0216 
0217 #define S_INT_LDT_INTDEST         5
0218 #define M_INT_LDT_INTDEST         _SB_MAKEMASK(10, S_INT_LDT_INTDEST)
0219 #define V_INT_LDT_INTDEST(x)          _SB_MAKEVALUE(x, S_INT_LDT_INTDEST)
0220 #define G_INT_LDT_INTDEST(x)          _SB_GETVALUE(x, S_INT_LDT_INTDEST, M_INT_LDT_INTDEST)
0221 
0222 #define S_INT_LDT_VECTOR          13
0223 #define M_INT_LDT_VECTOR          _SB_MAKEMASK(8, S_INT_LDT_VECTOR)
0224 #define V_INT_LDT_VECTOR(x)       _SB_MAKEVALUE(x, S_INT_LDT_VECTOR)
0225 #define G_INT_LDT_VECTOR(x)       _SB_GETVALUE(x, S_INT_LDT_VECTOR, M_INT_LDT_VECTOR)
0226 
0227 /*
0228  * Vector format (Table 4-6)
0229  */
0230 
0231 #define M_LDTVECT_RAISEINT      0x00
0232 #define M_LDTVECT_RAISEMBOX     0x40
0233 
0234 
0235 #endif  /* 1250/112x */