mbed official / mbed-src

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Committer:
mbed_official
Date:
Mon Nov 10 07:45:06 2014 +0000
Revision:
395:bfce16e86ea4
Parent:
324:406fd2029f23
Synchronized with git revision 8adfd82aa1bf8859ec08537ee7bcd4aaaec1769b

Full URL: https://github.com/mbedmicro/mbed/commit/8adfd82aa1bf8859ec08537ee7bcd4aaaec1769b/

Targets: LPC176X - Add repeater pinmode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 324:406fd2029f23 1 /*
mbed_official 324:406fd2029f23 2 ** ###################################################################
mbed_official 324:406fd2029f23 3 ** Compilers: Keil ARM C/C++ Compiler
mbed_official 324:406fd2029f23 4 ** Freescale C/C++ for Embedded ARM
mbed_official 324:406fd2029f23 5 ** GNU C Compiler
mbed_official 324:406fd2029f23 6 ** IAR ANSI C/C++ Compiler for ARM
mbed_official 324:406fd2029f23 7 **
mbed_official 324:406fd2029f23 8 ** Reference manual: K22P121M120SF7RM, Rev. 1, March 24, 2014
mbed_official 324:406fd2029f23 9 ** Version: rev. 2.5, 2014-05-06
mbed_official 324:406fd2029f23 10 ** Build: b140604
mbed_official 324:406fd2029f23 11 **
mbed_official 324:406fd2029f23 12 ** Abstract:
mbed_official 324:406fd2029f23 13 ** Extension to the CMSIS register access layer header.
mbed_official 324:406fd2029f23 14 **
mbed_official 324:406fd2029f23 15 ** Copyright (c) 2014 Freescale Semiconductor, Inc.
mbed_official 324:406fd2029f23 16 ** All rights reserved.
mbed_official 324:406fd2029f23 17 **
mbed_official 324:406fd2029f23 18 ** Redistribution and use in source and binary forms, with or without modification,
mbed_official 324:406fd2029f23 19 ** are permitted provided that the following conditions are met:
mbed_official 324:406fd2029f23 20 **
mbed_official 324:406fd2029f23 21 ** o Redistributions of source code must retain the above copyright notice, this list
mbed_official 324:406fd2029f23 22 ** of conditions and the following disclaimer.
mbed_official 324:406fd2029f23 23 **
mbed_official 324:406fd2029f23 24 ** o Redistributions in binary form must reproduce the above copyright notice, this
mbed_official 324:406fd2029f23 25 ** list of conditions and the following disclaimer in the documentation and/or
mbed_official 324:406fd2029f23 26 ** other materials provided with the distribution.
mbed_official 324:406fd2029f23 27 **
mbed_official 324:406fd2029f23 28 ** o Neither the name of Freescale Semiconductor, Inc. nor the names of its
mbed_official 324:406fd2029f23 29 ** contributors may be used to endorse or promote products derived from this
mbed_official 324:406fd2029f23 30 ** software without specific prior written permission.
mbed_official 324:406fd2029f23 31 **
mbed_official 324:406fd2029f23 32 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
mbed_official 324:406fd2029f23 33 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
mbed_official 324:406fd2029f23 34 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 324:406fd2029f23 35 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
mbed_official 324:406fd2029f23 36 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
mbed_official 324:406fd2029f23 37 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
mbed_official 324:406fd2029f23 38 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
mbed_official 324:406fd2029f23 39 ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
mbed_official 324:406fd2029f23 40 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
mbed_official 324:406fd2029f23 41 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 324:406fd2029f23 42 **
mbed_official 324:406fd2029f23 43 ** http: www.freescale.com
mbed_official 324:406fd2029f23 44 ** mail: support@freescale.com
mbed_official 324:406fd2029f23 45 **
mbed_official 324:406fd2029f23 46 ** Revisions:
mbed_official 324:406fd2029f23 47 ** - rev. 1.0 (2013-07-23)
mbed_official 324:406fd2029f23 48 ** Initial version.
mbed_official 324:406fd2029f23 49 ** - rev. 1.1 (2013-09-17)
mbed_official 324:406fd2029f23 50 ** RM rev. 0.4 update.
mbed_official 324:406fd2029f23 51 ** - rev. 2.0 (2013-10-29)
mbed_official 324:406fd2029f23 52 ** Register accessor macros added to the memory map.
mbed_official 324:406fd2029f23 53 ** Symbols for Processor Expert memory map compatibility added to the memory map.
mbed_official 324:406fd2029f23 54 ** Startup file for gcc has been updated according to CMSIS 3.2.
mbed_official 324:406fd2029f23 55 ** System initialization updated.
mbed_official 324:406fd2029f23 56 ** - rev. 2.1 (2013-10-30)
mbed_official 324:406fd2029f23 57 ** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled.
mbed_official 324:406fd2029f23 58 ** - rev. 2.2 (2013-12-20)
mbed_official 324:406fd2029f23 59 ** Update according to reference manual rev. 0.6,
mbed_official 324:406fd2029f23 60 ** - rev. 2.3 (2014-01-13)
mbed_official 324:406fd2029f23 61 ** Update according to reference manual rev. 0.61,
mbed_official 324:406fd2029f23 62 ** - rev. 2.4 (2014-02-10)
mbed_official 324:406fd2029f23 63 ** The declaration of clock configurations has been moved to separate header file system_MK22F51212.h
mbed_official 324:406fd2029f23 64 ** - rev. 2.5 (2014-05-06)
mbed_official 324:406fd2029f23 65 ** Update according to reference manual rev. 1.0,
mbed_official 324:406fd2029f23 66 ** Update of system and startup files.
mbed_official 324:406fd2029f23 67 ** Module access macro module_BASES replaced by module_BASE_PTRS.
mbed_official 324:406fd2029f23 68 **
mbed_official 324:406fd2029f23 69 ** ###################################################################
mbed_official 324:406fd2029f23 70 */
mbed_official 324:406fd2029f23 71
mbed_official 324:406fd2029f23 72 /*
mbed_official 324:406fd2029f23 73 * WARNING! DO NOT EDIT THIS FILE DIRECTLY!
mbed_official 324:406fd2029f23 74 *
mbed_official 324:406fd2029f23 75 * This file was generated automatically and any changes may be lost.
mbed_official 324:406fd2029f23 76 */
mbed_official 324:406fd2029f23 77 #ifndef __HW_SPI_REGISTERS_H__
mbed_official 324:406fd2029f23 78 #define __HW_SPI_REGISTERS_H__
mbed_official 324:406fd2029f23 79
mbed_official 324:406fd2029f23 80 #include "MK22F51212.h"
mbed_official 324:406fd2029f23 81 #include "fsl_bitaccess.h"
mbed_official 324:406fd2029f23 82
mbed_official 324:406fd2029f23 83 /*
mbed_official 324:406fd2029f23 84 * MK22F51212 SPI
mbed_official 324:406fd2029f23 85 *
mbed_official 324:406fd2029f23 86 * Serial Peripheral Interface
mbed_official 324:406fd2029f23 87 *
mbed_official 324:406fd2029f23 88 * Registers defined in this header file:
mbed_official 324:406fd2029f23 89 * - HW_SPI_MCR - Module Configuration Register
mbed_official 324:406fd2029f23 90 * - HW_SPI_TCR - Transfer Count Register
mbed_official 324:406fd2029f23 91 * - HW_SPI_CTARn - Clock and Transfer Attributes Register (In Master Mode)
mbed_official 324:406fd2029f23 92 * - HW_SPI_CTARn_SLAVE - Clock and Transfer Attributes Register (In Slave Mode)
mbed_official 324:406fd2029f23 93 * - HW_SPI_SR - Status Register
mbed_official 324:406fd2029f23 94 * - HW_SPI_RSER - DMA/Interrupt Request Select and Enable Register
mbed_official 324:406fd2029f23 95 * - HW_SPI_PUSHR - PUSH TX FIFO Register In Master Mode
mbed_official 324:406fd2029f23 96 * - HW_SPI_PUSHR_SLAVE - PUSH TX FIFO Register In Slave Mode
mbed_official 324:406fd2029f23 97 * - HW_SPI_POPR - POP RX FIFO Register
mbed_official 324:406fd2029f23 98 * - HW_SPI_TXFRn - Transmit FIFO Registers
mbed_official 324:406fd2029f23 99 * - HW_SPI_RXFRn - Receive FIFO Registers
mbed_official 324:406fd2029f23 100 *
mbed_official 324:406fd2029f23 101 * - hw_spi_t - Struct containing all module registers.
mbed_official 324:406fd2029f23 102 */
mbed_official 324:406fd2029f23 103
mbed_official 324:406fd2029f23 104 #define HW_SPI_INSTANCE_COUNT (2U) /*!< Number of instances of the SPI module. */
mbed_official 324:406fd2029f23 105 #define HW_SPI0 (0U) /*!< Instance number for SPI0. */
mbed_official 324:406fd2029f23 106 #define HW_SPI1 (1U) /*!< Instance number for SPI1. */
mbed_official 324:406fd2029f23 107
mbed_official 324:406fd2029f23 108 /*******************************************************************************
mbed_official 324:406fd2029f23 109 * HW_SPI_MCR - Module Configuration Register
mbed_official 324:406fd2029f23 110 ******************************************************************************/
mbed_official 324:406fd2029f23 111
mbed_official 324:406fd2029f23 112 /*!
mbed_official 324:406fd2029f23 113 * @brief HW_SPI_MCR - Module Configuration Register (RW)
mbed_official 324:406fd2029f23 114 *
mbed_official 324:406fd2029f23 115 * Reset value: 0x00004001U
mbed_official 324:406fd2029f23 116 *
mbed_official 324:406fd2029f23 117 * Contains bits to configure various attributes associated with the module
mbed_official 324:406fd2029f23 118 * operations. The HALT and MDIS bits can be changed at any time, but the effect
mbed_official 324:406fd2029f23 119 * takes place only on the next frame boundary. Only the HALT and MDIS bits in the
mbed_official 324:406fd2029f23 120 * MCR can be changed, while the module is in the Running state.
mbed_official 324:406fd2029f23 121 */
mbed_official 324:406fd2029f23 122 typedef union _hw_spi_mcr
mbed_official 324:406fd2029f23 123 {
mbed_official 324:406fd2029f23 124 uint32_t U;
mbed_official 324:406fd2029f23 125 struct _hw_spi_mcr_bitfields
mbed_official 324:406fd2029f23 126 {
mbed_official 324:406fd2029f23 127 uint32_t HALT : 1; /*!< [0] Halt */
mbed_official 324:406fd2029f23 128 uint32_t RESERVED0 : 7; /*!< [7:1] */
mbed_official 324:406fd2029f23 129 uint32_t SMPL_PT : 2; /*!< [9:8] Sample Point */
mbed_official 324:406fd2029f23 130 uint32_t CLR_RXF : 1; /*!< [10] */
mbed_official 324:406fd2029f23 131 uint32_t CLR_TXF : 1; /*!< [11] Clear TX FIFO */
mbed_official 324:406fd2029f23 132 uint32_t DIS_RXF : 1; /*!< [12] Disable Receive FIFO */
mbed_official 324:406fd2029f23 133 uint32_t DIS_TXF : 1; /*!< [13] Disable Transmit FIFO */
mbed_official 324:406fd2029f23 134 uint32_t MDIS : 1; /*!< [14] Module Disable */
mbed_official 324:406fd2029f23 135 uint32_t DOZE : 1; /*!< [15] Doze Enable */
mbed_official 324:406fd2029f23 136 uint32_t PCSIS : 6; /*!< [21:16] Peripheral Chip Select x Inactive
mbed_official 324:406fd2029f23 137 * State */
mbed_official 324:406fd2029f23 138 uint32_t RESERVED1 : 2; /*!< [23:22] */
mbed_official 324:406fd2029f23 139 uint32_t ROOE : 1; /*!< [24] Receive FIFO Overflow Overwrite Enable */
mbed_official 324:406fd2029f23 140 uint32_t PCSSE : 1; /*!< [25] Peripheral Chip Select Strobe Enable */
mbed_official 324:406fd2029f23 141 uint32_t MTFE : 1; /*!< [26] Modified Timing Format Enable */
mbed_official 324:406fd2029f23 142 uint32_t FRZ : 1; /*!< [27] Freeze */
mbed_official 324:406fd2029f23 143 uint32_t DCONF : 2; /*!< [29:28] SPI Configuration. */
mbed_official 324:406fd2029f23 144 uint32_t CONT_SCKE : 1; /*!< [30] Continuous SCK Enable */
mbed_official 324:406fd2029f23 145 uint32_t MSTR : 1; /*!< [31] Master/Slave Mode Select */
mbed_official 324:406fd2029f23 146 } B;
mbed_official 324:406fd2029f23 147 } hw_spi_mcr_t;
mbed_official 324:406fd2029f23 148
mbed_official 324:406fd2029f23 149 /*!
mbed_official 324:406fd2029f23 150 * @name Constants and macros for entire SPI_MCR register
mbed_official 324:406fd2029f23 151 */
mbed_official 324:406fd2029f23 152 /*@{*/
mbed_official 324:406fd2029f23 153 #define HW_SPI_MCR_ADDR(x) ((x) + 0x0U)
mbed_official 324:406fd2029f23 154
mbed_official 324:406fd2029f23 155 #define HW_SPI_MCR(x) (*(__IO hw_spi_mcr_t *) HW_SPI_MCR_ADDR(x))
mbed_official 324:406fd2029f23 156 #define HW_SPI_MCR_RD(x) (HW_SPI_MCR(x).U)
mbed_official 324:406fd2029f23 157 #define HW_SPI_MCR_WR(x, v) (HW_SPI_MCR(x).U = (v))
mbed_official 324:406fd2029f23 158 #define HW_SPI_MCR_SET(x, v) (HW_SPI_MCR_WR(x, HW_SPI_MCR_RD(x) | (v)))
mbed_official 324:406fd2029f23 159 #define HW_SPI_MCR_CLR(x, v) (HW_SPI_MCR_WR(x, HW_SPI_MCR_RD(x) & ~(v)))
mbed_official 324:406fd2029f23 160 #define HW_SPI_MCR_TOG(x, v) (HW_SPI_MCR_WR(x, HW_SPI_MCR_RD(x) ^ (v)))
mbed_official 324:406fd2029f23 161 /*@}*/
mbed_official 324:406fd2029f23 162
mbed_official 324:406fd2029f23 163 /*
mbed_official 324:406fd2029f23 164 * Constants & macros for individual SPI_MCR bitfields
mbed_official 324:406fd2029f23 165 */
mbed_official 324:406fd2029f23 166
mbed_official 324:406fd2029f23 167 /*!
mbed_official 324:406fd2029f23 168 * @name Register SPI_MCR, field HALT[0] (RW)
mbed_official 324:406fd2029f23 169 *
mbed_official 324:406fd2029f23 170 * The HALT bit starts and stops frame transfers. See Start and Stop of Module
mbed_official 324:406fd2029f23 171 * transfers
mbed_official 324:406fd2029f23 172 *
mbed_official 324:406fd2029f23 173 * Values:
mbed_official 324:406fd2029f23 174 * - 0 - Start transfers.
mbed_official 324:406fd2029f23 175 * - 1 - Stop transfers.
mbed_official 324:406fd2029f23 176 */
mbed_official 324:406fd2029f23 177 /*@{*/
mbed_official 324:406fd2029f23 178 #define BP_SPI_MCR_HALT (0U) /*!< Bit position for SPI_MCR_HALT. */
mbed_official 324:406fd2029f23 179 #define BM_SPI_MCR_HALT (0x00000001U) /*!< Bit mask for SPI_MCR_HALT. */
mbed_official 324:406fd2029f23 180 #define BS_SPI_MCR_HALT (1U) /*!< Bit field size in bits for SPI_MCR_HALT. */
mbed_official 324:406fd2029f23 181
mbed_official 324:406fd2029f23 182 /*! @brief Read current value of the SPI_MCR_HALT field. */
mbed_official 324:406fd2029f23 183 #define BR_SPI_MCR_HALT(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_HALT))
mbed_official 324:406fd2029f23 184
mbed_official 324:406fd2029f23 185 /*! @brief Format value for bitfield SPI_MCR_HALT. */
mbed_official 324:406fd2029f23 186 #define BF_SPI_MCR_HALT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_HALT) & BM_SPI_MCR_HALT)
mbed_official 324:406fd2029f23 187
mbed_official 324:406fd2029f23 188 /*! @brief Set the HALT field to a new value. */
mbed_official 324:406fd2029f23 189 #define BW_SPI_MCR_HALT(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_HALT) = (v))
mbed_official 324:406fd2029f23 190 /*@}*/
mbed_official 324:406fd2029f23 191
mbed_official 324:406fd2029f23 192 /*!
mbed_official 324:406fd2029f23 193 * @name Register SPI_MCR, field SMPL_PT[9:8] (RW)
mbed_official 324:406fd2029f23 194 *
mbed_official 324:406fd2029f23 195 * Controls when the module master samples SIN in Modified Transfer Format. This
mbed_official 324:406fd2029f23 196 * field is valid only when CPHA bit in CTARn[CPHA] is 0.
mbed_official 324:406fd2029f23 197 *
mbed_official 324:406fd2029f23 198 * Values:
mbed_official 324:406fd2029f23 199 * - 00 - 0 protocol clock cycles between SCK edge and SIN sample
mbed_official 324:406fd2029f23 200 * - 01 - 1 protocol clock cycle between SCK edge and SIN sample
mbed_official 324:406fd2029f23 201 * - 10 - 2 protocol clock cycles between SCK edge and SIN sample
mbed_official 324:406fd2029f23 202 * - 11 - Reserved
mbed_official 324:406fd2029f23 203 */
mbed_official 324:406fd2029f23 204 /*@{*/
mbed_official 324:406fd2029f23 205 #define BP_SPI_MCR_SMPL_PT (8U) /*!< Bit position for SPI_MCR_SMPL_PT. */
mbed_official 324:406fd2029f23 206 #define BM_SPI_MCR_SMPL_PT (0x00000300U) /*!< Bit mask for SPI_MCR_SMPL_PT. */
mbed_official 324:406fd2029f23 207 #define BS_SPI_MCR_SMPL_PT (2U) /*!< Bit field size in bits for SPI_MCR_SMPL_PT. */
mbed_official 324:406fd2029f23 208
mbed_official 324:406fd2029f23 209 /*! @brief Read current value of the SPI_MCR_SMPL_PT field. */
mbed_official 324:406fd2029f23 210 #define BR_SPI_MCR_SMPL_PT(x) (HW_SPI_MCR(x).B.SMPL_PT)
mbed_official 324:406fd2029f23 211
mbed_official 324:406fd2029f23 212 /*! @brief Format value for bitfield SPI_MCR_SMPL_PT. */
mbed_official 324:406fd2029f23 213 #define BF_SPI_MCR_SMPL_PT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_SMPL_PT) & BM_SPI_MCR_SMPL_PT)
mbed_official 324:406fd2029f23 214
mbed_official 324:406fd2029f23 215 /*! @brief Set the SMPL_PT field to a new value. */
mbed_official 324:406fd2029f23 216 #define BW_SPI_MCR_SMPL_PT(x, v) (HW_SPI_MCR_WR(x, (HW_SPI_MCR_RD(x) & ~BM_SPI_MCR_SMPL_PT) | BF_SPI_MCR_SMPL_PT(v)))
mbed_official 324:406fd2029f23 217 /*@}*/
mbed_official 324:406fd2029f23 218
mbed_official 324:406fd2029f23 219 /*!
mbed_official 324:406fd2029f23 220 * @name Register SPI_MCR, field CLR_RXF[10] (WORZ)
mbed_official 324:406fd2029f23 221 *
mbed_official 324:406fd2029f23 222 * Flushes the RX FIFO. Writing a 1 to CLR_RXF clears the RX Counter. The
mbed_official 324:406fd2029f23 223 * CLR_RXF bit is always read as zero.
mbed_official 324:406fd2029f23 224 *
mbed_official 324:406fd2029f23 225 * Values:
mbed_official 324:406fd2029f23 226 * - 0 - Do not clear the RX FIFO counter.
mbed_official 324:406fd2029f23 227 * - 1 - Clear the RX FIFO counter.
mbed_official 324:406fd2029f23 228 */
mbed_official 324:406fd2029f23 229 /*@{*/
mbed_official 324:406fd2029f23 230 #define BP_SPI_MCR_CLR_RXF (10U) /*!< Bit position for SPI_MCR_CLR_RXF. */
mbed_official 324:406fd2029f23 231 #define BM_SPI_MCR_CLR_RXF (0x00000400U) /*!< Bit mask for SPI_MCR_CLR_RXF. */
mbed_official 324:406fd2029f23 232 #define BS_SPI_MCR_CLR_RXF (1U) /*!< Bit field size in bits for SPI_MCR_CLR_RXF. */
mbed_official 324:406fd2029f23 233
mbed_official 324:406fd2029f23 234 /*! @brief Format value for bitfield SPI_MCR_CLR_RXF. */
mbed_official 324:406fd2029f23 235 #define BF_SPI_MCR_CLR_RXF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_CLR_RXF) & BM_SPI_MCR_CLR_RXF)
mbed_official 324:406fd2029f23 236
mbed_official 324:406fd2029f23 237 /*! @brief Set the CLR_RXF field to a new value. */
mbed_official 324:406fd2029f23 238 #define BW_SPI_MCR_CLR_RXF(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_CLR_RXF) = (v))
mbed_official 324:406fd2029f23 239 /*@}*/
mbed_official 324:406fd2029f23 240
mbed_official 324:406fd2029f23 241 /*!
mbed_official 324:406fd2029f23 242 * @name Register SPI_MCR, field CLR_TXF[11] (WORZ)
mbed_official 324:406fd2029f23 243 *
mbed_official 324:406fd2029f23 244 * Flushes the TX FIFO. Writing a 1 to CLR_TXF clears the TX FIFO Counter. The
mbed_official 324:406fd2029f23 245 * CLR_TXF bit is always read as zero.
mbed_official 324:406fd2029f23 246 *
mbed_official 324:406fd2029f23 247 * Values:
mbed_official 324:406fd2029f23 248 * - 0 - Do not clear the TX FIFO counter.
mbed_official 324:406fd2029f23 249 * - 1 - Clear the TX FIFO counter.
mbed_official 324:406fd2029f23 250 */
mbed_official 324:406fd2029f23 251 /*@{*/
mbed_official 324:406fd2029f23 252 #define BP_SPI_MCR_CLR_TXF (11U) /*!< Bit position for SPI_MCR_CLR_TXF. */
mbed_official 324:406fd2029f23 253 #define BM_SPI_MCR_CLR_TXF (0x00000800U) /*!< Bit mask for SPI_MCR_CLR_TXF. */
mbed_official 324:406fd2029f23 254 #define BS_SPI_MCR_CLR_TXF (1U) /*!< Bit field size in bits for SPI_MCR_CLR_TXF. */
mbed_official 324:406fd2029f23 255
mbed_official 324:406fd2029f23 256 /*! @brief Format value for bitfield SPI_MCR_CLR_TXF. */
mbed_official 324:406fd2029f23 257 #define BF_SPI_MCR_CLR_TXF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_CLR_TXF) & BM_SPI_MCR_CLR_TXF)
mbed_official 324:406fd2029f23 258
mbed_official 324:406fd2029f23 259 /*! @brief Set the CLR_TXF field to a new value. */
mbed_official 324:406fd2029f23 260 #define BW_SPI_MCR_CLR_TXF(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_CLR_TXF) = (v))
mbed_official 324:406fd2029f23 261 /*@}*/
mbed_official 324:406fd2029f23 262
mbed_official 324:406fd2029f23 263 /*!
mbed_official 324:406fd2029f23 264 * @name Register SPI_MCR, field DIS_RXF[12] (RW)
mbed_official 324:406fd2029f23 265 *
mbed_official 324:406fd2029f23 266 * When the RX FIFO is disabled, the receive part of the module operates as a
mbed_official 324:406fd2029f23 267 * simplified double-buffered SPI. This bit can only be written when the MDIS bit
mbed_official 324:406fd2029f23 268 * is cleared.
mbed_official 324:406fd2029f23 269 *
mbed_official 324:406fd2029f23 270 * Values:
mbed_official 324:406fd2029f23 271 * - 0 - RX FIFO is enabled.
mbed_official 324:406fd2029f23 272 * - 1 - RX FIFO is disabled.
mbed_official 324:406fd2029f23 273 */
mbed_official 324:406fd2029f23 274 /*@{*/
mbed_official 324:406fd2029f23 275 #define BP_SPI_MCR_DIS_RXF (12U) /*!< Bit position for SPI_MCR_DIS_RXF. */
mbed_official 324:406fd2029f23 276 #define BM_SPI_MCR_DIS_RXF (0x00001000U) /*!< Bit mask for SPI_MCR_DIS_RXF. */
mbed_official 324:406fd2029f23 277 #define BS_SPI_MCR_DIS_RXF (1U) /*!< Bit field size in bits for SPI_MCR_DIS_RXF. */
mbed_official 324:406fd2029f23 278
mbed_official 324:406fd2029f23 279 /*! @brief Read current value of the SPI_MCR_DIS_RXF field. */
mbed_official 324:406fd2029f23 280 #define BR_SPI_MCR_DIS_RXF(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_DIS_RXF))
mbed_official 324:406fd2029f23 281
mbed_official 324:406fd2029f23 282 /*! @brief Format value for bitfield SPI_MCR_DIS_RXF. */
mbed_official 324:406fd2029f23 283 #define BF_SPI_MCR_DIS_RXF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_DIS_RXF) & BM_SPI_MCR_DIS_RXF)
mbed_official 324:406fd2029f23 284
mbed_official 324:406fd2029f23 285 /*! @brief Set the DIS_RXF field to a new value. */
mbed_official 324:406fd2029f23 286 #define BW_SPI_MCR_DIS_RXF(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_DIS_RXF) = (v))
mbed_official 324:406fd2029f23 287 /*@}*/
mbed_official 324:406fd2029f23 288
mbed_official 324:406fd2029f23 289 /*!
mbed_official 324:406fd2029f23 290 * @name Register SPI_MCR, field DIS_TXF[13] (RW)
mbed_official 324:406fd2029f23 291 *
mbed_official 324:406fd2029f23 292 * When the TX FIFO is disabled, the transmit part of the module operates as a
mbed_official 324:406fd2029f23 293 * simplified double-buffered SPI. This bit can be written only when the MDIS bit
mbed_official 324:406fd2029f23 294 * is cleared.
mbed_official 324:406fd2029f23 295 *
mbed_official 324:406fd2029f23 296 * Values:
mbed_official 324:406fd2029f23 297 * - 0 - TX FIFO is enabled.
mbed_official 324:406fd2029f23 298 * - 1 - TX FIFO is disabled.
mbed_official 324:406fd2029f23 299 */
mbed_official 324:406fd2029f23 300 /*@{*/
mbed_official 324:406fd2029f23 301 #define BP_SPI_MCR_DIS_TXF (13U) /*!< Bit position for SPI_MCR_DIS_TXF. */
mbed_official 324:406fd2029f23 302 #define BM_SPI_MCR_DIS_TXF (0x00002000U) /*!< Bit mask for SPI_MCR_DIS_TXF. */
mbed_official 324:406fd2029f23 303 #define BS_SPI_MCR_DIS_TXF (1U) /*!< Bit field size in bits for SPI_MCR_DIS_TXF. */
mbed_official 324:406fd2029f23 304
mbed_official 324:406fd2029f23 305 /*! @brief Read current value of the SPI_MCR_DIS_TXF field. */
mbed_official 324:406fd2029f23 306 #define BR_SPI_MCR_DIS_TXF(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_DIS_TXF))
mbed_official 324:406fd2029f23 307
mbed_official 324:406fd2029f23 308 /*! @brief Format value for bitfield SPI_MCR_DIS_TXF. */
mbed_official 324:406fd2029f23 309 #define BF_SPI_MCR_DIS_TXF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_DIS_TXF) & BM_SPI_MCR_DIS_TXF)
mbed_official 324:406fd2029f23 310
mbed_official 324:406fd2029f23 311 /*! @brief Set the DIS_TXF field to a new value. */
mbed_official 324:406fd2029f23 312 #define BW_SPI_MCR_DIS_TXF(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_DIS_TXF) = (v))
mbed_official 324:406fd2029f23 313 /*@}*/
mbed_official 324:406fd2029f23 314
mbed_official 324:406fd2029f23 315 /*!
mbed_official 324:406fd2029f23 316 * @name Register SPI_MCR, field MDIS[14] (RW)
mbed_official 324:406fd2029f23 317 *
mbed_official 324:406fd2029f23 318 * Allows the clock to be stopped to the non-memory mapped logic in the module
mbed_official 324:406fd2029f23 319 * effectively putting it in a software-controlled power-saving state. The reset
mbed_official 324:406fd2029f23 320 * value of the MDIS bit is parameterized, with a default reset value of 0. When
mbed_official 324:406fd2029f23 321 * the module is used in Slave Mode, we recommend leaving this bit 0, because a
mbed_official 324:406fd2029f23 322 * slave doesn't have control over master transactions.
mbed_official 324:406fd2029f23 323 *
mbed_official 324:406fd2029f23 324 * Values:
mbed_official 324:406fd2029f23 325 * - 0 - Enables the module clocks.
mbed_official 324:406fd2029f23 326 * - 1 - Allows external logic to disable the module clocks.
mbed_official 324:406fd2029f23 327 */
mbed_official 324:406fd2029f23 328 /*@{*/
mbed_official 324:406fd2029f23 329 #define BP_SPI_MCR_MDIS (14U) /*!< Bit position for SPI_MCR_MDIS. */
mbed_official 324:406fd2029f23 330 #define BM_SPI_MCR_MDIS (0x00004000U) /*!< Bit mask for SPI_MCR_MDIS. */
mbed_official 324:406fd2029f23 331 #define BS_SPI_MCR_MDIS (1U) /*!< Bit field size in bits for SPI_MCR_MDIS. */
mbed_official 324:406fd2029f23 332
mbed_official 324:406fd2029f23 333 /*! @brief Read current value of the SPI_MCR_MDIS field. */
mbed_official 324:406fd2029f23 334 #define BR_SPI_MCR_MDIS(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_MDIS))
mbed_official 324:406fd2029f23 335
mbed_official 324:406fd2029f23 336 /*! @brief Format value for bitfield SPI_MCR_MDIS. */
mbed_official 324:406fd2029f23 337 #define BF_SPI_MCR_MDIS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_MDIS) & BM_SPI_MCR_MDIS)
mbed_official 324:406fd2029f23 338
mbed_official 324:406fd2029f23 339 /*! @brief Set the MDIS field to a new value. */
mbed_official 324:406fd2029f23 340 #define BW_SPI_MCR_MDIS(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_MDIS) = (v))
mbed_official 324:406fd2029f23 341 /*@}*/
mbed_official 324:406fd2029f23 342
mbed_official 324:406fd2029f23 343 /*!
mbed_official 324:406fd2029f23 344 * @name Register SPI_MCR, field DOZE[15] (RW)
mbed_official 324:406fd2029f23 345 *
mbed_official 324:406fd2029f23 346 * Provides support for an externally controlled Doze mode power-saving
mbed_official 324:406fd2029f23 347 * mechanism.
mbed_official 324:406fd2029f23 348 *
mbed_official 324:406fd2029f23 349 * Values:
mbed_official 324:406fd2029f23 350 * - 0 - Doze mode has no effect on the module.
mbed_official 324:406fd2029f23 351 * - 1 - Doze mode disables the module.
mbed_official 324:406fd2029f23 352 */
mbed_official 324:406fd2029f23 353 /*@{*/
mbed_official 324:406fd2029f23 354 #define BP_SPI_MCR_DOZE (15U) /*!< Bit position for SPI_MCR_DOZE. */
mbed_official 324:406fd2029f23 355 #define BM_SPI_MCR_DOZE (0x00008000U) /*!< Bit mask for SPI_MCR_DOZE. */
mbed_official 324:406fd2029f23 356 #define BS_SPI_MCR_DOZE (1U) /*!< Bit field size in bits for SPI_MCR_DOZE. */
mbed_official 324:406fd2029f23 357
mbed_official 324:406fd2029f23 358 /*! @brief Read current value of the SPI_MCR_DOZE field. */
mbed_official 324:406fd2029f23 359 #define BR_SPI_MCR_DOZE(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_DOZE))
mbed_official 324:406fd2029f23 360
mbed_official 324:406fd2029f23 361 /*! @brief Format value for bitfield SPI_MCR_DOZE. */
mbed_official 324:406fd2029f23 362 #define BF_SPI_MCR_DOZE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_DOZE) & BM_SPI_MCR_DOZE)
mbed_official 324:406fd2029f23 363
mbed_official 324:406fd2029f23 364 /*! @brief Set the DOZE field to a new value. */
mbed_official 324:406fd2029f23 365 #define BW_SPI_MCR_DOZE(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_DOZE) = (v))
mbed_official 324:406fd2029f23 366 /*@}*/
mbed_official 324:406fd2029f23 367
mbed_official 324:406fd2029f23 368 /*!
mbed_official 324:406fd2029f23 369 * @name Register SPI_MCR, field PCSIS[21:16] (RW)
mbed_official 324:406fd2029f23 370 *
mbed_official 324:406fd2029f23 371 * Determines the inactive state of PCSx.
mbed_official 324:406fd2029f23 372 *
mbed_official 324:406fd2029f23 373 * Values:
mbed_official 324:406fd2029f23 374 * - 0 - The inactive state of PCSx is low.
mbed_official 324:406fd2029f23 375 * - 1 - The inactive state of PCSx is high.
mbed_official 324:406fd2029f23 376 */
mbed_official 324:406fd2029f23 377 /*@{*/
mbed_official 324:406fd2029f23 378 #define BP_SPI_MCR_PCSIS (16U) /*!< Bit position for SPI_MCR_PCSIS. */
mbed_official 324:406fd2029f23 379 #define BM_SPI_MCR_PCSIS (0x003F0000U) /*!< Bit mask for SPI_MCR_PCSIS. */
mbed_official 324:406fd2029f23 380 #define BS_SPI_MCR_PCSIS (6U) /*!< Bit field size in bits for SPI_MCR_PCSIS. */
mbed_official 324:406fd2029f23 381
mbed_official 324:406fd2029f23 382 /*! @brief Read current value of the SPI_MCR_PCSIS field. */
mbed_official 324:406fd2029f23 383 #define BR_SPI_MCR_PCSIS(x) (HW_SPI_MCR(x).B.PCSIS)
mbed_official 324:406fd2029f23 384
mbed_official 324:406fd2029f23 385 /*! @brief Format value for bitfield SPI_MCR_PCSIS. */
mbed_official 324:406fd2029f23 386 #define BF_SPI_MCR_PCSIS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_PCSIS) & BM_SPI_MCR_PCSIS)
mbed_official 324:406fd2029f23 387
mbed_official 324:406fd2029f23 388 /*! @brief Set the PCSIS field to a new value. */
mbed_official 324:406fd2029f23 389 #define BW_SPI_MCR_PCSIS(x, v) (HW_SPI_MCR_WR(x, (HW_SPI_MCR_RD(x) & ~BM_SPI_MCR_PCSIS) | BF_SPI_MCR_PCSIS(v)))
mbed_official 324:406fd2029f23 390 /*@}*/
mbed_official 324:406fd2029f23 391
mbed_official 324:406fd2029f23 392 /*!
mbed_official 324:406fd2029f23 393 * @name Register SPI_MCR, field ROOE[24] (RW)
mbed_official 324:406fd2029f23 394 *
mbed_official 324:406fd2029f23 395 * In the RX FIFO overflow condition, configures the module to ignore the
mbed_official 324:406fd2029f23 396 * incoming serial data or overwrite existing data. If the RX FIFO is full and new data
mbed_official 324:406fd2029f23 397 * is received, the data from the transfer, generating the overflow, is ignored
mbed_official 324:406fd2029f23 398 * or shifted into the shift register.
mbed_official 324:406fd2029f23 399 *
mbed_official 324:406fd2029f23 400 * Values:
mbed_official 324:406fd2029f23 401 * - 0 - Incoming data is ignored.
mbed_official 324:406fd2029f23 402 * - 1 - Incoming data is shifted into the shift register.
mbed_official 324:406fd2029f23 403 */
mbed_official 324:406fd2029f23 404 /*@{*/
mbed_official 324:406fd2029f23 405 #define BP_SPI_MCR_ROOE (24U) /*!< Bit position for SPI_MCR_ROOE. */
mbed_official 324:406fd2029f23 406 #define BM_SPI_MCR_ROOE (0x01000000U) /*!< Bit mask for SPI_MCR_ROOE. */
mbed_official 324:406fd2029f23 407 #define BS_SPI_MCR_ROOE (1U) /*!< Bit field size in bits for SPI_MCR_ROOE. */
mbed_official 324:406fd2029f23 408
mbed_official 324:406fd2029f23 409 /*! @brief Read current value of the SPI_MCR_ROOE field. */
mbed_official 324:406fd2029f23 410 #define BR_SPI_MCR_ROOE(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_ROOE))
mbed_official 324:406fd2029f23 411
mbed_official 324:406fd2029f23 412 /*! @brief Format value for bitfield SPI_MCR_ROOE. */
mbed_official 324:406fd2029f23 413 #define BF_SPI_MCR_ROOE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_ROOE) & BM_SPI_MCR_ROOE)
mbed_official 324:406fd2029f23 414
mbed_official 324:406fd2029f23 415 /*! @brief Set the ROOE field to a new value. */
mbed_official 324:406fd2029f23 416 #define BW_SPI_MCR_ROOE(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_ROOE) = (v))
mbed_official 324:406fd2029f23 417 /*@}*/
mbed_official 324:406fd2029f23 418
mbed_official 324:406fd2029f23 419 /*!
mbed_official 324:406fd2029f23 420 * @name Register SPI_MCR, field PCSSE[25] (RW)
mbed_official 324:406fd2029f23 421 *
mbed_official 324:406fd2029f23 422 * Enables the PCS5/ PCSS to operate as a PCS Strobe output signal.
mbed_official 324:406fd2029f23 423 *
mbed_official 324:406fd2029f23 424 * Values:
mbed_official 324:406fd2029f23 425 * - 0 - PCS5/ PCSS is used as the Peripheral Chip Select[5] signal.
mbed_official 324:406fd2029f23 426 * - 1 - PCS5/ PCSS is used as an active-low PCS Strobe signal.
mbed_official 324:406fd2029f23 427 */
mbed_official 324:406fd2029f23 428 /*@{*/
mbed_official 324:406fd2029f23 429 #define BP_SPI_MCR_PCSSE (25U) /*!< Bit position for SPI_MCR_PCSSE. */
mbed_official 324:406fd2029f23 430 #define BM_SPI_MCR_PCSSE (0x02000000U) /*!< Bit mask for SPI_MCR_PCSSE. */
mbed_official 324:406fd2029f23 431 #define BS_SPI_MCR_PCSSE (1U) /*!< Bit field size in bits for SPI_MCR_PCSSE. */
mbed_official 324:406fd2029f23 432
mbed_official 324:406fd2029f23 433 /*! @brief Read current value of the SPI_MCR_PCSSE field. */
mbed_official 324:406fd2029f23 434 #define BR_SPI_MCR_PCSSE(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_PCSSE))
mbed_official 324:406fd2029f23 435
mbed_official 324:406fd2029f23 436 /*! @brief Format value for bitfield SPI_MCR_PCSSE. */
mbed_official 324:406fd2029f23 437 #define BF_SPI_MCR_PCSSE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_PCSSE) & BM_SPI_MCR_PCSSE)
mbed_official 324:406fd2029f23 438
mbed_official 324:406fd2029f23 439 /*! @brief Set the PCSSE field to a new value. */
mbed_official 324:406fd2029f23 440 #define BW_SPI_MCR_PCSSE(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_PCSSE) = (v))
mbed_official 324:406fd2029f23 441 /*@}*/
mbed_official 324:406fd2029f23 442
mbed_official 324:406fd2029f23 443 /*!
mbed_official 324:406fd2029f23 444 * @name Register SPI_MCR, field MTFE[26] (RW)
mbed_official 324:406fd2029f23 445 *
mbed_official 324:406fd2029f23 446 * Enables a modified transfer format to be used.
mbed_official 324:406fd2029f23 447 *
mbed_official 324:406fd2029f23 448 * Values:
mbed_official 324:406fd2029f23 449 * - 0 - Modified SPI transfer format disabled.
mbed_official 324:406fd2029f23 450 * - 1 - Modified SPI transfer format enabled.
mbed_official 324:406fd2029f23 451 */
mbed_official 324:406fd2029f23 452 /*@{*/
mbed_official 324:406fd2029f23 453 #define BP_SPI_MCR_MTFE (26U) /*!< Bit position for SPI_MCR_MTFE. */
mbed_official 324:406fd2029f23 454 #define BM_SPI_MCR_MTFE (0x04000000U) /*!< Bit mask for SPI_MCR_MTFE. */
mbed_official 324:406fd2029f23 455 #define BS_SPI_MCR_MTFE (1U) /*!< Bit field size in bits for SPI_MCR_MTFE. */
mbed_official 324:406fd2029f23 456
mbed_official 324:406fd2029f23 457 /*! @brief Read current value of the SPI_MCR_MTFE field. */
mbed_official 324:406fd2029f23 458 #define BR_SPI_MCR_MTFE(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_MTFE))
mbed_official 324:406fd2029f23 459
mbed_official 324:406fd2029f23 460 /*! @brief Format value for bitfield SPI_MCR_MTFE. */
mbed_official 324:406fd2029f23 461 #define BF_SPI_MCR_MTFE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_MTFE) & BM_SPI_MCR_MTFE)
mbed_official 324:406fd2029f23 462
mbed_official 324:406fd2029f23 463 /*! @brief Set the MTFE field to a new value. */
mbed_official 324:406fd2029f23 464 #define BW_SPI_MCR_MTFE(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_MTFE) = (v))
mbed_official 324:406fd2029f23 465 /*@}*/
mbed_official 324:406fd2029f23 466
mbed_official 324:406fd2029f23 467 /*!
mbed_official 324:406fd2029f23 468 * @name Register SPI_MCR, field FRZ[27] (RW)
mbed_official 324:406fd2029f23 469 *
mbed_official 324:406fd2029f23 470 * Enables transfers to be stopped on the next frame boundary when the device
mbed_official 324:406fd2029f23 471 * enters Debug mode.
mbed_official 324:406fd2029f23 472 *
mbed_official 324:406fd2029f23 473 * Values:
mbed_official 324:406fd2029f23 474 * - 0 - Do not halt serial transfers in Debug mode.
mbed_official 324:406fd2029f23 475 * - 1 - Halt serial transfers in Debug mode.
mbed_official 324:406fd2029f23 476 */
mbed_official 324:406fd2029f23 477 /*@{*/
mbed_official 324:406fd2029f23 478 #define BP_SPI_MCR_FRZ (27U) /*!< Bit position for SPI_MCR_FRZ. */
mbed_official 324:406fd2029f23 479 #define BM_SPI_MCR_FRZ (0x08000000U) /*!< Bit mask for SPI_MCR_FRZ. */
mbed_official 324:406fd2029f23 480 #define BS_SPI_MCR_FRZ (1U) /*!< Bit field size in bits for SPI_MCR_FRZ. */
mbed_official 324:406fd2029f23 481
mbed_official 324:406fd2029f23 482 /*! @brief Read current value of the SPI_MCR_FRZ field. */
mbed_official 324:406fd2029f23 483 #define BR_SPI_MCR_FRZ(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_FRZ))
mbed_official 324:406fd2029f23 484
mbed_official 324:406fd2029f23 485 /*! @brief Format value for bitfield SPI_MCR_FRZ. */
mbed_official 324:406fd2029f23 486 #define BF_SPI_MCR_FRZ(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_FRZ) & BM_SPI_MCR_FRZ)
mbed_official 324:406fd2029f23 487
mbed_official 324:406fd2029f23 488 /*! @brief Set the FRZ field to a new value. */
mbed_official 324:406fd2029f23 489 #define BW_SPI_MCR_FRZ(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_FRZ) = (v))
mbed_official 324:406fd2029f23 490 /*@}*/
mbed_official 324:406fd2029f23 491
mbed_official 324:406fd2029f23 492 /*!
mbed_official 324:406fd2029f23 493 * @name Register SPI_MCR, field DCONF[29:28] (RO)
mbed_official 324:406fd2029f23 494 *
mbed_official 324:406fd2029f23 495 * Selects among the different configurations of the module.
mbed_official 324:406fd2029f23 496 *
mbed_official 324:406fd2029f23 497 * Values:
mbed_official 324:406fd2029f23 498 * - 00 - SPI
mbed_official 324:406fd2029f23 499 * - 01 - Reserved
mbed_official 324:406fd2029f23 500 * - 10 - Reserved
mbed_official 324:406fd2029f23 501 * - 11 - Reserved
mbed_official 324:406fd2029f23 502 */
mbed_official 324:406fd2029f23 503 /*@{*/
mbed_official 324:406fd2029f23 504 #define BP_SPI_MCR_DCONF (28U) /*!< Bit position for SPI_MCR_DCONF. */
mbed_official 324:406fd2029f23 505 #define BM_SPI_MCR_DCONF (0x30000000U) /*!< Bit mask for SPI_MCR_DCONF. */
mbed_official 324:406fd2029f23 506 #define BS_SPI_MCR_DCONF (2U) /*!< Bit field size in bits for SPI_MCR_DCONF. */
mbed_official 324:406fd2029f23 507
mbed_official 324:406fd2029f23 508 /*! @brief Read current value of the SPI_MCR_DCONF field. */
mbed_official 324:406fd2029f23 509 #define BR_SPI_MCR_DCONF(x) (HW_SPI_MCR(x).B.DCONF)
mbed_official 324:406fd2029f23 510 /*@}*/
mbed_official 324:406fd2029f23 511
mbed_official 324:406fd2029f23 512 /*!
mbed_official 324:406fd2029f23 513 * @name Register SPI_MCR, field CONT_SCKE[30] (RW)
mbed_official 324:406fd2029f23 514 *
mbed_official 324:406fd2029f23 515 * Enables the Serial Communication Clock (SCK) to run continuously.
mbed_official 324:406fd2029f23 516 *
mbed_official 324:406fd2029f23 517 * Values:
mbed_official 324:406fd2029f23 518 * - 0 - Continuous SCK disabled.
mbed_official 324:406fd2029f23 519 * - 1 - Continuous SCK enabled.
mbed_official 324:406fd2029f23 520 */
mbed_official 324:406fd2029f23 521 /*@{*/
mbed_official 324:406fd2029f23 522 #define BP_SPI_MCR_CONT_SCKE (30U) /*!< Bit position for SPI_MCR_CONT_SCKE. */
mbed_official 324:406fd2029f23 523 #define BM_SPI_MCR_CONT_SCKE (0x40000000U) /*!< Bit mask for SPI_MCR_CONT_SCKE. */
mbed_official 324:406fd2029f23 524 #define BS_SPI_MCR_CONT_SCKE (1U) /*!< Bit field size in bits for SPI_MCR_CONT_SCKE. */
mbed_official 324:406fd2029f23 525
mbed_official 324:406fd2029f23 526 /*! @brief Read current value of the SPI_MCR_CONT_SCKE field. */
mbed_official 324:406fd2029f23 527 #define BR_SPI_MCR_CONT_SCKE(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_CONT_SCKE))
mbed_official 324:406fd2029f23 528
mbed_official 324:406fd2029f23 529 /*! @brief Format value for bitfield SPI_MCR_CONT_SCKE. */
mbed_official 324:406fd2029f23 530 #define BF_SPI_MCR_CONT_SCKE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_CONT_SCKE) & BM_SPI_MCR_CONT_SCKE)
mbed_official 324:406fd2029f23 531
mbed_official 324:406fd2029f23 532 /*! @brief Set the CONT_SCKE field to a new value. */
mbed_official 324:406fd2029f23 533 #define BW_SPI_MCR_CONT_SCKE(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_CONT_SCKE) = (v))
mbed_official 324:406fd2029f23 534 /*@}*/
mbed_official 324:406fd2029f23 535
mbed_official 324:406fd2029f23 536 /*!
mbed_official 324:406fd2029f23 537 * @name Register SPI_MCR, field MSTR[31] (RW)
mbed_official 324:406fd2029f23 538 *
mbed_official 324:406fd2029f23 539 * Enables either Master mode (if supported) or Slave mode (if supported)
mbed_official 324:406fd2029f23 540 * operation.
mbed_official 324:406fd2029f23 541 *
mbed_official 324:406fd2029f23 542 * Values:
mbed_official 324:406fd2029f23 543 * - 0 - Enables Slave mode
mbed_official 324:406fd2029f23 544 * - 1 - Enables Master mode
mbed_official 324:406fd2029f23 545 */
mbed_official 324:406fd2029f23 546 /*@{*/
mbed_official 324:406fd2029f23 547 #define BP_SPI_MCR_MSTR (31U) /*!< Bit position for SPI_MCR_MSTR. */
mbed_official 324:406fd2029f23 548 #define BM_SPI_MCR_MSTR (0x80000000U) /*!< Bit mask for SPI_MCR_MSTR. */
mbed_official 324:406fd2029f23 549 #define BS_SPI_MCR_MSTR (1U) /*!< Bit field size in bits for SPI_MCR_MSTR. */
mbed_official 324:406fd2029f23 550
mbed_official 324:406fd2029f23 551 /*! @brief Read current value of the SPI_MCR_MSTR field. */
mbed_official 324:406fd2029f23 552 #define BR_SPI_MCR_MSTR(x) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_MSTR))
mbed_official 324:406fd2029f23 553
mbed_official 324:406fd2029f23 554 /*! @brief Format value for bitfield SPI_MCR_MSTR. */
mbed_official 324:406fd2029f23 555 #define BF_SPI_MCR_MSTR(v) ((uint32_t)((uint32_t)(v) << BP_SPI_MCR_MSTR) & BM_SPI_MCR_MSTR)
mbed_official 324:406fd2029f23 556
mbed_official 324:406fd2029f23 557 /*! @brief Set the MSTR field to a new value. */
mbed_official 324:406fd2029f23 558 #define BW_SPI_MCR_MSTR(x, v) (BITBAND_ACCESS32(HW_SPI_MCR_ADDR(x), BP_SPI_MCR_MSTR) = (v))
mbed_official 324:406fd2029f23 559 /*@}*/
mbed_official 324:406fd2029f23 560
mbed_official 324:406fd2029f23 561 /*******************************************************************************
mbed_official 324:406fd2029f23 562 * HW_SPI_TCR - Transfer Count Register
mbed_official 324:406fd2029f23 563 ******************************************************************************/
mbed_official 324:406fd2029f23 564
mbed_official 324:406fd2029f23 565 /*!
mbed_official 324:406fd2029f23 566 * @brief HW_SPI_TCR - Transfer Count Register (RW)
mbed_official 324:406fd2029f23 567 *
mbed_official 324:406fd2029f23 568 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 569 *
mbed_official 324:406fd2029f23 570 * TCR contains a counter that indicates the number of SPI transfers made. The
mbed_official 324:406fd2029f23 571 * transfer counter is intended to assist in queue management. Do not write the
mbed_official 324:406fd2029f23 572 * TCR when the module is in the Running state.
mbed_official 324:406fd2029f23 573 */
mbed_official 324:406fd2029f23 574 typedef union _hw_spi_tcr
mbed_official 324:406fd2029f23 575 {
mbed_official 324:406fd2029f23 576 uint32_t U;
mbed_official 324:406fd2029f23 577 struct _hw_spi_tcr_bitfields
mbed_official 324:406fd2029f23 578 {
mbed_official 324:406fd2029f23 579 uint32_t RESERVED0 : 16; /*!< [15:0] */
mbed_official 324:406fd2029f23 580 uint32_t SPI_TCNT : 16; /*!< [31:16] SPI Transfer Counter */
mbed_official 324:406fd2029f23 581 } B;
mbed_official 324:406fd2029f23 582 } hw_spi_tcr_t;
mbed_official 324:406fd2029f23 583
mbed_official 324:406fd2029f23 584 /*!
mbed_official 324:406fd2029f23 585 * @name Constants and macros for entire SPI_TCR register
mbed_official 324:406fd2029f23 586 */
mbed_official 324:406fd2029f23 587 /*@{*/
mbed_official 324:406fd2029f23 588 #define HW_SPI_TCR_ADDR(x) ((x) + 0x8U)
mbed_official 324:406fd2029f23 589
mbed_official 324:406fd2029f23 590 #define HW_SPI_TCR(x) (*(__IO hw_spi_tcr_t *) HW_SPI_TCR_ADDR(x))
mbed_official 324:406fd2029f23 591 #define HW_SPI_TCR_RD(x) (HW_SPI_TCR(x).U)
mbed_official 324:406fd2029f23 592 #define HW_SPI_TCR_WR(x, v) (HW_SPI_TCR(x).U = (v))
mbed_official 324:406fd2029f23 593 #define HW_SPI_TCR_SET(x, v) (HW_SPI_TCR_WR(x, HW_SPI_TCR_RD(x) | (v)))
mbed_official 324:406fd2029f23 594 #define HW_SPI_TCR_CLR(x, v) (HW_SPI_TCR_WR(x, HW_SPI_TCR_RD(x) & ~(v)))
mbed_official 324:406fd2029f23 595 #define HW_SPI_TCR_TOG(x, v) (HW_SPI_TCR_WR(x, HW_SPI_TCR_RD(x) ^ (v)))
mbed_official 324:406fd2029f23 596 /*@}*/
mbed_official 324:406fd2029f23 597
mbed_official 324:406fd2029f23 598 /*
mbed_official 324:406fd2029f23 599 * Constants & macros for individual SPI_TCR bitfields
mbed_official 324:406fd2029f23 600 */
mbed_official 324:406fd2029f23 601
mbed_official 324:406fd2029f23 602 /*!
mbed_official 324:406fd2029f23 603 * @name Register SPI_TCR, field SPI_TCNT[31:16] (RW)
mbed_official 324:406fd2029f23 604 *
mbed_official 324:406fd2029f23 605 * Counts the number of SPI transfers the module makes. The SPI_TCNT field
mbed_official 324:406fd2029f23 606 * increments every time the last bit of an SPI frame is transmitted. A value written
mbed_official 324:406fd2029f23 607 * to SPI_TCNT presets the counter to that value. SPI_TCNT is reset to zero at
mbed_official 324:406fd2029f23 608 * the beginning of the frame when the CTCNT field is set in the executing SPI
mbed_official 324:406fd2029f23 609 * command. The Transfer Counter wraps around; incrementing the counter past 65535
mbed_official 324:406fd2029f23 610 * resets the counter to zero.
mbed_official 324:406fd2029f23 611 */
mbed_official 324:406fd2029f23 612 /*@{*/
mbed_official 324:406fd2029f23 613 #define BP_SPI_TCR_SPI_TCNT (16U) /*!< Bit position for SPI_TCR_SPI_TCNT. */
mbed_official 324:406fd2029f23 614 #define BM_SPI_TCR_SPI_TCNT (0xFFFF0000U) /*!< Bit mask for SPI_TCR_SPI_TCNT. */
mbed_official 324:406fd2029f23 615 #define BS_SPI_TCR_SPI_TCNT (16U) /*!< Bit field size in bits for SPI_TCR_SPI_TCNT. */
mbed_official 324:406fd2029f23 616
mbed_official 324:406fd2029f23 617 /*! @brief Read current value of the SPI_TCR_SPI_TCNT field. */
mbed_official 324:406fd2029f23 618 #define BR_SPI_TCR_SPI_TCNT(x) (HW_SPI_TCR(x).B.SPI_TCNT)
mbed_official 324:406fd2029f23 619
mbed_official 324:406fd2029f23 620 /*! @brief Format value for bitfield SPI_TCR_SPI_TCNT. */
mbed_official 324:406fd2029f23 621 #define BF_SPI_TCR_SPI_TCNT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_TCR_SPI_TCNT) & BM_SPI_TCR_SPI_TCNT)
mbed_official 324:406fd2029f23 622
mbed_official 324:406fd2029f23 623 /*! @brief Set the SPI_TCNT field to a new value. */
mbed_official 324:406fd2029f23 624 #define BW_SPI_TCR_SPI_TCNT(x, v) (HW_SPI_TCR_WR(x, (HW_SPI_TCR_RD(x) & ~BM_SPI_TCR_SPI_TCNT) | BF_SPI_TCR_SPI_TCNT(v)))
mbed_official 324:406fd2029f23 625 /*@}*/
mbed_official 324:406fd2029f23 626
mbed_official 324:406fd2029f23 627 /*******************************************************************************
mbed_official 324:406fd2029f23 628 * HW_SPI_CTARn - Clock and Transfer Attributes Register (In Master Mode)
mbed_official 324:406fd2029f23 629 ******************************************************************************/
mbed_official 324:406fd2029f23 630
mbed_official 324:406fd2029f23 631 /*!
mbed_official 324:406fd2029f23 632 * @brief HW_SPI_CTARn - Clock and Transfer Attributes Register (In Master Mode) (RW)
mbed_official 324:406fd2029f23 633 *
mbed_official 324:406fd2029f23 634 * Reset value: 0x78000000U
mbed_official 324:406fd2029f23 635 *
mbed_official 324:406fd2029f23 636 * CTAR registers are used to define different transfer attributes. Do not write
mbed_official 324:406fd2029f23 637 * to the CTAR registers while the module is in the Running state. In Master
mbed_official 324:406fd2029f23 638 * mode, the CTAR registers define combinations of transfer attributes such as frame
mbed_official 324:406fd2029f23 639 * size, clock phase and polarity, data bit ordering, baud rate, and various
mbed_official 324:406fd2029f23 640 * delays. In slave mode, a subset of the bitfields in CTAR0 are used to set the
mbed_official 324:406fd2029f23 641 * slave transfer attributes. When the module is configured as an SPI master, the
mbed_official 324:406fd2029f23 642 * CTAS field in the command portion of the TX FIFO entry selects which of the CTAR
mbed_official 324:406fd2029f23 643 * registers is used. When the module is configured as an SPI bus slave, it uses
mbed_official 324:406fd2029f23 644 * the CTAR0 register.
mbed_official 324:406fd2029f23 645 */
mbed_official 324:406fd2029f23 646 typedef union _hw_spi_ctarn
mbed_official 324:406fd2029f23 647 {
mbed_official 324:406fd2029f23 648 uint32_t U;
mbed_official 324:406fd2029f23 649 struct _hw_spi_ctarn_bitfields
mbed_official 324:406fd2029f23 650 {
mbed_official 324:406fd2029f23 651 uint32_t BR : 4; /*!< [3:0] Baud Rate Scaler */
mbed_official 324:406fd2029f23 652 uint32_t DT : 4; /*!< [7:4] Delay After Transfer Scaler */
mbed_official 324:406fd2029f23 653 uint32_t ASC : 4; /*!< [11:8] After SCK Delay Scaler */
mbed_official 324:406fd2029f23 654 uint32_t CSSCK : 4; /*!< [15:12] PCS to SCK Delay Scaler */
mbed_official 324:406fd2029f23 655 uint32_t PBR : 2; /*!< [17:16] Baud Rate Prescaler */
mbed_official 324:406fd2029f23 656 uint32_t PDT : 2; /*!< [19:18] Delay after Transfer Prescaler */
mbed_official 324:406fd2029f23 657 uint32_t PASC : 2; /*!< [21:20] After SCK Delay Prescaler */
mbed_official 324:406fd2029f23 658 uint32_t PCSSCK : 2; /*!< [23:22] PCS to SCK Delay Prescaler */
mbed_official 324:406fd2029f23 659 uint32_t LSBFE : 1; /*!< [24] LSB First */
mbed_official 324:406fd2029f23 660 uint32_t CPHA : 1; /*!< [25] Clock Phase */
mbed_official 324:406fd2029f23 661 uint32_t CPOL : 1; /*!< [26] Clock Polarity */
mbed_official 324:406fd2029f23 662 uint32_t FMSZ : 4; /*!< [30:27] Frame Size */
mbed_official 324:406fd2029f23 663 uint32_t DBR : 1; /*!< [31] Double Baud Rate */
mbed_official 324:406fd2029f23 664 } B;
mbed_official 324:406fd2029f23 665 } hw_spi_ctarn_t;
mbed_official 324:406fd2029f23 666
mbed_official 324:406fd2029f23 667 /*!
mbed_official 324:406fd2029f23 668 * @name Constants and macros for entire SPI_CTARn register
mbed_official 324:406fd2029f23 669 */
mbed_official 324:406fd2029f23 670 /*@{*/
mbed_official 324:406fd2029f23 671 #define HW_SPI_CTARn_COUNT (2U)
mbed_official 324:406fd2029f23 672
mbed_official 324:406fd2029f23 673 #define HW_SPI_CTARn_ADDR(x, n) ((x) + 0xCU + (0x4U * (n)))
mbed_official 324:406fd2029f23 674
mbed_official 324:406fd2029f23 675 #define HW_SPI_CTARn(x, n) (*(__IO hw_spi_ctarn_t *) HW_SPI_CTARn_ADDR(x, n))
mbed_official 324:406fd2029f23 676 #define HW_SPI_CTARn_RD(x, n) (HW_SPI_CTARn(x, n).U)
mbed_official 324:406fd2029f23 677 #define HW_SPI_CTARn_WR(x, n, v) (HW_SPI_CTARn(x, n).U = (v))
mbed_official 324:406fd2029f23 678 #define HW_SPI_CTARn_SET(x, n, v) (HW_SPI_CTARn_WR(x, n, HW_SPI_CTARn_RD(x, n) | (v)))
mbed_official 324:406fd2029f23 679 #define HW_SPI_CTARn_CLR(x, n, v) (HW_SPI_CTARn_WR(x, n, HW_SPI_CTARn_RD(x, n) & ~(v)))
mbed_official 324:406fd2029f23 680 #define HW_SPI_CTARn_TOG(x, n, v) (HW_SPI_CTARn_WR(x, n, HW_SPI_CTARn_RD(x, n) ^ (v)))
mbed_official 324:406fd2029f23 681 /*@}*/
mbed_official 324:406fd2029f23 682
mbed_official 324:406fd2029f23 683 /*
mbed_official 324:406fd2029f23 684 * Constants & macros for individual SPI_CTARn bitfields
mbed_official 324:406fd2029f23 685 */
mbed_official 324:406fd2029f23 686
mbed_official 324:406fd2029f23 687 /*!
mbed_official 324:406fd2029f23 688 * @name Register SPI_CTARn, field BR[3:0] (RW)
mbed_official 324:406fd2029f23 689 *
mbed_official 324:406fd2029f23 690 * Selects the scaler value for the baud rate. This field is used only in master
mbed_official 324:406fd2029f23 691 * mode. The prescaled protocol clock is divided by the Baud Rate Scaler to
mbed_official 324:406fd2029f23 692 * generate the frequency of the SCK. The baud rate is computed according to the
mbed_official 324:406fd2029f23 693 * following equation: SCK baud rate = (fP /PBR) x [(1+DBR)/BR] The following table
mbed_official 324:406fd2029f23 694 * lists the baud rate scaler values. Baud Rate Scaler CTARn[BR] Baud Rate Scaler
mbed_official 324:406fd2029f23 695 * Value 0000 2 0001 4 0010 6 0011 8 0100 16 0101 32 0110 64 0111 128 1000 256
mbed_official 324:406fd2029f23 696 * 1001 512 1010 1024 1011 2048 1100 4096 1101 8192 1110 16384 1111 32768
mbed_official 324:406fd2029f23 697 */
mbed_official 324:406fd2029f23 698 /*@{*/
mbed_official 324:406fd2029f23 699 #define BP_SPI_CTARn_BR (0U) /*!< Bit position for SPI_CTARn_BR. */
mbed_official 324:406fd2029f23 700 #define BM_SPI_CTARn_BR (0x0000000FU) /*!< Bit mask for SPI_CTARn_BR. */
mbed_official 324:406fd2029f23 701 #define BS_SPI_CTARn_BR (4U) /*!< Bit field size in bits for SPI_CTARn_BR. */
mbed_official 324:406fd2029f23 702
mbed_official 324:406fd2029f23 703 /*! @brief Read current value of the SPI_CTARn_BR field. */
mbed_official 324:406fd2029f23 704 #define BR_SPI_CTARn_BR(x, n) (HW_SPI_CTARn(x, n).B.BR)
mbed_official 324:406fd2029f23 705
mbed_official 324:406fd2029f23 706 /*! @brief Format value for bitfield SPI_CTARn_BR. */
mbed_official 324:406fd2029f23 707 #define BF_SPI_CTARn_BR(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_BR) & BM_SPI_CTARn_BR)
mbed_official 324:406fd2029f23 708
mbed_official 324:406fd2029f23 709 /*! @brief Set the BR field to a new value. */
mbed_official 324:406fd2029f23 710 #define BW_SPI_CTARn_BR(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_BR) | BF_SPI_CTARn_BR(v)))
mbed_official 324:406fd2029f23 711 /*@}*/
mbed_official 324:406fd2029f23 712
mbed_official 324:406fd2029f23 713 /*!
mbed_official 324:406fd2029f23 714 * @name Register SPI_CTARn, field DT[7:4] (RW)
mbed_official 324:406fd2029f23 715 *
mbed_official 324:406fd2029f23 716 * Selects the Delay after Transfer Scaler. This field is used only in master
mbed_official 324:406fd2029f23 717 * mode. The Delay after Transfer is the time between the negation of the PCS
mbed_official 324:406fd2029f23 718 * signal at the end of a frame and the assertion of PCS at the beginning of the next
mbed_official 324:406fd2029f23 719 * frame. In the Continuous Serial Communications Clock operation, the DT value
mbed_official 324:406fd2029f23 720 * is fixed to one SCK clock period, The Delay after Transfer is a multiple of the
mbed_official 324:406fd2029f23 721 * protocol clock period, and it is computed according to the following
mbed_official 324:406fd2029f23 722 * equation: tDT = (1/fP ) x PDT x DT See Delay Scaler Encoding table in CTARn[CSSCK] bit
mbed_official 324:406fd2029f23 723 * field description for scaler values.
mbed_official 324:406fd2029f23 724 */
mbed_official 324:406fd2029f23 725 /*@{*/
mbed_official 324:406fd2029f23 726 #define BP_SPI_CTARn_DT (4U) /*!< Bit position for SPI_CTARn_DT. */
mbed_official 324:406fd2029f23 727 #define BM_SPI_CTARn_DT (0x000000F0U) /*!< Bit mask for SPI_CTARn_DT. */
mbed_official 324:406fd2029f23 728 #define BS_SPI_CTARn_DT (4U) /*!< Bit field size in bits for SPI_CTARn_DT. */
mbed_official 324:406fd2029f23 729
mbed_official 324:406fd2029f23 730 /*! @brief Read current value of the SPI_CTARn_DT field. */
mbed_official 324:406fd2029f23 731 #define BR_SPI_CTARn_DT(x, n) (HW_SPI_CTARn(x, n).B.DT)
mbed_official 324:406fd2029f23 732
mbed_official 324:406fd2029f23 733 /*! @brief Format value for bitfield SPI_CTARn_DT. */
mbed_official 324:406fd2029f23 734 #define BF_SPI_CTARn_DT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_DT) & BM_SPI_CTARn_DT)
mbed_official 324:406fd2029f23 735
mbed_official 324:406fd2029f23 736 /*! @brief Set the DT field to a new value. */
mbed_official 324:406fd2029f23 737 #define BW_SPI_CTARn_DT(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_DT) | BF_SPI_CTARn_DT(v)))
mbed_official 324:406fd2029f23 738 /*@}*/
mbed_official 324:406fd2029f23 739
mbed_official 324:406fd2029f23 740 /*!
mbed_official 324:406fd2029f23 741 * @name Register SPI_CTARn, field ASC[11:8] (RW)
mbed_official 324:406fd2029f23 742 *
mbed_official 324:406fd2029f23 743 * Selects the scaler value for the After SCK Delay. This field is used only in
mbed_official 324:406fd2029f23 744 * master mode. The After SCK Delay is the delay between the last edge of SCK and
mbed_official 324:406fd2029f23 745 * the negation of PCS. The delay is a multiple of the protocol clock period,
mbed_official 324:406fd2029f23 746 * and it is computed according to the following equation: t ASC = (1/fP) x PASC x
mbed_official 324:406fd2029f23 747 * ASC See Delay Scaler Encoding table in CTARn[CSSCK] bit field description for
mbed_official 324:406fd2029f23 748 * scaler values. Refer After SCK Delay (tASC ) for more details.
mbed_official 324:406fd2029f23 749 */
mbed_official 324:406fd2029f23 750 /*@{*/
mbed_official 324:406fd2029f23 751 #define BP_SPI_CTARn_ASC (8U) /*!< Bit position for SPI_CTARn_ASC. */
mbed_official 324:406fd2029f23 752 #define BM_SPI_CTARn_ASC (0x00000F00U) /*!< Bit mask for SPI_CTARn_ASC. */
mbed_official 324:406fd2029f23 753 #define BS_SPI_CTARn_ASC (4U) /*!< Bit field size in bits for SPI_CTARn_ASC. */
mbed_official 324:406fd2029f23 754
mbed_official 324:406fd2029f23 755 /*! @brief Read current value of the SPI_CTARn_ASC field. */
mbed_official 324:406fd2029f23 756 #define BR_SPI_CTARn_ASC(x, n) (HW_SPI_CTARn(x, n).B.ASC)
mbed_official 324:406fd2029f23 757
mbed_official 324:406fd2029f23 758 /*! @brief Format value for bitfield SPI_CTARn_ASC. */
mbed_official 324:406fd2029f23 759 #define BF_SPI_CTARn_ASC(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_ASC) & BM_SPI_CTARn_ASC)
mbed_official 324:406fd2029f23 760
mbed_official 324:406fd2029f23 761 /*! @brief Set the ASC field to a new value. */
mbed_official 324:406fd2029f23 762 #define BW_SPI_CTARn_ASC(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_ASC) | BF_SPI_CTARn_ASC(v)))
mbed_official 324:406fd2029f23 763 /*@}*/
mbed_official 324:406fd2029f23 764
mbed_official 324:406fd2029f23 765 /*!
mbed_official 324:406fd2029f23 766 * @name Register SPI_CTARn, field CSSCK[15:12] (RW)
mbed_official 324:406fd2029f23 767 *
mbed_official 324:406fd2029f23 768 * Selects the scaler value for the PCS to SCK delay. This field is used only in
mbed_official 324:406fd2029f23 769 * master mode. The PCS to SCK Delay is the delay between the assertion of PCS
mbed_official 324:406fd2029f23 770 * and the first edge of the SCK. The delay is a multiple of the protocol clock
mbed_official 324:406fd2029f23 771 * period, and it is computed according to the following equation: t CSC = (1/fP )
mbed_official 324:406fd2029f23 772 * x PCSSCK x CSSCK. The following table lists the delay scaler values. Delay
mbed_official 324:406fd2029f23 773 * Scaler Encoding Field Value Delay Scaler Value 0000 2 0001 4 0010 8 0011 16 0100
mbed_official 324:406fd2029f23 774 * 32 0101 64 0110 128 0111 256 1000 512 1001 1024 1010 2048 1011 4096 1100 8192
mbed_official 324:406fd2029f23 775 * 1101 16384 1110 32768 1111 65536 Refer PCS to SCK Delay (tCSC ) for more
mbed_official 324:406fd2029f23 776 * details.
mbed_official 324:406fd2029f23 777 */
mbed_official 324:406fd2029f23 778 /*@{*/
mbed_official 324:406fd2029f23 779 #define BP_SPI_CTARn_CSSCK (12U) /*!< Bit position for SPI_CTARn_CSSCK. */
mbed_official 324:406fd2029f23 780 #define BM_SPI_CTARn_CSSCK (0x0000F000U) /*!< Bit mask for SPI_CTARn_CSSCK. */
mbed_official 324:406fd2029f23 781 #define BS_SPI_CTARn_CSSCK (4U) /*!< Bit field size in bits for SPI_CTARn_CSSCK. */
mbed_official 324:406fd2029f23 782
mbed_official 324:406fd2029f23 783 /*! @brief Read current value of the SPI_CTARn_CSSCK field. */
mbed_official 324:406fd2029f23 784 #define BR_SPI_CTARn_CSSCK(x, n) (HW_SPI_CTARn(x, n).B.CSSCK)
mbed_official 324:406fd2029f23 785
mbed_official 324:406fd2029f23 786 /*! @brief Format value for bitfield SPI_CTARn_CSSCK. */
mbed_official 324:406fd2029f23 787 #define BF_SPI_CTARn_CSSCK(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_CSSCK) & BM_SPI_CTARn_CSSCK)
mbed_official 324:406fd2029f23 788
mbed_official 324:406fd2029f23 789 /*! @brief Set the CSSCK field to a new value. */
mbed_official 324:406fd2029f23 790 #define BW_SPI_CTARn_CSSCK(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_CSSCK) | BF_SPI_CTARn_CSSCK(v)))
mbed_official 324:406fd2029f23 791 /*@}*/
mbed_official 324:406fd2029f23 792
mbed_official 324:406fd2029f23 793 /*!
mbed_official 324:406fd2029f23 794 * @name Register SPI_CTARn, field PBR[17:16] (RW)
mbed_official 324:406fd2029f23 795 *
mbed_official 324:406fd2029f23 796 * Selects the prescaler value for the baud rate. This field is used only in
mbed_official 324:406fd2029f23 797 * master mode. The baud rate is the frequency of the SCK. The protocol clock is
mbed_official 324:406fd2029f23 798 * divided by the prescaler value before the baud rate selection takes place. See
mbed_official 324:406fd2029f23 799 * the BR field description for details on how to compute the baud rate.
mbed_official 324:406fd2029f23 800 *
mbed_official 324:406fd2029f23 801 * Values:
mbed_official 324:406fd2029f23 802 * - 00 - Baud Rate Prescaler value is 2.
mbed_official 324:406fd2029f23 803 * - 01 - Baud Rate Prescaler value is 3.
mbed_official 324:406fd2029f23 804 * - 10 - Baud Rate Prescaler value is 5.
mbed_official 324:406fd2029f23 805 * - 11 - Baud Rate Prescaler value is 7.
mbed_official 324:406fd2029f23 806 */
mbed_official 324:406fd2029f23 807 /*@{*/
mbed_official 324:406fd2029f23 808 #define BP_SPI_CTARn_PBR (16U) /*!< Bit position for SPI_CTARn_PBR. */
mbed_official 324:406fd2029f23 809 #define BM_SPI_CTARn_PBR (0x00030000U) /*!< Bit mask for SPI_CTARn_PBR. */
mbed_official 324:406fd2029f23 810 #define BS_SPI_CTARn_PBR (2U) /*!< Bit field size in bits for SPI_CTARn_PBR. */
mbed_official 324:406fd2029f23 811
mbed_official 324:406fd2029f23 812 /*! @brief Read current value of the SPI_CTARn_PBR field. */
mbed_official 324:406fd2029f23 813 #define BR_SPI_CTARn_PBR(x, n) (HW_SPI_CTARn(x, n).B.PBR)
mbed_official 324:406fd2029f23 814
mbed_official 324:406fd2029f23 815 /*! @brief Format value for bitfield SPI_CTARn_PBR. */
mbed_official 324:406fd2029f23 816 #define BF_SPI_CTARn_PBR(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_PBR) & BM_SPI_CTARn_PBR)
mbed_official 324:406fd2029f23 817
mbed_official 324:406fd2029f23 818 /*! @brief Set the PBR field to a new value. */
mbed_official 324:406fd2029f23 819 #define BW_SPI_CTARn_PBR(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_PBR) | BF_SPI_CTARn_PBR(v)))
mbed_official 324:406fd2029f23 820 /*@}*/
mbed_official 324:406fd2029f23 821
mbed_official 324:406fd2029f23 822 /*!
mbed_official 324:406fd2029f23 823 * @name Register SPI_CTARn, field PDT[19:18] (RW)
mbed_official 324:406fd2029f23 824 *
mbed_official 324:406fd2029f23 825 * Selects the prescaler value for the delay between the negation of the PCS
mbed_official 324:406fd2029f23 826 * signal at the end of a frame and the assertion of PCS at the beginning of the
mbed_official 324:406fd2029f23 827 * next frame. The PDT field is only used in master mode. See the DT field
mbed_official 324:406fd2029f23 828 * description for details on how to compute the Delay after Transfer. Refer Delay after
mbed_official 324:406fd2029f23 829 * Transfer (tDT ) for more details.
mbed_official 324:406fd2029f23 830 *
mbed_official 324:406fd2029f23 831 * Values:
mbed_official 324:406fd2029f23 832 * - 00 - Delay after Transfer Prescaler value is 1.
mbed_official 324:406fd2029f23 833 * - 01 - Delay after Transfer Prescaler value is 3.
mbed_official 324:406fd2029f23 834 * - 10 - Delay after Transfer Prescaler value is 5.
mbed_official 324:406fd2029f23 835 * - 11 - Delay after Transfer Prescaler value is 7.
mbed_official 324:406fd2029f23 836 */
mbed_official 324:406fd2029f23 837 /*@{*/
mbed_official 324:406fd2029f23 838 #define BP_SPI_CTARn_PDT (18U) /*!< Bit position for SPI_CTARn_PDT. */
mbed_official 324:406fd2029f23 839 #define BM_SPI_CTARn_PDT (0x000C0000U) /*!< Bit mask for SPI_CTARn_PDT. */
mbed_official 324:406fd2029f23 840 #define BS_SPI_CTARn_PDT (2U) /*!< Bit field size in bits for SPI_CTARn_PDT. */
mbed_official 324:406fd2029f23 841
mbed_official 324:406fd2029f23 842 /*! @brief Read current value of the SPI_CTARn_PDT field. */
mbed_official 324:406fd2029f23 843 #define BR_SPI_CTARn_PDT(x, n) (HW_SPI_CTARn(x, n).B.PDT)
mbed_official 324:406fd2029f23 844
mbed_official 324:406fd2029f23 845 /*! @brief Format value for bitfield SPI_CTARn_PDT. */
mbed_official 324:406fd2029f23 846 #define BF_SPI_CTARn_PDT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_PDT) & BM_SPI_CTARn_PDT)
mbed_official 324:406fd2029f23 847
mbed_official 324:406fd2029f23 848 /*! @brief Set the PDT field to a new value. */
mbed_official 324:406fd2029f23 849 #define BW_SPI_CTARn_PDT(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_PDT) | BF_SPI_CTARn_PDT(v)))
mbed_official 324:406fd2029f23 850 /*@}*/
mbed_official 324:406fd2029f23 851
mbed_official 324:406fd2029f23 852 /*!
mbed_official 324:406fd2029f23 853 * @name Register SPI_CTARn, field PASC[21:20] (RW)
mbed_official 324:406fd2029f23 854 *
mbed_official 324:406fd2029f23 855 * Selects the prescaler value for the delay between the last edge of SCK and
mbed_official 324:406fd2029f23 856 * the negation of PCS. See the ASC field description for information on how to
mbed_official 324:406fd2029f23 857 * compute the After SCK Delay. Refer After SCK Delay (tASC ) for more details.
mbed_official 324:406fd2029f23 858 *
mbed_official 324:406fd2029f23 859 * Values:
mbed_official 324:406fd2029f23 860 * - 00 - Delay after Transfer Prescaler value is 1.
mbed_official 324:406fd2029f23 861 * - 01 - Delay after Transfer Prescaler value is 3.
mbed_official 324:406fd2029f23 862 * - 10 - Delay after Transfer Prescaler value is 5.
mbed_official 324:406fd2029f23 863 * - 11 - Delay after Transfer Prescaler value is 7.
mbed_official 324:406fd2029f23 864 */
mbed_official 324:406fd2029f23 865 /*@{*/
mbed_official 324:406fd2029f23 866 #define BP_SPI_CTARn_PASC (20U) /*!< Bit position for SPI_CTARn_PASC. */
mbed_official 324:406fd2029f23 867 #define BM_SPI_CTARn_PASC (0x00300000U) /*!< Bit mask for SPI_CTARn_PASC. */
mbed_official 324:406fd2029f23 868 #define BS_SPI_CTARn_PASC (2U) /*!< Bit field size in bits for SPI_CTARn_PASC. */
mbed_official 324:406fd2029f23 869
mbed_official 324:406fd2029f23 870 /*! @brief Read current value of the SPI_CTARn_PASC field. */
mbed_official 324:406fd2029f23 871 #define BR_SPI_CTARn_PASC(x, n) (HW_SPI_CTARn(x, n).B.PASC)
mbed_official 324:406fd2029f23 872
mbed_official 324:406fd2029f23 873 /*! @brief Format value for bitfield SPI_CTARn_PASC. */
mbed_official 324:406fd2029f23 874 #define BF_SPI_CTARn_PASC(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_PASC) & BM_SPI_CTARn_PASC)
mbed_official 324:406fd2029f23 875
mbed_official 324:406fd2029f23 876 /*! @brief Set the PASC field to a new value. */
mbed_official 324:406fd2029f23 877 #define BW_SPI_CTARn_PASC(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_PASC) | BF_SPI_CTARn_PASC(v)))
mbed_official 324:406fd2029f23 878 /*@}*/
mbed_official 324:406fd2029f23 879
mbed_official 324:406fd2029f23 880 /*!
mbed_official 324:406fd2029f23 881 * @name Register SPI_CTARn, field PCSSCK[23:22] (RW)
mbed_official 324:406fd2029f23 882 *
mbed_official 324:406fd2029f23 883 * Selects the prescaler value for the delay between assertion of PCS and the
mbed_official 324:406fd2029f23 884 * first edge of the SCK. See the CSSCK field description for information on how to
mbed_official 324:406fd2029f23 885 * compute the PCS to SCK Delay. Refer PCS to SCK Delay (tCSC ) for more details.
mbed_official 324:406fd2029f23 886 *
mbed_official 324:406fd2029f23 887 * Values:
mbed_official 324:406fd2029f23 888 * - 00 - PCS to SCK Prescaler value is 1.
mbed_official 324:406fd2029f23 889 * - 01 - PCS to SCK Prescaler value is 3.
mbed_official 324:406fd2029f23 890 * - 10 - PCS to SCK Prescaler value is 5.
mbed_official 324:406fd2029f23 891 * - 11 - PCS to SCK Prescaler value is 7.
mbed_official 324:406fd2029f23 892 */
mbed_official 324:406fd2029f23 893 /*@{*/
mbed_official 324:406fd2029f23 894 #define BP_SPI_CTARn_PCSSCK (22U) /*!< Bit position for SPI_CTARn_PCSSCK. */
mbed_official 324:406fd2029f23 895 #define BM_SPI_CTARn_PCSSCK (0x00C00000U) /*!< Bit mask for SPI_CTARn_PCSSCK. */
mbed_official 324:406fd2029f23 896 #define BS_SPI_CTARn_PCSSCK (2U) /*!< Bit field size in bits for SPI_CTARn_PCSSCK. */
mbed_official 324:406fd2029f23 897
mbed_official 324:406fd2029f23 898 /*! @brief Read current value of the SPI_CTARn_PCSSCK field. */
mbed_official 324:406fd2029f23 899 #define BR_SPI_CTARn_PCSSCK(x, n) (HW_SPI_CTARn(x, n).B.PCSSCK)
mbed_official 324:406fd2029f23 900
mbed_official 324:406fd2029f23 901 /*! @brief Format value for bitfield SPI_CTARn_PCSSCK. */
mbed_official 324:406fd2029f23 902 #define BF_SPI_CTARn_PCSSCK(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_PCSSCK) & BM_SPI_CTARn_PCSSCK)
mbed_official 324:406fd2029f23 903
mbed_official 324:406fd2029f23 904 /*! @brief Set the PCSSCK field to a new value. */
mbed_official 324:406fd2029f23 905 #define BW_SPI_CTARn_PCSSCK(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_PCSSCK) | BF_SPI_CTARn_PCSSCK(v)))
mbed_official 324:406fd2029f23 906 /*@}*/
mbed_official 324:406fd2029f23 907
mbed_official 324:406fd2029f23 908 /*!
mbed_official 324:406fd2029f23 909 * @name Register SPI_CTARn, field LSBFE[24] (RW)
mbed_official 324:406fd2029f23 910 *
mbed_official 324:406fd2029f23 911 * Specifies whether the LSB or MSB of the frame is transferred first.
mbed_official 324:406fd2029f23 912 *
mbed_official 324:406fd2029f23 913 * Values:
mbed_official 324:406fd2029f23 914 * - 0 - Data is transferred MSB first.
mbed_official 324:406fd2029f23 915 * - 1 - Data is transferred LSB first.
mbed_official 324:406fd2029f23 916 */
mbed_official 324:406fd2029f23 917 /*@{*/
mbed_official 324:406fd2029f23 918 #define BP_SPI_CTARn_LSBFE (24U) /*!< Bit position for SPI_CTARn_LSBFE. */
mbed_official 324:406fd2029f23 919 #define BM_SPI_CTARn_LSBFE (0x01000000U) /*!< Bit mask for SPI_CTARn_LSBFE. */
mbed_official 324:406fd2029f23 920 #define BS_SPI_CTARn_LSBFE (1U) /*!< Bit field size in bits for SPI_CTARn_LSBFE. */
mbed_official 324:406fd2029f23 921
mbed_official 324:406fd2029f23 922 /*! @brief Read current value of the SPI_CTARn_LSBFE field. */
mbed_official 324:406fd2029f23 923 #define BR_SPI_CTARn_LSBFE(x, n) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_LSBFE))
mbed_official 324:406fd2029f23 924
mbed_official 324:406fd2029f23 925 /*! @brief Format value for bitfield SPI_CTARn_LSBFE. */
mbed_official 324:406fd2029f23 926 #define BF_SPI_CTARn_LSBFE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_LSBFE) & BM_SPI_CTARn_LSBFE)
mbed_official 324:406fd2029f23 927
mbed_official 324:406fd2029f23 928 /*! @brief Set the LSBFE field to a new value. */
mbed_official 324:406fd2029f23 929 #define BW_SPI_CTARn_LSBFE(x, n, v) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_LSBFE) = (v))
mbed_official 324:406fd2029f23 930 /*@}*/
mbed_official 324:406fd2029f23 931
mbed_official 324:406fd2029f23 932 /*!
mbed_official 324:406fd2029f23 933 * @name Register SPI_CTARn, field CPHA[25] (RW)
mbed_official 324:406fd2029f23 934 *
mbed_official 324:406fd2029f23 935 * Selects which edge of SCK causes data to change and which edge causes data to
mbed_official 324:406fd2029f23 936 * be captured. This bit is used in both master and slave mode. For successful
mbed_official 324:406fd2029f23 937 * communication between serial devices, the devices must have identical clock
mbed_official 324:406fd2029f23 938 * phase settings. In Continuous SCK mode, the bit value is ignored and the
mbed_official 324:406fd2029f23 939 * transfers are done as if the CPHA bit is set to 1.
mbed_official 324:406fd2029f23 940 *
mbed_official 324:406fd2029f23 941 * Values:
mbed_official 324:406fd2029f23 942 * - 0 - Data is captured on the leading edge of SCK and changed on the
mbed_official 324:406fd2029f23 943 * following edge.
mbed_official 324:406fd2029f23 944 * - 1 - Data is changed on the leading edge of SCK and captured on the
mbed_official 324:406fd2029f23 945 * following edge.
mbed_official 324:406fd2029f23 946 */
mbed_official 324:406fd2029f23 947 /*@{*/
mbed_official 324:406fd2029f23 948 #define BP_SPI_CTARn_CPHA (25U) /*!< Bit position for SPI_CTARn_CPHA. */
mbed_official 324:406fd2029f23 949 #define BM_SPI_CTARn_CPHA (0x02000000U) /*!< Bit mask for SPI_CTARn_CPHA. */
mbed_official 324:406fd2029f23 950 #define BS_SPI_CTARn_CPHA (1U) /*!< Bit field size in bits for SPI_CTARn_CPHA. */
mbed_official 324:406fd2029f23 951
mbed_official 324:406fd2029f23 952 /*! @brief Read current value of the SPI_CTARn_CPHA field. */
mbed_official 324:406fd2029f23 953 #define BR_SPI_CTARn_CPHA(x, n) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_CPHA))
mbed_official 324:406fd2029f23 954
mbed_official 324:406fd2029f23 955 /*! @brief Format value for bitfield SPI_CTARn_CPHA. */
mbed_official 324:406fd2029f23 956 #define BF_SPI_CTARn_CPHA(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_CPHA) & BM_SPI_CTARn_CPHA)
mbed_official 324:406fd2029f23 957
mbed_official 324:406fd2029f23 958 /*! @brief Set the CPHA field to a new value. */
mbed_official 324:406fd2029f23 959 #define BW_SPI_CTARn_CPHA(x, n, v) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_CPHA) = (v))
mbed_official 324:406fd2029f23 960 /*@}*/
mbed_official 324:406fd2029f23 961
mbed_official 324:406fd2029f23 962 /*!
mbed_official 324:406fd2029f23 963 * @name Register SPI_CTARn, field CPOL[26] (RW)
mbed_official 324:406fd2029f23 964 *
mbed_official 324:406fd2029f23 965 * Selects the inactive state of the Serial Communications Clock (SCK). This bit
mbed_official 324:406fd2029f23 966 * is used in both master and slave mode. For successful communication between
mbed_official 324:406fd2029f23 967 * serial devices, the devices must have identical clock polarities. When the
mbed_official 324:406fd2029f23 968 * Continuous Selection Format is selected, switching between clock polarities
mbed_official 324:406fd2029f23 969 * without stopping the module can cause errors in the transfer due to the peripheral
mbed_official 324:406fd2029f23 970 * device interpreting the switch of clock polarity as a valid clock edge. In case
mbed_official 324:406fd2029f23 971 * of continous sck mode, when the module goes in low power mode(disabled),
mbed_official 324:406fd2029f23 972 * inactive state of sck is not guaranted.
mbed_official 324:406fd2029f23 973 *
mbed_official 324:406fd2029f23 974 * Values:
mbed_official 324:406fd2029f23 975 * - 0 - The inactive state value of SCK is low.
mbed_official 324:406fd2029f23 976 * - 1 - The inactive state value of SCK is high.
mbed_official 324:406fd2029f23 977 */
mbed_official 324:406fd2029f23 978 /*@{*/
mbed_official 324:406fd2029f23 979 #define BP_SPI_CTARn_CPOL (26U) /*!< Bit position for SPI_CTARn_CPOL. */
mbed_official 324:406fd2029f23 980 #define BM_SPI_CTARn_CPOL (0x04000000U) /*!< Bit mask for SPI_CTARn_CPOL. */
mbed_official 324:406fd2029f23 981 #define BS_SPI_CTARn_CPOL (1U) /*!< Bit field size in bits for SPI_CTARn_CPOL. */
mbed_official 324:406fd2029f23 982
mbed_official 324:406fd2029f23 983 /*! @brief Read current value of the SPI_CTARn_CPOL field. */
mbed_official 324:406fd2029f23 984 #define BR_SPI_CTARn_CPOL(x, n) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_CPOL))
mbed_official 324:406fd2029f23 985
mbed_official 324:406fd2029f23 986 /*! @brief Format value for bitfield SPI_CTARn_CPOL. */
mbed_official 324:406fd2029f23 987 #define BF_SPI_CTARn_CPOL(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_CPOL) & BM_SPI_CTARn_CPOL)
mbed_official 324:406fd2029f23 988
mbed_official 324:406fd2029f23 989 /*! @brief Set the CPOL field to a new value. */
mbed_official 324:406fd2029f23 990 #define BW_SPI_CTARn_CPOL(x, n, v) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_CPOL) = (v))
mbed_official 324:406fd2029f23 991 /*@}*/
mbed_official 324:406fd2029f23 992
mbed_official 324:406fd2029f23 993 /*!
mbed_official 324:406fd2029f23 994 * @name Register SPI_CTARn, field FMSZ[30:27] (RW)
mbed_official 324:406fd2029f23 995 *
mbed_official 324:406fd2029f23 996 * The number of bits transferred per frame is equal to the FMSZ value plus 1.
mbed_official 324:406fd2029f23 997 * Regardless of the transmission mode, the minimum valid frame size value is 4.
mbed_official 324:406fd2029f23 998 */
mbed_official 324:406fd2029f23 999 /*@{*/
mbed_official 324:406fd2029f23 1000 #define BP_SPI_CTARn_FMSZ (27U) /*!< Bit position for SPI_CTARn_FMSZ. */
mbed_official 324:406fd2029f23 1001 #define BM_SPI_CTARn_FMSZ (0x78000000U) /*!< Bit mask for SPI_CTARn_FMSZ. */
mbed_official 324:406fd2029f23 1002 #define BS_SPI_CTARn_FMSZ (4U) /*!< Bit field size in bits for SPI_CTARn_FMSZ. */
mbed_official 324:406fd2029f23 1003
mbed_official 324:406fd2029f23 1004 /*! @brief Read current value of the SPI_CTARn_FMSZ field. */
mbed_official 324:406fd2029f23 1005 #define BR_SPI_CTARn_FMSZ(x, n) (HW_SPI_CTARn(x, n).B.FMSZ)
mbed_official 324:406fd2029f23 1006
mbed_official 324:406fd2029f23 1007 /*! @brief Format value for bitfield SPI_CTARn_FMSZ. */
mbed_official 324:406fd2029f23 1008 #define BF_SPI_CTARn_FMSZ(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_FMSZ) & BM_SPI_CTARn_FMSZ)
mbed_official 324:406fd2029f23 1009
mbed_official 324:406fd2029f23 1010 /*! @brief Set the FMSZ field to a new value. */
mbed_official 324:406fd2029f23 1011 #define BW_SPI_CTARn_FMSZ(x, n, v) (HW_SPI_CTARn_WR(x, n, (HW_SPI_CTARn_RD(x, n) & ~BM_SPI_CTARn_FMSZ) | BF_SPI_CTARn_FMSZ(v)))
mbed_official 324:406fd2029f23 1012 /*@}*/
mbed_official 324:406fd2029f23 1013
mbed_official 324:406fd2029f23 1014 /*!
mbed_official 324:406fd2029f23 1015 * @name Register SPI_CTARn, field DBR[31] (RW)
mbed_official 324:406fd2029f23 1016 *
mbed_official 324:406fd2029f23 1017 * Doubles the effective baud rate of the Serial Communications Clock (SCK).
mbed_official 324:406fd2029f23 1018 * This field is used only in master mode. It effectively halves the Baud Rate
mbed_official 324:406fd2029f23 1019 * division ratio, supporting faster frequencies, and odd division ratios for the
mbed_official 324:406fd2029f23 1020 * Serial Communications Clock (SCK). When the DBR bit is set, the duty cycle of the
mbed_official 324:406fd2029f23 1021 * Serial Communications Clock (SCK) depends on the value in the Baud Rate
mbed_official 324:406fd2029f23 1022 * Prescaler and the Clock Phase bit as listed in the following table. See the BR field
mbed_official 324:406fd2029f23 1023 * description for details on how to compute the baud rate. SPI SCK Duty Cycle
mbed_official 324:406fd2029f23 1024 * DBR CPHA PBR SCK Duty Cycle 0 any any 50/50 1 0 00 50/50 1 0 01 33/66 1 0 10
mbed_official 324:406fd2029f23 1025 * 40/60 1 0 11 43/57 1 1 00 50/50 1 1 01 66/33 1 1 10 60/40 1 1 11 57/43
mbed_official 324:406fd2029f23 1026 *
mbed_official 324:406fd2029f23 1027 * Values:
mbed_official 324:406fd2029f23 1028 * - 0 - The baud rate is computed normally with a 50/50 duty cycle.
mbed_official 324:406fd2029f23 1029 * - 1 - The baud rate is doubled with the duty cycle depending on the Baud Rate
mbed_official 324:406fd2029f23 1030 * Prescaler.
mbed_official 324:406fd2029f23 1031 */
mbed_official 324:406fd2029f23 1032 /*@{*/
mbed_official 324:406fd2029f23 1033 #define BP_SPI_CTARn_DBR (31U) /*!< Bit position for SPI_CTARn_DBR. */
mbed_official 324:406fd2029f23 1034 #define BM_SPI_CTARn_DBR (0x80000000U) /*!< Bit mask for SPI_CTARn_DBR. */
mbed_official 324:406fd2029f23 1035 #define BS_SPI_CTARn_DBR (1U) /*!< Bit field size in bits for SPI_CTARn_DBR. */
mbed_official 324:406fd2029f23 1036
mbed_official 324:406fd2029f23 1037 /*! @brief Read current value of the SPI_CTARn_DBR field. */
mbed_official 324:406fd2029f23 1038 #define BR_SPI_CTARn_DBR(x, n) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_DBR))
mbed_official 324:406fd2029f23 1039
mbed_official 324:406fd2029f23 1040 /*! @brief Format value for bitfield SPI_CTARn_DBR. */
mbed_official 324:406fd2029f23 1041 #define BF_SPI_CTARn_DBR(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_DBR) & BM_SPI_CTARn_DBR)
mbed_official 324:406fd2029f23 1042
mbed_official 324:406fd2029f23 1043 /*! @brief Set the DBR field to a new value. */
mbed_official 324:406fd2029f23 1044 #define BW_SPI_CTARn_DBR(x, n, v) (BITBAND_ACCESS32(HW_SPI_CTARn_ADDR(x, n), BP_SPI_CTARn_DBR) = (v))
mbed_official 324:406fd2029f23 1045 /*@}*/
mbed_official 324:406fd2029f23 1046 /*******************************************************************************
mbed_official 324:406fd2029f23 1047 * HW_SPI_CTARn_SLAVE - Clock and Transfer Attributes Register (In Slave Mode)
mbed_official 324:406fd2029f23 1048 ******************************************************************************/
mbed_official 324:406fd2029f23 1049
mbed_official 324:406fd2029f23 1050 /*!
mbed_official 324:406fd2029f23 1051 * @brief HW_SPI_CTARn_SLAVE - Clock and Transfer Attributes Register (In Slave Mode) (RW)
mbed_official 324:406fd2029f23 1052 *
mbed_official 324:406fd2029f23 1053 * Reset value: 0x78000000U
mbed_official 324:406fd2029f23 1054 *
mbed_official 324:406fd2029f23 1055 * When the module is configured as an SPI bus slave, the CTAR0 register is used.
mbed_official 324:406fd2029f23 1056 */
mbed_official 324:406fd2029f23 1057 typedef union _hw_spi_ctarn_slave
mbed_official 324:406fd2029f23 1058 {
mbed_official 324:406fd2029f23 1059 uint32_t U;
mbed_official 324:406fd2029f23 1060 struct _hw_spi_ctarn_slave_bitfields
mbed_official 324:406fd2029f23 1061 {
mbed_official 324:406fd2029f23 1062 uint32_t RESERVED0 : 25; /*!< [24:0] */
mbed_official 324:406fd2029f23 1063 uint32_t CPHA : 1; /*!< [25] Clock Phase */
mbed_official 324:406fd2029f23 1064 uint32_t CPOL : 1; /*!< [26] Clock Polarity */
mbed_official 324:406fd2029f23 1065 uint32_t FMSZ : 5; /*!< [31:27] Frame Size */
mbed_official 324:406fd2029f23 1066 } B;
mbed_official 324:406fd2029f23 1067 } hw_spi_ctarn_slave_t;
mbed_official 324:406fd2029f23 1068
mbed_official 324:406fd2029f23 1069 /*!
mbed_official 324:406fd2029f23 1070 * @name Constants and macros for entire SPI_CTARn_SLAVE register
mbed_official 324:406fd2029f23 1071 */
mbed_official 324:406fd2029f23 1072 /*@{*/
mbed_official 324:406fd2029f23 1073 #define HW_SPI_CTARn_SLAVE_COUNT (1U)
mbed_official 324:406fd2029f23 1074
mbed_official 324:406fd2029f23 1075 #define HW_SPI_CTARn_SLAVE_ADDR(x, n) ((x) + 0xCU + (0x4U * (n)))
mbed_official 324:406fd2029f23 1076
mbed_official 324:406fd2029f23 1077 #define HW_SPI_CTARn_SLAVE(x, n) (*(__IO hw_spi_ctarn_slave_t *) HW_SPI_CTARn_SLAVE_ADDR(x, n))
mbed_official 324:406fd2029f23 1078 #define HW_SPI_CTARn_SLAVE_RD(x, n) (HW_SPI_CTARn_SLAVE(x, n).U)
mbed_official 324:406fd2029f23 1079 #define HW_SPI_CTARn_SLAVE_WR(x, n, v) (HW_SPI_CTARn_SLAVE(x, n).U = (v))
mbed_official 324:406fd2029f23 1080 #define HW_SPI_CTARn_SLAVE_SET(x, n, v) (HW_SPI_CTARn_SLAVE_WR(x, n, HW_SPI_CTARn_SLAVE_RD(x, n) | (v)))
mbed_official 324:406fd2029f23 1081 #define HW_SPI_CTARn_SLAVE_CLR(x, n, v) (HW_SPI_CTARn_SLAVE_WR(x, n, HW_SPI_CTARn_SLAVE_RD(x, n) & ~(v)))
mbed_official 324:406fd2029f23 1082 #define HW_SPI_CTARn_SLAVE_TOG(x, n, v) (HW_SPI_CTARn_SLAVE_WR(x, n, HW_SPI_CTARn_SLAVE_RD(x, n) ^ (v)))
mbed_official 324:406fd2029f23 1083 /*@}*/
mbed_official 324:406fd2029f23 1084
mbed_official 324:406fd2029f23 1085 /*
mbed_official 324:406fd2029f23 1086 * Constants & macros for individual SPI_CTARn_SLAVE bitfields
mbed_official 324:406fd2029f23 1087 */
mbed_official 324:406fd2029f23 1088
mbed_official 324:406fd2029f23 1089 /*!
mbed_official 324:406fd2029f23 1090 * @name Register SPI_CTARn_SLAVE, field CPHA[25] (RW)
mbed_official 324:406fd2029f23 1091 *
mbed_official 324:406fd2029f23 1092 * Selects which edge of SCK causes data to change and which edge causes data to
mbed_official 324:406fd2029f23 1093 * be captured. This bit is used in both master and slave mode. For successful
mbed_official 324:406fd2029f23 1094 * communication between serial devices, the devices must have identical clock
mbed_official 324:406fd2029f23 1095 * phase settings. In Continuous SCK mode, the bit value is ignored and the
mbed_official 324:406fd2029f23 1096 * transfers are done as if the CPHA bit is set to 1.
mbed_official 324:406fd2029f23 1097 *
mbed_official 324:406fd2029f23 1098 * Values:
mbed_official 324:406fd2029f23 1099 * - 0 - Data is captured on the leading edge of SCK and changed on the
mbed_official 324:406fd2029f23 1100 * following edge.
mbed_official 324:406fd2029f23 1101 * - 1 - Data is changed on the leading edge of SCK and captured on the
mbed_official 324:406fd2029f23 1102 * following edge.
mbed_official 324:406fd2029f23 1103 */
mbed_official 324:406fd2029f23 1104 /*@{*/
mbed_official 324:406fd2029f23 1105 #define BP_SPI_CTARn_SLAVE_CPHA (25U) /*!< Bit position for SPI_CTARn_SLAVE_CPHA. */
mbed_official 324:406fd2029f23 1106 #define BM_SPI_CTARn_SLAVE_CPHA (0x02000000U) /*!< Bit mask for SPI_CTARn_SLAVE_CPHA. */
mbed_official 324:406fd2029f23 1107 #define BS_SPI_CTARn_SLAVE_CPHA (1U) /*!< Bit field size in bits for SPI_CTARn_SLAVE_CPHA. */
mbed_official 324:406fd2029f23 1108
mbed_official 324:406fd2029f23 1109 /*! @brief Read current value of the SPI_CTARn_SLAVE_CPHA field. */
mbed_official 324:406fd2029f23 1110 #define BR_SPI_CTARn_SLAVE_CPHA(x, n) (BITBAND_ACCESS32(HW_SPI_CTARn_SLAVE_ADDR(x, n), BP_SPI_CTARn_SLAVE_CPHA))
mbed_official 324:406fd2029f23 1111
mbed_official 324:406fd2029f23 1112 /*! @brief Format value for bitfield SPI_CTARn_SLAVE_CPHA. */
mbed_official 324:406fd2029f23 1113 #define BF_SPI_CTARn_SLAVE_CPHA(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_SLAVE_CPHA) & BM_SPI_CTARn_SLAVE_CPHA)
mbed_official 324:406fd2029f23 1114
mbed_official 324:406fd2029f23 1115 /*! @brief Set the CPHA field to a new value. */
mbed_official 324:406fd2029f23 1116 #define BW_SPI_CTARn_SLAVE_CPHA(x, n, v) (BITBAND_ACCESS32(HW_SPI_CTARn_SLAVE_ADDR(x, n), BP_SPI_CTARn_SLAVE_CPHA) = (v))
mbed_official 324:406fd2029f23 1117 /*@}*/
mbed_official 324:406fd2029f23 1118
mbed_official 324:406fd2029f23 1119 /*!
mbed_official 324:406fd2029f23 1120 * @name Register SPI_CTARn_SLAVE, field CPOL[26] (RW)
mbed_official 324:406fd2029f23 1121 *
mbed_official 324:406fd2029f23 1122 * Selects the inactive state of the Serial Communications Clock (SCK). In case
mbed_official 324:406fd2029f23 1123 * of continous sck mode, when the module goes in low power mode(disabled),
mbed_official 324:406fd2029f23 1124 * inactive state of sck is not guaranted.
mbed_official 324:406fd2029f23 1125 *
mbed_official 324:406fd2029f23 1126 * Values:
mbed_official 324:406fd2029f23 1127 * - 0 - The inactive state value of SCK is low.
mbed_official 324:406fd2029f23 1128 * - 1 - The inactive state value of SCK is high.
mbed_official 324:406fd2029f23 1129 */
mbed_official 324:406fd2029f23 1130 /*@{*/
mbed_official 324:406fd2029f23 1131 #define BP_SPI_CTARn_SLAVE_CPOL (26U) /*!< Bit position for SPI_CTARn_SLAVE_CPOL. */
mbed_official 324:406fd2029f23 1132 #define BM_SPI_CTARn_SLAVE_CPOL (0x04000000U) /*!< Bit mask for SPI_CTARn_SLAVE_CPOL. */
mbed_official 324:406fd2029f23 1133 #define BS_SPI_CTARn_SLAVE_CPOL (1U) /*!< Bit field size in bits for SPI_CTARn_SLAVE_CPOL. */
mbed_official 324:406fd2029f23 1134
mbed_official 324:406fd2029f23 1135 /*! @brief Read current value of the SPI_CTARn_SLAVE_CPOL field. */
mbed_official 324:406fd2029f23 1136 #define BR_SPI_CTARn_SLAVE_CPOL(x, n) (BITBAND_ACCESS32(HW_SPI_CTARn_SLAVE_ADDR(x, n), BP_SPI_CTARn_SLAVE_CPOL))
mbed_official 324:406fd2029f23 1137
mbed_official 324:406fd2029f23 1138 /*! @brief Format value for bitfield SPI_CTARn_SLAVE_CPOL. */
mbed_official 324:406fd2029f23 1139 #define BF_SPI_CTARn_SLAVE_CPOL(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_SLAVE_CPOL) & BM_SPI_CTARn_SLAVE_CPOL)
mbed_official 324:406fd2029f23 1140
mbed_official 324:406fd2029f23 1141 /*! @brief Set the CPOL field to a new value. */
mbed_official 324:406fd2029f23 1142 #define BW_SPI_CTARn_SLAVE_CPOL(x, n, v) (BITBAND_ACCESS32(HW_SPI_CTARn_SLAVE_ADDR(x, n), BP_SPI_CTARn_SLAVE_CPOL) = (v))
mbed_official 324:406fd2029f23 1143 /*@}*/
mbed_official 324:406fd2029f23 1144
mbed_official 324:406fd2029f23 1145 /*!
mbed_official 324:406fd2029f23 1146 * @name Register SPI_CTARn_SLAVE, field FMSZ[31:27] (RW)
mbed_official 324:406fd2029f23 1147 *
mbed_official 324:406fd2029f23 1148 * The number of bits transfered per frame is equal to the FMSZ field value plus
mbed_official 324:406fd2029f23 1149 * 1. Note that the minimum valid value of frame size is 4.
mbed_official 324:406fd2029f23 1150 */
mbed_official 324:406fd2029f23 1151 /*@{*/
mbed_official 324:406fd2029f23 1152 #define BP_SPI_CTARn_SLAVE_FMSZ (27U) /*!< Bit position for SPI_CTARn_SLAVE_FMSZ. */
mbed_official 324:406fd2029f23 1153 #define BM_SPI_CTARn_SLAVE_FMSZ (0xF8000000U) /*!< Bit mask for SPI_CTARn_SLAVE_FMSZ. */
mbed_official 324:406fd2029f23 1154 #define BS_SPI_CTARn_SLAVE_FMSZ (5U) /*!< Bit field size in bits for SPI_CTARn_SLAVE_FMSZ. */
mbed_official 324:406fd2029f23 1155
mbed_official 324:406fd2029f23 1156 /*! @brief Read current value of the SPI_CTARn_SLAVE_FMSZ field. */
mbed_official 324:406fd2029f23 1157 #define BR_SPI_CTARn_SLAVE_FMSZ(x, n) (HW_SPI_CTARn_SLAVE(x, n).B.FMSZ)
mbed_official 324:406fd2029f23 1158
mbed_official 324:406fd2029f23 1159 /*! @brief Format value for bitfield SPI_CTARn_SLAVE_FMSZ. */
mbed_official 324:406fd2029f23 1160 #define BF_SPI_CTARn_SLAVE_FMSZ(v) ((uint32_t)((uint32_t)(v) << BP_SPI_CTARn_SLAVE_FMSZ) & BM_SPI_CTARn_SLAVE_FMSZ)
mbed_official 324:406fd2029f23 1161
mbed_official 324:406fd2029f23 1162 /*! @brief Set the FMSZ field to a new value. */
mbed_official 324:406fd2029f23 1163 #define BW_SPI_CTARn_SLAVE_FMSZ(x, n, v) (HW_SPI_CTARn_SLAVE_WR(x, n, (HW_SPI_CTARn_SLAVE_RD(x, n) & ~BM_SPI_CTARn_SLAVE_FMSZ) | BF_SPI_CTARn_SLAVE_FMSZ(v)))
mbed_official 324:406fd2029f23 1164 /*@}*/
mbed_official 324:406fd2029f23 1165
mbed_official 324:406fd2029f23 1166 /*******************************************************************************
mbed_official 324:406fd2029f23 1167 * HW_SPI_SR - Status Register
mbed_official 324:406fd2029f23 1168 ******************************************************************************/
mbed_official 324:406fd2029f23 1169
mbed_official 324:406fd2029f23 1170 /*!
mbed_official 324:406fd2029f23 1171 * @brief HW_SPI_SR - Status Register (RW)
mbed_official 324:406fd2029f23 1172 *
mbed_official 324:406fd2029f23 1173 * Reset value: 0x02000000U
mbed_official 324:406fd2029f23 1174 *
mbed_official 324:406fd2029f23 1175 * SR contains status and flag bits. The bits reflect the status of the module
mbed_official 324:406fd2029f23 1176 * and indicate the occurrence of events that can generate interrupt or DMA
mbed_official 324:406fd2029f23 1177 * requests. Software can clear flag bits in the SR by writing a 1 to them. Writing a 0
mbed_official 324:406fd2029f23 1178 * to a flag bit has no effect. This register may not be writable in Module
mbed_official 324:406fd2029f23 1179 * Disable mode due to the use of power saving mechanisms.
mbed_official 324:406fd2029f23 1180 */
mbed_official 324:406fd2029f23 1181 typedef union _hw_spi_sr
mbed_official 324:406fd2029f23 1182 {
mbed_official 324:406fd2029f23 1183 uint32_t U;
mbed_official 324:406fd2029f23 1184 struct _hw_spi_sr_bitfields
mbed_official 324:406fd2029f23 1185 {
mbed_official 324:406fd2029f23 1186 uint32_t POPNXTPTR : 4; /*!< [3:0] Pop Next Pointer */
mbed_official 324:406fd2029f23 1187 uint32_t RXCTR : 4; /*!< [7:4] RX FIFO Counter */
mbed_official 324:406fd2029f23 1188 uint32_t TXNXTPTR : 4; /*!< [11:8] Transmit Next Pointer */
mbed_official 324:406fd2029f23 1189 uint32_t TXCTR : 4; /*!< [15:12] TX FIFO Counter */
mbed_official 324:406fd2029f23 1190 uint32_t RESERVED0 : 1; /*!< [16] */
mbed_official 324:406fd2029f23 1191 uint32_t RFDF : 1; /*!< [17] Receive FIFO Drain Flag */
mbed_official 324:406fd2029f23 1192 uint32_t RESERVED1 : 1; /*!< [18] */
mbed_official 324:406fd2029f23 1193 uint32_t RFOF : 1; /*!< [19] Receive FIFO Overflow Flag */
mbed_official 324:406fd2029f23 1194 uint32_t RESERVED2 : 5; /*!< [24:20] */
mbed_official 324:406fd2029f23 1195 uint32_t TFFF : 1; /*!< [25] Transmit FIFO Fill Flag */
mbed_official 324:406fd2029f23 1196 uint32_t RESERVED3 : 1; /*!< [26] */
mbed_official 324:406fd2029f23 1197 uint32_t TFUF : 1; /*!< [27] Transmit FIFO Underflow Flag */
mbed_official 324:406fd2029f23 1198 uint32_t EOQF : 1; /*!< [28] End of Queue Flag */
mbed_official 324:406fd2029f23 1199 uint32_t RESERVED4 : 1; /*!< [29] */
mbed_official 324:406fd2029f23 1200 uint32_t TXRXS : 1; /*!< [30] TX and RX Status */
mbed_official 324:406fd2029f23 1201 uint32_t TCF : 1; /*!< [31] Transfer Complete Flag */
mbed_official 324:406fd2029f23 1202 } B;
mbed_official 324:406fd2029f23 1203 } hw_spi_sr_t;
mbed_official 324:406fd2029f23 1204
mbed_official 324:406fd2029f23 1205 /*!
mbed_official 324:406fd2029f23 1206 * @name Constants and macros for entire SPI_SR register
mbed_official 324:406fd2029f23 1207 */
mbed_official 324:406fd2029f23 1208 /*@{*/
mbed_official 324:406fd2029f23 1209 #define HW_SPI_SR_ADDR(x) ((x) + 0x2CU)
mbed_official 324:406fd2029f23 1210
mbed_official 324:406fd2029f23 1211 #define HW_SPI_SR(x) (*(__IO hw_spi_sr_t *) HW_SPI_SR_ADDR(x))
mbed_official 324:406fd2029f23 1212 #define HW_SPI_SR_RD(x) (HW_SPI_SR(x).U)
mbed_official 324:406fd2029f23 1213 #define HW_SPI_SR_WR(x, v) (HW_SPI_SR(x).U = (v))
mbed_official 324:406fd2029f23 1214 #define HW_SPI_SR_SET(x, v) (HW_SPI_SR_WR(x, HW_SPI_SR_RD(x) | (v)))
mbed_official 324:406fd2029f23 1215 #define HW_SPI_SR_CLR(x, v) (HW_SPI_SR_WR(x, HW_SPI_SR_RD(x) & ~(v)))
mbed_official 324:406fd2029f23 1216 #define HW_SPI_SR_TOG(x, v) (HW_SPI_SR_WR(x, HW_SPI_SR_RD(x) ^ (v)))
mbed_official 324:406fd2029f23 1217 /*@}*/
mbed_official 324:406fd2029f23 1218
mbed_official 324:406fd2029f23 1219 /*
mbed_official 324:406fd2029f23 1220 * Constants & macros for individual SPI_SR bitfields
mbed_official 324:406fd2029f23 1221 */
mbed_official 324:406fd2029f23 1222
mbed_official 324:406fd2029f23 1223 /*!
mbed_official 324:406fd2029f23 1224 * @name Register SPI_SR, field POPNXTPTR[3:0] (RO)
mbed_official 324:406fd2029f23 1225 *
mbed_official 324:406fd2029f23 1226 * Contains a pointer to the RX FIFO entry to be returned when the POPR is read.
mbed_official 324:406fd2029f23 1227 * The POPNXTPTR is updated when the POPR is read.
mbed_official 324:406fd2029f23 1228 */
mbed_official 324:406fd2029f23 1229 /*@{*/
mbed_official 324:406fd2029f23 1230 #define BP_SPI_SR_POPNXTPTR (0U) /*!< Bit position for SPI_SR_POPNXTPTR. */
mbed_official 324:406fd2029f23 1231 #define BM_SPI_SR_POPNXTPTR (0x0000000FU) /*!< Bit mask for SPI_SR_POPNXTPTR. */
mbed_official 324:406fd2029f23 1232 #define BS_SPI_SR_POPNXTPTR (4U) /*!< Bit field size in bits for SPI_SR_POPNXTPTR. */
mbed_official 324:406fd2029f23 1233
mbed_official 324:406fd2029f23 1234 /*! @brief Read current value of the SPI_SR_POPNXTPTR field. */
mbed_official 324:406fd2029f23 1235 #define BR_SPI_SR_POPNXTPTR(x) (HW_SPI_SR(x).B.POPNXTPTR)
mbed_official 324:406fd2029f23 1236 /*@}*/
mbed_official 324:406fd2029f23 1237
mbed_official 324:406fd2029f23 1238 /*!
mbed_official 324:406fd2029f23 1239 * @name Register SPI_SR, field RXCTR[7:4] (RO)
mbed_official 324:406fd2029f23 1240 *
mbed_official 324:406fd2029f23 1241 * Indicates the number of entries in the RX FIFO. The RXCTR is decremented
mbed_official 324:406fd2029f23 1242 * every time the POPR is read. The RXCTR is incremented every time data is
mbed_official 324:406fd2029f23 1243 * transferred from the shift register to the RX FIFO.
mbed_official 324:406fd2029f23 1244 */
mbed_official 324:406fd2029f23 1245 /*@{*/
mbed_official 324:406fd2029f23 1246 #define BP_SPI_SR_RXCTR (4U) /*!< Bit position for SPI_SR_RXCTR. */
mbed_official 324:406fd2029f23 1247 #define BM_SPI_SR_RXCTR (0x000000F0U) /*!< Bit mask for SPI_SR_RXCTR. */
mbed_official 324:406fd2029f23 1248 #define BS_SPI_SR_RXCTR (4U) /*!< Bit field size in bits for SPI_SR_RXCTR. */
mbed_official 324:406fd2029f23 1249
mbed_official 324:406fd2029f23 1250 /*! @brief Read current value of the SPI_SR_RXCTR field. */
mbed_official 324:406fd2029f23 1251 #define BR_SPI_SR_RXCTR(x) (HW_SPI_SR(x).B.RXCTR)
mbed_official 324:406fd2029f23 1252 /*@}*/
mbed_official 324:406fd2029f23 1253
mbed_official 324:406fd2029f23 1254 /*!
mbed_official 324:406fd2029f23 1255 * @name Register SPI_SR, field TXNXTPTR[11:8] (RO)
mbed_official 324:406fd2029f23 1256 *
mbed_official 324:406fd2029f23 1257 * Indicates which TX FIFO entry is transmitted during the next transfer. The
mbed_official 324:406fd2029f23 1258 * TXNXTPTR field is updated every time SPI data is transferred from the TX FIFO to
mbed_official 324:406fd2029f23 1259 * the shift register.
mbed_official 324:406fd2029f23 1260 */
mbed_official 324:406fd2029f23 1261 /*@{*/
mbed_official 324:406fd2029f23 1262 #define BP_SPI_SR_TXNXTPTR (8U) /*!< Bit position for SPI_SR_TXNXTPTR. */
mbed_official 324:406fd2029f23 1263 #define BM_SPI_SR_TXNXTPTR (0x00000F00U) /*!< Bit mask for SPI_SR_TXNXTPTR. */
mbed_official 324:406fd2029f23 1264 #define BS_SPI_SR_TXNXTPTR (4U) /*!< Bit field size in bits for SPI_SR_TXNXTPTR. */
mbed_official 324:406fd2029f23 1265
mbed_official 324:406fd2029f23 1266 /*! @brief Read current value of the SPI_SR_TXNXTPTR field. */
mbed_official 324:406fd2029f23 1267 #define BR_SPI_SR_TXNXTPTR(x) (HW_SPI_SR(x).B.TXNXTPTR)
mbed_official 324:406fd2029f23 1268 /*@}*/
mbed_official 324:406fd2029f23 1269
mbed_official 324:406fd2029f23 1270 /*!
mbed_official 324:406fd2029f23 1271 * @name Register SPI_SR, field TXCTR[15:12] (RO)
mbed_official 324:406fd2029f23 1272 *
mbed_official 324:406fd2029f23 1273 * Indicates the number of valid entries in the TX FIFO. The TXCTR is
mbed_official 324:406fd2029f23 1274 * incremented every time the PUSHR is written. The TXCTR is decremented every time an SPI
mbed_official 324:406fd2029f23 1275 * command is executed and the SPI data is transferred to the shift register.
mbed_official 324:406fd2029f23 1276 */
mbed_official 324:406fd2029f23 1277 /*@{*/
mbed_official 324:406fd2029f23 1278 #define BP_SPI_SR_TXCTR (12U) /*!< Bit position for SPI_SR_TXCTR. */
mbed_official 324:406fd2029f23 1279 #define BM_SPI_SR_TXCTR (0x0000F000U) /*!< Bit mask for SPI_SR_TXCTR. */
mbed_official 324:406fd2029f23 1280 #define BS_SPI_SR_TXCTR (4U) /*!< Bit field size in bits for SPI_SR_TXCTR. */
mbed_official 324:406fd2029f23 1281
mbed_official 324:406fd2029f23 1282 /*! @brief Read current value of the SPI_SR_TXCTR field. */
mbed_official 324:406fd2029f23 1283 #define BR_SPI_SR_TXCTR(x) (HW_SPI_SR(x).B.TXCTR)
mbed_official 324:406fd2029f23 1284 /*@}*/
mbed_official 324:406fd2029f23 1285
mbed_official 324:406fd2029f23 1286 /*!
mbed_official 324:406fd2029f23 1287 * @name Register SPI_SR, field RFDF[17] (W1C)
mbed_official 324:406fd2029f23 1288 *
mbed_official 324:406fd2029f23 1289 * Provides a method for the module to request that entries be removed from the
mbed_official 324:406fd2029f23 1290 * RX FIFO. The bit is set while the RX FIFO is not empty. The RFDF bit can be
mbed_official 324:406fd2029f23 1291 * cleared by writing 1 to it or by acknowledgement from the DMA controller when
mbed_official 324:406fd2029f23 1292 * the RX FIFO is empty.
mbed_official 324:406fd2029f23 1293 *
mbed_official 324:406fd2029f23 1294 * Values:
mbed_official 324:406fd2029f23 1295 * - 0 - RX FIFO is empty.
mbed_official 324:406fd2029f23 1296 * - 1 - RX FIFO is not empty.
mbed_official 324:406fd2029f23 1297 */
mbed_official 324:406fd2029f23 1298 /*@{*/
mbed_official 324:406fd2029f23 1299 #define BP_SPI_SR_RFDF (17U) /*!< Bit position for SPI_SR_RFDF. */
mbed_official 324:406fd2029f23 1300 #define BM_SPI_SR_RFDF (0x00020000U) /*!< Bit mask for SPI_SR_RFDF. */
mbed_official 324:406fd2029f23 1301 #define BS_SPI_SR_RFDF (1U) /*!< Bit field size in bits for SPI_SR_RFDF. */
mbed_official 324:406fd2029f23 1302
mbed_official 324:406fd2029f23 1303 /*! @brief Read current value of the SPI_SR_RFDF field. */
mbed_official 324:406fd2029f23 1304 #define BR_SPI_SR_RFDF(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_RFDF))
mbed_official 324:406fd2029f23 1305
mbed_official 324:406fd2029f23 1306 /*! @brief Format value for bitfield SPI_SR_RFDF. */
mbed_official 324:406fd2029f23 1307 #define BF_SPI_SR_RFDF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_RFDF) & BM_SPI_SR_RFDF)
mbed_official 324:406fd2029f23 1308
mbed_official 324:406fd2029f23 1309 /*! @brief Set the RFDF field to a new value. */
mbed_official 324:406fd2029f23 1310 #define BW_SPI_SR_RFDF(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_RFDF) = (v))
mbed_official 324:406fd2029f23 1311 /*@}*/
mbed_official 324:406fd2029f23 1312
mbed_official 324:406fd2029f23 1313 /*!
mbed_official 324:406fd2029f23 1314 * @name Register SPI_SR, field RFOF[19] (W1C)
mbed_official 324:406fd2029f23 1315 *
mbed_official 324:406fd2029f23 1316 * Indicates an overflow condition in the RX FIFO. The field is set when the RX
mbed_official 324:406fd2029f23 1317 * FIFO and shift register are full and a transfer is initiated. The bit remains
mbed_official 324:406fd2029f23 1318 * set until it is cleared by writing a 1 to it.
mbed_official 324:406fd2029f23 1319 *
mbed_official 324:406fd2029f23 1320 * Values:
mbed_official 324:406fd2029f23 1321 * - 0 - No Rx FIFO overflow.
mbed_official 324:406fd2029f23 1322 * - 1 - Rx FIFO overflow has occurred.
mbed_official 324:406fd2029f23 1323 */
mbed_official 324:406fd2029f23 1324 /*@{*/
mbed_official 324:406fd2029f23 1325 #define BP_SPI_SR_RFOF (19U) /*!< Bit position for SPI_SR_RFOF. */
mbed_official 324:406fd2029f23 1326 #define BM_SPI_SR_RFOF (0x00080000U) /*!< Bit mask for SPI_SR_RFOF. */
mbed_official 324:406fd2029f23 1327 #define BS_SPI_SR_RFOF (1U) /*!< Bit field size in bits for SPI_SR_RFOF. */
mbed_official 324:406fd2029f23 1328
mbed_official 324:406fd2029f23 1329 /*! @brief Read current value of the SPI_SR_RFOF field. */
mbed_official 324:406fd2029f23 1330 #define BR_SPI_SR_RFOF(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_RFOF))
mbed_official 324:406fd2029f23 1331
mbed_official 324:406fd2029f23 1332 /*! @brief Format value for bitfield SPI_SR_RFOF. */
mbed_official 324:406fd2029f23 1333 #define BF_SPI_SR_RFOF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_RFOF) & BM_SPI_SR_RFOF)
mbed_official 324:406fd2029f23 1334
mbed_official 324:406fd2029f23 1335 /*! @brief Set the RFOF field to a new value. */
mbed_official 324:406fd2029f23 1336 #define BW_SPI_SR_RFOF(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_RFOF) = (v))
mbed_official 324:406fd2029f23 1337 /*@}*/
mbed_official 324:406fd2029f23 1338
mbed_official 324:406fd2029f23 1339 /*!
mbed_official 324:406fd2029f23 1340 * @name Register SPI_SR, field TFFF[25] (W1C)
mbed_official 324:406fd2029f23 1341 *
mbed_official 324:406fd2029f23 1342 * Provides a method for the module to request more entries to be added to the
mbed_official 324:406fd2029f23 1343 * TX FIFO. The TFFF bit is set while the TX FIFO is not full. The TFFF bit can be
mbed_official 324:406fd2029f23 1344 * cleared by writing 1 to it or by acknowledgement from the DMA controller to
mbed_official 324:406fd2029f23 1345 * the TX FIFO full request.
mbed_official 324:406fd2029f23 1346 *
mbed_official 324:406fd2029f23 1347 * Values:
mbed_official 324:406fd2029f23 1348 * - 0 - TX FIFO is full.
mbed_official 324:406fd2029f23 1349 * - 1 - TX FIFO is not full.
mbed_official 324:406fd2029f23 1350 */
mbed_official 324:406fd2029f23 1351 /*@{*/
mbed_official 324:406fd2029f23 1352 #define BP_SPI_SR_TFFF (25U) /*!< Bit position for SPI_SR_TFFF. */
mbed_official 324:406fd2029f23 1353 #define BM_SPI_SR_TFFF (0x02000000U) /*!< Bit mask for SPI_SR_TFFF. */
mbed_official 324:406fd2029f23 1354 #define BS_SPI_SR_TFFF (1U) /*!< Bit field size in bits for SPI_SR_TFFF. */
mbed_official 324:406fd2029f23 1355
mbed_official 324:406fd2029f23 1356 /*! @brief Read current value of the SPI_SR_TFFF field. */
mbed_official 324:406fd2029f23 1357 #define BR_SPI_SR_TFFF(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TFFF))
mbed_official 324:406fd2029f23 1358
mbed_official 324:406fd2029f23 1359 /*! @brief Format value for bitfield SPI_SR_TFFF. */
mbed_official 324:406fd2029f23 1360 #define BF_SPI_SR_TFFF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_TFFF) & BM_SPI_SR_TFFF)
mbed_official 324:406fd2029f23 1361
mbed_official 324:406fd2029f23 1362 /*! @brief Set the TFFF field to a new value. */
mbed_official 324:406fd2029f23 1363 #define BW_SPI_SR_TFFF(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TFFF) = (v))
mbed_official 324:406fd2029f23 1364 /*@}*/
mbed_official 324:406fd2029f23 1365
mbed_official 324:406fd2029f23 1366 /*!
mbed_official 324:406fd2029f23 1367 * @name Register SPI_SR, field TFUF[27] (W1C)
mbed_official 324:406fd2029f23 1368 *
mbed_official 324:406fd2029f23 1369 * Indicates an underflow condition in the TX FIFO. The transmit underflow
mbed_official 324:406fd2029f23 1370 * condition is detected only for SPI blocks operating in Slave mode and SPI
mbed_official 324:406fd2029f23 1371 * configuration. TFUF is set when the TX FIFO of the module operating in SPI Slave mode
mbed_official 324:406fd2029f23 1372 * is empty and an external SPI master initiates a transfer. The TFUF bit remains
mbed_official 324:406fd2029f23 1373 * set until cleared by writing 1 to it.
mbed_official 324:406fd2029f23 1374 *
mbed_official 324:406fd2029f23 1375 * Values:
mbed_official 324:406fd2029f23 1376 * - 0 - No TX FIFO underflow.
mbed_official 324:406fd2029f23 1377 * - 1 - TX FIFO underflow has occurred.
mbed_official 324:406fd2029f23 1378 */
mbed_official 324:406fd2029f23 1379 /*@{*/
mbed_official 324:406fd2029f23 1380 #define BP_SPI_SR_TFUF (27U) /*!< Bit position for SPI_SR_TFUF. */
mbed_official 324:406fd2029f23 1381 #define BM_SPI_SR_TFUF (0x08000000U) /*!< Bit mask for SPI_SR_TFUF. */
mbed_official 324:406fd2029f23 1382 #define BS_SPI_SR_TFUF (1U) /*!< Bit field size in bits for SPI_SR_TFUF. */
mbed_official 324:406fd2029f23 1383
mbed_official 324:406fd2029f23 1384 /*! @brief Read current value of the SPI_SR_TFUF field. */
mbed_official 324:406fd2029f23 1385 #define BR_SPI_SR_TFUF(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TFUF))
mbed_official 324:406fd2029f23 1386
mbed_official 324:406fd2029f23 1387 /*! @brief Format value for bitfield SPI_SR_TFUF. */
mbed_official 324:406fd2029f23 1388 #define BF_SPI_SR_TFUF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_TFUF) & BM_SPI_SR_TFUF)
mbed_official 324:406fd2029f23 1389
mbed_official 324:406fd2029f23 1390 /*! @brief Set the TFUF field to a new value. */
mbed_official 324:406fd2029f23 1391 #define BW_SPI_SR_TFUF(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TFUF) = (v))
mbed_official 324:406fd2029f23 1392 /*@}*/
mbed_official 324:406fd2029f23 1393
mbed_official 324:406fd2029f23 1394 /*!
mbed_official 324:406fd2029f23 1395 * @name Register SPI_SR, field EOQF[28] (W1C)
mbed_official 324:406fd2029f23 1396 *
mbed_official 324:406fd2029f23 1397 * Indicates that the last entry in a queue has been transmitted when the module
mbed_official 324:406fd2029f23 1398 * is in Master mode. The EOQF bit is set when the TX FIFO entry has the EOQ bit
mbed_official 324:406fd2029f23 1399 * set in the command halfword and the end of the transfer is reached. The EOQF
mbed_official 324:406fd2029f23 1400 * bit remains set until cleared by writing a 1 to it. When the EOQF bit is set,
mbed_official 324:406fd2029f23 1401 * the TXRXS bit is automatically cleared.
mbed_official 324:406fd2029f23 1402 *
mbed_official 324:406fd2029f23 1403 * Values:
mbed_official 324:406fd2029f23 1404 * - 0 - EOQ is not set in the executing command.
mbed_official 324:406fd2029f23 1405 * - 1 - EOQ is set in the executing SPI command.
mbed_official 324:406fd2029f23 1406 */
mbed_official 324:406fd2029f23 1407 /*@{*/
mbed_official 324:406fd2029f23 1408 #define BP_SPI_SR_EOQF (28U) /*!< Bit position for SPI_SR_EOQF. */
mbed_official 324:406fd2029f23 1409 #define BM_SPI_SR_EOQF (0x10000000U) /*!< Bit mask for SPI_SR_EOQF. */
mbed_official 324:406fd2029f23 1410 #define BS_SPI_SR_EOQF (1U) /*!< Bit field size in bits for SPI_SR_EOQF. */
mbed_official 324:406fd2029f23 1411
mbed_official 324:406fd2029f23 1412 /*! @brief Read current value of the SPI_SR_EOQF field. */
mbed_official 324:406fd2029f23 1413 #define BR_SPI_SR_EOQF(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_EOQF))
mbed_official 324:406fd2029f23 1414
mbed_official 324:406fd2029f23 1415 /*! @brief Format value for bitfield SPI_SR_EOQF. */
mbed_official 324:406fd2029f23 1416 #define BF_SPI_SR_EOQF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_EOQF) & BM_SPI_SR_EOQF)
mbed_official 324:406fd2029f23 1417
mbed_official 324:406fd2029f23 1418 /*! @brief Set the EOQF field to a new value. */
mbed_official 324:406fd2029f23 1419 #define BW_SPI_SR_EOQF(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_EOQF) = (v))
mbed_official 324:406fd2029f23 1420 /*@}*/
mbed_official 324:406fd2029f23 1421
mbed_official 324:406fd2029f23 1422 /*!
mbed_official 324:406fd2029f23 1423 * @name Register SPI_SR, field TXRXS[30] (W1C)
mbed_official 324:406fd2029f23 1424 *
mbed_official 324:406fd2029f23 1425 * Reflects the run status of the module.
mbed_official 324:406fd2029f23 1426 *
mbed_official 324:406fd2029f23 1427 * Values:
mbed_official 324:406fd2029f23 1428 * - 0 - Transmit and receive operations are disabled (The module is in Stopped
mbed_official 324:406fd2029f23 1429 * state).
mbed_official 324:406fd2029f23 1430 * - 1 - Transmit and receive operations are enabled (The module is in Running
mbed_official 324:406fd2029f23 1431 * state).
mbed_official 324:406fd2029f23 1432 */
mbed_official 324:406fd2029f23 1433 /*@{*/
mbed_official 324:406fd2029f23 1434 #define BP_SPI_SR_TXRXS (30U) /*!< Bit position for SPI_SR_TXRXS. */
mbed_official 324:406fd2029f23 1435 #define BM_SPI_SR_TXRXS (0x40000000U) /*!< Bit mask for SPI_SR_TXRXS. */
mbed_official 324:406fd2029f23 1436 #define BS_SPI_SR_TXRXS (1U) /*!< Bit field size in bits for SPI_SR_TXRXS. */
mbed_official 324:406fd2029f23 1437
mbed_official 324:406fd2029f23 1438 /*! @brief Read current value of the SPI_SR_TXRXS field. */
mbed_official 324:406fd2029f23 1439 #define BR_SPI_SR_TXRXS(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TXRXS))
mbed_official 324:406fd2029f23 1440
mbed_official 324:406fd2029f23 1441 /*! @brief Format value for bitfield SPI_SR_TXRXS. */
mbed_official 324:406fd2029f23 1442 #define BF_SPI_SR_TXRXS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_TXRXS) & BM_SPI_SR_TXRXS)
mbed_official 324:406fd2029f23 1443
mbed_official 324:406fd2029f23 1444 /*! @brief Set the TXRXS field to a new value. */
mbed_official 324:406fd2029f23 1445 #define BW_SPI_SR_TXRXS(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TXRXS) = (v))
mbed_official 324:406fd2029f23 1446 /*@}*/
mbed_official 324:406fd2029f23 1447
mbed_official 324:406fd2029f23 1448 /*!
mbed_official 324:406fd2029f23 1449 * @name Register SPI_SR, field TCF[31] (W1C)
mbed_official 324:406fd2029f23 1450 *
mbed_official 324:406fd2029f23 1451 * Indicates that all bits in a frame have been shifted out. TCF remains set
mbed_official 324:406fd2029f23 1452 * until it is cleared by writing a 1 to it.
mbed_official 324:406fd2029f23 1453 *
mbed_official 324:406fd2029f23 1454 * Values:
mbed_official 324:406fd2029f23 1455 * - 0 - Transfer not complete.
mbed_official 324:406fd2029f23 1456 * - 1 - Transfer complete.
mbed_official 324:406fd2029f23 1457 */
mbed_official 324:406fd2029f23 1458 /*@{*/
mbed_official 324:406fd2029f23 1459 #define BP_SPI_SR_TCF (31U) /*!< Bit position for SPI_SR_TCF. */
mbed_official 324:406fd2029f23 1460 #define BM_SPI_SR_TCF (0x80000000U) /*!< Bit mask for SPI_SR_TCF. */
mbed_official 324:406fd2029f23 1461 #define BS_SPI_SR_TCF (1U) /*!< Bit field size in bits for SPI_SR_TCF. */
mbed_official 324:406fd2029f23 1462
mbed_official 324:406fd2029f23 1463 /*! @brief Read current value of the SPI_SR_TCF field. */
mbed_official 324:406fd2029f23 1464 #define BR_SPI_SR_TCF(x) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TCF))
mbed_official 324:406fd2029f23 1465
mbed_official 324:406fd2029f23 1466 /*! @brief Format value for bitfield SPI_SR_TCF. */
mbed_official 324:406fd2029f23 1467 #define BF_SPI_SR_TCF(v) ((uint32_t)((uint32_t)(v) << BP_SPI_SR_TCF) & BM_SPI_SR_TCF)
mbed_official 324:406fd2029f23 1468
mbed_official 324:406fd2029f23 1469 /*! @brief Set the TCF field to a new value. */
mbed_official 324:406fd2029f23 1470 #define BW_SPI_SR_TCF(x, v) (BITBAND_ACCESS32(HW_SPI_SR_ADDR(x), BP_SPI_SR_TCF) = (v))
mbed_official 324:406fd2029f23 1471 /*@}*/
mbed_official 324:406fd2029f23 1472
mbed_official 324:406fd2029f23 1473 /*******************************************************************************
mbed_official 324:406fd2029f23 1474 * HW_SPI_RSER - DMA/Interrupt Request Select and Enable Register
mbed_official 324:406fd2029f23 1475 ******************************************************************************/
mbed_official 324:406fd2029f23 1476
mbed_official 324:406fd2029f23 1477 /*!
mbed_official 324:406fd2029f23 1478 * @brief HW_SPI_RSER - DMA/Interrupt Request Select and Enable Register (RW)
mbed_official 324:406fd2029f23 1479 *
mbed_official 324:406fd2029f23 1480 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 1481 *
mbed_official 324:406fd2029f23 1482 * RSER controls DMA and interrupt requests. Do not write to the RSER while the
mbed_official 324:406fd2029f23 1483 * module is in the Running state.
mbed_official 324:406fd2029f23 1484 */
mbed_official 324:406fd2029f23 1485 typedef union _hw_spi_rser
mbed_official 324:406fd2029f23 1486 {
mbed_official 324:406fd2029f23 1487 uint32_t U;
mbed_official 324:406fd2029f23 1488 struct _hw_spi_rser_bitfields
mbed_official 324:406fd2029f23 1489 {
mbed_official 324:406fd2029f23 1490 uint32_t RESERVED0 : 16; /*!< [15:0] */
mbed_official 324:406fd2029f23 1491 uint32_t RFDF_DIRS : 1; /*!< [16] Receive FIFO Drain DMA or Interrupt
mbed_official 324:406fd2029f23 1492 * Request Select */
mbed_official 324:406fd2029f23 1493 uint32_t RFDF_RE : 1; /*!< [17] Receive FIFO Drain Request Enable */
mbed_official 324:406fd2029f23 1494 uint32_t RESERVED1 : 1; /*!< [18] */
mbed_official 324:406fd2029f23 1495 uint32_t RFOF_RE : 1; /*!< [19] Receive FIFO Overflow Request Enable
mbed_official 324:406fd2029f23 1496 * */
mbed_official 324:406fd2029f23 1497 uint32_t RESERVED2 : 4; /*!< [23:20] */
mbed_official 324:406fd2029f23 1498 uint32_t TFFF_DIRS : 1; /*!< [24] Transmit FIFO Fill DMA or Interrupt
mbed_official 324:406fd2029f23 1499 * Request Select */
mbed_official 324:406fd2029f23 1500 uint32_t TFFF_RE : 1; /*!< [25] Transmit FIFO Fill Request Enable */
mbed_official 324:406fd2029f23 1501 uint32_t RESERVED3 : 1; /*!< [26] */
mbed_official 324:406fd2029f23 1502 uint32_t TFUF_RE : 1; /*!< [27] Transmit FIFO Underflow Request
mbed_official 324:406fd2029f23 1503 * Enable */
mbed_official 324:406fd2029f23 1504 uint32_t EOQF_RE : 1; /*!< [28] Finished Request Enable */
mbed_official 324:406fd2029f23 1505 uint32_t RESERVED4 : 2; /*!< [30:29] */
mbed_official 324:406fd2029f23 1506 uint32_t TCF_RE : 1; /*!< [31] Transmission Complete Request Enable */
mbed_official 324:406fd2029f23 1507 } B;
mbed_official 324:406fd2029f23 1508 } hw_spi_rser_t;
mbed_official 324:406fd2029f23 1509
mbed_official 324:406fd2029f23 1510 /*!
mbed_official 324:406fd2029f23 1511 * @name Constants and macros for entire SPI_RSER register
mbed_official 324:406fd2029f23 1512 */
mbed_official 324:406fd2029f23 1513 /*@{*/
mbed_official 324:406fd2029f23 1514 #define HW_SPI_RSER_ADDR(x) ((x) + 0x30U)
mbed_official 324:406fd2029f23 1515
mbed_official 324:406fd2029f23 1516 #define HW_SPI_RSER(x) (*(__IO hw_spi_rser_t *) HW_SPI_RSER_ADDR(x))
mbed_official 324:406fd2029f23 1517 #define HW_SPI_RSER_RD(x) (HW_SPI_RSER(x).U)
mbed_official 324:406fd2029f23 1518 #define HW_SPI_RSER_WR(x, v) (HW_SPI_RSER(x).U = (v))
mbed_official 324:406fd2029f23 1519 #define HW_SPI_RSER_SET(x, v) (HW_SPI_RSER_WR(x, HW_SPI_RSER_RD(x) | (v)))
mbed_official 324:406fd2029f23 1520 #define HW_SPI_RSER_CLR(x, v) (HW_SPI_RSER_WR(x, HW_SPI_RSER_RD(x) & ~(v)))
mbed_official 324:406fd2029f23 1521 #define HW_SPI_RSER_TOG(x, v) (HW_SPI_RSER_WR(x, HW_SPI_RSER_RD(x) ^ (v)))
mbed_official 324:406fd2029f23 1522 /*@}*/
mbed_official 324:406fd2029f23 1523
mbed_official 324:406fd2029f23 1524 /*
mbed_official 324:406fd2029f23 1525 * Constants & macros for individual SPI_RSER bitfields
mbed_official 324:406fd2029f23 1526 */
mbed_official 324:406fd2029f23 1527
mbed_official 324:406fd2029f23 1528 /*!
mbed_official 324:406fd2029f23 1529 * @name Register SPI_RSER, field RFDF_DIRS[16] (RW)
mbed_official 324:406fd2029f23 1530 *
mbed_official 324:406fd2029f23 1531 * Selects between generating a DMA request or an interrupt request. When the
mbed_official 324:406fd2029f23 1532 * RFDF flag bit in the SR is set, and the RFDF_RE bit in the RSER is set, the
mbed_official 324:406fd2029f23 1533 * RFDF_DIRS bit selects between generating an interrupt request or a DMA request.
mbed_official 324:406fd2029f23 1534 *
mbed_official 324:406fd2029f23 1535 * Values:
mbed_official 324:406fd2029f23 1536 * - 0 - Interrupt request.
mbed_official 324:406fd2029f23 1537 * - 1 - DMA request.
mbed_official 324:406fd2029f23 1538 */
mbed_official 324:406fd2029f23 1539 /*@{*/
mbed_official 324:406fd2029f23 1540 #define BP_SPI_RSER_RFDF_DIRS (16U) /*!< Bit position for SPI_RSER_RFDF_DIRS. */
mbed_official 324:406fd2029f23 1541 #define BM_SPI_RSER_RFDF_DIRS (0x00010000U) /*!< Bit mask for SPI_RSER_RFDF_DIRS. */
mbed_official 324:406fd2029f23 1542 #define BS_SPI_RSER_RFDF_DIRS (1U) /*!< Bit field size in bits for SPI_RSER_RFDF_DIRS. */
mbed_official 324:406fd2029f23 1543
mbed_official 324:406fd2029f23 1544 /*! @brief Read current value of the SPI_RSER_RFDF_DIRS field. */
mbed_official 324:406fd2029f23 1545 #define BR_SPI_RSER_RFDF_DIRS(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_RFDF_DIRS))
mbed_official 324:406fd2029f23 1546
mbed_official 324:406fd2029f23 1547 /*! @brief Format value for bitfield SPI_RSER_RFDF_DIRS. */
mbed_official 324:406fd2029f23 1548 #define BF_SPI_RSER_RFDF_DIRS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_RFDF_DIRS) & BM_SPI_RSER_RFDF_DIRS)
mbed_official 324:406fd2029f23 1549
mbed_official 324:406fd2029f23 1550 /*! @brief Set the RFDF_DIRS field to a new value. */
mbed_official 324:406fd2029f23 1551 #define BW_SPI_RSER_RFDF_DIRS(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_RFDF_DIRS) = (v))
mbed_official 324:406fd2029f23 1552 /*@}*/
mbed_official 324:406fd2029f23 1553
mbed_official 324:406fd2029f23 1554 /*!
mbed_official 324:406fd2029f23 1555 * @name Register SPI_RSER, field RFDF_RE[17] (RW)
mbed_official 324:406fd2029f23 1556 *
mbed_official 324:406fd2029f23 1557 * Enables the RFDF flag in the SR to generate a request. The RFDF_DIRS bit
mbed_official 324:406fd2029f23 1558 * selects between generating an interrupt request or a DMA request.
mbed_official 324:406fd2029f23 1559 *
mbed_official 324:406fd2029f23 1560 * Values:
mbed_official 324:406fd2029f23 1561 * - 0 - RFDF interrupt or DMA requests are disabled.
mbed_official 324:406fd2029f23 1562 * - 1 - RFDF interrupt or DMA requests are enabled.
mbed_official 324:406fd2029f23 1563 */
mbed_official 324:406fd2029f23 1564 /*@{*/
mbed_official 324:406fd2029f23 1565 #define BP_SPI_RSER_RFDF_RE (17U) /*!< Bit position for SPI_RSER_RFDF_RE. */
mbed_official 324:406fd2029f23 1566 #define BM_SPI_RSER_RFDF_RE (0x00020000U) /*!< Bit mask for SPI_RSER_RFDF_RE. */
mbed_official 324:406fd2029f23 1567 #define BS_SPI_RSER_RFDF_RE (1U) /*!< Bit field size in bits for SPI_RSER_RFDF_RE. */
mbed_official 324:406fd2029f23 1568
mbed_official 324:406fd2029f23 1569 /*! @brief Read current value of the SPI_RSER_RFDF_RE field. */
mbed_official 324:406fd2029f23 1570 #define BR_SPI_RSER_RFDF_RE(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_RFDF_RE))
mbed_official 324:406fd2029f23 1571
mbed_official 324:406fd2029f23 1572 /*! @brief Format value for bitfield SPI_RSER_RFDF_RE. */
mbed_official 324:406fd2029f23 1573 #define BF_SPI_RSER_RFDF_RE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_RFDF_RE) & BM_SPI_RSER_RFDF_RE)
mbed_official 324:406fd2029f23 1574
mbed_official 324:406fd2029f23 1575 /*! @brief Set the RFDF_RE field to a new value. */
mbed_official 324:406fd2029f23 1576 #define BW_SPI_RSER_RFDF_RE(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_RFDF_RE) = (v))
mbed_official 324:406fd2029f23 1577 /*@}*/
mbed_official 324:406fd2029f23 1578
mbed_official 324:406fd2029f23 1579 /*!
mbed_official 324:406fd2029f23 1580 * @name Register SPI_RSER, field RFOF_RE[19] (RW)
mbed_official 324:406fd2029f23 1581 *
mbed_official 324:406fd2029f23 1582 * Enables the RFOF flag in the SR to generate an interrupt request.
mbed_official 324:406fd2029f23 1583 *
mbed_official 324:406fd2029f23 1584 * Values:
mbed_official 324:406fd2029f23 1585 * - 0 - RFOF interrupt requests are disabled.
mbed_official 324:406fd2029f23 1586 * - 1 - RFOF interrupt requests are enabled.
mbed_official 324:406fd2029f23 1587 */
mbed_official 324:406fd2029f23 1588 /*@{*/
mbed_official 324:406fd2029f23 1589 #define BP_SPI_RSER_RFOF_RE (19U) /*!< Bit position for SPI_RSER_RFOF_RE. */
mbed_official 324:406fd2029f23 1590 #define BM_SPI_RSER_RFOF_RE (0x00080000U) /*!< Bit mask for SPI_RSER_RFOF_RE. */
mbed_official 324:406fd2029f23 1591 #define BS_SPI_RSER_RFOF_RE (1U) /*!< Bit field size in bits for SPI_RSER_RFOF_RE. */
mbed_official 324:406fd2029f23 1592
mbed_official 324:406fd2029f23 1593 /*! @brief Read current value of the SPI_RSER_RFOF_RE field. */
mbed_official 324:406fd2029f23 1594 #define BR_SPI_RSER_RFOF_RE(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_RFOF_RE))
mbed_official 324:406fd2029f23 1595
mbed_official 324:406fd2029f23 1596 /*! @brief Format value for bitfield SPI_RSER_RFOF_RE. */
mbed_official 324:406fd2029f23 1597 #define BF_SPI_RSER_RFOF_RE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_RFOF_RE) & BM_SPI_RSER_RFOF_RE)
mbed_official 324:406fd2029f23 1598
mbed_official 324:406fd2029f23 1599 /*! @brief Set the RFOF_RE field to a new value. */
mbed_official 324:406fd2029f23 1600 #define BW_SPI_RSER_RFOF_RE(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_RFOF_RE) = (v))
mbed_official 324:406fd2029f23 1601 /*@}*/
mbed_official 324:406fd2029f23 1602
mbed_official 324:406fd2029f23 1603 /*!
mbed_official 324:406fd2029f23 1604 * @name Register SPI_RSER, field TFFF_DIRS[24] (RW)
mbed_official 324:406fd2029f23 1605 *
mbed_official 324:406fd2029f23 1606 * Selects between generating a DMA request or an interrupt request. When
mbed_official 324:406fd2029f23 1607 * SR[TFFF] and RSER[TFFF_RE] are set, this field selects between generating an
mbed_official 324:406fd2029f23 1608 * interrupt request or a DMA request.
mbed_official 324:406fd2029f23 1609 *
mbed_official 324:406fd2029f23 1610 * Values:
mbed_official 324:406fd2029f23 1611 * - 0 - TFFF flag generates interrupt requests.
mbed_official 324:406fd2029f23 1612 * - 1 - TFFF flag generates DMA requests.
mbed_official 324:406fd2029f23 1613 */
mbed_official 324:406fd2029f23 1614 /*@{*/
mbed_official 324:406fd2029f23 1615 #define BP_SPI_RSER_TFFF_DIRS (24U) /*!< Bit position for SPI_RSER_TFFF_DIRS. */
mbed_official 324:406fd2029f23 1616 #define BM_SPI_RSER_TFFF_DIRS (0x01000000U) /*!< Bit mask for SPI_RSER_TFFF_DIRS. */
mbed_official 324:406fd2029f23 1617 #define BS_SPI_RSER_TFFF_DIRS (1U) /*!< Bit field size in bits for SPI_RSER_TFFF_DIRS. */
mbed_official 324:406fd2029f23 1618
mbed_official 324:406fd2029f23 1619 /*! @brief Read current value of the SPI_RSER_TFFF_DIRS field. */
mbed_official 324:406fd2029f23 1620 #define BR_SPI_RSER_TFFF_DIRS(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TFFF_DIRS))
mbed_official 324:406fd2029f23 1621
mbed_official 324:406fd2029f23 1622 /*! @brief Format value for bitfield SPI_RSER_TFFF_DIRS. */
mbed_official 324:406fd2029f23 1623 #define BF_SPI_RSER_TFFF_DIRS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_TFFF_DIRS) & BM_SPI_RSER_TFFF_DIRS)
mbed_official 324:406fd2029f23 1624
mbed_official 324:406fd2029f23 1625 /*! @brief Set the TFFF_DIRS field to a new value. */
mbed_official 324:406fd2029f23 1626 #define BW_SPI_RSER_TFFF_DIRS(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TFFF_DIRS) = (v))
mbed_official 324:406fd2029f23 1627 /*@}*/
mbed_official 324:406fd2029f23 1628
mbed_official 324:406fd2029f23 1629 /*!
mbed_official 324:406fd2029f23 1630 * @name Register SPI_RSER, field TFFF_RE[25] (RW)
mbed_official 324:406fd2029f23 1631 *
mbed_official 324:406fd2029f23 1632 * Enables the TFFF flag in the SR to generate a request. The TFFF_DIRS bit
mbed_official 324:406fd2029f23 1633 * selects between generating an interrupt request or a DMA request.
mbed_official 324:406fd2029f23 1634 *
mbed_official 324:406fd2029f23 1635 * Values:
mbed_official 324:406fd2029f23 1636 * - 0 - TFFF interrupts or DMA requests are disabled.
mbed_official 324:406fd2029f23 1637 * - 1 - TFFF interrupts or DMA requests are enabled.
mbed_official 324:406fd2029f23 1638 */
mbed_official 324:406fd2029f23 1639 /*@{*/
mbed_official 324:406fd2029f23 1640 #define BP_SPI_RSER_TFFF_RE (25U) /*!< Bit position for SPI_RSER_TFFF_RE. */
mbed_official 324:406fd2029f23 1641 #define BM_SPI_RSER_TFFF_RE (0x02000000U) /*!< Bit mask for SPI_RSER_TFFF_RE. */
mbed_official 324:406fd2029f23 1642 #define BS_SPI_RSER_TFFF_RE (1U) /*!< Bit field size in bits for SPI_RSER_TFFF_RE. */
mbed_official 324:406fd2029f23 1643
mbed_official 324:406fd2029f23 1644 /*! @brief Read current value of the SPI_RSER_TFFF_RE field. */
mbed_official 324:406fd2029f23 1645 #define BR_SPI_RSER_TFFF_RE(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TFFF_RE))
mbed_official 324:406fd2029f23 1646
mbed_official 324:406fd2029f23 1647 /*! @brief Format value for bitfield SPI_RSER_TFFF_RE. */
mbed_official 324:406fd2029f23 1648 #define BF_SPI_RSER_TFFF_RE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_TFFF_RE) & BM_SPI_RSER_TFFF_RE)
mbed_official 324:406fd2029f23 1649
mbed_official 324:406fd2029f23 1650 /*! @brief Set the TFFF_RE field to a new value. */
mbed_official 324:406fd2029f23 1651 #define BW_SPI_RSER_TFFF_RE(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TFFF_RE) = (v))
mbed_official 324:406fd2029f23 1652 /*@}*/
mbed_official 324:406fd2029f23 1653
mbed_official 324:406fd2029f23 1654 /*!
mbed_official 324:406fd2029f23 1655 * @name Register SPI_RSER, field TFUF_RE[27] (RW)
mbed_official 324:406fd2029f23 1656 *
mbed_official 324:406fd2029f23 1657 * Enables the TFUF flag in the SR to generate an interrupt request.
mbed_official 324:406fd2029f23 1658 *
mbed_official 324:406fd2029f23 1659 * Values:
mbed_official 324:406fd2029f23 1660 * - 0 - TFUF interrupt requests are disabled.
mbed_official 324:406fd2029f23 1661 * - 1 - TFUF interrupt requests are enabled.
mbed_official 324:406fd2029f23 1662 */
mbed_official 324:406fd2029f23 1663 /*@{*/
mbed_official 324:406fd2029f23 1664 #define BP_SPI_RSER_TFUF_RE (27U) /*!< Bit position for SPI_RSER_TFUF_RE. */
mbed_official 324:406fd2029f23 1665 #define BM_SPI_RSER_TFUF_RE (0x08000000U) /*!< Bit mask for SPI_RSER_TFUF_RE. */
mbed_official 324:406fd2029f23 1666 #define BS_SPI_RSER_TFUF_RE (1U) /*!< Bit field size in bits for SPI_RSER_TFUF_RE. */
mbed_official 324:406fd2029f23 1667
mbed_official 324:406fd2029f23 1668 /*! @brief Read current value of the SPI_RSER_TFUF_RE field. */
mbed_official 324:406fd2029f23 1669 #define BR_SPI_RSER_TFUF_RE(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TFUF_RE))
mbed_official 324:406fd2029f23 1670
mbed_official 324:406fd2029f23 1671 /*! @brief Format value for bitfield SPI_RSER_TFUF_RE. */
mbed_official 324:406fd2029f23 1672 #define BF_SPI_RSER_TFUF_RE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_TFUF_RE) & BM_SPI_RSER_TFUF_RE)
mbed_official 324:406fd2029f23 1673
mbed_official 324:406fd2029f23 1674 /*! @brief Set the TFUF_RE field to a new value. */
mbed_official 324:406fd2029f23 1675 #define BW_SPI_RSER_TFUF_RE(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TFUF_RE) = (v))
mbed_official 324:406fd2029f23 1676 /*@}*/
mbed_official 324:406fd2029f23 1677
mbed_official 324:406fd2029f23 1678 /*!
mbed_official 324:406fd2029f23 1679 * @name Register SPI_RSER, field EOQF_RE[28] (RW)
mbed_official 324:406fd2029f23 1680 *
mbed_official 324:406fd2029f23 1681 * Enables the EOQF flag in the SR to generate an interrupt request.
mbed_official 324:406fd2029f23 1682 *
mbed_official 324:406fd2029f23 1683 * Values:
mbed_official 324:406fd2029f23 1684 * - 0 - EOQF interrupt requests are disabled.
mbed_official 324:406fd2029f23 1685 * - 1 - EOQF interrupt requests are enabled.
mbed_official 324:406fd2029f23 1686 */
mbed_official 324:406fd2029f23 1687 /*@{*/
mbed_official 324:406fd2029f23 1688 #define BP_SPI_RSER_EOQF_RE (28U) /*!< Bit position for SPI_RSER_EOQF_RE. */
mbed_official 324:406fd2029f23 1689 #define BM_SPI_RSER_EOQF_RE (0x10000000U) /*!< Bit mask for SPI_RSER_EOQF_RE. */
mbed_official 324:406fd2029f23 1690 #define BS_SPI_RSER_EOQF_RE (1U) /*!< Bit field size in bits for SPI_RSER_EOQF_RE. */
mbed_official 324:406fd2029f23 1691
mbed_official 324:406fd2029f23 1692 /*! @brief Read current value of the SPI_RSER_EOQF_RE field. */
mbed_official 324:406fd2029f23 1693 #define BR_SPI_RSER_EOQF_RE(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_EOQF_RE))
mbed_official 324:406fd2029f23 1694
mbed_official 324:406fd2029f23 1695 /*! @brief Format value for bitfield SPI_RSER_EOQF_RE. */
mbed_official 324:406fd2029f23 1696 #define BF_SPI_RSER_EOQF_RE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_EOQF_RE) & BM_SPI_RSER_EOQF_RE)
mbed_official 324:406fd2029f23 1697
mbed_official 324:406fd2029f23 1698 /*! @brief Set the EOQF_RE field to a new value. */
mbed_official 324:406fd2029f23 1699 #define BW_SPI_RSER_EOQF_RE(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_EOQF_RE) = (v))
mbed_official 324:406fd2029f23 1700 /*@}*/
mbed_official 324:406fd2029f23 1701
mbed_official 324:406fd2029f23 1702 /*!
mbed_official 324:406fd2029f23 1703 * @name Register SPI_RSER, field TCF_RE[31] (RW)
mbed_official 324:406fd2029f23 1704 *
mbed_official 324:406fd2029f23 1705 * Enables TCF flag in the SR to generate an interrupt request.
mbed_official 324:406fd2029f23 1706 *
mbed_official 324:406fd2029f23 1707 * Values:
mbed_official 324:406fd2029f23 1708 * - 0 - TCF interrupt requests are disabled.
mbed_official 324:406fd2029f23 1709 * - 1 - TCF interrupt requests are enabled.
mbed_official 324:406fd2029f23 1710 */
mbed_official 324:406fd2029f23 1711 /*@{*/
mbed_official 324:406fd2029f23 1712 #define BP_SPI_RSER_TCF_RE (31U) /*!< Bit position for SPI_RSER_TCF_RE. */
mbed_official 324:406fd2029f23 1713 #define BM_SPI_RSER_TCF_RE (0x80000000U) /*!< Bit mask for SPI_RSER_TCF_RE. */
mbed_official 324:406fd2029f23 1714 #define BS_SPI_RSER_TCF_RE (1U) /*!< Bit field size in bits for SPI_RSER_TCF_RE. */
mbed_official 324:406fd2029f23 1715
mbed_official 324:406fd2029f23 1716 /*! @brief Read current value of the SPI_RSER_TCF_RE field. */
mbed_official 324:406fd2029f23 1717 #define BR_SPI_RSER_TCF_RE(x) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TCF_RE))
mbed_official 324:406fd2029f23 1718
mbed_official 324:406fd2029f23 1719 /*! @brief Format value for bitfield SPI_RSER_TCF_RE. */
mbed_official 324:406fd2029f23 1720 #define BF_SPI_RSER_TCF_RE(v) ((uint32_t)((uint32_t)(v) << BP_SPI_RSER_TCF_RE) & BM_SPI_RSER_TCF_RE)
mbed_official 324:406fd2029f23 1721
mbed_official 324:406fd2029f23 1722 /*! @brief Set the TCF_RE field to a new value. */
mbed_official 324:406fd2029f23 1723 #define BW_SPI_RSER_TCF_RE(x, v) (BITBAND_ACCESS32(HW_SPI_RSER_ADDR(x), BP_SPI_RSER_TCF_RE) = (v))
mbed_official 324:406fd2029f23 1724 /*@}*/
mbed_official 324:406fd2029f23 1725
mbed_official 324:406fd2029f23 1726 /*******************************************************************************
mbed_official 324:406fd2029f23 1727 * HW_SPI_PUSHR - PUSH TX FIFO Register In Master Mode
mbed_official 324:406fd2029f23 1728 ******************************************************************************/
mbed_official 324:406fd2029f23 1729
mbed_official 324:406fd2029f23 1730 /*!
mbed_official 324:406fd2029f23 1731 * @brief HW_SPI_PUSHR - PUSH TX FIFO Register In Master Mode (RW)
mbed_official 324:406fd2029f23 1732 *
mbed_official 324:406fd2029f23 1733 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 1734 *
mbed_official 324:406fd2029f23 1735 * Specifies data to be transferred to the TX FIFO. An 8- or 16-bit write access
mbed_official 324:406fd2029f23 1736 * transfers all 32 bits to the TX FIFO. In Master mode, the register transfers
mbed_official 324:406fd2029f23 1737 * 16 bits of data and 16 bits of command information. In Slave mode, all 32 bits
mbed_official 324:406fd2029f23 1738 * can be used as data, supporting up to 32-bit frame operation. A read access
mbed_official 324:406fd2029f23 1739 * of PUSHR returns the topmost TX FIFO entry. When the module is disabled,
mbed_official 324:406fd2029f23 1740 * writing to this register does not update the FIFO. Therefore, any reads performed
mbed_official 324:406fd2029f23 1741 * while the module is disabled return the last PUSHR write performed while the
mbed_official 324:406fd2029f23 1742 * module was still enabled.
mbed_official 324:406fd2029f23 1743 */
mbed_official 324:406fd2029f23 1744 typedef union _hw_spi_pushr
mbed_official 324:406fd2029f23 1745 {
mbed_official 324:406fd2029f23 1746 uint32_t U;
mbed_official 324:406fd2029f23 1747 struct _hw_spi_pushr_bitfields
mbed_official 324:406fd2029f23 1748 {
mbed_official 324:406fd2029f23 1749 uint32_t TXDATA : 16; /*!< [15:0] Transmit Data */
mbed_official 324:406fd2029f23 1750 uint32_t PCS : 6; /*!< [21:16] */
mbed_official 324:406fd2029f23 1751 uint32_t RESERVED0 : 4; /*!< [25:22] */
mbed_official 324:406fd2029f23 1752 uint32_t CTCNT : 1; /*!< [26] Clear Transfer Counter */
mbed_official 324:406fd2029f23 1753 uint32_t EOQ : 1; /*!< [27] End Of Queue */
mbed_official 324:406fd2029f23 1754 uint32_t CTAS : 3; /*!< [30:28] Clock and Transfer Attributes Select
mbed_official 324:406fd2029f23 1755 * */
mbed_official 324:406fd2029f23 1756 uint32_t CONT : 1; /*!< [31] Continuous Peripheral Chip Select Enable
mbed_official 324:406fd2029f23 1757 * */
mbed_official 324:406fd2029f23 1758 } B;
mbed_official 324:406fd2029f23 1759 } hw_spi_pushr_t;
mbed_official 324:406fd2029f23 1760
mbed_official 324:406fd2029f23 1761 /*!
mbed_official 324:406fd2029f23 1762 * @name Constants and macros for entire SPI_PUSHR register
mbed_official 324:406fd2029f23 1763 */
mbed_official 324:406fd2029f23 1764 /*@{*/
mbed_official 324:406fd2029f23 1765 #define HW_SPI_PUSHR_ADDR(x) ((x) + 0x34U)
mbed_official 324:406fd2029f23 1766
mbed_official 324:406fd2029f23 1767 #define HW_SPI_PUSHR(x) (*(__IO hw_spi_pushr_t *) HW_SPI_PUSHR_ADDR(x))
mbed_official 324:406fd2029f23 1768 #define HW_SPI_PUSHR_RD(x) (HW_SPI_PUSHR(x).U)
mbed_official 324:406fd2029f23 1769 #define HW_SPI_PUSHR_WR(x, v) (HW_SPI_PUSHR(x).U = (v))
mbed_official 324:406fd2029f23 1770 #define HW_SPI_PUSHR_SET(x, v) (HW_SPI_PUSHR_WR(x, HW_SPI_PUSHR_RD(x) | (v)))
mbed_official 324:406fd2029f23 1771 #define HW_SPI_PUSHR_CLR(x, v) (HW_SPI_PUSHR_WR(x, HW_SPI_PUSHR_RD(x) & ~(v)))
mbed_official 324:406fd2029f23 1772 #define HW_SPI_PUSHR_TOG(x, v) (HW_SPI_PUSHR_WR(x, HW_SPI_PUSHR_RD(x) ^ (v)))
mbed_official 324:406fd2029f23 1773 /*@}*/
mbed_official 324:406fd2029f23 1774
mbed_official 324:406fd2029f23 1775 /*
mbed_official 324:406fd2029f23 1776 * Constants & macros for individual SPI_PUSHR bitfields
mbed_official 324:406fd2029f23 1777 */
mbed_official 324:406fd2029f23 1778
mbed_official 324:406fd2029f23 1779 /*!
mbed_official 324:406fd2029f23 1780 * @name Register SPI_PUSHR, field TXDATA[15:0] (RW)
mbed_official 324:406fd2029f23 1781 *
mbed_official 324:406fd2029f23 1782 * Holds SPI data to be transferred according to the associated SPI command.
mbed_official 324:406fd2029f23 1783 */
mbed_official 324:406fd2029f23 1784 /*@{*/
mbed_official 324:406fd2029f23 1785 #define BP_SPI_PUSHR_TXDATA (0U) /*!< Bit position for SPI_PUSHR_TXDATA. */
mbed_official 324:406fd2029f23 1786 #define BM_SPI_PUSHR_TXDATA (0x0000FFFFU) /*!< Bit mask for SPI_PUSHR_TXDATA. */
mbed_official 324:406fd2029f23 1787 #define BS_SPI_PUSHR_TXDATA (16U) /*!< Bit field size in bits for SPI_PUSHR_TXDATA. */
mbed_official 324:406fd2029f23 1788
mbed_official 324:406fd2029f23 1789 /*! @brief Read current value of the SPI_PUSHR_TXDATA field. */
mbed_official 324:406fd2029f23 1790 #define BR_SPI_PUSHR_TXDATA(x) (HW_SPI_PUSHR(x).B.TXDATA)
mbed_official 324:406fd2029f23 1791
mbed_official 324:406fd2029f23 1792 /*! @brief Format value for bitfield SPI_PUSHR_TXDATA. */
mbed_official 324:406fd2029f23 1793 #define BF_SPI_PUSHR_TXDATA(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_TXDATA) & BM_SPI_PUSHR_TXDATA)
mbed_official 324:406fd2029f23 1794
mbed_official 324:406fd2029f23 1795 /*! @brief Set the TXDATA field to a new value. */
mbed_official 324:406fd2029f23 1796 #define BW_SPI_PUSHR_TXDATA(x, v) (HW_SPI_PUSHR_WR(x, (HW_SPI_PUSHR_RD(x) & ~BM_SPI_PUSHR_TXDATA) | BF_SPI_PUSHR_TXDATA(v)))
mbed_official 324:406fd2029f23 1797 /*@}*/
mbed_official 324:406fd2029f23 1798
mbed_official 324:406fd2029f23 1799 /*!
mbed_official 324:406fd2029f23 1800 * @name Register SPI_PUSHR, field PCS[21:16] (RW)
mbed_official 324:406fd2029f23 1801 *
mbed_official 324:406fd2029f23 1802 * Select which PCS signals are to be asserted for the transfer. Refer to the
mbed_official 324:406fd2029f23 1803 * chip configuration details for the number of PCS signals used in this MCU.
mbed_official 324:406fd2029f23 1804 *
mbed_official 324:406fd2029f23 1805 * Values:
mbed_official 324:406fd2029f23 1806 * - 0 - Negate the PCS[x] signal.
mbed_official 324:406fd2029f23 1807 * - 1 - Assert the PCS[x] signal.
mbed_official 324:406fd2029f23 1808 */
mbed_official 324:406fd2029f23 1809 /*@{*/
mbed_official 324:406fd2029f23 1810 #define BP_SPI_PUSHR_PCS (16U) /*!< Bit position for SPI_PUSHR_PCS. */
mbed_official 324:406fd2029f23 1811 #define BM_SPI_PUSHR_PCS (0x003F0000U) /*!< Bit mask for SPI_PUSHR_PCS. */
mbed_official 324:406fd2029f23 1812 #define BS_SPI_PUSHR_PCS (6U) /*!< Bit field size in bits for SPI_PUSHR_PCS. */
mbed_official 324:406fd2029f23 1813
mbed_official 324:406fd2029f23 1814 /*! @brief Read current value of the SPI_PUSHR_PCS field. */
mbed_official 324:406fd2029f23 1815 #define BR_SPI_PUSHR_PCS(x) (HW_SPI_PUSHR(x).B.PCS)
mbed_official 324:406fd2029f23 1816
mbed_official 324:406fd2029f23 1817 /*! @brief Format value for bitfield SPI_PUSHR_PCS. */
mbed_official 324:406fd2029f23 1818 #define BF_SPI_PUSHR_PCS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_PCS) & BM_SPI_PUSHR_PCS)
mbed_official 324:406fd2029f23 1819
mbed_official 324:406fd2029f23 1820 /*! @brief Set the PCS field to a new value. */
mbed_official 324:406fd2029f23 1821 #define BW_SPI_PUSHR_PCS(x, v) (HW_SPI_PUSHR_WR(x, (HW_SPI_PUSHR_RD(x) & ~BM_SPI_PUSHR_PCS) | BF_SPI_PUSHR_PCS(v)))
mbed_official 324:406fd2029f23 1822 /*@}*/
mbed_official 324:406fd2029f23 1823
mbed_official 324:406fd2029f23 1824 /*!
mbed_official 324:406fd2029f23 1825 * @name Register SPI_PUSHR, field CTCNT[26] (RW)
mbed_official 324:406fd2029f23 1826 *
mbed_official 324:406fd2029f23 1827 * Clears the TCNT field in the TCR register. The TCNT field is cleared before
mbed_official 324:406fd2029f23 1828 * the module starts transmitting the current SPI frame.
mbed_official 324:406fd2029f23 1829 *
mbed_official 324:406fd2029f23 1830 * Values:
mbed_official 324:406fd2029f23 1831 * - 0 - Do not clear the TCR[TCNT] field.
mbed_official 324:406fd2029f23 1832 * - 1 - Clear the TCR[TCNT] field.
mbed_official 324:406fd2029f23 1833 */
mbed_official 324:406fd2029f23 1834 /*@{*/
mbed_official 324:406fd2029f23 1835 #define BP_SPI_PUSHR_CTCNT (26U) /*!< Bit position for SPI_PUSHR_CTCNT. */
mbed_official 324:406fd2029f23 1836 #define BM_SPI_PUSHR_CTCNT (0x04000000U) /*!< Bit mask for SPI_PUSHR_CTCNT. */
mbed_official 324:406fd2029f23 1837 #define BS_SPI_PUSHR_CTCNT (1U) /*!< Bit field size in bits for SPI_PUSHR_CTCNT. */
mbed_official 324:406fd2029f23 1838
mbed_official 324:406fd2029f23 1839 /*! @brief Read current value of the SPI_PUSHR_CTCNT field. */
mbed_official 324:406fd2029f23 1840 #define BR_SPI_PUSHR_CTCNT(x) (BITBAND_ACCESS32(HW_SPI_PUSHR_ADDR(x), BP_SPI_PUSHR_CTCNT))
mbed_official 324:406fd2029f23 1841
mbed_official 324:406fd2029f23 1842 /*! @brief Format value for bitfield SPI_PUSHR_CTCNT. */
mbed_official 324:406fd2029f23 1843 #define BF_SPI_PUSHR_CTCNT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_CTCNT) & BM_SPI_PUSHR_CTCNT)
mbed_official 324:406fd2029f23 1844
mbed_official 324:406fd2029f23 1845 /*! @brief Set the CTCNT field to a new value. */
mbed_official 324:406fd2029f23 1846 #define BW_SPI_PUSHR_CTCNT(x, v) (BITBAND_ACCESS32(HW_SPI_PUSHR_ADDR(x), BP_SPI_PUSHR_CTCNT) = (v))
mbed_official 324:406fd2029f23 1847 /*@}*/
mbed_official 324:406fd2029f23 1848
mbed_official 324:406fd2029f23 1849 /*!
mbed_official 324:406fd2029f23 1850 * @name Register SPI_PUSHR, field EOQ[27] (RW)
mbed_official 324:406fd2029f23 1851 *
mbed_official 324:406fd2029f23 1852 * Host software uses this bit to signal to the module that the current SPI
mbed_official 324:406fd2029f23 1853 * transfer is the last in a queue. At the end of the transfer, the EOQF bit in the
mbed_official 324:406fd2029f23 1854 * SR is set.
mbed_official 324:406fd2029f23 1855 *
mbed_official 324:406fd2029f23 1856 * Values:
mbed_official 324:406fd2029f23 1857 * - 0 - The SPI data is not the last data to transfer.
mbed_official 324:406fd2029f23 1858 * - 1 - The SPI data is the last data to transfer.
mbed_official 324:406fd2029f23 1859 */
mbed_official 324:406fd2029f23 1860 /*@{*/
mbed_official 324:406fd2029f23 1861 #define BP_SPI_PUSHR_EOQ (27U) /*!< Bit position for SPI_PUSHR_EOQ. */
mbed_official 324:406fd2029f23 1862 #define BM_SPI_PUSHR_EOQ (0x08000000U) /*!< Bit mask for SPI_PUSHR_EOQ. */
mbed_official 324:406fd2029f23 1863 #define BS_SPI_PUSHR_EOQ (1U) /*!< Bit field size in bits for SPI_PUSHR_EOQ. */
mbed_official 324:406fd2029f23 1864
mbed_official 324:406fd2029f23 1865 /*! @brief Read current value of the SPI_PUSHR_EOQ field. */
mbed_official 324:406fd2029f23 1866 #define BR_SPI_PUSHR_EOQ(x) (BITBAND_ACCESS32(HW_SPI_PUSHR_ADDR(x), BP_SPI_PUSHR_EOQ))
mbed_official 324:406fd2029f23 1867
mbed_official 324:406fd2029f23 1868 /*! @brief Format value for bitfield SPI_PUSHR_EOQ. */
mbed_official 324:406fd2029f23 1869 #define BF_SPI_PUSHR_EOQ(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_EOQ) & BM_SPI_PUSHR_EOQ)
mbed_official 324:406fd2029f23 1870
mbed_official 324:406fd2029f23 1871 /*! @brief Set the EOQ field to a new value. */
mbed_official 324:406fd2029f23 1872 #define BW_SPI_PUSHR_EOQ(x, v) (BITBAND_ACCESS32(HW_SPI_PUSHR_ADDR(x), BP_SPI_PUSHR_EOQ) = (v))
mbed_official 324:406fd2029f23 1873 /*@}*/
mbed_official 324:406fd2029f23 1874
mbed_official 324:406fd2029f23 1875 /*!
mbed_official 324:406fd2029f23 1876 * @name Register SPI_PUSHR, field CTAS[30:28] (RW)
mbed_official 324:406fd2029f23 1877 *
mbed_official 324:406fd2029f23 1878 * Selects which CTAR to use in master mode to specify the transfer attributes
mbed_official 324:406fd2029f23 1879 * for the associated SPI frame. In SPI Slave mode, CTAR0 is used. See the chip
mbed_official 324:406fd2029f23 1880 * configuration details to determine how many CTARs this device has. You should
mbed_official 324:406fd2029f23 1881 * not program a value in this field for a register that is not present.
mbed_official 324:406fd2029f23 1882 *
mbed_official 324:406fd2029f23 1883 * Values:
mbed_official 324:406fd2029f23 1884 * - 000 - CTAR0
mbed_official 324:406fd2029f23 1885 * - 001 - CTAR1
mbed_official 324:406fd2029f23 1886 * - 010 - Reserved
mbed_official 324:406fd2029f23 1887 * - 011 - Reserved
mbed_official 324:406fd2029f23 1888 * - 100 - Reserved
mbed_official 324:406fd2029f23 1889 * - 101 - Reserved
mbed_official 324:406fd2029f23 1890 * - 110 - Reserved
mbed_official 324:406fd2029f23 1891 * - 111 - Reserved
mbed_official 324:406fd2029f23 1892 */
mbed_official 324:406fd2029f23 1893 /*@{*/
mbed_official 324:406fd2029f23 1894 #define BP_SPI_PUSHR_CTAS (28U) /*!< Bit position for SPI_PUSHR_CTAS. */
mbed_official 324:406fd2029f23 1895 #define BM_SPI_PUSHR_CTAS (0x70000000U) /*!< Bit mask for SPI_PUSHR_CTAS. */
mbed_official 324:406fd2029f23 1896 #define BS_SPI_PUSHR_CTAS (3U) /*!< Bit field size in bits for SPI_PUSHR_CTAS. */
mbed_official 324:406fd2029f23 1897
mbed_official 324:406fd2029f23 1898 /*! @brief Read current value of the SPI_PUSHR_CTAS field. */
mbed_official 324:406fd2029f23 1899 #define BR_SPI_PUSHR_CTAS(x) (HW_SPI_PUSHR(x).B.CTAS)
mbed_official 324:406fd2029f23 1900
mbed_official 324:406fd2029f23 1901 /*! @brief Format value for bitfield SPI_PUSHR_CTAS. */
mbed_official 324:406fd2029f23 1902 #define BF_SPI_PUSHR_CTAS(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_CTAS) & BM_SPI_PUSHR_CTAS)
mbed_official 324:406fd2029f23 1903
mbed_official 324:406fd2029f23 1904 /*! @brief Set the CTAS field to a new value. */
mbed_official 324:406fd2029f23 1905 #define BW_SPI_PUSHR_CTAS(x, v) (HW_SPI_PUSHR_WR(x, (HW_SPI_PUSHR_RD(x) & ~BM_SPI_PUSHR_CTAS) | BF_SPI_PUSHR_CTAS(v)))
mbed_official 324:406fd2029f23 1906 /*@}*/
mbed_official 324:406fd2029f23 1907
mbed_official 324:406fd2029f23 1908 /*!
mbed_official 324:406fd2029f23 1909 * @name Register SPI_PUSHR, field CONT[31] (RW)
mbed_official 324:406fd2029f23 1910 *
mbed_official 324:406fd2029f23 1911 * Selects a continuous selection format. The bit is used in SPI Master mode.
mbed_official 324:406fd2029f23 1912 * The bit enables the selected PCS signals to remain asserted between transfers.
mbed_official 324:406fd2029f23 1913 *
mbed_official 324:406fd2029f23 1914 * Values:
mbed_official 324:406fd2029f23 1915 * - 0 - Return PCSn signals to their inactive state between transfers.
mbed_official 324:406fd2029f23 1916 * - 1 - Keep PCSn signals asserted between transfers.
mbed_official 324:406fd2029f23 1917 */
mbed_official 324:406fd2029f23 1918 /*@{*/
mbed_official 324:406fd2029f23 1919 #define BP_SPI_PUSHR_CONT (31U) /*!< Bit position for SPI_PUSHR_CONT. */
mbed_official 324:406fd2029f23 1920 #define BM_SPI_PUSHR_CONT (0x80000000U) /*!< Bit mask for SPI_PUSHR_CONT. */
mbed_official 324:406fd2029f23 1921 #define BS_SPI_PUSHR_CONT (1U) /*!< Bit field size in bits for SPI_PUSHR_CONT. */
mbed_official 324:406fd2029f23 1922
mbed_official 324:406fd2029f23 1923 /*! @brief Read current value of the SPI_PUSHR_CONT field. */
mbed_official 324:406fd2029f23 1924 #define BR_SPI_PUSHR_CONT(x) (BITBAND_ACCESS32(HW_SPI_PUSHR_ADDR(x), BP_SPI_PUSHR_CONT))
mbed_official 324:406fd2029f23 1925
mbed_official 324:406fd2029f23 1926 /*! @brief Format value for bitfield SPI_PUSHR_CONT. */
mbed_official 324:406fd2029f23 1927 #define BF_SPI_PUSHR_CONT(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_CONT) & BM_SPI_PUSHR_CONT)
mbed_official 324:406fd2029f23 1928
mbed_official 324:406fd2029f23 1929 /*! @brief Set the CONT field to a new value. */
mbed_official 324:406fd2029f23 1930 #define BW_SPI_PUSHR_CONT(x, v) (BITBAND_ACCESS32(HW_SPI_PUSHR_ADDR(x), BP_SPI_PUSHR_CONT) = (v))
mbed_official 324:406fd2029f23 1931 /*@}*/
mbed_official 324:406fd2029f23 1932 /*******************************************************************************
mbed_official 324:406fd2029f23 1933 * HW_SPI_PUSHR_SLAVE - PUSH TX FIFO Register In Slave Mode
mbed_official 324:406fd2029f23 1934 ******************************************************************************/
mbed_official 324:406fd2029f23 1935
mbed_official 324:406fd2029f23 1936 /*!
mbed_official 324:406fd2029f23 1937 * @brief HW_SPI_PUSHR_SLAVE - PUSH TX FIFO Register In Slave Mode (RW)
mbed_official 324:406fd2029f23 1938 *
mbed_official 324:406fd2029f23 1939 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 1940 *
mbed_official 324:406fd2029f23 1941 * Specifies data to be transferred to the TX FIFO. An 8- or 16-bit write access
mbed_official 324:406fd2029f23 1942 * to PUSHR transfers all 32 bits to the TX FIFO. In master mode, the register
mbed_official 324:406fd2029f23 1943 * transfers 16 bits of data and 16 bits of command information to the TX FIFO. In
mbed_official 324:406fd2029f23 1944 * slave mode, all 32 register bits can be used as data, supporting up to 32-bit
mbed_official 324:406fd2029f23 1945 * SPI Frame operation.
mbed_official 324:406fd2029f23 1946 */
mbed_official 324:406fd2029f23 1947 typedef union _hw_spi_pushr_slave
mbed_official 324:406fd2029f23 1948 {
mbed_official 324:406fd2029f23 1949 uint32_t U;
mbed_official 324:406fd2029f23 1950 struct _hw_spi_pushr_slave_bitfields
mbed_official 324:406fd2029f23 1951 {
mbed_official 324:406fd2029f23 1952 uint32_t TXDATA : 32; /*!< [31:0] Transmit Data */
mbed_official 324:406fd2029f23 1953 } B;
mbed_official 324:406fd2029f23 1954 } hw_spi_pushr_slave_t;
mbed_official 324:406fd2029f23 1955
mbed_official 324:406fd2029f23 1956 /*!
mbed_official 324:406fd2029f23 1957 * @name Constants and macros for entire SPI_PUSHR_SLAVE register
mbed_official 324:406fd2029f23 1958 */
mbed_official 324:406fd2029f23 1959 /*@{*/
mbed_official 324:406fd2029f23 1960 #define HW_SPI_PUSHR_SLAVE_ADDR(x) ((x) + 0x34U)
mbed_official 324:406fd2029f23 1961
mbed_official 324:406fd2029f23 1962 #define HW_SPI_PUSHR_SLAVE(x) (*(__IO hw_spi_pushr_slave_t *) HW_SPI_PUSHR_SLAVE_ADDR(x))
mbed_official 324:406fd2029f23 1963 #define HW_SPI_PUSHR_SLAVE_RD(x) (HW_SPI_PUSHR_SLAVE(x).U)
mbed_official 324:406fd2029f23 1964 #define HW_SPI_PUSHR_SLAVE_WR(x, v) (HW_SPI_PUSHR_SLAVE(x).U = (v))
mbed_official 324:406fd2029f23 1965 #define HW_SPI_PUSHR_SLAVE_SET(x, v) (HW_SPI_PUSHR_SLAVE_WR(x, HW_SPI_PUSHR_SLAVE_RD(x) | (v)))
mbed_official 324:406fd2029f23 1966 #define HW_SPI_PUSHR_SLAVE_CLR(x, v) (HW_SPI_PUSHR_SLAVE_WR(x, HW_SPI_PUSHR_SLAVE_RD(x) & ~(v)))
mbed_official 324:406fd2029f23 1967 #define HW_SPI_PUSHR_SLAVE_TOG(x, v) (HW_SPI_PUSHR_SLAVE_WR(x, HW_SPI_PUSHR_SLAVE_RD(x) ^ (v)))
mbed_official 324:406fd2029f23 1968 /*@}*/
mbed_official 324:406fd2029f23 1969
mbed_official 324:406fd2029f23 1970 /*
mbed_official 324:406fd2029f23 1971 * Constants & macros for individual SPI_PUSHR_SLAVE bitfields
mbed_official 324:406fd2029f23 1972 */
mbed_official 324:406fd2029f23 1973
mbed_official 324:406fd2029f23 1974 /*!
mbed_official 324:406fd2029f23 1975 * @name Register SPI_PUSHR_SLAVE, field TXDATA[31:0] (RW)
mbed_official 324:406fd2029f23 1976 *
mbed_official 324:406fd2029f23 1977 * Holds SPI data to be transferred according to the associated SPI command.
mbed_official 324:406fd2029f23 1978 */
mbed_official 324:406fd2029f23 1979 /*@{*/
mbed_official 324:406fd2029f23 1980 #define BP_SPI_PUSHR_SLAVE_TXDATA (0U) /*!< Bit position for SPI_PUSHR_SLAVE_TXDATA. */
mbed_official 324:406fd2029f23 1981 #define BM_SPI_PUSHR_SLAVE_TXDATA (0xFFFFFFFFU) /*!< Bit mask for SPI_PUSHR_SLAVE_TXDATA. */
mbed_official 324:406fd2029f23 1982 #define BS_SPI_PUSHR_SLAVE_TXDATA (32U) /*!< Bit field size in bits for SPI_PUSHR_SLAVE_TXDATA. */
mbed_official 324:406fd2029f23 1983
mbed_official 324:406fd2029f23 1984 /*! @brief Read current value of the SPI_PUSHR_SLAVE_TXDATA field. */
mbed_official 324:406fd2029f23 1985 #define BR_SPI_PUSHR_SLAVE_TXDATA(x) (HW_SPI_PUSHR_SLAVE(x).U)
mbed_official 324:406fd2029f23 1986
mbed_official 324:406fd2029f23 1987 /*! @brief Format value for bitfield SPI_PUSHR_SLAVE_TXDATA. */
mbed_official 324:406fd2029f23 1988 #define BF_SPI_PUSHR_SLAVE_TXDATA(v) ((uint32_t)((uint32_t)(v) << BP_SPI_PUSHR_SLAVE_TXDATA) & BM_SPI_PUSHR_SLAVE_TXDATA)
mbed_official 324:406fd2029f23 1989
mbed_official 324:406fd2029f23 1990 /*! @brief Set the TXDATA field to a new value. */
mbed_official 324:406fd2029f23 1991 #define BW_SPI_PUSHR_SLAVE_TXDATA(x, v) (HW_SPI_PUSHR_SLAVE_WR(x, v))
mbed_official 324:406fd2029f23 1992 /*@}*/
mbed_official 324:406fd2029f23 1993
mbed_official 324:406fd2029f23 1994 /*******************************************************************************
mbed_official 324:406fd2029f23 1995 * HW_SPI_POPR - POP RX FIFO Register
mbed_official 324:406fd2029f23 1996 ******************************************************************************/
mbed_official 324:406fd2029f23 1997
mbed_official 324:406fd2029f23 1998 /*!
mbed_official 324:406fd2029f23 1999 * @brief HW_SPI_POPR - POP RX FIFO Register (RO)
mbed_official 324:406fd2029f23 2000 *
mbed_official 324:406fd2029f23 2001 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 2002 *
mbed_official 324:406fd2029f23 2003 * POPR is used to read the RX FIFO. Eight- or sixteen-bit read accesses to the
mbed_official 324:406fd2029f23 2004 * POPR have the same effect on the RX FIFO as 32-bit read accesses. A write to
mbed_official 324:406fd2029f23 2005 * this register will generate a Transfer Error.
mbed_official 324:406fd2029f23 2006 */
mbed_official 324:406fd2029f23 2007 typedef union _hw_spi_popr
mbed_official 324:406fd2029f23 2008 {
mbed_official 324:406fd2029f23 2009 uint32_t U;
mbed_official 324:406fd2029f23 2010 struct _hw_spi_popr_bitfields
mbed_official 324:406fd2029f23 2011 {
mbed_official 324:406fd2029f23 2012 uint32_t RXDATA : 32; /*!< [31:0] Received Data */
mbed_official 324:406fd2029f23 2013 } B;
mbed_official 324:406fd2029f23 2014 } hw_spi_popr_t;
mbed_official 324:406fd2029f23 2015
mbed_official 324:406fd2029f23 2016 /*!
mbed_official 324:406fd2029f23 2017 * @name Constants and macros for entire SPI_POPR register
mbed_official 324:406fd2029f23 2018 */
mbed_official 324:406fd2029f23 2019 /*@{*/
mbed_official 324:406fd2029f23 2020 #define HW_SPI_POPR_ADDR(x) ((x) + 0x38U)
mbed_official 324:406fd2029f23 2021
mbed_official 324:406fd2029f23 2022 #define HW_SPI_POPR(x) (*(__I hw_spi_popr_t *) HW_SPI_POPR_ADDR(x))
mbed_official 324:406fd2029f23 2023 #define HW_SPI_POPR_RD(x) (HW_SPI_POPR(x).U)
mbed_official 324:406fd2029f23 2024 /*@}*/
mbed_official 324:406fd2029f23 2025
mbed_official 324:406fd2029f23 2026 /*
mbed_official 324:406fd2029f23 2027 * Constants & macros for individual SPI_POPR bitfields
mbed_official 324:406fd2029f23 2028 */
mbed_official 324:406fd2029f23 2029
mbed_official 324:406fd2029f23 2030 /*!
mbed_official 324:406fd2029f23 2031 * @name Register SPI_POPR, field RXDATA[31:0] (RO)
mbed_official 324:406fd2029f23 2032 *
mbed_official 324:406fd2029f23 2033 * Contains the SPI data from the RX FIFO entry to which the Pop Next Data
mbed_official 324:406fd2029f23 2034 * Pointer points.
mbed_official 324:406fd2029f23 2035 */
mbed_official 324:406fd2029f23 2036 /*@{*/
mbed_official 324:406fd2029f23 2037 #define BP_SPI_POPR_RXDATA (0U) /*!< Bit position for SPI_POPR_RXDATA. */
mbed_official 324:406fd2029f23 2038 #define BM_SPI_POPR_RXDATA (0xFFFFFFFFU) /*!< Bit mask for SPI_POPR_RXDATA. */
mbed_official 324:406fd2029f23 2039 #define BS_SPI_POPR_RXDATA (32U) /*!< Bit field size in bits for SPI_POPR_RXDATA. */
mbed_official 324:406fd2029f23 2040
mbed_official 324:406fd2029f23 2041 /*! @brief Read current value of the SPI_POPR_RXDATA field. */
mbed_official 324:406fd2029f23 2042 #define BR_SPI_POPR_RXDATA(x) (HW_SPI_POPR(x).U)
mbed_official 324:406fd2029f23 2043 /*@}*/
mbed_official 324:406fd2029f23 2044
mbed_official 324:406fd2029f23 2045 /*******************************************************************************
mbed_official 324:406fd2029f23 2046 * HW_SPI_TXFRn - Transmit FIFO Registers
mbed_official 324:406fd2029f23 2047 ******************************************************************************/
mbed_official 324:406fd2029f23 2048
mbed_official 324:406fd2029f23 2049 /*!
mbed_official 324:406fd2029f23 2050 * @brief HW_SPI_TXFRn - Transmit FIFO Registers (RO)
mbed_official 324:406fd2029f23 2051 *
mbed_official 324:406fd2029f23 2052 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 2053 *
mbed_official 324:406fd2029f23 2054 * TXFRn registers provide visibility into the TX FIFO for debugging purposes.
mbed_official 324:406fd2029f23 2055 * Each register is an entry in the TX FIFO. The registers are read-only and
mbed_official 324:406fd2029f23 2056 * cannot be modified. Reading the TXFRx registers does not alter the state of the TX
mbed_official 324:406fd2029f23 2057 * FIFO.
mbed_official 324:406fd2029f23 2058 */
mbed_official 324:406fd2029f23 2059 typedef union _hw_spi_txfrn
mbed_official 324:406fd2029f23 2060 {
mbed_official 324:406fd2029f23 2061 uint32_t U;
mbed_official 324:406fd2029f23 2062 struct _hw_spi_txfrn_bitfields
mbed_official 324:406fd2029f23 2063 {
mbed_official 324:406fd2029f23 2064 uint32_t TXDATA : 16; /*!< [15:0] Transmit Data */
mbed_official 324:406fd2029f23 2065 uint32_t TXCMD_TXDATA : 16; /*!< [31:16] Transmit Command or Transmit
mbed_official 324:406fd2029f23 2066 * Data */
mbed_official 324:406fd2029f23 2067 } B;
mbed_official 324:406fd2029f23 2068 } hw_spi_txfrn_t;
mbed_official 324:406fd2029f23 2069
mbed_official 324:406fd2029f23 2070 /*!
mbed_official 324:406fd2029f23 2071 * @name Constants and macros for entire SPI_TXFRn register
mbed_official 324:406fd2029f23 2072 */
mbed_official 324:406fd2029f23 2073 /*@{*/
mbed_official 324:406fd2029f23 2074 #define HW_SPI_TXFRn_COUNT (4U)
mbed_official 324:406fd2029f23 2075
mbed_official 324:406fd2029f23 2076 #define HW_SPI_TXFRn_ADDR(x, n) ((x) + 0x3CU + (0x4U * (n)))
mbed_official 324:406fd2029f23 2077
mbed_official 324:406fd2029f23 2078 #define HW_SPI_TXFRn(x, n) (*(__I hw_spi_txfrn_t *) HW_SPI_TXFRn_ADDR(x, n))
mbed_official 324:406fd2029f23 2079 #define HW_SPI_TXFRn_RD(x, n) (HW_SPI_TXFRn(x, n).U)
mbed_official 324:406fd2029f23 2080 /*@}*/
mbed_official 324:406fd2029f23 2081
mbed_official 324:406fd2029f23 2082 /*
mbed_official 324:406fd2029f23 2083 * Constants & macros for individual SPI_TXFRn bitfields
mbed_official 324:406fd2029f23 2084 */
mbed_official 324:406fd2029f23 2085
mbed_official 324:406fd2029f23 2086 /*!
mbed_official 324:406fd2029f23 2087 * @name Register SPI_TXFRn, field TXDATA[15:0] (RO)
mbed_official 324:406fd2029f23 2088 *
mbed_official 324:406fd2029f23 2089 * Contains the SPI data to be shifted out.
mbed_official 324:406fd2029f23 2090 */
mbed_official 324:406fd2029f23 2091 /*@{*/
mbed_official 324:406fd2029f23 2092 #define BP_SPI_TXFRn_TXDATA (0U) /*!< Bit position for SPI_TXFRn_TXDATA. */
mbed_official 324:406fd2029f23 2093 #define BM_SPI_TXFRn_TXDATA (0x0000FFFFU) /*!< Bit mask for SPI_TXFRn_TXDATA. */
mbed_official 324:406fd2029f23 2094 #define BS_SPI_TXFRn_TXDATA (16U) /*!< Bit field size in bits for SPI_TXFRn_TXDATA. */
mbed_official 324:406fd2029f23 2095
mbed_official 324:406fd2029f23 2096 /*! @brief Read current value of the SPI_TXFRn_TXDATA field. */
mbed_official 324:406fd2029f23 2097 #define BR_SPI_TXFRn_TXDATA(x, n) (HW_SPI_TXFRn(x, n).B.TXDATA)
mbed_official 324:406fd2029f23 2098 /*@}*/
mbed_official 324:406fd2029f23 2099
mbed_official 324:406fd2029f23 2100 /*!
mbed_official 324:406fd2029f23 2101 * @name Register SPI_TXFRn, field TXCMD_TXDATA[31:16] (RO)
mbed_official 324:406fd2029f23 2102 *
mbed_official 324:406fd2029f23 2103 * In Master mode the TXCMD field contains the command that sets the transfer
mbed_official 324:406fd2029f23 2104 * attributes for the SPI data. In Slave mode, the TXDATA contains 16 MSB bits of
mbed_official 324:406fd2029f23 2105 * the SPI data to be shifted out.
mbed_official 324:406fd2029f23 2106 */
mbed_official 324:406fd2029f23 2107 /*@{*/
mbed_official 324:406fd2029f23 2108 #define BP_SPI_TXFRn_TXCMD_TXDATA (16U) /*!< Bit position for SPI_TXFRn_TXCMD_TXDATA. */
mbed_official 324:406fd2029f23 2109 #define BM_SPI_TXFRn_TXCMD_TXDATA (0xFFFF0000U) /*!< Bit mask for SPI_TXFRn_TXCMD_TXDATA. */
mbed_official 324:406fd2029f23 2110 #define BS_SPI_TXFRn_TXCMD_TXDATA (16U) /*!< Bit field size in bits for SPI_TXFRn_TXCMD_TXDATA. */
mbed_official 324:406fd2029f23 2111
mbed_official 324:406fd2029f23 2112 /*! @brief Read current value of the SPI_TXFRn_TXCMD_TXDATA field. */
mbed_official 324:406fd2029f23 2113 #define BR_SPI_TXFRn_TXCMD_TXDATA(x, n) (HW_SPI_TXFRn(x, n).B.TXCMD_TXDATA)
mbed_official 324:406fd2029f23 2114 /*@}*/
mbed_official 324:406fd2029f23 2115
mbed_official 324:406fd2029f23 2116 /*******************************************************************************
mbed_official 324:406fd2029f23 2117 * HW_SPI_RXFRn - Receive FIFO Registers
mbed_official 324:406fd2029f23 2118 ******************************************************************************/
mbed_official 324:406fd2029f23 2119
mbed_official 324:406fd2029f23 2120 /*!
mbed_official 324:406fd2029f23 2121 * @brief HW_SPI_RXFRn - Receive FIFO Registers (RO)
mbed_official 324:406fd2029f23 2122 *
mbed_official 324:406fd2029f23 2123 * Reset value: 0x00000000U
mbed_official 324:406fd2029f23 2124 *
mbed_official 324:406fd2029f23 2125 * RXFRn provide visibility into the RX FIFO for debugging purposes. Each
mbed_official 324:406fd2029f23 2126 * register is an entry in the RX FIFO. The RXFR registers are read-only. Reading the
mbed_official 324:406fd2029f23 2127 * RXFRx registers does not alter the state of the RX FIFO.
mbed_official 324:406fd2029f23 2128 */
mbed_official 324:406fd2029f23 2129 typedef union _hw_spi_rxfrn
mbed_official 324:406fd2029f23 2130 {
mbed_official 324:406fd2029f23 2131 uint32_t U;
mbed_official 324:406fd2029f23 2132 struct _hw_spi_rxfrn_bitfields
mbed_official 324:406fd2029f23 2133 {
mbed_official 324:406fd2029f23 2134 uint32_t RXDATA : 32; /*!< [31:0] Receive Data */
mbed_official 324:406fd2029f23 2135 } B;
mbed_official 324:406fd2029f23 2136 } hw_spi_rxfrn_t;
mbed_official 324:406fd2029f23 2137
mbed_official 324:406fd2029f23 2138 /*!
mbed_official 324:406fd2029f23 2139 * @name Constants and macros for entire SPI_RXFRn register
mbed_official 324:406fd2029f23 2140 */
mbed_official 324:406fd2029f23 2141 /*@{*/
mbed_official 324:406fd2029f23 2142 #define HW_SPI_RXFRn_COUNT (4U)
mbed_official 324:406fd2029f23 2143
mbed_official 324:406fd2029f23 2144 #define HW_SPI_RXFRn_ADDR(x, n) ((x) + 0x7CU + (0x4U * (n)))
mbed_official 324:406fd2029f23 2145
mbed_official 324:406fd2029f23 2146 #define HW_SPI_RXFRn(x, n) (*(__I hw_spi_rxfrn_t *) HW_SPI_RXFRn_ADDR(x, n))
mbed_official 324:406fd2029f23 2147 #define HW_SPI_RXFRn_RD(x, n) (HW_SPI_RXFRn(x, n).U)
mbed_official 324:406fd2029f23 2148 /*@}*/
mbed_official 324:406fd2029f23 2149
mbed_official 324:406fd2029f23 2150 /*
mbed_official 324:406fd2029f23 2151 * Constants & macros for individual SPI_RXFRn bitfields
mbed_official 324:406fd2029f23 2152 */
mbed_official 324:406fd2029f23 2153
mbed_official 324:406fd2029f23 2154 /*!
mbed_official 324:406fd2029f23 2155 * @name Register SPI_RXFRn, field RXDATA[31:0] (RO)
mbed_official 324:406fd2029f23 2156 *
mbed_official 324:406fd2029f23 2157 * Contains the received SPI data.
mbed_official 324:406fd2029f23 2158 */
mbed_official 324:406fd2029f23 2159 /*@{*/
mbed_official 324:406fd2029f23 2160 #define BP_SPI_RXFRn_RXDATA (0U) /*!< Bit position for SPI_RXFRn_RXDATA. */
mbed_official 324:406fd2029f23 2161 #define BM_SPI_RXFRn_RXDATA (0xFFFFFFFFU) /*!< Bit mask for SPI_RXFRn_RXDATA. */
mbed_official 324:406fd2029f23 2162 #define BS_SPI_RXFRn_RXDATA (32U) /*!< Bit field size in bits for SPI_RXFRn_RXDATA. */
mbed_official 324:406fd2029f23 2163
mbed_official 324:406fd2029f23 2164 /*! @brief Read current value of the SPI_RXFRn_RXDATA field. */
mbed_official 324:406fd2029f23 2165 #define BR_SPI_RXFRn_RXDATA(x, n) (HW_SPI_RXFRn(x, n).U)
mbed_official 324:406fd2029f23 2166 /*@}*/
mbed_official 324:406fd2029f23 2167
mbed_official 324:406fd2029f23 2168 /*
mbed_official 324:406fd2029f23 2169 ** Start of section using anonymous unions
mbed_official 324:406fd2029f23 2170 */
mbed_official 324:406fd2029f23 2171
mbed_official 324:406fd2029f23 2172 #if defined(__ARMCC_VERSION)
mbed_official 324:406fd2029f23 2173 #pragma push
mbed_official 324:406fd2029f23 2174 #pragma anon_unions
mbed_official 324:406fd2029f23 2175 #elif defined(__CWCC__)
mbed_official 324:406fd2029f23 2176 #pragma push
mbed_official 324:406fd2029f23 2177 #pragma cpp_extensions on
mbed_official 324:406fd2029f23 2178 #elif defined(__GNUC__)
mbed_official 324:406fd2029f23 2179 /* anonymous unions are enabled by default */
mbed_official 324:406fd2029f23 2180 #elif defined(__IAR_SYSTEMS_ICC__)
mbed_official 324:406fd2029f23 2181 #pragma language=extended
mbed_official 324:406fd2029f23 2182 #else
mbed_official 324:406fd2029f23 2183 #error Not supported compiler type
mbed_official 324:406fd2029f23 2184 #endif
mbed_official 324:406fd2029f23 2185
mbed_official 324:406fd2029f23 2186 /*******************************************************************************
mbed_official 324:406fd2029f23 2187 * hw_spi_t - module struct
mbed_official 324:406fd2029f23 2188 ******************************************************************************/
mbed_official 324:406fd2029f23 2189 /*!
mbed_official 324:406fd2029f23 2190 * @brief All SPI module registers.
mbed_official 324:406fd2029f23 2191 */
mbed_official 324:406fd2029f23 2192 #pragma pack(1)
mbed_official 324:406fd2029f23 2193 typedef struct _hw_spi
mbed_official 324:406fd2029f23 2194 {
mbed_official 324:406fd2029f23 2195 __IO hw_spi_mcr_t MCR; /*!< [0x0] Module Configuration Register */
mbed_official 324:406fd2029f23 2196 uint8_t _reserved0[4];
mbed_official 324:406fd2029f23 2197 __IO hw_spi_tcr_t TCR; /*!< [0x8] Transfer Count Register */
mbed_official 324:406fd2029f23 2198 union {
mbed_official 324:406fd2029f23 2199 __IO hw_spi_ctarn_t CTARn[2]; /*!< [0xC] Clock and Transfer Attributes Register (In Master Mode) */
mbed_official 324:406fd2029f23 2200 __IO hw_spi_ctarn_slave_t CTARn_SLAVE[1]; /*!< [0xC] Clock and Transfer Attributes Register (In Slave Mode) */
mbed_official 324:406fd2029f23 2201 };
mbed_official 324:406fd2029f23 2202 uint8_t _reserved1[24];
mbed_official 324:406fd2029f23 2203 __IO hw_spi_sr_t SR; /*!< [0x2C] Status Register */
mbed_official 324:406fd2029f23 2204 __IO hw_spi_rser_t RSER; /*!< [0x30] DMA/Interrupt Request Select and Enable Register */
mbed_official 324:406fd2029f23 2205 union {
mbed_official 324:406fd2029f23 2206 __IO hw_spi_pushr_t PUSHR; /*!< [0x34] PUSH TX FIFO Register In Master Mode */
mbed_official 324:406fd2029f23 2207 __IO hw_spi_pushr_slave_t PUSHR_SLAVE; /*!< [0x34] PUSH TX FIFO Register In Slave Mode */
mbed_official 324:406fd2029f23 2208 };
mbed_official 324:406fd2029f23 2209 __I hw_spi_popr_t POPR; /*!< [0x38] POP RX FIFO Register */
mbed_official 324:406fd2029f23 2210 __I hw_spi_txfrn_t TXFRn[4]; /*!< [0x3C] Transmit FIFO Registers */
mbed_official 324:406fd2029f23 2211 uint8_t _reserved2[48];
mbed_official 324:406fd2029f23 2212 __I hw_spi_rxfrn_t RXFRn[4]; /*!< [0x7C] Receive FIFO Registers */
mbed_official 324:406fd2029f23 2213 } hw_spi_t;
mbed_official 324:406fd2029f23 2214 #pragma pack()
mbed_official 324:406fd2029f23 2215
mbed_official 324:406fd2029f23 2216 /*! @brief Macro to access all SPI registers. */
mbed_official 324:406fd2029f23 2217 /*! @param x SPI module instance base address. */
mbed_official 324:406fd2029f23 2218 /*! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
mbed_official 324:406fd2029f23 2219 * use the '&' operator, like <code>&HW_SPI(SPI0_BASE)</code>. */
mbed_official 324:406fd2029f23 2220 #define HW_SPI(x) (*(hw_spi_t *)(x))
mbed_official 324:406fd2029f23 2221
mbed_official 324:406fd2029f23 2222 /*
mbed_official 324:406fd2029f23 2223 ** End of section using anonymous unions
mbed_official 324:406fd2029f23 2224 */
mbed_official 324:406fd2029f23 2225
mbed_official 324:406fd2029f23 2226 #if defined(__ARMCC_VERSION)
mbed_official 324:406fd2029f23 2227 #pragma pop
mbed_official 324:406fd2029f23 2228 #elif defined(__CWCC__)
mbed_official 324:406fd2029f23 2229 #pragma pop
mbed_official 324:406fd2029f23 2230 #elif defined(__GNUC__)
mbed_official 324:406fd2029f23 2231 /* leave anonymous unions enabled */
mbed_official 324:406fd2029f23 2232 #elif defined(__IAR_SYSTEMS_ICC__)
mbed_official 324:406fd2029f23 2233 #pragma language=default
mbed_official 324:406fd2029f23 2234 #else
mbed_official 324:406fd2029f23 2235 #error Not supported compiler type
mbed_official 324:406fd2029f23 2236 #endif
mbed_official 324:406fd2029f23 2237
mbed_official 324:406fd2029f23 2238 #endif /* __HW_SPI_REGISTERS_H__ */
mbed_official 324:406fd2029f23 2239 /* EOF */