1 /*
2 * Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6 
7 /*******************************************************************************************************************//**
8  * @addtogroup BSP_MCU_RZG3S
9  * @{
10  **********************************************************************************************************************/
11 
12 /** @} (end addtogroup BSP_MCU_RZG3S) */
13 
14 #ifndef BSP_OVERRIDE_H
15 #define BSP_OVERRIDE_H
16 
17 /***********************************************************************************************************************
18  * Includes   <System Includes> , "Project Includes"
19  **********************************************************************************************************************/
20 
21 /***********************************************************************************************************************
22  * Macro definitions
23  **********************************************************************************************************************/
24 
25 /* Define overrides required for this MCU. */
26 #define BSP_OVERRIDE_ADC_INCLUDE
27 #define BSP_OVERRIDE_ADC_INFO_T
28 #define BSP_OVERRIDE_BSP_ACC_CONTROL_IP_T
29 #define BSP_OVERRIDE_BSP_ACCESS_CONTROL
30 #define BSP_OVERRIDE_BSP_PIN_T
31 #define BSP_OVERRIDE_BSP_PORT_T
32 #define BSP_OVERRIDE_DMAC_B_EXTERNAL_DETECTION_T
33 #define BSP_OVERRIDE_FSP_IP_T
34 #define BSP_OVERRIDE_FSP_PRIV_CLOCK_T
35 #define BSP_OVERRIDE_IOPORT_PERIPHERAL_T
36 #define BSP_OVERRIDE_TRANSFER_ADDR_MODE_T
37 #define BSP_OVERRIDE_TRANSFER_INFO_T
38 #define BSP_OVERRIDE_TRANSFER_MODE_T
39 #define BSP_OVERRIDE_TRANSFER_SIZE_T
40 
41 /* Override definitions. */
42 
43 /*==============================================
44  * Access Control Level Configuration Macros Overrides
45  *==============================================*/
46 
47 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SRAM0        (R_SYSC->SYS_SLVACCCTL0)
48 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SRAM0        (R_SYSC_SYS_SLVACCCTL0_SRAM0_SL_Pos)
49 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SRAM1        (R_SYSC->SYS_SLVACCCTL0)
50 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SRAM1        (R_SYSC_SYS_SLVACCCTL0_SRAM1_SL_Pos)
51 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SRAM2        (R_SYSC->SYS_SLVACCCTL0)
52 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SRAM2        (R_SYSC_SYS_SLVACCCTL0_SRAM2_SL_Pos)
53 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SRAM3        (R_SYSC->SYS_SLVACCCTL0)
54 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SRAM3        (R_SYSC_SYS_SLVACCCTL0_SRAM3_SL_Pos)
55 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TZC0         (R_SYSC->SYS_SLVACCCTL2)
56 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TZC0         (R_SYSC_SYS_SLVACCCTL2_TZC0_SL_Pos)
57 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TZC1         (R_SYSC->SYS_SLVACCCTL2)
58 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TZC1         (R_SYSC_SYS_SLVACCCTL2_TZC1_SL_Pos)
59 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TZC2         (R_SYSC->SYS_SLVACCCTL2)
60 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TZC2         (R_SYSC_SYS_SLVACCCTL2_TZC2_SL_Pos)
61 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TZC3         (R_SYSC->SYS_SLVACCCTL2)
62 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TZC3         (R_SYSC_SYS_SLVACCCTL2_TZC3_SL_Pos)
63 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TZC5         (R_SYSC->SYS_SLVACCCTL2)
64 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TZC5         (R_SYSC_SYS_SLVACCCTL2_TZC5_SL_Pos)
65 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TZC6         (R_SYSC->SYS_SLVACCCTL2)
66 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TZC6         (R_SYSC_SYS_SLVACCCTL2_TZC6_SL_Pos)
67 #define BSP_ACCESS_CONTROL_REG_ACCCNT_CST          (R_SYSC->SYS_SLVACCCTL3)
68 #define BSP_ACCESS_CONTROL_POS_ACCCNT_CST          (R_SYSC_SYS_SLVACCCTL3_CST_SL_Pos)
69 #define BSP_ACCESS_CONTROL_REG_ACCCNT_CPG          (R_SYSC->SYS_SLVACCCTL3)
70 #define BSP_ACCESS_CONTROL_POS_ACCCNT_CPG          (R_SYSC_SYS_SLVACCCTL3_CPG_SL_Pos)
71 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SYSC         (R_SYSC->SYS_SLVACCCTL3)
72 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SYSC         (R_SYSC_SYS_SLVACCCTL3_SYSC_SL_Pos)
73 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SYC          (R_SYSC->SYS_SLVACCCTL3)
74 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SYC          (R_SYSC_SYS_SLVACCCTL3_SYC_SL_Pos)
75 #define BSP_ACCESS_CONTROL_REG_ACCCNT_GIC          (R_SYSC->SYS_SLVACCCTL3)
76 #define BSP_ACCESS_CONTROL_POS_ACCCNT_GIC          (R_SYSC_SYS_SLVACCCTL3_GIC_SL_Pos)
77 #define BSP_ACCESS_CONTROL_REG_ACCCNT_IA55_IM33    (R_SYSC->SYS_SLVACCCTL3)
78 #define BSP_ACCESS_CONTROL_POS_ACCCNT_IA55_IM33    (R_SYSC_SYS_SLVACCCTL3_IA55_IM33_SL_Pos)
79 #define BSP_ACCESS_CONTROL_REG_ACCCNT_GPIO         (R_SYSC->SYS_SLVACCCTL3)
80 #define BSP_ACCESS_CONTROL_POS_ACCCNT_GPIO         (R_SYSC_SYS_SLVACCCTL3_GPIO_SL_Pos)
81 #define BSP_ACCESS_CONTROL_REG_ACCCNT_MHU          (R_SYSC->SYS_SLVACCCTL3)
82 #define BSP_ACCESS_CONTROL_POS_ACCCNT_MHU          (R_SYSC_SYS_SLVACCCTL3_MHU_SL_Pos)
83 #define BSP_ACCESS_CONTROL_REG_ACCCNT_DMAC0        (R_SYSC->SYS_SLVACCCTL4)
84 #define BSP_ACCESS_CONTROL_POS_ACCCNT_DMAC0        (R_SYSC_SYS_SLVACCCTL4_DMAC0_SL_Pos)
85 #define BSP_ACCESS_CONTROL_REG_ACCCNT_DMAC1        (R_SYSC->SYS_SLVACCCTL4)
86 #define BSP_ACCESS_CONTROL_POS_ACCCNT_DMAC1        (R_SYSC_SYS_SLVACCCTL4_DMAC1_SL_Pos)
87 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM0        (R_SYSC->SYS_SLVACCCTL4)
88 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM0        (R_SYSC_SYS_SLVACCCTL4_OSTM0_SL_Pos)
89 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM1        (R_SYSC->SYS_SLVACCCTL4)
90 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM1        (R_SYSC_SYS_SLVACCCTL4_OSTM1_SL_Pos)
91 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM2        (R_SYSC->SYS_SLVACCCTL4)
92 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM2        (R_SYSC_SYS_SLVACCCTL4_OSTM2_SL_Pos)
93 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM3        (R_SYSC->SYS_SLVACCCTL4)
94 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM3        (R_SYSC_SYS_SLVACCCTL4_OSTM3_SL_Pos)
95 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM4        (R_SYSC->SYS_SLVACCCTL4)
96 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM4        (R_SYSC_SYS_SLVACCCTL4_OSTM4_SL_Pos)
97 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM5        (R_SYSC->SYS_SLVACCCTL4)
98 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM5        (R_SYSC_SYS_SLVACCCTL4_OSTM5_SL_Pos)
99 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM6        (R_SYSC->SYS_SLVACCCTL4)
100 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM6        (R_SYSC_SYS_SLVACCCTL4_OSTM6_SL_Pos)
101 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OSTM7        (R_SYSC->SYS_SLVACCCTL4)
102 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OSTM7        (R_SYSC_SYS_SLVACCCTL4_OSTM7_SL_Pos)
103 #define BSP_ACCESS_CONTROL_REG_ACCCNT_WDT0         (R_SYSC->SYS_SLVACCCTL4)
104 #define BSP_ACCESS_CONTROL_POS_ACCCNT_WDT0         (R_SYSC_SYS_SLVACCCTL4_WDT0_SL_Pos)
105 #define BSP_ACCESS_CONTROL_REG_ACCCNT_WDT1         (R_SYSC->SYS_SLVACCCTL4)
106 #define BSP_ACCESS_CONTROL_POS_ACCCNT_WDT1         (R_SYSC_SYS_SLVACCCTL4_WDT1_SL_Pos)
107 #define BSP_ACCESS_CONTROL_REG_ACCCNT_WDT2         (R_SYSC->SYS_SLVACCCTL4)
108 #define BSP_ACCESS_CONTROL_POS_ACCCNT_WDT2         (R_SYSC_SYS_SLVACCCTL4_WDT2_SL_Pos)
109 #define BSP_ACCESS_CONTROL_REG_ACCCNT_RTC          (R_SYSC->SYS_SLVACCCTL4)
110 #define BSP_ACCESS_CONTROL_POS_ACCCNT_RTC          (R_SYSC_SYS_SLVACCCTL4_RTC_SL_Pos)
111 #define BSP_ACCESS_CONTROL_REG_ACCCNT_MTU3A        (R_SYSC->SYS_SLVACCCTL5)
112 #define BSP_ACCESS_CONTROL_POS_ACCCNT_MTU3A        (R_SYSC_SYS_SLVACCCTL5_MTU3A_SL_Pos)
113 #define BSP_ACCESS_CONTROL_REG_ACCCNT_POE3         (R_SYSC->SYS_SLVACCCTL5)
114 #define BSP_ACCESS_CONTROL_POS_ACCCNT_POE3         (R_SYSC_SYS_SLVACCCTL5_POE3_SL_Pos)
115 #define BSP_ACCESS_CONTROL_REG_ACCCNT_GPT          (R_SYSC->SYS_SLVACCCTL5)
116 #define BSP_ACCESS_CONTROL_POS_ACCCNT_GPT          (R_SYSC_SYS_SLVACCCTL5_GPT_SL_Pos)
117 #define BSP_ACCESS_CONTROL_REG_ACCCNT_POEG         (R_SYSC->SYS_SLVACCCTL5)
118 #define BSP_ACCESS_CONTROL_POS_ACCCNT_POEG         (R_SYSC_SYS_SLVACCCTL5_POEG_SL_Pos)
119 #define BSP_ACCESS_CONTROL_REG_ACCCNT_DDR          (R_SYSC->SYS_SLVACCCTL5)
120 #define BSP_ACCESS_CONTROL_POS_ACCCNT_DDR          (R_SYSC_SYS_SLVACCCTL5_DDR_SL_Pos)
121 #define BSP_ACCESS_CONTROL_REG_ACCCNT_XSPI         (R_SYSC->SYS_SLVACCCTL5)
122 #define BSP_ACCESS_CONTROL_POS_ACCCNT_XSPI         (R_SYSC_SYS_SLVACCCTL5_XSPI_SL_Pos)
123 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OCTA         (R_SYSC->SYS_SLVACCCTL5)
124 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OCTA         (R_SYSC_SYS_SLVACCCTL5_OCTA_SL_Pos)
125 #define BSP_ACCESS_CONTROL_REG_ACCCNT_USBT         (R_SYSC->SYS_SLVACCCTL6)
126 #define BSP_ACCESS_CONTROL_POS_ACCCNT_USBT         (R_SYSC_SYS_SLVACCCTL6_USBT_SL_Pos)
127 #define BSP_ACCESS_CONTROL_REG_ACCCNT_USB20        (R_SYSC->SYS_SLVACCCTL6)
128 #define BSP_ACCESS_CONTROL_POS_ACCCNT_USB20        (R_SYSC_SYS_SLVACCCTL6_USB20_SL_Pos)
129 #define BSP_ACCESS_CONTROL_REG_ACCCNT_USB21        (R_SYSC->SYS_SLVACCCTL6)
130 #define BSP_ACCESS_CONTROL_POS_ACCCNT_USB21        (R_SYSC_SYS_SLVACCCTL6_USB21_SL_Pos)
131 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SDHI0        (R_SYSC->SYS_SLVACCCTL6)
132 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SDHI0        (R_SYSC_SYS_SLVACCCTL6_SDHI0_SL_Pos)
133 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SDHI1        (R_SYSC->SYS_SLVACCCTL6)
134 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SDHI1        (R_SYSC_SYS_SLVACCCTL6_SDHI1_SL_Pos)
135 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SDHI2        (R_SYSC->SYS_SLVACCCTL6)
136 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SDHI2        (R_SYSC_SYS_SLVACCCTL6_SDHI2_SL_Pos)
137 #define BSP_ACCESS_CONTROL_REG_ACCCNT_ETH0         (R_SYSC->SYS_SLVACCCTL6)
138 #define BSP_ACCESS_CONTROL_POS_ACCCNT_ETH0         (R_SYSC_SYS_SLVACCCTL6_ETH0_SL_Pos)
139 #define BSP_ACCESS_CONTROL_REG_ACCCNT_ETH1         (R_SYSC->SYS_SLVACCCTL6)
140 #define BSP_ACCESS_CONTROL_POS_ACCCNT_ETH1         (R_SYSC_SYS_SLVACCCTL6_ETH1_SL_Pos)
141 #define BSP_ACCESS_CONTROL_REG_ACCCNT_PCIE         (R_SYSC->SYS_SLVACCCTL6)
142 #define BSP_ACCESS_CONTROL_POS_ACCCNT_PCIE         (R_SYSC_SYS_SLVACCCTL6_PCIE_SL_Pos)
143 #define BSP_ACCESS_CONTROL_REG_ACCCNT_I2C0         (R_SYSC->SYS_SLVACCCTL7)
144 #define BSP_ACCESS_CONTROL_POS_ACCCNT_I2C0         (R_SYSC_SYS_SLVACCCTL7_I2C0_SL_Pos)
145 #define BSP_ACCESS_CONTROL_REG_ACCCNT_I2C1         (R_SYSC->SYS_SLVACCCTL7)
146 #define BSP_ACCESS_CONTROL_POS_ACCCNT_I2C1         (R_SYSC_SYS_SLVACCCTL7_I2C1_SL_Pos)
147 #define BSP_ACCESS_CONTROL_REG_ACCCNT_I2C2         (R_SYSC->SYS_SLVACCCTL7)
148 #define BSP_ACCESS_CONTROL_POS_ACCCNT_I2C2         (R_SYSC_SYS_SLVACCCTL7_I2C2_SL_Pos)
149 #define BSP_ACCESS_CONTROL_REG_ACCCNT_I2C3         (R_SYSC->SYS_SLVACCCTL7)
150 #define BSP_ACCESS_CONTROL_POS_ACCCNT_I2C3         (R_SYSC_SYS_SLVACCCTL7_I2C3_SL_Pos)
151 #define BSP_ACCESS_CONTROL_REG_ACCCNT_I3C          (R_SYSC->SYS_SLVACCCTL7)
152 #define BSP_ACCESS_CONTROL_POS_ACCCNT_I3C          (R_SYSC_SYS_SLVACCCTL7_I3C_SL_Pos)
153 #define BSP_ACCESS_CONTROL_REG_ACCCNT_CANFD        (R_SYSC->SYS_SLVACCCTL7)
154 #define BSP_ACCESS_CONTROL_POS_ACCCNT_CANFD        (R_SYSC_SYS_SLVACCCTL7_CANFD_SL_Pos)
155 #define BSP_ACCESS_CONTROL_REG_ACCCNT_RSPI0        (R_SYSC->SYS_SLVACCCTL7)
156 #define BSP_ACCESS_CONTROL_POS_ACCCNT_RSPI0        (R_SYSC_SYS_SLVACCCTL7_RSPI0_SL_Pos)
157 #define BSP_ACCESS_CONTROL_REG_ACCCNT_RSPI1        (R_SYSC->SYS_SLVACCCTL7)
158 #define BSP_ACCESS_CONTROL_POS_ACCCNT_RSPI1        (R_SYSC_SYS_SLVACCCTL7_RSPI1_SL_Pos)
159 #define BSP_ACCESS_CONTROL_REG_ACCCNT_RSPI2        (R_SYSC->SYS_SLVACCCTL7)
160 #define BSP_ACCESS_CONTROL_POS_ACCCNT_RSPI2        (R_SYSC_SYS_SLVACCCTL7_RSPI2_SL_Pos)
161 #define BSP_ACCESS_CONTROL_REG_ACCCNT_RSPI3        (R_SYSC->SYS_SLVACCCTL7)
162 #define BSP_ACCESS_CONTROL_POS_ACCCNT_RSPI3        (R_SYSC_SYS_SLVACCCTL7_RSPI3_SL_Pos)
163 #define BSP_ACCESS_CONTROL_REG_ACCCNT_RSPI4        (R_SYSC->SYS_SLVACCCTL7)
164 #define BSP_ACCESS_CONTROL_POS_ACCCNT_RSPI4        (R_SYSC_SYS_SLVACCCTL7_RSPI4_SL_Pos)
165 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCIF0        (R_SYSC->SYS_SLVACCCTL8)
166 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCIF0        (R_SYSC_SYS_SLVACCCTL8_SCIF0_SL_Pos)
167 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCIF1        (R_SYSC->SYS_SLVACCCTL8)
168 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCIF1        (R_SYSC_SYS_SLVACCCTL8_SCIF1_SL_Pos)
169 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCIF2        (R_SYSC->SYS_SLVACCCTL8)
170 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCIF2        (R_SYSC_SYS_SLVACCCTL8_SCIF2_SL_Pos)
171 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCIF3        (R_SYSC->SYS_SLVACCCTL8)
172 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCIF3        (R_SYSC_SYS_SLVACCCTL8_SCIF3_SL_Pos)
173 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCIF4        (R_SYSC->SYS_SLVACCCTL8)
174 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCIF4        (R_SYSC_SYS_SLVACCCTL8_SCIF4_SL_Pos)
175 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCIF5        (R_SYSC->SYS_SLVACCCTL8)
176 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCIF5        (R_SYSC_SYS_SLVACCCTL8_SCIF5_SL_Pos)
177 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCI0         (R_SYSC->SYS_SLVACCCTL8)
178 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCI0         (R_SYSC_SYS_SLVACCCTL8_SCI0_SL_Pos)
179 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SCI1         (R_SYSC->SYS_SLVACCCTL8)
180 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SCI1         (R_SYSC_SYS_SLVACCCTL8_SCI1_SL_Pos)
181 #define BSP_ACCESS_CONTROL_REG_ACCCNT_IRDA         (R_SYSC->SYS_SLVACCCTL8)
182 #define BSP_ACCESS_CONTROL_POS_ACCCNT_IRDA         (R_SYSC_SYS_SLVACCCTL8_IRDA_SL_Pos)
183 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SSIF0        (R_SYSC->SYS_SLVACCCTL9)
184 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SSIF0        (R_SYSC_SYS_SLVACCCTL9_SSIF0_SL_Pos)
185 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SSIF1        (R_SYSC->SYS_SLVACCCTL9)
186 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SSIF1        (R_SYSC_SYS_SLVACCCTL9_SSIF1_SL_Pos)
187 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SSIF2        (R_SYSC->SYS_SLVACCCTL9)
188 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SSIF2        (R_SYSC_SYS_SLVACCCTL9_SSIF2_SL_Pos)
189 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SSIF3        (R_SYSC->SYS_SLVACCCTL9)
190 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SSIF3        (R_SYSC_SYS_SLVACCCTL9_SSIF3_SL_Pos)
191 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SRC          (R_SYSC->SYS_SLVACCCTL9)
192 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SRC          (R_SYSC_SYS_SLVACCCTL9_SRC_SL_Pos)
193 #define BSP_ACCESS_CONTROL_REG_ACCCNT_SPDIF        (R_SYSC->SYS_SLVACCCTL9)
194 #define BSP_ACCESS_CONTROL_POS_ACCCNT_SPDIF        (R_SYSC_SYS_SLVACCCTL9_SPDIF_SL_Pos)
195 #define BSP_ACCESS_CONTROL_REG_ACCCNT_PDM          (R_SYSC->SYS_SLVACCCTL9)
196 #define BSP_ACCESS_CONTROL_POS_ACCCNT_PDM          (R_SYSC_SYS_SLVACCCTL9_PDM_SL_Pos)
197 #define BSP_ACCESS_CONTROL_REG_ACCCNT_ADC          (R_SYSC->SYS_SLVACCCTL10)
198 #define BSP_ACCESS_CONTROL_POS_ACCCNT_ADC          (R_SYSC_SYS_SLVACCCTL10_ADC_SL_Pos)
199 #define BSP_ACCESS_CONTROL_REG_ACCCNT_TSU          (R_SYSC->SYS_SLVACCCTL10)
200 #define BSP_ACCESS_CONTROL_POS_ACCCNT_TSU          (R_SYSC_SYS_SLVACCCTL10_TSU_SL_Pos)
201 #define BSP_ACCESS_CONTROL_REG_ACCCNT_OTP          (R_SYSC->SYS_SLVACCCTL11)
202 #define BSP_ACCESS_CONTROL_POS_ACCCNT_OTP          (R_SYSC_SYS_SLVACCCTL11_OTP_SL_Pos)
203 #define BSP_ACCESS_CONTROL_REG_ACCCNT_VBATT        (R_SYSC->SYS_SLVACCCTL11)
204 #define BSP_ACCESS_CONTROL_POS_ACCCNT_VBATT        (R_SYSC_SYS_SLVACCCTL11_VBATT_SL_Pos)
205 #define BSP_ACCESS_CONTROL_REG_ACCCNT_CA55         (R_SYSC->SYS_SLVACCCTL12)
206 #define BSP_ACCESS_CONTROL_POS_ACCCNT_CA55         (R_SYSC_SYS_SLVACCCTL12_CA55_SL_Pos)
207 #define BSP_ACCESS_CONTROL_REG_ACCCNT_CM33         (R_SYSC->SYS_SLVACCCTL12)
208 #define BSP_ACCESS_CONTROL_POS_ACCCNT_CM33         (R_SYSC_SYS_SLVACCCTL12_CM33_SL_Pos)
209 #define BSP_ACCESS_CONTROL_REG_ACCCNT_CM33FPU      (R_SYSC->SYS_SLVACCCTL12)
210 #define BSP_ACCESS_CONTROL_POS_ACCCNT_CM33FPU      (R_SYSC_SYS_SLVACCCTL12_CM33FPU_SL_Pos)
211 #define BSP_ACCESS_CONTROL_REG_ACCCNT_LSI          (R_SYSC->SYS_SLVACCCTL14)
212 #define BSP_ACCESS_CONTROL_POS_ACCCNT_LSI          (R_SYSC_SYS_SLVACCCTL14_LSI_SL_Pos)
213 #define BSP_ACCESS_CONTROL_REG_ACCCNT_AOF          (R_SYSC->SYS_SLVACCCTL16)
214 #define BSP_ACCESS_CONTROL_POS_ACCCNT_AOF          (R_SYSC_SYS_SLVACCCTL16_AOF_SL_Pos)
215 #define BSP_ACCESS_CONTROL_REG_ACCCNT_LP           (R_SYSC->SYS_SLVACCCTL17)
216 #define BSP_ACCESS_CONTROL_POS_ACCCNT_LP           (R_SYSC_SYS_SLVACCCTL17_LP_SL_Pos)
217 #define BSP_ACCESS_CONTROL_REG_ACCCNT_GPREG        (R_SYSC->SYS_SLVACCCTL18)
218 #define BSP_ACCESS_CONTROL_POS_ACCCNT_GPREG        (R_SYSC_SYS_SLVACCCTL18_GPREG_SL_Pos)
219 #define BSP_ACCESS_CONTROL_REG_ACCCNT_IPCONT       (R_SYSC->SYS_SLVACCCTL20)
220 #define BSP_ACCESS_CONTROL_POS_ACCCNT_IPCONT       (R_SYSC_SYS_SLVACCCTL20_IPCONT_SL_Pos)
221 
222 /*==============================================
223  * CPG control macros Overrides
224  *==============================================*/
225 
226 #define BSP_CLKON_REG_FSP_IP_GTM(channel)      (R_CPG->CPG_CLKON_GTM)
227 #define BSP_CLKON_BIT_FSP_IP_GTM(channel)      (1U << (R_CPG_CPG_CLKON_GTM_CLK0_ON_Pos + (channel)))
228 #define BSP_CLKMON_REG_FSP_IP_GTM(channel)     (R_CPG->CPG_CLKMON_GTM)
229 #define BSP_CLKMON_BIT_FSP_IP_GTM(channel)     (1U << (R_CPG_CPG_CLKMON_GTM_CLK0_MON_Pos + (channel)))
230 #define BSP_RST_REG_FSP_IP_GTM(channel)        (R_CPG->CPG_RST_GTM)
231 #define BSP_RST_BIT_FSP_IP_GTM(channel)        (1U << (R_CPG_CPG_RST_GTM_UNIT0_RSTB_Pos + (channel)))
232 #define BSP_RSTMON_REG_FSP_IP_GTM(channel)     (R_CPG->CPG_RSTMON_GTM)
233 #define BSP_RSTMON_BIT_FSP_IP_GTM(channel)     (1U << (R_CPG_CPG_RSTMON_GTM_RST0_MON_Pos + (channel)))
234 
235 #define BSP_CLKON_REG_FSP_IP_XSPI(channel)     (R_CPG->CPG_CLKON_SPI)
236 #define BSP_CLKON_BIT_FSP_IP_XSPI(channel)     (0xFU << (R_CPG_CPG_CLKON_SPI_CLK0_ON_Pos))
237 #define BSP_CLKMON_REG_FSP_IP_XSPI(channel)    (R_CPG->CPG_CLKMON_SPI)
238 #define BSP_CLKMON_BIT_FSP_IP_XSPI(channel)    (0xFU << (R_CPG_CPG_CLKMON_SPI_CLK0_MON_Pos))
239 #define BSP_RST_REG_FSP_IP_XSPI(channel)       (R_CPG->CPG_RST_SPI)
240 #define BSP_RST_BIT_FSP_IP_XSPI(channel)       (3U << (R_CPG_CPG_RST_SPI_UNIT0_RSTB_Pos))
241 #define BSP_RSTMON_REG_FSP_IP_XSPI(channel)    (R_CPG->CPG_RSTMON_SPI)
242 #define BSP_RSTMON_BIT_FSP_IP_XSPI(channel)    (3U << (R_CPG_CPG_RSTMON_SPI_RST0_MON_Pos))
243 
244 #define BSP_DELAY_LOOP_CYCLES    (49)
245 
246 #define BSP_MSTP_REG_FSP_IP_SCIF(channel)      *((4U >= \
247                                                   channel) ? &R_CPG->CPG_BUS_MCPU2_MSTOP : &R_CPG->CPG_BUS_MCPU3_MSTOP)
248 #define BSP_MSTP_BIT_FSP_IP_SCIF(channel)      ((4U >=                                                                  \
249                                                  channel) ? (1U << (R_CPG_CPG_BUS_MCPU2_MSTOP_MSTOP1_ON_Pos + channel)) \
250                                                 : (1U << R_CPG_CPG_BUS_MCPU3_MSTOP_MSTOP4_ON_Pos))
251 
252 #define BSP_MSTP_REG_FSP_IP_XSPI(channel)      R_CPG->CPG_BUS_MCPU1_MSTOP
253 #define BSP_MSTP_BIT_FSP_IP_XSPI(channel)      (1U << R_CPG_CPG_BUS_MCPU1_MSTOP_MSTOP1_ON_Pos)
254 
255 #define BSP_MSTP_REG_FSP_IP_RSPI(channel)      *((1U >= channel) ? &R_CPG->CPG_BUS_MCPU1_MSTOP    \
256                                                  : ((2U == channel) ? &R_CPG->CPG_BUS_MCPU2_MSTOP \
257                                                     : &R_CPG->CPG_BUS_MCPU3_MSTOP))
258 #define BSP_MSTP_BIT_FSP_IP_RSPI(channel)      ((1U >=                                                                   \
259                                                  channel) ? (1U << (R_CPG_CPG_BUS_MCPU1_MSTOP_MSTOP14_ON_Pos + channel)) \
260                                                 : ((2U == channel) ? (1U << R_CPG_CPG_BUS_MCPU2_MSTOP_MSTOP0_ON_Pos)     \
261                                                    : (1U <<                                                              \
262                                                       (R_CPG_CPG_BUS_MCPU3_MSTOP_MSTOP2_ON_Pos +                         \
263                                                        (uint32_t) (channel - 3)))))
264 
265 /*==============================================
266  * IOPORT-Related Macros Overrides
267  *==============================================*/
268 
269 #define OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET    (24)
270 
271 /*==============================================
272  * SYSC-Related Macros Overrides
273  *==============================================*/
274 
275 #if BSP_CURRENT_CORE == RZG3S_CORE_CM33
276  #define R_BSP_IM33_DISABLE()       {R_SYSC->SYS_LP_CTL7 = R_SYSC->SYS_LP_CTL7 | \
277                                                            R_SYSC_SYS_LP_CTL7_IM33_MASK_Msk;}
278  #define R_BSP_IM33_ENABLE()        {R_SYSC->SYS_LP_CTL7 = R_SYSC->SYS_LP_CTL7 & \
279                                                            ~R_SYSC_SYS_LP_CTL7_IM33_MASK_Msk;}
280  #define R_BSP_WAIT_CM33_RESET()    {while ((R_SYSC->SYS_LP_CM33CTL0 &                      \
281                                              R_SYSC_SYS_LP_CM33CTL0_SYSRESETREQ_Msk) == 0U) \
282                                      { /* wait */};                                         \
283 }
284 #elif BSP_CURRENT_CORE == RZG3S_CORE_CM33_FPU
285  #define R_BSP_IM33_DISABLE()       {R_SYSC->SYS_LP_CTL7 = R_SYSC->SYS_LP_CTL7 | \
286                                                            R_SYSC_SYS_LP_CTL7_IM33FPU_MASK_Msk;}
287  #define R_BSP_IM33_ENABLE()        {R_SYSC->SYS_LP_CTL7 = R_SYSC->SYS_LP_CTL7 & \
288                                                            ~R_SYSC_SYS_LP_CTL7_IM33FPU_MASK_Msk;}
289  #define R_BSP_WAIT_CM33_RESET()    {while ((R_SYSC->SYS_LP_CM33FPUCTL0 &                      \
290                                              R_SYSC_SYS_LP_CM33FPUCTL0_SYSRESETREQ_Msk) == 0U) \
291                                      { /* wait */};                                            \
292 }
293 #endif
294 
295 /***********************************************************************************************************************
296  * Typedef definitions
297  **********************************************************************************************************************/
298 
299 /*==============================================
300  * BSP-Related Definitions Overrides
301  *==============================================*/
302 
303 /** Superset list of all possible IO ports. */
304 typedef enum e_bsp_io_port
305 {
306     BSP_IO_PORT_00 = 0x0000,           /* IO port 0 */
307     BSP_IO_PORT_01 = 0x1000,           /* IO port 1 */
308     BSP_IO_PORT_02 = 0x1100,           /* IO port 2 */
309     BSP_IO_PORT_03 = 0x1200,           /* IO port 3 */
310     BSP_IO_PORT_04 = 0x1300,           /* IO port 4 */
311     BSP_IO_PORT_05 = 0x0100,           /* IO port 5 */
312     BSP_IO_PORT_06 = 0x0200,           /* IO port 6 */
313     BSP_IO_PORT_07 = 0x1400,           /* IO port 7 */
314     BSP_IO_PORT_08 = 0x1500,           /* IO port 8 */
315     BSP_IO_PORT_09 = 0x1600,           /* IO port 9 */
316     BSP_IO_PORT_10 = 0x1700,           /* IO port 10 */
317     BSP_IO_PORT_11 = 0x0300,           /* IO port 11 */
318     BSP_IO_PORT_12 = 0x0400,           /* IO port 12 */
319     BSP_IO_PORT_13 = 0x0500,           /* IO port 13 */
320     BSP_IO_PORT_14 = 0x0600,           /* IO port 14 */
321     BSP_IO_PORT_15 = 0x0700,           /* IO port 15 */
322     BSP_IO_PORT_16 = 0x0800,           /* IO port 16 */
323     BSP_IO_PORT_17 = 0x0900,           /* IO port 17 */
324     BSP_IO_PORT_18 = 0x0A00,           /* IO port 18 */
325 } bsp_io_port_t;
326 
327 /** Superset list of all possible IO port pins. */
328 typedef enum e_bsp_io_port_pin_t
329 {
330     BSP_IO_PORT_00_PIN_00 = 0x0000,     /* IO port 0 pin 0 */
331     BSP_IO_PORT_00_PIN_01 = 0x0001,     /* IO port 0 pin 1 */
332     BSP_IO_PORT_00_PIN_02 = 0x0002,     /* IO port 0 pin 2 */
333     BSP_IO_PORT_00_PIN_03 = 0x0003,     /* IO port 0 pin 3 */
334 
335     BSP_IO_PORT_05_PIN_00 = 0x0100,     /* IO port 5 pin 0 */
336     BSP_IO_PORT_05_PIN_01 = 0x0101,     /* IO port 5 pin 1 */
337     BSP_IO_PORT_05_PIN_02 = 0x0102,     /* IO port 5 pin 2 */
338     BSP_IO_PORT_05_PIN_03 = 0x0103,     /* IO port 5 pin 3 */
339     BSP_IO_PORT_05_PIN_04 = 0x0104,     /* IO port 5 pin 4 */
340 
341     BSP_IO_PORT_06_PIN_00 = 0x0200,     /* IO port 6 pin 0 */
342     BSP_IO_PORT_06_PIN_01 = 0x0201,     /* IO port 6 pin 1 */
343     BSP_IO_PORT_06_PIN_02 = 0x0202,     /* IO port 6 pin 2 */
344     BSP_IO_PORT_06_PIN_03 = 0x0203,     /* IO port 6 pin 3 */
345     BSP_IO_PORT_06_PIN_04 = 0x0204,     /* IO port 6 pin 4 */
346 
347     BSP_IO_PORT_11_PIN_00 = 0x0300,     /* IO port 11 pin 0 */
348     BSP_IO_PORT_11_PIN_01 = 0x0301,     /* IO port 11 pin 1 */
349     BSP_IO_PORT_11_PIN_02 = 0x0302,     /* IO port 11 pin 2 */
350     BSP_IO_PORT_11_PIN_03 = 0x0303,     /* IO port 11 pin 3 */
351 
352     BSP_IO_PORT_12_PIN_00 = 0x0400,     /* IO port 12 pin 0 */
353     BSP_IO_PORT_12_PIN_01 = 0x0401,     /* IO port 12 pin 1 */
354 
355     BSP_IO_PORT_13_PIN_00 = 0x0500,     /* IO port 13 pin 0 */
356     BSP_IO_PORT_13_PIN_01 = 0x0501,     /* IO port 13 pin 1 */
357     BSP_IO_PORT_13_PIN_02 = 0x0502,     /* IO port 13 pin 2 */
358     BSP_IO_PORT_13_PIN_03 = 0x0503,     /* IO port 13 pin 3 */
359     BSP_IO_PORT_13_PIN_04 = 0x0504,     /* IO port 13 pin 4 */
360 
361     BSP_IO_PORT_14_PIN_00 = 0x0600,     /* IO port 14 pin 0 */
362     BSP_IO_PORT_14_PIN_01 = 0x0601,     /* IO port 14 pin 1 */
363     BSP_IO_PORT_14_PIN_02 = 0x0602,     /* IO port 14 pin 2 */
364 
365     BSP_IO_PORT_15_PIN_00 = 0x0700,     /* IO port 15 pin 0 */
366     BSP_IO_PORT_15_PIN_01 = 0x0701,     /* IO port 15 pin 1 */
367     BSP_IO_PORT_15_PIN_02 = 0x0702,     /* IO port 15 pin 2 */
368     BSP_IO_PORT_15_PIN_03 = 0x0703,     /* IO port 15 pin 3 */
369 
370     BSP_IO_PORT_16_PIN_00 = 0x0800,     /* IO port 16 pin 0 */
371     BSP_IO_PORT_16_PIN_01 = 0x0801,     /* IO port 16 pin 1 */
372 
373     BSP_IO_PORT_17_PIN_00 = 0x0900,     /* IO port 17 pin 0 */
374     BSP_IO_PORT_17_PIN_01 = 0x0901,     /* IO port 17 pin 1 */
375     BSP_IO_PORT_17_PIN_02 = 0x0902,     /* IO port 17 pin 2 */
376     BSP_IO_PORT_17_PIN_03 = 0x0903,     /* IO port 17 pin 3 */
377 
378     BSP_IO_PORT_18_PIN_00 = 0x0A00,     /* IO port 18 pin 0 */
379     BSP_IO_PORT_18_PIN_01 = 0x0A01,     /* IO port 18 pin 1 */
380     BSP_IO_PORT_18_PIN_02 = 0x0A02,     /* IO port 18 pin 2 */
381     BSP_IO_PORT_18_PIN_03 = 0x0A03,     /* IO port 18 pin 3 */
382     BSP_IO_PORT_18_PIN_04 = 0x0A04,     /* IO port 18 pin 4 */
383     BSP_IO_PORT_18_PIN_05 = 0x0A05,     /* IO port 18 pin 5 */
384 
385     BSP_IO_PORT_01_PIN_00 = 0x1000,     /* IO port 1 pin 0 */
386     BSP_IO_PORT_01_PIN_01 = 0x1001,     /* IO port 1 pin 1 */
387     BSP_IO_PORT_01_PIN_02 = 0x1002,     /* IO port 1 pin 2 */
388     BSP_IO_PORT_01_PIN_03 = 0x1003,     /* IO port 1 pin 3 */
389     BSP_IO_PORT_01_PIN_04 = 0x1004,     /* IO port 1 pin 4 */
390 
391     BSP_IO_PORT_02_PIN_00 = 0x1100,     /* IO port 2 pin 0 */
392     BSP_IO_PORT_02_PIN_01 = 0x1101,     /* IO port 2 pin 1 */
393     BSP_IO_PORT_02_PIN_02 = 0x1102,     /* IO port 2 pin 2 */
394     BSP_IO_PORT_02_PIN_03 = 0x1103,     /* IO port 2 pin 3 */
395 
396     BSP_IO_PORT_03_PIN_00 = 0x1200,     /* IO port 3 pin 0 */
397     BSP_IO_PORT_03_PIN_01 = 0x1201,     /* IO port 3 pin 1 */
398     BSP_IO_PORT_03_PIN_02 = 0x1202,     /* IO port 3 pin 2 */
399     BSP_IO_PORT_03_PIN_03 = 0x1203,     /* IO port 3 pin 3 */
400 
401     BSP_IO_PORT_04_PIN_00 = 0x1300,     /* IO port 4 pin 0 */
402     BSP_IO_PORT_04_PIN_01 = 0x1301,     /* IO port 4 pin 1 */
403     BSP_IO_PORT_04_PIN_02 = 0x1302,     /* IO port 4 pin 2 */
404     BSP_IO_PORT_04_PIN_03 = 0x1303,     /* IO port 4 pin 3 */
405     BSP_IO_PORT_04_PIN_04 = 0x1304,     /* IO port 4 pin 4 */
406     BSP_IO_PORT_04_PIN_05 = 0x1305,     /* IO port 4 pin 5 */
407 
408     BSP_IO_PORT_07_PIN_00 = 0x1400,     /* IO port 7 pin 0 */
409     BSP_IO_PORT_07_PIN_01 = 0x1401,     /* IO port 7 pin 1 */
410     BSP_IO_PORT_07_PIN_02 = 0x1402,     /* IO port 7 pin 2 */
411     BSP_IO_PORT_07_PIN_03 = 0x1403,     /* IO port 7 pin 3 */
412     BSP_IO_PORT_07_PIN_04 = 0x1404,     /* IO port 7 pin 4 */
413 
414     BSP_IO_PORT_08_PIN_00 = 0x1500,     /* IO port 8 pin 0 */
415     BSP_IO_PORT_08_PIN_01 = 0x1501,     /* IO port 8 pin 1 */
416     BSP_IO_PORT_08_PIN_02 = 0x1502,     /* IO port 8 pin 2 */
417     BSP_IO_PORT_08_PIN_03 = 0x1503,     /* IO port 8 pin 3 */
418     BSP_IO_PORT_08_PIN_04 = 0x1504,     /* IO port 8 pin 4 */
419 
420     BSP_IO_PORT_09_PIN_00 = 0x1600,     /* IO port 9 pin 0 */
421     BSP_IO_PORT_09_PIN_01 = 0x1601,     /* IO port 9 pin 1 */
422     BSP_IO_PORT_09_PIN_02 = 0x1602,     /* IO port 9 pin 2 */
423     BSP_IO_PORT_09_PIN_03 = 0x1603,     /* IO port 9 pin 3 */
424 
425     BSP_IO_PORT_10_PIN_00 = 0x1700,     /* IO port 10 pin 0 */
426     BSP_IO_PORT_10_PIN_01 = 0x1701,     /* IO port 10 pin 1 */
427     BSP_IO_PORT_10_PIN_02 = 0x1702,     /* IO port 10 pin 2 */
428     BSP_IO_PORT_10_PIN_03 = 0x1703,     /* IO port 10 pin 3 */
429     BSP_IO_PORT_10_PIN_04 = 0x1704,     /* IO port 10 pin 4 */
430 
431     /* Special purpose port */
432     BSP_IO_NMI = 0xFFFF0000,            /* NMI */
433 
434     BSP_IO_TMS_SWDIO = 0xFFFF0100,      /* TMS_SWDIO */
435     BSP_IO_TDO       = 0xFFFF0101,      /* TDO */
436 
437     BSP_IO_AUDIO_CLK1 = 0xFFFF0200,     /* AUDIO_CLK1 */
438     BSP_IO_AUDIO_CLK2 = 0xFFFF0201,     /* AUDIO_CLK2 */
439 
440     BSP_IO_XSPI_SPCLK   = 0xFFFF0400,   /* XSPI_SPCLK */
441     BSP_IO_XSPI_RESET_N = 0xFFFF0401,   /* XSPI_RESET_N */
442     BSP_IO_XSPI_WP_N    = 0xFFFF0402,   /* XSPI_WP_N */
443     BSP_IO_XSPI_DS      = 0xFFFF0403,   /* XSPI_DS */
444     BSP_IO_XSPI_CS0_N   = 0xFFFF0404,   /* XSPI_CS0_N */
445     BSP_IO_XSPI_CS1_N   = 0xFFFF0405,   /* XSPI_CS1_N */
446 
447     BSP_IO_XSPI_IO0 = 0xFFFF0500,       /* XSPI_IO0 */
448     BSP_IO_XSPI_IO1 = 0xFFFF0501,       /* XSPI_IO1 */
449     BSP_IO_XSPI_IO2 = 0xFFFF0502,       /* XSPI_IO2 */
450     BSP_IO_XSPI_IO3 = 0xFFFF0503,       /* XSPI_IO3 */
451     BSP_IO_XSPI_IO4 = 0xFFFF0504,       /* XSPI_IO4 */
452     BSP_IO_XSPI_IO5 = 0xFFFF0505,       /* XSPI_IO5 */
453     BSP_IO_XSPI_IO6 = 0xFFFF0506,       /* XSPI_IO6 */
454     BSP_IO_XSPI_IO7 = 0xFFFF0507,       /* XSPI_IO7 */
455 
456     BSP_IO_WDTOVF_PERROUT = 0xFFFF0600, /* WDTOVF_PERROUT */
457 
458     BSP_IO_I3C_SDA = 0xFFFF0900,        /* I3C_SDA */
459     BSP_IO_I3C_SCL = 0xFFFF0901,        /* I3C_SCL */
460 
461     BSP_IO_SD0_CLK   = 0xFFFF1000,      /* CD0_CLK */
462     BSP_IO_SD0_CMD   = 0xFFFF1001,      /* CD0_CMD */
463     BSP_IO_SD0_RST_N = 0xFFFF1002,      /* CD0_RST_N */
464 
465     BSP_IO_SD0_DATA0 = 0xFFFF1100,      /* SD0_DATA0 */
466     BSP_IO_SD0_DATA1 = 0xFFFF1101,      /* SD0_DATA1 */
467     BSP_IO_SD0_DATA2 = 0xFFFF1102,      /* SD0_DATA2 */
468     BSP_IO_SD0_DATA3 = 0xFFFF1103,      /* SD0_DATA3 */
469     BSP_IO_SD0_DATA4 = 0xFFFF1104,      /* SD0_DATA4 */
470     BSP_IO_SD0_DATA5 = 0xFFFF1105,      /* SD0_DATA5 */
471     BSP_IO_SD0_DATA6 = 0xFFFF1106,      /* SD0_DATA6 */
472     BSP_IO_SD0_DATA7 = 0xFFFF1107,      /* SD0_DATA7 */
473 
474     BSP_IO_SD1_CLK = 0xFFFF1200,        /* SD1_CLK */
475     BSP_IO_SD1_CMD = 0xFFFF1201,        /* SD1_CMD */
476 
477     BSP_IO_SD1_DATA0 = 0xFFFF1300,      /* SD1_DATA0 */
478     BSP_IO_SD1_DATA1 = 0xFFFF1301,      /* SD1_DATA1 */
479     BSP_IO_SD1_DATA2 = 0xFFFF1302,      /* SD1_DATA2 */
480     BSP_IO_SD1_DATA3 = 0xFFFF1303,      /* SD1_DATA3 */
481 } bsp_io_port_pin_t;
482 
483 /*==============================================
484  * DMAC_B External Detection Overrides
485  *==============================================*/
486 
487  /** Detection method of the external DMA request signal. See RZ/T2M hardware manual Table 14.19 DMA Transfer Request Detection Operation Setting Table. */
488 typedef enum e_dmac_b_external_detection
489 {
490     DMAC_B_EXTERNAL_DETECTION_NO_DETECTION = 0,   ///< Not using hardware detection.
491 } dmac_b_external_detection_t;
492 
493 /** access control. */
494 typedef enum e_acc_control_ip
495 {
496     ACCCNT_SRAM0 = 0,
497     ACCCNT_SRAM1,
498     ACCCNT_SRAM2,
499     ACCCNT_SRAM3,
500     ACCCNT_TZC0,
501     ACCCNT_TZC1,
502     ACCCNT_TZC2,
503     ACCCNT_TZC3,
504     ACCCNT_TZC5,
505     ACCCNT_TZC6,
506     ACCCNT_CST,
507     ACCCNT_CPG,
508     ACCCNT_SYSC,
509     ACCCNT_SYC,
510     ACCCNT_GIC,
511     ACCCNT_IA55_IM33,
512     ACCCNT_GPIO,
513     ACCCNT_MHU,
514     ACCCNT_DMAC0,
515     ACCCNT_DMAC1,
516     ACCCNT_OSTM0,
517     ACCCNT_OSTM1,
518     ACCCNT_OSTM2,
519     ACCCNT_OSTM3,
520     ACCCNT_OSTM4,
521     ACCCNT_OSTM5,
522     ACCCNT_OSTM6,
523     ACCCNT_OSTM7,
524     ACCCNT_WDT0,
525     ACCCNT_WDT1,
526     ACCCNT_WDT2,
527     ACCCNT_RTC,
528     ACCCNT_MTU3A,
529     ACCCNT_POE3,
530     ACCCNT_GPT,
531     ACCCNT_POEG,
532     ACCCNT_DDR,
533     ACCCNT_XSPI,
534     ACCCNT_OCTA,
535     ACCCNT_USBT,
536     ACCCNT_USB20,
537     ACCCNT_USB21,
538     ACCCNT_SDHI0,
539     ACCCNT_SDHI1,
540     ACCCNT_SDHI2,
541     ACCCNT_ETH0,
542     ACCCNT_ETH1,
543     ACCCNT_PCIE,
544     ACCCNT_I2C0,
545     ACCCNT_I2C1,
546     ACCCNT_I2C2,
547     ACCCNT_I2C3,
548     ACCCNT_I3C,
549     ACCCNT_CANFD,
550     ACCCNT_RSPI0,
551     ACCCNT_RSPI1,
552     ACCCNT_RSPI2,
553     ACCCNT_RSPI3,
554     ACCCNT_RSPI4,
555     ACCCNT_SCIF0,
556     ACCCNT_SCIF1,
557     ACCCNT_SCIF2,
558     ACCCNT_SCIF3,
559     ACCCNT_SCIF4,
560     ACCCNT_SCIF5,
561     ACCCNT_SCI0,
562     ACCCNT_SCI1,
563     ACCCNT_IRDA,
564     ACCCNT_SSIF0,
565     ACCCNT_SSIF1,
566     ACCCNT_SSIF2,
567     ACCCNT_SSIF3,
568     ACCCNT_SRC,
569     ACCCNT_SPDIF,
570     ACCCNT_PDM,
571     ACCCNT_ADC,
572     ACCCNT_TSU,
573     ACCCNT_OTP,
574     ACCCNT_VBATT,
575     ACCCNT_CA55,
576     ACCCNT_CM33,
577     ACCCNT_CM33FPU,
578     ACCCNT_LSI,
579     ACCCNT_AOF,
580     ACCCNT_LP,
581     ACCCNT_GPREG,
582     ACCCNT_IPCONT,
583 } fsp_acc_control_ip_t;
584 
585 /** Available modules. */
586 typedef enum e_fsp_ip
587 {
588     FSP_IP_GTM    = 0,                 ///< General Timer
589     FSP_IP_GPT    = 1,                 ///< General PWM Timer
590     FSP_IP_POEG   = 2,                 ///< Port Output Enable for GPT
591     FSP_IP_PORT   = 3,                 ///< I/O Ports
592     FSP_IP_IM33   = 4,                 ///< IM33 (Interrupt controller)
593     FSP_IP_SCIF   = 5,                 ///< Serial Communications Interface with FIFO
594     FSP_IP_RIIC   = 6,                 ///< I2C Bus Interface
595     FSP_IP_RSPI   = 7,                 ///< Renesas Serial Peripheral Interface
596     FSP_IP_MHU    = 8,                 ///< Message Handling Unit
597     FSP_IP_DMAC   = 9,                 ///< Direct Memory Access Controller
598     FSP_IP_DMAC_s = 9,                 ///< Direct Memory Access Controller
599     FSP_IP_SSI    = 10,                ///< Serial Sound Interface
600     FSP_IP_CANFD  = 11,                ///< CANFD Interface (RS-CANFD)
601     FSP_IP_ADC    = 12,                ///< A/D Converter
602     FSP_IP_TSU    = 13,                ///< Thermal Sensor Unit
603     FSP_IP_WDT    = 14,                ///< Watchdog Timer
604     FSP_IP_SCI    = 15,                ///< Serial Communications Interface
605     FSP_IP_XSPI   = 16                 ///< Expanded Serial Peripheral Interface
606 } fsp_ip_t;
607 
608 /* Private enum used in R_FSP_SystemClockHzGet. */
609 typedef enum e_fsp_priv_clock
610 {
611     FSP_PRIV_CLOCK_ICLK = 0,           /* Cortex-A55 Clock */
612     FSP_PRIV_CLOCK_I2CLK,              /* Cortex-M33 Clock */
613     FSP_PRIV_CLOCK_I3CLK,              /* Cortex-M33 FPU Clock */
614     FSP_PRIV_CLOCK_S0CLK,              /* DDR-PHY Clock */
615     FSP_PRIV_CLOCK_OC0CLK,             /* OCTA0 Clock */
616     FSP_PRIV_CLOCK_OC1CLK,             /* OCTA1 Clock */
617     FSP_PRIV_CLOCK_SPI0CLK,            /* SPI0 Clock */
618     FSP_PRIV_CLOCK_SPI1CLK,            /* SPI1 Clock */
619     FSP_PRIV_CLOCK_SD0CLK,             /* SDH0 Clock */
620     FSP_PRIV_CLOCK_SD1CLK,             /* SDH1 Clock */
621     FSP_PRIV_CLOCK_SD2CLK,             /* SDH2 Clock */
622     FSP_PRIV_CLOCK_M0CLK,              /* VCP, LCDC Clock */
623     FSP_PRIV_CLOCK_HPCLK,              /* Ethernet Clock */
624     FSP_PRIV_CLOCK_TSUCLK,             /* TSU Clock */
625     FSP_PRIV_CLOCK_ZTCLK,              /* JAUTH Clock */
626     FSP_PRIV_CLOCK_P0CLK,              /* APB-BUS Clock */
627     FSP_PRIV_CLOCK_P1CLK,              /* AXI-BUS Clock */
628     FSP_PRIV_CLOCK_P2CLK,              /* P2CLK */
629     FSP_PRIV_CLOCK_P3CLK,              /* P3CLK */
630     FSP_PRIV_CLOCK_P4CLK,              /* P4CLK */
631     FSP_PRIV_CLOCK_P5CLK,              /* P5CLK */
632     FSP_PRIV_CLOCK_ATCLK,              /* ATCLK */
633     FSP_PRIV_CLOCK_OSCCLK,             /* OSC Clock */
634     FSP_PRIV_CLOCK_OSCCLK2,            /* OSC2 Clock */
635     FSP_PRIV_CLOCK_NUM,
636 } fsp_priv_clock_t;
637 
638 /*==============================================
639  * IOPORT Overrides
640  *==============================================*/
641 
642 /** Superset of all peripheral functions.  */
643 typedef enum e_ioport_peripheral
644 {
645     /** Pin will function as a Mode1 peripheral pin */
646     IOPORT_PERIPHERAL_MODE1 = (0x0UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
647 
648     /** Pin will function as a Mode2 peripheral pin */
649     IOPORT_PERIPHERAL_MODE2 = (0x1UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
650 
651     /** Pin will function as a Mode3 peripheral pin */
652     IOPORT_PERIPHERAL_MODE3 = (0x2UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
653 
654     /** Pin will function as a Mode4 peripheral pin */
655     IOPORT_PERIPHERAL_MODE4 = (0x3UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
656 
657     /** Pin will function as a Mode5 peripheral pin */
658     IOPORT_PERIPHERAL_MODE5 = (0x4UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
659 
660     /** Pin will function as a Mode6 peripheral pin */
661     IOPORT_PERIPHERAL_MODE6 = (0x5UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
662 
663     /** Pin will function as a Mode7 peripheral pin */
664     IOPORT_PERIPHERAL_MODE7 = (0x6UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
665 
666     /** Pin will function as a Mode8 peripheral pin */
667     IOPORT_PERIPHERAL_MODE8 = (0x7UL << OVERRIDE_IOPORT_PRV_PFS_PSEL_OFFSET),
668 } ioport_peripheral_t;
669 
670 /*==============================================
671  * Transfer API Overrides
672  *==============================================*/
673 
674 /** Transfer mode describes what will happen when a transfer request occurs. */
675 typedef enum e_transfer_mode
676 {
677     /** Normal mode. */
678     TRANSFER_MODE_NORMAL = 0,
679 
680     /** Block mode. */
681     TRANSFER_MODE_BLOCK = 1
682 } transfer_mode_t;
683 
684 /** Transfer size specifies the size of each individual transfer. */
685 typedef enum e_transfer_size
686 {
687     TRANSFER_SIZE_1_BYTE   = 0,        ///< Each transfer transfers a 8-bit value
688     TRANSFER_SIZE_2_BYTE   = 1,        ///< Each transfer transfers a 16-bit value
689     TRANSFER_SIZE_4_BYTE   = 2,        ///< Each transfer transfers a 32-bit value
690     TRANSFER_SIZE_8_BYTE   = 3,        ///< Each transfer transfers a 64-bit value
691     TRANSFER_SIZE_16_BYTE  = 4,        ///< Each transfer transfers a 128-bit value
692     TRANSFER_SIZE_32_BYTE  = 5,        ///< Each transfer transfers a 256-bit value
693     TRANSFER_SIZE_64_BYTE  = 6,        ///< Each transfer transfers a 512-bit value
694     TRANSFER_SIZE_128_BYTE = 7         ///< Each transfer transfers a 1024-bit value
695 } transfer_size_t;
696 
697 /** Address mode specifies whether to modify (increment or decrement) pointer after each transfer. */
698 typedef enum e_transfer_addr_mode
699 {
700     /** Address pointer is incremented by associated @ref transfer_size_t after each transfer. */
701     TRANSFER_ADDR_MODE_INCREMENTED = 0,
702 
703     /** Address pointer remains fixed after each transfer. */
704     TRANSFER_ADDR_MODE_FIXED = 1
705 } transfer_addr_mode_t;
706 
707 typedef struct st_transfer_info
708 {
709     /** Select what happens to destination address after each transfer. */
710     transfer_addr_mode_t dest_addr_mode;
711 
712     /** Select what happens to source address after each transfer. */
713     transfer_addr_mode_t src_addr_mode;
714 
715     /** Select mode from @ref transfer_mode_t. */
716     transfer_mode_t mode;
717 
718     /** Source address. */
719     void const * volatile p_src;
720 
721     /** Destination address. */
722     void * volatile p_dest;
723 
724     /** The total number of transfer bytes. */
725     volatile uint32_t length;
726 
727     /** Select source data size to transfer at once. */
728     transfer_size_t src_size;
729 
730     /** Select destination data size to transfer at once. */
731     transfer_size_t dest_size;
732 
733     /** Next1 Register set settings */
734     void const * p_next1_src;
735     void       * p_next1_dest;
736     uint32_t     next1_length;
737 } transfer_info_t;
738 
739 /*==============================================
740  * ADC API Overrides
741  *==============================================*/
742 
743 /** ADC Information Structure for Transfer Interface */
744 typedef struct st_adc_info
745 {
746     volatile const void * p_address;         ///< The address to start reading the data from
747     uint32_t              length;            ///< The total number of transfers to read
748     transfer_size_t       transfer_size;     ///< The size of each transfer
749     uint32_t              calibration_data1; ///< Temperature sensor calibration data1
750     uint32_t              calibration_data2; ///< Temperature sensor calibration data2
751 } adc_info_t;
752 
753 /***********************************************************************************************************************
754  * Exported global variables
755  **********************************************************************************************************************/
756 
757 /***********************************************************************************************************************
758  * Exported global functions (to be accessed by other files)
759  **********************************************************************************************************************/
760 
761 #endif
762