1 /* 2 * Copyright 1997-2016 Freescale Semiconductor, Inc. 3 * Copyright 2016-2022 NXP 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 /*! 9 * @file S32K118_LPSPI.h 10 * @version 1.1 11 * @date 2022-01-24 12 * @brief Peripheral Access Layer for S32K118_LPSPI 13 * 14 * This file contains register definitions and macros for easy access to their 15 * bit fields. 16 * 17 * This file assumes LITTLE endian system. 18 */ 19 20 /** 21 * @page misra_violations MISRA-C:2012 violations 22 * 23 * @section [global] 24 * Violates MISRA 2012 Advisory Rule 2.3, local typedef not referenced 25 * The SoC header defines typedef for all modules. 26 * 27 * @section [global] 28 * Violates MISRA 2012 Advisory Rule 2.5, local macro not referenced 29 * The SoC header defines macros for all modules and registers. 30 * 31 * @section [global] 32 * Violates MISRA 2012 Advisory Directive 4.9, Function-like macro 33 * These are generated macros used for accessing the bit-fields from registers. 34 * 35 * @section [global] 36 * Violates MISRA 2012 Required Rule 5.1, identifier clash 37 * The supported compilers use more than 31 significant characters for identifiers. 38 * 39 * @section [global] 40 * Violates MISRA 2012 Required Rule 5.2, identifier clash 41 * The supported compilers use more than 31 significant characters for identifiers. 42 * 43 * @section [global] 44 * Violates MISRA 2012 Required Rule 5.4, identifier clash 45 * The supported compilers use more than 31 significant characters for identifiers. 46 * 47 * @section [global] 48 * Violates MISRA 2012 Required Rule 5.5, identifier clash 49 * The supported compilers use more than 31 significant characters for identifiers. 50 * 51 * @section [global] 52 * Violates MISRA 2012 Required Rule 21.1, defined macro '__I' is reserved to the compiler 53 * This type qualifier is needed to ensure correct I/O access and addressing. 54 */ 55 56 /* Prevention from multiple including the same memory map */ 57 #if !defined(S32K118_LPSPI_H_) /* Check if memory map has not been already included */ 58 #define S32K118_LPSPI_H_ 59 60 #include "S32K118_COMMON.h" 61 62 /* ---------------------------------------------------------------------------- 63 -- LPSPI Peripheral Access Layer 64 ---------------------------------------------------------------------------- */ 65 66 /*! 67 * @addtogroup LPSPI_Peripheral_Access_Layer LPSPI Peripheral Access Layer 68 * @{ 69 */ 70 71 /** LPSPI - Register Layout Typedef */ 72 typedef struct { 73 __I uint32_t VERID; /**< Version ID Register, offset: 0x0 */ 74 __I uint32_t PARAM; /**< Parameter Register, offset: 0x4 */ 75 uint8_t RESERVED_0[8]; 76 __IO uint32_t CR; /**< Control Register, offset: 0x10 */ 77 __IO uint32_t SR; /**< Status Register, offset: 0x14 */ 78 __IO uint32_t IER; /**< Interrupt Enable Register, offset: 0x18 */ 79 __IO uint32_t DER; /**< DMA Enable Register, offset: 0x1C */ 80 __IO uint32_t CFGR0; /**< Configuration Register 0, offset: 0x20 */ 81 __IO uint32_t CFGR1; /**< Configuration Register 1, offset: 0x24 */ 82 uint8_t RESERVED_1[8]; 83 __IO uint32_t DMR0; /**< Data Match Register 0, offset: 0x30 */ 84 __IO uint32_t DMR1; /**< Data Match Register 1, offset: 0x34 */ 85 uint8_t RESERVED_2[8]; 86 __IO uint32_t CCR; /**< Clock Configuration Register, offset: 0x40 */ 87 uint8_t RESERVED_3[20]; 88 __IO uint32_t FCR; /**< The FIFO Control register contains the RXWATER and TXWATER control fields., offset: 0x58 */ 89 __I uint32_t FSR; /**< FIFO Status Register, offset: 0x5C */ 90 __IO uint32_t TCR; /**< Transmit Command Register, offset: 0x60 */ 91 __O uint32_t TDR; /**< Transmit Data Register, offset: 0x64 */ 92 uint8_t RESERVED_4[8]; 93 __I uint32_t RSR; /**< Receive Status Register, offset: 0x70 */ 94 __I uint32_t RDR; /**< Receive Data Register, offset: 0x74 */ 95 } LPSPI_Type, *LPSPI_MemMapPtr; 96 97 /** Number of instances of the LPSPI module. */ 98 #define LPSPI_INSTANCE_COUNT (2u) 99 100 /* LPSPI - Peripheral instance base addresses */ 101 /** Peripheral LPSPI0 base address */ 102 #define IP_LPSPI0_BASE (0x4002C000u) 103 /** Peripheral LPSPI0 base pointer */ 104 #define IP_LPSPI0 ((LPSPI_Type *)IP_LPSPI0_BASE) 105 /** Peripheral LPSPI1 base address */ 106 #define IP_LPSPI1_BASE (0x4002D000u) 107 /** Peripheral LPSPI1 base pointer */ 108 #define IP_LPSPI1 ((LPSPI_Type *)IP_LPSPI1_BASE) 109 /** Array initializer of LPSPI peripheral base addresses */ 110 #define IP_LPSPI_BASE_ADDRS { IP_LPSPI0_BASE, IP_LPSPI1_BASE } 111 /** Array initializer of LPSPI peripheral base pointers */ 112 #define IP_LPSPI_BASE_PTRS { IP_LPSPI0, IP_LPSPI1 } 113 114 /* ---------------------------------------------------------------------------- 115 -- LPSPI Register Masks 116 ---------------------------------------------------------------------------- */ 117 118 /*! 119 * @addtogroup LPSPI_Register_Masks LPSPI Register Masks 120 * @{ 121 */ 122 123 /*! @name VERID - Version ID Register */ 124 /*! @{ */ 125 126 #define LPSPI_VERID_FEATURE_MASK (0xFFFFU) 127 #define LPSPI_VERID_FEATURE_SHIFT (0U) 128 #define LPSPI_VERID_FEATURE_WIDTH (16U) 129 #define LPSPI_VERID_FEATURE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_FEATURE_SHIFT)) & LPSPI_VERID_FEATURE_MASK) 130 131 #define LPSPI_VERID_MINOR_MASK (0xFF0000U) 132 #define LPSPI_VERID_MINOR_SHIFT (16U) 133 #define LPSPI_VERID_MINOR_WIDTH (8U) 134 #define LPSPI_VERID_MINOR(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MINOR_SHIFT)) & LPSPI_VERID_MINOR_MASK) 135 136 #define LPSPI_VERID_MAJOR_MASK (0xFF000000U) 137 #define LPSPI_VERID_MAJOR_SHIFT (24U) 138 #define LPSPI_VERID_MAJOR_WIDTH (8U) 139 #define LPSPI_VERID_MAJOR(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MAJOR_SHIFT)) & LPSPI_VERID_MAJOR_MASK) 140 /*! @} */ 141 142 /*! @name PARAM - Parameter Register */ 143 /*! @{ */ 144 145 #define LPSPI_PARAM_TXFIFO_MASK (0xFFU) 146 #define LPSPI_PARAM_TXFIFO_SHIFT (0U) 147 #define LPSPI_PARAM_TXFIFO_WIDTH (8U) 148 #define LPSPI_PARAM_TXFIFO(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_TXFIFO_SHIFT)) & LPSPI_PARAM_TXFIFO_MASK) 149 150 #define LPSPI_PARAM_RXFIFO_MASK (0xFF00U) 151 #define LPSPI_PARAM_RXFIFO_SHIFT (8U) 152 #define LPSPI_PARAM_RXFIFO_WIDTH (8U) 153 #define LPSPI_PARAM_RXFIFO(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_RXFIFO_SHIFT)) & LPSPI_PARAM_RXFIFO_MASK) 154 /*! @} */ 155 156 /*! @name CR - Control Register */ 157 /*! @{ */ 158 159 #define LPSPI_CR_MEN_MASK (0x1U) 160 #define LPSPI_CR_MEN_SHIFT (0U) 161 #define LPSPI_CR_MEN_WIDTH (1U) 162 #define LPSPI_CR_MEN(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_MEN_SHIFT)) & LPSPI_CR_MEN_MASK) 163 164 #define LPSPI_CR_RST_MASK (0x2U) 165 #define LPSPI_CR_RST_SHIFT (1U) 166 #define LPSPI_CR_RST_WIDTH (1U) 167 #define LPSPI_CR_RST(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RST_SHIFT)) & LPSPI_CR_RST_MASK) 168 169 #define LPSPI_CR_DOZEN_MASK (0x4U) 170 #define LPSPI_CR_DOZEN_SHIFT (2U) 171 #define LPSPI_CR_DOZEN_WIDTH (1U) 172 #define LPSPI_CR_DOZEN(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DOZEN_SHIFT)) & LPSPI_CR_DOZEN_MASK) 173 174 #define LPSPI_CR_DBGEN_MASK (0x8U) 175 #define LPSPI_CR_DBGEN_SHIFT (3U) 176 #define LPSPI_CR_DBGEN_WIDTH (1U) 177 #define LPSPI_CR_DBGEN(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DBGEN_SHIFT)) & LPSPI_CR_DBGEN_MASK) 178 179 #define LPSPI_CR_RTF_MASK (0x100U) 180 #define LPSPI_CR_RTF_SHIFT (8U) 181 #define LPSPI_CR_RTF_WIDTH (1U) 182 #define LPSPI_CR_RTF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RTF_SHIFT)) & LPSPI_CR_RTF_MASK) 183 184 #define LPSPI_CR_RRF_MASK (0x200U) 185 #define LPSPI_CR_RRF_SHIFT (9U) 186 #define LPSPI_CR_RRF_WIDTH (1U) 187 #define LPSPI_CR_RRF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RRF_SHIFT)) & LPSPI_CR_RRF_MASK) 188 /*! @} */ 189 190 /*! @name SR - Status Register */ 191 /*! @{ */ 192 193 #define LPSPI_SR_TDF_MASK (0x1U) 194 #define LPSPI_SR_TDF_SHIFT (0U) 195 #define LPSPI_SR_TDF_WIDTH (1U) 196 #define LPSPI_SR_TDF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TDF_SHIFT)) & LPSPI_SR_TDF_MASK) 197 198 #define LPSPI_SR_RDF_MASK (0x2U) 199 #define LPSPI_SR_RDF_SHIFT (1U) 200 #define LPSPI_SR_RDF_WIDTH (1U) 201 #define LPSPI_SR_RDF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_RDF_SHIFT)) & LPSPI_SR_RDF_MASK) 202 203 #define LPSPI_SR_WCF_MASK (0x100U) 204 #define LPSPI_SR_WCF_SHIFT (8U) 205 #define LPSPI_SR_WCF_WIDTH (1U) 206 #define LPSPI_SR_WCF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_WCF_SHIFT)) & LPSPI_SR_WCF_MASK) 207 208 #define LPSPI_SR_FCF_MASK (0x200U) 209 #define LPSPI_SR_FCF_SHIFT (9U) 210 #define LPSPI_SR_FCF_WIDTH (1U) 211 #define LPSPI_SR_FCF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_FCF_SHIFT)) & LPSPI_SR_FCF_MASK) 212 213 #define LPSPI_SR_TCF_MASK (0x400U) 214 #define LPSPI_SR_TCF_SHIFT (10U) 215 #define LPSPI_SR_TCF_WIDTH (1U) 216 #define LPSPI_SR_TCF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TCF_SHIFT)) & LPSPI_SR_TCF_MASK) 217 218 #define LPSPI_SR_TEF_MASK (0x800U) 219 #define LPSPI_SR_TEF_SHIFT (11U) 220 #define LPSPI_SR_TEF_WIDTH (1U) 221 #define LPSPI_SR_TEF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TEF_SHIFT)) & LPSPI_SR_TEF_MASK) 222 223 #define LPSPI_SR_REF_MASK (0x1000U) 224 #define LPSPI_SR_REF_SHIFT (12U) 225 #define LPSPI_SR_REF_WIDTH (1U) 226 #define LPSPI_SR_REF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_REF_SHIFT)) & LPSPI_SR_REF_MASK) 227 228 #define LPSPI_SR_DMF_MASK (0x2000U) 229 #define LPSPI_SR_DMF_SHIFT (13U) 230 #define LPSPI_SR_DMF_WIDTH (1U) 231 #define LPSPI_SR_DMF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_DMF_SHIFT)) & LPSPI_SR_DMF_MASK) 232 233 #define LPSPI_SR_MBF_MASK (0x1000000U) 234 #define LPSPI_SR_MBF_SHIFT (24U) 235 #define LPSPI_SR_MBF_WIDTH (1U) 236 #define LPSPI_SR_MBF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_MBF_SHIFT)) & LPSPI_SR_MBF_MASK) 237 /*! @} */ 238 239 /*! @name IER - Interrupt Enable Register */ 240 /*! @{ */ 241 242 #define LPSPI_IER_TDIE_MASK (0x1U) 243 #define LPSPI_IER_TDIE_SHIFT (0U) 244 #define LPSPI_IER_TDIE_WIDTH (1U) 245 #define LPSPI_IER_TDIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TDIE_SHIFT)) & LPSPI_IER_TDIE_MASK) 246 247 #define LPSPI_IER_RDIE_MASK (0x2U) 248 #define LPSPI_IER_RDIE_SHIFT (1U) 249 #define LPSPI_IER_RDIE_WIDTH (1U) 250 #define LPSPI_IER_RDIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_RDIE_SHIFT)) & LPSPI_IER_RDIE_MASK) 251 252 #define LPSPI_IER_WCIE_MASK (0x100U) 253 #define LPSPI_IER_WCIE_SHIFT (8U) 254 #define LPSPI_IER_WCIE_WIDTH (1U) 255 #define LPSPI_IER_WCIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_WCIE_SHIFT)) & LPSPI_IER_WCIE_MASK) 256 257 #define LPSPI_IER_FCIE_MASK (0x200U) 258 #define LPSPI_IER_FCIE_SHIFT (9U) 259 #define LPSPI_IER_FCIE_WIDTH (1U) 260 #define LPSPI_IER_FCIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_FCIE_SHIFT)) & LPSPI_IER_FCIE_MASK) 261 262 #define LPSPI_IER_TCIE_MASK (0x400U) 263 #define LPSPI_IER_TCIE_SHIFT (10U) 264 #define LPSPI_IER_TCIE_WIDTH (1U) 265 #define LPSPI_IER_TCIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TCIE_SHIFT)) & LPSPI_IER_TCIE_MASK) 266 267 #define LPSPI_IER_TEIE_MASK (0x800U) 268 #define LPSPI_IER_TEIE_SHIFT (11U) 269 #define LPSPI_IER_TEIE_WIDTH (1U) 270 #define LPSPI_IER_TEIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TEIE_SHIFT)) & LPSPI_IER_TEIE_MASK) 271 272 #define LPSPI_IER_REIE_MASK (0x1000U) 273 #define LPSPI_IER_REIE_SHIFT (12U) 274 #define LPSPI_IER_REIE_WIDTH (1U) 275 #define LPSPI_IER_REIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_REIE_SHIFT)) & LPSPI_IER_REIE_MASK) 276 277 #define LPSPI_IER_DMIE_MASK (0x2000U) 278 #define LPSPI_IER_DMIE_SHIFT (13U) 279 #define LPSPI_IER_DMIE_WIDTH (1U) 280 #define LPSPI_IER_DMIE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_DMIE_SHIFT)) & LPSPI_IER_DMIE_MASK) 281 /*! @} */ 282 283 /*! @name DER - DMA Enable Register */ 284 /*! @{ */ 285 286 #define LPSPI_DER_TDDE_MASK (0x1U) 287 #define LPSPI_DER_TDDE_SHIFT (0U) 288 #define LPSPI_DER_TDDE_WIDTH (1U) 289 #define LPSPI_DER_TDDE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_TDDE_SHIFT)) & LPSPI_DER_TDDE_MASK) 290 291 #define LPSPI_DER_RDDE_MASK (0x2U) 292 #define LPSPI_DER_RDDE_SHIFT (1U) 293 #define LPSPI_DER_RDDE_WIDTH (1U) 294 #define LPSPI_DER_RDDE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_RDDE_SHIFT)) & LPSPI_DER_RDDE_MASK) 295 /*! @} */ 296 297 /*! @name CFGR0 - Configuration Register 0 */ 298 /*! @{ */ 299 300 #define LPSPI_CFGR0_HREN_MASK (0x1U) 301 #define LPSPI_CFGR0_HREN_SHIFT (0U) 302 #define LPSPI_CFGR0_HREN_WIDTH (1U) 303 #define LPSPI_CFGR0_HREN(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HREN_SHIFT)) & LPSPI_CFGR0_HREN_MASK) 304 305 #define LPSPI_CFGR0_HRPOL_MASK (0x2U) 306 #define LPSPI_CFGR0_HRPOL_SHIFT (1U) 307 #define LPSPI_CFGR0_HRPOL_WIDTH (1U) 308 #define LPSPI_CFGR0_HRPOL(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRPOL_SHIFT)) & LPSPI_CFGR0_HRPOL_MASK) 309 310 #define LPSPI_CFGR0_HRSEL_MASK (0x4U) 311 #define LPSPI_CFGR0_HRSEL_SHIFT (2U) 312 #define LPSPI_CFGR0_HRSEL_WIDTH (1U) 313 #define LPSPI_CFGR0_HRSEL(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRSEL_SHIFT)) & LPSPI_CFGR0_HRSEL_MASK) 314 315 #define LPSPI_CFGR0_CIRFIFO_MASK (0x100U) 316 #define LPSPI_CFGR0_CIRFIFO_SHIFT (8U) 317 #define LPSPI_CFGR0_CIRFIFO_WIDTH (1U) 318 #define LPSPI_CFGR0_CIRFIFO(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_CIRFIFO_SHIFT)) & LPSPI_CFGR0_CIRFIFO_MASK) 319 320 #define LPSPI_CFGR0_RDMO_MASK (0x200U) 321 #define LPSPI_CFGR0_RDMO_SHIFT (9U) 322 #define LPSPI_CFGR0_RDMO_WIDTH (1U) 323 #define LPSPI_CFGR0_RDMO(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_RDMO_SHIFT)) & LPSPI_CFGR0_RDMO_MASK) 324 /*! @} */ 325 326 /*! @name CFGR1 - Configuration Register 1 */ 327 /*! @{ */ 328 329 #define LPSPI_CFGR1_MASTER_MASK (0x1U) 330 #define LPSPI_CFGR1_MASTER_SHIFT (0U) 331 #define LPSPI_CFGR1_MASTER_WIDTH (1U) 332 #define LPSPI_CFGR1_MASTER(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MASTER_SHIFT)) & LPSPI_CFGR1_MASTER_MASK) 333 334 #define LPSPI_CFGR1_SAMPLE_MASK (0x2U) 335 #define LPSPI_CFGR1_SAMPLE_SHIFT (1U) 336 #define LPSPI_CFGR1_SAMPLE_WIDTH (1U) 337 #define LPSPI_CFGR1_SAMPLE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_SAMPLE_SHIFT)) & LPSPI_CFGR1_SAMPLE_MASK) 338 339 #define LPSPI_CFGR1_AUTOPCS_MASK (0x4U) 340 #define LPSPI_CFGR1_AUTOPCS_SHIFT (2U) 341 #define LPSPI_CFGR1_AUTOPCS_WIDTH (1U) 342 #define LPSPI_CFGR1_AUTOPCS(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_AUTOPCS_SHIFT)) & LPSPI_CFGR1_AUTOPCS_MASK) 343 344 #define LPSPI_CFGR1_NOSTALL_MASK (0x8U) 345 #define LPSPI_CFGR1_NOSTALL_SHIFT (3U) 346 #define LPSPI_CFGR1_NOSTALL_WIDTH (1U) 347 #define LPSPI_CFGR1_NOSTALL(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_NOSTALL_SHIFT)) & LPSPI_CFGR1_NOSTALL_MASK) 348 349 #define LPSPI_CFGR1_PCSPOL_MASK (0xF00U) 350 #define LPSPI_CFGR1_PCSPOL_SHIFT (8U) 351 #define LPSPI_CFGR1_PCSPOL_WIDTH (4U) 352 #define LPSPI_CFGR1_PCSPOL(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSPOL_SHIFT)) & LPSPI_CFGR1_PCSPOL_MASK) 353 354 #define LPSPI_CFGR1_MATCFG_MASK (0x70000U) 355 #define LPSPI_CFGR1_MATCFG_SHIFT (16U) 356 #define LPSPI_CFGR1_MATCFG_WIDTH (3U) 357 #define LPSPI_CFGR1_MATCFG(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MATCFG_SHIFT)) & LPSPI_CFGR1_MATCFG_MASK) 358 359 #define LPSPI_CFGR1_PINCFG_MASK (0x3000000U) 360 #define LPSPI_CFGR1_PINCFG_SHIFT (24U) 361 #define LPSPI_CFGR1_PINCFG_WIDTH (2U) 362 #define LPSPI_CFGR1_PINCFG(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PINCFG_SHIFT)) & LPSPI_CFGR1_PINCFG_MASK) 363 364 #define LPSPI_CFGR1_OUTCFG_MASK (0x4000000U) 365 #define LPSPI_CFGR1_OUTCFG_SHIFT (26U) 366 #define LPSPI_CFGR1_OUTCFG_WIDTH (1U) 367 #define LPSPI_CFGR1_OUTCFG(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_OUTCFG_SHIFT)) & LPSPI_CFGR1_OUTCFG_MASK) 368 369 #define LPSPI_CFGR1_PCSCFG_MASK (0x8000000U) 370 #define LPSPI_CFGR1_PCSCFG_SHIFT (27U) 371 #define LPSPI_CFGR1_PCSCFG_WIDTH (1U) 372 #define LPSPI_CFGR1_PCSCFG(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSCFG_SHIFT)) & LPSPI_CFGR1_PCSCFG_MASK) 373 /*! @} */ 374 375 /*! @name DMR0 - Data Match Register 0 */ 376 /*! @{ */ 377 378 #define LPSPI_DMR0_MATCH0_MASK (0xFFFFFFFFU) 379 #define LPSPI_DMR0_MATCH0_SHIFT (0U) 380 #define LPSPI_DMR0_MATCH0_WIDTH (32U) 381 #define LPSPI_DMR0_MATCH0(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR0_MATCH0_SHIFT)) & LPSPI_DMR0_MATCH0_MASK) 382 /*! @} */ 383 384 /*! @name DMR1 - Data Match Register 1 */ 385 /*! @{ */ 386 387 #define LPSPI_DMR1_MATCH1_MASK (0xFFFFFFFFU) 388 #define LPSPI_DMR1_MATCH1_SHIFT (0U) 389 #define LPSPI_DMR1_MATCH1_WIDTH (32U) 390 #define LPSPI_DMR1_MATCH1(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR1_MATCH1_SHIFT)) & LPSPI_DMR1_MATCH1_MASK) 391 /*! @} */ 392 393 /*! @name CCR - Clock Configuration Register */ 394 /*! @{ */ 395 396 #define LPSPI_CCR_SCKDIV_MASK (0xFFU) 397 #define LPSPI_CCR_SCKDIV_SHIFT (0U) 398 #define LPSPI_CCR_SCKDIV_WIDTH (8U) 399 #define LPSPI_CCR_SCKDIV(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKDIV_SHIFT)) & LPSPI_CCR_SCKDIV_MASK) 400 401 #define LPSPI_CCR_DBT_MASK (0xFF00U) 402 #define LPSPI_CCR_DBT_SHIFT (8U) 403 #define LPSPI_CCR_DBT_WIDTH (8U) 404 #define LPSPI_CCR_DBT(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_DBT_SHIFT)) & LPSPI_CCR_DBT_MASK) 405 406 #define LPSPI_CCR_PCSSCK_MASK (0xFF0000U) 407 #define LPSPI_CCR_PCSSCK_SHIFT (16U) 408 #define LPSPI_CCR_PCSSCK_WIDTH (8U) 409 #define LPSPI_CCR_PCSSCK(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_PCSSCK_SHIFT)) & LPSPI_CCR_PCSSCK_MASK) 410 411 #define LPSPI_CCR_SCKPCS_MASK (0xFF000000U) 412 #define LPSPI_CCR_SCKPCS_SHIFT (24U) 413 #define LPSPI_CCR_SCKPCS_WIDTH (8U) 414 #define LPSPI_CCR_SCKPCS(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKPCS_SHIFT)) & LPSPI_CCR_SCKPCS_MASK) 415 /*! @} */ 416 417 /*! @name FCR - The FIFO Control register contains the RXWATER and TXWATER control fields. */ 418 /*! @{ */ 419 420 #define LPSPI_FCR_TXWATER_MASK (0x3U) 421 #define LPSPI_FCR_TXWATER_SHIFT (0U) 422 #define LPSPI_FCR_TXWATER_WIDTH (2U) 423 #define LPSPI_FCR_TXWATER(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_TXWATER_SHIFT)) & LPSPI_FCR_TXWATER_MASK) 424 425 #define LPSPI_FCR_RXWATER_MASK (0x30000U) 426 #define LPSPI_FCR_RXWATER_SHIFT (16U) 427 #define LPSPI_FCR_RXWATER_WIDTH (2U) 428 #define LPSPI_FCR_RXWATER(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_RXWATER_SHIFT)) & LPSPI_FCR_RXWATER_MASK) 429 /*! @} */ 430 431 /*! @name FSR - FIFO Status Register */ 432 /*! @{ */ 433 434 #define LPSPI_FSR_TXCOUNT_MASK (0x7U) 435 #define LPSPI_FSR_TXCOUNT_SHIFT (0U) 436 #define LPSPI_FSR_TXCOUNT_WIDTH (3U) 437 #define LPSPI_FSR_TXCOUNT(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_TXCOUNT_SHIFT)) & LPSPI_FSR_TXCOUNT_MASK) 438 439 #define LPSPI_FSR_RXCOUNT_MASK (0x70000U) 440 #define LPSPI_FSR_RXCOUNT_SHIFT (16U) 441 #define LPSPI_FSR_RXCOUNT_WIDTH (3U) 442 #define LPSPI_FSR_RXCOUNT(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_RXCOUNT_SHIFT)) & LPSPI_FSR_RXCOUNT_MASK) 443 /*! @} */ 444 445 /*! @name TCR - Transmit Command Register */ 446 /*! @{ */ 447 448 #define LPSPI_TCR_FRAMESZ_MASK (0xFFFU) 449 #define LPSPI_TCR_FRAMESZ_SHIFT (0U) 450 #define LPSPI_TCR_FRAMESZ_WIDTH (12U) 451 #define LPSPI_TCR_FRAMESZ(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_FRAMESZ_SHIFT)) & LPSPI_TCR_FRAMESZ_MASK) 452 453 #define LPSPI_TCR_WIDTH_MASK (0x30000U) 454 #define LPSPI_TCR_WIDTH_SHIFT (16U) 455 #define LPSPI_TCR_WIDTH_WIDTH (2U) 456 #define LPSPI_TCR_WIDTH(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_WIDTH_SHIFT)) & LPSPI_TCR_WIDTH_MASK) 457 458 #define LPSPI_TCR_TXMSK_MASK (0x40000U) 459 #define LPSPI_TCR_TXMSK_SHIFT (18U) 460 #define LPSPI_TCR_TXMSK_WIDTH (1U) 461 #define LPSPI_TCR_TXMSK(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_TXMSK_SHIFT)) & LPSPI_TCR_TXMSK_MASK) 462 463 #define LPSPI_TCR_RXMSK_MASK (0x80000U) 464 #define LPSPI_TCR_RXMSK_SHIFT (19U) 465 #define LPSPI_TCR_RXMSK_WIDTH (1U) 466 #define LPSPI_TCR_RXMSK(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_RXMSK_SHIFT)) & LPSPI_TCR_RXMSK_MASK) 467 468 #define LPSPI_TCR_CONTC_MASK (0x100000U) 469 #define LPSPI_TCR_CONTC_SHIFT (20U) 470 #define LPSPI_TCR_CONTC_WIDTH (1U) 471 #define LPSPI_TCR_CONTC(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONTC_SHIFT)) & LPSPI_TCR_CONTC_MASK) 472 473 #define LPSPI_TCR_CONT_MASK (0x200000U) 474 #define LPSPI_TCR_CONT_SHIFT (21U) 475 #define LPSPI_TCR_CONT_WIDTH (1U) 476 #define LPSPI_TCR_CONT(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONT_SHIFT)) & LPSPI_TCR_CONT_MASK) 477 478 #define LPSPI_TCR_BYSW_MASK (0x400000U) 479 #define LPSPI_TCR_BYSW_SHIFT (22U) 480 #define LPSPI_TCR_BYSW_WIDTH (1U) 481 #define LPSPI_TCR_BYSW(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_BYSW_SHIFT)) & LPSPI_TCR_BYSW_MASK) 482 483 #define LPSPI_TCR_LSBF_MASK (0x800000U) 484 #define LPSPI_TCR_LSBF_SHIFT (23U) 485 #define LPSPI_TCR_LSBF_WIDTH (1U) 486 #define LPSPI_TCR_LSBF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_LSBF_SHIFT)) & LPSPI_TCR_LSBF_MASK) 487 488 #define LPSPI_TCR_PCS_MASK (0x3000000U) 489 #define LPSPI_TCR_PCS_SHIFT (24U) 490 #define LPSPI_TCR_PCS_WIDTH (2U) 491 #define LPSPI_TCR_PCS(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PCS_SHIFT)) & LPSPI_TCR_PCS_MASK) 492 493 #define LPSPI_TCR_PRESCALE_MASK (0x38000000U) 494 #define LPSPI_TCR_PRESCALE_SHIFT (27U) 495 #define LPSPI_TCR_PRESCALE_WIDTH (3U) 496 #define LPSPI_TCR_PRESCALE(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PRESCALE_SHIFT)) & LPSPI_TCR_PRESCALE_MASK) 497 498 #define LPSPI_TCR_CPHA_MASK (0x40000000U) 499 #define LPSPI_TCR_CPHA_SHIFT (30U) 500 #define LPSPI_TCR_CPHA_WIDTH (1U) 501 #define LPSPI_TCR_CPHA(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPHA_SHIFT)) & LPSPI_TCR_CPHA_MASK) 502 503 #define LPSPI_TCR_CPOL_MASK (0x80000000U) 504 #define LPSPI_TCR_CPOL_SHIFT (31U) 505 #define LPSPI_TCR_CPOL_WIDTH (1U) 506 #define LPSPI_TCR_CPOL(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPOL_SHIFT)) & LPSPI_TCR_CPOL_MASK) 507 /*! @} */ 508 509 /*! @name TDR - Transmit Data Register */ 510 /*! @{ */ 511 512 #define LPSPI_TDR_DATA_MASK (0xFFFFFFFFU) 513 #define LPSPI_TDR_DATA_SHIFT (0U) 514 #define LPSPI_TDR_DATA_WIDTH (32U) 515 #define LPSPI_TDR_DATA(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_TDR_DATA_SHIFT)) & LPSPI_TDR_DATA_MASK) 516 /*! @} */ 517 518 /*! @name RSR - Receive Status Register */ 519 /*! @{ */ 520 521 #define LPSPI_RSR_SOF_MASK (0x1U) 522 #define LPSPI_RSR_SOF_SHIFT (0U) 523 #define LPSPI_RSR_SOF_WIDTH (1U) 524 #define LPSPI_RSR_SOF(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_SOF_SHIFT)) & LPSPI_RSR_SOF_MASK) 525 526 #define LPSPI_RSR_RXEMPTY_MASK (0x2U) 527 #define LPSPI_RSR_RXEMPTY_SHIFT (1U) 528 #define LPSPI_RSR_RXEMPTY_WIDTH (1U) 529 #define LPSPI_RSR_RXEMPTY(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_RXEMPTY_SHIFT)) & LPSPI_RSR_RXEMPTY_MASK) 530 /*! @} */ 531 532 /*! @name RDR - Receive Data Register */ 533 /*! @{ */ 534 535 #define LPSPI_RDR_DATA_MASK (0xFFFFFFFFU) 536 #define LPSPI_RDR_DATA_SHIFT (0U) 537 #define LPSPI_RDR_DATA_WIDTH (32U) 538 #define LPSPI_RDR_DATA(x) (((uint32_t)(((uint32_t)(x)) << LPSPI_RDR_DATA_SHIFT)) & LPSPI_RDR_DATA_MASK) 539 /*! @} */ 540 541 /*! 542 * @} 543 */ /* end of group LPSPI_Register_Masks */ 544 545 /*! 546 * @} 547 */ /* end of group LPSPI_Peripheral_Access_Layer */ 548 549 #endif /* #if !defined(S32K118_LPSPI_H_) */ 550