1 /** 2 * @file spi_regs.h 3 * @brief Registers, Bit Masks and Bit Positions for the SPI Peripheral Module. 4 * @note This file is @generated. 5 * @ingroup spi_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_SPI_REGS_H_ 29 #define LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SPI_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 spi 67 * @defgroup spi_registers SPI_Registers 68 * @brief Registers, Bit Masks and Bit Positions for the SPI Peripheral Module. 69 * @details SPI peripheral. 70 */ 71 72 /** 73 * @ingroup spi_registers 74 * Structure type to access the SPI Registers. 75 */ 76 typedef struct { 77 union { 78 __IO uint32_t data32; /**< <tt>\b 0x00:</tt> SPI DATA32 Register */ 79 __IO uint16_t data16[2]; /**< <tt>\b 0x00:</tt> SPI DATA16 Register */ 80 __IO uint8_t data8[4]; /**< <tt>\b 0x00:</tt> SPI DATA8 Register */ 81 }; 82 __IO uint32_t mstr_cntl; /**< <tt>\b 0x04:</tt> SPI MSTR_CNTL Register */ 83 __IO uint32_t trnmt_size; /**< <tt>\b 0x08:</tt> SPI TRNMT_SIZE Register */ 84 __IO uint32_t static_config; /**< <tt>\b 0x0C:</tt> SPI STATIC_CONFIG Register */ 85 __IO uint32_t ss_time; /**< <tt>\b 0x10:</tt> SPI SS_TIME Register */ 86 __IO uint32_t clk_config; /**< <tt>\b 0x14:</tt> SPI CLK_CONFIG Register */ 87 __R uint32_t rsv_0x18; 88 __IO uint32_t dma; /**< <tt>\b 0x1C:</tt> SPI DMA Register */ 89 __IO uint32_t int_fl; /**< <tt>\b 0x20:</tt> SPI INT_FL Register */ 90 __IO uint32_t int_en; /**< <tt>\b 0x24:</tt> SPI INT_EN Register */ 91 __IO uint32_t wake_fl; /**< <tt>\b 0x28:</tt> SPI WAKE_FL Register */ 92 __IO uint32_t wake_en; /**< <tt>\b 0x2C:</tt> SPI WAKE_EN Register */ 93 __I uint32_t stat; /**< <tt>\b 0x30:</tt> SPI STAT Register */ 94 } mxc_spi_regs_t; 95 96 /* Register offsets for module SPI */ 97 /** 98 * @ingroup spi_registers 99 * @defgroup SPI_Register_Offsets Register Offsets 100 * @brief SPI Peripheral Register Offsets from the SPI Base Peripheral Address. 101 * @{ 102 */ 103 #define MXC_R_SPI_DATA32 ((uint32_t)0x00000000UL) /**< Offset from SPI Base Address: <tt> 0x0000</tt> */ 104 #define MXC_R_SPI_DATA16 ((uint32_t)0x00000000UL) /**< Offset from SPI Base Address: <tt> 0x0000</tt> */ 105 #define MXC_R_SPI_DATA8 ((uint32_t)0x00000000UL) /**< Offset from SPI Base Address: <tt> 0x0000</tt> */ 106 #define MXC_R_SPI_MSTR_CNTL ((uint32_t)0x00000004UL) /**< Offset from SPI Base Address: <tt> 0x0004</tt> */ 107 #define MXC_R_SPI_TRNMT_SIZE ((uint32_t)0x00000008UL) /**< Offset from SPI Base Address: <tt> 0x0008</tt> */ 108 #define MXC_R_SPI_STATIC_CONFIG ((uint32_t)0x0000000CUL) /**< Offset from SPI Base Address: <tt> 0x000C</tt> */ 109 #define MXC_R_SPI_SS_TIME ((uint32_t)0x00000010UL) /**< Offset from SPI Base Address: <tt> 0x0010</tt> */ 110 #define MXC_R_SPI_CLK_CONFIG ((uint32_t)0x00000014UL) /**< Offset from SPI Base Address: <tt> 0x0014</tt> */ 111 #define MXC_R_SPI_DMA ((uint32_t)0x0000001CUL) /**< Offset from SPI Base Address: <tt> 0x001C</tt> */ 112 #define MXC_R_SPI_INT_FL ((uint32_t)0x00000020UL) /**< Offset from SPI Base Address: <tt> 0x0020</tt> */ 113 #define MXC_R_SPI_INT_EN ((uint32_t)0x00000024UL) /**< Offset from SPI Base Address: <tt> 0x0024</tt> */ 114 #define MXC_R_SPI_WAKE_FL ((uint32_t)0x00000028UL) /**< Offset from SPI Base Address: <tt> 0x0028</tt> */ 115 #define MXC_R_SPI_WAKE_EN ((uint32_t)0x0000002CUL) /**< Offset from SPI Base Address: <tt> 0x002C</tt> */ 116 #define MXC_R_SPI_STAT ((uint32_t)0x00000030UL) /**< Offset from SPI Base Address: <tt> 0x0030</tt> */ 117 /**@} end of group spi_registers */ 118 119 /** 120 * @ingroup spi_registers 121 * @defgroup SPI_DATA32 SPI_DATA32 122 * @brief Register for reading and writing the FIFO. 123 * @{ 124 */ 125 #define MXC_F_SPI_DATA32_DATA_POS 0 /**< DATA32_DATA Position */ 126 #define MXC_F_SPI_DATA32_DATA ((uint32_t)(0xFFFFFFFFUL << MXC_F_SPI_DATA32_DATA_POS)) /**< DATA32_DATA Mask */ 127 128 /**@} end of group SPI_DATA32_Register */ 129 130 /** 131 * @ingroup spi_registers 132 * @defgroup SPI_DATA16 SPI_DATA16 133 * @brief Register for reading and writing the FIFO. 134 * @{ 135 */ 136 #define MXC_F_SPI_DATA16_DATA_POS 0 /**< DATA16_DATA Position */ 137 #define MXC_F_SPI_DATA16_DATA ((uint16_t)(0xFFFFUL << MXC_F_SPI_DATA16_DATA_POS)) /**< DATA16_DATA Mask */ 138 139 /**@} end of group SPI_DATA16_Register */ 140 141 /** 142 * @ingroup spi_registers 143 * @defgroup SPI_DATA8 SPI_DATA8 144 * @brief Register for reading and writing the FIFO. 145 * @{ 146 */ 147 #define MXC_F_SPI_DATA8_DATA_POS 0 /**< DATA8_DATA Position */ 148 #define MXC_F_SPI_DATA8_DATA ((uint8_t)(0xFFUL << MXC_F_SPI_DATA8_DATA_POS)) /**< DATA8_DATA Mask */ 149 150 /**@} end of group SPI_DATA8_Register */ 151 152 /** 153 * @ingroup spi_registers 154 * @defgroup SPI_MSTR_CNTL SPI_MSTR_CNTL 155 * @brief Register for controlling SPI peripheral. 156 * @{ 157 */ 158 #define MXC_F_SPI_MSTR_CNTL_SPIEN_POS 0 /**< MSTR_CNTL_SPIEN Position */ 159 #define MXC_F_SPI_MSTR_CNTL_SPIEN ((uint32_t)(0x1UL << MXC_F_SPI_MSTR_CNTL_SPIEN_POS)) /**< MSTR_CNTL_SPIEN Mask */ 160 161 #define MXC_F_SPI_MSTR_CNTL_MMEN_POS 1 /**< MSTR_CNTL_MMEN Position */ 162 #define MXC_F_SPI_MSTR_CNTL_MMEN ((uint32_t)(0x1UL << MXC_F_SPI_MSTR_CNTL_MMEN_POS)) /**< MSTR_CNTL_MMEN Mask */ 163 164 #define MXC_F_SPI_MSTR_CNTL_SSIO_POS 4 /**< MSTR_CNTL_SSIO Position */ 165 #define MXC_F_SPI_MSTR_CNTL_SSIO ((uint32_t)(0x1UL << MXC_F_SPI_MSTR_CNTL_SSIO_POS)) /**< MSTR_CNTL_SSIO Mask */ 166 167 #define MXC_F_SPI_MSTR_CNTL_START_POS 5 /**< MSTR_CNTL_START Position */ 168 #define MXC_F_SPI_MSTR_CNTL_START ((uint32_t)(0x1UL << MXC_F_SPI_MSTR_CNTL_START_POS)) /**< MSTR_CNTL_START Mask */ 169 170 #define MXC_F_SPI_MSTR_CNTL_SSCTRL_POS 8 /**< MSTR_CNTL_SSCTRL Position */ 171 #define MXC_F_SPI_MSTR_CNTL_SSCTRL ((uint32_t)(0x1UL << MXC_F_SPI_MSTR_CNTL_SSCTRL_POS)) /**< MSTR_CNTL_SSCTRL Mask */ 172 173 #define MXC_F_SPI_MSTR_CNTL_SS_POS 16 /**< MSTR_CNTL_SS Position */ 174 #define MXC_F_SPI_MSTR_CNTL_SS ((uint32_t)(0x7UL << MXC_F_SPI_MSTR_CNTL_SS_POS)) /**< MSTR_CNTL_SS Mask */ 175 #define MXC_V_SPI_MSTR_CNTL_SS_SS0 ((uint32_t)0x1UL) /**< MSTR_CNTL_SS_SS0 Value */ 176 #define MXC_S_SPI_MSTR_CNTL_SS_SS0 (MXC_V_SPI_MSTR_CNTL_SS_SS0 << MXC_F_SPI_MSTR_CNTL_SS_POS) /**< MSTR_CNTL_SS_SS0 Setting */ 177 #define MXC_V_SPI_MSTR_CNTL_SS_SS1 ((uint32_t)0x2UL) /**< MSTR_CNTL_SS_SS1 Value */ 178 #define MXC_S_SPI_MSTR_CNTL_SS_SS1 (MXC_V_SPI_MSTR_CNTL_SS_SS1 << MXC_F_SPI_MSTR_CNTL_SS_POS) /**< MSTR_CNTL_SS_SS1 Setting */ 179 #define MXC_V_SPI_MSTR_CNTL_SS_SS2 ((uint32_t)0x4UL) /**< MSTR_CNTL_SS_SS2 Value */ 180 #define MXC_S_SPI_MSTR_CNTL_SS_SS2 (MXC_V_SPI_MSTR_CNTL_SS_SS2 << MXC_F_SPI_MSTR_CNTL_SS_POS) /**< MSTR_CNTL_SS_SS2 Setting */ 181 182 /**@} end of group SPI_MSTR_CNTL_Register */ 183 184 /** 185 * @ingroup spi_registers 186 * @defgroup SPI_TRNMT_SIZE SPI_TRNMT_SIZE 187 * @brief Register for controlling SPI peripheral. 188 * @{ 189 */ 190 #define MXC_F_SPI_TRNMT_SIZE_TX_NUM_CHAR_POS 0 /**< TRNMT_SIZE_TX_NUM_CHAR Position */ 191 #define MXC_F_SPI_TRNMT_SIZE_TX_NUM_CHAR ((uint32_t)(0xFFFFUL << MXC_F_SPI_TRNMT_SIZE_TX_NUM_CHAR_POS)) /**< TRNMT_SIZE_TX_NUM_CHAR Mask */ 192 193 #define MXC_F_SPI_TRNMT_SIZE_RX_NUM_CHAR_POS 16 /**< TRNMT_SIZE_RX_NUM_CHAR Position */ 194 #define MXC_F_SPI_TRNMT_SIZE_RX_NUM_CHAR ((uint32_t)(0xFFFFUL << MXC_F_SPI_TRNMT_SIZE_RX_NUM_CHAR_POS)) /**< TRNMT_SIZE_RX_NUM_CHAR Mask */ 195 196 /**@} end of group SPI_TRNMT_SIZE_Register */ 197 198 /** 199 * @ingroup spi_registers 200 * @defgroup SPI_STATIC_CONFIG SPI_STATIC_CONFIG 201 * @brief Register for controlling SPI peripheral. 202 * @{ 203 */ 204 #define MXC_F_SPI_STATIC_CONFIG_PHASE_POS 0 /**< STATIC_CONFIG_PHASE Position */ 205 #define MXC_F_SPI_STATIC_CONFIG_PHASE ((uint32_t)(0x1UL << MXC_F_SPI_STATIC_CONFIG_PHASE_POS)) /**< STATIC_CONFIG_PHASE Mask */ 206 207 #define MXC_F_SPI_STATIC_CONFIG_CLKPOL_POS 1 /**< STATIC_CONFIG_CLKPOL Position */ 208 #define MXC_F_SPI_STATIC_CONFIG_CLKPOL ((uint32_t)(0x1UL << MXC_F_SPI_STATIC_CONFIG_CLKPOL_POS)) /**< STATIC_CONFIG_CLKPOL Mask */ 209 210 #define MXC_F_SPI_STATIC_CONFIG_NUMBITS_POS 8 /**< STATIC_CONFIG_NUMBITS Position */ 211 #define MXC_F_SPI_STATIC_CONFIG_NUMBITS ((uint32_t)(0xFUL << MXC_F_SPI_STATIC_CONFIG_NUMBITS_POS)) /**< STATIC_CONFIG_NUMBITS Mask */ 212 #define MXC_V_SPI_STATIC_CONFIG_NUMBITS_0 ((uint32_t)0x0UL) /**< STATIC_CONFIG_NUMBITS_0 Value */ 213 #define MXC_S_SPI_STATIC_CONFIG_NUMBITS_0 (MXC_V_SPI_STATIC_CONFIG_NUMBITS_0 << MXC_F_SPI_STATIC_CONFIG_NUMBITS_POS) /**< STATIC_CONFIG_NUMBITS_0 Setting */ 214 215 #define MXC_F_SPI_STATIC_CONFIG_DATAWIDTH_POS 12 /**< STATIC_CONFIG_DATAWIDTH Position */ 216 #define MXC_F_SPI_STATIC_CONFIG_DATAWIDTH ((uint32_t)(0x3UL << MXC_F_SPI_STATIC_CONFIG_DATAWIDTH_POS)) /**< STATIC_CONFIG_DATAWIDTH Mask */ 217 #define MXC_V_SPI_STATIC_CONFIG_DATAWIDTH_MONO ((uint32_t)0x0UL) /**< STATIC_CONFIG_DATAWIDTH_MONO Value */ 218 #define MXC_S_SPI_STATIC_CONFIG_DATAWIDTH_MONO (MXC_V_SPI_STATIC_CONFIG_DATAWIDTH_MONO << MXC_F_SPI_STATIC_CONFIG_DATAWIDTH_POS) /**< STATIC_CONFIG_DATAWIDTH_MONO Setting */ 219 #define MXC_V_SPI_STATIC_CONFIG_DATAWIDTH_DUAL ((uint32_t)0x1UL) /**< STATIC_CONFIG_DATAWIDTH_DUAL Value */ 220 #define MXC_S_SPI_STATIC_CONFIG_DATAWIDTH_DUAL (MXC_V_SPI_STATIC_CONFIG_DATAWIDTH_DUAL << MXC_F_SPI_STATIC_CONFIG_DATAWIDTH_POS) /**< STATIC_CONFIG_DATAWIDTH_DUAL Setting */ 221 #define MXC_V_SPI_STATIC_CONFIG_DATAWIDTH_QUAD ((uint32_t)0x2UL) /**< STATIC_CONFIG_DATAWIDTH_QUAD Value */ 222 #define MXC_S_SPI_STATIC_CONFIG_DATAWIDTH_QUAD (MXC_V_SPI_STATIC_CONFIG_DATAWIDTH_QUAD << MXC_F_SPI_STATIC_CONFIG_DATAWIDTH_POS) /**< STATIC_CONFIG_DATAWIDTH_QUAD Setting */ 223 224 #define MXC_F_SPI_STATIC_CONFIG_3WIRE_POS 15 /**< STATIC_CONFIG_3WIRE Position */ 225 #define MXC_F_SPI_STATIC_CONFIG_3WIRE ((uint32_t)(0x1UL << MXC_F_SPI_STATIC_CONFIG_3WIRE_POS)) /**< STATIC_CONFIG_3WIRE Mask */ 226 227 #define MXC_F_SPI_STATIC_CONFIG_SSPOL_POS 16 /**< STATIC_CONFIG_SSPOL Position */ 228 #define MXC_F_SPI_STATIC_CONFIG_SSPOL ((uint32_t)(0xFFUL << MXC_F_SPI_STATIC_CONFIG_SSPOL_POS)) /**< STATIC_CONFIG_SSPOL Mask */ 229 #define MXC_V_SPI_STATIC_CONFIG_SSPOL_SS0_HIGH ((uint32_t)0x1UL) /**< STATIC_CONFIG_SSPOL_SS0_HIGH Value */ 230 #define MXC_S_SPI_STATIC_CONFIG_SSPOL_SS0_HIGH (MXC_V_SPI_STATIC_CONFIG_SSPOL_SS0_HIGH << MXC_F_SPI_STATIC_CONFIG_SSPOL_POS) /**< STATIC_CONFIG_SSPOL_SS0_HIGH Setting */ 231 #define MXC_V_SPI_STATIC_CONFIG_SSPOL_SS1_HIGH ((uint32_t)0x2UL) /**< STATIC_CONFIG_SSPOL_SS1_HIGH Value */ 232 #define MXC_S_SPI_STATIC_CONFIG_SSPOL_SS1_HIGH (MXC_V_SPI_STATIC_CONFIG_SSPOL_SS1_HIGH << MXC_F_SPI_STATIC_CONFIG_SSPOL_POS) /**< STATIC_CONFIG_SSPOL_SS1_HIGH Setting */ 233 #define MXC_V_SPI_STATIC_CONFIG_SSPOL_SS2_HIGH ((uint32_t)0x4UL) /**< STATIC_CONFIG_SSPOL_SS2_HIGH Value */ 234 #define MXC_S_SPI_STATIC_CONFIG_SSPOL_SS2_HIGH (MXC_V_SPI_STATIC_CONFIG_SSPOL_SS2_HIGH << MXC_F_SPI_STATIC_CONFIG_SSPOL_POS) /**< STATIC_CONFIG_SSPOL_SS2_HIGH Setting */ 235 236 /**@} end of group SPI_STATIC_CONFIG_Register */ 237 238 /** 239 * @ingroup spi_registers 240 * @defgroup SPI_SS_TIME SPI_SS_TIME 241 * @brief Register for controlling SPI peripheral/Slave Select Timing. 242 * @{ 243 */ 244 #define MXC_F_SPI_SS_TIME_PRE_POS 0 /**< SS_TIME_PRE Position */ 245 #define MXC_F_SPI_SS_TIME_PRE ((uint32_t)(0xFFUL << MXC_F_SPI_SS_TIME_PRE_POS)) /**< SS_TIME_PRE Mask */ 246 #define MXC_V_SPI_SS_TIME_PRE_256 ((uint32_t)0x0UL) /**< SS_TIME_PRE_256 Value */ 247 #define MXC_S_SPI_SS_TIME_PRE_256 (MXC_V_SPI_SS_TIME_PRE_256 << MXC_F_SPI_SS_TIME_PRE_POS) /**< SS_TIME_PRE_256 Setting */ 248 249 #define MXC_F_SPI_SS_TIME_POST_POS 8 /**< SS_TIME_POST Position */ 250 #define MXC_F_SPI_SS_TIME_POST ((uint32_t)(0xFFUL << MXC_F_SPI_SS_TIME_POST_POS)) /**< SS_TIME_POST Mask */ 251 #define MXC_V_SPI_SS_TIME_POST_256 ((uint32_t)0x0UL) /**< SS_TIME_POST_256 Value */ 252 #define MXC_S_SPI_SS_TIME_POST_256 (MXC_V_SPI_SS_TIME_POST_256 << MXC_F_SPI_SS_TIME_POST_POS) /**< SS_TIME_POST_256 Setting */ 253 254 #define MXC_F_SPI_SS_TIME_INACT_POS 16 /**< SS_TIME_INACT Position */ 255 #define MXC_F_SPI_SS_TIME_INACT ((uint32_t)(0xFFUL << MXC_F_SPI_SS_TIME_INACT_POS)) /**< SS_TIME_INACT Mask */ 256 #define MXC_V_SPI_SS_TIME_INACT_256 ((uint32_t)0x0UL) /**< SS_TIME_INACT_256 Value */ 257 #define MXC_S_SPI_SS_TIME_INACT_256 (MXC_V_SPI_SS_TIME_INACT_256 << MXC_F_SPI_SS_TIME_INACT_POS) /**< SS_TIME_INACT_256 Setting */ 258 259 /**@} end of group SPI_SS_TIME_Register */ 260 261 /** 262 * @ingroup spi_registers 263 * @defgroup SPI_CLK_CONFIG SPI_CLK_CONFIG 264 * @brief Register for controlling SPI clock rate. 265 * @{ 266 */ 267 #define MXC_F_SPI_CLK_CONFIG_LOW_POS 0 /**< CLK_CONFIG_LOW Position */ 268 #define MXC_F_SPI_CLK_CONFIG_LOW ((uint32_t)(0xFFUL << MXC_F_SPI_CLK_CONFIG_LOW_POS)) /**< CLK_CONFIG_LOW Mask */ 269 #define MXC_V_SPI_CLK_CONFIG_LOW_DIS ((uint32_t)0x0UL) /**< CLK_CONFIG_LOW_DIS Value */ 270 #define MXC_S_SPI_CLK_CONFIG_LOW_DIS (MXC_V_SPI_CLK_CONFIG_LOW_DIS << MXC_F_SPI_CLK_CONFIG_LOW_POS) /**< CLK_CONFIG_LOW_DIS Setting */ 271 272 #define MXC_F_SPI_CLK_CONFIG_HIGH_POS 8 /**< CLK_CONFIG_HIGH Position */ 273 #define MXC_F_SPI_CLK_CONFIG_HIGH ((uint32_t)(0xFFUL << MXC_F_SPI_CLK_CONFIG_HIGH_POS)) /**< CLK_CONFIG_HIGH Mask */ 274 #define MXC_V_SPI_CLK_CONFIG_HIGH_DIS ((uint32_t)0x0UL) /**< CLK_CONFIG_HIGH_DIS Value */ 275 #define MXC_S_SPI_CLK_CONFIG_HIGH_DIS (MXC_V_SPI_CLK_CONFIG_HIGH_DIS << MXC_F_SPI_CLK_CONFIG_HIGH_POS) /**< CLK_CONFIG_HIGH_DIS Setting */ 276 277 #define MXC_F_SPI_CLK_CONFIG_SCALE_POS 16 /**< CLK_CONFIG_SCALE Position */ 278 #define MXC_F_SPI_CLK_CONFIG_SCALE ((uint32_t)(0xFUL << MXC_F_SPI_CLK_CONFIG_SCALE_POS)) /**< CLK_CONFIG_SCALE Mask */ 279 280 /**@} end of group SPI_CLK_CONFIG_Register */ 281 282 /** 283 * @ingroup spi_registers 284 * @defgroup SPI_DMA SPI_DMA 285 * @brief Register for controlling DMA. 286 * @{ 287 */ 288 #define MXC_F_SPI_DMA_TX_FIFO_LEVEL_POS 0 /**< DMA_TX_FIFO_LEVEL Position */ 289 #define MXC_F_SPI_DMA_TX_FIFO_LEVEL ((uint32_t)(0x1FUL << MXC_F_SPI_DMA_TX_FIFO_LEVEL_POS)) /**< DMA_TX_FIFO_LEVEL Mask */ 290 291 #define MXC_F_SPI_DMA_TX_FIFO_EN_POS 6 /**< DMA_TX_FIFO_EN Position */ 292 #define MXC_F_SPI_DMA_TX_FIFO_EN ((uint32_t)(0x1UL << MXC_F_SPI_DMA_TX_FIFO_EN_POS)) /**< DMA_TX_FIFO_EN Mask */ 293 294 #define MXC_F_SPI_DMA_TX_FIFO_CLEAR_POS 7 /**< DMA_TX_FIFO_CLEAR Position */ 295 #define MXC_F_SPI_DMA_TX_FIFO_CLEAR ((uint32_t)(0x1UL << MXC_F_SPI_DMA_TX_FIFO_CLEAR_POS)) /**< DMA_TX_FIFO_CLEAR Mask */ 296 297 #define MXC_F_SPI_DMA_TX_FIFO_CNT_POS 8 /**< DMA_TX_FIFO_CNT Position */ 298 #define MXC_F_SPI_DMA_TX_FIFO_CNT ((uint32_t)(0x3FUL << MXC_F_SPI_DMA_TX_FIFO_CNT_POS)) /**< DMA_TX_FIFO_CNT Mask */ 299 300 #define MXC_F_SPI_DMA_TX_DMA_EN_POS 15 /**< DMA_TX_DMA_EN Position */ 301 #define MXC_F_SPI_DMA_TX_DMA_EN ((uint32_t)(0x1UL << MXC_F_SPI_DMA_TX_DMA_EN_POS)) /**< DMA_TX_DMA_EN Mask */ 302 303 #define MXC_F_SPI_DMA_RX_FIFO_LEVEL_POS 16 /**< DMA_RX_FIFO_LEVEL Position */ 304 #define MXC_F_SPI_DMA_RX_FIFO_LEVEL ((uint32_t)(0x1FUL << MXC_F_SPI_DMA_RX_FIFO_LEVEL_POS)) /**< DMA_RX_FIFO_LEVEL Mask */ 305 306 #define MXC_F_SPI_DMA_RX_FIFO_EN_POS 22 /**< DMA_RX_FIFO_EN Position */ 307 #define MXC_F_SPI_DMA_RX_FIFO_EN ((uint32_t)(0x1UL << MXC_F_SPI_DMA_RX_FIFO_EN_POS)) /**< DMA_RX_FIFO_EN Mask */ 308 309 #define MXC_F_SPI_DMA_RX_FIFO_CLEAR_POS 23 /**< DMA_RX_FIFO_CLEAR Position */ 310 #define MXC_F_SPI_DMA_RX_FIFO_CLEAR ((uint32_t)(0x1UL << MXC_F_SPI_DMA_RX_FIFO_CLEAR_POS)) /**< DMA_RX_FIFO_CLEAR Mask */ 311 312 #define MXC_F_SPI_DMA_RX_FIFO_CNT_POS 24 /**< DMA_RX_FIFO_CNT Position */ 313 #define MXC_F_SPI_DMA_RX_FIFO_CNT ((uint32_t)(0x3FUL << MXC_F_SPI_DMA_RX_FIFO_CNT_POS)) /**< DMA_RX_FIFO_CNT Mask */ 314 315 #define MXC_F_SPI_DMA_RX_DMA_EN_POS 31 /**< DMA_RX_DMA_EN Position */ 316 #define MXC_F_SPI_DMA_RX_DMA_EN ((uint32_t)(0x1UL << MXC_F_SPI_DMA_RX_DMA_EN_POS)) /**< DMA_RX_DMA_EN Mask */ 317 318 /**@} end of group SPI_DMA_Register */ 319 320 /** 321 * @ingroup spi_registers 322 * @defgroup SPI_INT_FL SPI_INT_FL 323 * @brief Register for reading and clearing interrupt flags. All bits are write 1 to 324 * clear. 325 * @{ 326 */ 327 #define MXC_F_SPI_INT_FL_TXTHRLD_POS 0 /**< INT_FL_TXTHRLD Position */ 328 #define MXC_F_SPI_INT_FL_TXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_TXTHRLD_POS)) /**< INT_FL_TXTHRLD Mask */ 329 330 #define MXC_F_SPI_INT_FL_TXEMPTY_POS 1 /**< INT_FL_TXEMPTY Position */ 331 #define MXC_F_SPI_INT_FL_TXEMPTY ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_TXEMPTY_POS)) /**< INT_FL_TXEMPTY Mask */ 332 333 #define MXC_F_SPI_INT_FL_RXTHRLD_POS 2 /**< INT_FL_RXTHRLD Position */ 334 #define MXC_F_SPI_INT_FL_RXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_RXTHRLD_POS)) /**< INT_FL_RXTHRLD Mask */ 335 336 #define MXC_F_SPI_INT_FL_RXFULL_POS 3 /**< INT_FL_RXFULL Position */ 337 #define MXC_F_SPI_INT_FL_RXFULL ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_RXFULL_POS)) /**< INT_FL_RXFULL Mask */ 338 339 #define MXC_F_SPI_INT_FL_SSA_POS 4 /**< INT_FL_SSA Position */ 340 #define MXC_F_SPI_INT_FL_SSA ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_SSA_POS)) /**< INT_FL_SSA Mask */ 341 342 #define MXC_F_SPI_INT_FL_SSD_POS 5 /**< INT_FL_SSD Position */ 343 #define MXC_F_SPI_INT_FL_SSD ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_SSD_POS)) /**< INT_FL_SSD Mask */ 344 345 #define MXC_F_SPI_INT_FL_FAULT_POS 8 /**< INT_FL_FAULT Position */ 346 #define MXC_F_SPI_INT_FL_FAULT ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_FAULT_POS)) /**< INT_FL_FAULT Mask */ 347 348 #define MXC_F_SPI_INT_FL_ABORT_POS 9 /**< INT_FL_ABORT Position */ 349 #define MXC_F_SPI_INT_FL_ABORT ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_ABORT_POS)) /**< INT_FL_ABORT Mask */ 350 351 #define MXC_F_SPI_INT_FL_MSTRDONE_POS 11 /**< INT_FL_MSTRDONE Position */ 352 #define MXC_F_SPI_INT_FL_MSTRDONE ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_MSTRDONE_POS)) /**< INT_FL_MSTRDONE Mask */ 353 354 #define MXC_F_SPI_INT_FL_TXOVR_POS 12 /**< INT_FL_TXOVR Position */ 355 #define MXC_F_SPI_INT_FL_TXOVR ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_TXOVR_POS)) /**< INT_FL_TXOVR Mask */ 356 357 #define MXC_F_SPI_INT_FL_TXUNDR_POS 13 /**< INT_FL_TXUNDR Position */ 358 #define MXC_F_SPI_INT_FL_TXUNDR ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_TXUNDR_POS)) /**< INT_FL_TXUNDR Mask */ 359 360 #define MXC_F_SPI_INT_FL_RXOVR_POS 14 /**< INT_FL_RXOVR Position */ 361 #define MXC_F_SPI_INT_FL_RXOVR ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_RXOVR_POS)) /**< INT_FL_RXOVR Mask */ 362 363 #define MXC_F_SPI_INT_FL_RXUNDR_POS 15 /**< INT_FL_RXUNDR Position */ 364 #define MXC_F_SPI_INT_FL_RXUNDR ((uint32_t)(0x1UL << MXC_F_SPI_INT_FL_RXUNDR_POS)) /**< INT_FL_RXUNDR Mask */ 365 366 /**@} end of group SPI_INT_FL_Register */ 367 368 /** 369 * @ingroup spi_registers 370 * @defgroup SPI_INT_EN SPI_INT_EN 371 * @brief Register for enabling interrupts. 372 * @{ 373 */ 374 #define MXC_F_SPI_INT_EN_TXTHRLD_POS 0 /**< INT_EN_TXTHRLD Position */ 375 #define MXC_F_SPI_INT_EN_TXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_TXTHRLD_POS)) /**< INT_EN_TXTHRLD Mask */ 376 377 #define MXC_F_SPI_INT_EN_TXEMPTY_POS 1 /**< INT_EN_TXEMPTY Position */ 378 #define MXC_F_SPI_INT_EN_TXEMPTY ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_TXEMPTY_POS)) /**< INT_EN_TXEMPTY Mask */ 379 380 #define MXC_F_SPI_INT_EN_RXTHRLD_POS 2 /**< INT_EN_RXTHRLD Position */ 381 #define MXC_F_SPI_INT_EN_RXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_RXTHRLD_POS)) /**< INT_EN_RXTHRLD Mask */ 382 383 #define MXC_F_SPI_INT_EN_RXFULL_POS 3 /**< INT_EN_RXFULL Position */ 384 #define MXC_F_SPI_INT_EN_RXFULL ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_RXFULL_POS)) /**< INT_EN_RXFULL Mask */ 385 386 #define MXC_F_SPI_INT_EN_SSA_POS 4 /**< INT_EN_SSA Position */ 387 #define MXC_F_SPI_INT_EN_SSA ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_SSA_POS)) /**< INT_EN_SSA Mask */ 388 389 #define MXC_F_SPI_INT_EN_SSD_POS 5 /**< INT_EN_SSD Position */ 390 #define MXC_F_SPI_INT_EN_SSD ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_SSD_POS)) /**< INT_EN_SSD Mask */ 391 392 #define MXC_F_SPI_INT_EN_FAULT_POS 8 /**< INT_EN_FAULT Position */ 393 #define MXC_F_SPI_INT_EN_FAULT ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_FAULT_POS)) /**< INT_EN_FAULT Mask */ 394 395 #define MXC_F_SPI_INT_EN_ABORT_POS 9 /**< INT_EN_ABORT Position */ 396 #define MXC_F_SPI_INT_EN_ABORT ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_ABORT_POS)) /**< INT_EN_ABORT Mask */ 397 398 #define MXC_F_SPI_INT_EN_MSTRDONE_POS 11 /**< INT_EN_MSTRDONE Position */ 399 #define MXC_F_SPI_INT_EN_MSTRDONE ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_MSTRDONE_POS)) /**< INT_EN_MSTRDONE Mask */ 400 401 #define MXC_F_SPI_INT_EN_TXOVR_POS 12 /**< INT_EN_TXOVR Position */ 402 #define MXC_F_SPI_INT_EN_TXOVR ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_TXOVR_POS)) /**< INT_EN_TXOVR Mask */ 403 404 #define MXC_F_SPI_INT_EN_TXUNDR_POS 13 /**< INT_EN_TXUNDR Position */ 405 #define MXC_F_SPI_INT_EN_TXUNDR ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_TXUNDR_POS)) /**< INT_EN_TXUNDR Mask */ 406 407 #define MXC_F_SPI_INT_EN_RXOVR_POS 14 /**< INT_EN_RXOVR Position */ 408 #define MXC_F_SPI_INT_EN_RXOVR ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_RXOVR_POS)) /**< INT_EN_RXOVR Mask */ 409 410 #define MXC_F_SPI_INT_EN_RXUNDR_POS 15 /**< INT_EN_RXUNDR Position */ 411 #define MXC_F_SPI_INT_EN_RXUNDR ((uint32_t)(0x1UL << MXC_F_SPI_INT_EN_RXUNDR_POS)) /**< INT_EN_RXUNDR Mask */ 412 413 /**@} end of group SPI_INT_EN_Register */ 414 415 /** 416 * @ingroup spi_registers 417 * @defgroup SPI_WAKE_FL SPI_WAKE_FL 418 * @brief Register for wake up flags. All bits in this register are write 1 to clear. 419 * @{ 420 */ 421 #define MXC_F_SPI_WAKE_FL_TXTHRLD_POS 0 /**< WAKE_FL_TXTHRLD Position */ 422 #define MXC_F_SPI_WAKE_FL_TXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_FL_TXTHRLD_POS)) /**< WAKE_FL_TXTHRLD Mask */ 423 424 #define MXC_F_SPI_WAKE_FL_TXEMPTY_POS 1 /**< WAKE_FL_TXEMPTY Position */ 425 #define MXC_F_SPI_WAKE_FL_TXEMPTY ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_FL_TXEMPTY_POS)) /**< WAKE_FL_TXEMPTY Mask */ 426 427 #define MXC_F_SPI_WAKE_FL_RXTHRLD_POS 2 /**< WAKE_FL_RXTHRLD Position */ 428 #define MXC_F_SPI_WAKE_FL_RXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_FL_RXTHRLD_POS)) /**< WAKE_FL_RXTHRLD Mask */ 429 430 #define MXC_F_SPI_WAKE_FL_RXFULL_POS 3 /**< WAKE_FL_RXFULL Position */ 431 #define MXC_F_SPI_WAKE_FL_RXFULL ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_FL_RXFULL_POS)) /**< WAKE_FL_RXFULL Mask */ 432 433 /**@} end of group SPI_WAKE_FL_Register */ 434 435 /** 436 * @ingroup spi_registers 437 * @defgroup SPI_WAKE_EN SPI_WAKE_EN 438 * @brief Register for wake up enable. 439 * @{ 440 */ 441 #define MXC_F_SPI_WAKE_EN_TXTHRLD_POS 0 /**< WAKE_EN_TXTHRLD Position */ 442 #define MXC_F_SPI_WAKE_EN_TXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_EN_TXTHRLD_POS)) /**< WAKE_EN_TXTHRLD Mask */ 443 444 #define MXC_F_SPI_WAKE_EN_TXEMPTY_POS 1 /**< WAKE_EN_TXEMPTY Position */ 445 #define MXC_F_SPI_WAKE_EN_TXEMPTY ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_EN_TXEMPTY_POS)) /**< WAKE_EN_TXEMPTY Mask */ 446 447 #define MXC_F_SPI_WAKE_EN_RXTHRLD_POS 2 /**< WAKE_EN_RXTHRLD Position */ 448 #define MXC_F_SPI_WAKE_EN_RXTHRLD ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_EN_RXTHRLD_POS)) /**< WAKE_EN_RXTHRLD Mask */ 449 450 #define MXC_F_SPI_WAKE_EN_RXFULL_POS 3 /**< WAKE_EN_RXFULL Position */ 451 #define MXC_F_SPI_WAKE_EN_RXFULL ((uint32_t)(0x1UL << MXC_F_SPI_WAKE_EN_RXFULL_POS)) /**< WAKE_EN_RXFULL Mask */ 452 453 /**@} end of group SPI_WAKE_EN_Register */ 454 455 /** 456 * @ingroup spi_registers 457 * @defgroup SPI_STAT SPI_STAT 458 * @brief SPI Status register. 459 * @{ 460 */ 461 #define MXC_F_SPI_STAT_BUSY_POS 0 /**< STAT_BUSY Position */ 462 #define MXC_F_SPI_STAT_BUSY ((uint32_t)(0x1UL << MXC_F_SPI_STAT_BUSY_POS)) /**< STAT_BUSY Mask */ 463 464 /**@} end of group SPI_STAT_Register */ 465 466 #ifdef __cplusplus 467 } 468 #endif 469 470 #endif // LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SPI_REGS_H_ 471