1 /** 2 * @file i2c_regs.h 3 * @brief Registers, Bit Masks and Bit Positions for the I2C Peripheral Module. 4 * @note This file is @generated. 5 * @ingroup i2c_registers 6 */ 7 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_I2C_REGS_H_ 29 #define LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_I2C_REGS_H_ 30 31 /* **** Includes **** */ 32 #include <stdint.h> 33 34 #ifdef __cplusplus 35 extern "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 45 /// @cond 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 61 /// @endcond 62 63 /* **** Definitions **** */ 64 65 /** 66 * @ingroup i2c 67 * @defgroup i2c_registers I2C_Registers 68 * @brief Registers, Bit Masks and Bit Positions for the I2C Peripheral Module. 69 * @details Inter-Integrated Circuit. 70 */ 71 72 /** 73 * @ingroup i2c_registers 74 * Structure type to access the I2C Registers. 75 */ 76 typedef struct { 77 __IO uint32_t cn; /**< <tt>\b 0x00:</tt> I2C CN Register */ 78 __IO uint32_t st; /**< <tt>\b 0x04:</tt> I2C ST Register */ 79 __IO uint32_t int0; /**< <tt>\b 0x08:</tt> I2C INT0 Register */ 80 __IO uint32_t inten0; /**< <tt>\b 0x0C:</tt> I2C INTEN0 Register */ 81 __IO uint32_t int1; /**< <tt>\b 0x10:</tt> I2C INT1 Register */ 82 __IO uint32_t inten1; /**< <tt>\b 0x14:</tt> I2C INTEN1 Register */ 83 __IO uint32_t fifo; /**< <tt>\b 0x18:</tt> I2C FIFO Register */ 84 __IO uint32_t rxcfg; /**< <tt>\b 0x1C:</tt> I2C RXCFG Register */ 85 __IO uint32_t rx; /**< <tt>\b 0x20:</tt> I2C RX Register */ 86 __IO uint32_t txcfg; /**< <tt>\b 0x24:</tt> I2C TXCFG Register */ 87 __IO uint32_t tx; /**< <tt>\b 0x28:</tt> I2C TX Register */ 88 __IO uint32_t data; /**< <tt>\b 0x2C:</tt> I2C DATA Register */ 89 __IO uint32_t mcn; /**< <tt>\b 0x30:</tt> I2C MCN Register */ 90 __IO uint32_t ckl; /**< <tt>\b 0x34:</tt> I2C CKL Register */ 91 __IO uint32_t ckh; /**< <tt>\b 0x38:</tt> I2C CKH Register */ 92 __R uint32_t rsv_0x3c; 93 __IO uint32_t to; /**< <tt>\b 0x40:</tt> I2C TO Register */ 94 __R uint32_t rsv_0x44; 95 __IO uint32_t dma; /**< <tt>\b 0x48:</tt> I2C DMA Register */ 96 __IO uint32_t sla; /**< <tt>\b 0x4C:</tt> I2C SLA Register */ 97 } mxc_i2c_regs_t; 98 99 /* Register offsets for module I2C */ 100 /** 101 * @ingroup i2c_registers 102 * @defgroup I2C_Register_Offsets Register Offsets 103 * @brief I2C Peripheral Register Offsets from the I2C Base Peripheral Address. 104 * @{ 105 */ 106 #define MXC_R_I2C_CN ((uint32_t)0x00000000UL) /**< Offset from I2C Base Address: <tt> 0x0000</tt> */ 107 #define MXC_R_I2C_ST ((uint32_t)0x00000004UL) /**< Offset from I2C Base Address: <tt> 0x0004</tt> */ 108 #define MXC_R_I2C_INT0 ((uint32_t)0x00000008UL) /**< Offset from I2C Base Address: <tt> 0x0008</tt> */ 109 #define MXC_R_I2C_INTEN0 ((uint32_t)0x0000000CUL) /**< Offset from I2C Base Address: <tt> 0x000C</tt> */ 110 #define MXC_R_I2C_INT1 ((uint32_t)0x00000010UL) /**< Offset from I2C Base Address: <tt> 0x0010</tt> */ 111 #define MXC_R_I2C_INTEN1 ((uint32_t)0x00000014UL) /**< Offset from I2C Base Address: <tt> 0x0014</tt> */ 112 #define MXC_R_I2C_FIFO ((uint32_t)0x00000018UL) /**< Offset from I2C Base Address: <tt> 0x0018</tt> */ 113 #define MXC_R_I2C_RXCFG ((uint32_t)0x0000001CUL) /**< Offset from I2C Base Address: <tt> 0x001C</tt> */ 114 #define MXC_R_I2C_RX ((uint32_t)0x00000020UL) /**< Offset from I2C Base Address: <tt> 0x0020</tt> */ 115 #define MXC_R_I2C_TXCFG ((uint32_t)0x00000024UL) /**< Offset from I2C Base Address: <tt> 0x0024</tt> */ 116 #define MXC_R_I2C_TX ((uint32_t)0x00000028UL) /**< Offset from I2C Base Address: <tt> 0x0028</tt> */ 117 #define MXC_R_I2C_DATA ((uint32_t)0x0000002CUL) /**< Offset from I2C Base Address: <tt> 0x002C</tt> */ 118 #define MXC_R_I2C_MCN ((uint32_t)0x00000030UL) /**< Offset from I2C Base Address: <tt> 0x0030</tt> */ 119 #define MXC_R_I2C_CKL ((uint32_t)0x00000034UL) /**< Offset from I2C Base Address: <tt> 0x0034</tt> */ 120 #define MXC_R_I2C_CKH ((uint32_t)0x00000038UL) /**< Offset from I2C Base Address: <tt> 0x0038</tt> */ 121 #define MXC_R_I2C_TO ((uint32_t)0x00000040UL) /**< Offset from I2C Base Address: <tt> 0x0040</tt> */ 122 #define MXC_R_I2C_DMA ((uint32_t)0x00000048UL) /**< Offset from I2C Base Address: <tt> 0x0048</tt> */ 123 #define MXC_R_I2C_SLA ((uint32_t)0x0000004CUL) /**< Offset from I2C Base Address: <tt> 0x004C</tt> */ 124 /**@} end of group i2c_registers */ 125 126 /** 127 * @ingroup i2c_registers 128 * @defgroup I2C_CN I2C_CN 129 * @brief Control Register0. 130 * @{ 131 */ 132 #define MXC_F_I2C_CN_I2CEN_POS 0 /**< CN_I2CEN Position */ 133 #define MXC_F_I2C_CN_I2CEN ((uint32_t)(0x1UL << MXC_F_I2C_CN_I2CEN_POS)) /**< CN_I2CEN Mask */ 134 135 #define MXC_F_I2C_CN_MST_POS 1 /**< CN_MST Position */ 136 #define MXC_F_I2C_CN_MST ((uint32_t)(0x1UL << MXC_F_I2C_CN_MST_POS)) /**< CN_MST Mask */ 137 138 #define MXC_F_I2C_CN_GCEN_POS 2 /**< CN_GCEN Position */ 139 #define MXC_F_I2C_CN_GCEN ((uint32_t)(0x1UL << MXC_F_I2C_CN_GCEN_POS)) /**< CN_GCEN Mask */ 140 141 #define MXC_F_I2C_CN_IRXM_POS 3 /**< CN_IRXM Position */ 142 #define MXC_F_I2C_CN_IRXM ((uint32_t)(0x1UL << MXC_F_I2C_CN_IRXM_POS)) /**< CN_IRXM Mask */ 143 144 #define MXC_F_I2C_CN_ACK_POS 4 /**< CN_ACK Position */ 145 #define MXC_F_I2C_CN_ACK ((uint32_t)(0x1UL << MXC_F_I2C_CN_ACK_POS)) /**< CN_ACK Mask */ 146 147 #define MXC_F_I2C_CN_SCLO_POS 6 /**< CN_SCLO Position */ 148 #define MXC_F_I2C_CN_SCLO ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCLO_POS)) /**< CN_SCLO Mask */ 149 150 #define MXC_F_I2C_CN_SDAO_POS 7 /**< CN_SDAO Position */ 151 #define MXC_F_I2C_CN_SDAO ((uint32_t)(0x1UL << MXC_F_I2C_CN_SDAO_POS)) /**< CN_SDAO Mask */ 152 153 #define MXC_F_I2C_CN_SCL_POS 8 /**< CN_SCL Position */ 154 #define MXC_F_I2C_CN_SCL ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCL_POS)) /**< CN_SCL Mask */ 155 156 #define MXC_F_I2C_CN_SDA_POS 9 /**< CN_SDA Position */ 157 #define MXC_F_I2C_CN_SDA ((uint32_t)(0x1UL << MXC_F_I2C_CN_SDA_POS)) /**< CN_SDA Mask */ 158 159 #define MXC_F_I2C_CN_SWOE_POS 10 /**< CN_SWOE Position */ 160 #define MXC_F_I2C_CN_SWOE ((uint32_t)(0x1UL << MXC_F_I2C_CN_SWOE_POS)) /**< CN_SWOE Mask */ 161 162 #define MXC_F_I2C_CN_READ_POS 11 /**< CN_READ Position */ 163 #define MXC_F_I2C_CN_READ ((uint32_t)(0x1UL << MXC_F_I2C_CN_READ_POS)) /**< CN_READ Mask */ 164 165 #define MXC_F_I2C_CN_SCLSTRD_POS 12 /**< CN_SCLSTRD Position */ 166 #define MXC_F_I2C_CN_SCLSTRD ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCLSTRD_POS)) /**< CN_SCLSTRD Mask */ 167 168 #define MXC_F_I2C_CN_SCLPPM_POS 13 /**< CN_SCLPPM Position */ 169 #define MXC_F_I2C_CN_SCLPPM ((uint32_t)(0x1UL << MXC_F_I2C_CN_SCLPPM_POS)) /**< CN_SCLPPM Mask */ 170 171 /**@} end of group I2C_CN_Register */ 172 173 /** 174 * @ingroup i2c_registers 175 * @defgroup I2C_ST I2C_ST 176 * @brief Status Register. 177 * @{ 178 */ 179 #define MXC_F_I2C_ST_BUS_POS 0 /**< ST_BUS Position */ 180 #define MXC_F_I2C_ST_BUS ((uint32_t)(0x1UL << MXC_F_I2C_ST_BUS_POS)) /**< ST_BUS Mask */ 181 182 #define MXC_F_I2C_ST_RXE_POS 1 /**< ST_RXE Position */ 183 #define MXC_F_I2C_ST_RXE ((uint32_t)(0x1UL << MXC_F_I2C_ST_RXE_POS)) /**< ST_RXE Mask */ 184 185 #define MXC_F_I2C_ST_RXF_POS 2 /**< ST_RXF Position */ 186 #define MXC_F_I2C_ST_RXF ((uint32_t)(0x1UL << MXC_F_I2C_ST_RXF_POS)) /**< ST_RXF Mask */ 187 188 #define MXC_F_I2C_ST_TXE_POS 3 /**< ST_TXE Position */ 189 #define MXC_F_I2C_ST_TXE ((uint32_t)(0x1UL << MXC_F_I2C_ST_TXE_POS)) /**< ST_TXE Mask */ 190 191 #define MXC_F_I2C_ST_TXF_POS 4 /**< ST_TXF Position */ 192 #define MXC_F_I2C_ST_TXF ((uint32_t)(0x1UL << MXC_F_I2C_ST_TXF_POS)) /**< ST_TXF Mask */ 193 194 #define MXC_F_I2C_ST_CKMD_POS 5 /**< ST_CKMD Position */ 195 #define MXC_F_I2C_ST_CKMD ((uint32_t)(0x1UL << MXC_F_I2C_ST_CKMD_POS)) /**< ST_CKMD Mask */ 196 197 #define MXC_F_I2C_ST_ST_POS 8 /**< ST_ST Position */ 198 #define MXC_F_I2C_ST_ST ((uint32_t)(0xFUL << MXC_F_I2C_ST_ST_POS)) /**< ST_ST Mask */ 199 200 /**@} end of group I2C_ST_Register */ 201 202 /** 203 * @ingroup i2c_registers 204 * @defgroup I2C_INT0 I2C_INT0 205 * @brief Interrupt Status Register. 206 * @{ 207 */ 208 #define MXC_F_I2C_INT0_DONEI_POS 0 /**< INT0_DONEI Position */ 209 #define MXC_F_I2C_INT0_DONEI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_DONEI_POS)) /**< INT0_DONEI Mask */ 210 211 #define MXC_F_I2C_INT0_IRXMI_POS 1 /**< INT0_IRXMI Position */ 212 #define MXC_F_I2C_INT0_IRXMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_IRXMI_POS)) /**< INT0_IRXMI Mask */ 213 214 #define MXC_F_I2C_INT0_GCI_POS 2 /**< INT0_GCI Position */ 215 #define MXC_F_I2C_INT0_GCI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_GCI_POS)) /**< INT0_GCI Mask */ 216 217 #define MXC_F_I2C_INT0_AMI_POS 3 /**< INT0_AMI Position */ 218 #define MXC_F_I2C_INT0_AMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_AMI_POS)) /**< INT0_AMI Mask */ 219 220 #define MXC_F_I2C_INT0_RXTHI_POS 4 /**< INT0_RXTHI Position */ 221 #define MXC_F_I2C_INT0_RXTHI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_RXTHI_POS)) /**< INT0_RXTHI Mask */ 222 223 #define MXC_F_I2C_INT0_TXTHI_POS 5 /**< INT0_TXTHI Position */ 224 #define MXC_F_I2C_INT0_TXTHI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_TXTHI_POS)) /**< INT0_TXTHI Mask */ 225 226 #define MXC_F_I2C_INT0_STOPI_POS 6 /**< INT0_STOPI Position */ 227 #define MXC_F_I2C_INT0_STOPI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_STOPI_POS)) /**< INT0_STOPI Mask */ 228 229 #define MXC_F_I2C_INT0_ADRACKI_POS 7 /**< INT0_ADRACKI Position */ 230 #define MXC_F_I2C_INT0_ADRACKI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_ADRACKI_POS)) /**< INT0_ADRACKI Mask */ 231 232 #define MXC_F_I2C_INT0_ARBERI_POS 8 /**< INT0_ARBERI Position */ 233 #define MXC_F_I2C_INT0_ARBERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_ARBERI_POS)) /**< INT0_ARBERI Mask */ 234 235 #define MXC_F_I2C_INT0_TOERI_POS 9 /**< INT0_TOERI Position */ 236 #define MXC_F_I2C_INT0_TOERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_TOERI_POS)) /**< INT0_TOERI Mask */ 237 238 #define MXC_F_I2C_INT0_ADRERI_POS 10 /**< INT0_ADRERI Position */ 239 #define MXC_F_I2C_INT0_ADRERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_ADRERI_POS)) /**< INT0_ADRERI Mask */ 240 241 #define MXC_F_I2C_INT0_DATERI_POS 11 /**< INT0_DATERI Position */ 242 #define MXC_F_I2C_INT0_DATERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_DATERI_POS)) /**< INT0_DATERI Mask */ 243 244 #define MXC_F_I2C_INT0_DNRERI_POS 12 /**< INT0_DNRERI Position */ 245 #define MXC_F_I2C_INT0_DNRERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_DNRERI_POS)) /**< INT0_DNRERI Mask */ 246 247 #define MXC_F_I2C_INT0_STRTERI_POS 13 /**< INT0_STRTERI Position */ 248 #define MXC_F_I2C_INT0_STRTERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_STRTERI_POS)) /**< INT0_STRTERI Mask */ 249 250 #define MXC_F_I2C_INT0_STOPERI_POS 14 /**< INT0_STOPERI Position */ 251 #define MXC_F_I2C_INT0_STOPERI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_STOPERI_POS)) /**< INT0_STOPERI Mask */ 252 253 #define MXC_F_I2C_INT0_TXLOI_POS 15 /**< INT0_TXLOI Position */ 254 #define MXC_F_I2C_INT0_TXLOI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_TXLOI_POS)) /**< INT0_TXLOI Mask */ 255 256 #define MXC_F_I2C_INT0_RDAMI_POS 22 /**< INT0_RDAMI Position */ 257 #define MXC_F_I2C_INT0_RDAMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_RDAMI_POS)) /**< INT0_RDAMI Mask */ 258 259 #define MXC_F_I2C_INT0_WRAMI_POS 23 /**< INT0_WRAMI Position */ 260 #define MXC_F_I2C_INT0_WRAMI ((uint32_t)(0x1UL << MXC_F_I2C_INT0_WRAMI_POS)) /**< INT0_WRAMI Mask */ 261 262 /**@} end of group I2C_INT0_Register */ 263 264 /** 265 * @ingroup i2c_registers 266 * @defgroup I2C_INTEN0 I2C_INTEN0 267 * @brief Interrupt Enable Register. 268 * @{ 269 */ 270 #define MXC_F_I2C_INTEN0_DONEIE_POS 0 /**< INTEN0_DONEIE Position */ 271 #define MXC_F_I2C_INTEN0_DONEIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_DONEIE_POS)) /**< INTEN0_DONEIE Mask */ 272 273 #define MXC_F_I2C_INTEN0_IRXMIE_POS 1 /**< INTEN0_IRXMIE Position */ 274 #define MXC_F_I2C_INTEN0_IRXMIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_IRXMIE_POS)) /**< INTEN0_IRXMIE Mask */ 275 276 #define MXC_F_I2C_INTEN0_GCIE_POS 2 /**< INTEN0_GCIE Position */ 277 #define MXC_F_I2C_INTEN0_GCIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_GCIE_POS)) /**< INTEN0_GCIE Mask */ 278 279 #define MXC_F_I2C_INTEN0_AMIE_POS 3 /**< INTEN0_AMIE Position */ 280 #define MXC_F_I2C_INTEN0_AMIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_AMIE_POS)) /**< INTEN0_AMIE Mask */ 281 282 #define MXC_F_I2C_INTEN0_RXTHIE_POS 4 /**< INTEN0_RXTHIE Position */ 283 #define MXC_F_I2C_INTEN0_RXTHIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_RXTHIE_POS)) /**< INTEN0_RXTHIE Mask */ 284 285 #define MXC_F_I2C_INTEN0_TXTHIE_POS 5 /**< INTEN0_TXTHIE Position */ 286 #define MXC_F_I2C_INTEN0_TXTHIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_TXTHIE_POS)) /**< INTEN0_TXTHIE Mask */ 287 288 #define MXC_F_I2C_INTEN0_STOPIE_POS 6 /**< INTEN0_STOPIE Position */ 289 #define MXC_F_I2C_INTEN0_STOPIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_STOPIE_POS)) /**< INTEN0_STOPIE Mask */ 290 291 #define MXC_F_I2C_INTEN0_ADRACKIE_POS 7 /**< INTEN0_ADRACKIE Position */ 292 #define MXC_F_I2C_INTEN0_ADRACKIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_ADRACKIE_POS)) /**< INTEN0_ADRACKIE Mask */ 293 294 #define MXC_F_I2C_INTEN0_ARBERIE_POS 8 /**< INTEN0_ARBERIE Position */ 295 #define MXC_F_I2C_INTEN0_ARBERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_ARBERIE_POS)) /**< INTEN0_ARBERIE Mask */ 296 297 #define MXC_F_I2C_INTEN0_TOERIE_POS 9 /**< INTEN0_TOERIE Position */ 298 #define MXC_F_I2C_INTEN0_TOERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_TOERIE_POS)) /**< INTEN0_TOERIE Mask */ 299 300 #define MXC_F_I2C_INTEN0_ADRERIE_POS 10 /**< INTEN0_ADRERIE Position */ 301 #define MXC_F_I2C_INTEN0_ADRERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_ADRERIE_POS)) /**< INTEN0_ADRERIE Mask */ 302 303 #define MXC_F_I2C_INTEN0_DATERIE_POS 11 /**< INTEN0_DATERIE Position */ 304 #define MXC_F_I2C_INTEN0_DATERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_DATERIE_POS)) /**< INTEN0_DATERIE Mask */ 305 306 #define MXC_F_I2C_INTEN0_DNRERIE_POS 12 /**< INTEN0_DNRERIE Position */ 307 #define MXC_F_I2C_INTEN0_DNRERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_DNRERIE_POS)) /**< INTEN0_DNRERIE Mask */ 308 309 #define MXC_F_I2C_INTEN0_STRTERIE_POS 13 /**< INTEN0_STRTERIE Position */ 310 #define MXC_F_I2C_INTEN0_STRTERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_STRTERIE_POS)) /**< INTEN0_STRTERIE Mask */ 311 312 #define MXC_F_I2C_INTEN0_STOPERIE_POS 14 /**< INTEN0_STOPERIE Position */ 313 #define MXC_F_I2C_INTEN0_STOPERIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_STOPERIE_POS)) /**< INTEN0_STOPERIE Mask */ 314 315 #define MXC_F_I2C_INTEN0_TXLOIE_POS 15 /**< INTEN0_TXLOIE Position */ 316 #define MXC_F_I2C_INTEN0_TXLOIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN0_TXLOIE_POS)) /**< INTEN0_TXLOIE Mask */ 317 318 /**@} end of group I2C_INTEN0_Register */ 319 320 /** 321 * @ingroup i2c_registers 322 * @defgroup I2C_INT1 I2C_INT1 323 * @brief Interrupt Status Register 1. 324 * @{ 325 */ 326 #define MXC_F_I2C_INT1_RXOFI_POS 0 /**< INT1_RXOFI Position */ 327 #define MXC_F_I2C_INT1_RXOFI ((uint32_t)(0x1UL << MXC_F_I2C_INT1_RXOFI_POS)) /**< INT1_RXOFI Mask */ 328 329 #define MXC_F_I2C_INT1_TXUFI_POS 1 /**< INT1_TXUFI Position */ 330 #define MXC_F_I2C_INT1_TXUFI ((uint32_t)(0x1UL << MXC_F_I2C_INT1_TXUFI_POS)) /**< INT1_TXUFI Mask */ 331 332 /**@} end of group I2C_INT1_Register */ 333 334 /** 335 * @ingroup i2c_registers 336 * @defgroup I2C_INTEN1 I2C_INTEN1 337 * @brief Interrupt Staus Register 1. 338 * @{ 339 */ 340 #define MXC_F_I2C_INTEN1_RXOFIE_POS 0 /**< INTEN1_RXOFIE Position */ 341 #define MXC_F_I2C_INTEN1_RXOFIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN1_RXOFIE_POS)) /**< INTEN1_RXOFIE Mask */ 342 343 #define MXC_F_I2C_INTEN1_TXUFIE_POS 1 /**< INTEN1_TXUFIE Position */ 344 #define MXC_F_I2C_INTEN1_TXUFIE ((uint32_t)(0x1UL << MXC_F_I2C_INTEN1_TXUFIE_POS)) /**< INTEN1_TXUFIE Mask */ 345 346 /**@} end of group I2C_INTEN1_Register */ 347 348 /** 349 * @ingroup i2c_registers 350 * @defgroup I2C_FIFO I2C_FIFO 351 * @brief FIFO Configuration Register. 352 * @{ 353 */ 354 #define MXC_F_I2C_FIFO_RXLEN_POS 0 /**< FIFO_RXLEN Position */ 355 #define MXC_F_I2C_FIFO_RXLEN ((uint32_t)(0xFFUL << MXC_F_I2C_FIFO_RXLEN_POS)) /**< FIFO_RXLEN Mask */ 356 357 #define MXC_F_I2C_FIFO_TXLEN_POS 8 /**< FIFO_TXLEN Position */ 358 #define MXC_F_I2C_FIFO_TXLEN ((uint32_t)(0xFFUL << MXC_F_I2C_FIFO_TXLEN_POS)) /**< FIFO_TXLEN Mask */ 359 360 /**@} end of group I2C_FIFO_Register */ 361 362 /** 363 * @ingroup i2c_registers 364 * @defgroup I2C_RXCFG I2C_RXCFG 365 * @brief Receive Control Register 0. 366 * @{ 367 */ 368 #define MXC_F_I2C_RXCFG_DNR_POS 0 /**< RXCFG_DNR Position */ 369 #define MXC_F_I2C_RXCFG_DNR ((uint32_t)(0x1UL << MXC_F_I2C_RXCFG_DNR_POS)) /**< RXCFG_DNR Mask */ 370 371 #define MXC_F_I2C_RXCFG_RXFSH_POS 7 /**< RXCFG_RXFSH Position */ 372 #define MXC_F_I2C_RXCFG_RXFSH ((uint32_t)(0x1UL << MXC_F_I2C_RXCFG_RXFSH_POS)) /**< RXCFG_RXFSH Mask */ 373 374 #define MXC_F_I2C_RXCFG_RXTH_POS 8 /**< RXCFG_RXTH Position */ 375 #define MXC_F_I2C_RXCFG_RXTH ((uint32_t)(0xFUL << MXC_F_I2C_RXCFG_RXTH_POS)) /**< RXCFG_RXTH Mask */ 376 377 /**@} end of group I2C_RXCFG_Register */ 378 379 /** 380 * @ingroup i2c_registers 381 * @defgroup I2C_RX I2C_RX 382 * @brief Receive Control Register 1. 383 * @{ 384 */ 385 #define MXC_F_I2C_RX_RXCNT_POS 0 /**< RX_RXCNT Position */ 386 #define MXC_F_I2C_RX_RXCNT ((uint32_t)(0xFFUL << MXC_F_I2C_RX_RXCNT_POS)) /**< RX_RXCNT Mask */ 387 388 #define MXC_F_I2C_RX_RXFIFO_POS 8 /**< RX_RXFIFO Position */ 389 #define MXC_F_I2C_RX_RXFIFO ((uint32_t)(0xFUL << MXC_F_I2C_RX_RXFIFO_POS)) /**< RX_RXFIFO Mask */ 390 391 /**@} end of group I2C_RX_Register */ 392 393 /** 394 * @ingroup i2c_registers 395 * @defgroup I2C_TXCFG I2C_TXCFG 396 * @brief Transmit Control Register 0. 397 * @{ 398 */ 399 #define MXC_F_I2C_TXCFG_TXPRELD_POS 0 /**< TXCFG_TXPRELD Position */ 400 #define MXC_F_I2C_TXCFG_TXPRELD ((uint32_t)(0x1UL << MXC_F_I2C_TXCFG_TXPRELD_POS)) /**< TXCFG_TXPRELD Mask */ 401 402 #define MXC_F_I2C_TXCFG_TXRDYMMODE_POS 1 /**< TXCFG_TXRDYMMODE Position */ 403 #define MXC_F_I2C_TXCFG_TXRDYMMODE ((uint32_t)(0x1UL << MXC_F_I2C_TXCFG_TXRDYMMODE_POS)) /**< TXCFG_TXRDYMMODE Mask */ 404 405 #define MXC_F_I2C_TXCFG_TXFSH_POS 7 /**< TXCFG_TXFSH Position */ 406 #define MXC_F_I2C_TXCFG_TXFSH ((uint32_t)(0x1UL << MXC_F_I2C_TXCFG_TXFSH_POS)) /**< TXCFG_TXFSH Mask */ 407 408 #define MXC_F_I2C_TXCFG_TXTH_POS 8 /**< TXCFG_TXTH Position */ 409 #define MXC_F_I2C_TXCFG_TXTH ((uint32_t)(0xFUL << MXC_F_I2C_TXCFG_TXTH_POS)) /**< TXCFG_TXTH Mask */ 410 411 /**@} end of group I2C_TXCFG_Register */ 412 413 /** 414 * @ingroup i2c_registers 415 * @defgroup I2C_TX I2C_TX 416 * @brief Transmit Control Register 1. 417 * @{ 418 */ 419 #define MXC_F_I2C_TX_TXRDY_POS 0 /**< TX_TXRDY Position */ 420 #define MXC_F_I2C_TX_TXRDY ((uint32_t)(0x1UL << MXC_F_I2C_TX_TXRDY_POS)) /**< TX_TXRDY Mask */ 421 422 #define MXC_F_I2C_TX_TXLAST_POS 1 /**< TX_TXLAST Position */ 423 #define MXC_F_I2C_TX_TXLAST ((uint32_t)(0x1UL << MXC_F_I2C_TX_TXLAST_POS)) /**< TX_TXLAST Mask */ 424 425 #define MXC_F_I2C_TX_TXFIFO_POS 8 /**< TX_TXFIFO Position */ 426 #define MXC_F_I2C_TX_TXFIFO ((uint32_t)(0xFUL << MXC_F_I2C_TX_TXFIFO_POS)) /**< TX_TXFIFO Mask */ 427 428 /**@} end of group I2C_TX_Register */ 429 430 /** 431 * @ingroup i2c_registers 432 * @defgroup I2C_DATA I2C_DATA 433 * @brief Data Register. 434 * @{ 435 */ 436 #define MXC_F_I2C_DATA_DATA_POS 0 /**< DATA_DATA Position */ 437 #define MXC_F_I2C_DATA_DATA ((uint32_t)(0xFFUL << MXC_F_I2C_DATA_DATA_POS)) /**< DATA_DATA Mask */ 438 439 /**@} end of group I2C_DATA_Register */ 440 441 /** 442 * @ingroup i2c_registers 443 * @defgroup I2C_MCN I2C_MCN 444 * @brief Master Control Register. 445 * @{ 446 */ 447 #define MXC_F_I2C_MCN_START_POS 0 /**< MCN_START Position */ 448 #define MXC_F_I2C_MCN_START ((uint32_t)(0x1UL << MXC_F_I2C_MCN_START_POS)) /**< MCN_START Mask */ 449 450 #define MXC_F_I2C_MCN_RESTART_POS 1 /**< MCN_RESTART Position */ 451 #define MXC_F_I2C_MCN_RESTART ((uint32_t)(0x1UL << MXC_F_I2C_MCN_RESTART_POS)) /**< MCN_RESTART Mask */ 452 453 #define MXC_F_I2C_MCN_STOP_POS 2 /**< MCN_STOP Position */ 454 #define MXC_F_I2C_MCN_STOP ((uint32_t)(0x1UL << MXC_F_I2C_MCN_STOP_POS)) /**< MCN_STOP Mask */ 455 456 #define MXC_F_I2C_MCN_SEA_POS 7 /**< MCN_SEA Position */ 457 #define MXC_F_I2C_MCN_SEA ((uint32_t)(0x1UL << MXC_F_I2C_MCN_SEA_POS)) /**< MCN_SEA Mask */ 458 459 /**@} end of group I2C_MCN_Register */ 460 461 /** 462 * @ingroup i2c_registers 463 * @defgroup I2C_CKL I2C_CKL 464 * @brief Clock Low Register. 465 * @{ 466 */ 467 #define MXC_F_I2C_CKL_CKL_POS 0 /**< CKL_CKL Position */ 468 #define MXC_F_I2C_CKL_CKL ((uint32_t)(0x1FFUL << MXC_F_I2C_CKL_CKL_POS)) /**< CKL_CKL Mask */ 469 470 /**@} end of group I2C_CKL_Register */ 471 472 /** 473 * @ingroup i2c_registers 474 * @defgroup I2C_CKH I2C_CKH 475 * @brief Clock high Register. 476 * @{ 477 */ 478 #define MXC_F_I2C_CKH_CKH_POS 0 /**< CKH_CKH Position */ 479 #define MXC_F_I2C_CKH_CKH ((uint32_t)(0x1FFUL << MXC_F_I2C_CKH_CKH_POS)) /**< CKH_CKH Mask */ 480 481 /**@} end of group I2C_CKH_Register */ 482 483 /** 484 * @ingroup i2c_registers 485 * @defgroup I2C_TO I2C_TO 486 * @brief Timeout Register 487 * @{ 488 */ 489 #define MXC_F_I2C_TO_TO_POS 0 /**< TO_TO Position */ 490 #define MXC_F_I2C_TO_TO ((uint32_t)(0xFFFFUL << MXC_F_I2C_TO_TO_POS)) /**< TO_TO Mask */ 491 492 /**@} end of group I2C_TO_Register */ 493 494 /** 495 * @ingroup i2c_registers 496 * @defgroup I2C_DMA I2C_DMA 497 * @brief DMA Register. 498 * @{ 499 */ 500 #define MXC_F_I2C_DMA_TXEN_POS 0 /**< DMA_TXEN Position */ 501 #define MXC_F_I2C_DMA_TXEN ((uint32_t)(0x1UL << MXC_F_I2C_DMA_TXEN_POS)) /**< DMA_TXEN Mask */ 502 503 #define MXC_F_I2C_DMA_RXEN_POS 1 /**< DMA_RXEN Position */ 504 #define MXC_F_I2C_DMA_RXEN ((uint32_t)(0x1UL << MXC_F_I2C_DMA_RXEN_POS)) /**< DMA_RXEN Mask */ 505 506 /**@} end of group I2C_DMA_Register */ 507 508 /** 509 * @ingroup i2c_registers 510 * @defgroup I2C_SLA I2C_SLA 511 * @brief Slave Address Register. 512 * @{ 513 */ 514 #define MXC_F_I2C_SLA_SLA_POS 0 /**< SLA_SLA Position */ 515 #define MXC_F_I2C_SLA_SLA ((uint32_t)(0x3FFUL << MXC_F_I2C_SLA_SLA_POS)) /**< SLA_SLA Mask */ 516 #define MXC_V_I2C_SLA_SLA_DIS ((uint32_t)0x0UL) /**< SLA_SLA_DIS Value */ 517 #define MXC_S_I2C_SLA_SLA_DIS (MXC_V_I2C_SLA_SLA_DIS << MXC_F_I2C_SLA_SLA_POS) /**< SLA_SLA_DIS Setting */ 518 #define MXC_V_I2C_SLA_SLA_EN ((uint32_t)0x1UL) /**< SLA_SLA_EN Value */ 519 #define MXC_S_I2C_SLA_SLA_EN (MXC_V_I2C_SLA_SLA_EN << MXC_F_I2C_SLA_SLA_POS) /**< SLA_SLA_EN Setting */ 520 521 #define MXC_F_I2C_SLA_EA_POS 15 /**< SLA_EA Position */ 522 #define MXC_F_I2C_SLA_EA ((uint32_t)(0x1UL << MXC_F_I2C_SLA_EA_POS)) /**< SLA_EA Mask */ 523 524 /**@} end of group I2C_SLA_Register */ 525 526 #ifdef __cplusplus 527 } 528 #endif 529 530 #endif // LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_I2C_REGS_H_ 531