Skip to content

Commit abca7ee

Browse files
khoa-nguyen-18KhiemNguyenT
authored andcommitted
hal: renesas: Add support for RA4E1
Add initial support for RA4E1 Signed-off-by: Khoa Nguyen <[email protected]>
1 parent b949591 commit abca7ee

File tree

10 files changed

+20924
-0
lines changed

10 files changed

+20924
-0
lines changed

drivers/ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/R7FA4E10D.h

Lines changed: 19667 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
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_RA4E1
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_ra4e1
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_IRQ13 = (0x00E), // External pin interrupt 13
50+
ELC_EVENT_DMAC0_INT = (0x020), // DMAC0 transfer end
51+
ELC_EVENT_DMAC1_INT = (0x021), // DMAC1 transfer end
52+
ELC_EVENT_DMAC2_INT = (0x022), // DMAC2 transfer end
53+
ELC_EVENT_DMAC3_INT = (0x023), // DMAC3 transfer end
54+
ELC_EVENT_DMAC4_INT = (0x024), // DMAC4 transfer end
55+
ELC_EVENT_DMAC5_INT = (0x025), // DMAC5 transfer end
56+
ELC_EVENT_DMAC6_INT = (0x026), // DMAC6 transfer end
57+
ELC_EVENT_DMAC7_INT = (0x027), // DMAC7 transfer end
58+
ELC_EVENT_DTC_COMPLETE = (0x029), // DTC transfer complete
59+
ELC_EVENT_DTC_END = (0x02A), // DTC transfer end
60+
ELC_EVENT_DMA_TRANSERR = (0x02B), // DMA/DTC transfer error
61+
ELC_EVENT_ICU_SNOOZE_CANCEL = (0x02D), // Canceling from Snooze mode
62+
ELC_EVENT_FCU_FIFERR = (0x030), // Flash access error interrupt
63+
ELC_EVENT_FCU_FRDYI = (0x031), // Flash ready interrupt
64+
ELC_EVENT_LVD_LVD1 = (0x038), // Voltage monitor 1 interrupt
65+
ELC_EVENT_LVD_LVD2 = (0x039), // Voltage monitor 2 interrupt
66+
ELC_EVENT_CGC_MOSC_STOP = (0x03B), // Main Clock oscillation stop
67+
ELC_EVENT_LPM_SNOOZE_REQUEST = (0x03C), // Snooze entry
68+
ELC_EVENT_AGT0_INT = (0x040), // AGT interrupt
69+
ELC_EVENT_AGT0_COMPARE_A = (0x041), // Compare match A
70+
ELC_EVENT_AGT0_COMPARE_B = (0x042), // Compare match B
71+
ELC_EVENT_AGT1_INT = (0x043), // AGT interrupt
72+
ELC_EVENT_AGT1_COMPARE_A = (0x044), // Compare match A
73+
ELC_EVENT_AGT1_COMPARE_B = (0x045), // Compare match B
74+
ELC_EVENT_AGT2_INT = (0x046), // AGT interrupt
75+
ELC_EVENT_AGT2_COMPARE_A = (0x047), // Compare match A
76+
ELC_EVENT_AGT2_COMPARE_B = (0x048), // Compare match B
77+
ELC_EVENT_AGT3_INT = (0x049), // AGT interrupt
78+
ELC_EVENT_AGT3_COMPARE_A = (0x04A), // Compare match A
79+
ELC_EVENT_AGT3_COMPARE_B = (0x04B), // Compare match B
80+
ELC_EVENT_AGT5_INT = (0x04F), // AGT interrupt
81+
ELC_EVENT_AGT5_COMPARE_A = (0x050), // Compare match A
82+
ELC_EVENT_AGT5_COMPARE_B = (0x051), // Compare match B
83+
ELC_EVENT_IWDT_UNDERFLOW = (0x052), // IWDT underflow
84+
ELC_EVENT_WDT_UNDERFLOW = (0x053), // WDT0 underflow
85+
ELC_EVENT_RTC_ALARM = (0x054), // Alarm interrupt
86+
ELC_EVENT_RTC_PERIOD = (0x055), // Periodic interrupt
87+
ELC_EVENT_RTC_CARRY = (0x056), // Carry interrupt
88+
ELC_EVENT_USBFS_FIFO_0 = (0x06B), // DMA transfer request 0
89+
ELC_EVENT_USBFS_FIFO_1 = (0x06C), // DMA transfer request 1
90+
ELC_EVENT_USBFS_INT = (0x06D), // USBFS interrupt
91+
ELC_EVENT_USBFS_RESUME = (0x06E), // USBFS resume interrupt
92+
ELC_EVENT_IIC0_RXI = (0x073), // Receive data full
93+
ELC_EVENT_IIC0_TXI = (0x074), // Transmit data empty
94+
ELC_EVENT_IIC0_TEI = (0x075), // Transmit end
95+
ELC_EVENT_IIC0_ERI = (0x076), // Transfer error
96+
ELC_EVENT_IIC0_WUI = (0x077), // Wakeup interrupt
97+
ELC_EVENT_CAC_FREQUENCY_ERROR = (0x09E), // Frequency error interrupt
98+
ELC_EVENT_CAC_MEASUREMENT_END = (0x09F), // Measurement end interrupt
99+
ELC_EVENT_CAC_OVERFLOW = (0x0A0), // Overflow interrupt
100+
ELC_EVENT_CAN0_ERROR = (0x0A1), // Error interrupt
101+
ELC_EVENT_CAN0_FIFO_RX = (0x0A2), // Receive FIFO interrupt
102+
ELC_EVENT_CAN0_FIFO_TX = (0x0A3), // Transmit FIFO interrupt
103+
ELC_EVENT_CAN0_MAILBOX_RX = (0x0A4), // Reception complete interrupt
104+
ELC_EVENT_CAN0_MAILBOX_TX = (0x0A5), // Transmission complete interrupt
105+
ELC_EVENT_IOPORT_EVENT_1 = (0x0B1), // Port 1 event
106+
ELC_EVENT_IOPORT_EVENT_2 = (0x0B2), // Port 2 event
107+
ELC_EVENT_IOPORT_EVENT_3 = (0x0B3), // Port 3 event
108+
ELC_EVENT_IOPORT_EVENT_4 = (0x0B4), // Port 4 event
109+
ELC_EVENT_ELC_SOFTWARE_EVENT_0 = (0x0B5), // Software event 0
110+
ELC_EVENT_ELC_SOFTWARE_EVENT_1 = (0x0B6), // Software event 1
111+
ELC_EVENT_POEG0_EVENT = (0x0B7), // Port Output disable 0 interrupt
112+
ELC_EVENT_POEG1_EVENT = (0x0B8), // Port Output disable 1 interrupt
113+
ELC_EVENT_POEG2_EVENT = (0x0B9), // Port Output disable 2 interrupt
114+
ELC_EVENT_POEG3_EVENT = (0x0BA), // Port Output disable 3 interrupt
115+
ELC_EVENT_GPT1_CAPTURE_COMPARE_A = (0x0C9), // Capture/Compare match A
116+
ELC_EVENT_GPT1_CAPTURE_COMPARE_B = (0x0CA), // Capture/Compare match B
117+
ELC_EVENT_GPT1_COMPARE_C = (0x0CB), // Compare match C
118+
ELC_EVENT_GPT1_COMPARE_D = (0x0CC), // Compare match D
119+
ELC_EVENT_GPT1_COMPARE_E = (0x0CD), // Compare match E
120+
ELC_EVENT_GPT1_COMPARE_F = (0x0CE), // Compare match F
121+
ELC_EVENT_GPT1_COUNTER_OVERFLOW = (0x0CF), // Overflow
122+
ELC_EVENT_GPT1_COUNTER_UNDERFLOW = (0x0D0), // Underflow
123+
ELC_EVENT_GPT1_PC = (0x0D1), // Period count function finish
124+
ELC_EVENT_GPT2_CAPTURE_COMPARE_A = (0x0D2), // Capture/Compare match A
125+
ELC_EVENT_GPT2_CAPTURE_COMPARE_B = (0x0D3), // Capture/Compare match B
126+
ELC_EVENT_GPT2_COMPARE_C = (0x0D4), // Compare match C
127+
ELC_EVENT_GPT2_COMPARE_D = (0x0D5), // Compare match D
128+
ELC_EVENT_GPT2_COMPARE_E = (0x0D6), // Compare match E
129+
ELC_EVENT_GPT2_COMPARE_F = (0x0D7), // Compare match F
130+
ELC_EVENT_GPT2_COUNTER_OVERFLOW = (0x0D8), // Overflow
131+
ELC_EVENT_GPT2_COUNTER_UNDERFLOW = (0x0D9), // Underflow
132+
ELC_EVENT_GPT4_CAPTURE_COMPARE_A = (0x0E4), // Capture/Compare match A
133+
ELC_EVENT_GPT4_CAPTURE_COMPARE_B = (0x0E5), // Capture/Compare match B
134+
ELC_EVENT_GPT4_COMPARE_C = (0x0E6), // Compare match C
135+
ELC_EVENT_GPT4_COMPARE_D = (0x0E7), // Compare match D
136+
ELC_EVENT_GPT4_COMPARE_E = (0x0E8), // Compare match E
137+
ELC_EVENT_GPT4_COMPARE_F = (0x0E9), // Compare match F
138+
ELC_EVENT_GPT4_COUNTER_OVERFLOW = (0x0EA), // Overflow
139+
ELC_EVENT_GPT4_COUNTER_UNDERFLOW = (0x0EB), // Underflow
140+
ELC_EVENT_GPT4_PC = (0x0EC), // Period count function finish
141+
ELC_EVENT_GPT5_CAPTURE_COMPARE_A = (0x0ED), // Capture/Compare match A
142+
ELC_EVENT_GPT5_CAPTURE_COMPARE_B = (0x0EE), // Capture/Compare match B
143+
ELC_EVENT_GPT5_COMPARE_C = (0x0EF), // Compare match C
144+
ELC_EVENT_GPT5_COMPARE_D = (0x0F0), // Compare match D
145+
ELC_EVENT_GPT5_COMPARE_E = (0x0F1), // Compare match E
146+
ELC_EVENT_GPT5_COMPARE_F = (0x0F2), // Compare match F
147+
ELC_EVENT_GPT5_COUNTER_OVERFLOW = (0x0F3), // Overflow
148+
ELC_EVENT_GPT5_COUNTER_UNDERFLOW = (0x0F4), // Underflow
149+
ELC_EVENT_GPT5_PC = (0x0F5), // Period count function finish
150+
ELC_EVENT_ADC0_SCAN_END = (0x160), // End of A/D scanning operation
151+
ELC_EVENT_ADC0_SCAN_END_B = (0x161), // A/D scan end interrupt for group B
152+
ELC_EVENT_ADC0_WINDOW_A = (0x162), // Window A Compare match interrupt
153+
ELC_EVENT_ADC0_WINDOW_B = (0x163), // Window B Compare match interrupt
154+
ELC_EVENT_ADC0_COMPARE_MATCH = (0x164), // Compare match
155+
ELC_EVENT_ADC0_COMPARE_MISMATCH = (0x165), // Compare mismatch
156+
ELC_EVENT_SCI0_RXI = (0x180), // Receive data full
157+
ELC_EVENT_SCI0_TXI = (0x181), // Transmit data empty
158+
ELC_EVENT_SCI0_TEI = (0x182), // Transmit end
159+
ELC_EVENT_SCI0_ERI = (0x183), // Receive error
160+
ELC_EVENT_SCI0_AM = (0x184), // Address match event
161+
ELC_EVENT_SCI0_RXI_OR_ERI = (0x185), // Receive data full/Receive error
162+
ELC_EVENT_SCI3_RXI = (0x192), // Receive data full
163+
ELC_EVENT_SCI3_TXI = (0x193), // Transmit data empty
164+
ELC_EVENT_SCI3_TEI = (0x194), // Transmit end
165+
ELC_EVENT_SCI3_ERI = (0x195), // Receive error
166+
ELC_EVENT_SCI3_AM = (0x196), // Address match event
167+
ELC_EVENT_SCI4_RXI = (0x198), // Receive data full
168+
ELC_EVENT_SCI4_TXI = (0x199), // Transmit data empty
169+
ELC_EVENT_SCI4_TEI = (0x19A), // Transmit end
170+
ELC_EVENT_SCI4_ERI = (0x19B), // Receive error
171+
ELC_EVENT_SCI4_AM = (0x19C), // Address match event
172+
ELC_EVENT_SCI9_RXI = (0x1B6), // Receive data full
173+
ELC_EVENT_SCI9_TXI = (0x1B7), // Transmit data empty
174+
ELC_EVENT_SCI9_TEI = (0x1B8), // Transmit end
175+
ELC_EVENT_SCI9_ERI = (0x1B9), // Receive error
176+
ELC_EVENT_SCI9_AM = (0x1BA), // Address match event
177+
ELC_EVENT_SPI0_RXI = (0x1C4), // Receive buffer full
178+
ELC_EVENT_SPI0_TXI = (0x1C5), // Transmit buffer empty
179+
ELC_EVENT_SPI0_IDLE = (0x1C6), // Idle
180+
ELC_EVENT_SPI0_ERI = (0x1C7), // Error
181+
ELC_EVENT_SPI0_TEI = (0x1C8), // Transmission complete event
182+
ELC_EVENT_QSPI_INT = (0x1DA), // QSPI interrupt
183+
ELC_EVENT_DOC_INT = (0x1DB) // Data operation circuit interrupt
184+
} elc_event_t;
185+
186+
#define BSP_PRV_VECT_ENUM(event,group) (ELC_ ## event)
187+
188+
#define ELC_PERIPHERAL_NUM (18U)
189+
#define BSP_OVERRIDE_ELC_PERIPHERAL_T
190+
/** Possible peripherals to be linked to event signals
191+
* @note This list is device specific.
192+
* */
193+
typedef enum e_elc_peripheral
194+
{
195+
ELC_PERIPHERAL_GPT_A = (0),
196+
ELC_PERIPHERAL_GPT_B = (1),
197+
ELC_PERIPHERAL_GPT_C = (2),
198+
ELC_PERIPHERAL_GPT_D = (3),
199+
ELC_PERIPHERAL_GPT_E = (4),
200+
ELC_PERIPHERAL_GPT_F = (5),
201+
ELC_PERIPHERAL_GPT_G = (6),
202+
ELC_PERIPHERAL_GPT_H = (7),
203+
ELC_PERIPHERAL_ADC0 = (8),
204+
ELC_PERIPHERAL_ADC0_B = (9),
205+
ELC_PERIPHERAL_DAC0 = (12),
206+
ELC_PERIPHERAL_IOPORT1 = (14),
207+
ELC_PERIPHERAL_IOPORT2 = (15),
208+
ELC_PERIPHERAL_IOPORT3 = (16),
209+
ELC_PERIPHERAL_IOPORT4 = (17)
210+
} elc_peripheral_t;
211+
212+
/** Positions of event link set registers (ELSRs) available on this MCU */
213+
#define BSP_ELC_PERIPHERAL_MASK (0x0003D3FFU)
214+
215+
/* UNCRUSTIFY-ON */
216+
/** @} (end addtogroup BSP_MCU_RA4E1) */
217+
218+
#endif

0 commit comments

Comments
 (0)