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 * File Name : dmac_b_iodefine.h 9 * Version : 1.00 10 * Description : IO define file for dmac. 11 *********************************************************************************************************************/ 12 13 /* =========================================================================================================================== */ 14 /* ================ Device Specific Cluster Section ================ */ 15 /* =========================================================================================================================== */ 16 17 /* =========================================================================================================================== */ 18 /* ================ Device Specific Peripheral Section ================ */ 19 /* =========================================================================================================================== */ 20 21 #ifndef DMAC_B_IODEFINE_H 22 #define DMAC_B_IODEFINE_H 23 24 typedef struct 25 { 26 __IOM uint32_t SA; 27 __IOM uint32_t DA; 28 __IOM uint32_t TB; 29 } R_DMAC_B0_GRP_CH_N_Type; 30 31 typedef struct 32 { 33 __IOM R_DMAC_B0_GRP_CH_N_Type N[2]; 34 __IM uint32_t CRSA; 35 __IM uint32_t CRDA; 36 __IM uint32_t CRTB; 37 38 union 39 { 40 __IM uint32_t CHSTAT; 41 42 struct 43 { 44 __IM uint32_t EN : 1; 45 __IM uint32_t RQST : 1; 46 __IM uint32_t TACT : 1; 47 __IM uint32_t SUS : 1; 48 __IM uint32_t ER : 1; 49 __IM uint32_t END : 1; 50 __IM uint32_t TC : 1; 51 __IM uint32_t SR : 1; 52 __IM uint32_t DL : 1; 53 __IM uint32_t DW : 1; 54 __IM uint32_t DER : 1; 55 __IM uint32_t MODE : 1; 56 uint32_t : 4; 57 __IM uint32_t INTMSK : 1; 58 uint32_t : 15; 59 } CHSTAT_b; 60 }; 61 62 union 63 { 64 __IOM uint32_t CHCTRL; 65 66 struct 67 { 68 __IOM uint32_t SETEN : 1; 69 __IOM uint32_t CLREN : 1; 70 __IOM uint32_t STG : 1; 71 __IOM uint32_t SWRST : 1; 72 __IOM uint32_t CLRRQ : 1; 73 __IOM uint32_t CLREND : 1; 74 __IOM uint32_t CLRTC : 1; 75 uint32_t : 1; 76 __IOM uint32_t SETSUS : 1; 77 __IOM uint32_t CLRSUS : 1; 78 uint32_t : 6; 79 __IOM uint32_t SETINTMSK : 1; 80 __IOM uint32_t CLRINTMSK : 1; 81 uint32_t : 14; 82 } CHCTRL_b; 83 }; 84 85 union 86 { 87 __IOM uint32_t CHCFG; 88 89 struct 90 { 91 __IOM uint32_t SEL : 3; 92 __IOM uint32_t REQD : 1; 93 __IOM uint32_t LOEN : 1; 94 __IOM uint32_t HIEN : 1; 95 __IOM uint32_t LVL : 1; 96 uint32_t : 1; 97 __IOM uint32_t AM : 3; 98 uint32_t : 1; 99 __IOM uint32_t SDS : 4; 100 __IOM uint32_t DDS : 4; 101 __IOM uint32_t SAD : 1; 102 __IOM uint32_t DAD : 1; 103 __IOM uint32_t TM : 1; 104 uint32_t : 1; 105 __IOM uint32_t DEM : 1; 106 __IOM uint32_t TCM : 1; 107 uint32_t : 1; 108 __IOM uint32_t SBE : 1; 109 __IOM uint32_t RSEL : 1; 110 __IOM uint32_t RSW : 1; 111 __IOM uint32_t REN : 1; 112 __IOM uint32_t DMS : 1; 113 } CHCFG_b; 114 }; 115 116 union 117 { 118 __IOM uint32_t CHITVL; 119 120 struct 121 { 122 __IOM uint32_t ITVL : 16; 123 uint32_t : 16; 124 } CHITVL_b; 125 }; 126 127 union 128 { 129 __IOM uint32_t CHEXT; 130 131 struct 132 { 133 __IOM uint32_t SPR : 3; 134 uint32_t : 1; 135 __IOM uint32_t SCA : 4; 136 __IOM uint32_t DPR : 3; 137 uint32_t : 1; 138 __IOM uint32_t DCA : 4; 139 uint32_t : 16; 140 } CHEXT_b; 141 }; 142 143 __IOM uint32_t NXLA; 144 __IM uint32_t CRLA; 145 } R_DMAC_B0_GRP_CH_Type; 146 147 typedef struct 148 { 149 __IOM R_DMAC_B0_GRP_CH_Type CH[8]; 150 __IM uint32_t RESERVED[64]; 151 152 union 153 { 154 __IOM uint32_t DCTRL; 155 156 struct 157 { 158 __IOM uint32_t PR : 1; 159 __IOM uint32_t LVINT : 1; 160 uint32_t : 14; 161 __IOM uint32_t LDPR : 3; 162 uint32_t : 1; 163 __IOM uint32_t LDCA : 4; 164 __IOM uint32_t LWPR : 3; 165 uint32_t : 1; 166 __IOM uint32_t LWCA : 4; 167 } DCTRL_b; 168 }; 169 170 __IM uint32_t RESERVED1[3]; 171 172 union 173 { 174 __IM uint32_t DSTAT_EN; 175 176 struct 177 { 178 __IM uint32_t EN0 : 1; 179 __IM uint32_t EN1 : 1; 180 __IM uint32_t EN2 : 1; 181 __IM uint32_t EN3 : 1; 182 __IM uint32_t EN4 : 1; 183 __IM uint32_t EN5 : 1; 184 __IM uint32_t EN6 : 1; 185 __IM uint32_t EN7 : 1; 186 uint32_t : 24; 187 } DSTAT_EN_b; 188 }; 189 190 union 191 { 192 __IM uint32_t DSTAT_ER; 193 194 struct 195 { 196 __IM uint32_t ER0 : 1; 197 __IM uint32_t ER1 : 1; 198 __IM uint32_t ER2 : 1; 199 __IM uint32_t ER3 : 1; 200 __IM uint32_t ER4 : 1; 201 __IM uint32_t ER5 : 1; 202 __IM uint32_t ER6 : 1; 203 __IM uint32_t ER7 : 1; 204 uint32_t : 24; 205 } DSTAT_ER_b; 206 }; 207 208 union 209 { 210 __IM uint32_t DSTAT_END; 211 212 struct 213 { 214 __IM uint32_t END0 : 1; 215 __IM uint32_t END1 : 1; 216 __IM uint32_t END2 : 1; 217 __IM uint32_t END3 : 1; 218 __IM uint32_t END4 : 1; 219 __IM uint32_t END5 : 1; 220 __IM uint32_t END6 : 1; 221 __IM uint32_t END7 : 1; 222 uint32_t : 24; 223 } DSTAT_END_b; 224 }; 225 226 union 227 { 228 __IM uint32_t DST_TC; 229 230 struct 231 { 232 __IM uint32_t TC0 : 1; 233 __IM uint32_t TC1 : 1; 234 __IM uint32_t TC2 : 1; 235 __IM uint32_t TC3 : 1; 236 __IM uint32_t TC4 : 1; 237 __IM uint32_t TC5 : 1; 238 __IM uint32_t TC6 : 1; 239 __IM uint32_t TC7 : 1; 240 uint32_t : 24; 241 } DST_TC_b; 242 }; 243 244 union 245 { 246 __IM uint32_t DSTAT_SUS; 247 248 struct 249 { 250 __IM uint32_t SUS0 : 1; 251 __IM uint32_t SUS1 : 1; 252 __IM uint32_t SUS2 : 1; 253 __IM uint32_t SUS3 : 1; 254 __IM uint32_t SUS4 : 1; 255 __IM uint32_t SUS5 : 1; 256 __IM uint32_t SUS6 : 1; 257 __IM uint32_t SUS7 : 1; 258 uint32_t : 24; 259 } DSTAT_SUS_b; 260 }; 261 __IM uint32_t RESERVED3[55]; 262 } R_DMAC_B0_GRP_Type; 263 264 typedef struct 265 { 266 __IOM R_DMAC_B0_GRP_Type GRP[2]; 267 } R_DMAC_B0_Type; 268 269 typedef struct 270 { 271 union 272 { 273 __IOM uint32_t DMARS0; 274 struct 275 { 276 __IOM uint32_t CH0_RID : 2; 277 __IOM uint32_t CH0_MID : 8; 278 uint32_t : 6; 279 __IOM uint32_t CH1_RID : 2; 280 __IOM uint32_t CH1_MID : 8; 281 uint32_t : 6; 282 } DMARS0_b; 283 }; 284 union 285 { 286 __IOM uint32_t DMARS1; 287 struct 288 { 289 __IOM uint32_t CH2_RID : 2; 290 __IOM uint32_t CH2_MID : 8; 291 uint32_t : 6; 292 __IOM uint32_t CH3_RID : 2; 293 __IOM uint32_t CH3_MID : 8; 294 uint32_t : 6; 295 } DMARS1_b; 296 }; 297 union 298 { 299 __IOM uint32_t DMARS2; 300 struct 301 { 302 __IOM uint32_t CH4_RID : 2; 303 __IOM uint32_t CH4_MID : 8; 304 uint32_t : 6; 305 __IOM uint32_t CH5_RID : 2; 306 __IOM uint32_t CH5_MID : 8; 307 uint32_t : 6; 308 } DMARS2_b; 309 }; 310 union 311 { 312 __IOM uint32_t DMARS3; 313 struct 314 { 315 __IOM uint32_t CH6_RID : 2; 316 __IOM uint32_t CH6_MID : 8; 317 uint32_t : 6; 318 __IOM uint32_t CH7_RID : 2; 319 __IOM uint32_t CH7_MID : 8; 320 uint32_t : 6; 321 } DMARS3_b; 322 }; 323 union 324 { 325 __IOM uint32_t DMARS4; 326 struct 327 { 328 __IOM uint32_t CH8_RID : 2; 329 __IOM uint32_t CH8_MID : 8; 330 uint32_t : 6; 331 __IOM uint32_t CH9_RID : 2; 332 __IOM uint32_t CH9_MID : 8; 333 uint32_t : 6; 334 } DMARS4_b; 335 }; 336 union 337 { 338 __IOM uint32_t DMARS5; 339 struct 340 { 341 __IOM uint32_t CH10_RID : 2; 342 __IOM uint32_t CH10_MID : 8; 343 uint32_t : 6; 344 __IOM uint32_t CH11_RID : 2; 345 __IOM uint32_t CH11_MID : 8; 346 uint32_t : 6; 347 } DMARS5_b; 348 }; 349 union 350 { 351 __IOM uint32_t DMARS6; 352 struct 353 { 354 __IOM uint32_t CH12_RID : 2; 355 __IOM uint32_t CH12_MID : 8; 356 uint32_t : 6; 357 __IOM uint32_t CH13_RID : 2; 358 __IOM uint32_t CH13_MID : 8; 359 uint32_t : 6; 360 } DMARS6_b; 361 }; 362 union 363 { 364 __IOM uint32_t DMARS7; 365 struct 366 { 367 __IOM uint32_t CH14_RID : 2; 368 __IOM uint32_t CH14_MID : 8; 369 uint32_t : 6; 370 __IOM uint32_t CH15_RID : 2; 371 __IOM uint32_t CH15_MID : 8; 372 uint32_t : 6; 373 } DMARS7_b; 374 }; 375 } R_DMAC_B0_EX_Type; 376 377 /* =========================================================================================================================== */ 378 /* ================ Device Specific Peripheral Address Map ================ */ 379 /* =========================================================================================================================== */ 380 #define R_DMAC_B0_BASE 0x41800000 381 #define R_DMAC_B1_BASE 0x41820000 382 #define R_DMAC_B0_EX_BASE 0x41810000 383 #define R_DMAC_B1_EX_BASE 0x41830000 384 385 /* =========================================================================================================================== */ 386 /* ================ Peripheral declaration ================ */ 387 /* =========================================================================================================================== */ 388 #define R_DMAC_B0 ((R_DMAC_B0_Type *) R_DMAC_B0_BASE) 389 #define R_DMAC_B1 ((R_DMAC_B0_Type *) R_DMAC_B1_BASE) 390 #define R_DMAC_B0_EX ((R_DMAC_B0_EX_Type *) R_DMAC_B0_EX_BASE) 391 #define R_DMAC_B1_EX ((R_DMAC_B0_EX_Type *) R_DMAC_B1_EX_BASE) 392 393 #endif 394