MAX32520 Peripheral Driver API
Peripheral Driver API for the MAX32520
dma_regs.h
Go to the documentation of this file.
1
8/******************************************************************************
9 *
10 * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
11 * Analog Devices, Inc.),
12 * Copyright (C) 2023-2024 Analog Devices, Inc.
13 *
14 * Licensed under the Apache License, Version 2.0 (the "License");
15 * you may not use this file except in compliance with the License.
16 * You may obtain a copy of the License at
17 *
18 * http://www.apache.org/licenses/LICENSE-2.0
19 *
20 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 * See the License for the specific language governing permissions and
24 * limitations under the License.
25 *
26 ******************************************************************************/
27
28#ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_DMA_REGS_H_
29#define LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_DMA_REGS_H_
30
31/* **** Includes **** */
32#include <stdint.h>
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38#if defined (__ICCARM__)
39 #pragma system_include
40#endif
41
42#if defined (__CC_ARM)
43 #pragma anon_unions
44#endif
46/*
47 If types are not defined elsewhere (CMSIS) define them here
48*/
49#ifndef __IO
50#define __IO volatile
51#endif
52#ifndef __I
53#define __I volatile const
54#endif
55#ifndef __O
56#define __O volatile
57#endif
58#ifndef __R
59#define __R volatile const
60#endif
62
63/* **** Definitions **** */
64
76typedef struct {
77 __IO uint32_t cfg;
78 __IO uint32_t st;
79 __IO uint32_t src;
80 __IO uint32_t dst;
81 __IO uint32_t cnt;
82 __IO uint32_t src_rld;
83 __IO uint32_t dst_rld;
84 __IO uint32_t cnt_rld;
86
87typedef struct {
88 __IO uint32_t cn;
89 __I uint32_t intr;
90 __R uint32_t rsv_0x8_0xff[62];
91 __IO mxc_dma_ch_regs_t ch[8];
92} mxc_dma_regs_t;
93
94/* Register offsets for module DMA */
101#define MXC_R_DMA_CFG ((uint32_t)0x00000000UL)
102#define MXC_R_DMA_ST ((uint32_t)0x00000004UL)
103#define MXC_R_DMA_SRC ((uint32_t)0x00000008UL)
104#define MXC_R_DMA_DST ((uint32_t)0x0000000CUL)
105#define MXC_R_DMA_CNT ((uint32_t)0x00000010UL)
106#define MXC_R_DMA_SRC_RLD ((uint32_t)0x00000014UL)
107#define MXC_R_DMA_DST_RLD ((uint32_t)0x00000018UL)
108#define MXC_R_DMA_CNT_RLD ((uint32_t)0x0000001CUL)
109#define MXC_R_DMA_CN ((uint32_t)0x00000000UL)
110#define MXC_R_DMA_INTR ((uint32_t)0x00000004UL)
111#define MXC_R_DMA_CH ((uint32_t)0x00000100UL)
120#define MXC_F_DMA_CN_CHIEN_POS 0
121#define MXC_F_DMA_CN_CHIEN ((uint32_t)(0xFUL << MXC_F_DMA_CN_CHIEN_POS))
122#define MXC_V_DMA_CN_CHIEN_DIS ((uint32_t)0x0UL)
123#define MXC_S_DMA_CN_CHIEN_DIS (MXC_V_DMA_CN_CHIEN_DIS << MXC_F_DMA_CN_CHIEN_POS)
124#define MXC_V_DMA_CN_CHIEN_EN ((uint32_t)0x1UL)
125#define MXC_S_DMA_CN_CHIEN_EN (MXC_V_DMA_CN_CHIEN_EN << MXC_F_DMA_CN_CHIEN_POS)
135#define MXC_F_DMA_INTR_IPEND_POS 0
136#define MXC_F_DMA_INTR_IPEND ((uint32_t)(0xFUL << MXC_F_DMA_INTR_IPEND_POS))
137#define MXC_V_DMA_INTR_IPEND_INACTIVE ((uint32_t)0x0UL)
138#define MXC_S_DMA_INTR_IPEND_INACTIVE (MXC_V_DMA_INTR_IPEND_INACTIVE << MXC_F_DMA_INTR_IPEND_POS)
139#define MXC_V_DMA_INTR_IPEND_PENDING ((uint32_t)0x1UL)
140#define MXC_S_DMA_INTR_IPEND_PENDING (MXC_V_DMA_INTR_IPEND_PENDING << MXC_F_DMA_INTR_IPEND_POS)
150#define MXC_F_DMA_CFG_CHIEN_POS 0
151#define MXC_F_DMA_CFG_CHIEN ((uint32_t)(0x1UL << MXC_F_DMA_CFG_CHIEN_POS))
153#define MXC_F_DMA_CFG_RLDEN_POS 1
154#define MXC_F_DMA_CFG_RLDEN ((uint32_t)(0x1UL << MXC_F_DMA_CFG_RLDEN_POS))
156#define MXC_F_DMA_CFG_PRI_POS 2
157#define MXC_F_DMA_CFG_PRI ((uint32_t)(0x3UL << MXC_F_DMA_CFG_PRI_POS))
158#define MXC_V_DMA_CFG_PRI_HIGH ((uint32_t)0x0UL)
159#define MXC_S_DMA_CFG_PRI_HIGH (MXC_V_DMA_CFG_PRI_HIGH << MXC_F_DMA_CFG_PRI_POS)
160#define MXC_V_DMA_CFG_PRI_MEDHIGH ((uint32_t)0x1UL)
161#define MXC_S_DMA_CFG_PRI_MEDHIGH (MXC_V_DMA_CFG_PRI_MEDHIGH << MXC_F_DMA_CFG_PRI_POS)
162#define MXC_V_DMA_CFG_PRI_MEDLOW ((uint32_t)0x2UL)
163#define MXC_S_DMA_CFG_PRI_MEDLOW (MXC_V_DMA_CFG_PRI_MEDLOW << MXC_F_DMA_CFG_PRI_POS)
164#define MXC_V_DMA_CFG_PRI_LOW ((uint32_t)0x3UL)
165#define MXC_S_DMA_CFG_PRI_LOW (MXC_V_DMA_CFG_PRI_LOW << MXC_F_DMA_CFG_PRI_POS)
167#define MXC_F_DMA_CFG_REQSEL_POS 4
168#define MXC_F_DMA_CFG_REQSEL ((uint32_t)(0x3FUL << MXC_F_DMA_CFG_REQSEL_POS))
169#define MXC_V_DMA_CFG_REQSEL_MEMTOMEM ((uint32_t)0x0UL)
170#define MXC_S_DMA_CFG_REQSEL_MEMTOMEM (MXC_V_DMA_CFG_REQSEL_MEMTOMEM << MXC_F_DMA_CFG_REQSEL_POS)
171#define MXC_V_DMA_CFG_REQSEL_SPI0RX ((uint32_t)0x1UL)
172#define MXC_S_DMA_CFG_REQSEL_SPI0RX (MXC_V_DMA_CFG_REQSEL_SPI0RX << MXC_F_DMA_CFG_REQSEL_POS)
173#define MXC_V_DMA_CFG_REQSEL_SPI1RX ((uint32_t)0x2UL)
174#define MXC_S_DMA_CFG_REQSEL_SPI1RX (MXC_V_DMA_CFG_REQSEL_SPI1RX << MXC_F_DMA_CFG_REQSEL_POS)
175#define MXC_V_DMA_CFG_REQSEL_I2C0RX ((uint32_t)0x7UL)
176#define MXC_S_DMA_CFG_REQSEL_I2C0RX (MXC_V_DMA_CFG_REQSEL_I2C0RX << MXC_F_DMA_CFG_REQSEL_POS)
177#define MXC_V_DMA_CFG_REQSEL_UART0RX ((uint32_t)0x1CUL)
178#define MXC_S_DMA_CFG_REQSEL_UART0RX (MXC_V_DMA_CFG_REQSEL_UART0RX << MXC_F_DMA_CFG_REQSEL_POS)
179#define MXC_V_DMA_CFG_REQSEL_SPI0TX ((uint32_t)0x21UL)
180#define MXC_S_DMA_CFG_REQSEL_SPI0TX (MXC_V_DMA_CFG_REQSEL_SPI0TX << MXC_F_DMA_CFG_REQSEL_POS)
181#define MXC_V_DMA_CFG_REQSEL_SPI1TX ((uint32_t)0x22UL)
182#define MXC_S_DMA_CFG_REQSEL_SPI1TX (MXC_V_DMA_CFG_REQSEL_SPI1TX << MXC_F_DMA_CFG_REQSEL_POS)
183#define MXC_V_DMA_CFG_REQSEL_I2C0TX ((uint32_t)0x27UL)
184#define MXC_S_DMA_CFG_REQSEL_I2C0TX (MXC_V_DMA_CFG_REQSEL_I2C0TX << MXC_F_DMA_CFG_REQSEL_POS)
185#define MXC_V_DMA_CFG_REQSEL_UART0TX ((uint32_t)0x3CUL)
186#define MXC_S_DMA_CFG_REQSEL_UART0TX (MXC_V_DMA_CFG_REQSEL_UART0TX << MXC_F_DMA_CFG_REQSEL_POS)
188#define MXC_F_DMA_CFG_REQWAIT_POS 10
189#define MXC_F_DMA_CFG_REQWAIT ((uint32_t)(0x1UL << MXC_F_DMA_CFG_REQWAIT_POS))
191#define MXC_F_DMA_CFG_TOSEL_POS 11
192#define MXC_F_DMA_CFG_TOSEL ((uint32_t)(0x7UL << MXC_F_DMA_CFG_TOSEL_POS))
193#define MXC_V_DMA_CFG_TOSEL_TO4 ((uint32_t)0x0UL)
194#define MXC_S_DMA_CFG_TOSEL_TO4 (MXC_V_DMA_CFG_TOSEL_TO4 << MXC_F_DMA_CFG_TOSEL_POS)
195#define MXC_V_DMA_CFG_TOSEL_TO8 ((uint32_t)0x1UL)
196#define MXC_S_DMA_CFG_TOSEL_TO8 (MXC_V_DMA_CFG_TOSEL_TO8 << MXC_F_DMA_CFG_TOSEL_POS)
197#define MXC_V_DMA_CFG_TOSEL_TO16 ((uint32_t)0x2UL)
198#define MXC_S_DMA_CFG_TOSEL_TO16 (MXC_V_DMA_CFG_TOSEL_TO16 << MXC_F_DMA_CFG_TOSEL_POS)
199#define MXC_V_DMA_CFG_TOSEL_TO32 ((uint32_t)0x3UL)
200#define MXC_S_DMA_CFG_TOSEL_TO32 (MXC_V_DMA_CFG_TOSEL_TO32 << MXC_F_DMA_CFG_TOSEL_POS)
201#define MXC_V_DMA_CFG_TOSEL_TO64 ((uint32_t)0x4UL)
202#define MXC_S_DMA_CFG_TOSEL_TO64 (MXC_V_DMA_CFG_TOSEL_TO64 << MXC_F_DMA_CFG_TOSEL_POS)
203#define MXC_V_DMA_CFG_TOSEL_TO128 ((uint32_t)0x5UL)
204#define MXC_S_DMA_CFG_TOSEL_TO128 (MXC_V_DMA_CFG_TOSEL_TO128 << MXC_F_DMA_CFG_TOSEL_POS)
205#define MXC_V_DMA_CFG_TOSEL_TO256 ((uint32_t)0x6UL)
206#define MXC_S_DMA_CFG_TOSEL_TO256 (MXC_V_DMA_CFG_TOSEL_TO256 << MXC_F_DMA_CFG_TOSEL_POS)
207#define MXC_V_DMA_CFG_TOSEL_TO512 ((uint32_t)0x7UL)
208#define MXC_S_DMA_CFG_TOSEL_TO512 (MXC_V_DMA_CFG_TOSEL_TO512 << MXC_F_DMA_CFG_TOSEL_POS)
210#define MXC_F_DMA_CFG_PSSEL_POS 14
211#define MXC_F_DMA_CFG_PSSEL ((uint32_t)(0x3UL << MXC_F_DMA_CFG_PSSEL_POS))
212#define MXC_V_DMA_CFG_PSSEL_DIS ((uint32_t)0x0UL)
213#define MXC_S_DMA_CFG_PSSEL_DIS (MXC_V_DMA_CFG_PSSEL_DIS << MXC_F_DMA_CFG_PSSEL_POS)
214#define MXC_V_DMA_CFG_PSSEL_DIV256 ((uint32_t)0x1UL)
215#define MXC_S_DMA_CFG_PSSEL_DIV256 (MXC_V_DMA_CFG_PSSEL_DIV256 << MXC_F_DMA_CFG_PSSEL_POS)
216#define MXC_V_DMA_CFG_PSSEL_DIV64K ((uint32_t)0x2UL)
217#define MXC_S_DMA_CFG_PSSEL_DIV64K (MXC_V_DMA_CFG_PSSEL_DIV64K << MXC_F_DMA_CFG_PSSEL_POS)
218#define MXC_V_DMA_CFG_PSSEL_DIV16M ((uint32_t)0x3UL)
219#define MXC_S_DMA_CFG_PSSEL_DIV16M (MXC_V_DMA_CFG_PSSEL_DIV16M << MXC_F_DMA_CFG_PSSEL_POS)
221#define MXC_F_DMA_CFG_SRCWD_POS 16
222#define MXC_F_DMA_CFG_SRCWD ((uint32_t)(0x3UL << MXC_F_DMA_CFG_SRCWD_POS))
223#define MXC_V_DMA_CFG_SRCWD_BYTE ((uint32_t)0x0UL)
224#define MXC_S_DMA_CFG_SRCWD_BYTE (MXC_V_DMA_CFG_SRCWD_BYTE << MXC_F_DMA_CFG_SRCWD_POS)
225#define MXC_V_DMA_CFG_SRCWD_HALFWORD ((uint32_t)0x1UL)
226#define MXC_S_DMA_CFG_SRCWD_HALFWORD (MXC_V_DMA_CFG_SRCWD_HALFWORD << MXC_F_DMA_CFG_SRCWD_POS)
227#define MXC_V_DMA_CFG_SRCWD_WORD ((uint32_t)0x2UL)
228#define MXC_S_DMA_CFG_SRCWD_WORD (MXC_V_DMA_CFG_SRCWD_WORD << MXC_F_DMA_CFG_SRCWD_POS)
230#define MXC_F_DMA_CFG_SRCINC_POS 18
231#define MXC_F_DMA_CFG_SRCINC ((uint32_t)(0x1UL << MXC_F_DMA_CFG_SRCINC_POS))
233#define MXC_F_DMA_CFG_DSTWD_POS 20
234#define MXC_F_DMA_CFG_DSTWD ((uint32_t)(0x3UL << MXC_F_DMA_CFG_DSTWD_POS))
235#define MXC_V_DMA_CFG_DSTWD_BYTE ((uint32_t)0x0UL)
236#define MXC_S_DMA_CFG_DSTWD_BYTE (MXC_V_DMA_CFG_DSTWD_BYTE << MXC_F_DMA_CFG_DSTWD_POS)
237#define MXC_V_DMA_CFG_DSTWD_HALFWORD ((uint32_t)0x1UL)
238#define MXC_S_DMA_CFG_DSTWD_HALFWORD (MXC_V_DMA_CFG_DSTWD_HALFWORD << MXC_F_DMA_CFG_DSTWD_POS)
239#define MXC_V_DMA_CFG_DSTWD_WORD ((uint32_t)0x2UL)
240#define MXC_S_DMA_CFG_DSTWD_WORD (MXC_V_DMA_CFG_DSTWD_WORD << MXC_F_DMA_CFG_DSTWD_POS)
242#define MXC_F_DMA_CFG_DSTINC_POS 22
243#define MXC_F_DMA_CFG_DSTINC ((uint32_t)(0x1UL << MXC_F_DMA_CFG_DSTINC_POS))
245#define MXC_F_DMA_CFG_BRST_POS 24
246#define MXC_F_DMA_CFG_BRST ((uint32_t)(0x1FUL << MXC_F_DMA_CFG_BRST_POS))
248#define MXC_F_DMA_CFG_CHDIEN_POS 30
249#define MXC_F_DMA_CFG_CHDIEN ((uint32_t)(0x1UL << MXC_F_DMA_CFG_CHDIEN_POS))
251#define MXC_F_DMA_CFG_CTZIEN_POS 31
252#define MXC_F_DMA_CFG_CTZIEN ((uint32_t)(0x1UL << MXC_F_DMA_CFG_CTZIEN_POS))
262#define MXC_F_DMA_ST_CH_ST_POS 0
263#define MXC_F_DMA_ST_CH_ST ((uint32_t)(0x1UL << MXC_F_DMA_ST_CH_ST_POS))
265#define MXC_F_DMA_ST_IPEND_POS 1
266#define MXC_F_DMA_ST_IPEND ((uint32_t)(0x1UL << MXC_F_DMA_ST_IPEND_POS))
268#define MXC_F_DMA_ST_CTZ_ST_POS 2
269#define MXC_F_DMA_ST_CTZ_ST ((uint32_t)(0x1UL << MXC_F_DMA_ST_CTZ_ST_POS))
271#define MXC_F_DMA_ST_RLD_ST_POS 3
272#define MXC_F_DMA_ST_RLD_ST ((uint32_t)(0x1UL << MXC_F_DMA_ST_RLD_ST_POS))
274#define MXC_F_DMA_ST_BUS_ERR_POS 4
275#define MXC_F_DMA_ST_BUS_ERR ((uint32_t)(0x1UL << MXC_F_DMA_ST_BUS_ERR_POS))
277#define MXC_F_DMA_ST_TO_ST_POS 6
278#define MXC_F_DMA_ST_TO_ST ((uint32_t)(0x1UL << MXC_F_DMA_ST_TO_ST_POS))
292#define MXC_F_DMA_SRC_SRC_POS 0
293#define MXC_F_DMA_SRC_SRC ((uint32_t)(0xFFFFFFFFUL << MXC_F_DMA_SRC_SRC_POS))
307#define MXC_F_DMA_DST_DST_POS 0
308#define MXC_F_DMA_DST_DST ((uint32_t)(0xFFFFFFFFUL << MXC_F_DMA_DST_DST_POS))
321#define MXC_F_DMA_CNT_CNT_POS 0
322#define MXC_F_DMA_CNT_CNT ((uint32_t)(0xFFFFFFUL << MXC_F_DMA_CNT_CNT_POS))
333#define MXC_F_DMA_SRC_RLD_SRC_RLD_POS 0
334#define MXC_F_DMA_SRC_RLD_SRC_RLD ((uint32_t)(0x7FFFFFFFUL << MXC_F_DMA_SRC_RLD_SRC_RLD_POS))
345#define MXC_F_DMA_DST_RLD_DST_RLD_POS 0
346#define MXC_F_DMA_DST_RLD_DST_RLD ((uint32_t)(0x7FFFFFFFUL << MXC_F_DMA_DST_RLD_DST_RLD_POS))
356#define MXC_F_DMA_CNT_RLD_CNT_RLD_POS 0
357#define MXC_F_DMA_CNT_RLD_CNT_RLD ((uint32_t)(0xFFFFFFUL << MXC_F_DMA_CNT_RLD_CNT_RLD_POS))
359#define MXC_F_DMA_CNT_RLD_RLDEN_POS 31
360#define MXC_F_DMA_CNT_RLD_RLDEN ((uint32_t)(0x1UL << MXC_F_DMA_CNT_RLD_RLDEN_POS))
364#ifdef __cplusplus
365}
366#endif
367
368#endif // LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_DMA_REGS_H_
__IO uint32_t dst
Definition: dma_regs.h:80
__IO uint32_t cfg
Definition: dma_regs.h:77
__IO uint32_t src
Definition: dma_regs.h:79
__IO uint32_t cnt
Definition: dma_regs.h:81
__IO uint32_t src_rld
Definition: dma_regs.h:82
__IO uint32_t cnt_rld
Definition: dma_regs.h:84
__IO uint32_t dst_rld
Definition: dma_regs.h:83
__IO uint32_t st
Definition: dma_regs.h:78
Definition: dma_regs.h:76