1 /*
2 * Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6 
7 #ifndef BSP_ELC_H
8 #define BSP_ELC_H
9 
10 /*******************************************************************************************************************//**
11  * @addtogroup BSP_MCU_RA8M1
12  * @{
13  **********************************************************************************************************************/
14 
15 /***********************************************************************************************************************
16  * Macro definitions
17  **********************************************************************************************************************/
18 
19 /***********************************************************************************************************************
20  * Typedef definitions
21  **********************************************************************************************************************/
22 
23 /***********************************************************************************************************************
24  * Exported global variables
25  **********************************************************************************************************************/
26 
27 /***********************************************************************************************************************
28  * Exported global functions (to be accessed by other files)
29  **********************************************************************************************************************/
30 
31 /* UNCRUSTIFY-OFF */
32 
33 /** Sources of event signals to be linked to other peripherals or the CPU
34  * @note This list is device specific.
35  * */
36 typedef enum e_elc_event_ra8m1
37 {
38     ELC_EVENT_NONE                          = (0x0),   // Link disabled
39     ELC_EVENT_ICU_IRQ0                      = (0x001), // External pin interrupt 0
40     ELC_EVENT_ICU_IRQ1                      = (0x002), // External pin interrupt 1
41     ELC_EVENT_ICU_IRQ2                      = (0x003), // External pin interrupt 2
42     ELC_EVENT_ICU_IRQ3                      = (0x004), // External pin interrupt 3
43     ELC_EVENT_ICU_IRQ4                      = (0x005), // External pin interrupt 4
44     ELC_EVENT_ICU_IRQ5                      = (0x006), // External pin interrupt 5
45     ELC_EVENT_ICU_IRQ6                      = (0x007), // External pin interrupt 6
46     ELC_EVENT_ICU_IRQ7                      = (0x008), // External pin interrupt 7
47     ELC_EVENT_ICU_IRQ8                      = (0x009), // External pin interrupt 8
48     ELC_EVENT_ICU_IRQ9                      = (0x00A), // External pin interrupt 9
49     ELC_EVENT_ICU_IRQ10                     = (0x00B), // External pin interrupt 10
50     ELC_EVENT_ICU_IRQ11                     = (0x00C), // External pin interrupt 11
51     ELC_EVENT_ICU_IRQ12                     = (0x00D), // External pin interrupt 12
52     ELC_EVENT_ICU_IRQ13                     = (0x00E), // External pin interrupt 13
53     ELC_EVENT_ICU_IRQ14                     = (0x00F), // External pin interrupt 14
54     ELC_EVENT_ICU_IRQ15                     = (0x010), // External pin interrupt 15
55     ELC_EVENT_DMAC0_INT                     = (0x011), // DMAC0 transfer end
56     ELC_EVENT_DMAC1_INT                     = (0x012), // DMAC1 transfer end
57     ELC_EVENT_DMAC2_INT                     = (0x013), // DMAC2 transfer end
58     ELC_EVENT_DMAC3_INT                     = (0x014), // DMAC3 transfer end
59     ELC_EVENT_DMAC4_INT                     = (0x015), // DMAC4 transfer end
60     ELC_EVENT_DMAC5_INT                     = (0x016), // DMAC5 transfer end
61     ELC_EVENT_DMAC6_INT                     = (0x017), // DMAC6 transfer end
62     ELC_EVENT_DMAC7_INT                     = (0x018), // DMAC7 transfer end
63     ELC_EVENT_DTC_END                       = (0x021), // DTC transfer end
64     ELC_EVENT_DTC_COMPLETE                  = (0x022), // DTC transfer complete
65     ELC_EVENT_DMA_TRANSERR                  = (0x027), // DMA/DTC transfer error
66     ELC_EVENT_DBG_CTIIRQ0                   = (0x029), // Coresight Crosstrigger Event
67     ELC_EVENT_DBG_CTIIRQ1                   = (0x02A), // Coresight Crosstrigger Event
68     ELC_EVENT_DBG_JBRXI                     = (0x02B), // JB RXI
69     ELC_EVENT_FCU_FIFERR                    = (0x030), // Flash access error interrupt
70     ELC_EVENT_FCU_FRDYI                     = (0x031), // Flash ready interrupt
71     ELC_EVENT_LVD_LVD1                      = (0x038), // Voltage monitor 1 interrupt
72     ELC_EVENT_LVD_LVD2                      = (0x039), // Voltage monitor 2 interrupt
73     ELC_EVENT_VBATT_TADI                    = (0x03D), // VBATT Tamper Detection
74     ELC_EVENT_CGC_MOSC_STOP                 = (0x03E), // Main Clock oscillation stop
75     ELC_EVENT_ULPT0_INT                     = (0x040), // ULPT0 Underflow
76     ELC_EVENT_ULPT0_COMPARE_A               = (0x041), // ULPT0 Compare match A
77     ELC_EVENT_ULPT0_COMPARE_B               = (0x042), // ULPT0 Compare match B
78     ELC_EVENT_ULPT1_INT                     = (0x043), // ULPT1 Underflow
79     ELC_EVENT_ULPT1_COMPARE_A               = (0x044), // ULPT1 Compare match A
80     ELC_EVENT_ULPT1_COMPARE_B               = (0x045), // ULPT1 Compare match B
81     ELC_EVENT_AGT0_INT                      = (0x046), // AGT interrupt
82     ELC_EVENT_AGT0_COMPARE_A                = (0x047), // Compare match A
83     ELC_EVENT_AGT0_COMPARE_B                = (0x048), // Compare match B
84     ELC_EVENT_AGT1_INT                      = (0x049), // AGT interrupt
85     ELC_EVENT_AGT1_COMPARE_A                = (0x04A), // Compare match A
86     ELC_EVENT_AGT1_COMPARE_B                = (0x04B), // Compare match B
87     ELC_EVENT_IWDT_UNDERFLOW                = (0x052), // IWDT underflow
88     ELC_EVENT_WDT0_UNDERFLOW                = (0x053), // WDT0 underflow
89     ELC_EVENT_RTC_ALARM                     = (0x055), // Alarm interrupt
90     ELC_EVENT_RTC_PERIOD                    = (0x056), // Periodic interrupt
91     ELC_EVENT_RTC_CARRY                     = (0x057), // Carry interrupt
92     ELC_EVENT_USBFS_FIFO_0                  = (0x058), // DMA transfer request 0
93     ELC_EVENT_USBFS_FIFO_1                  = (0x059), // DMA transfer request 1
94     ELC_EVENT_USBFS_INT                     = (0x05A), // USBFS interrupt
95     ELC_EVENT_USBFS_RESUME                  = (0x05B), // USBFS resume interrupt
96     ELC_EVENT_IIC0_RXI                      = (0x05C), // Receive data full
97     ELC_EVENT_IIC0_TXI                      = (0x05D), // Transmit data empty
98     ELC_EVENT_IIC0_TEI                      = (0x05E), // Transmit end
99     ELC_EVENT_IIC0_ERI                      = (0x05F), // Transfer error
100     ELC_EVENT_IIC0_WUI                      = (0x060), // Wakeup interrupt
101     ELC_EVENT_IIC1_RXI                      = (0x061), // Receive data full
102     ELC_EVENT_IIC1_TXI                      = (0x062), // Transmit data empty
103     ELC_EVENT_IIC1_TEI                      = (0x063), // Transmit end
104     ELC_EVENT_IIC1_ERI                      = (0x064), // Transfer error
105     ELC_EVENT_SDHIMMC0_ACCS                 = (0x06B), // Card access
106     ELC_EVENT_SDHIMMC0_SDIO                 = (0x06C), // SDIO access
107     ELC_EVENT_SDHIMMC0_CARD                 = (0x06D), // Card detect
108     ELC_EVENT_SDHIMMC0_DMA_REQ              = (0x06E), // DMA transfer request
109     ELC_EVENT_SDHIMMC1_ACCS                 = (0x06F), // Card access
110     ELC_EVENT_SDHIMMC1_SDIO                 = (0x070), // SDIO access
111     ELC_EVENT_SDHIMMC1_CARD                 = (0x071), // Card detect
112     ELC_EVENT_SDHIMMC1_DMA_REQ              = (0x072), // DMA transfer request
113     ELC_EVENT_SSI0_TXI                      = (0x073), // Transmit data empty
114     ELC_EVENT_SSI0_RXI                      = (0x074), // Receive data full
115     ELC_EVENT_SSI0_INT                      = (0x076), // Error interrupt
116     ELC_EVENT_SSI1_TXI_RXI                  = (0x079), // Receive data full/Transmit data empty
117     ELC_EVENT_SSI1_INT                      = (0x07A), // Error interrupt
118     ELC_EVENT_ACMPHS0_INT                   = (0x07B), // High Speed Comparator channel 0 interrupt
119     ELC_EVENT_ACMPHS1_INT                   = (0x07C), // High Speed Comparator channel 1 interrupt
120     ELC_EVENT_ELC_SOFTWARE_EVENT_0          = (0x083), // Software event 0
121     ELC_EVENT_ELC_SOFTWARE_EVENT_1          = (0x084), // Software event 1
122     ELC_EVENT_IOPORT_EVENT_1                = (0x088), // Port 1 event
123     ELC_EVENT_IOPORT_EVENT_2                = (0x089), // Port 2 event
124     ELC_EVENT_IOPORT_EVENT_3                = (0x08A), // Port 3 event
125     ELC_EVENT_IOPORT_EVENT_4                = (0x08B), // Port 4 event
126     ELC_EVENT_CAC_FREQUENCY_ERROR           = (0x08C), // Frequency error interrupt
127     ELC_EVENT_CAC_MEASUREMENT_END           = (0x08D), // Measurement end interrupt
128     ELC_EVENT_CAC_OVERFLOW                  = (0x08E), // Overflow interrupt
129     ELC_EVENT_POEG0_EVENT                   = (0x08F), // Port Output disable 0 interrupt
130     ELC_EVENT_POEG1_EVENT                   = (0x090), // Port Output disable 1 interrupt
131     ELC_EVENT_POEG2_EVENT                   = (0x091), // Port Output disable 2 interrupt
132     ELC_EVENT_POEG3_EVENT                   = (0x092), // Port Output disable 3 interrupt
133     ELC_EVENT_OPS_UVW_EDGE                  = (0x0A0), // UVW edge event
134     ELC_EVENT_GPT0_CAPTURE_COMPARE_A        = (0x0A1), // Capture/Compare match A
135     ELC_EVENT_GPT0_CAPTURE_COMPARE_B        = (0x0A2), // Capture/Compare match B
136     ELC_EVENT_GPT0_COMPARE_C                = (0x0A3), // Compare match C
137     ELC_EVENT_GPT0_COMPARE_D                = (0x0A4), // Compare match D
138     ELC_EVENT_GPT0_COMPARE_E                = (0x0A5), // Compare match E
139     ELC_EVENT_GPT0_COMPARE_F                = (0x0A6), // Compare match F
140     ELC_EVENT_GPT0_COUNTER_OVERFLOW         = (0x0A7), // Overflow
141     ELC_EVENT_GPT0_COUNTER_UNDERFLOW        = (0x0A8), // Underflow
142     ELC_EVENT_GPT0_PC                       = (0x0A9), // Period count function finish
143     ELC_EVENT_GPT1_CAPTURE_COMPARE_A        = (0x0AA), // Capture/Compare match A
144     ELC_EVENT_GPT1_CAPTURE_COMPARE_B        = (0x0AB), // Capture/Compare match B
145     ELC_EVENT_GPT1_COMPARE_C                = (0x0AC), // Compare match C
146     ELC_EVENT_GPT1_COMPARE_D                = (0x0AD), // Compare match D
147     ELC_EVENT_GPT1_COMPARE_E                = (0x0AE), // Compare match E
148     ELC_EVENT_GPT1_COMPARE_F                = (0x0AF), // Compare match F
149     ELC_EVENT_GPT1_COUNTER_OVERFLOW         = (0x0B0), // Overflow
150     ELC_EVENT_GPT1_COUNTER_UNDERFLOW        = (0x0B1), // Underflow
151     ELC_EVENT_GPT1_PC                       = (0x0B2), // Period count function finish
152     ELC_EVENT_GPT2_CAPTURE_COMPARE_A        = (0x0B3), // Capture/Compare match A
153     ELC_EVENT_GPT2_CAPTURE_COMPARE_B        = (0x0B4), // Capture/Compare match B
154     ELC_EVENT_GPT2_COMPARE_C                = (0x0B5), // Compare match C
155     ELC_EVENT_GPT2_COMPARE_D                = (0x0B6), // Compare match D
156     ELC_EVENT_GPT2_COMPARE_E                = (0x0B7), // Compare match E
157     ELC_EVENT_GPT2_COMPARE_F                = (0x0B8), // Compare match F
158     ELC_EVENT_GPT2_COUNTER_OVERFLOW         = (0x0B9), // Overflow
159     ELC_EVENT_GPT2_COUNTER_UNDERFLOW        = (0x0BA), // Underflow
160     ELC_EVENT_GPT2_PC                       = (0x0BB), // Period count function finish
161     ELC_EVENT_GPT3_CAPTURE_COMPARE_A        = (0x0BC), // Capture/Compare match A
162     ELC_EVENT_GPT3_CAPTURE_COMPARE_B        = (0x0BD), // Capture/Compare match B
163     ELC_EVENT_GPT3_COMPARE_C                = (0x0BE), // Compare match C
164     ELC_EVENT_GPT3_COMPARE_D                = (0x0BF), // Compare match D
165     ELC_EVENT_GPT3_COMPARE_E                = (0x0C0), // Compare match E
166     ELC_EVENT_GPT3_COMPARE_F                = (0x0C1), // Compare match F
167     ELC_EVENT_GPT3_COUNTER_OVERFLOW         = (0x0C2), // Overflow
168     ELC_EVENT_GPT3_COUNTER_UNDERFLOW        = (0x0C3), // Underflow
169     ELC_EVENT_GPT3_PC                       = (0x0C4), // Period count function finish
170     ELC_EVENT_GPT4_CAPTURE_COMPARE_A        = (0x0C5), // Capture/Compare match A
171     ELC_EVENT_GPT4_CAPTURE_COMPARE_B        = (0x0C6), // Capture/Compare match B
172     ELC_EVENT_GPT4_COMPARE_C                = (0x0C7), // Compare match C
173     ELC_EVENT_GPT4_COMPARE_D                = (0x0C8), // Compare match D
174     ELC_EVENT_GPT4_COMPARE_E                = (0x0C9), // Compare match E
175     ELC_EVENT_GPT4_COMPARE_F                = (0x0CA), // Compare match F
176     ELC_EVENT_GPT4_COUNTER_OVERFLOW         = (0x0CB), // Overflow
177     ELC_EVENT_GPT4_COUNTER_UNDERFLOW        = (0x0CC), // Underflow
178     ELC_EVENT_GPT5_CAPTURE_COMPARE_A        = (0x0CE), // Capture/Compare match A
179     ELC_EVENT_GPT5_CAPTURE_COMPARE_B        = (0x0CF), // Capture/Compare match B
180     ELC_EVENT_GPT5_COMPARE_C                = (0x0D0), // Compare match C
181     ELC_EVENT_GPT5_COMPARE_D                = (0x0D1), // Compare match D
182     ELC_EVENT_GPT5_COMPARE_E                = (0x0D2), // Compare match E
183     ELC_EVENT_GPT5_COMPARE_F                = (0x0D3), // Compare match F
184     ELC_EVENT_GPT5_COUNTER_OVERFLOW         = (0x0D4), // Overflow
185     ELC_EVENT_GPT5_COUNTER_UNDERFLOW        = (0x0D5), // Underflow
186     ELC_EVENT_GPT6_CAPTURE_COMPARE_A        = (0x0D7), // Capture/Compare match A
187     ELC_EVENT_GPT6_CAPTURE_COMPARE_B        = (0x0D8), // Capture/Compare match B
188     ELC_EVENT_GPT6_COMPARE_C                = (0x0D9), // Compare match C
189     ELC_EVENT_GPT6_COMPARE_D                = (0x0DA), // Compare match D
190     ELC_EVENT_GPT6_COMPARE_E                = (0x0DB), // Compare match E
191     ELC_EVENT_GPT6_COMPARE_F                = (0x0DC), // Compare match F
192     ELC_EVENT_GPT6_COUNTER_OVERFLOW         = (0x0DD), // Overflow
193     ELC_EVENT_GPT6_COUNTER_UNDERFLOW        = (0x0DE), // Underflow
194     ELC_EVENT_GPT7_CAPTURE_COMPARE_A        = (0x0E0), // Capture/Compare match A
195     ELC_EVENT_GPT7_CAPTURE_COMPARE_B        = (0x0E1), // Capture/Compare match B
196     ELC_EVENT_GPT7_COMPARE_C                = (0x0E2), // Compare match C
197     ELC_EVENT_GPT7_COMPARE_D                = (0x0E3), // Compare match D
198     ELC_EVENT_GPT7_COMPARE_E                = (0x0E4), // Compare match E
199     ELC_EVENT_GPT7_COMPARE_F                = (0x0E5), // Compare match F
200     ELC_EVENT_GPT7_COUNTER_OVERFLOW         = (0x0E6), // Overflow
201     ELC_EVENT_GPT7_COUNTER_UNDERFLOW        = (0x0E7), // Underflow
202     ELC_EVENT_GPT8_CAPTURE_COMPARE_A        = (0x0E9), // Capture/Compare match A
203     ELC_EVENT_GPT8_CAPTURE_COMPARE_B        = (0x0EA), // Capture/Compare match B
204     ELC_EVENT_GPT8_COMPARE_C                = (0x0EB), // Compare match C
205     ELC_EVENT_GPT8_COMPARE_D                = (0x0EC), // Compare match D
206     ELC_EVENT_GPT8_COMPARE_E                = (0x0ED), // Compare match E
207     ELC_EVENT_GPT8_COMPARE_F                = (0x0EE), // Compare match F
208     ELC_EVENT_GPT8_COUNTER_OVERFLOW         = (0x0EF), // Overflow
209     ELC_EVENT_GPT8_COUNTER_UNDERFLOW        = (0x0F0), // Underflow
210     ELC_EVENT_GPT8_PC                       = (0x0F1), // Period count function finish
211     ELC_EVENT_GPT9_CAPTURE_COMPARE_A        = (0x0F2), // Capture/Compare match A
212     ELC_EVENT_GPT9_CAPTURE_COMPARE_B        = (0x0F3), // Capture/Compare match B
213     ELC_EVENT_GPT9_COMPARE_C                = (0x0F4), // Compare match C
214     ELC_EVENT_GPT9_COMPARE_D                = (0x0F5), // Compare match D
215     ELC_EVENT_GPT9_COMPARE_E                = (0x0F6), // Compare match E
216     ELC_EVENT_GPT9_COMPARE_F                = (0x0F7), // Compare match F
217     ELC_EVENT_GPT9_COUNTER_OVERFLOW         = (0x0F8), // Overflow
218     ELC_EVENT_GPT9_COUNTER_UNDERFLOW        = (0x0F9), // Underflow
219     ELC_EVENT_GPT9_PC                       = (0x0FA), // Period count function finish
220     ELC_EVENT_GPT10_CAPTURE_COMPARE_A       = (0x0FB), // Capture/Compare match A
221     ELC_EVENT_GPT10_CAPTURE_COMPARE_B       = (0x0FC), // Capture/Compare match B
222     ELC_EVENT_GPT10_COMPARE_C               = (0x0FD), // Compare match C
223     ELC_EVENT_GPT10_COMPARE_D               = (0x0FE), // Compare match D
224     ELC_EVENT_GPT10_COMPARE_E               = (0x0FF), // Compare match E
225     ELC_EVENT_GPT10_COMPARE_F               = (0x100), // Compare match F
226     ELC_EVENT_GPT10_COUNTER_OVERFLOW        = (0x101), // Overflow
227     ELC_EVENT_GPT10_COUNTER_UNDERFLOW       = (0x102), // Underflow
228     ELC_EVENT_GPT10_PC                      = (0x103), // Period count function finish
229     ELC_EVENT_GPT11_CAPTURE_COMPARE_A       = (0x104), // Capture/Compare match A
230     ELC_EVENT_GPT11_CAPTURE_COMPARE_B       = (0x105), // Capture/Compare match B
231     ELC_EVENT_GPT11_COMPARE_C               = (0x106), // Compare match C
232     ELC_EVENT_GPT11_COMPARE_D               = (0x107), // Compare match D
233     ELC_EVENT_GPT11_COMPARE_E               = (0x108), // Compare match E
234     ELC_EVENT_GPT11_COMPARE_F               = (0x109), // Compare match F
235     ELC_EVENT_GPT11_COUNTER_OVERFLOW        = (0x10A), // Overflow
236     ELC_EVENT_GPT11_COUNTER_UNDERFLOW       = (0x10B), // Underflow
237     ELC_EVENT_GPT12_CAPTURE_COMPARE_A       = (0x10D), // Capture/Compare match A
238     ELC_EVENT_GPT12_CAPTURE_COMPARE_B       = (0x10E), // Capture/Compare match B
239     ELC_EVENT_GPT12_COMPARE_C               = (0x10F), // Compare match C
240     ELC_EVENT_GPT12_COMPARE_D               = (0x110), // Compare match D
241     ELC_EVENT_GPT12_COMPARE_E               = (0x111), // Compare match E
242     ELC_EVENT_GPT12_COMPARE_F               = (0x112), // Compare match F
243     ELC_EVENT_GPT12_COUNTER_OVERFLOW        = (0x113), // Overflow
244     ELC_EVENT_GPT12_COUNTER_UNDERFLOW       = (0x114), // Underflow
245     ELC_EVENT_GPT13_CAPTURE_COMPARE_A       = (0x116), // Capture/Compare match A
246     ELC_EVENT_GPT13_CAPTURE_COMPARE_B       = (0x117), // Capture/Compare match B
247     ELC_EVENT_GPT13_COMPARE_C               = (0x118), // Compare match C
248     ELC_EVENT_GPT13_COMPARE_D               = (0x119), // Compare match D
249     ELC_EVENT_GPT13_COMPARE_E               = (0x11A), // Compare match E
250     ELC_EVENT_GPT13_COMPARE_F               = (0x11B), // Compare match F
251     ELC_EVENT_GPT13_COUNTER_OVERFLOW        = (0x11C), // Overflow
252     ELC_EVENT_GPT13_COUNTER_UNDERFLOW       = (0x11D), // Underflow
253     ELC_EVENT_EDMAC0_EINT                   = (0x120), // EDMAC 0 interrupt
254     ELC_EVENT_USBHS_FIFO_0                  = (0x121), // DMA transfer request 0
255     ELC_EVENT_USBHS_FIFO_1                  = (0x122), // DMA transfer request 1
256     ELC_EVENT_USBHS_USB_INT_RESUME          = (0x123), // USBHS interrupt
257     ELC_EVENT_SCI0_RXI                      = (0x124), // Receive data full
258     ELC_EVENT_SCI0_TXI                      = (0x125), // Transmit data empty
259     ELC_EVENT_SCI0_TEI                      = (0x126), // Transmit end
260     ELC_EVENT_SCI0_ERI                      = (0x127), // Receive error
261     ELC_EVENT_SCI0_AED                      = (0x128), // Active edge detection
262     ELC_EVENT_SCI0_BFD                      = (0x129), // Break field detection
263     ELC_EVENT_SCI0_AM                       = (0x12A), // Address match event
264     ELC_EVENT_SCI1_RXI                      = (0x12B), // Receive data full
265     ELC_EVENT_SCI1_TXI                      = (0x12C), // Transmit data empty
266     ELC_EVENT_SCI1_TEI                      = (0x12D), // Transmit end
267     ELC_EVENT_SCI1_ERI                      = (0x12E), // Receive error
268     ELC_EVENT_SCI1_AED                      = (0x12F), // Active edge detection
269     ELC_EVENT_SCI1_BFD                      = (0x130), // Break field detection
270     ELC_EVENT_SCI1_AM                       = (0x131), // Address match event
271     ELC_EVENT_SCI2_RXI                      = (0x132), // Receive data full
272     ELC_EVENT_SCI2_TXI                      = (0x133), // Transmit data empty
273     ELC_EVENT_SCI2_TEI                      = (0x134), // Transmit end
274     ELC_EVENT_SCI2_ERI                      = (0x135), // Receive error
275     ELC_EVENT_SCI2_AM                       = (0x138), // Address match event
276     ELC_EVENT_SCI3_RXI                      = (0x139), // Receive data full
277     ELC_EVENT_SCI3_TXI                      = (0x13A), // Transmit data empty
278     ELC_EVENT_SCI3_TEI                      = (0x13B), // Transmit end
279     ELC_EVENT_SCI3_ERI                      = (0x13C), // Receive error
280     ELC_EVENT_SCI3_AM                       = (0x13F), // Address match event
281     ELC_EVENT_SCI4_RXI                      = (0x140), // Receive data full
282     ELC_EVENT_SCI4_TXI                      = (0x141), // Transmit data empty
283     ELC_EVENT_SCI4_TEI                      = (0x142), // Transmit end
284     ELC_EVENT_SCI4_ERI                      = (0x143), // Receive error
285     ELC_EVENT_SCI4_AM                       = (0x146), // Address match event
286     ELC_EVENT_SCI9_RXI                      = (0x163), // Receive data full
287     ELC_EVENT_SCI9_TXI                      = (0x164), // Transmit data empty
288     ELC_EVENT_SCI9_TEI                      = (0x165), // Transmit end
289     ELC_EVENT_SCI9_ERI                      = (0x166), // Receive error
290     ELC_EVENT_SCI9_AM                       = (0x169), // Address match event
291     ELC_EVENT_SPI0_RXI                      = (0x178), // Receive buffer full
292     ELC_EVENT_SPI0_TXI                      = (0x179), // Transmit buffer empty
293     ELC_EVENT_SPI0_IDLE                     = (0x17A), // Idle
294     ELC_EVENT_SPI0_ERI                      = (0x17B), // Error
295     ELC_EVENT_SPI0_TEI                      = (0x17C), // Transmission complete event
296     ELC_EVENT_SPI1_RXI                      = (0x17D), // Receive buffer full
297     ELC_EVENT_SPI1_TXI                      = (0x17E), // Transmit buffer empty
298     ELC_EVENT_SPI1_IDLE                     = (0x17F), // Idle
299     ELC_EVENT_SPI1_ERI                      = (0x180), // Error
300     ELC_EVENT_SPI1_TEI                      = (0x181), // Transmission complete event
301     ELC_EVENT_XSPI_ERR                      = (0x182), // xSPI Error
302     ELC_EVENT_XSPI_CMP                      = (0x183), // xSPI Complete
303     ELC_EVENT_CAN_RXF                       = (0x185), // Global recieve FIFO interrupt
304     ELC_EVENT_CAN_GLERR                     = (0x186), // Global error
305     ELC_EVENT_CAN0_DMAREQ0                  = (0x187), // RX fifo DMA request 0
306     ELC_EVENT_CAN0_DMAREQ1                  = (0x188), // RX fifo DMA request 1
307     ELC_EVENT_CAN1_DMAREQ0                  = (0x18B), // RX fifo DMA request 0
308     ELC_EVENT_CAN1_DMAREQ1                  = (0x18C), // RX fifo DMA request 1
309     ELC_EVENT_CAN0_TX                       = (0x18F), // Transmit interrupt
310     ELC_EVENT_CAN0_CHERR                    = (0x190), // Channel  error
311     ELC_EVENT_CAN0_COMFRX                   = (0x191), // Common FIFO recieve interrupt
312     ELC_EVENT_CAN0_CF_DMAREQ                = (0x192), // Channel  DMA request
313     ELC_EVENT_CAN0_RXMB                     = (0x193), // Receive message buffer interrupt
314     ELC_EVENT_CAN1_TX                       = (0x194), // Transmit interrupt
315     ELC_EVENT_CAN1_CHERR                    = (0x195), // Channel  error
316     ELC_EVENT_CAN1_COMFRX                   = (0x196), // Common FIFO recieve interrupt
317     ELC_EVENT_CAN1_CF_DMAREQ                = (0x197), // Channel  DMA request
318     ELC_EVENT_CAN1_RXMB                     = (0x198), // Receive message buffer interrupt
319     ELC_EVENT_CAN0_MRAM_ERI                 = (0x19B), // CANFD0 ECC error
320     ELC_EVENT_CAN1_MRAM_ERI                 = (0x19C), // CANFD1 ECC error
321     ELC_EVENT_I3C0_RESPONSE                 = (0x19D), // Response status buffer full
322     ELC_EVENT_I3C0_COMMAND                  = (0x19E), // Command buffer empty
323     ELC_EVENT_I3C0_IBI                      = (0x19F), // IBI status buffer full
324     ELC_EVENT_I3C0_RX                       = (0x1A0), // Receive
325     ELC_EVENT_I3C0_TX                       = (0x1A1), // Transmit
326     ELC_EVENT_I3C0_RCV_STATUS               = (0x1A2), // Receive status buffer full
327     ELC_EVENT_I3C0_HRESP                    = (0x1A3), // High priority response queue full
328     ELC_EVENT_I3C0_HCMD                     = (0x1A4), // High priority command queue empty
329     ELC_EVENT_I3C0_HRX                      = (0x1A5), // High priority rx data buffer full
330     ELC_EVENT_I3C0_HTX                      = (0x1A6), // High priority tx data buffer empty
331     ELC_EVENT_I3C0_TEND                     = (0x1A7), // Transmit end
332     ELC_EVENT_I3C0_EEI                      = (0x1A8), // Error
333     ELC_EVENT_I3C0_STEV                     = (0x1A9), // Synchronous timing
334     ELC_EVENT_I3C0_MREFOVF                  = (0x1AA), // MREF counter overflow
335     ELC_EVENT_I3C0_MREFCPT                  = (0x1AB), // MREF capture
336     ELC_EVENT_I3C0_AMEV                     = (0x1AC), // Additional master-initiated bus event
337     ELC_EVENT_I3C0_WU                       = (0x1AD), // Wake-up Condition Detection interrupt
338     ELC_EVENT_ADC0_SCAN_END                 = (0x1AE), // End of A/D scanning operation
339     ELC_EVENT_ADC0_SCAN_END_B               = (0x1AF), // A/D scan end interrupt for group B
340     ELC_EVENT_ADC0_WINDOW_A                 = (0x1B0), // Window A Compare match interrupt
341     ELC_EVENT_ADC0_WINDOW_B                 = (0x1B1), // Window B Compare match interrupt
342     ELC_EVENT_ADC0_COMPARE_MATCH            = (0x1B2), // Compare match
343     ELC_EVENT_ADC0_COMPARE_MISMATCH         = (0x1B3), // Compare mismatch
344     ELC_EVENT_ADC1_SCAN_END                 = (0x1B4), // End of A/D scanning operation
345     ELC_EVENT_ADC1_SCAN_END_B               = (0x1B5), // A/D scan end interrupt for group B
346     ELC_EVENT_ADC1_WINDOW_A                 = (0x1B6), // Window A Compare match interrupt
347     ELC_EVENT_ADC1_WINDOW_B                 = (0x1B7), // Window B Compare match interrupt
348     ELC_EVENT_ADC1_COMPARE_MATCH            = (0x1B8), // Compare match
349     ELC_EVENT_ADC1_COMPARE_MISMATCH         = (0x1B9), // Compare mismatch
350     ELC_EVENT_DOC_INT                       = (0x1BA), // Data operation circuit interrupt
351     ELC_EVENT_RSIP_TADI                     = (0x1BC), // RSIP Tampler Detection
352     ELC_EVENT_CEU_CEUI                      = (0x1DA)  // CEU interrupt
353 } elc_event_t;
354 
355 #define BSP_PRV_VECT_ENUM(event,group)  (ELC_ ## event)
356 
357 #define ELC_PERIPHERAL_NUM    (31U)
358 #define BSP_OVERRIDE_ELC_PERIPHERAL_T
359 /** Possible peripherals to be linked to event signals
360  * @note This list is device specific.
361  * */
362 typedef enum e_elc_peripheral
363 {
364     ELC_PERIPHERAL_GPT_A         = (0),
365     ELC_PERIPHERAL_GPT_B         = (1),
366     ELC_PERIPHERAL_GPT_C         = (2),
367     ELC_PERIPHERAL_GPT_D         = (3),
368     ELC_PERIPHERAL_GPT_E         = (4),
369     ELC_PERIPHERAL_GPT_F         = (5),
370     ELC_PERIPHERAL_GPT_G         = (6),
371     ELC_PERIPHERAL_GPT_H         = (7),
372     ELC_PERIPHERAL_ADC0          = (8),
373     ELC_PERIPHERAL_ADC0_B        = (9),
374     ELC_PERIPHERAL_ADC1          = (10),
375     ELC_PERIPHERAL_ADC1_B        = (11),
376     ELC_PERIPHERAL_DAC0          = (12),
377     ELC_PERIPHERAL_DAC1          = (13),
378     ELC_PERIPHERAL_IOPORT1       = (14),
379     ELC_PERIPHERAL_IOPORT2       = (15),
380     ELC_PERIPHERAL_IOPORT3       = (16),
381     ELC_PERIPHERAL_IOPORT4       = (17),
382     ELC_PERIPHERAL_I3C           = (30)
383 } elc_peripheral_t;
384 
385 /** Positions of event link set registers (ELSRs) available on this MCU */
386 #define BSP_ELC_PERIPHERAL_MASK  (0x4003FFFFU)
387 
388 /* UNCRUSTIFY-ON */
389 /** @} (end addtogroup BSP_MCU_RA8M1) */
390 
391 #endif
392