MAX32665 SDK Documentation  0.2
Software Development Kit Overview and API Documentation
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 ctrl;
90  __IO uint32_t thresh_ctrl;
91  __I uint32_t status;
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_CTRL ((uint32_t)0x00000000UL)
109  #define MXC_R_UART_THRESH_CTRL ((uint32_t)0x00000004UL)
110  #define MXC_R_UART_STATUS ((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_CTRL_ENABLE_POS 0
127  #define MXC_F_UART_CTRL_ENABLE ((uint32_t)(0x1UL << MXC_F_UART_CTRL_ENABLE_POS))
129  #define MXC_F_UART_CTRL_PARITY_EN_POS 1
130  #define MXC_F_UART_CTRL_PARITY_EN ((uint32_t)(0x1UL << MXC_F_UART_CTRL_PARITY_EN_POS))
132  #define MXC_F_UART_CTRL_PARITY_POS 2
133  #define MXC_F_UART_CTRL_PARITY ((uint32_t)(0x3UL << MXC_F_UART_CTRL_PARITY_POS))
134  #define MXC_V_UART_CTRL_PARITY_EVEN ((uint32_t)0x0UL)
135  #define MXC_S_UART_CTRL_PARITY_EVEN (MXC_V_UART_CTRL_PARITY_EVEN << MXC_F_UART_CTRL_PARITY_POS)
136  #define MXC_V_UART_CTRL_PARITY_ODD ((uint32_t)0x1UL)
137  #define MXC_S_UART_CTRL_PARITY_ODD (MXC_V_UART_CTRL_PARITY_ODD << MXC_F_UART_CTRL_PARITY_POS)
138  #define MXC_V_UART_CTRL_PARITY_MARK ((uint32_t)0x2UL)
139  #define MXC_S_UART_CTRL_PARITY_MARK (MXC_V_UART_CTRL_PARITY_MARK << MXC_F_UART_CTRL_PARITY_POS)
140  #define MXC_V_UART_CTRL_PARITY_SPACE ((uint32_t)0x3UL)
141  #define MXC_S_UART_CTRL_PARITY_SPACE (MXC_V_UART_CTRL_PARITY_SPACE << MXC_F_UART_CTRL_PARITY_POS)
143  #define MXC_F_UART_CTRL_PARMD_POS 4
144  #define MXC_F_UART_CTRL_PARMD ((uint32_t)(0x1UL << MXC_F_UART_CTRL_PARMD_POS))
146  #define MXC_F_UART_CTRL_TX_FLUSH_POS 5
147  #define MXC_F_UART_CTRL_TX_FLUSH ((uint32_t)(0x1UL << MXC_F_UART_CTRL_TX_FLUSH_POS))
149  #define MXC_F_UART_CTRL_RX_FLUSH_POS 6
150  #define MXC_F_UART_CTRL_RX_FLUSH ((uint32_t)(0x1UL << MXC_F_UART_CTRL_RX_FLUSH_POS))
152  #define MXC_F_UART_CTRL_BITACC_POS 7
153  #define MXC_F_UART_CTRL_BITACC ((uint32_t)(0x1UL << MXC_F_UART_CTRL_BITACC_POS))
155  #define MXC_F_UART_CTRL_CHAR_SIZE_POS 8
156  #define MXC_F_UART_CTRL_CHAR_SIZE ((uint32_t)(0x3UL << MXC_F_UART_CTRL_CHAR_SIZE_POS))
157  #define MXC_V_UART_CTRL_CHAR_SIZE_5 ((uint32_t)0x0UL)
158  #define MXC_S_UART_CTRL_CHAR_SIZE_5 (MXC_V_UART_CTRL_CHAR_SIZE_5 << MXC_F_UART_CTRL_CHAR_SIZE_POS)
159  #define MXC_V_UART_CTRL_CHAR_SIZE_6 ((uint32_t)0x1UL)
160  #define MXC_S_UART_CTRL_CHAR_SIZE_6 (MXC_V_UART_CTRL_CHAR_SIZE_6 << MXC_F_UART_CTRL_CHAR_SIZE_POS)
161  #define MXC_V_UART_CTRL_CHAR_SIZE_7 ((uint32_t)0x2UL)
162  #define MXC_S_UART_CTRL_CHAR_SIZE_7 (MXC_V_UART_CTRL_CHAR_SIZE_7 << MXC_F_UART_CTRL_CHAR_SIZE_POS)
163  #define MXC_V_UART_CTRL_CHAR_SIZE_8 ((uint32_t)0x3UL)
164  #define MXC_S_UART_CTRL_CHAR_SIZE_8 (MXC_V_UART_CTRL_CHAR_SIZE_8 << MXC_F_UART_CTRL_CHAR_SIZE_POS)
166  #define MXC_F_UART_CTRL_STOPBITS_POS 10
167  #define MXC_F_UART_CTRL_STOPBITS ((uint32_t)(0x1UL << MXC_F_UART_CTRL_STOPBITS_POS))
169  #define MXC_F_UART_CTRL_FLOW_CTRL_POS 11
170  #define MXC_F_UART_CTRL_FLOW_CTRL ((uint32_t)(0x1UL << MXC_F_UART_CTRL_FLOW_CTRL_POS))
172  #define MXC_F_UART_CTRL_FLOW_POL_POS 12
173  #define MXC_F_UART_CTRL_FLOW_POL ((uint32_t)(0x1UL << MXC_F_UART_CTRL_FLOW_POL_POS))
175  #define MXC_F_UART_CTRL_NULL_MODEM_POS 13
176  #define MXC_F_UART_CTRL_NULL_MODEM ((uint32_t)(0x1UL << MXC_F_UART_CTRL_NULL_MODEM_POS))
178  #define MXC_F_UART_CTRL_BREAK_POS 14
179  #define MXC_F_UART_CTRL_BREAK ((uint32_t)(0x1UL << MXC_F_UART_CTRL_BREAK_POS))
181  #define MXC_F_UART_CTRL_CLKSEL_POS 15
182  #define MXC_F_UART_CTRL_CLKSEL ((uint32_t)(0x1UL << MXC_F_UART_CTRL_CLKSEL_POS))
184  #define MXC_F_UART_CTRL_RX_TO_POS 16
185  #define MXC_F_UART_CTRL_RX_TO ((uint32_t)(0xFFUL << MXC_F_UART_CTRL_RX_TO_POS))
195  #define MXC_F_UART_THRESH_CTRL_RX_FIFO_THRESH_POS 0
196  #define MXC_F_UART_THRESH_CTRL_RX_FIFO_THRESH ((uint32_t)(0x3FUL << MXC_F_UART_THRESH_CTRL_RX_FIFO_THRESH_POS))
198  #define MXC_F_UART_THRESH_CTRL_TX_FIFO_THRESH_POS 8
199  #define MXC_F_UART_THRESH_CTRL_TX_FIFO_THRESH ((uint32_t)(0x3FUL << MXC_F_UART_THRESH_CTRL_TX_FIFO_THRESH_POS))
201  #define MXC_F_UART_THRESH_CTRL_RTS_FIFO_THRESH_POS 16
202  #define MXC_F_UART_THRESH_CTRL_RTS_FIFO_THRESH ((uint32_t)(0x3FUL << MXC_F_UART_THRESH_CTRL_RTS_FIFO_THRESH_POS))
212  #define MXC_F_UART_STATUS_TX_BUSY_POS 0
213  #define MXC_F_UART_STATUS_TX_BUSY ((uint32_t)(0x1UL << MXC_F_UART_STATUS_TX_BUSY_POS))
215  #define MXC_F_UART_STATUS_RX_BUSY_POS 1
216  #define MXC_F_UART_STATUS_RX_BUSY ((uint32_t)(0x1UL << MXC_F_UART_STATUS_RX_BUSY_POS))
218  #define MXC_F_UART_STATUS_PARITY_POS 2
219  #define MXC_F_UART_STATUS_PARITY ((uint32_t)(0x1UL << MXC_F_UART_STATUS_PARITY_POS))
221  #define MXC_F_UART_STATUS_BREAK_POS 3
222  #define MXC_F_UART_STATUS_BREAK ((uint32_t)(0x1UL << MXC_F_UART_STATUS_BREAK_POS))
224  #define MXC_F_UART_STATUS_RX_EMPTY_POS 4
225  #define MXC_F_UART_STATUS_RX_EMPTY ((uint32_t)(0x1UL << MXC_F_UART_STATUS_RX_EMPTY_POS))
227  #define MXC_F_UART_STATUS_RX_FULL_POS 5
228  #define MXC_F_UART_STATUS_RX_FULL ((uint32_t)(0x1UL << MXC_F_UART_STATUS_RX_FULL_POS))
230  #define MXC_F_UART_STATUS_TX_EMPTY_POS 6
231  #define MXC_F_UART_STATUS_TX_EMPTY ((uint32_t)(0x1UL << MXC_F_UART_STATUS_TX_EMPTY_POS))
233  #define MXC_F_UART_STATUS_TX_FULL_POS 7
234  #define MXC_F_UART_STATUS_TX_FULL ((uint32_t)(0x1UL << MXC_F_UART_STATUS_TX_FULL_POS))
236  #define MXC_F_UART_STATUS_RX_FIFO_CNT_POS 8
237  #define MXC_F_UART_STATUS_RX_FIFO_CNT ((uint32_t)(0x3FUL << MXC_F_UART_STATUS_RX_FIFO_CNT_POS))
239  #define MXC_F_UART_STATUS_TX_FIFO_CNT_POS 16
240  #define MXC_F_UART_STATUS_TX_FIFO_CNT ((uint32_t)(0x3FUL << MXC_F_UART_STATUS_TX_FIFO_CNT_POS))
242  #define MXC_F_UART_STATUS_RX_TO_POS 24
243  #define MXC_F_UART_STATUS_RX_TO ((uint32_t)(0x1UL << MXC_F_UART_STATUS_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_CHANGE_POS 2
260  #define MXC_F_UART_INT_EN_CTS_CHANGE ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_CTS_CHANGE_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_THRESH_POS 4
266  #define MXC_F_UART_INT_EN_RX_FIFO_THRESH ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_FIFO_THRESH_POS))
268  #define MXC_F_UART_INT_EN_TX_FIFO_ALMOST_EMPTY_POS 5
269  #define MXC_F_UART_INT_EN_TX_FIFO_ALMOST_EMPTY ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_TX_FIFO_ALMOST_EMPTY_POS))
271  #define MXC_F_UART_INT_EN_TX_FIFO_THRESH_POS 6
272  #define MXC_F_UART_INT_EN_TX_FIFO_THRESH ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_TX_FIFO_THRESH_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_TIMEOUT_POS 8
278  #define MXC_F_UART_INT_EN_RX_TIMEOUT ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_RX_TIMEOUT_POS))
280  #define MXC_F_UART_INT_EN_LAST_BREAK_POS 9
281  #define MXC_F_UART_INT_EN_LAST_BREAK ((uint32_t)(0x1UL << MXC_F_UART_INT_EN_LAST_BREAK_POS))
291  #define MXC_F_UART_INT_FL_RX_FRAME_ERROR_POS 0
292  #define MXC_F_UART_INT_FL_RX_FRAME_ERROR ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_FRAME_ERROR_POS))
294  #define MXC_F_UART_INT_FL_RX_PARITY_ERROR_POS 1
295  #define MXC_F_UART_INT_FL_RX_PARITY_ERROR ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_PARITY_ERROR_POS))
297  #define MXC_F_UART_INT_FL_CTS_CHANGE_POS 2
298  #define MXC_F_UART_INT_FL_CTS_CHANGE ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_CTS_CHANGE_POS))
300  #define MXC_F_UART_INT_FL_RX_OVERRUN_POS 3
301  #define MXC_F_UART_INT_FL_RX_OVERRUN ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_OVERRUN_POS))
303  #define MXC_F_UART_INT_FL_RX_FIFO_THRESH_POS 4
304  #define MXC_F_UART_INT_FL_RX_FIFO_THRESH ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_FIFO_THRESH_POS))
306  #define MXC_F_UART_INT_FL_TX_FIFO_ALMOST_EMPTY_POS 5
307  #define MXC_F_UART_INT_FL_TX_FIFO_ALMOST_EMPTY ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_TX_FIFO_ALMOST_EMPTY_POS))
309  #define MXC_F_UART_INT_FL_TX_FIFO_THRESH_POS 6
310  #define MXC_F_UART_INT_FL_TX_FIFO_THRESH ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_TX_FIFO_THRESH_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_TIMEOUT_POS 8
316  #define MXC_F_UART_INT_FL_RX_TIMEOUT ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_RX_TIMEOUT_POS))
318  #define MXC_F_UART_INT_FL_LAST_BREAK_POS 9
319  #define MXC_F_UART_INT_FL_LAST_BREAK ((uint32_t)(0x1UL << MXC_F_UART_INT_FL_LAST_BREAK_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_FACTOR_POS 16
333  #define MXC_F_UART_BAUD0_FACTOR ((uint32_t)(0x3UL << MXC_F_UART_BAUD0_FACTOR_POS))
334  #define MXC_V_UART_BAUD0_FACTOR_128 ((uint32_t)0x0UL)
335  #define MXC_S_UART_BAUD0_FACTOR_128 (MXC_V_UART_BAUD0_FACTOR_128 << MXC_F_UART_BAUD0_FACTOR_POS)
336  #define MXC_V_UART_BAUD0_FACTOR_64 ((uint32_t)0x1UL)
337  #define MXC_S_UART_BAUD0_FACTOR_64 (MXC_V_UART_BAUD0_FACTOR_64 << MXC_F_UART_BAUD0_FACTOR_POS)
338  #define MXC_V_UART_BAUD0_FACTOR_32 ((uint32_t)0x2UL)
339  #define MXC_S_UART_BAUD0_FACTOR_32 (MXC_V_UART_BAUD0_FACTOR_32 << MXC_F_UART_BAUD0_FACTOR_POS)
340  #define MXC_V_UART_BAUD0_FACTOR_16 ((uint32_t)0x3UL)
341  #define MXC_S_UART_BAUD0_FACTOR_16 (MXC_V_UART_BAUD0_FACTOR_16 << MXC_F_UART_BAUD0_FACTOR_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_TDMA_EN_POS 0
374  #define MXC_F_UART_DMA_TDMA_EN ((uint32_t)(0x1UL << MXC_F_UART_DMA_TDMA_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_TXDMA_LEVEL_POS 8
380  #define MXC_F_UART_DMA_TXDMA_LEVEL ((uint32_t)(0x3FUL << MXC_F_UART_DMA_TXDMA_LEVEL_POS))
382  #define MXC_F_UART_DMA_RXDMA_LEVEL_POS 16
383  #define MXC_F_UART_DMA_RXDMA_LEVEL ((uint32_t)(0x3FUL << MXC_F_UART_DMA_RXDMA_LEVEL_POS))
393  #define MXC_F_UART_TX_FIFO_DATA_POS 0
394  #define MXC_F_UART_TX_FIFO_DATA ((uint32_t)(0x7FUL << MXC_F_UART_TX_FIFO_DATA_POS))
398 #ifdef __cplusplus
399 }
400 #endif
401 
402 #endif /* _UART_REGS_H_ */
__IO uint32_t baud0
0x14: UART BAUD0 Register
Definition: uart_regs.h:94
__IO uint32_t baud1
0x18: UART BAUD1 Register
Definition: uart_regs.h:95
__IO uint32_t int_fl
0x10: UART INT_FL Register
Definition: uart_regs.h:93
__IO uint32_t int_en
0x0C: UART INT_EN Register
Definition: uart_regs.h:92
__IO uint32_t dma
0x20: UART DMA Register
Definition: uart_regs.h:97
__IO uint32_t tx_fifo
0x24: UART TX_FIFO Register
Definition: uart_regs.h:98
__IO uint32_t fifo
0x1C: UART FIFO Register
Definition: uart_regs.h:96
__I uint32_t status
0x08: UART STATUS Register
Definition: uart_regs.h:91
Structure type to access the UART Registers.
Definition: uart_regs.h:88
__IO uint32_t thresh_ctrl
0x04: UART THRESH_CTRL Register
Definition: uart_regs.h:90
__IO uint32_t ctrl
0x00: UART CTRL Register
Definition: uart_regs.h:89