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