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 S32K148_LPSPI.h
10  * @version 1.1
11  * @date 2022-02-02
12  * @brief Peripheral Access Layer for S32K148_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(S32K148_LPSPI_H_)  /* Check if memory map has not been already included */
58 #define S32K148_LPSPI_H_
59 
60 #include "S32K148_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                     (3u)
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 /** Peripheral LPSPI2 base address */
110 #define IP_LPSPI2_BASE                           (0x4002E000u)
111 /** Peripheral LPSPI2 base pointer */
112 #define IP_LPSPI2                                ((LPSPI_Type *)IP_LPSPI2_BASE)
113 /** Array initializer of LPSPI peripheral base addresses */
114 #define IP_LPSPI_BASE_ADDRS                      { IP_LPSPI0_BASE, IP_LPSPI1_BASE, IP_LPSPI2_BASE }
115 /** Array initializer of LPSPI peripheral base pointers */
116 #define IP_LPSPI_BASE_PTRS                       { IP_LPSPI0, IP_LPSPI1, IP_LPSPI2 }
117 
118 /* ----------------------------------------------------------------------------
119    -- LPSPI Register Masks
120    ---------------------------------------------------------------------------- */
121 
122 /*!
123  * @addtogroup LPSPI_Register_Masks LPSPI Register Masks
124  * @{
125  */
126 
127 /*! @name VERID - Version ID Register */
128 /*! @{ */
129 
130 #define LPSPI_VERID_FEATURE_MASK                 (0xFFFFU)
131 #define LPSPI_VERID_FEATURE_SHIFT                (0U)
132 #define LPSPI_VERID_FEATURE_WIDTH                (16U)
133 #define LPSPI_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_FEATURE_SHIFT)) & LPSPI_VERID_FEATURE_MASK)
134 
135 #define LPSPI_VERID_MINOR_MASK                   (0xFF0000U)
136 #define LPSPI_VERID_MINOR_SHIFT                  (16U)
137 #define LPSPI_VERID_MINOR_WIDTH                  (8U)
138 #define LPSPI_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MINOR_SHIFT)) & LPSPI_VERID_MINOR_MASK)
139 
140 #define LPSPI_VERID_MAJOR_MASK                   (0xFF000000U)
141 #define LPSPI_VERID_MAJOR_SHIFT                  (24U)
142 #define LPSPI_VERID_MAJOR_WIDTH                  (8U)
143 #define LPSPI_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MAJOR_SHIFT)) & LPSPI_VERID_MAJOR_MASK)
144 /*! @} */
145 
146 /*! @name PARAM - Parameter Register */
147 /*! @{ */
148 
149 #define LPSPI_PARAM_TXFIFO_MASK                  (0xFFU)
150 #define LPSPI_PARAM_TXFIFO_SHIFT                 (0U)
151 #define LPSPI_PARAM_TXFIFO_WIDTH                 (8U)
152 #define LPSPI_PARAM_TXFIFO(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_TXFIFO_SHIFT)) & LPSPI_PARAM_TXFIFO_MASK)
153 
154 #define LPSPI_PARAM_RXFIFO_MASK                  (0xFF00U)
155 #define LPSPI_PARAM_RXFIFO_SHIFT                 (8U)
156 #define LPSPI_PARAM_RXFIFO_WIDTH                 (8U)
157 #define LPSPI_PARAM_RXFIFO(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_RXFIFO_SHIFT)) & LPSPI_PARAM_RXFIFO_MASK)
158 /*! @} */
159 
160 /*! @name CR - Control Register */
161 /*! @{ */
162 
163 #define LPSPI_CR_MEN_MASK                        (0x1U)
164 #define LPSPI_CR_MEN_SHIFT                       (0U)
165 #define LPSPI_CR_MEN_WIDTH                       (1U)
166 #define LPSPI_CR_MEN(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_MEN_SHIFT)) & LPSPI_CR_MEN_MASK)
167 
168 #define LPSPI_CR_RST_MASK                        (0x2U)
169 #define LPSPI_CR_RST_SHIFT                       (1U)
170 #define LPSPI_CR_RST_WIDTH                       (1U)
171 #define LPSPI_CR_RST(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RST_SHIFT)) & LPSPI_CR_RST_MASK)
172 
173 #define LPSPI_CR_DOZEN_MASK                      (0x4U)
174 #define LPSPI_CR_DOZEN_SHIFT                     (2U)
175 #define LPSPI_CR_DOZEN_WIDTH                     (1U)
176 #define LPSPI_CR_DOZEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DOZEN_SHIFT)) & LPSPI_CR_DOZEN_MASK)
177 
178 #define LPSPI_CR_DBGEN_MASK                      (0x8U)
179 #define LPSPI_CR_DBGEN_SHIFT                     (3U)
180 #define LPSPI_CR_DBGEN_WIDTH                     (1U)
181 #define LPSPI_CR_DBGEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DBGEN_SHIFT)) & LPSPI_CR_DBGEN_MASK)
182 
183 #define LPSPI_CR_RTF_MASK                        (0x100U)
184 #define LPSPI_CR_RTF_SHIFT                       (8U)
185 #define LPSPI_CR_RTF_WIDTH                       (1U)
186 #define LPSPI_CR_RTF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RTF_SHIFT)) & LPSPI_CR_RTF_MASK)
187 
188 #define LPSPI_CR_RRF_MASK                        (0x200U)
189 #define LPSPI_CR_RRF_SHIFT                       (9U)
190 #define LPSPI_CR_RRF_WIDTH                       (1U)
191 #define LPSPI_CR_RRF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RRF_SHIFT)) & LPSPI_CR_RRF_MASK)
192 /*! @} */
193 
194 /*! @name SR - Status Register */
195 /*! @{ */
196 
197 #define LPSPI_SR_TDF_MASK                        (0x1U)
198 #define LPSPI_SR_TDF_SHIFT                       (0U)
199 #define LPSPI_SR_TDF_WIDTH                       (1U)
200 #define LPSPI_SR_TDF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TDF_SHIFT)) & LPSPI_SR_TDF_MASK)
201 
202 #define LPSPI_SR_RDF_MASK                        (0x2U)
203 #define LPSPI_SR_RDF_SHIFT                       (1U)
204 #define LPSPI_SR_RDF_WIDTH                       (1U)
205 #define LPSPI_SR_RDF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_RDF_SHIFT)) & LPSPI_SR_RDF_MASK)
206 
207 #define LPSPI_SR_WCF_MASK                        (0x100U)
208 #define LPSPI_SR_WCF_SHIFT                       (8U)
209 #define LPSPI_SR_WCF_WIDTH                       (1U)
210 #define LPSPI_SR_WCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_WCF_SHIFT)) & LPSPI_SR_WCF_MASK)
211 
212 #define LPSPI_SR_FCF_MASK                        (0x200U)
213 #define LPSPI_SR_FCF_SHIFT                       (9U)
214 #define LPSPI_SR_FCF_WIDTH                       (1U)
215 #define LPSPI_SR_FCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_FCF_SHIFT)) & LPSPI_SR_FCF_MASK)
216 
217 #define LPSPI_SR_TCF_MASK                        (0x400U)
218 #define LPSPI_SR_TCF_SHIFT                       (10U)
219 #define LPSPI_SR_TCF_WIDTH                       (1U)
220 #define LPSPI_SR_TCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TCF_SHIFT)) & LPSPI_SR_TCF_MASK)
221 
222 #define LPSPI_SR_TEF_MASK                        (0x800U)
223 #define LPSPI_SR_TEF_SHIFT                       (11U)
224 #define LPSPI_SR_TEF_WIDTH                       (1U)
225 #define LPSPI_SR_TEF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TEF_SHIFT)) & LPSPI_SR_TEF_MASK)
226 
227 #define LPSPI_SR_REF_MASK                        (0x1000U)
228 #define LPSPI_SR_REF_SHIFT                       (12U)
229 #define LPSPI_SR_REF_WIDTH                       (1U)
230 #define LPSPI_SR_REF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_REF_SHIFT)) & LPSPI_SR_REF_MASK)
231 
232 #define LPSPI_SR_DMF_MASK                        (0x2000U)
233 #define LPSPI_SR_DMF_SHIFT                       (13U)
234 #define LPSPI_SR_DMF_WIDTH                       (1U)
235 #define LPSPI_SR_DMF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_DMF_SHIFT)) & LPSPI_SR_DMF_MASK)
236 
237 #define LPSPI_SR_MBF_MASK                        (0x1000000U)
238 #define LPSPI_SR_MBF_SHIFT                       (24U)
239 #define LPSPI_SR_MBF_WIDTH                       (1U)
240 #define LPSPI_SR_MBF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_MBF_SHIFT)) & LPSPI_SR_MBF_MASK)
241 /*! @} */
242 
243 /*! @name IER - Interrupt Enable Register */
244 /*! @{ */
245 
246 #define LPSPI_IER_TDIE_MASK                      (0x1U)
247 #define LPSPI_IER_TDIE_SHIFT                     (0U)
248 #define LPSPI_IER_TDIE_WIDTH                     (1U)
249 #define LPSPI_IER_TDIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TDIE_SHIFT)) & LPSPI_IER_TDIE_MASK)
250 
251 #define LPSPI_IER_RDIE_MASK                      (0x2U)
252 #define LPSPI_IER_RDIE_SHIFT                     (1U)
253 #define LPSPI_IER_RDIE_WIDTH                     (1U)
254 #define LPSPI_IER_RDIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_RDIE_SHIFT)) & LPSPI_IER_RDIE_MASK)
255 
256 #define LPSPI_IER_WCIE_MASK                      (0x100U)
257 #define LPSPI_IER_WCIE_SHIFT                     (8U)
258 #define LPSPI_IER_WCIE_WIDTH                     (1U)
259 #define LPSPI_IER_WCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_WCIE_SHIFT)) & LPSPI_IER_WCIE_MASK)
260 
261 #define LPSPI_IER_FCIE_MASK                      (0x200U)
262 #define LPSPI_IER_FCIE_SHIFT                     (9U)
263 #define LPSPI_IER_FCIE_WIDTH                     (1U)
264 #define LPSPI_IER_FCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_FCIE_SHIFT)) & LPSPI_IER_FCIE_MASK)
265 
266 #define LPSPI_IER_TCIE_MASK                      (0x400U)
267 #define LPSPI_IER_TCIE_SHIFT                     (10U)
268 #define LPSPI_IER_TCIE_WIDTH                     (1U)
269 #define LPSPI_IER_TCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TCIE_SHIFT)) & LPSPI_IER_TCIE_MASK)
270 
271 #define LPSPI_IER_TEIE_MASK                      (0x800U)
272 #define LPSPI_IER_TEIE_SHIFT                     (11U)
273 #define LPSPI_IER_TEIE_WIDTH                     (1U)
274 #define LPSPI_IER_TEIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TEIE_SHIFT)) & LPSPI_IER_TEIE_MASK)
275 
276 #define LPSPI_IER_REIE_MASK                      (0x1000U)
277 #define LPSPI_IER_REIE_SHIFT                     (12U)
278 #define LPSPI_IER_REIE_WIDTH                     (1U)
279 #define LPSPI_IER_REIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_REIE_SHIFT)) & LPSPI_IER_REIE_MASK)
280 
281 #define LPSPI_IER_DMIE_MASK                      (0x2000U)
282 #define LPSPI_IER_DMIE_SHIFT                     (13U)
283 #define LPSPI_IER_DMIE_WIDTH                     (1U)
284 #define LPSPI_IER_DMIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_DMIE_SHIFT)) & LPSPI_IER_DMIE_MASK)
285 /*! @} */
286 
287 /*! @name DER - DMA Enable Register */
288 /*! @{ */
289 
290 #define LPSPI_DER_TDDE_MASK                      (0x1U)
291 #define LPSPI_DER_TDDE_SHIFT                     (0U)
292 #define LPSPI_DER_TDDE_WIDTH                     (1U)
293 #define LPSPI_DER_TDDE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_TDDE_SHIFT)) & LPSPI_DER_TDDE_MASK)
294 
295 #define LPSPI_DER_RDDE_MASK                      (0x2U)
296 #define LPSPI_DER_RDDE_SHIFT                     (1U)
297 #define LPSPI_DER_RDDE_WIDTH                     (1U)
298 #define LPSPI_DER_RDDE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_RDDE_SHIFT)) & LPSPI_DER_RDDE_MASK)
299 /*! @} */
300 
301 /*! @name CFGR0 - Configuration Register 0 */
302 /*! @{ */
303 
304 #define LPSPI_CFGR0_HREN_MASK                    (0x1U)
305 #define LPSPI_CFGR0_HREN_SHIFT                   (0U)
306 #define LPSPI_CFGR0_HREN_WIDTH                   (1U)
307 #define LPSPI_CFGR0_HREN(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HREN_SHIFT)) & LPSPI_CFGR0_HREN_MASK)
308 
309 #define LPSPI_CFGR0_HRPOL_MASK                   (0x2U)
310 #define LPSPI_CFGR0_HRPOL_SHIFT                  (1U)
311 #define LPSPI_CFGR0_HRPOL_WIDTH                  (1U)
312 #define LPSPI_CFGR0_HRPOL(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRPOL_SHIFT)) & LPSPI_CFGR0_HRPOL_MASK)
313 
314 #define LPSPI_CFGR0_HRSEL_MASK                   (0x4U)
315 #define LPSPI_CFGR0_HRSEL_SHIFT                  (2U)
316 #define LPSPI_CFGR0_HRSEL_WIDTH                  (1U)
317 #define LPSPI_CFGR0_HRSEL(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRSEL_SHIFT)) & LPSPI_CFGR0_HRSEL_MASK)
318 
319 #define LPSPI_CFGR0_CIRFIFO_MASK                 (0x100U)
320 #define LPSPI_CFGR0_CIRFIFO_SHIFT                (8U)
321 #define LPSPI_CFGR0_CIRFIFO_WIDTH                (1U)
322 #define LPSPI_CFGR0_CIRFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_CIRFIFO_SHIFT)) & LPSPI_CFGR0_CIRFIFO_MASK)
323 
324 #define LPSPI_CFGR0_RDMO_MASK                    (0x200U)
325 #define LPSPI_CFGR0_RDMO_SHIFT                   (9U)
326 #define LPSPI_CFGR0_RDMO_WIDTH                   (1U)
327 #define LPSPI_CFGR0_RDMO(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_RDMO_SHIFT)) & LPSPI_CFGR0_RDMO_MASK)
328 /*! @} */
329 
330 /*! @name CFGR1 - Configuration Register 1 */
331 /*! @{ */
332 
333 #define LPSPI_CFGR1_MASTER_MASK                  (0x1U)
334 #define LPSPI_CFGR1_MASTER_SHIFT                 (0U)
335 #define LPSPI_CFGR1_MASTER_WIDTH                 (1U)
336 #define LPSPI_CFGR1_MASTER(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MASTER_SHIFT)) & LPSPI_CFGR1_MASTER_MASK)
337 
338 #define LPSPI_CFGR1_SAMPLE_MASK                  (0x2U)
339 #define LPSPI_CFGR1_SAMPLE_SHIFT                 (1U)
340 #define LPSPI_CFGR1_SAMPLE_WIDTH                 (1U)
341 #define LPSPI_CFGR1_SAMPLE(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_SAMPLE_SHIFT)) & LPSPI_CFGR1_SAMPLE_MASK)
342 
343 #define LPSPI_CFGR1_AUTOPCS_MASK                 (0x4U)
344 #define LPSPI_CFGR1_AUTOPCS_SHIFT                (2U)
345 #define LPSPI_CFGR1_AUTOPCS_WIDTH                (1U)
346 #define LPSPI_CFGR1_AUTOPCS(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_AUTOPCS_SHIFT)) & LPSPI_CFGR1_AUTOPCS_MASK)
347 
348 #define LPSPI_CFGR1_NOSTALL_MASK                 (0x8U)
349 #define LPSPI_CFGR1_NOSTALL_SHIFT                (3U)
350 #define LPSPI_CFGR1_NOSTALL_WIDTH                (1U)
351 #define LPSPI_CFGR1_NOSTALL(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_NOSTALL_SHIFT)) & LPSPI_CFGR1_NOSTALL_MASK)
352 
353 #define LPSPI_CFGR1_PCSPOL_MASK                  (0xF00U)
354 #define LPSPI_CFGR1_PCSPOL_SHIFT                 (8U)
355 #define LPSPI_CFGR1_PCSPOL_WIDTH                 (4U)
356 #define LPSPI_CFGR1_PCSPOL(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSPOL_SHIFT)) & LPSPI_CFGR1_PCSPOL_MASK)
357 
358 #define LPSPI_CFGR1_MATCFG_MASK                  (0x70000U)
359 #define LPSPI_CFGR1_MATCFG_SHIFT                 (16U)
360 #define LPSPI_CFGR1_MATCFG_WIDTH                 (3U)
361 #define LPSPI_CFGR1_MATCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MATCFG_SHIFT)) & LPSPI_CFGR1_MATCFG_MASK)
362 
363 #define LPSPI_CFGR1_PINCFG_MASK                  (0x3000000U)
364 #define LPSPI_CFGR1_PINCFG_SHIFT                 (24U)
365 #define LPSPI_CFGR1_PINCFG_WIDTH                 (2U)
366 #define LPSPI_CFGR1_PINCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PINCFG_SHIFT)) & LPSPI_CFGR1_PINCFG_MASK)
367 
368 #define LPSPI_CFGR1_OUTCFG_MASK                  (0x4000000U)
369 #define LPSPI_CFGR1_OUTCFG_SHIFT                 (26U)
370 #define LPSPI_CFGR1_OUTCFG_WIDTH                 (1U)
371 #define LPSPI_CFGR1_OUTCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_OUTCFG_SHIFT)) & LPSPI_CFGR1_OUTCFG_MASK)
372 
373 #define LPSPI_CFGR1_PCSCFG_MASK                  (0x8000000U)
374 #define LPSPI_CFGR1_PCSCFG_SHIFT                 (27U)
375 #define LPSPI_CFGR1_PCSCFG_WIDTH                 (1U)
376 #define LPSPI_CFGR1_PCSCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSCFG_SHIFT)) & LPSPI_CFGR1_PCSCFG_MASK)
377 /*! @} */
378 
379 /*! @name DMR0 - Data Match Register 0 */
380 /*! @{ */
381 
382 #define LPSPI_DMR0_MATCH0_MASK                   (0xFFFFFFFFU)
383 #define LPSPI_DMR0_MATCH0_SHIFT                  (0U)
384 #define LPSPI_DMR0_MATCH0_WIDTH                  (32U)
385 #define LPSPI_DMR0_MATCH0(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR0_MATCH0_SHIFT)) & LPSPI_DMR0_MATCH0_MASK)
386 /*! @} */
387 
388 /*! @name DMR1 - Data Match Register 1 */
389 /*! @{ */
390 
391 #define LPSPI_DMR1_MATCH1_MASK                   (0xFFFFFFFFU)
392 #define LPSPI_DMR1_MATCH1_SHIFT                  (0U)
393 #define LPSPI_DMR1_MATCH1_WIDTH                  (32U)
394 #define LPSPI_DMR1_MATCH1(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR1_MATCH1_SHIFT)) & LPSPI_DMR1_MATCH1_MASK)
395 /*! @} */
396 
397 /*! @name CCR - Clock Configuration Register */
398 /*! @{ */
399 
400 #define LPSPI_CCR_SCKDIV_MASK                    (0xFFU)
401 #define LPSPI_CCR_SCKDIV_SHIFT                   (0U)
402 #define LPSPI_CCR_SCKDIV_WIDTH                   (8U)
403 #define LPSPI_CCR_SCKDIV(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKDIV_SHIFT)) & LPSPI_CCR_SCKDIV_MASK)
404 
405 #define LPSPI_CCR_DBT_MASK                       (0xFF00U)
406 #define LPSPI_CCR_DBT_SHIFT                      (8U)
407 #define LPSPI_CCR_DBT_WIDTH                      (8U)
408 #define LPSPI_CCR_DBT(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_DBT_SHIFT)) & LPSPI_CCR_DBT_MASK)
409 
410 #define LPSPI_CCR_PCSSCK_MASK                    (0xFF0000U)
411 #define LPSPI_CCR_PCSSCK_SHIFT                   (16U)
412 #define LPSPI_CCR_PCSSCK_WIDTH                   (8U)
413 #define LPSPI_CCR_PCSSCK(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_PCSSCK_SHIFT)) & LPSPI_CCR_PCSSCK_MASK)
414 
415 #define LPSPI_CCR_SCKPCS_MASK                    (0xFF000000U)
416 #define LPSPI_CCR_SCKPCS_SHIFT                   (24U)
417 #define LPSPI_CCR_SCKPCS_WIDTH                   (8U)
418 #define LPSPI_CCR_SCKPCS(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKPCS_SHIFT)) & LPSPI_CCR_SCKPCS_MASK)
419 /*! @} */
420 
421 /*! @name FCR - The FIFO Control register contains the RXWATER and TXWATER control fields. */
422 /*! @{ */
423 
424 #define LPSPI_FCR_TXWATER_MASK                   (0x3U)
425 #define LPSPI_FCR_TXWATER_SHIFT                  (0U)
426 #define LPSPI_FCR_TXWATER_WIDTH                  (2U)
427 #define LPSPI_FCR_TXWATER(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_TXWATER_SHIFT)) & LPSPI_FCR_TXWATER_MASK)
428 
429 #define LPSPI_FCR_RXWATER_MASK                   (0x30000U)
430 #define LPSPI_FCR_RXWATER_SHIFT                  (16U)
431 #define LPSPI_FCR_RXWATER_WIDTH                  (2U)
432 #define LPSPI_FCR_RXWATER(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_RXWATER_SHIFT)) & LPSPI_FCR_RXWATER_MASK)
433 /*! @} */
434 
435 /*! @name FSR - FIFO Status Register */
436 /*! @{ */
437 
438 #define LPSPI_FSR_TXCOUNT_MASK                   (0x7U)
439 #define LPSPI_FSR_TXCOUNT_SHIFT                  (0U)
440 #define LPSPI_FSR_TXCOUNT_WIDTH                  (3U)
441 #define LPSPI_FSR_TXCOUNT(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_TXCOUNT_SHIFT)) & LPSPI_FSR_TXCOUNT_MASK)
442 
443 #define LPSPI_FSR_RXCOUNT_MASK                   (0x70000U)
444 #define LPSPI_FSR_RXCOUNT_SHIFT                  (16U)
445 #define LPSPI_FSR_RXCOUNT_WIDTH                  (3U)
446 #define LPSPI_FSR_RXCOUNT(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_RXCOUNT_SHIFT)) & LPSPI_FSR_RXCOUNT_MASK)
447 /*! @} */
448 
449 /*! @name TCR - Transmit Command Register */
450 /*! @{ */
451 
452 #define LPSPI_TCR_FRAMESZ_MASK                   (0xFFFU)
453 #define LPSPI_TCR_FRAMESZ_SHIFT                  (0U)
454 #define LPSPI_TCR_FRAMESZ_WIDTH                  (12U)
455 #define LPSPI_TCR_FRAMESZ(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_FRAMESZ_SHIFT)) & LPSPI_TCR_FRAMESZ_MASK)
456 
457 #define LPSPI_TCR_WIDTH_MASK                     (0x30000U)
458 #define LPSPI_TCR_WIDTH_SHIFT                    (16U)
459 #define LPSPI_TCR_WIDTH_WIDTH                    (2U)
460 #define LPSPI_TCR_WIDTH(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_WIDTH_SHIFT)) & LPSPI_TCR_WIDTH_MASK)
461 
462 #define LPSPI_TCR_TXMSK_MASK                     (0x40000U)
463 #define LPSPI_TCR_TXMSK_SHIFT                    (18U)
464 #define LPSPI_TCR_TXMSK_WIDTH                    (1U)
465 #define LPSPI_TCR_TXMSK(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_TXMSK_SHIFT)) & LPSPI_TCR_TXMSK_MASK)
466 
467 #define LPSPI_TCR_RXMSK_MASK                     (0x80000U)
468 #define LPSPI_TCR_RXMSK_SHIFT                    (19U)
469 #define LPSPI_TCR_RXMSK_WIDTH                    (1U)
470 #define LPSPI_TCR_RXMSK(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_RXMSK_SHIFT)) & LPSPI_TCR_RXMSK_MASK)
471 
472 #define LPSPI_TCR_CONTC_MASK                     (0x100000U)
473 #define LPSPI_TCR_CONTC_SHIFT                    (20U)
474 #define LPSPI_TCR_CONTC_WIDTH                    (1U)
475 #define LPSPI_TCR_CONTC(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONTC_SHIFT)) & LPSPI_TCR_CONTC_MASK)
476 
477 #define LPSPI_TCR_CONT_MASK                      (0x200000U)
478 #define LPSPI_TCR_CONT_SHIFT                     (21U)
479 #define LPSPI_TCR_CONT_WIDTH                     (1U)
480 #define LPSPI_TCR_CONT(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONT_SHIFT)) & LPSPI_TCR_CONT_MASK)
481 
482 #define LPSPI_TCR_BYSW_MASK                      (0x400000U)
483 #define LPSPI_TCR_BYSW_SHIFT                     (22U)
484 #define LPSPI_TCR_BYSW_WIDTH                     (1U)
485 #define LPSPI_TCR_BYSW(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_BYSW_SHIFT)) & LPSPI_TCR_BYSW_MASK)
486 
487 #define LPSPI_TCR_LSBF_MASK                      (0x800000U)
488 #define LPSPI_TCR_LSBF_SHIFT                     (23U)
489 #define LPSPI_TCR_LSBF_WIDTH                     (1U)
490 #define LPSPI_TCR_LSBF(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_LSBF_SHIFT)) & LPSPI_TCR_LSBF_MASK)
491 
492 #define LPSPI_TCR_PCS_MASK                       (0x3000000U)
493 #define LPSPI_TCR_PCS_SHIFT                      (24U)
494 #define LPSPI_TCR_PCS_WIDTH                      (2U)
495 #define LPSPI_TCR_PCS(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PCS_SHIFT)) & LPSPI_TCR_PCS_MASK)
496 
497 #define LPSPI_TCR_PRESCALE_MASK                  (0x38000000U)
498 #define LPSPI_TCR_PRESCALE_SHIFT                 (27U)
499 #define LPSPI_TCR_PRESCALE_WIDTH                 (3U)
500 #define LPSPI_TCR_PRESCALE(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PRESCALE_SHIFT)) & LPSPI_TCR_PRESCALE_MASK)
501 
502 #define LPSPI_TCR_CPHA_MASK                      (0x40000000U)
503 #define LPSPI_TCR_CPHA_SHIFT                     (30U)
504 #define LPSPI_TCR_CPHA_WIDTH                     (1U)
505 #define LPSPI_TCR_CPHA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPHA_SHIFT)) & LPSPI_TCR_CPHA_MASK)
506 
507 #define LPSPI_TCR_CPOL_MASK                      (0x80000000U)
508 #define LPSPI_TCR_CPOL_SHIFT                     (31U)
509 #define LPSPI_TCR_CPOL_WIDTH                     (1U)
510 #define LPSPI_TCR_CPOL(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPOL_SHIFT)) & LPSPI_TCR_CPOL_MASK)
511 /*! @} */
512 
513 /*! @name TDR - Transmit Data Register */
514 /*! @{ */
515 
516 #define LPSPI_TDR_DATA_MASK                      (0xFFFFFFFFU)
517 #define LPSPI_TDR_DATA_SHIFT                     (0U)
518 #define LPSPI_TDR_DATA_WIDTH                     (32U)
519 #define LPSPI_TDR_DATA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TDR_DATA_SHIFT)) & LPSPI_TDR_DATA_MASK)
520 /*! @} */
521 
522 /*! @name RSR - Receive Status Register */
523 /*! @{ */
524 
525 #define LPSPI_RSR_SOF_MASK                       (0x1U)
526 #define LPSPI_RSR_SOF_SHIFT                      (0U)
527 #define LPSPI_RSR_SOF_WIDTH                      (1U)
528 #define LPSPI_RSR_SOF(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_SOF_SHIFT)) & LPSPI_RSR_SOF_MASK)
529 
530 #define LPSPI_RSR_RXEMPTY_MASK                   (0x2U)
531 #define LPSPI_RSR_RXEMPTY_SHIFT                  (1U)
532 #define LPSPI_RSR_RXEMPTY_WIDTH                  (1U)
533 #define LPSPI_RSR_RXEMPTY(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_RXEMPTY_SHIFT)) & LPSPI_RSR_RXEMPTY_MASK)
534 /*! @} */
535 
536 /*! @name RDR - Receive Data Register */
537 /*! @{ */
538 
539 #define LPSPI_RDR_DATA_MASK                      (0xFFFFFFFFU)
540 #define LPSPI_RDR_DATA_SHIFT                     (0U)
541 #define LPSPI_RDR_DATA_WIDTH                     (32U)
542 #define LPSPI_RDR_DATA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_RDR_DATA_SHIFT)) & LPSPI_RDR_DATA_MASK)
543 /*! @} */
544 
545 /*!
546  * @}
547  */ /* end of group LPSPI_Register_Masks */
548 
549 /*!
550  * @}
551  */ /* end of group LPSPI_Peripheral_Access_Layer */
552 
553 #endif  /* #if !defined(S32K148_LPSPI_H_) */
554