Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
uart_regs.h
00001 /******************************************************************************* 00002 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining a 00005 * copy of this software and associated documentation files (the "Software"), 00006 * to deal in the Software without restriction, including without limitation 00007 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00008 * and/or sell copies of the Software, and to permit persons to whom the 00009 * Software is furnished to do so, subject to the following conditions: 00010 * 00011 * The above copyright notice and this permission notice shall be included 00012 * in all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00015 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00016 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00017 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES 00018 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 00019 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 00020 * OTHER DEALINGS IN THE SOFTWARE. 00021 * 00022 * Except as contained in this notice, the name of Maxim Integrated 00023 * Products, Inc. shall not be used except as stated in the Maxim Integrated 00024 * Products, Inc. Branding Policy. 00025 * 00026 * The mere transfer of this software does not imply any licenses 00027 * of trade secrets, proprietary technology, copyrights, patents, 00028 * trademarks, maskwork rights, or any other form of intellectual 00029 * property whatsoever. Maxim Integrated Products, Inc. retains all 00030 * ownership rights. 00031 * 00032 ******************************************************************************/ 00033 00034 #ifndef _MXC_UART_REGS_H_ 00035 #define _MXC_UART_REGS_H_ 00036 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 #include <stdint.h> 00042 00043 /* 00044 If types are not defined elsewhere (CMSIS) define them here 00045 */ 00046 #ifndef __IO 00047 #define __IO volatile 00048 #endif 00049 #ifndef __I 00050 #define __I volatile const 00051 #endif 00052 #ifndef __O 00053 #define __O volatile 00054 #endif 00055 #ifndef __R 00056 #define __R volatile const 00057 #endif 00058 00059 00060 /* 00061 Typedefed structure(s) for module registers (per instance or section) with direct 32-bit 00062 access to each register in module. 00063 */ 00064 00065 /* Offset Register Description 00066 ============= ============================================================================ */ 00067 typedef struct { 00068 __IO uint32_t ctrl; /* 0x0000 UART Control Register */ 00069 __IO uint32_t baud; /* 0x0004 UART Baud Control Register */ 00070 __IO uint32_t tx_fifo_ctrl; /* 0x0008 UART TX FIFO Control Register */ 00071 __IO uint32_t rx_fifo_ctrl; /* 0x000C UART RX FIFO Control Register */ 00072 __IO uint32_t md_ctrl; /* 0x0010 UART Multidrop Control Register */ 00073 __IO uint32_t intfl; /* 0x0014 UART Interrupt Flags */ 00074 __IO uint32_t inten; /* 0x0018 UART Interrupt Enable/Disable Controls */ 00075 #if (MXC_UART_REV > 0) 00076 __R uint32_t idle; /* 0x001C UART Idle Status */ 00077 #endif 00078 } mxc_uart_regs_t; 00079 00080 00081 /* Offset Register Description 00082 ============= ============================================================================ */ 00083 typedef struct { 00084 union { /* 0x0000-0x07FC FIFO Write Point for Data to Transmit */ 00085 __IO uint8_t tx; 00086 __IO uint8_t tx_8[2048]; 00087 __IO uint16_t tx_16[1024]; 00088 __IO uint32_t tx_32[512]; 00089 }; 00090 union { /* 0x0800-0x0FFC FIFO Read Point for Received Data */ 00091 __IO uint8_t rx; 00092 __IO uint8_t rx_8[2048]; 00093 __IO uint16_t rx_16[1024]; 00094 __IO uint32_t rx_32[512]; 00095 }; 00096 } mxc_uart_fifo_regs_t; 00097 00098 00099 /* 00100 Register offsets for module UART. 00101 */ 00102 00103 #define MXC_R_UART_OFFS_CTRL ((uint32_t)0x00000000UL) 00104 #define MXC_R_UART_OFFS_BAUD ((uint32_t)0x00000004UL) 00105 #define MXC_R_UART_OFFS_TX_FIFO_CTRL ((uint32_t)0x00000008UL) 00106 #define MXC_R_UART_OFFS_RX_FIFO_CTRL ((uint32_t)0x0000000CUL) 00107 #define MXC_R_UART_OFFS_MD_CTRL ((uint32_t)0x00000010UL) 00108 #define MXC_R_UART_OFFS_INTFL ((uint32_t)0x00000014UL) 00109 #define MXC_R_UART_OFFS_INTEN ((uint32_t)0x00000018UL) 00110 #define MXC_R_UART_FIFO_OFFS_TX ((uint32_t)0x00000000UL) 00111 #define MXC_R_UART_FIFO_OFFS_RX ((uint32_t)0x00000800UL) 00112 00113 00114 /* 00115 Field positions and masks for module UART. 00116 */ 00117 00118 #define MXC_F_UART_CTRL_UART_EN_POS 0 00119 #define MXC_F_UART_CTRL_UART_EN ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_UART_EN_POS)) 00120 #define MXC_F_UART_CTRL_RX_FIFO_EN_POS 1 00121 #define MXC_F_UART_CTRL_RX_FIFO_EN ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_RX_FIFO_EN_POS)) 00122 #define MXC_F_UART_CTRL_TX_FIFO_EN_POS 2 00123 #define MXC_F_UART_CTRL_TX_FIFO_EN ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_TX_FIFO_EN_POS)) 00124 #define MXC_F_UART_CTRL_DATA_SIZE_POS 4 00125 #define MXC_F_UART_CTRL_DATA_SIZE ((uint32_t)(0x00000003UL << MXC_F_UART_CTRL_DATA_SIZE_POS)) 00126 #define MXC_F_UART_CTRL_EXTRA_STOP_POS 8 00127 #define MXC_F_UART_CTRL_EXTRA_STOP ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_EXTRA_STOP_POS)) 00128 #define MXC_F_UART_CTRL_PARITY_POS 12 00129 #define MXC_F_UART_CTRL_PARITY ((uint32_t)(0x00000003UL << MXC_F_UART_CTRL_PARITY_POS)) 00130 #define MXC_F_UART_CTRL_CTS_EN_POS 16 00131 #define MXC_F_UART_CTRL_CTS_EN ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_CTS_EN_POS)) 00132 #define MXC_F_UART_CTRL_CTS_POLARITY_POS 17 00133 #define MXC_F_UART_CTRL_CTS_POLARITY ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_CTS_POLARITY_POS)) 00134 #define MXC_F_UART_CTRL_RTS_EN_POS 18 00135 #define MXC_F_UART_CTRL_RTS_EN ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_RTS_EN_POS)) 00136 #define MXC_F_UART_CTRL_RTS_POLARITY_POS 19 00137 #define MXC_F_UART_CTRL_RTS_POLARITY ((uint32_t)(0x00000001UL << MXC_F_UART_CTRL_RTS_POLARITY_POS)) 00138 #define MXC_F_UART_CTRL_RTS_LEVEL_POS 20 00139 #define MXC_F_UART_CTRL_RTS_LEVEL ((uint32_t)(0x0000003FUL << MXC_F_UART_CTRL_RTS_LEVEL_POS)) 00140 00141 #define MXC_F_UART_BAUD_BAUD_DIVISOR_POS 0 00142 #define MXC_F_UART_BAUD_BAUD_DIVISOR ((uint32_t)(0x000000FFUL << MXC_F_UART_BAUD_BAUD_DIVISOR_POS)) 00143 #define MXC_F_UART_BAUD_BAUD_MODE_POS 8 00144 #define MXC_F_UART_BAUD_BAUD_MODE ((uint32_t)(0x00000003UL << MXC_F_UART_BAUD_BAUD_MODE_POS)) 00145 00146 #define MXC_F_UART_TX_FIFO_CTRL_FIFO_ENTRY_POS 0 00147 #define MXC_F_UART_TX_FIFO_CTRL_FIFO_ENTRY ((uint32_t)(0x0000003FUL << MXC_F_UART_TX_FIFO_CTRL_FIFO_ENTRY_POS)) 00148 #define MXC_F_UART_TX_FIFO_CTRL_FIFO_AE_LVL_POS 16 00149 #define MXC_F_UART_TX_FIFO_CTRL_FIFO_AE_LVL ((uint32_t)(0x0000001FUL << MXC_F_UART_TX_FIFO_CTRL_FIFO_AE_LVL_POS)) 00150 00151 #define MXC_F_UART_RX_FIFO_CTRL_FIFO_ENTRY_POS 0 00152 #define MXC_F_UART_RX_FIFO_CTRL_FIFO_ENTRY ((uint32_t)(0x0000003FUL << MXC_F_UART_RX_FIFO_CTRL_FIFO_ENTRY_POS)) 00153 #define MXC_F_UART_RX_FIFO_CTRL_FIFO_AF_LVL_POS 16 00154 #define MXC_F_UART_RX_FIFO_CTRL_FIFO_AF_LVL ((uint32_t)(0x0000001FUL << MXC_F_UART_RX_FIFO_CTRL_FIFO_AF_LVL_POS)) 00155 00156 #define MXC_F_UART_MD_CTRL_SLAVE_ADDR_POS 0 00157 #define MXC_F_UART_MD_CTRL_SLAVE_ADDR ((uint32_t)(0x000000FFUL << MXC_F_UART_MD_CTRL_SLAVE_ADDR_POS)) 00158 #define MXC_F_UART_MD_CTRL_SLAVE_ADDR_MSK_POS 8 00159 #define MXC_F_UART_MD_CTRL_SLAVE_ADDR_MSK ((uint32_t)(0x000000FFUL << MXC_F_UART_MD_CTRL_SLAVE_ADDR_MSK_POS)) 00160 #define MXC_F_UART_MD_CTRL_MD_MSTR_POS 16 00161 #define MXC_F_UART_MD_CTRL_MD_MSTR ((uint32_t)(0x00000001UL << MXC_F_UART_MD_CTRL_MD_MSTR_POS)) 00162 #define MXC_F_UART_MD_CTRL_TX_ADDR_MARK_POS 17 00163 #define MXC_F_UART_MD_CTRL_TX_ADDR_MARK ((uint32_t)(0x00000001UL << MXC_F_UART_MD_CTRL_TX_ADDR_MARK_POS)) 00164 00165 #define MXC_F_UART_INTFL_TX_DONE_POS 0 00166 #define MXC_F_UART_INTFL_TX_DONE ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_TX_DONE_POS)) 00167 #define MXC_F_UART_INTFL_TX_UNSTALLED_POS 1 00168 #define MXC_F_UART_INTFL_TX_UNSTALLED ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_TX_UNSTALLED_POS)) 00169 #define MXC_F_UART_INTFL_TX_FIFO_AE_POS 2 00170 #define MXC_F_UART_INTFL_TX_FIFO_AE ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_TX_FIFO_AE_POS)) 00171 #define MXC_F_UART_INTFL_RX_FIFO_NOT_EMPTY_POS 3 00172 #define MXC_F_UART_INTFL_RX_FIFO_NOT_EMPTY ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_RX_FIFO_NOT_EMPTY_POS)) 00173 #define MXC_F_UART_INTFL_RX_STALLED_POS 4 00174 #define MXC_F_UART_INTFL_RX_STALLED ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_RX_STALLED_POS)) 00175 #define MXC_F_UART_INTFL_RX_FIFO_AF_POS 5 00176 #define MXC_F_UART_INTFL_RX_FIFO_AF ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_RX_FIFO_AF_POS)) 00177 #define MXC_F_UART_INTFL_RX_FIFO_OVERFLOW_POS 6 00178 #define MXC_F_UART_INTFL_RX_FIFO_OVERFLOW ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_RX_FIFO_OVERFLOW_POS)) 00179 #define MXC_F_UART_INTFL_RX_FRAMING_ERR_POS 7 00180 #define MXC_F_UART_INTFL_RX_FRAMING_ERR ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_RX_FRAMING_ERR_POS)) 00181 #define MXC_F_UART_INTFL_RX_PARITY_ERR_POS 8 00182 #define MXC_F_UART_INTFL_RX_PARITY_ERR ((uint32_t)(0x00000001UL << MXC_F_UART_INTFL_RX_PARITY_ERR_POS)) 00183 00184 #define MXC_F_UART_INTEN_TX_DONE_POS 0 00185 #define MXC_F_UART_INTEN_TX_DONE ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_TX_DONE_POS)) 00186 #define MXC_F_UART_INTEN_TX_UNSTALLED_POS 1 00187 #define MXC_F_UART_INTEN_TX_UNSTALLED ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_TX_UNSTALLED_POS)) 00188 #define MXC_F_UART_INTEN_TX_FIFO_AE_POS 2 00189 #define MXC_F_UART_INTEN_TX_FIFO_AE ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_TX_FIFO_AE_POS)) 00190 #define MXC_F_UART_INTEN_RX_FIFO_NOT_EMPTY_POS 3 00191 #define MXC_F_UART_INTEN_RX_FIFO_NOT_EMPTY ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_RX_FIFO_NOT_EMPTY_POS)) 00192 #define MXC_F_UART_INTEN_RX_STALLED_POS 4 00193 #define MXC_F_UART_INTEN_RX_STALLED ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_RX_STALLED_POS)) 00194 #define MXC_F_UART_INTEN_RX_FIFO_AF_POS 5 00195 #define MXC_F_UART_INTEN_RX_FIFO_AF ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_RX_FIFO_AF_POS)) 00196 #define MXC_F_UART_INTEN_RX_FIFO_OVERFLOW_POS 6 00197 #define MXC_F_UART_INTEN_RX_FIFO_OVERFLOW ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_RX_FIFO_OVERFLOW_POS)) 00198 #define MXC_F_UART_INTEN_RX_FRAMING_ERR_POS 7 00199 #define MXC_F_UART_INTEN_RX_FRAMING_ERR ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_RX_FRAMING_ERR_POS)) 00200 #define MXC_F_UART_INTEN_RX_PARITY_ERR_POS 8 00201 #define MXC_F_UART_INTEN_RX_PARITY_ERR ((uint32_t)(0x00000001UL << MXC_F_UART_INTEN_RX_PARITY_ERR_POS)) 00202 00203 #if (MXC_UART_REV > 0) 00204 #define MXC_F_UART_IDLE_TX_RX_IDLE_POS 0 00205 #define MXC_F_UART_IDLE_TX_RX_IDLE ((uint32_t)(0x00000001UL << MXC_F_UART_IDLE_TX_RX_IDLE_POS)) 00206 #define MXC_F_UART_IDLE_TX_IDLE_POS 1 00207 #define MXC_F_UART_IDLE_TX_IDLE ((uint32_t)(0x00000001UL << MXC_F_UART_IDLE_TX_IDLE_POS)) 00208 #define MXC_F_UART_IDLE_RX_IDLE_POS 2 00209 #define MXC_F_UART_IDLE_RX_IDLE ((uint32_t)(0x00000001UL << MXC_F_UART_IDLE_RX_IDLE_POS)) 00210 #endif 00211 00212 /* 00213 Field values and shifted values for module UART. 00214 */ 00215 00216 #define MXC_V_UART_CTRL_DATA_SIZE_5_BITS ((uint32_t)(0x00000000UL)) 00217 #define MXC_V_UART_CTRL_DATA_SIZE_6_BITS ((uint32_t)(0x00000001UL)) 00218 #define MXC_V_UART_CTRL_DATA_SIZE_7_BITS ((uint32_t)(0x00000002UL)) 00219 #define MXC_V_UART_CTRL_DATA_SIZE_8_BITS ((uint32_t)(0x00000003UL)) 00220 00221 #define MXC_S_UART_CTRL_DATA_SIZE_5_BITS ((uint32_t)(MXC_V_UART_CTRL_DATA_SIZE_5_BITS << MXC_F_UART_CTRL_DATA_SIZE_POS)) 00222 #define MXC_S_UART_CTRL_DATA_SIZE_6_BITS ((uint32_t)(MXC_V_UART_CTRL_DATA_SIZE_6_BITS << MXC_F_UART_CTRL_DATA_SIZE_POS)) 00223 #define MXC_S_UART_CTRL_DATA_SIZE_7_BITS ((uint32_t)(MXC_V_UART_CTRL_DATA_SIZE_7_BITS << MXC_F_UART_CTRL_DATA_SIZE_POS)) 00224 #define MXC_S_UART_CTRL_DATA_SIZE_8_BITS ((uint32_t)(MXC_V_UART_CTRL_DATA_SIZE_8_BITS << MXC_F_UART_CTRL_DATA_SIZE_POS)) 00225 00226 #define MXC_V_UART_CTRL_PARITY_DISABLE ((uint32_t)(0x00000000UL)) 00227 #define MXC_V_UART_CTRL_PARITY_ODD ((uint32_t)(0x00000001UL)) 00228 #define MXC_V_UART_CTRL_PARITY_EVEN ((uint32_t)(0x00000002UL)) 00229 #define MXC_V_UART_CTRL_PARITY_MARK ((uint32_t)(0x00000003UL)) 00230 00231 #define MXC_S_UART_CTRL_PARITY_DISABLE ((uint32_t)(MXC_V_UART_CTRL_PARITY_DISABLE << MXC_F_UART_CTRL_PARITY_POS)) 00232 #define MXC_S_UART_CTRL_PARITY_ODD ((uint32_t)(MXC_V_UART_CTRL_PARITY_ODD << MXC_F_UART_CTRL_PARITY_POS)) 00233 #define MXC_S_UART_CTRL_PARITY_EVEN ((uint32_t)(MXC_V_UART_CTRL_PARITY_EVEN << MXC_F_UART_CTRL_PARITY_POS)) 00234 #define MXC_S_UART_CTRL_PARITY_MARK ((uint32_t)(MXC_V_UART_CTRL_PARITY_MARK << MXC_F_UART_CTRL_PARITY_POS)) 00235 00236 00237 00238 #ifdef __cplusplus 00239 } 00240 #endif 00241 00242 #endif /* _MXC_UART_REGS_H_ */
Generated on Tue Jul 12 2022 15:37:26 by
