1 // THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT
2 
3 /**
4  * Copyright (c) 2024 Raspberry Pi Ltd.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 #ifndef _INTCTRL_H
9 #define _INTCTRL_H
10 
11 /**
12  * \file rp2040/intctrl.h
13  */
14 
15 #ifdef __ASSEMBLER__
16 #define TIMER_IRQ_0 0
17 #define TIMER_IRQ_1 1
18 #define TIMER_IRQ_2 2
19 #define TIMER_IRQ_3 3
20 #define PWM_IRQ_WRAP 4
21 #define USBCTRL_IRQ 5
22 #define XIP_IRQ 6
23 #define PIO0_IRQ_0 7
24 #define PIO0_IRQ_1 8
25 #define PIO1_IRQ_0 9
26 #define PIO1_IRQ_1 10
27 #define DMA_IRQ_0 11
28 #define DMA_IRQ_1 12
29 #define IO_IRQ_BANK0 13
30 #define IO_IRQ_QSPI 14
31 #define SIO_IRQ_PROC0 15
32 #define SIO_IRQ_PROC1 16
33 #define CLOCKS_IRQ 17
34 #define SPI0_IRQ 18
35 #define SPI1_IRQ 19
36 #define UART0_IRQ 20
37 #define UART1_IRQ 21
38 #define ADC_IRQ_FIFO 22
39 #define I2C0_IRQ 23
40 #define I2C1_IRQ 24
41 #define RTC_IRQ 25
42 #else
43 /**
44  * \brief Interrupt numbers on RP2040 (used as typedef \ref irq_num_t)
45  * \ingroup hardware_irq
46  */
47 typedef enum irq_num_rp2040 {
48     TIMER_IRQ_0 = 0, ///< Select TIMER's IRQ 0 output
49     TIMER_IRQ_1 = 1, ///< Select TIMER's IRQ 1 output
50     TIMER_IRQ_2 = 2, ///< Select TIMER's IRQ 2 output
51     TIMER_IRQ_3 = 3, ///< Select TIMER's IRQ 3 output
52     PWM_IRQ_WRAP = 4, ///< Select PWM's IRQ_WRAP output
53     USBCTRL_IRQ = 5, ///< Select USBCTRL's IRQ output
54     XIP_IRQ = 6, ///< Select XIP's IRQ output
55     PIO0_IRQ_0 = 7, ///< Select PIO0's IRQ 0 output
56     PIO0_IRQ_1 = 8, ///< Select PIO0's IRQ 1 output
57     PIO1_IRQ_0 = 9, ///< Select PIO1's IRQ 0 output
58     PIO1_IRQ_1 = 10, ///< Select PIO1's IRQ 1 output
59     DMA_IRQ_0 = 11, ///< Select DMA's IRQ 0 output
60     DMA_IRQ_1 = 12, ///< Select DMA's IRQ 1 output
61     IO_IRQ_BANK0 = 13, ///< Select IO_BANK0's IRQ output
62     IO_IRQ_QSPI = 14, ///< Select IO_QSPI's IRQ output
63     SIO_IRQ_PROC0 = 15, ///< Select SIO_PROC0's IRQ output
64     SIO_IRQ_PROC1 = 16, ///< Select SIO_PROC1's IRQ output
65     CLOCKS_IRQ = 17, ///< Select CLOCKS's IRQ output
66     SPI0_IRQ = 18, ///< Select SPI0's IRQ output
67     SPI1_IRQ = 19, ///< Select SPI1's IRQ output
68     UART0_IRQ = 20, ///< Select UART0's IRQ output
69     UART1_IRQ = 21, ///< Select UART1's IRQ output
70     ADC_IRQ_FIFO = 22, ///< Select ADC's IRQ_FIFO output
71     I2C0_IRQ = 23, ///< Select I2C0's IRQ output
72     I2C1_IRQ = 24, ///< Select I2C1's IRQ output
73     RTC_IRQ = 25, ///< Select RTC's IRQ output
74     IRQ_COUNT
75 } irq_num_t;
76 #endif
77 
78 #define isr_timer_0 isr_irq0
79 #define isr_timer_1 isr_irq1
80 #define isr_timer_2 isr_irq2
81 #define isr_timer_3 isr_irq3
82 #define isr_pwm_wrap isr_irq4
83 #define isr_usbctrl isr_irq5
84 #define isr_xip isr_irq6
85 #define isr_pio0_0 isr_irq7
86 #define isr_pio0_1 isr_irq8
87 #define isr_pio1_0 isr_irq9
88 #define isr_pio1_1 isr_irq10
89 #define isr_dma_0 isr_irq11
90 #define isr_dma_1 isr_irq12
91 #define isr_io_bank0 isr_irq13
92 #define isr_io_qspi isr_irq14
93 #define isr_sio_proc0 isr_irq15
94 #define isr_sio_proc1 isr_irq16
95 #define isr_clocks isr_irq17
96 #define isr_spi0 isr_irq18
97 #define isr_spi1 isr_irq19
98 #define isr_uart0 isr_irq20
99 #define isr_uart1 isr_irq21
100 #define isr_adc_fifo isr_irq22
101 #define isr_i2c0 isr_irq23
102 #define isr_i2c1 isr_irq24
103 #define isr_rtc isr_irq25
104 
105 #endif // _INTCTRL_H
106 
107