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_SAI.h
10  * @version 1.1
11  * @date 2022-02-02
12  * @brief Peripheral Access Layer for S32K148_SAI
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_SAI_H_)  /* Check if memory map has not been already included */
58 #define S32K148_SAI_H_
59 
60 #include "S32K148_COMMON.h"
61 
62 /* ----------------------------------------------------------------------------
63    -- SAI Peripheral Access Layer
64    ---------------------------------------------------------------------------- */
65 
66 /*!
67  * @addtogroup SAI_Peripheral_Access_Layer SAI Peripheral Access Layer
68  * @{
69  */
70 
71 /** SAI - Size of Registers Arrays */
72 #define SAI_TDR_COUNT                             4u
73 #define SAI_TFR_COUNT                             4u
74 #define SAI_RDR_COUNT                             4u
75 #define SAI_RFR_COUNT                             4u
76 
77 /** SAI - Register Layout Typedef */
78 typedef struct {
79   __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
80   __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
81   __IO uint32_t TCSR;                              /**< SAI Transmit Control Register, offset: 0x8 */
82   __IO uint32_t TCR1;                              /**< SAI Transmit Configuration 1 Register, offset: 0xC */
83   __IO uint32_t TCR2;                              /**< SAI Transmit Configuration 2 Register, offset: 0x10 */
84   __IO uint32_t TCR3;                              /**< SAI Transmit Configuration 3 Register, offset: 0x14 */
85   __IO uint32_t TCR4;                              /**< SAI Transmit Configuration 4 Register, offset: 0x18 */
86   __IO uint32_t TCR5;                              /**< SAI Transmit Configuration 5 Register, offset: 0x1C */
87   __O  uint32_t TDR[SAI_TDR_COUNT];                /**< SAI Transmit Data Register, array offset: 0x20, array step: 0x4 */
88   uint8_t RESERVED_0[16];
89   __I  uint32_t TFR[SAI_TFR_COUNT];                /**< SAI Transmit FIFO Register, array offset: 0x40, array step: 0x4 */
90   uint8_t RESERVED_1[16];
91   __IO uint32_t TMR;                               /**< SAI Transmit Mask Register, offset: 0x60 */
92   uint8_t RESERVED_2[36];
93   __IO uint32_t RCSR;                              /**< SAI Receive Control Register, offset: 0x88 */
94   __IO uint32_t RCR1;                              /**< SAI Receive Configuration 1 Register, offset: 0x8C */
95   __IO uint32_t RCR2;                              /**< SAI Receive Configuration 2 Register, offset: 0x90 */
96   __IO uint32_t RCR3;                              /**< SAI Receive Configuration 3 Register, offset: 0x94 */
97   __IO uint32_t RCR4;                              /**< SAI Receive Configuration 4 Register, offset: 0x98 */
98   __IO uint32_t RCR5;                              /**< SAI Receive Configuration 5 Register, offset: 0x9C */
99   __I  uint32_t RDR[SAI_RDR_COUNT];                /**< SAI Receive Data Register, array offset: 0xA0, array step: 0x4 */
100   uint8_t RESERVED_3[16];
101   __I  uint32_t RFR[SAI_RFR_COUNT];                /**< SAI Receive FIFO Register, array offset: 0xC0, array step: 0x4 */
102   uint8_t RESERVED_4[16];
103   __IO uint32_t RMR;                               /**< SAI Receive Mask Register, offset: 0xE0 */
104 } SAI_Type, *SAI_MemMapPtr;
105 
106 /** Number of instances of the SAI module. */
107 #define SAI_INSTANCE_COUNT                       (2u)
108 
109 /* SAI - Peripheral instance base addresses */
110 /** Peripheral SAI0 base address */
111 #define IP_SAI0_BASE                             (0x40054000u)
112 /** Peripheral SAI0 base pointer */
113 #define IP_SAI0                                  ((SAI_Type *)IP_SAI0_BASE)
114 /** Peripheral SAI1 base address */
115 #define IP_SAI1_BASE                             (0x40055000u)
116 /** Peripheral SAI1 base pointer */
117 #define IP_SAI1                                  ((SAI_Type *)IP_SAI1_BASE)
118 /** Array initializer of SAI peripheral base addresses */
119 #define IP_SAI_BASE_ADDRS                        { IP_SAI0_BASE, IP_SAI1_BASE }
120 /** Array initializer of SAI peripheral base pointers */
121 #define IP_SAI_BASE_PTRS                         { IP_SAI0, IP_SAI1 }
122 
123 /* ----------------------------------------------------------------------------
124    -- SAI Register Masks
125    ---------------------------------------------------------------------------- */
126 
127 /*!
128  * @addtogroup SAI_Register_Masks SAI Register Masks
129  * @{
130  */
131 
132 /*! @name VERID - Version ID Register */
133 /*! @{ */
134 
135 #define SAI_VERID_FEATURE_MASK                   (0xFFFFU)
136 #define SAI_VERID_FEATURE_SHIFT                  (0U)
137 #define SAI_VERID_FEATURE_WIDTH                  (16U)
138 #define SAI_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << SAI_VERID_FEATURE_SHIFT)) & SAI_VERID_FEATURE_MASK)
139 
140 #define SAI_VERID_MINOR_MASK                     (0xFF0000U)
141 #define SAI_VERID_MINOR_SHIFT                    (16U)
142 #define SAI_VERID_MINOR_WIDTH                    (8U)
143 #define SAI_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << SAI_VERID_MINOR_SHIFT)) & SAI_VERID_MINOR_MASK)
144 
145 #define SAI_VERID_MAJOR_MASK                     (0xFF000000U)
146 #define SAI_VERID_MAJOR_SHIFT                    (24U)
147 #define SAI_VERID_MAJOR_WIDTH                    (8U)
148 #define SAI_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << SAI_VERID_MAJOR_SHIFT)) & SAI_VERID_MAJOR_MASK)
149 /*! @} */
150 
151 /*! @name PARAM - Parameter Register */
152 /*! @{ */
153 
154 #define SAI_PARAM_DATALINE_MASK                  (0xFU)
155 #define SAI_PARAM_DATALINE_SHIFT                 (0U)
156 #define SAI_PARAM_DATALINE_WIDTH                 (4U)
157 #define SAI_PARAM_DATALINE(x)                    (((uint32_t)(((uint32_t)(x)) << SAI_PARAM_DATALINE_SHIFT)) & SAI_PARAM_DATALINE_MASK)
158 
159 #define SAI_PARAM_FIFO_MASK                      (0xF00U)
160 #define SAI_PARAM_FIFO_SHIFT                     (8U)
161 #define SAI_PARAM_FIFO_WIDTH                     (4U)
162 #define SAI_PARAM_FIFO(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_PARAM_FIFO_SHIFT)) & SAI_PARAM_FIFO_MASK)
163 
164 #define SAI_PARAM_FRAME_MASK                     (0xF0000U)
165 #define SAI_PARAM_FRAME_SHIFT                    (16U)
166 #define SAI_PARAM_FRAME_WIDTH                    (4U)
167 #define SAI_PARAM_FRAME(x)                       (((uint32_t)(((uint32_t)(x)) << SAI_PARAM_FRAME_SHIFT)) & SAI_PARAM_FRAME_MASK)
168 /*! @} */
169 
170 /*! @name TCSR - SAI Transmit Control Register */
171 /*! @{ */
172 
173 #define SAI_TCSR_FRDE_MASK                       (0x1U)
174 #define SAI_TCSR_FRDE_SHIFT                      (0U)
175 #define SAI_TCSR_FRDE_WIDTH                      (1U)
176 #define SAI_TCSR_FRDE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FRDE_SHIFT)) & SAI_TCSR_FRDE_MASK)
177 
178 #define SAI_TCSR_FWDE_MASK                       (0x2U)
179 #define SAI_TCSR_FWDE_SHIFT                      (1U)
180 #define SAI_TCSR_FWDE_WIDTH                      (1U)
181 #define SAI_TCSR_FWDE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FWDE_SHIFT)) & SAI_TCSR_FWDE_MASK)
182 
183 #define SAI_TCSR_FRIE_MASK                       (0x100U)
184 #define SAI_TCSR_FRIE_SHIFT                      (8U)
185 #define SAI_TCSR_FRIE_WIDTH                      (1U)
186 #define SAI_TCSR_FRIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FRIE_SHIFT)) & SAI_TCSR_FRIE_MASK)
187 
188 #define SAI_TCSR_FWIE_MASK                       (0x200U)
189 #define SAI_TCSR_FWIE_SHIFT                      (9U)
190 #define SAI_TCSR_FWIE_WIDTH                      (1U)
191 #define SAI_TCSR_FWIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FWIE_SHIFT)) & SAI_TCSR_FWIE_MASK)
192 
193 #define SAI_TCSR_FEIE_MASK                       (0x400U)
194 #define SAI_TCSR_FEIE_SHIFT                      (10U)
195 #define SAI_TCSR_FEIE_WIDTH                      (1U)
196 #define SAI_TCSR_FEIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FEIE_SHIFT)) & SAI_TCSR_FEIE_MASK)
197 
198 #define SAI_TCSR_SEIE_MASK                       (0x800U)
199 #define SAI_TCSR_SEIE_SHIFT                      (11U)
200 #define SAI_TCSR_SEIE_WIDTH                      (1U)
201 #define SAI_TCSR_SEIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_SEIE_SHIFT)) & SAI_TCSR_SEIE_MASK)
202 
203 #define SAI_TCSR_WSIE_MASK                       (0x1000U)
204 #define SAI_TCSR_WSIE_SHIFT                      (12U)
205 #define SAI_TCSR_WSIE_WIDTH                      (1U)
206 #define SAI_TCSR_WSIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_WSIE_SHIFT)) & SAI_TCSR_WSIE_MASK)
207 
208 #define SAI_TCSR_FRF_MASK                        (0x10000U)
209 #define SAI_TCSR_FRF_SHIFT                       (16U)
210 #define SAI_TCSR_FRF_WIDTH                       (1U)
211 #define SAI_TCSR_FRF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FRF_SHIFT)) & SAI_TCSR_FRF_MASK)
212 
213 #define SAI_TCSR_FWF_MASK                        (0x20000U)
214 #define SAI_TCSR_FWF_SHIFT                       (17U)
215 #define SAI_TCSR_FWF_WIDTH                       (1U)
216 #define SAI_TCSR_FWF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FWF_SHIFT)) & SAI_TCSR_FWF_MASK)
217 
218 #define SAI_TCSR_FEF_MASK                        (0x40000U)
219 #define SAI_TCSR_FEF_SHIFT                       (18U)
220 #define SAI_TCSR_FEF_WIDTH                       (1U)
221 #define SAI_TCSR_FEF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FEF_SHIFT)) & SAI_TCSR_FEF_MASK)
222 
223 #define SAI_TCSR_SEF_MASK                        (0x80000U)
224 #define SAI_TCSR_SEF_SHIFT                       (19U)
225 #define SAI_TCSR_SEF_WIDTH                       (1U)
226 #define SAI_TCSR_SEF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_SEF_SHIFT)) & SAI_TCSR_SEF_MASK)
227 
228 #define SAI_TCSR_WSF_MASK                        (0x100000U)
229 #define SAI_TCSR_WSF_SHIFT                       (20U)
230 #define SAI_TCSR_WSF_WIDTH                       (1U)
231 #define SAI_TCSR_WSF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_WSF_SHIFT)) & SAI_TCSR_WSF_MASK)
232 
233 #define SAI_TCSR_SR_MASK                         (0x1000000U)
234 #define SAI_TCSR_SR_SHIFT                        (24U)
235 #define SAI_TCSR_SR_WIDTH                        (1U)
236 #define SAI_TCSR_SR(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_SR_SHIFT)) & SAI_TCSR_SR_MASK)
237 
238 #define SAI_TCSR_FR_MASK                         (0x2000000U)
239 #define SAI_TCSR_FR_SHIFT                        (25U)
240 #define SAI_TCSR_FR_WIDTH                        (1U)
241 #define SAI_TCSR_FR(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_FR_SHIFT)) & SAI_TCSR_FR_MASK)
242 
243 #define SAI_TCSR_BCE_MASK                        (0x10000000U)
244 #define SAI_TCSR_BCE_SHIFT                       (28U)
245 #define SAI_TCSR_BCE_WIDTH                       (1U)
246 #define SAI_TCSR_BCE(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_BCE_SHIFT)) & SAI_TCSR_BCE_MASK)
247 
248 #define SAI_TCSR_DBGE_MASK                       (0x20000000U)
249 #define SAI_TCSR_DBGE_SHIFT                      (29U)
250 #define SAI_TCSR_DBGE_WIDTH                      (1U)
251 #define SAI_TCSR_DBGE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_DBGE_SHIFT)) & SAI_TCSR_DBGE_MASK)
252 
253 #define SAI_TCSR_TE_MASK                         (0x80000000U)
254 #define SAI_TCSR_TE_SHIFT                        (31U)
255 #define SAI_TCSR_TE_WIDTH                        (1U)
256 #define SAI_TCSR_TE(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TCSR_TE_SHIFT)) & SAI_TCSR_TE_MASK)
257 /*! @} */
258 
259 /*! @name TCR1 - SAI Transmit Configuration 1 Register */
260 /*! @{ */
261 
262 #define SAI_TCR1_TFW_MASK                        (0x7U)
263 #define SAI_TCR1_TFW_SHIFT                       (0U)
264 #define SAI_TCR1_TFW_WIDTH                       (3U)
265 #define SAI_TCR1_TFW(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR1_TFW_SHIFT)) & SAI_TCR1_TFW_MASK)
266 /*! @} */
267 
268 /*! @name TCR2 - SAI Transmit Configuration 2 Register */
269 /*! @{ */
270 
271 #define SAI_TCR2_DIV_MASK                        (0xFFU)
272 #define SAI_TCR2_DIV_SHIFT                       (0U)
273 #define SAI_TCR2_DIV_WIDTH                       (8U)
274 #define SAI_TCR2_DIV(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR2_DIV_SHIFT)) & SAI_TCR2_DIV_MASK)
275 
276 #define SAI_TCR2_BCD_MASK                        (0x1000000U)
277 #define SAI_TCR2_BCD_SHIFT                       (24U)
278 #define SAI_TCR2_BCD_WIDTH                       (1U)
279 #define SAI_TCR2_BCD(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR2_BCD_SHIFT)) & SAI_TCR2_BCD_MASK)
280 
281 #define SAI_TCR2_BCP_MASK                        (0x2000000U)
282 #define SAI_TCR2_BCP_SHIFT                       (25U)
283 #define SAI_TCR2_BCP_WIDTH                       (1U)
284 #define SAI_TCR2_BCP(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR2_BCP_SHIFT)) & SAI_TCR2_BCP_MASK)
285 
286 #define SAI_TCR2_MSEL_MASK                       (0xC000000U)
287 #define SAI_TCR2_MSEL_SHIFT                      (26U)
288 #define SAI_TCR2_MSEL_WIDTH                      (2U)
289 #define SAI_TCR2_MSEL(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCR2_MSEL_SHIFT)) & SAI_TCR2_MSEL_MASK)
290 
291 #define SAI_TCR2_BCI_MASK                        (0x10000000U)
292 #define SAI_TCR2_BCI_SHIFT                       (28U)
293 #define SAI_TCR2_BCI_WIDTH                       (1U)
294 #define SAI_TCR2_BCI(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR2_BCI_SHIFT)) & SAI_TCR2_BCI_MASK)
295 
296 #define SAI_TCR2_SYNC_MASK                       (0xC0000000U)
297 #define SAI_TCR2_SYNC_SHIFT                      (30U)
298 #define SAI_TCR2_SYNC_WIDTH                      (2U)
299 #define SAI_TCR2_SYNC(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCR2_SYNC_SHIFT)) & SAI_TCR2_SYNC_MASK)
300 /*! @} */
301 
302 /*! @name TCR3 - SAI Transmit Configuration 3 Register */
303 /*! @{ */
304 
305 #define SAI_TCR3_WDFL_MASK                       (0xFU)
306 #define SAI_TCR3_WDFL_SHIFT                      (0U)
307 #define SAI_TCR3_WDFL_WIDTH                      (4U)
308 #define SAI_TCR3_WDFL(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCR3_WDFL_SHIFT)) & SAI_TCR3_WDFL_MASK)
309 
310 #define SAI_TCR3_TCE_MASK                        (0xF0000U)  /* Merged from fields with different position or width, of widths (1, 4), largest definition used */
311 #define SAI_TCR3_TCE_SHIFT                       (16U)
312 #define SAI_TCR3_TCE_WIDTH                       (4U)
313 #define SAI_TCR3_TCE(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR3_TCE_SHIFT)) & SAI_TCR3_TCE_MASK)  /* Merged from fields with different position or width, of widths (1, 4), largest definition used */
314 
315 #define SAI_TCR3_CFR_MASK                        (0xF000000U)
316 #define SAI_TCR3_CFR_SHIFT                       (24U)
317 #define SAI_TCR3_CFR_WIDTH                       (4U)
318 #define SAI_TCR3_CFR(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR3_CFR_SHIFT)) & SAI_TCR3_CFR_MASK)
319 /*! @} */
320 
321 /*! @name TCR4 - SAI Transmit Configuration 4 Register */
322 /*! @{ */
323 
324 #define SAI_TCR4_FSD_MASK                        (0x1U)
325 #define SAI_TCR4_FSD_SHIFT                       (0U)
326 #define SAI_TCR4_FSD_WIDTH                       (1U)
327 #define SAI_TCR4_FSD(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FSD_SHIFT)) & SAI_TCR4_FSD_MASK)
328 
329 #define SAI_TCR4_FSP_MASK                        (0x2U)
330 #define SAI_TCR4_FSP_SHIFT                       (1U)
331 #define SAI_TCR4_FSP_WIDTH                       (1U)
332 #define SAI_TCR4_FSP(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FSP_SHIFT)) & SAI_TCR4_FSP_MASK)
333 
334 #define SAI_TCR4_ONDEM_MASK                      (0x4U)
335 #define SAI_TCR4_ONDEM_SHIFT                     (2U)
336 #define SAI_TCR4_ONDEM_WIDTH                     (1U)
337 #define SAI_TCR4_ONDEM(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_ONDEM_SHIFT)) & SAI_TCR4_ONDEM_MASK)
338 
339 #define SAI_TCR4_FSE_MASK                        (0x8U)
340 #define SAI_TCR4_FSE_SHIFT                       (3U)
341 #define SAI_TCR4_FSE_WIDTH                       (1U)
342 #define SAI_TCR4_FSE(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FSE_SHIFT)) & SAI_TCR4_FSE_MASK)
343 
344 #define SAI_TCR4_MF_MASK                         (0x10U)
345 #define SAI_TCR4_MF_SHIFT                        (4U)
346 #define SAI_TCR4_MF_WIDTH                        (1U)
347 #define SAI_TCR4_MF(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_MF_SHIFT)) & SAI_TCR4_MF_MASK)
348 
349 #define SAI_TCR4_CHMOD_MASK                      (0x20U)
350 #define SAI_TCR4_CHMOD_SHIFT                     (5U)
351 #define SAI_TCR4_CHMOD_WIDTH                     (1U)
352 #define SAI_TCR4_CHMOD(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_CHMOD_SHIFT)) & SAI_TCR4_CHMOD_MASK)
353 
354 #define SAI_TCR4_SYWD_MASK                       (0x1F00U)
355 #define SAI_TCR4_SYWD_SHIFT                      (8U)
356 #define SAI_TCR4_SYWD_WIDTH                      (5U)
357 #define SAI_TCR4_SYWD(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_SYWD_SHIFT)) & SAI_TCR4_SYWD_MASK)
358 
359 #define SAI_TCR4_FRSZ_MASK                       (0xF0000U)
360 #define SAI_TCR4_FRSZ_SHIFT                      (16U)
361 #define SAI_TCR4_FRSZ_WIDTH                      (4U)
362 #define SAI_TCR4_FRSZ(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FRSZ_SHIFT)) & SAI_TCR4_FRSZ_MASK)
363 
364 #define SAI_TCR4_FPACK_MASK                      (0x3000000U)
365 #define SAI_TCR4_FPACK_SHIFT                     (24U)
366 #define SAI_TCR4_FPACK_WIDTH                     (2U)
367 #define SAI_TCR4_FPACK(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FPACK_SHIFT)) & SAI_TCR4_FPACK_MASK)
368 
369 #define SAI_TCR4_FCOMB_MASK                      (0xC000000U)
370 #define SAI_TCR4_FCOMB_SHIFT                     (26U)
371 #define SAI_TCR4_FCOMB_WIDTH                     (2U)
372 #define SAI_TCR4_FCOMB(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FCOMB_SHIFT)) & SAI_TCR4_FCOMB_MASK)
373 
374 #define SAI_TCR4_FCONT_MASK                      (0x10000000U)
375 #define SAI_TCR4_FCONT_SHIFT                     (28U)
376 #define SAI_TCR4_FCONT_WIDTH                     (1U)
377 #define SAI_TCR4_FCONT(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_TCR4_FCONT_SHIFT)) & SAI_TCR4_FCONT_MASK)
378 /*! @} */
379 
380 /*! @name TCR5 - SAI Transmit Configuration 5 Register */
381 /*! @{ */
382 
383 #define SAI_TCR5_FBT_MASK                        (0x1F00U)
384 #define SAI_TCR5_FBT_SHIFT                       (8U)
385 #define SAI_TCR5_FBT_WIDTH                       (5U)
386 #define SAI_TCR5_FBT(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR5_FBT_SHIFT)) & SAI_TCR5_FBT_MASK)
387 
388 #define SAI_TCR5_W0W_MASK                        (0x1F0000U)
389 #define SAI_TCR5_W0W_SHIFT                       (16U)
390 #define SAI_TCR5_W0W_WIDTH                       (5U)
391 #define SAI_TCR5_W0W(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR5_W0W_SHIFT)) & SAI_TCR5_W0W_MASK)
392 
393 #define SAI_TCR5_WNW_MASK                        (0x1F000000U)
394 #define SAI_TCR5_WNW_SHIFT                       (24U)
395 #define SAI_TCR5_WNW_WIDTH                       (5U)
396 #define SAI_TCR5_WNW(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_TCR5_WNW_SHIFT)) & SAI_TCR5_WNW_MASK)
397 /*! @} */
398 
399 /*! @name TDR - SAI Transmit Data Register */
400 /*! @{ */
401 
402 #define SAI_TDR_TDR_MASK                         (0xFFFFFFFFU)
403 #define SAI_TDR_TDR_SHIFT                        (0U)
404 #define SAI_TDR_TDR_WIDTH                        (32U)
405 #define SAI_TDR_TDR(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TDR_TDR_SHIFT)) & SAI_TDR_TDR_MASK)
406 /*! @} */
407 
408 /*! @name TFR - SAI Transmit FIFO Register */
409 /*! @{ */
410 
411 #define SAI_TFR_RFP_MASK                         (0xFU)
412 #define SAI_TFR_RFP_SHIFT                        (0U)
413 #define SAI_TFR_RFP_WIDTH                        (4U)
414 #define SAI_TFR_RFP(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TFR_RFP_SHIFT)) & SAI_TFR_RFP_MASK)
415 
416 #define SAI_TFR_WFP_MASK                         (0xF0000U)
417 #define SAI_TFR_WFP_SHIFT                        (16U)
418 #define SAI_TFR_WFP_WIDTH                        (4U)
419 #define SAI_TFR_WFP(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TFR_WFP_SHIFT)) & SAI_TFR_WFP_MASK)
420 
421 #define SAI_TFR_WCP_MASK                         (0x80000000U)
422 #define SAI_TFR_WCP_SHIFT                        (31U)
423 #define SAI_TFR_WCP_WIDTH                        (1U)
424 #define SAI_TFR_WCP(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TFR_WCP_SHIFT)) & SAI_TFR_WCP_MASK)
425 /*! @} */
426 
427 /*! @name TMR - SAI Transmit Mask Register */
428 /*! @{ */
429 
430 #define SAI_TMR_TWM_MASK                         (0xFFFFU)
431 #define SAI_TMR_TWM_SHIFT                        (0U)
432 #define SAI_TMR_TWM_WIDTH                        (16U)
433 #define SAI_TMR_TWM(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_TMR_TWM_SHIFT)) & SAI_TMR_TWM_MASK)
434 /*! @} */
435 
436 /*! @name RCSR - SAI Receive Control Register */
437 /*! @{ */
438 
439 #define SAI_RCSR_FRDE_MASK                       (0x1U)
440 #define SAI_RCSR_FRDE_SHIFT                      (0U)
441 #define SAI_RCSR_FRDE_WIDTH                      (1U)
442 #define SAI_RCSR_FRDE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FRDE_SHIFT)) & SAI_RCSR_FRDE_MASK)
443 
444 #define SAI_RCSR_FWDE_MASK                       (0x2U)
445 #define SAI_RCSR_FWDE_SHIFT                      (1U)
446 #define SAI_RCSR_FWDE_WIDTH                      (1U)
447 #define SAI_RCSR_FWDE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FWDE_SHIFT)) & SAI_RCSR_FWDE_MASK)
448 
449 #define SAI_RCSR_FRIE_MASK                       (0x100U)
450 #define SAI_RCSR_FRIE_SHIFT                      (8U)
451 #define SAI_RCSR_FRIE_WIDTH                      (1U)
452 #define SAI_RCSR_FRIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FRIE_SHIFT)) & SAI_RCSR_FRIE_MASK)
453 
454 #define SAI_RCSR_FWIE_MASK                       (0x200U)
455 #define SAI_RCSR_FWIE_SHIFT                      (9U)
456 #define SAI_RCSR_FWIE_WIDTH                      (1U)
457 #define SAI_RCSR_FWIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FWIE_SHIFT)) & SAI_RCSR_FWIE_MASK)
458 
459 #define SAI_RCSR_FEIE_MASK                       (0x400U)
460 #define SAI_RCSR_FEIE_SHIFT                      (10U)
461 #define SAI_RCSR_FEIE_WIDTH                      (1U)
462 #define SAI_RCSR_FEIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FEIE_SHIFT)) & SAI_RCSR_FEIE_MASK)
463 
464 #define SAI_RCSR_SEIE_MASK                       (0x800U)
465 #define SAI_RCSR_SEIE_SHIFT                      (11U)
466 #define SAI_RCSR_SEIE_WIDTH                      (1U)
467 #define SAI_RCSR_SEIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_SEIE_SHIFT)) & SAI_RCSR_SEIE_MASK)
468 
469 #define SAI_RCSR_WSIE_MASK                       (0x1000U)
470 #define SAI_RCSR_WSIE_SHIFT                      (12U)
471 #define SAI_RCSR_WSIE_WIDTH                      (1U)
472 #define SAI_RCSR_WSIE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_WSIE_SHIFT)) & SAI_RCSR_WSIE_MASK)
473 
474 #define SAI_RCSR_FRF_MASK                        (0x10000U)
475 #define SAI_RCSR_FRF_SHIFT                       (16U)
476 #define SAI_RCSR_FRF_WIDTH                       (1U)
477 #define SAI_RCSR_FRF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FRF_SHIFT)) & SAI_RCSR_FRF_MASK)
478 
479 #define SAI_RCSR_FWF_MASK                        (0x20000U)
480 #define SAI_RCSR_FWF_SHIFT                       (17U)
481 #define SAI_RCSR_FWF_WIDTH                       (1U)
482 #define SAI_RCSR_FWF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FWF_SHIFT)) & SAI_RCSR_FWF_MASK)
483 
484 #define SAI_RCSR_FEF_MASK                        (0x40000U)
485 #define SAI_RCSR_FEF_SHIFT                       (18U)
486 #define SAI_RCSR_FEF_WIDTH                       (1U)
487 #define SAI_RCSR_FEF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FEF_SHIFT)) & SAI_RCSR_FEF_MASK)
488 
489 #define SAI_RCSR_SEF_MASK                        (0x80000U)
490 #define SAI_RCSR_SEF_SHIFT                       (19U)
491 #define SAI_RCSR_SEF_WIDTH                       (1U)
492 #define SAI_RCSR_SEF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_SEF_SHIFT)) & SAI_RCSR_SEF_MASK)
493 
494 #define SAI_RCSR_WSF_MASK                        (0x100000U)
495 #define SAI_RCSR_WSF_SHIFT                       (20U)
496 #define SAI_RCSR_WSF_WIDTH                       (1U)
497 #define SAI_RCSR_WSF(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_WSF_SHIFT)) & SAI_RCSR_WSF_MASK)
498 
499 #define SAI_RCSR_SR_MASK                         (0x1000000U)
500 #define SAI_RCSR_SR_SHIFT                        (24U)
501 #define SAI_RCSR_SR_WIDTH                        (1U)
502 #define SAI_RCSR_SR(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_SR_SHIFT)) & SAI_RCSR_SR_MASK)
503 
504 #define SAI_RCSR_FR_MASK                         (0x2000000U)
505 #define SAI_RCSR_FR_SHIFT                        (25U)
506 #define SAI_RCSR_FR_WIDTH                        (1U)
507 #define SAI_RCSR_FR(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_FR_SHIFT)) & SAI_RCSR_FR_MASK)
508 
509 #define SAI_RCSR_BCE_MASK                        (0x10000000U)
510 #define SAI_RCSR_BCE_SHIFT                       (28U)
511 #define SAI_RCSR_BCE_WIDTH                       (1U)
512 #define SAI_RCSR_BCE(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_BCE_SHIFT)) & SAI_RCSR_BCE_MASK)
513 
514 #define SAI_RCSR_DBGE_MASK                       (0x20000000U)
515 #define SAI_RCSR_DBGE_SHIFT                      (29U)
516 #define SAI_RCSR_DBGE_WIDTH                      (1U)
517 #define SAI_RCSR_DBGE(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_DBGE_SHIFT)) & SAI_RCSR_DBGE_MASK)
518 
519 #define SAI_RCSR_RE_MASK                         (0x80000000U)
520 #define SAI_RCSR_RE_SHIFT                        (31U)
521 #define SAI_RCSR_RE_WIDTH                        (1U)
522 #define SAI_RCSR_RE(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RCSR_RE_SHIFT)) & SAI_RCSR_RE_MASK)
523 /*! @} */
524 
525 /*! @name RCR1 - SAI Receive Configuration 1 Register */
526 /*! @{ */
527 
528 #define SAI_RCR1_RFW_MASK                        (0x7U)
529 #define SAI_RCR1_RFW_SHIFT                       (0U)
530 #define SAI_RCR1_RFW_WIDTH                       (3U)
531 #define SAI_RCR1_RFW(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR1_RFW_SHIFT)) & SAI_RCR1_RFW_MASK)
532 /*! @} */
533 
534 /*! @name RCR2 - SAI Receive Configuration 2 Register */
535 /*! @{ */
536 
537 #define SAI_RCR2_DIV_MASK                        (0xFFU)
538 #define SAI_RCR2_DIV_SHIFT                       (0U)
539 #define SAI_RCR2_DIV_WIDTH                       (8U)
540 #define SAI_RCR2_DIV(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR2_DIV_SHIFT)) & SAI_RCR2_DIV_MASK)
541 
542 #define SAI_RCR2_BCD_MASK                        (0x1000000U)
543 #define SAI_RCR2_BCD_SHIFT                       (24U)
544 #define SAI_RCR2_BCD_WIDTH                       (1U)
545 #define SAI_RCR2_BCD(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR2_BCD_SHIFT)) & SAI_RCR2_BCD_MASK)
546 
547 #define SAI_RCR2_BCP_MASK                        (0x2000000U)
548 #define SAI_RCR2_BCP_SHIFT                       (25U)
549 #define SAI_RCR2_BCP_WIDTH                       (1U)
550 #define SAI_RCR2_BCP(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR2_BCP_SHIFT)) & SAI_RCR2_BCP_MASK)
551 
552 #define SAI_RCR2_MSEL_MASK                       (0xC000000U)
553 #define SAI_RCR2_MSEL_SHIFT                      (26U)
554 #define SAI_RCR2_MSEL_WIDTH                      (2U)
555 #define SAI_RCR2_MSEL(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCR2_MSEL_SHIFT)) & SAI_RCR2_MSEL_MASK)
556 
557 #define SAI_RCR2_BCI_MASK                        (0x10000000U)
558 #define SAI_RCR2_BCI_SHIFT                       (28U)
559 #define SAI_RCR2_BCI_WIDTH                       (1U)
560 #define SAI_RCR2_BCI(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR2_BCI_SHIFT)) & SAI_RCR2_BCI_MASK)
561 
562 #define SAI_RCR2_SYNC_MASK                       (0xC0000000U)
563 #define SAI_RCR2_SYNC_SHIFT                      (30U)
564 #define SAI_RCR2_SYNC_WIDTH                      (2U)
565 #define SAI_RCR2_SYNC(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCR2_SYNC_SHIFT)) & SAI_RCR2_SYNC_MASK)
566 /*! @} */
567 
568 /*! @name RCR3 - SAI Receive Configuration 3 Register */
569 /*! @{ */
570 
571 #define SAI_RCR3_WDFL_MASK                       (0xFU)
572 #define SAI_RCR3_WDFL_SHIFT                      (0U)
573 #define SAI_RCR3_WDFL_WIDTH                      (4U)
574 #define SAI_RCR3_WDFL(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCR3_WDFL_SHIFT)) & SAI_RCR3_WDFL_MASK)
575 
576 #define SAI_RCR3_RCE_MASK                        (0xF0000U)  /* Merged from fields with different position or width, of widths (1, 4), largest definition used */
577 #define SAI_RCR3_RCE_SHIFT                       (16U)
578 #define SAI_RCR3_RCE_WIDTH                       (4U)
579 #define SAI_RCR3_RCE(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR3_RCE_SHIFT)) & SAI_RCR3_RCE_MASK)  /* Merged from fields with different position or width, of widths (1, 4), largest definition used */
580 
581 #define SAI_RCR3_CFR_MASK                        (0xF000000U)
582 #define SAI_RCR3_CFR_SHIFT                       (24U)
583 #define SAI_RCR3_CFR_WIDTH                       (4U)
584 #define SAI_RCR3_CFR(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR3_CFR_SHIFT)) & SAI_RCR3_CFR_MASK)
585 /*! @} */
586 
587 /*! @name RCR4 - SAI Receive Configuration 4 Register */
588 /*! @{ */
589 
590 #define SAI_RCR4_FSD_MASK                        (0x1U)
591 #define SAI_RCR4_FSD_SHIFT                       (0U)
592 #define SAI_RCR4_FSD_WIDTH                       (1U)
593 #define SAI_RCR4_FSD(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FSD_SHIFT)) & SAI_RCR4_FSD_MASK)
594 
595 #define SAI_RCR4_FSP_MASK                        (0x2U)
596 #define SAI_RCR4_FSP_SHIFT                       (1U)
597 #define SAI_RCR4_FSP_WIDTH                       (1U)
598 #define SAI_RCR4_FSP(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FSP_SHIFT)) & SAI_RCR4_FSP_MASK)
599 
600 #define SAI_RCR4_ONDEM_MASK                      (0x4U)
601 #define SAI_RCR4_ONDEM_SHIFT                     (2U)
602 #define SAI_RCR4_ONDEM_WIDTH                     (1U)
603 #define SAI_RCR4_ONDEM(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_ONDEM_SHIFT)) & SAI_RCR4_ONDEM_MASK)
604 
605 #define SAI_RCR4_FSE_MASK                        (0x8U)
606 #define SAI_RCR4_FSE_SHIFT                       (3U)
607 #define SAI_RCR4_FSE_WIDTH                       (1U)
608 #define SAI_RCR4_FSE(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FSE_SHIFT)) & SAI_RCR4_FSE_MASK)
609 
610 #define SAI_RCR4_MF_MASK                         (0x10U)
611 #define SAI_RCR4_MF_SHIFT                        (4U)
612 #define SAI_RCR4_MF_WIDTH                        (1U)
613 #define SAI_RCR4_MF(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_MF_SHIFT)) & SAI_RCR4_MF_MASK)
614 
615 #define SAI_RCR4_SYWD_MASK                       (0x1F00U)
616 #define SAI_RCR4_SYWD_SHIFT                      (8U)
617 #define SAI_RCR4_SYWD_WIDTH                      (5U)
618 #define SAI_RCR4_SYWD(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_SYWD_SHIFT)) & SAI_RCR4_SYWD_MASK)
619 
620 #define SAI_RCR4_FRSZ_MASK                       (0xF0000U)
621 #define SAI_RCR4_FRSZ_SHIFT                      (16U)
622 #define SAI_RCR4_FRSZ_WIDTH                      (4U)
623 #define SAI_RCR4_FRSZ(x)                         (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FRSZ_SHIFT)) & SAI_RCR4_FRSZ_MASK)
624 
625 #define SAI_RCR4_FPACK_MASK                      (0x3000000U)
626 #define SAI_RCR4_FPACK_SHIFT                     (24U)
627 #define SAI_RCR4_FPACK_WIDTH                     (2U)
628 #define SAI_RCR4_FPACK(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FPACK_SHIFT)) & SAI_RCR4_FPACK_MASK)
629 
630 #define SAI_RCR4_FCOMB_MASK                      (0xC000000U)
631 #define SAI_RCR4_FCOMB_SHIFT                     (26U)
632 #define SAI_RCR4_FCOMB_WIDTH                     (2U)
633 #define SAI_RCR4_FCOMB(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FCOMB_SHIFT)) & SAI_RCR4_FCOMB_MASK)
634 
635 #define SAI_RCR4_FCONT_MASK                      (0x10000000U)
636 #define SAI_RCR4_FCONT_SHIFT                     (28U)
637 #define SAI_RCR4_FCONT_WIDTH                     (1U)
638 #define SAI_RCR4_FCONT(x)                        (((uint32_t)(((uint32_t)(x)) << SAI_RCR4_FCONT_SHIFT)) & SAI_RCR4_FCONT_MASK)
639 /*! @} */
640 
641 /*! @name RCR5 - SAI Receive Configuration 5 Register */
642 /*! @{ */
643 
644 #define SAI_RCR5_FBT_MASK                        (0x1F00U)
645 #define SAI_RCR5_FBT_SHIFT                       (8U)
646 #define SAI_RCR5_FBT_WIDTH                       (5U)
647 #define SAI_RCR5_FBT(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR5_FBT_SHIFT)) & SAI_RCR5_FBT_MASK)
648 
649 #define SAI_RCR5_W0W_MASK                        (0x1F0000U)
650 #define SAI_RCR5_W0W_SHIFT                       (16U)
651 #define SAI_RCR5_W0W_WIDTH                       (5U)
652 #define SAI_RCR5_W0W(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR5_W0W_SHIFT)) & SAI_RCR5_W0W_MASK)
653 
654 #define SAI_RCR5_WNW_MASK                        (0x1F000000U)
655 #define SAI_RCR5_WNW_SHIFT                       (24U)
656 #define SAI_RCR5_WNW_WIDTH                       (5U)
657 #define SAI_RCR5_WNW(x)                          (((uint32_t)(((uint32_t)(x)) << SAI_RCR5_WNW_SHIFT)) & SAI_RCR5_WNW_MASK)
658 /*! @} */
659 
660 /*! @name RDR - SAI Receive Data Register */
661 /*! @{ */
662 
663 #define SAI_RDR_RDR_MASK                         (0xFFFFFFFFU)
664 #define SAI_RDR_RDR_SHIFT                        (0U)
665 #define SAI_RDR_RDR_WIDTH                        (32U)
666 #define SAI_RDR_RDR(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RDR_RDR_SHIFT)) & SAI_RDR_RDR_MASK)
667 /*! @} */
668 
669 /*! @name RFR - SAI Receive FIFO Register */
670 /*! @{ */
671 
672 #define SAI_RFR_RFP_MASK                         (0xFU)
673 #define SAI_RFR_RFP_SHIFT                        (0U)
674 #define SAI_RFR_RFP_WIDTH                        (4U)
675 #define SAI_RFR_RFP(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RFR_RFP_SHIFT)) & SAI_RFR_RFP_MASK)
676 
677 #define SAI_RFR_RCP_MASK                         (0x8000U)
678 #define SAI_RFR_RCP_SHIFT                        (15U)
679 #define SAI_RFR_RCP_WIDTH                        (1U)
680 #define SAI_RFR_RCP(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RFR_RCP_SHIFT)) & SAI_RFR_RCP_MASK)
681 
682 #define SAI_RFR_WFP_MASK                         (0xF0000U)
683 #define SAI_RFR_WFP_SHIFT                        (16U)
684 #define SAI_RFR_WFP_WIDTH                        (4U)
685 #define SAI_RFR_WFP(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RFR_WFP_SHIFT)) & SAI_RFR_WFP_MASK)
686 /*! @} */
687 
688 /*! @name RMR - SAI Receive Mask Register */
689 /*! @{ */
690 
691 #define SAI_RMR_RWM_MASK                         (0xFFFFU)
692 #define SAI_RMR_RWM_SHIFT                        (0U)
693 #define SAI_RMR_RWM_WIDTH                        (16U)
694 #define SAI_RMR_RWM(x)                           (((uint32_t)(((uint32_t)(x)) << SAI_RMR_RWM_SHIFT)) & SAI_RMR_RWM_MASK)
695 /*! @} */
696 
697 /*!
698  * @}
699  */ /* end of group SAI_Register_Masks */
700 
701 /*!
702  * @}
703  */ /* end of group SAI_Peripheral_Access_Layer */
704 
705 #endif  /* #if !defined(S32K148_SAI_H_) */
706