1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Defines for the MSP interrupt controller.
5 * Copyright (C) 1999 MIPS Technologies, Inc. All rights reserved.
6 * Author: Carsten Langgaard, carstenl@mips.com
8 * ########################################################################
10 * ########################################################################
13 #ifndef _MSP_SLP_INT_H
14 #define _MSP_SLP_INT_H
17 * The PMC-Sierra SLP interrupts are arranged in a 3 level cascaded
18 * hierarchical system. The first level are the direct MIPS interrupts
19 * and are assigned the interrupt range 0-7. The second level is the SLM
20 * interrupt controller and is assigned the range 8-39. The third level
21 * comprises the Peripherial block, the PCI block, the PCI MSI block and
22 * the SLP. The PCI interrupts and the SLP errors are handled by the
23 * relevant subsystems so the core interrupt code needs only concern
24 * itself with the Peripheral block. These are assigned interrupts in
29 * IRQs directly connected to CPU
31 #define MSP_MIPS_INTBASE 0
32 #define MSP_INT_SW0 0 /* IRQ for swint0, C_SW0 */
33 #define MSP_INT_SW1 1 /* IRQ for swint1, C_SW1 */
34 #define MSP_INT_MAC0 2 /* IRQ for MAC 0, C_IRQ0 */
35 #define MSP_INT_MAC1 3 /* IRQ for MAC 1, C_IRQ1 */
36 #define MSP_INT_C_IRQ2 4 /* Wired off, C_IRQ2 */
37 #define MSP_INT_VE 5 /* IRQ for Voice Engine, C_IRQ3 */
38 #define MSP_INT_SLP 6 /* IRQ for SLM block, C_IRQ4 */
39 #define MSP_INT_TIMER 7 /* IRQ for the MIPS timer, C_IRQ5 */
42 * IRQs cascaded on CPU interrupt 4 (CAUSE bit 12, C_IRQ4)
43 * These defines should be tied to the register definition for the SLM
44 * interrupt routine. For now, just use hard-coded values.
46 #define MSP_SLP_INTBASE (MSP_MIPS_INTBASE + 8)
47 #define MSP_INT_EXT0 (MSP_SLP_INTBASE + 0)
48 /* External interrupt 0 */
49 #define MSP_INT_EXT1 (MSP_SLP_INTBASE + 1)
50 /* External interrupt 1 */
51 #define MSP_INT_EXT2 (MSP_SLP_INTBASE + 2)
52 /* External interrupt 2 */
53 #define MSP_INT_EXT3 (MSP_SLP_INTBASE + 3)
54 /* External interrupt 3 */
58 *************************************************************************
59 * DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER *
60 * Some MSP produces have this interrupt labelled as Voice and some are *
62 *************************************************************************
64 #define MSP_INT_SLP_VE (MSP_SLP_INTBASE + 8)
65 /* Cascaded IRQ for Voice Engine*/
66 #define MSP_INT_SLP_TDM (MSP_SLP_INTBASE + 9)
68 #define MSP_INT_SLP_MAC0 (MSP_SLP_INTBASE + 10)
69 /* Cascaded IRQ for MAC 0 */
70 #define MSP_INT_SLP_MAC1 (MSP_SLP_INTBASE + 11)
71 /* Cascaded IRQ for MAC 1 */
72 #define MSP_INT_SEC (MSP_SLP_INTBASE + 12)
73 /* IRQ for security engine */
74 #define MSP_INT_PER (MSP_SLP_INTBASE + 13)
75 /* Peripheral interrupt */
76 #define MSP_INT_TIMER0 (MSP_SLP_INTBASE + 14)
78 #define MSP_INT_TIMER1 (MSP_SLP_INTBASE + 15)
80 #define MSP_INT_TIMER2 (MSP_SLP_INTBASE + 16)
82 #define MSP_INT_SLP_TIMER (MSP_SLP_INTBASE + 17)
83 /* Cascaded MIPS timer */
84 #define MSP_INT_BLKCP (MSP_SLP_INTBASE + 18)
86 #define MSP_INT_UART0 (MSP_SLP_INTBASE + 19)
88 #define MSP_INT_PCI (MSP_SLP_INTBASE + 20)
90 #define MSP_INT_PCI_DBELL (MSP_SLP_INTBASE + 21)
92 #define MSP_INT_PCI_MSI (MSP_SLP_INTBASE + 22)
93 /* PCI Message Signal */
94 #define MSP_INT_PCI_BC0 (MSP_SLP_INTBASE + 23)
95 /* PCI Block Copy 0 */
96 #define MSP_INT_PCI_BC1 (MSP_SLP_INTBASE + 24)
97 /* PCI Block Copy 1 */
98 #define MSP_INT_SLP_ERR (MSP_SLP_INTBASE + 25)
99 /* SLP error condition */
100 #define MSP_INT_MAC2 (MSP_SLP_INTBASE + 26)
105 * IRQs cascaded on SLP PER interrupt (MSP_INT_PER)
107 #define MSP_PER_INTBASE (MSP_SLP_INTBASE + 32)
109 #define MSP_INT_UART1 (MSP_PER_INTBASE + 2)
112 #define MSP_INT_2WIRE (MSP_PER_INTBASE + 6)
114 #define MSP_INT_TM0 (MSP_PER_INTBASE + 7)
115 /* Peripheral timer block out 0 */
116 #define MSP_INT_TM1 (MSP_PER_INTBASE + 8)
117 /* Peripheral timer block out 1 */
119 #define MSP_INT_SPRX (MSP_PER_INTBASE + 10)
120 /* SPI RX complete */
121 #define MSP_INT_SPTX (MSP_PER_INTBASE + 11)
122 /* SPI TX complete */
123 #define MSP_INT_GPIO (MSP_PER_INTBASE + 12)
125 #define MSP_INT_PER_ERR (MSP_PER_INTBASE + 13)
126 /* Peripheral error */
129 #endif /* !_MSP_SLP_INT_H */