1 /*
2  * Copyright (c) 2019-2022 Arm Limited. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __PLATFORM_IRQ_H__
18 #define __PLATFORM_IRQ_H__
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 /* ======================================================================= */
25 /* ==================    Interrupt Number Definition ===================== */
26 /* ======================================================================= */
27 
28 
29 typedef enum IRQn
30 {
31 /* ===============  Core Specific Interrupt Numbers  ====================== */
32   NonMaskableInt_IRQn       = -14,  /*  -14 Non Maskable Interrupt          */
33   HardFault_IRQn            = -13,  /*  -13 HardFault Interrupt             */
34   MemoryManagement_IRQn     = -12,  /*  -12 Memory Management Interrupt     */
35   BusFault_IRQn             = -11,  /*  -11 Bus Fault Interrupt             */
36   UsageFault_IRQn           = -10,  /*  -10 Usage Fault Interrupt           */
37   SecureFault_IRQn          =  -9,  /*  -9 Secure Fault Interrupt           */
38   SVCall_IRQn               =  -5,  /*  -5 SV Call Interrupt                */
39   DebugMonitor_IRQn         =  -4,  /*  -4 Debug Monitor Interrupt          */
40   PendSV_IRQn               =  -2,  /*  -2 Pend SV Interrupt                */
41   SysTick_IRQn              =  -1,  /*  -1 System Tick Interrupt            */
42 
43 /* =============  Musca Specific SSE-200 Interrupt Numbers  =============== */
44   NS_WATCHDOG_RESET_IRQn    =   0,  /*  Non-Secure Watchdog Reset Request
45                                      *  Interrupt                           */
46   NS_WATCHDOG_IRQn          =   1,  /*  Non-Secure Watchdog Interrupt       */
47   S32K_TIMER_IRQn           =   2,  /*  S32K Timer Interrupt                */
48   TIMER0_IRQn               =   3,  /*  CMSDK Timer 0 Interrupt             */
49   TIMER1_IRQn               =   4,  /*  CMSDK Timer 1 Interrupt             */
50   DUALTIMER_IRQn            =   5,  /*  CMSDK Dual Timer Interrupt          */
51   MHU0_IRQn                 =   6,  /*  Message Handling Unit 0 Interrupt   */
52   MHU1_IRQn                 =   7,  /*  Message Handling Unit 1 Interrupt   */
53   CRYPTOCELL_IRQn           =   8,  /*  CryptoCell-312 Interrupt            */
54   S_MPC_COMBINED_IRQn       =   9,  /*  Secure Combined MPC Interrupt       */
55   S_PPC_COMBINED_IRQn       =   10, /*  Secure Combined PPC Interrupt       */
56   S_MSC_COMBINED_IRQn       =   11, /*  Secure Combined MSC Interrupt       */
57   S_BRIDGE_ERR_IRQn         =   12, /*  Secure Bridge Error Combined
58                                      *  Interrupt                           */
59   I_CACHE_INV_ERR_IRQn      =   13, /*  Instruction Cache Invalidation
60                                      *  Interrupt                           */
61   /* Reserved               =   14,     Reserved                            */
62   SYS_PPU_IRQn              =   15, /*  System PPU Interrupt                */
63   CPU0_PPU_IRQn             =   16, /*  CPU0 PPU Interrupt                  */
64   CPU1_PPU_IRQn             =   17, /*  CPU1 PPU Interrupt                  */
65   CPU0_DGB_PPU_IRQn         =   18, /*  CPU0 Debug PPU Interrupt            */
66   CPU1_DGB_PPU_IRQn         =   19, /*  CPU1 Debug PPU Interrupt            */
67   CRYPTOCELL_PPU_IRQn       =   20, /*  CryptoCell PPU Interrupt            */
68   /* Reserved               =   21,     Reserved                            */
69   RAM0_PPU_IRQn             =   22, /*  RAM 0 PPU Interrupt                 */
70   RAM1_PPU_IRQn             =   23, /*  RAM 1 PPU Interrupt                 */
71   RAM2_PPU_IRQn             =   24, /*  RAM 2 PPU Interrupt                 */
72   RAM3_PPU_IRQn             =   25, /*  RAM 3 PPU Interrupt                 */
73   DEBUG_PPU_IRQn            =   26, /*  Debug PPU Interrupt                 */
74   /* Reserved               =   27,     Reserved                            */
75   CPU0_CTI_IRQn             =   28, /*  CPU0 CTI Interrupt                  */
76   CPU1_CTI_IRQn             =   29, /*  CPU1 CTI Interrupt                  */
77   /* Reserved               =   30,     Reserved                            */
78   /* Reserved               =   31,     Reserved                            */
79 /* ============  Musca Specific Expansion Interrupt Numbers  ============== */
80   /* None                   =   32,     Not used. Tied to 0                 */
81   GpTimer_IRQn              =   33, /*  General Purpose Timer Interrupt     */
82   I2C0_IRQn                 =   34, /*  I2C0 Interrupt                      */
83   I2C1_IRQn                 =   35, /*  I2C1 Interrupt                      */
84   I2S_IRQn                  =   36, /*  I2S Interrupt                       */
85   SPI_IRQn                  =   37, /*  SPI Interrupt                       */
86   QSPI_IRQn                 =   38, /*  QSPI Interrupt                      */
87   UART0_Rx_IRQn             =   39, /*  UART0 receive FIFO interrupt        */
88   UART0_Tx_IRQn             =   40, /*  UART0 transmit FIFO interrupt       */
89   UART0_RxTimeout_IRQn      =   41, /*  UART0 receive timeout interrupt     */
90   UART0_ModemStatus_IRQn    =   42, /*  UART0 modem status interrupt        */
91   UART0_Error_IRQn          =   43, /*  UART0 error interrupt               */
92   UART0_IRQn                =   44, /*  UART0 interrupt                     */
93   UART1_Rx_IRQn             =   45, /*  UART1 receive FIFO interrupt        */
94   UART1_Tx_IRQn             =   46, /*  UART1 transmit FIFO interrupt       */
95   UART1_RxTimeout_IRQn      =   47, /*  UART1 receive timeout interrupt     */
96   UART1_ModemStatus_IRQn    =   48, /*  UART1 modem status interrupt        */
97   UART1_Error_IRQn          =   49, /*  UART1 error interrupt               */
98   UART1_IRQn                =   50, /*  UART1 interrupt                     */
99   GPIO_0_IRQn               =   51, /*  GPIO 0 interrupt                    */
100   GPIO_1_IRQn               =   52, /*  GPIO 1 interrupt                    */
101   GPIO_2_IRQn               =   53, /*  GPIO 2 interrupt                    */
102   GPIO_3_IRQn               =   54, /*  GPIO 3 interrupt                    */
103   GPIO_4_IRQn               =   55, /*  GPIO 4 interrupt                    */
104   GPIO_5_IRQn               =   56, /*  GPIO 5 interrupt                    */
105   GPIO_6_IRQn               =   57, /*  GPIO 6 interrupt                    */
106   GPIO_7_IRQn               =   58, /*  GPIO 7 interrupt                    */
107   GPIO_8_IRQn               =   59, /*  GPIO 8 interrupt                    */
108   GPIO_9_IRQn               =   60, /*  GPIO 9 interrupt                    */
109   GPIO_10_IRQn              =   61, /*  GPIO 10 interrupt                   */
110   GPIO_11_IRQn              =   62, /*  GPIO 11 interrupt                   */
111   GPIO_12_IRQn              =   63, /*  GPIO 12 interrupt                   */
112   GPIO_13_IRQn              =   64, /*  GPIO 13 interrupt                   */
113   GPIO_14_IRQn              =   65, /*  GPIO 14 interrupt                   */
114   GPIO_15_IRQn              =   66, /*  GPIO 15 interrupt                   */
115   Combined_IRQn             =   67, /*  Combined interrupt                  */
116   PVT_IRQn                  =   68, /*  PVT sensor interrupt                */
117   /* Reserved               =   69,     Reserved                            */
118   PWM_0_IRQn                =   70, /*  PWM0 interrupt                      */
119   RTC_IRQn                  =   71, /*  RTC interrupt                       */
120   GpTimer1_IRQn             =   72, /*  General Purpose Timer Alarm1
121                                      *  Interrupt                           */
122   GpTimer0_IRQn             =   73, /*  General Purpose Timer Alarm0
123                                      *  Interrupt                           */
124   PWM_1_IRQn                =   74, /*  PWM1 interrupt                      */
125   PWM_2_IRQn                =   75, /*  PWM2 interrupt                      */
126   IOMUX_IRQn                =   76, /*  IOMUX interrupt                     */
127   TFM_FPU_S_TEST_IRQn       =   77, /*  TFM FPU Secure Test Interrupt       */
128   TFM_FPU_NS_TEST_IRQn      =   78, /*  TFM FPU Non-Secure Test Interrupt   */
129 } IRQn_Type;
130 
131 #ifdef __cplusplus
132 }
133 #endif
134 
135 #endif  /* __PLATFORM_IRQ_H__ */
136