MAX32665 Peripheral Driver API
Peripheral Driver API for the MAX32665
uart_regs.h
1 
6 /* ****************************************************************************
7  * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
8  *
9  * Permission is hereby granted, free of charge, to any person obtaining a
10  * copy of this software and associated documentation files (the "Software"),
11  * to deal in the Software without restriction, including without limitation
12  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13  * and/or sell copies of the Software, and to permit persons to whom the
14  * Software is furnished to do so, subject to the following conditions:
15  *
16  * The above copyright notice and this permission notice shall be included
17  * in all copies or substantial portions of the Software.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22  * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
23  * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  * OTHER DEALINGS IN THE SOFTWARE.
26  *
27  * Except as contained in this notice, the name of Maxim Integrated
28  * Products, Inc. shall not be used except as stated in the Maxim Integrated
29  * Products, Inc. Branding Policy.
30  *
31  * The mere transfer of this software does not imply any licenses
32  * of trade secrets, proprietary technology, copyrights, patents,
33  * trademarks, maskwork rights, or any other form of intellectual
34  * property whatsoever. Maxim Integrated Products, Inc. retains all
35  * ownership rights.
36  *
37  *
38  *************************************************************************** */
39 
40 #ifndef _UART_REGS_H_
41 #define _UART_REGS_H_
42 
43 /* **** Includes **** */
44 #include <stdint.h>
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 #if defined (__ICCARM__)
51  #pragma system_include
52 #endif
53 
54 #if defined (__CC_ARM)
55  #pragma anon_unions
56 #endif
57 /*
59  If types are not defined elsewhere (CMSIS) define them here
60 */
61 #ifndef __IO
62 #define __IO volatile
63 #endif
64 #ifndef __I
65 #define __I volatile const
66 #endif
67 #ifndef __O
68 #define __O volatile
69 #endif
70 #ifndef __R
71 #define __R volatile const
72 #endif
73 
75 /* **** Definitions **** */
76 
88 typedef struct {
89  __IO uint32_t ctrl0;
90  __IO uint32_t ctrl1;
91  __I uint32_t stat;
92  __IO uint32_t int_en;
93  __IO uint32_t int_fl;
94  __IO uint32_t baud0;
95  __IO uint32_t baud1;
96  __IO uint32_t fifo;
97  __IO uint32_t dma;
98  __IO uint32_t tx_fifo;
100 
101 /* Register offsets for module UART */
108  #define MXC_R_UART_CTRL0 ((uint32_t)0x00000000UL)
109  #define MXC_R_UART_CTRL1 ((uint32_t)0x00000004UL)
110  #define MXC_R_UART_STAT ((uint32_t)0x00000008UL)
111  #define MXC_R_UART_INT_EN ((uint32_t)0x0000000CUL)
112  #define MXC_R_UART_INT_FL ((uint32_t)0x00000010UL)
113  #define MXC_R_UART_BAUD0 ((uint32_t)0x00000014UL)
114  #define MXC_R_UART_BAUD1 ((uint32_t)0x00000018UL)
115  #define MXC_R_UART_FIFO ((uint32_t)0x0000001CUL)
116  #define MXC_R_UART_DMA ((uint32_t)0x00000020UL)
117  #define MXC_R_UART_TX_FIFO ((uint32_t)0x00000024UL)
126  #define MXC_F_UART_CTRL0_ENABLE_POS 0
127  #define MXC_F_UART_CTRL0_ENABLE ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_ENABLE_POS))
129  #define MXC_F_UART_CTRL0_PARITY_EN_POS 1
130  #define MXC_F_UART_CTRL0_PARITY_EN ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_PARITY_EN_POS))
132  #define MXC_F_UART_CTRL0_PARITY_MODE_POS 2
133  #define MXC_F_UART_CTRL0_PARITY_MODE ((uint32_t)(0x3UL << MXC_F_UART_CTRL0_PARITY_MODE_POS))
134  #define MXC_V_UART_CTRL0_PARITY_MODE_EVEN ((uint32_t)0x0UL)
135  #define MXC_S_UART_CTRL0_PARITY_MODE_EVEN (MXC_V_UART_CTRL0_PARITY_MODE_EVEN << MXC_F_UART_CTRL0_PARITY_MODE_POS)
136  #define MXC_V_UART_CTRL0_PARITY_MODE_ODD ((uint32_t)0x1UL)
137  #define MXC_S_UART_CTRL0_PARITY_MODE_ODD (MXC_V_UART_CTRL0_PARITY_MODE_ODD << MXC_F_UART_CTRL0_PARITY_MODE_POS)
138  #define MXC_V_UART_CTRL0_PARITY_MODE_MARK ((uint32_t)0x2UL)
139  #define MXC_S_UART_CTRL0_PARITY_MODE_MARK (MXC_V_UART_CTRL0_PARITY_MODE_MARK << MXC_F_UART_CTRL0_PARITY_MODE_POS)
140  #define MXC_V_UART_CTRL0_PARITY_MODE_SPACE ((uint32_t)0x3UL)
141  #define MXC_S_UART_CTRL0_PARITY_MODE_SPACE (MXC_V_UART_CTRL0_PARITY_MODE_SPACE << MXC_F_UART_CTRL0_PARITY_MODE_POS)
143  #define MXC_F_UART_CTRL0_PARITY_LVL_POS 4
144  #define MXC_F_UART_CTRL0_PARITY_LVL ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_PARITY_LVL_POS))
146  #define MXC_F_UART_CTRL0_TXFLUSH_POS 5
147  #define MXC_F_UART_CTRL0_TXFLUSH ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_TXFLUSH_POS))
149  #define MXC_F_UART_CTRL0_RXFLUSH_POS 6
150  #define MXC_F_UART_CTRL0_RXFLUSH ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_RXFLUSH_POS))
152  #define MXC_F_UART_CTRL0_BITACC_POS 7
153  #define MXC_F_UART_CTRL0_BITACC ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_BITACC_POS))
155  #define MXC_F_UART_CTRL0_SIZE_POS 8
156  #define MXC_F_UART_CTRL0_SIZE ((uint32_t)(0x3UL << MXC_F_UART_CTRL0_SIZE_POS))
157  #define MXC_V_UART_CTRL0_SIZE_5 ((uint32_t)0x0UL)
158  #define MXC_S_UART_CTRL0_SIZE_5 (MXC_V_UART_CTRL0_SIZE_5 << MXC_F_UART_CTRL0_SIZE_POS)
159  #define MXC_V_UART_CTRL0_SIZE_6 ((uint32_t)0x1UL)
160  #define MXC_S_UART_CTRL0_SIZE_6 (MXC_V_UART_CTRL0_SIZE_6 << MXC_F_UART_CTRL0_SIZE_POS)
161  #define MXC_V_UART_CTRL0_SIZE_7 ((uint32_t)0x2UL)
162  #define MXC_S_UART_CTRL0_SIZE_7 (MXC_V_UART_CTRL0_SIZE_7 << MXC_F_UART_CTRL0_SIZE_POS)
163  #define MXC_V_UART_CTRL0_SIZE_8 ((uint32_t)0x3UL)
164  #define MXC_S_UART_CTRL0_SIZE_8 (MXC_V_UART_CTRL0_SIZE_8 << MXC_F_UART_CTRL0_SIZE_POS)
166  #define MXC_F_UART_CTRL0_STOP_POS 10
167  #define MXC_F_UART_CTRL0_STOP ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_STOP_POS))
169  #define MXC_F_UART_CTRL0_FLOWCTL_POS 11
170  #define MXC_F_UART_CTRL0_FLOWCTL ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_FLOWCTL_POS))
172  #define MXC_F_UART_CTRL0_FLOWPOL_POS 12
173  #define MXC_F_UART_CTRL0_FLOWPOL ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_FLOWPOL_POS))
175  #define MXC_F_UART_CTRL0_NULLMOD_POS 13
176  #define MXC_F_UART_CTRL0_NULLMOD ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_NULLMOD_POS))
178  #define MXC_F_UART_CTRL0_BREAK_POS 14
179  #define MXC_F_UART_CTRL0_BREAK ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_BREAK_POS))
181  #define MXC_F_UART_CTRL0_CLK_SEL_POS 15
182  #define MXC_F_UART_CTRL0_CLK_SEL ((uint32_t)(0x1UL << MXC_F_UART_CTRL0_CLK_SEL_POS))
184  #define MXC_F_UART_CTRL0_TO_CNT_POS 16
185  #define MXC_F_UART_CTRL0_TO_CNT ((uint32_t)(0xFFUL << MXC_F_UART_CTRL0_TO_CNT_POS))
195  #define MXC_F_UART_CTRL1_RX_FIFO_LVL_POS 0
196  #define MXC_F_UART_CTRL1_RX_FIFO_LVL ((uint32_t)(0x3FUL << MXC_F_UART_CTRL1_RX_FIFO_LVL_POS))
198  #define MXC_F_UART_CTRL1_TX_FIFO_LVL_POS 8
199  #define MXC_F_UART_CTRL1_TX_FIFO_LVL ((uint32_t)(0x3FUL << MXC_F_UART_CTRL1_TX_FIFO_LVL_POS))
201  #define MXC_F_UART_CTRL1_RTS_FIFO_LVL_POS 16
202  #define MXC_F_UART_CTRL1_RTS_FIFO_LVL ((uint32_t)(0x3FUL << MXC_F_UART_CTRL1_RTS_FIFO_LVL_POS))
212  #define MXC_F_UART_STAT_TX_BUSY_POS 0
213  #define MXC_F_UART_STAT_TX_BUSY ((uint32_t)(0x1UL << MXC_F_UART_STAT_TX_BUSY_POS))
215  #define MXC_F_UART_STAT_RX_BUSY_POS 1
216  #define MXC_F_UART_STAT_RX_BUSY ((uint32_t)(0x1UL << MXC_F_UART_STAT_RX_BUSY_POS))
218  #define MXC_F_UART_STAT_PARITY_POS 2
219  #define MXC_F_UART_STAT_PARITY ((uint32_t)(0x1UL << MXC_F_UART_STAT_PARITY_POS))
221  #define MXC_F_UART_STAT_BREAK_POS 3
222  #define MXC_F_UART_STAT_BREAK ((uint32_t)(0x1UL << MXC_F_UART_STAT_BREAK_POS))
224  #define MXC_F_UART_STAT_RX_EMPTY_POS 4
225  #define MXC_F_UART_STAT_RX_EMPTY ((uint32_t)(0x1UL << MXC_F_UART_STAT_RX_EMPTY_POS))
227  #define MXC_F_UART_STAT_RX_FULL_POS 5
228  #define MXC_F_UART_STAT_RX_FULL ((uint32_t)(0x1UL << MXC_F_UART_STAT_RX_FULL_POS))
230  #define MXC_F_UART_STAT_TX_EMPTY_POS 6
231  #define MXC_F_UART_STAT_TX_EMPTY ((uint32_t)(0x1UL << MXC_F_UART_STAT_TX_EMPTY_POS))
233  #define MXC_F_UART_STAT_TX_FULL_POS 7
234  #define MXC_F_UART_STAT_TX_FULL ((uint32_t)(0x1UL << MXC_F_UART_STAT_TX_FULL_POS))
236  #define MXC_F_UART_STAT_RX_NUM_POS 8
237  #define MXC_F_UART_STAT_RX_NUM ((uint32_t)(0x3FUL << MXC_F_UART_STAT_RX_NUM_POS))
239  #define MXC_F_UART_STAT_TX_NUM_POS 16
240  #define MXC_F_UART_STAT_TX_NUM ((uint32_t)(0x3FUL << MXC_F_UART_STAT_TX_NUM_POS))
242  #define MXC_F_UART_STAT_RX_TO_POS 24
243  #define MXC_F_UART_STAT_RX_TO ((uint32_t)(0x1UL << MXC_F_UART_STAT_RX_TO_POS))
253  #define MXC_F_UART_INT_EN_RX_FRAME_ERROR_POS 0
254  #define MXC_F_UART_INT_EN_RX_FRAME_ERROR ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_FRAME_ERROR_POS))
256  #define MXC_F_UART_INT_EN_RX_PARITY_ERROR_POS 1
257  #define MXC_F_UART_INT_EN_RX_PARITY_ERROR ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_PARITY_ERROR_POS))
259  #define MXC_F_UART_INT_EN_CTS_POS 2
260  #define MXC_F_UART_INT_EN_CTS ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_CTS_POS))
262  #define MXC_F_UART_INT_EN_RX_OVERRUN_POS 3
263  #define MXC_F_UART_INT_EN_RX_OVERRUN ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_OVERRUN_POS))
265  #define MXC_F_UART_INT_EN_RX_FIFO_LVL_POS 4
266  #define MXC_F_UART_INT_EN_RX_FIFO_LVL ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_FIFO_LVL_POS))
268  #define MXC_F_UART_INT_EN_TX_FIFO_AE_POS 5
269  #define MXC_F_UART_INT_EN_TX_FIFO_AE ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_TX_FIFO_AE_POS))
271  #define MXC_F_UART_INT_EN_TX_FIFO_LVL_POS 6
272  #define MXC_F_UART_INT_EN_TX_FIFO_LVL ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_TX_FIFO_LVL_POS))
274  #define MXC_F_UART_INT_EN_BREAK_POS 7
275  #define MXC_F_UART_INT_EN_BREAK ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_BREAK_POS))
277  #define MXC_F_UART_INT_EN_RX_TO_POS 8
278  #define MXC_F_UART_INT_EN_RX_TO ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_TO_POS))
280  #define MXC_F_UART_INT_EN_BREAK_END_POS 9
281  #define MXC_F_UART_INT_EN_BREAK_END ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_BREAK_END_POS))
291  #define MXC_F_UART_INT_FL_FRAME_POS 0
292  #define MXC_F_UART_INT_FL_FRAME ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_FRAME_POS))
294  #define MXC_F_UART_INT_FL_PARITY_POS 1
295  #define MXC_F_UART_INT_FL_PARITY ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_PARITY_POS))
297  #define MXC_F_UART_INT_FL_CTS_POS 2
298  #define MXC_F_UART_INT_FL_CTS ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_CTS_POS))
300  #define MXC_F_UART_INT_FL_RX_OVR_POS 3
301  #define MXC_F_UART_INT_FL_RX_OVR ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_OVR_POS))
303  #define MXC_F_UART_INT_FL_RX_FIFO_LVL_POS 4
304  #define MXC_F_UART_INT_FL_RX_FIFO_LVL ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_FIFO_LVL_POS))
306  #define MXC_F_UART_INT_FL_TX_FIFO_AE_POS 5
307  #define MXC_F_UART_INT_FL_TX_FIFO_AE ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_TX_FIFO_AE_POS))
309  #define MXC_F_UART_INT_FL_TX_FIFO_LVL_POS 6
310  #define MXC_F_UART_INT_FL_TX_FIFO_LVL ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_TX_FIFO_LVL_POS))
312  #define MXC_F_UART_INT_FL_BREAK_POS 7
313  #define MXC_F_UART_INT_FL_BREAK ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_BREAK_POS))
315  #define MXC_F_UART_INT_FL_RX_TO_POS 8
316  #define MXC_F_UART_INT_FL_RX_TO ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_TO_POS))
318  #define MXC_F_UART_INT_FL_BREAK_END_POS 9
319  #define MXC_F_UART_INT_FL_BREAK_END ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_BREAK_END_POS))
329  #define MXC_F_UART_BAUD0_IBAUD_POS 0
330  #define MXC_F_UART_BAUD0_IBAUD ((uint32_t)(0xFFFUL << MXC_F_UART_BAUD0_IBAUD_POS))
332  #define MXC_F_UART_BAUD0_CLKDIV_POS 16
333  #define MXC_F_UART_BAUD0_CLKDIV ((uint32_t)(0x3UL << MXC_F_UART_BAUD0_CLKDIV_POS))
334  #define MXC_V_UART_BAUD0_CLKDIV_128 ((uint32_t)0x0UL)
335  #define MXC_S_UART_BAUD0_CLKDIV_128 (MXC_V_UART_BAUD0_CLKDIV_128 << MXC_F_UART_BAUD0_CLKDIV_POS)
336  #define MXC_V_UART_BAUD0_CLKDIV_64 ((uint32_t)0x1UL)
337  #define MXC_S_UART_BAUD0_CLKDIV_64 (MXC_V_UART_BAUD0_CLKDIV_64 << MXC_F_UART_BAUD0_CLKDIV_POS)
338  #define MXC_V_UART_BAUD0_CLKDIV_32 ((uint32_t)0x2UL)
339  #define MXC_S_UART_BAUD0_CLKDIV_32 (MXC_V_UART_BAUD0_CLKDIV_32 << MXC_F_UART_BAUD0_CLKDIV_POS)
340  #define MXC_V_UART_BAUD0_CLKDIV_16 ((uint32_t)0x3UL)
341  #define MXC_S_UART_BAUD0_CLKDIV_16 (MXC_V_UART_BAUD0_CLKDIV_16 << MXC_F_UART_BAUD0_CLKDIV_POS)
351  #define MXC_F_UART_BAUD1_DBAUD_POS 0
352  #define MXC_F_UART_BAUD1_DBAUD ((uint32_t)(0xFFFUL << MXC_F_UART_BAUD1_DBAUD_POS))
362  #define MXC_F_UART_FIFO_FIFO_POS 0
363  #define MXC_F_UART_FIFO_FIFO ((uint32_t)(0xFFUL << MXC_F_UART_FIFO_FIFO_POS))
373  #define MXC_F_UART_DMA_TXDMA_EN_POS 0
374  #define MXC_F_UART_DMA_TXDMA_EN ((uint32_t)(0x1UL << MXC_F_UART_DMA_TXDMA_EN_POS))
376  #define MXC_F_UART_DMA_RXDMA_EN_POS 1
377  #define MXC_F_UART_DMA_RXDMA_EN ((uint32_t)(0x1UL << MXC_F_UART_DMA_RXDMA_EN_POS))
379  #define MXC_F_UART_DMA_RXDMA_START_POS 3
380  #define MXC_F_UART_DMA_RXDMA_START ((uint32_t)(0x1UL << MXC_F_UART_DMA_RXDMA_START_POS))
382  #define MXC_F_UART_DMA_RXDMA_AUTO_TO_POS 5
383  #define MXC_F_UART_DMA_RXDMA_AUTO_TO ((uint32_t)(0x1UL << MXC_F_UART_DMA_RXDMA_AUTO_TO_POS))
385  #define MXC_F_UART_DMA_TXDMA_LVL_POS 8
386  #define MXC_F_UART_DMA_TXDMA_LVL ((uint32_t)(0x3FUL << MXC_F_UART_DMA_TXDMA_LVL_POS))
388  #define MXC_F_UART_DMA_RXDMA_LVL_POS 16
389  #define MXC_F_UART_DMA_RXDMA_LVL ((uint32_t)(0x3FUL << MXC_F_UART_DMA_RXDMA_LVL_POS))
399  #define MXC_F_UART_TX_FIFO_DATA_POS 0
400  #define MXC_F_UART_TX_FIFO_DATA ((uint32_t)(0x7FUL << MXC_F_UART_TX_FIFO_DATA_POS))
404 #ifdef __cplusplus
405 }
406 #endif
407 
408 #endif /* _UART_REGS_H_ */
mxc_uart_regs_t::stat
__I uint32_t stat
Definition: uart_regs.h:91
mxc_uart_regs_t::dma
__IO uint32_t dma
Definition: uart_regs.h:97
mxc_uart_regs_t::ctrl0
__IO uint32_t ctrl0
Definition: uart_regs.h:89
mxc_uart_regs_t
Definition: uart_regs.h:88
mxc_uart_regs_t::tx_fifo
__IO uint32_t tx_fifo
Definition: uart_regs.h:98
mxc_uart_regs_t::baud0
__IO uint32_t baud0
Definition: uart_regs.h:94
mxc_uart_regs_t::int_en
__IO uint32_t int_en
Definition: uart_regs.h:92
mxc_uart_regs_t::int_fl
__IO uint32_t int_fl
Definition: uart_regs.h:93
mxc_uart_regs_t::fifo
__IO uint32_t fifo
Definition: uart_regs.h:96
mxc_uart_regs_t::baud1
__IO uint32_t baud1
Definition: uart_regs.h:95
mxc_uart_regs_t::ctrl1
__IO uint32_t ctrl1
Definition: uart_regs.h:90