SAME54P20A Test Project
i2s.h
Go to the documentation of this file.
1 
30 #ifndef _SAME54_I2S_COMPONENT_
31 #define _SAME54_I2S_COMPONENT_
32 
33 /* ========================================================================== */
35 /* ========================================================================== */
38 
39 #define I2S_U2224
40 #define REV_I2S 0x200
41 
42 /* -------- I2S_CTRLA : (I2S Offset: 0x00) (R/W 8) Control A -------- */
43 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
44 typedef union {
45  struct {
46  uint8_t SWRST:1;
47  uint8_t ENABLE:1;
48  uint8_t CKEN0:1;
49  uint8_t CKEN1:1;
50  uint8_t TXEN:1;
51  uint8_t RXEN:1;
52  uint8_t :2;
53  } bit;
54  struct {
55  uint8_t :2;
56  uint8_t CKEN:2;
57  uint8_t :4;
58  } vec;
59  uint8_t reg;
61 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
62 
63 #define I2S_CTRLA_OFFSET 0x00
64 #define I2S_CTRLA_RESETVALUE _U_(0x00)
66 #define I2S_CTRLA_SWRST_Pos 0
67 #define I2S_CTRLA_SWRST (_U_(0x1) << I2S_CTRLA_SWRST_Pos)
68 #define I2S_CTRLA_ENABLE_Pos 1
69 #define I2S_CTRLA_ENABLE (_U_(0x1) << I2S_CTRLA_ENABLE_Pos)
70 #define I2S_CTRLA_CKEN0_Pos 2
71 #define I2S_CTRLA_CKEN0 (_U_(1) << I2S_CTRLA_CKEN0_Pos)
72 #define I2S_CTRLA_CKEN1_Pos 3
73 #define I2S_CTRLA_CKEN1 (_U_(1) << I2S_CTRLA_CKEN1_Pos)
74 #define I2S_CTRLA_CKEN_Pos 2
75 #define I2S_CTRLA_CKEN_Msk (_U_(0x3) << I2S_CTRLA_CKEN_Pos)
76 #define I2S_CTRLA_CKEN(value) (I2S_CTRLA_CKEN_Msk & ((value) << I2S_CTRLA_CKEN_Pos))
77 #define I2S_CTRLA_TXEN_Pos 4
78 #define I2S_CTRLA_TXEN (_U_(0x1) << I2S_CTRLA_TXEN_Pos)
79 #define I2S_CTRLA_RXEN_Pos 5
80 #define I2S_CTRLA_RXEN (_U_(0x1) << I2S_CTRLA_RXEN_Pos)
81 #define I2S_CTRLA_MASK _U_(0x3F)
83 /* -------- I2S_CLKCTRL : (I2S Offset: 0x04) (R/W 32) Clock Unit n Control -------- */
84 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
85 typedef union {
86  struct {
87  uint32_t SLOTSIZE:2;
88  uint32_t NBSLOTS:3;
89  uint32_t FSWIDTH:2;
90  uint32_t BITDELAY:1;
91  uint32_t FSSEL:1;
92  uint32_t FSINV:1;
93  uint32_t FSOUTINV:1;
94  uint32_t SCKSEL:1;
95  uint32_t SCKOUTINV:1;
96  uint32_t MCKSEL:1;
97  uint32_t MCKEN:1;
98  uint32_t MCKOUTINV:1;
99  uint32_t MCKDIV:6;
100  uint32_t :2;
101  uint32_t MCKOUTDIV:6;
102  uint32_t :2;
103  } bit;
104  uint32_t reg;
106 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
107 
108 #define I2S_CLKCTRL_OFFSET 0x04
109 #define I2S_CLKCTRL_RESETVALUE _U_(0x00000000)
111 #define I2S_CLKCTRL_SLOTSIZE_Pos 0
112 #define I2S_CLKCTRL_SLOTSIZE_Msk (_U_(0x3) << I2S_CLKCTRL_SLOTSIZE_Pos)
113 #define I2S_CLKCTRL_SLOTSIZE(value) (I2S_CLKCTRL_SLOTSIZE_Msk & ((value) << I2S_CLKCTRL_SLOTSIZE_Pos))
114 #define I2S_CLKCTRL_SLOTSIZE_8_Val _U_(0x0)
115 #define I2S_CLKCTRL_SLOTSIZE_16_Val _U_(0x1)
116 #define I2S_CLKCTRL_SLOTSIZE_24_Val _U_(0x2)
117 #define I2S_CLKCTRL_SLOTSIZE_32_Val _U_(0x3)
118 #define I2S_CLKCTRL_SLOTSIZE_8 (I2S_CLKCTRL_SLOTSIZE_8_Val << I2S_CLKCTRL_SLOTSIZE_Pos)
119 #define I2S_CLKCTRL_SLOTSIZE_16 (I2S_CLKCTRL_SLOTSIZE_16_Val << I2S_CLKCTRL_SLOTSIZE_Pos)
120 #define I2S_CLKCTRL_SLOTSIZE_24 (I2S_CLKCTRL_SLOTSIZE_24_Val << I2S_CLKCTRL_SLOTSIZE_Pos)
121 #define I2S_CLKCTRL_SLOTSIZE_32 (I2S_CLKCTRL_SLOTSIZE_32_Val << I2S_CLKCTRL_SLOTSIZE_Pos)
122 #define I2S_CLKCTRL_NBSLOTS_Pos 2
123 #define I2S_CLKCTRL_NBSLOTS_Msk (_U_(0x7) << I2S_CLKCTRL_NBSLOTS_Pos)
124 #define I2S_CLKCTRL_NBSLOTS(value) (I2S_CLKCTRL_NBSLOTS_Msk & ((value) << I2S_CLKCTRL_NBSLOTS_Pos))
125 #define I2S_CLKCTRL_FSWIDTH_Pos 5
126 #define I2S_CLKCTRL_FSWIDTH_Msk (_U_(0x3) << I2S_CLKCTRL_FSWIDTH_Pos)
127 #define I2S_CLKCTRL_FSWIDTH(value) (I2S_CLKCTRL_FSWIDTH_Msk & ((value) << I2S_CLKCTRL_FSWIDTH_Pos))
128 #define I2S_CLKCTRL_FSWIDTH_SLOT_Val _U_(0x0)
129 #define I2S_CLKCTRL_FSWIDTH_HALF_Val _U_(0x1)
130 #define I2S_CLKCTRL_FSWIDTH_BIT_Val _U_(0x2)
131 #define I2S_CLKCTRL_FSWIDTH_BURST_Val _U_(0x3)
132 #define I2S_CLKCTRL_FSWIDTH_SLOT (I2S_CLKCTRL_FSWIDTH_SLOT_Val << I2S_CLKCTRL_FSWIDTH_Pos)
133 #define I2S_CLKCTRL_FSWIDTH_HALF (I2S_CLKCTRL_FSWIDTH_HALF_Val << I2S_CLKCTRL_FSWIDTH_Pos)
134 #define I2S_CLKCTRL_FSWIDTH_BIT (I2S_CLKCTRL_FSWIDTH_BIT_Val << I2S_CLKCTRL_FSWIDTH_Pos)
135 #define I2S_CLKCTRL_FSWIDTH_BURST (I2S_CLKCTRL_FSWIDTH_BURST_Val << I2S_CLKCTRL_FSWIDTH_Pos)
136 #define I2S_CLKCTRL_BITDELAY_Pos 7
137 #define I2S_CLKCTRL_BITDELAY (_U_(0x1) << I2S_CLKCTRL_BITDELAY_Pos)
138 #define I2S_CLKCTRL_BITDELAY_LJ_Val _U_(0x0)
139 #define I2S_CLKCTRL_BITDELAY_I2S_Val _U_(0x1)
140 #define I2S_CLKCTRL_BITDELAY_LJ (I2S_CLKCTRL_BITDELAY_LJ_Val << I2S_CLKCTRL_BITDELAY_Pos)
141 #define I2S_CLKCTRL_BITDELAY_I2S (I2S_CLKCTRL_BITDELAY_I2S_Val << I2S_CLKCTRL_BITDELAY_Pos)
142 #define I2S_CLKCTRL_FSSEL_Pos 8
143 #define I2S_CLKCTRL_FSSEL (_U_(0x1) << I2S_CLKCTRL_FSSEL_Pos)
144 #define I2S_CLKCTRL_FSSEL_SCKDIV_Val _U_(0x0)
145 #define I2S_CLKCTRL_FSSEL_FSPIN_Val _U_(0x1)
146 #define I2S_CLKCTRL_FSSEL_SCKDIV (I2S_CLKCTRL_FSSEL_SCKDIV_Val << I2S_CLKCTRL_FSSEL_Pos)
147 #define I2S_CLKCTRL_FSSEL_FSPIN (I2S_CLKCTRL_FSSEL_FSPIN_Val << I2S_CLKCTRL_FSSEL_Pos)
148 #define I2S_CLKCTRL_FSINV_Pos 9
149 #define I2S_CLKCTRL_FSINV (_U_(0x1) << I2S_CLKCTRL_FSINV_Pos)
150 #define I2S_CLKCTRL_FSOUTINV_Pos 10
151 #define I2S_CLKCTRL_FSOUTINV (_U_(0x1) << I2S_CLKCTRL_FSOUTINV_Pos)
152 #define I2S_CLKCTRL_SCKSEL_Pos 11
153 #define I2S_CLKCTRL_SCKSEL (_U_(0x1) << I2S_CLKCTRL_SCKSEL_Pos)
154 #define I2S_CLKCTRL_SCKSEL_MCKDIV_Val _U_(0x0)
155 #define I2S_CLKCTRL_SCKSEL_SCKPIN_Val _U_(0x1)
156 #define I2S_CLKCTRL_SCKSEL_MCKDIV (I2S_CLKCTRL_SCKSEL_MCKDIV_Val << I2S_CLKCTRL_SCKSEL_Pos)
157 #define I2S_CLKCTRL_SCKSEL_SCKPIN (I2S_CLKCTRL_SCKSEL_SCKPIN_Val << I2S_CLKCTRL_SCKSEL_Pos)
158 #define I2S_CLKCTRL_SCKOUTINV_Pos 12
159 #define I2S_CLKCTRL_SCKOUTINV (_U_(0x1) << I2S_CLKCTRL_SCKOUTINV_Pos)
160 #define I2S_CLKCTRL_MCKSEL_Pos 13
161 #define I2S_CLKCTRL_MCKSEL (_U_(0x1) << I2S_CLKCTRL_MCKSEL_Pos)
162 #define I2S_CLKCTRL_MCKSEL_GCLK_Val _U_(0x0)
163 #define I2S_CLKCTRL_MCKSEL_MCKPIN_Val _U_(0x1)
164 #define I2S_CLKCTRL_MCKSEL_GCLK (I2S_CLKCTRL_MCKSEL_GCLK_Val << I2S_CLKCTRL_MCKSEL_Pos)
165 #define I2S_CLKCTRL_MCKSEL_MCKPIN (I2S_CLKCTRL_MCKSEL_MCKPIN_Val << I2S_CLKCTRL_MCKSEL_Pos)
166 #define I2S_CLKCTRL_MCKEN_Pos 14
167 #define I2S_CLKCTRL_MCKEN (_U_(0x1) << I2S_CLKCTRL_MCKEN_Pos)
168 #define I2S_CLKCTRL_MCKOUTINV_Pos 15
169 #define I2S_CLKCTRL_MCKOUTINV (_U_(0x1) << I2S_CLKCTRL_MCKOUTINV_Pos)
170 #define I2S_CLKCTRL_MCKDIV_Pos 16
171 #define I2S_CLKCTRL_MCKDIV_Msk (_U_(0x3F) << I2S_CLKCTRL_MCKDIV_Pos)
172 #define I2S_CLKCTRL_MCKDIV(value) (I2S_CLKCTRL_MCKDIV_Msk & ((value) << I2S_CLKCTRL_MCKDIV_Pos))
173 #define I2S_CLKCTRL_MCKOUTDIV_Pos 24
174 #define I2S_CLKCTRL_MCKOUTDIV_Msk (_U_(0x3F) << I2S_CLKCTRL_MCKOUTDIV_Pos)
175 #define I2S_CLKCTRL_MCKOUTDIV(value) (I2S_CLKCTRL_MCKOUTDIV_Msk & ((value) << I2S_CLKCTRL_MCKOUTDIV_Pos))
176 #define I2S_CLKCTRL_MASK _U_(0x3F3FFFFF)
178 /* -------- I2S_INTENCLR : (I2S Offset: 0x0C) (R/W 16) Interrupt Enable Clear -------- */
179 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
180 typedef union {
181  struct {
182  uint16_t RXRDY0:1;
183  uint16_t RXRDY1:1;
184  uint16_t :2;
185  uint16_t RXOR0:1;
186  uint16_t RXOR1:1;
187  uint16_t :2;
188  uint16_t TXRDY0:1;
189  uint16_t TXRDY1:1;
190  uint16_t :2;
191  uint16_t TXUR0:1;
192  uint16_t TXUR1:1;
193  uint16_t :2;
194  } bit;
195  struct {
196  uint16_t RXRDY:2;
197  uint16_t :2;
198  uint16_t RXOR:2;
199  uint16_t :2;
200  uint16_t TXRDY:2;
201  uint16_t :2;
202  uint16_t TXUR:2;
203  uint16_t :2;
204  } vec;
205  uint16_t reg;
207 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
208 
209 #define I2S_INTENCLR_OFFSET 0x0C
210 #define I2S_INTENCLR_RESETVALUE _U_(0x0000)
212 #define I2S_INTENCLR_RXRDY0_Pos 0
213 #define I2S_INTENCLR_RXRDY0 (_U_(1) << I2S_INTENCLR_RXRDY0_Pos)
214 #define I2S_INTENCLR_RXRDY1_Pos 1
215 #define I2S_INTENCLR_RXRDY1 (_U_(1) << I2S_INTENCLR_RXRDY1_Pos)
216 #define I2S_INTENCLR_RXRDY_Pos 0
217 #define I2S_INTENCLR_RXRDY_Msk (_U_(0x3) << I2S_INTENCLR_RXRDY_Pos)
218 #define I2S_INTENCLR_RXRDY(value) (I2S_INTENCLR_RXRDY_Msk & ((value) << I2S_INTENCLR_RXRDY_Pos))
219 #define I2S_INTENCLR_RXOR0_Pos 4
220 #define I2S_INTENCLR_RXOR0 (_U_(1) << I2S_INTENCLR_RXOR0_Pos)
221 #define I2S_INTENCLR_RXOR1_Pos 5
222 #define I2S_INTENCLR_RXOR1 (_U_(1) << I2S_INTENCLR_RXOR1_Pos)
223 #define I2S_INTENCLR_RXOR_Pos 4
224 #define I2S_INTENCLR_RXOR_Msk (_U_(0x3) << I2S_INTENCLR_RXOR_Pos)
225 #define I2S_INTENCLR_RXOR(value) (I2S_INTENCLR_RXOR_Msk & ((value) << I2S_INTENCLR_RXOR_Pos))
226 #define I2S_INTENCLR_TXRDY0_Pos 8
227 #define I2S_INTENCLR_TXRDY0 (_U_(1) << I2S_INTENCLR_TXRDY0_Pos)
228 #define I2S_INTENCLR_TXRDY1_Pos 9
229 #define I2S_INTENCLR_TXRDY1 (_U_(1) << I2S_INTENCLR_TXRDY1_Pos)
230 #define I2S_INTENCLR_TXRDY_Pos 8
231 #define I2S_INTENCLR_TXRDY_Msk (_U_(0x3) << I2S_INTENCLR_TXRDY_Pos)
232 #define I2S_INTENCLR_TXRDY(value) (I2S_INTENCLR_TXRDY_Msk & ((value) << I2S_INTENCLR_TXRDY_Pos))
233 #define I2S_INTENCLR_TXUR0_Pos 12
234 #define I2S_INTENCLR_TXUR0 (_U_(1) << I2S_INTENCLR_TXUR0_Pos)
235 #define I2S_INTENCLR_TXUR1_Pos 13
236 #define I2S_INTENCLR_TXUR1 (_U_(1) << I2S_INTENCLR_TXUR1_Pos)
237 #define I2S_INTENCLR_TXUR_Pos 12
238 #define I2S_INTENCLR_TXUR_Msk (_U_(0x3) << I2S_INTENCLR_TXUR_Pos)
239 #define I2S_INTENCLR_TXUR(value) (I2S_INTENCLR_TXUR_Msk & ((value) << I2S_INTENCLR_TXUR_Pos))
240 #define I2S_INTENCLR_MASK _U_(0x3333)
242 /* -------- I2S_INTENSET : (I2S Offset: 0x10) (R/W 16) Interrupt Enable Set -------- */
243 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
244 typedef union {
245  struct {
246  uint16_t RXRDY0:1;
247  uint16_t RXRDY1:1;
248  uint16_t :2;
249  uint16_t RXOR0:1;
250  uint16_t RXOR1:1;
251  uint16_t :2;
252  uint16_t TXRDY0:1;
253  uint16_t TXRDY1:1;
254  uint16_t :2;
255  uint16_t TXUR0:1;
256  uint16_t TXUR1:1;
257  uint16_t :2;
258  } bit;
259  struct {
260  uint16_t RXRDY:2;
261  uint16_t :2;
262  uint16_t RXOR:2;
263  uint16_t :2;
264  uint16_t TXRDY:2;
265  uint16_t :2;
266  uint16_t TXUR:2;
267  uint16_t :2;
268  } vec;
269  uint16_t reg;
271 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
272 
273 #define I2S_INTENSET_OFFSET 0x10
274 #define I2S_INTENSET_RESETVALUE _U_(0x0000)
276 #define I2S_INTENSET_RXRDY0_Pos 0
277 #define I2S_INTENSET_RXRDY0 (_U_(1) << I2S_INTENSET_RXRDY0_Pos)
278 #define I2S_INTENSET_RXRDY1_Pos 1
279 #define I2S_INTENSET_RXRDY1 (_U_(1) << I2S_INTENSET_RXRDY1_Pos)
280 #define I2S_INTENSET_RXRDY_Pos 0
281 #define I2S_INTENSET_RXRDY_Msk (_U_(0x3) << I2S_INTENSET_RXRDY_Pos)
282 #define I2S_INTENSET_RXRDY(value) (I2S_INTENSET_RXRDY_Msk & ((value) << I2S_INTENSET_RXRDY_Pos))
283 #define I2S_INTENSET_RXOR0_Pos 4
284 #define I2S_INTENSET_RXOR0 (_U_(1) << I2S_INTENSET_RXOR0_Pos)
285 #define I2S_INTENSET_RXOR1_Pos 5
286 #define I2S_INTENSET_RXOR1 (_U_(1) << I2S_INTENSET_RXOR1_Pos)
287 #define I2S_INTENSET_RXOR_Pos 4
288 #define I2S_INTENSET_RXOR_Msk (_U_(0x3) << I2S_INTENSET_RXOR_Pos)
289 #define I2S_INTENSET_RXOR(value) (I2S_INTENSET_RXOR_Msk & ((value) << I2S_INTENSET_RXOR_Pos))
290 #define I2S_INTENSET_TXRDY0_Pos 8
291 #define I2S_INTENSET_TXRDY0 (_U_(1) << I2S_INTENSET_TXRDY0_Pos)
292 #define I2S_INTENSET_TXRDY1_Pos 9
293 #define I2S_INTENSET_TXRDY1 (_U_(1) << I2S_INTENSET_TXRDY1_Pos)
294 #define I2S_INTENSET_TXRDY_Pos 8
295 #define I2S_INTENSET_TXRDY_Msk (_U_(0x3) << I2S_INTENSET_TXRDY_Pos)
296 #define I2S_INTENSET_TXRDY(value) (I2S_INTENSET_TXRDY_Msk & ((value) << I2S_INTENSET_TXRDY_Pos))
297 #define I2S_INTENSET_TXUR0_Pos 12
298 #define I2S_INTENSET_TXUR0 (_U_(1) << I2S_INTENSET_TXUR0_Pos)
299 #define I2S_INTENSET_TXUR1_Pos 13
300 #define I2S_INTENSET_TXUR1 (_U_(1) << I2S_INTENSET_TXUR1_Pos)
301 #define I2S_INTENSET_TXUR_Pos 12
302 #define I2S_INTENSET_TXUR_Msk (_U_(0x3) << I2S_INTENSET_TXUR_Pos)
303 #define I2S_INTENSET_TXUR(value) (I2S_INTENSET_TXUR_Msk & ((value) << I2S_INTENSET_TXUR_Pos))
304 #define I2S_INTENSET_MASK _U_(0x3333)
306 /* -------- I2S_INTFLAG : (I2S Offset: 0x14) (R/W 16) Interrupt Flag Status and Clear -------- */
307 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
308 typedef union { // __I to avoid read-modify-write on write-to-clear register
309  struct {
310  __I uint16_t RXRDY0:1;
311  __I uint16_t RXRDY1:1;
312  __I uint16_t :2;
313  __I uint16_t RXOR0:1;
314  __I uint16_t RXOR1:1;
315  __I uint16_t :2;
316  __I uint16_t TXRDY0:1;
317  __I uint16_t TXRDY1:1;
318  __I uint16_t :2;
319  __I uint16_t TXUR0:1;
320  __I uint16_t TXUR1:1;
321  __I uint16_t :2;
322  } bit;
323  struct {
324  __I uint16_t RXRDY:2;
325  __I uint16_t :2;
326  __I uint16_t RXOR:2;
327  __I uint16_t :2;
328  __I uint16_t TXRDY:2;
329  __I uint16_t :2;
330  __I uint16_t TXUR:2;
331  __I uint16_t :2;
332  } vec;
333  uint16_t reg;
335 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
336 
337 #define I2S_INTFLAG_OFFSET 0x14
338 #define I2S_INTFLAG_RESETVALUE _U_(0x0000)
340 #define I2S_INTFLAG_RXRDY0_Pos 0
341 #define I2S_INTFLAG_RXRDY0 (_U_(1) << I2S_INTFLAG_RXRDY0_Pos)
342 #define I2S_INTFLAG_RXRDY1_Pos 1
343 #define I2S_INTFLAG_RXRDY1 (_U_(1) << I2S_INTFLAG_RXRDY1_Pos)
344 #define I2S_INTFLAG_RXRDY_Pos 0
345 #define I2S_INTFLAG_RXRDY_Msk (_U_(0x3) << I2S_INTFLAG_RXRDY_Pos)
346 #define I2S_INTFLAG_RXRDY(value) (I2S_INTFLAG_RXRDY_Msk & ((value) << I2S_INTFLAG_RXRDY_Pos))
347 #define I2S_INTFLAG_RXOR0_Pos 4
348 #define I2S_INTFLAG_RXOR0 (_U_(1) << I2S_INTFLAG_RXOR0_Pos)
349 #define I2S_INTFLAG_RXOR1_Pos 5
350 #define I2S_INTFLAG_RXOR1 (_U_(1) << I2S_INTFLAG_RXOR1_Pos)
351 #define I2S_INTFLAG_RXOR_Pos 4
352 #define I2S_INTFLAG_RXOR_Msk (_U_(0x3) << I2S_INTFLAG_RXOR_Pos)
353 #define I2S_INTFLAG_RXOR(value) (I2S_INTFLAG_RXOR_Msk & ((value) << I2S_INTFLAG_RXOR_Pos))
354 #define I2S_INTFLAG_TXRDY0_Pos 8
355 #define I2S_INTFLAG_TXRDY0 (_U_(1) << I2S_INTFLAG_TXRDY0_Pos)
356 #define I2S_INTFLAG_TXRDY1_Pos 9
357 #define I2S_INTFLAG_TXRDY1 (_U_(1) << I2S_INTFLAG_TXRDY1_Pos)
358 #define I2S_INTFLAG_TXRDY_Pos 8
359 #define I2S_INTFLAG_TXRDY_Msk (_U_(0x3) << I2S_INTFLAG_TXRDY_Pos)
360 #define I2S_INTFLAG_TXRDY(value) (I2S_INTFLAG_TXRDY_Msk & ((value) << I2S_INTFLAG_TXRDY_Pos))
361 #define I2S_INTFLAG_TXUR0_Pos 12
362 #define I2S_INTFLAG_TXUR0 (_U_(1) << I2S_INTFLAG_TXUR0_Pos)
363 #define I2S_INTFLAG_TXUR1_Pos 13
364 #define I2S_INTFLAG_TXUR1 (_U_(1) << I2S_INTFLAG_TXUR1_Pos)
365 #define I2S_INTFLAG_TXUR_Pos 12
366 #define I2S_INTFLAG_TXUR_Msk (_U_(0x3) << I2S_INTFLAG_TXUR_Pos)
367 #define I2S_INTFLAG_TXUR(value) (I2S_INTFLAG_TXUR_Msk & ((value) << I2S_INTFLAG_TXUR_Pos))
368 #define I2S_INTFLAG_MASK _U_(0x3333)
370 /* -------- I2S_SYNCBUSY : (I2S Offset: 0x18) (R/ 16) Synchronization Status -------- */
371 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
372 typedef union {
373  struct {
374  uint16_t SWRST:1;
375  uint16_t ENABLE:1;
376  uint16_t CKEN0:1;
377  uint16_t CKEN1:1;
378  uint16_t TXEN:1;
379  uint16_t RXEN:1;
380  uint16_t :2;
381  uint16_t TXDATA:1;
382  uint16_t RXDATA:1;
383  uint16_t :6;
384  } bit;
385  struct {
386  uint16_t :2;
387  uint16_t CKEN:2;
388  uint16_t :12;
389  } vec;
390  uint16_t reg;
392 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
393 
394 #define I2S_SYNCBUSY_OFFSET 0x18
395 #define I2S_SYNCBUSY_RESETVALUE _U_(0x0000)
397 #define I2S_SYNCBUSY_SWRST_Pos 0
398 #define I2S_SYNCBUSY_SWRST (_U_(0x1) << I2S_SYNCBUSY_SWRST_Pos)
399 #define I2S_SYNCBUSY_ENABLE_Pos 1
400 #define I2S_SYNCBUSY_ENABLE (_U_(0x1) << I2S_SYNCBUSY_ENABLE_Pos)
401 #define I2S_SYNCBUSY_CKEN0_Pos 2
402 #define I2S_SYNCBUSY_CKEN0 (_U_(1) << I2S_SYNCBUSY_CKEN0_Pos)
403 #define I2S_SYNCBUSY_CKEN1_Pos 3
404 #define I2S_SYNCBUSY_CKEN1 (_U_(1) << I2S_SYNCBUSY_CKEN1_Pos)
405 #define I2S_SYNCBUSY_CKEN_Pos 2
406 #define I2S_SYNCBUSY_CKEN_Msk (_U_(0x3) << I2S_SYNCBUSY_CKEN_Pos)
407 #define I2S_SYNCBUSY_CKEN(value) (I2S_SYNCBUSY_CKEN_Msk & ((value) << I2S_SYNCBUSY_CKEN_Pos))
408 #define I2S_SYNCBUSY_TXEN_Pos 4
409 #define I2S_SYNCBUSY_TXEN (_U_(0x1) << I2S_SYNCBUSY_TXEN_Pos)
410 #define I2S_SYNCBUSY_RXEN_Pos 5
411 #define I2S_SYNCBUSY_RXEN (_U_(0x1) << I2S_SYNCBUSY_RXEN_Pos)
412 #define I2S_SYNCBUSY_TXDATA_Pos 8
413 #define I2S_SYNCBUSY_TXDATA (_U_(0x1) << I2S_SYNCBUSY_TXDATA_Pos)
414 #define I2S_SYNCBUSY_RXDATA_Pos 9
415 #define I2S_SYNCBUSY_RXDATA (_U_(0x1) << I2S_SYNCBUSY_RXDATA_Pos)
416 #define I2S_SYNCBUSY_MASK _U_(0x033F)
418 /* -------- I2S_TXCTRL : (I2S Offset: 0x20) (R/W 32) Tx Serializer Control -------- */
419 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
420 typedef union {
421  struct {
422  uint32_t :2;
423  uint32_t TXDEFAULT:2;
424  uint32_t TXSAME:1;
425  uint32_t :2;
426  uint32_t SLOTADJ:1;
427  uint32_t DATASIZE:3;
428  uint32_t :1;
429  uint32_t WORDADJ:1;
430  uint32_t EXTEND:2;
431  uint32_t BITREV:1;
432  uint32_t SLOTDIS0:1;
433  uint32_t SLOTDIS1:1;
434  uint32_t SLOTDIS2:1;
435  uint32_t SLOTDIS3:1;
436  uint32_t SLOTDIS4:1;
437  uint32_t SLOTDIS5:1;
438  uint32_t SLOTDIS6:1;
439  uint32_t SLOTDIS7:1;
440  uint32_t MONO:1;
441  uint32_t DMA:1;
442  uint32_t :6;
443  } bit;
444  struct {
445  uint32_t :16;
446  uint32_t SLOTDIS:8;
447  uint32_t :8;
448  } vec;
449  uint32_t reg;
451 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
452 
453 #define I2S_TXCTRL_OFFSET 0x20
454 #define I2S_TXCTRL_RESETVALUE _U_(0x00000000)
456 #define I2S_TXCTRL_TXDEFAULT_Pos 2
457 #define I2S_TXCTRL_TXDEFAULT_Msk (_U_(0x3) << I2S_TXCTRL_TXDEFAULT_Pos)
458 #define I2S_TXCTRL_TXDEFAULT(value) (I2S_TXCTRL_TXDEFAULT_Msk & ((value) << I2S_TXCTRL_TXDEFAULT_Pos))
459 #define I2S_TXCTRL_TXDEFAULT_ZERO_Val _U_(0x0)
460 #define I2S_TXCTRL_TXDEFAULT_ONE_Val _U_(0x1)
461 #define I2S_TXCTRL_TXDEFAULT_HIZ_Val _U_(0x3)
462 #define I2S_TXCTRL_TXDEFAULT_ZERO (I2S_TXCTRL_TXDEFAULT_ZERO_Val << I2S_TXCTRL_TXDEFAULT_Pos)
463 #define I2S_TXCTRL_TXDEFAULT_ONE (I2S_TXCTRL_TXDEFAULT_ONE_Val << I2S_TXCTRL_TXDEFAULT_Pos)
464 #define I2S_TXCTRL_TXDEFAULT_HIZ (I2S_TXCTRL_TXDEFAULT_HIZ_Val << I2S_TXCTRL_TXDEFAULT_Pos)
465 #define I2S_TXCTRL_TXSAME_Pos 4
466 #define I2S_TXCTRL_TXSAME (_U_(0x1) << I2S_TXCTRL_TXSAME_Pos)
467 #define I2S_TXCTRL_TXSAME_ZERO_Val _U_(0x0)
468 #define I2S_TXCTRL_TXSAME_SAME_Val _U_(0x1)
469 #define I2S_TXCTRL_TXSAME_ZERO (I2S_TXCTRL_TXSAME_ZERO_Val << I2S_TXCTRL_TXSAME_Pos)
470 #define I2S_TXCTRL_TXSAME_SAME (I2S_TXCTRL_TXSAME_SAME_Val << I2S_TXCTRL_TXSAME_Pos)
471 #define I2S_TXCTRL_SLOTADJ_Pos 7
472 #define I2S_TXCTRL_SLOTADJ (_U_(0x1) << I2S_TXCTRL_SLOTADJ_Pos)
473 #define I2S_TXCTRL_SLOTADJ_RIGHT_Val _U_(0x0)
474 #define I2S_TXCTRL_SLOTADJ_LEFT_Val _U_(0x1)
475 #define I2S_TXCTRL_SLOTADJ_RIGHT (I2S_TXCTRL_SLOTADJ_RIGHT_Val << I2S_TXCTRL_SLOTADJ_Pos)
476 #define I2S_TXCTRL_SLOTADJ_LEFT (I2S_TXCTRL_SLOTADJ_LEFT_Val << I2S_TXCTRL_SLOTADJ_Pos)
477 #define I2S_TXCTRL_DATASIZE_Pos 8
478 #define I2S_TXCTRL_DATASIZE_Msk (_U_(0x7) << I2S_TXCTRL_DATASIZE_Pos)
479 #define I2S_TXCTRL_DATASIZE(value) (I2S_TXCTRL_DATASIZE_Msk & ((value) << I2S_TXCTRL_DATASIZE_Pos))
480 #define I2S_TXCTRL_DATASIZE_32_Val _U_(0x0)
481 #define I2S_TXCTRL_DATASIZE_24_Val _U_(0x1)
482 #define I2S_TXCTRL_DATASIZE_20_Val _U_(0x2)
483 #define I2S_TXCTRL_DATASIZE_18_Val _U_(0x3)
484 #define I2S_TXCTRL_DATASIZE_16_Val _U_(0x4)
485 #define I2S_TXCTRL_DATASIZE_16C_Val _U_(0x5)
486 #define I2S_TXCTRL_DATASIZE_8_Val _U_(0x6)
487 #define I2S_TXCTRL_DATASIZE_8C_Val _U_(0x7)
488 #define I2S_TXCTRL_DATASIZE_32 (I2S_TXCTRL_DATASIZE_32_Val << I2S_TXCTRL_DATASIZE_Pos)
489 #define I2S_TXCTRL_DATASIZE_24 (I2S_TXCTRL_DATASIZE_24_Val << I2S_TXCTRL_DATASIZE_Pos)
490 #define I2S_TXCTRL_DATASIZE_20 (I2S_TXCTRL_DATASIZE_20_Val << I2S_TXCTRL_DATASIZE_Pos)
491 #define I2S_TXCTRL_DATASIZE_18 (I2S_TXCTRL_DATASIZE_18_Val << I2S_TXCTRL_DATASIZE_Pos)
492 #define I2S_TXCTRL_DATASIZE_16 (I2S_TXCTRL_DATASIZE_16_Val << I2S_TXCTRL_DATASIZE_Pos)
493 #define I2S_TXCTRL_DATASIZE_16C (I2S_TXCTRL_DATASIZE_16C_Val << I2S_TXCTRL_DATASIZE_Pos)
494 #define I2S_TXCTRL_DATASIZE_8 (I2S_TXCTRL_DATASIZE_8_Val << I2S_TXCTRL_DATASIZE_Pos)
495 #define I2S_TXCTRL_DATASIZE_8C (I2S_TXCTRL_DATASIZE_8C_Val << I2S_TXCTRL_DATASIZE_Pos)
496 #define I2S_TXCTRL_WORDADJ_Pos 12
497 #define I2S_TXCTRL_WORDADJ (_U_(0x1) << I2S_TXCTRL_WORDADJ_Pos)
498 #define I2S_TXCTRL_WORDADJ_RIGHT_Val _U_(0x0)
499 #define I2S_TXCTRL_WORDADJ_LEFT_Val _U_(0x1)
500 #define I2S_TXCTRL_WORDADJ_RIGHT (I2S_TXCTRL_WORDADJ_RIGHT_Val << I2S_TXCTRL_WORDADJ_Pos)
501 #define I2S_TXCTRL_WORDADJ_LEFT (I2S_TXCTRL_WORDADJ_LEFT_Val << I2S_TXCTRL_WORDADJ_Pos)
502 #define I2S_TXCTRL_EXTEND_Pos 13
503 #define I2S_TXCTRL_EXTEND_Msk (_U_(0x3) << I2S_TXCTRL_EXTEND_Pos)
504 #define I2S_TXCTRL_EXTEND(value) (I2S_TXCTRL_EXTEND_Msk & ((value) << I2S_TXCTRL_EXTEND_Pos))
505 #define I2S_TXCTRL_EXTEND_ZERO_Val _U_(0x0)
506 #define I2S_TXCTRL_EXTEND_ONE_Val _U_(0x1)
507 #define I2S_TXCTRL_EXTEND_MSBIT_Val _U_(0x2)
508 #define I2S_TXCTRL_EXTEND_LSBIT_Val _U_(0x3)
509 #define I2S_TXCTRL_EXTEND_ZERO (I2S_TXCTRL_EXTEND_ZERO_Val << I2S_TXCTRL_EXTEND_Pos)
510 #define I2S_TXCTRL_EXTEND_ONE (I2S_TXCTRL_EXTEND_ONE_Val << I2S_TXCTRL_EXTEND_Pos)
511 #define I2S_TXCTRL_EXTEND_MSBIT (I2S_TXCTRL_EXTEND_MSBIT_Val << I2S_TXCTRL_EXTEND_Pos)
512 #define I2S_TXCTRL_EXTEND_LSBIT (I2S_TXCTRL_EXTEND_LSBIT_Val << I2S_TXCTRL_EXTEND_Pos)
513 #define I2S_TXCTRL_BITREV_Pos 15
514 #define I2S_TXCTRL_BITREV (_U_(0x1) << I2S_TXCTRL_BITREV_Pos)
515 #define I2S_TXCTRL_BITREV_MSBIT_Val _U_(0x0)
516 #define I2S_TXCTRL_BITREV_LSBIT_Val _U_(0x1)
517 #define I2S_TXCTRL_BITREV_MSBIT (I2S_TXCTRL_BITREV_MSBIT_Val << I2S_TXCTRL_BITREV_Pos)
518 #define I2S_TXCTRL_BITREV_LSBIT (I2S_TXCTRL_BITREV_LSBIT_Val << I2S_TXCTRL_BITREV_Pos)
519 #define I2S_TXCTRL_SLOTDIS0_Pos 16
520 #define I2S_TXCTRL_SLOTDIS0 (_U_(1) << I2S_TXCTRL_SLOTDIS0_Pos)
521 #define I2S_TXCTRL_SLOTDIS1_Pos 17
522 #define I2S_TXCTRL_SLOTDIS1 (_U_(1) << I2S_TXCTRL_SLOTDIS1_Pos)
523 #define I2S_TXCTRL_SLOTDIS2_Pos 18
524 #define I2S_TXCTRL_SLOTDIS2 (_U_(1) << I2S_TXCTRL_SLOTDIS2_Pos)
525 #define I2S_TXCTRL_SLOTDIS3_Pos 19
526 #define I2S_TXCTRL_SLOTDIS3 (_U_(1) << I2S_TXCTRL_SLOTDIS3_Pos)
527 #define I2S_TXCTRL_SLOTDIS4_Pos 20
528 #define I2S_TXCTRL_SLOTDIS4 (_U_(1) << I2S_TXCTRL_SLOTDIS4_Pos)
529 #define I2S_TXCTRL_SLOTDIS5_Pos 21
530 #define I2S_TXCTRL_SLOTDIS5 (_U_(1) << I2S_TXCTRL_SLOTDIS5_Pos)
531 #define I2S_TXCTRL_SLOTDIS6_Pos 22
532 #define I2S_TXCTRL_SLOTDIS6 (_U_(1) << I2S_TXCTRL_SLOTDIS6_Pos)
533 #define I2S_TXCTRL_SLOTDIS7_Pos 23
534 #define I2S_TXCTRL_SLOTDIS7 (_U_(1) << I2S_TXCTRL_SLOTDIS7_Pos)
535 #define I2S_TXCTRL_SLOTDIS_Pos 16
536 #define I2S_TXCTRL_SLOTDIS_Msk (_U_(0xFF) << I2S_TXCTRL_SLOTDIS_Pos)
537 #define I2S_TXCTRL_SLOTDIS(value) (I2S_TXCTRL_SLOTDIS_Msk & ((value) << I2S_TXCTRL_SLOTDIS_Pos))
538 #define I2S_TXCTRL_MONO_Pos 24
539 #define I2S_TXCTRL_MONO (_U_(0x1) << I2S_TXCTRL_MONO_Pos)
540 #define I2S_TXCTRL_MONO_STEREO_Val _U_(0x0)
541 #define I2S_TXCTRL_MONO_MONO_Val _U_(0x1)
542 #define I2S_TXCTRL_MONO_STEREO (I2S_TXCTRL_MONO_STEREO_Val << I2S_TXCTRL_MONO_Pos)
543 #define I2S_TXCTRL_MONO_MONO (I2S_TXCTRL_MONO_MONO_Val << I2S_TXCTRL_MONO_Pos)
544 #define I2S_TXCTRL_DMA_Pos 25
545 #define I2S_TXCTRL_DMA (_U_(0x1) << I2S_TXCTRL_DMA_Pos)
546 #define I2S_TXCTRL_DMA_SINGLE_Val _U_(0x0)
547 #define I2S_TXCTRL_DMA_MULTIPLE_Val _U_(0x1)
548 #define I2S_TXCTRL_DMA_SINGLE (I2S_TXCTRL_DMA_SINGLE_Val << I2S_TXCTRL_DMA_Pos)
549 #define I2S_TXCTRL_DMA_MULTIPLE (I2S_TXCTRL_DMA_MULTIPLE_Val << I2S_TXCTRL_DMA_Pos)
550 #define I2S_TXCTRL_MASK _U_(0x03FFF79C)
552 /* -------- I2S_RXCTRL : (I2S Offset: 0x24) (R/W 32) Rx Serializer Control -------- */
553 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
554 typedef union {
555  struct {
556  uint32_t SERMODE:2;
557  uint32_t :3;
558  uint32_t CLKSEL:1;
559  uint32_t :1;
560  uint32_t SLOTADJ:1;
561  uint32_t DATASIZE:3;
562  uint32_t :1;
563  uint32_t WORDADJ:1;
564  uint32_t EXTEND:2;
565  uint32_t BITREV:1;
566  uint32_t SLOTDIS0:1;
567  uint32_t SLOTDIS1:1;
568  uint32_t SLOTDIS2:1;
569  uint32_t SLOTDIS3:1;
570  uint32_t SLOTDIS4:1;
571  uint32_t SLOTDIS5:1;
572  uint32_t SLOTDIS6:1;
573  uint32_t SLOTDIS7:1;
574  uint32_t MONO:1;
575  uint32_t DMA:1;
576  uint32_t RXLOOP:1;
577  uint32_t :5;
578  } bit;
579  struct {
580  uint32_t :16;
581  uint32_t SLOTDIS:8;
582  uint32_t :8;
583  } vec;
584  uint32_t reg;
586 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
587 
588 #define I2S_RXCTRL_OFFSET 0x24
589 #define I2S_RXCTRL_RESETVALUE _U_(0x00000000)
591 #define I2S_RXCTRL_SERMODE_Pos 0
592 #define I2S_RXCTRL_SERMODE_Msk (_U_(0x3) << I2S_RXCTRL_SERMODE_Pos)
593 #define I2S_RXCTRL_SERMODE(value) (I2S_RXCTRL_SERMODE_Msk & ((value) << I2S_RXCTRL_SERMODE_Pos))
594 #define I2S_RXCTRL_SERMODE_RX_Val _U_(0x0)
595 #define I2S_RXCTRL_SERMODE_PDM2_Val _U_(0x2)
596 #define I2S_RXCTRL_SERMODE_RX (I2S_RXCTRL_SERMODE_RX_Val << I2S_RXCTRL_SERMODE_Pos)
597 #define I2S_RXCTRL_SERMODE_PDM2 (I2S_RXCTRL_SERMODE_PDM2_Val << I2S_RXCTRL_SERMODE_Pos)
598 #define I2S_RXCTRL_CLKSEL_Pos 5
599 #define I2S_RXCTRL_CLKSEL (_U_(0x1) << I2S_RXCTRL_CLKSEL_Pos)
600 #define I2S_RXCTRL_CLKSEL_CLK0_Val _U_(0x0)
601 #define I2S_RXCTRL_CLKSEL_CLK1_Val _U_(0x1)
602 #define I2S_RXCTRL_CLKSEL_CLK0 (I2S_RXCTRL_CLKSEL_CLK0_Val << I2S_RXCTRL_CLKSEL_Pos)
603 #define I2S_RXCTRL_CLKSEL_CLK1 (I2S_RXCTRL_CLKSEL_CLK1_Val << I2S_RXCTRL_CLKSEL_Pos)
604 #define I2S_RXCTRL_SLOTADJ_Pos 7
605 #define I2S_RXCTRL_SLOTADJ (_U_(0x1) << I2S_RXCTRL_SLOTADJ_Pos)
606 #define I2S_RXCTRL_SLOTADJ_RIGHT_Val _U_(0x0)
607 #define I2S_RXCTRL_SLOTADJ_LEFT_Val _U_(0x1)
608 #define I2S_RXCTRL_SLOTADJ_RIGHT (I2S_RXCTRL_SLOTADJ_RIGHT_Val << I2S_RXCTRL_SLOTADJ_Pos)
609 #define I2S_RXCTRL_SLOTADJ_LEFT (I2S_RXCTRL_SLOTADJ_LEFT_Val << I2S_RXCTRL_SLOTADJ_Pos)
610 #define I2S_RXCTRL_DATASIZE_Pos 8
611 #define I2S_RXCTRL_DATASIZE_Msk (_U_(0x7) << I2S_RXCTRL_DATASIZE_Pos)
612 #define I2S_RXCTRL_DATASIZE(value) (I2S_RXCTRL_DATASIZE_Msk & ((value) << I2S_RXCTRL_DATASIZE_Pos))
613 #define I2S_RXCTRL_DATASIZE_32_Val _U_(0x0)
614 #define I2S_RXCTRL_DATASIZE_24_Val _U_(0x1)
615 #define I2S_RXCTRL_DATASIZE_20_Val _U_(0x2)
616 #define I2S_RXCTRL_DATASIZE_18_Val _U_(0x3)
617 #define I2S_RXCTRL_DATASIZE_16_Val _U_(0x4)
618 #define I2S_RXCTRL_DATASIZE_16C_Val _U_(0x5)
619 #define I2S_RXCTRL_DATASIZE_8_Val _U_(0x6)
620 #define I2S_RXCTRL_DATASIZE_8C_Val _U_(0x7)
621 #define I2S_RXCTRL_DATASIZE_32 (I2S_RXCTRL_DATASIZE_32_Val << I2S_RXCTRL_DATASIZE_Pos)
622 #define I2S_RXCTRL_DATASIZE_24 (I2S_RXCTRL_DATASIZE_24_Val << I2S_RXCTRL_DATASIZE_Pos)
623 #define I2S_RXCTRL_DATASIZE_20 (I2S_RXCTRL_DATASIZE_20_Val << I2S_RXCTRL_DATASIZE_Pos)
624 #define I2S_RXCTRL_DATASIZE_18 (I2S_RXCTRL_DATASIZE_18_Val << I2S_RXCTRL_DATASIZE_Pos)
625 #define I2S_RXCTRL_DATASIZE_16 (I2S_RXCTRL_DATASIZE_16_Val << I2S_RXCTRL_DATASIZE_Pos)
626 #define I2S_RXCTRL_DATASIZE_16C (I2S_RXCTRL_DATASIZE_16C_Val << I2S_RXCTRL_DATASIZE_Pos)
627 #define I2S_RXCTRL_DATASIZE_8 (I2S_RXCTRL_DATASIZE_8_Val << I2S_RXCTRL_DATASIZE_Pos)
628 #define I2S_RXCTRL_DATASIZE_8C (I2S_RXCTRL_DATASIZE_8C_Val << I2S_RXCTRL_DATASIZE_Pos)
629 #define I2S_RXCTRL_WORDADJ_Pos 12
630 #define I2S_RXCTRL_WORDADJ (_U_(0x1) << I2S_RXCTRL_WORDADJ_Pos)
631 #define I2S_RXCTRL_WORDADJ_RIGHT_Val _U_(0x0)
632 #define I2S_RXCTRL_WORDADJ_LEFT_Val _U_(0x1)
633 #define I2S_RXCTRL_WORDADJ_RIGHT (I2S_RXCTRL_WORDADJ_RIGHT_Val << I2S_RXCTRL_WORDADJ_Pos)
634 #define I2S_RXCTRL_WORDADJ_LEFT (I2S_RXCTRL_WORDADJ_LEFT_Val << I2S_RXCTRL_WORDADJ_Pos)
635 #define I2S_RXCTRL_EXTEND_Pos 13
636 #define I2S_RXCTRL_EXTEND_Msk (_U_(0x3) << I2S_RXCTRL_EXTEND_Pos)
637 #define I2S_RXCTRL_EXTEND(value) (I2S_RXCTRL_EXTEND_Msk & ((value) << I2S_RXCTRL_EXTEND_Pos))
638 #define I2S_RXCTRL_EXTEND_ZERO_Val _U_(0x0)
639 #define I2S_RXCTRL_EXTEND_ONE_Val _U_(0x1)
640 #define I2S_RXCTRL_EXTEND_MSBIT_Val _U_(0x2)
641 #define I2S_RXCTRL_EXTEND_LSBIT_Val _U_(0x3)
642 #define I2S_RXCTRL_EXTEND_ZERO (I2S_RXCTRL_EXTEND_ZERO_Val << I2S_RXCTRL_EXTEND_Pos)
643 #define I2S_RXCTRL_EXTEND_ONE (I2S_RXCTRL_EXTEND_ONE_Val << I2S_RXCTRL_EXTEND_Pos)
644 #define I2S_RXCTRL_EXTEND_MSBIT (I2S_RXCTRL_EXTEND_MSBIT_Val << I2S_RXCTRL_EXTEND_Pos)
645 #define I2S_RXCTRL_EXTEND_LSBIT (I2S_RXCTRL_EXTEND_LSBIT_Val << I2S_RXCTRL_EXTEND_Pos)
646 #define I2S_RXCTRL_BITREV_Pos 15
647 #define I2S_RXCTRL_BITREV (_U_(0x1) << I2S_RXCTRL_BITREV_Pos)
648 #define I2S_RXCTRL_BITREV_MSBIT_Val _U_(0x0)
649 #define I2S_RXCTRL_BITREV_LSBIT_Val _U_(0x1)
650 #define I2S_RXCTRL_BITREV_MSBIT (I2S_RXCTRL_BITREV_MSBIT_Val << I2S_RXCTRL_BITREV_Pos)
651 #define I2S_RXCTRL_BITREV_LSBIT (I2S_RXCTRL_BITREV_LSBIT_Val << I2S_RXCTRL_BITREV_Pos)
652 #define I2S_RXCTRL_SLOTDIS0_Pos 16
653 #define I2S_RXCTRL_SLOTDIS0 (_U_(1) << I2S_RXCTRL_SLOTDIS0_Pos)
654 #define I2S_RXCTRL_SLOTDIS1_Pos 17
655 #define I2S_RXCTRL_SLOTDIS1 (_U_(1) << I2S_RXCTRL_SLOTDIS1_Pos)
656 #define I2S_RXCTRL_SLOTDIS2_Pos 18
657 #define I2S_RXCTRL_SLOTDIS2 (_U_(1) << I2S_RXCTRL_SLOTDIS2_Pos)
658 #define I2S_RXCTRL_SLOTDIS3_Pos 19
659 #define I2S_RXCTRL_SLOTDIS3 (_U_(1) << I2S_RXCTRL_SLOTDIS3_Pos)
660 #define I2S_RXCTRL_SLOTDIS4_Pos 20
661 #define I2S_RXCTRL_SLOTDIS4 (_U_(1) << I2S_RXCTRL_SLOTDIS4_Pos)
662 #define I2S_RXCTRL_SLOTDIS5_Pos 21
663 #define I2S_RXCTRL_SLOTDIS5 (_U_(1) << I2S_RXCTRL_SLOTDIS5_Pos)
664 #define I2S_RXCTRL_SLOTDIS6_Pos 22
665 #define I2S_RXCTRL_SLOTDIS6 (_U_(1) << I2S_RXCTRL_SLOTDIS6_Pos)
666 #define I2S_RXCTRL_SLOTDIS7_Pos 23
667 #define I2S_RXCTRL_SLOTDIS7 (_U_(1) << I2S_RXCTRL_SLOTDIS7_Pos)
668 #define I2S_RXCTRL_SLOTDIS_Pos 16
669 #define I2S_RXCTRL_SLOTDIS_Msk (_U_(0xFF) << I2S_RXCTRL_SLOTDIS_Pos)
670 #define I2S_RXCTRL_SLOTDIS(value) (I2S_RXCTRL_SLOTDIS_Msk & ((value) << I2S_RXCTRL_SLOTDIS_Pos))
671 #define I2S_RXCTRL_MONO_Pos 24
672 #define I2S_RXCTRL_MONO (_U_(0x1) << I2S_RXCTRL_MONO_Pos)
673 #define I2S_RXCTRL_MONO_STEREO_Val _U_(0x0)
674 #define I2S_RXCTRL_MONO_MONO_Val _U_(0x1)
675 #define I2S_RXCTRL_MONO_STEREO (I2S_RXCTRL_MONO_STEREO_Val << I2S_RXCTRL_MONO_Pos)
676 #define I2S_RXCTRL_MONO_MONO (I2S_RXCTRL_MONO_MONO_Val << I2S_RXCTRL_MONO_Pos)
677 #define I2S_RXCTRL_DMA_Pos 25
678 #define I2S_RXCTRL_DMA (_U_(0x1) << I2S_RXCTRL_DMA_Pos)
679 #define I2S_RXCTRL_DMA_SINGLE_Val _U_(0x0)
680 #define I2S_RXCTRL_DMA_MULTIPLE_Val _U_(0x1)
681 #define I2S_RXCTRL_DMA_SINGLE (I2S_RXCTRL_DMA_SINGLE_Val << I2S_RXCTRL_DMA_Pos)
682 #define I2S_RXCTRL_DMA_MULTIPLE (I2S_RXCTRL_DMA_MULTIPLE_Val << I2S_RXCTRL_DMA_Pos)
683 #define I2S_RXCTRL_RXLOOP_Pos 26
684 #define I2S_RXCTRL_RXLOOP (_U_(0x1) << I2S_RXCTRL_RXLOOP_Pos)
685 #define I2S_RXCTRL_MASK _U_(0x07FFF7A3)
687 /* -------- I2S_TXDATA : (I2S Offset: 0x30) ( /W 32) Tx Data -------- */
688 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
689 typedef union {
690  struct {
691  uint32_t DATA:32;
692  } bit;
693  uint32_t reg;
695 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
696 
697 #define I2S_TXDATA_OFFSET 0x30
698 #define I2S_TXDATA_RESETVALUE _U_(0x00000000)
700 #define I2S_TXDATA_DATA_Pos 0
701 #define I2S_TXDATA_DATA_Msk (_U_(0xFFFFFFFF) << I2S_TXDATA_DATA_Pos)
702 #define I2S_TXDATA_DATA(value) (I2S_TXDATA_DATA_Msk & ((value) << I2S_TXDATA_DATA_Pos))
703 #define I2S_TXDATA_MASK _U_(0xFFFFFFFF)
705 /* -------- I2S_RXDATA : (I2S Offset: 0x34) (R/ 32) Rx Data -------- */
706 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
707 typedef union {
708  struct {
709  uint32_t DATA:32;
710  } bit;
711  uint32_t reg;
713 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
714 
715 #define I2S_RXDATA_OFFSET 0x34
716 #define I2S_RXDATA_RESETVALUE _U_(0x00000000)
718 #define I2S_RXDATA_DATA_Pos 0
719 #define I2S_RXDATA_DATA_Msk (_U_(0xFFFFFFFF) << I2S_RXDATA_DATA_Pos)
720 #define I2S_RXDATA_DATA(value) (I2S_RXDATA_DATA_Msk & ((value) << I2S_RXDATA_DATA_Pos))
721 #define I2S_RXDATA_MASK _U_(0xFFFFFFFF)
724 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
725 typedef struct {
727  RoReg8 Reserved1[0x3];
728  __IO I2S_CLKCTRL_Type CLKCTRL[2];
730  RoReg8 Reserved2[0x2];
732  RoReg8 Reserved3[0x2];
734  RoReg8 Reserved4[0x2];
736  RoReg8 Reserved5[0x6];
739  RoReg8 Reserved6[0x8];
742 } I2s;
743 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
744 
747 #endif /* _SAME54_I2S_COMPONENT_ */
I2S_INTENSET_Type::RXOR1
uint16_t RXOR1
Definition: i2s.h:250
I2S_CTRLA_Type::CKEN
uint8_t CKEN
Definition: i2s.h:56
I2S_SYNCBUSY_Type::SWRST
uint16_t SWRST
Definition: i2s.h:374
I2S_INTENSET_Type::RXOR0
uint16_t RXOR0
Definition: i2s.h:249
I2S_TXCTRL_Type::reg
uint32_t reg
Definition: i2s.h:449
I2S_CLKCTRL_Type::MCKEN
uint32_t MCKEN
Definition: i2s.h:97
I2S_RXCTRL_Type::SLOTDIS
uint32_t SLOTDIS
Definition: i2s.h:581
I2S_INTFLAG_Type::TXRDY1
__I uint16_t TXRDY1
Definition: i2s.h:317
I2S_RXDATA_Type
Definition: i2s.h:707
I2s::RXCTRL
__IO I2S_RXCTRL_Type RXCTRL
Offset: 0x24 (R/W 32) Rx Serializer Control.
Definition: i2s.h:738
I2S_RXCTRL_Type::RXLOOP
uint32_t RXLOOP
Definition: i2s.h:576
I2S_INTENSET_Type::RXOR
uint16_t RXOR
Definition: i2s.h:262
I2S_TXCTRL_Type::WORDADJ
uint32_t WORDADJ
Definition: i2s.h:429
I2S_INTENCLR_Type::RXRDY0
uint16_t RXRDY0
Definition: i2s.h:182
I2S_RXCTRL_Type::BITREV
uint32_t BITREV
Definition: i2s.h:565
I2S_INTENCLR_Type
Definition: i2s.h:180
I2S_CLKCTRL_Type::MCKDIV
uint32_t MCKDIV
Definition: i2s.h:99
I2S_SYNCBUSY_Type::CKEN
uint16_t CKEN
Definition: i2s.h:387
I2S_CLKCTRL_Type::SCKSEL
uint32_t SCKSEL
Definition: i2s.h:94
I2S_INTENSET_Type::TXUR0
uint16_t TXUR0
Definition: i2s.h:255
I2S_CLKCTRL_Type::FSOUTINV
uint32_t FSOUTINV
Definition: i2s.h:93
I2S_INTENSET_Type::TXRDY1
uint16_t TXRDY1
Definition: i2s.h:253
I2S_RXCTRL_Type::SLOTDIS1
uint32_t SLOTDIS1
Definition: i2s.h:567
I2S_RXCTRL_Type::SLOTDIS2
uint32_t SLOTDIS2
Definition: i2s.h:568
I2S_INTFLAG_Type::TXUR0
__I uint16_t TXUR0
Definition: i2s.h:319
I2S_TXDATA_Type
Definition: i2s.h:689
I2S_INTFLAG_Type::reg
uint16_t reg
Definition: i2s.h:333
I2S_RXCTRL_Type::SLOTDIS6
uint32_t SLOTDIS6
Definition: i2s.h:572
I2S_RXCTRL_Type::CLKSEL
uint32_t CLKSEL
Definition: i2s.h:558
I2S_RXCTRL_Type::SERMODE
uint32_t SERMODE
Definition: i2s.h:556
I2S_CTRLA_Type
Definition: i2s.h:44
I2S_INTENSET_Type::RXRDY
uint16_t RXRDY
Definition: i2s.h:260
I2S_RXCTRL_Type::SLOTDIS7
uint32_t SLOTDIS7
Definition: i2s.h:573
I2S_INTFLAG_Type::RXOR0
__I uint16_t RXOR0
Definition: i2s.h:313
I2S_TXCTRL_Type::TXSAME
uint32_t TXSAME
Definition: i2s.h:424
I2S_INTFLAG_Type
Definition: i2s.h:308
I2S_INTENCLR_Type::TXRDY0
uint16_t TXRDY0
Definition: i2s.h:188
I2S_INTFLAG_Type::RXRDY1
__I uint16_t RXRDY1
Definition: i2s.h:311
I2S_CTRLA_Type::ENABLE
uint8_t ENABLE
Definition: i2s.h:47
I2S_RXCTRL_Type::DATASIZE
uint32_t DATASIZE
Definition: i2s.h:561
I2S_INTENCLR_Type::TXRDY1
uint16_t TXRDY1
Definition: i2s.h:189
I2S_TXCTRL_Type::SLOTDIS5
uint32_t SLOTDIS5
Definition: i2s.h:437
I2S_TXCTRL_Type::SLOTDIS
uint32_t SLOTDIS
Definition: i2s.h:446
I2S_SYNCBUSY_Type::RXEN
uint16_t RXEN
Definition: i2s.h:379
I2S_SYNCBUSY_Type::TXDATA
uint16_t TXDATA
Definition: i2s.h:381
I2S_RXCTRL_Type::SLOTADJ
uint32_t SLOTADJ
Definition: i2s.h:560
I2S_INTENCLR_Type::RXRDY1
uint16_t RXRDY1
Definition: i2s.h:183
I2S_RXCTRL_Type::MONO
uint32_t MONO
Definition: i2s.h:574
I2S_RXCTRL_Type
Definition: i2s.h:554
I2s::RXDATA
__I I2S_RXDATA_Type RXDATA
Offset: 0x34 (R/ 32) Rx Data.
Definition: i2s.h:741
I2S_RXCTRL_Type::DMA
uint32_t DMA
Definition: i2s.h:575
I2S_CLKCTRL_Type::reg
uint32_t reg
Definition: i2s.h:104
I2S_TXCTRL_Type::SLOTDIS3
uint32_t SLOTDIS3
Definition: i2s.h:435
I2S_RXDATA_Type::reg
uint32_t reg
Definition: i2s.h:711
I2S_INTFLAG_Type::RXRDY0
__I uint16_t RXRDY0
Definition: i2s.h:310
I2S_SYNCBUSY_Type::reg
uint16_t reg
Definition: i2s.h:390
I2S_TXCTRL_Type::EXTEND
uint32_t EXTEND
Definition: i2s.h:430
I2S_TXCTRL_Type::SLOTDIS7
uint32_t SLOTDIS7
Definition: i2s.h:439
I2S_SYNCBUSY_Type::CKEN0
uint16_t CKEN0
Definition: i2s.h:376
I2S_RXCTRL_Type::SLOTDIS5
uint32_t SLOTDIS5
Definition: i2s.h:571
I2S_SYNCBUSY_Type::TXEN
uint16_t TXEN
Definition: i2s.h:378
I2S_TXCTRL_Type
Definition: i2s.h:420
I2s::CTRLA
__IO I2S_CTRLA_Type CTRLA
Offset: 0x00 (R/W 8) Control A.
Definition: i2s.h:726
I2S_INTENCLR_Type::TXUR0
uint16_t TXUR0
Definition: i2s.h:191
I2s::TXCTRL
__IO I2S_TXCTRL_Type TXCTRL
Offset: 0x20 (R/W 32) Tx Serializer Control.
Definition: i2s.h:737
I2S_INTFLAG_Type::RXRDY
__I uint16_t RXRDY
Definition: i2s.h:324
I2S_INTENSET_Type
Definition: i2s.h:244
I2S_INTENCLR_Type::TXUR
uint16_t TXUR
Definition: i2s.h:202
I2S_CTRLA_Type::TXEN
uint8_t TXEN
Definition: i2s.h:50
I2S_TXCTRL_Type::SLOTDIS4
uint32_t SLOTDIS4
Definition: i2s.h:436
I2S_RXDATA_Type::DATA
uint32_t DATA
Definition: i2s.h:709
I2S_TXCTRL_Type::SLOTDIS0
uint32_t SLOTDIS0
Definition: i2s.h:432
I2s::INTENSET
__IO I2S_INTENSET_Type INTENSET
Offset: 0x10 (R/W 16) Interrupt Enable Set.
Definition: i2s.h:731
I2S_INTENCLR_Type::TXRDY
uint16_t TXRDY
Definition: i2s.h:200
I2S_INTENSET_Type::RXRDY0
uint16_t RXRDY0
Definition: i2s.h:246
I2S_TXCTRL_Type::DATASIZE
uint32_t DATASIZE
Definition: i2s.h:427
I2S_SYNCBUSY_Type
Definition: i2s.h:372
I2S_RXCTRL_Type::WORDADJ
uint32_t WORDADJ
Definition: i2s.h:563
I2S_SYNCBUSY_Type::ENABLE
uint16_t ENABLE
Definition: i2s.h:375
I2s::INTFLAG
__IO I2S_INTFLAG_Type INTFLAG
Offset: 0x14 (R/W 16) Interrupt Flag Status and Clear.
Definition: i2s.h:733
I2S_CLKCTRL_Type::FSINV
uint32_t FSINV
Definition: i2s.h:92
I2S_RXCTRL_Type::SLOTDIS3
uint32_t SLOTDIS3
Definition: i2s.h:569
I2S_TXCTRL_Type::TXDEFAULT
uint32_t TXDEFAULT
Definition: i2s.h:423
I2S_CTRLA_Type::reg
uint8_t reg
Definition: i2s.h:59
I2S_RXCTRL_Type::SLOTDIS0
uint32_t SLOTDIS0
Definition: i2s.h:566
I2S_TXCTRL_Type::BITREV
uint32_t BITREV
Definition: i2s.h:431
I2S_INTFLAG_Type::TXUR1
__I uint16_t TXUR1
Definition: i2s.h:320
I2S_RXCTRL_Type::SLOTDIS4
uint32_t SLOTDIS4
Definition: i2s.h:570
I2S_SYNCBUSY_Type::RXDATA
uint16_t RXDATA
Definition: i2s.h:382
I2S_INTENSET_Type::reg
uint16_t reg
Definition: i2s.h:269
I2S_INTENCLR_Type::TXUR1
uint16_t TXUR1
Definition: i2s.h:192
I2S_CLKCTRL_Type::SCKOUTINV
uint32_t SCKOUTINV
Definition: i2s.h:95
I2S_TXDATA_Type::reg
uint32_t reg
Definition: i2s.h:693
I2S_CTRLA_Type::SWRST
uint8_t SWRST
Definition: i2s.h:46
I2S_RXCTRL_Type::reg
uint32_t reg
Definition: i2s.h:584
I2S_INTENCLR_Type::RXOR0
uint16_t RXOR0
Definition: i2s.h:185
I2S_INTENCLR_Type::RXRDY
uint16_t RXRDY
Definition: i2s.h:196
I2S_INTENSET_Type::TXRDY
uint16_t TXRDY
Definition: i2s.h:264
I2S_CLKCTRL_Type
Definition: i2s.h:85
I2S_TXCTRL_Type::SLOTDIS6
uint32_t SLOTDIS6
Definition: i2s.h:438
I2S_CLKCTRL_Type::SLOTSIZE
uint32_t SLOTSIZE
Definition: i2s.h:87
I2S_INTFLAG_Type::TXRDY0
__I uint16_t TXRDY0
Definition: i2s.h:316
I2S_INTENSET_Type::TXUR
uint16_t TXUR
Definition: i2s.h:266
I2S_INTENCLR_Type::RXOR1
uint16_t RXOR1
Definition: i2s.h:186
I2S_CLKCTRL_Type::MCKOUTDIV
uint32_t MCKOUTDIV
Definition: i2s.h:101
I2S_CLKCTRL_Type::FSSEL
uint32_t FSSEL
Definition: i2s.h:91
I2S_INTFLAG_Type::uint16_t
__I uint16_t
Definition: i2s.h:312
I2S_INTFLAG_Type::TXRDY
__I uint16_t TXRDY
Definition: i2s.h:328
RoReg8
volatile const uint8_t RoReg8
Definition: same54n19a.h:53
I2S_TXCTRL_Type::MONO
uint32_t MONO
Definition: i2s.h:440
I2S_RXCTRL_Type::EXTEND
uint32_t EXTEND
Definition: i2s.h:564
I2S_TXCTRL_Type::DMA
uint32_t DMA
Definition: i2s.h:441
I2S_TXCTRL_Type::SLOTADJ
uint32_t SLOTADJ
Definition: i2s.h:426
I2S_INTENSET_Type::TXRDY0
uint16_t TXRDY0
Definition: i2s.h:252
I2s
I2S hardware registers.
Definition: i2s.h:725
I2S_CLKCTRL_Type::FSWIDTH
uint32_t FSWIDTH
Definition: i2s.h:89
I2S_TXDATA_Type::DATA
uint32_t DATA
Definition: i2s.h:691
I2s::TXDATA
__O I2S_TXDATA_Type TXDATA
Offset: 0x30 ( /W 32) Tx Data.
Definition: i2s.h:740
I2S_INTENCLR_Type::reg
uint16_t reg
Definition: i2s.h:205
I2S_TXCTRL_Type::SLOTDIS1
uint32_t SLOTDIS1
Definition: i2s.h:433
I2S_INTENCLR_Type::RXOR
uint16_t RXOR
Definition: i2s.h:198
I2S_CLKCTRL_Type::MCKOUTINV
uint32_t MCKOUTINV
Definition: i2s.h:98
I2S_CLKCTRL_Type::NBSLOTS
uint32_t NBSLOTS
Definition: i2s.h:88
I2S_SYNCBUSY_Type::CKEN1
uint16_t CKEN1
Definition: i2s.h:377
I2S_CTRLA_Type::CKEN1
uint8_t CKEN1
Definition: i2s.h:49
I2s::SYNCBUSY
__I I2S_SYNCBUSY_Type SYNCBUSY
Offset: 0x18 (R/ 16) Synchronization Status.
Definition: i2s.h:735
I2S_CTRLA_Type::RXEN
uint8_t RXEN
Definition: i2s.h:51
I2S_CLKCTRL_Type::MCKSEL
uint32_t MCKSEL
Definition: i2s.h:96
I2S_INTFLAG_Type::RXOR1
__I uint16_t RXOR1
Definition: i2s.h:314
I2s::INTENCLR
__IO I2S_INTENCLR_Type INTENCLR
Offset: 0x0C (R/W 16) Interrupt Enable Clear.
Definition: i2s.h:729
I2S_CLKCTRL_Type::BITDELAY
uint32_t BITDELAY
Definition: i2s.h:90
I2S_TXCTRL_Type::SLOTDIS2
uint32_t SLOTDIS2
Definition: i2s.h:434
I2S_INTFLAG_Type::TXUR
__I uint16_t TXUR
Definition: i2s.h:330
I2S_CTRLA_Type::CKEN0
uint8_t CKEN0
Definition: i2s.h:48
I2S_INTFLAG_Type::RXOR
__I uint16_t RXOR
Definition: i2s.h:326
I2S_INTENSET_Type::RXRDY1
uint16_t RXRDY1
Definition: i2s.h:247
I2S_INTENSET_Type::TXUR1
uint16_t TXUR1
Definition: i2s.h:256