1#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"Serial Sound Interface Enhanced 0"]
28unsafe impl ::core::marker::Send for super::Ssie0 {}
29unsafe impl ::core::marker::Sync for super::Ssie0 {}
30impl super::Ssie0 {
31 #[allow(unused)]
32 #[inline(always)]
33 pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34 self.ptr
35 }
36
37 #[doc = "Control Register"]
38 #[inline(always)]
39 pub const fn ssicr(&self) -> &'static crate::common::Reg<self::Ssicr_SPEC, crate::common::RW> {
40 unsafe {
41 crate::common::Reg::<self::Ssicr_SPEC, crate::common::RW>::from_ptr(
42 self._svd2pac_as_ptr().add(0usize),
43 )
44 }
45 }
46
47 #[doc = "Status Register"]
48 #[inline(always)]
49 pub const fn ssisr(&self) -> &'static crate::common::Reg<self::Ssisr_SPEC, crate::common::RW> {
50 unsafe {
51 crate::common::Reg::<self::Ssisr_SPEC, crate::common::RW>::from_ptr(
52 self._svd2pac_as_ptr().add(4usize),
53 )
54 }
55 }
56
57 #[doc = "FIFO Control Register"]
58 #[inline(always)]
59 pub const fn ssifcr(
60 &self,
61 ) -> &'static crate::common::Reg<self::Ssifcr_SPEC, crate::common::RW> {
62 unsafe {
63 crate::common::Reg::<self::Ssifcr_SPEC, crate::common::RW>::from_ptr(
64 self._svd2pac_as_ptr().add(16usize),
65 )
66 }
67 }
68
69 #[doc = "FIFO Status Register"]
70 #[inline(always)]
71 pub const fn ssifsr(
72 &self,
73 ) -> &'static crate::common::Reg<self::Ssifsr_SPEC, crate::common::RW> {
74 unsafe {
75 crate::common::Reg::<self::Ssifsr_SPEC, crate::common::RW>::from_ptr(
76 self._svd2pac_as_ptr().add(20usize),
77 )
78 }
79 }
80
81 #[doc = "Transmit FIFO Data Register"]
82 #[inline(always)]
83 pub const fn ssiftdr(
84 &self,
85 ) -> &'static crate::common::Reg<self::Ssiftdr_SPEC, crate::common::W> {
86 unsafe {
87 crate::common::Reg::<self::Ssiftdr_SPEC, crate::common::W>::from_ptr(
88 self._svd2pac_as_ptr().add(24usize),
89 )
90 }
91 }
92
93 #[doc = "Receive FIFO Data Register"]
94 #[inline(always)]
95 pub const fn ssifrdr(
96 &self,
97 ) -> &'static crate::common::Reg<self::Ssifrdr_SPEC, crate::common::R> {
98 unsafe {
99 crate::common::Reg::<self::Ssifrdr_SPEC, crate::common::R>::from_ptr(
100 self._svd2pac_as_ptr().add(28usize),
101 )
102 }
103 }
104
105 #[doc = "Audio Format Register"]
106 #[inline(always)]
107 pub const fn ssiofr(
108 &self,
109 ) -> &'static crate::common::Reg<self::Ssiofr_SPEC, crate::common::RW> {
110 unsafe {
111 crate::common::Reg::<self::Ssiofr_SPEC, crate::common::RW>::from_ptr(
112 self._svd2pac_as_ptr().add(32usize),
113 )
114 }
115 }
116
117 #[doc = "Status Control Register"]
118 #[inline(always)]
119 pub const fn ssiscr(
120 &self,
121 ) -> &'static crate::common::Reg<self::Ssiscr_SPEC, crate::common::RW> {
122 unsafe {
123 crate::common::Reg::<self::Ssiscr_SPEC, crate::common::RW>::from_ptr(
124 self._svd2pac_as_ptr().add(36usize),
125 )
126 }
127 }
128}
129#[doc(hidden)]
130#[derive(Copy, Clone, Eq, PartialEq)]
131pub struct Ssicr_SPEC;
132impl crate::sealed::RegSpec for Ssicr_SPEC {
133 type DataType = u32;
134}
135
136#[doc = "Control Register"]
137pub type Ssicr = crate::RegValueT<Ssicr_SPEC>;
138
139impl Ssicr {
140 #[doc = "Reception Enable"]
141 #[inline(always)]
142 pub fn ren(
143 self,
144 ) -> crate::common::RegisterField<
145 0,
146 0x1,
147 1,
148 0,
149 ssicr::Ren,
150 ssicr::Ren,
151 Ssicr_SPEC,
152 crate::common::RW,
153 > {
154 crate::common::RegisterField::<
155 0,
156 0x1,
157 1,
158 0,
159 ssicr::Ren,
160 ssicr::Ren,
161 Ssicr_SPEC,
162 crate::common::RW,
163 >::from_register(self, 0)
164 }
165
166 #[doc = "Transmission Enable"]
167 #[inline(always)]
168 pub fn ten(
169 self,
170 ) -> crate::common::RegisterField<
171 1,
172 0x1,
173 1,
174 0,
175 ssicr::Ten,
176 ssicr::Ten,
177 Ssicr_SPEC,
178 crate::common::RW,
179 > {
180 crate::common::RegisterField::<
181 1,
182 0x1,
183 1,
184 0,
185 ssicr::Ten,
186 ssicr::Ten,
187 Ssicr_SPEC,
188 crate::common::RW,
189 >::from_register(self, 0)
190 }
191
192 #[doc = "Mute Enable"]
193 #[inline(always)]
194 pub fn muen(
195 self,
196 ) -> crate::common::RegisterField<
197 3,
198 0x1,
199 1,
200 0,
201 ssicr::Muen,
202 ssicr::Muen,
203 Ssicr_SPEC,
204 crate::common::RW,
205 > {
206 crate::common::RegisterField::<
207 3,
208 0x1,
209 1,
210 0,
211 ssicr::Muen,
212 ssicr::Muen,
213 Ssicr_SPEC,
214 crate::common::RW,
215 >::from_register(self, 0)
216 }
217
218 #[doc = "Selects Bit Clock Division Ratio"]
219 #[inline(always)]
220 pub fn ckdv(
221 self,
222 ) -> crate::common::RegisterField<
223 4,
224 0xf,
225 1,
226 0,
227 ssicr::Ckdv,
228 ssicr::Ckdv,
229 Ssicr_SPEC,
230 crate::common::RW,
231 > {
232 crate::common::RegisterField::<
233 4,
234 0xf,
235 1,
236 0,
237 ssicr::Ckdv,
238 ssicr::Ckdv,
239 Ssicr_SPEC,
240 crate::common::RW,
241 >::from_register(self, 0)
242 }
243
244 #[doc = "Selects Serial Data Delay"]
245 #[inline(always)]
246 pub fn del(
247 self,
248 ) -> crate::common::RegisterField<
249 8,
250 0x1,
251 1,
252 0,
253 ssicr::Del,
254 ssicr::Del,
255 Ssicr_SPEC,
256 crate::common::RW,
257 > {
258 crate::common::RegisterField::<
259 8,
260 0x1,
261 1,
262 0,
263 ssicr::Del,
264 ssicr::Del,
265 Ssicr_SPEC,
266 crate::common::RW,
267 >::from_register(self, 0)
268 }
269
270 #[doc = "Selects Placement Data Alignment"]
271 #[inline(always)]
272 pub fn pdta(
273 self,
274 ) -> crate::common::RegisterField<
275 9,
276 0x1,
277 1,
278 0,
279 ssicr::Pdta,
280 ssicr::Pdta,
281 Ssicr_SPEC,
282 crate::common::RW,
283 > {
284 crate::common::RegisterField::<
285 9,
286 0x1,
287 1,
288 0,
289 ssicr::Pdta,
290 ssicr::Pdta,
291 Ssicr_SPEC,
292 crate::common::RW,
293 >::from_register(self, 0)
294 }
295
296 #[doc = "Selects Serial Data Alignment"]
297 #[inline(always)]
298 pub fn sdta(
299 self,
300 ) -> crate::common::RegisterField<
301 10,
302 0x1,
303 1,
304 0,
305 ssicr::Sdta,
306 ssicr::Sdta,
307 Ssicr_SPEC,
308 crate::common::RW,
309 > {
310 crate::common::RegisterField::<
311 10,
312 0x1,
313 1,
314 0,
315 ssicr::Sdta,
316 ssicr::Sdta,
317 Ssicr_SPEC,
318 crate::common::RW,
319 >::from_register(self, 0)
320 }
321
322 #[doc = "Selects Serial Padding Polarity"]
323 #[inline(always)]
324 pub fn spdp(
325 self,
326 ) -> crate::common::RegisterField<
327 11,
328 0x1,
329 1,
330 0,
331 ssicr::Spdp,
332 ssicr::Spdp,
333 Ssicr_SPEC,
334 crate::common::RW,
335 > {
336 crate::common::RegisterField::<
337 11,
338 0x1,
339 1,
340 0,
341 ssicr::Spdp,
342 ssicr::Spdp,
343 Ssicr_SPEC,
344 crate::common::RW,
345 >::from_register(self, 0)
346 }
347
348 #[doc = "Selects the Initial Value and Polarity of LR Clock/Frame Synchronization Signal"]
349 #[inline(always)]
350 pub fn lrckp(
351 self,
352 ) -> crate::common::RegisterField<
353 12,
354 0x1,
355 1,
356 0,
357 ssicr::Lrckp,
358 ssicr::Lrckp,
359 Ssicr_SPEC,
360 crate::common::RW,
361 > {
362 crate::common::RegisterField::<
363 12,
364 0x1,
365 1,
366 0,
367 ssicr::Lrckp,
368 ssicr::Lrckp,
369 Ssicr_SPEC,
370 crate::common::RW,
371 >::from_register(self, 0)
372 }
373
374 #[doc = "Selects Bit Clock Polarity"]
375 #[inline(always)]
376 pub fn bckp(
377 self,
378 ) -> crate::common::RegisterField<
379 13,
380 0x1,
381 1,
382 0,
383 ssicr::Bckp,
384 ssicr::Bckp,
385 Ssicr_SPEC,
386 crate::common::RW,
387 > {
388 crate::common::RegisterField::<
389 13,
390 0x1,
391 1,
392 0,
393 ssicr::Bckp,
394 ssicr::Bckp,
395 Ssicr_SPEC,
396 crate::common::RW,
397 >::from_register(self, 0)
398 }
399
400 #[doc = "Master Enable"]
401 #[inline(always)]
402 pub fn mst(
403 self,
404 ) -> crate::common::RegisterField<
405 14,
406 0x1,
407 1,
408 0,
409 ssicr::Mst,
410 ssicr::Mst,
411 Ssicr_SPEC,
412 crate::common::RW,
413 > {
414 crate::common::RegisterField::<
415 14,
416 0x1,
417 1,
418 0,
419 ssicr::Mst,
420 ssicr::Mst,
421 Ssicr_SPEC,
422 crate::common::RW,
423 >::from_register(self, 0)
424 }
425
426 #[doc = "Selects System Word Length"]
427 #[inline(always)]
428 pub fn swl(
429 self,
430 ) -> crate::common::RegisterField<
431 16,
432 0x7,
433 1,
434 0,
435 ssicr::Swl,
436 ssicr::Swl,
437 Ssicr_SPEC,
438 crate::common::RW,
439 > {
440 crate::common::RegisterField::<
441 16,
442 0x7,
443 1,
444 0,
445 ssicr::Swl,
446 ssicr::Swl,
447 Ssicr_SPEC,
448 crate::common::RW,
449 >::from_register(self, 0)
450 }
451
452 #[doc = "Selects Data Word Length"]
453 #[inline(always)]
454 pub fn dwl(
455 self,
456 ) -> crate::common::RegisterField<
457 19,
458 0x7,
459 1,
460 0,
461 ssicr::Dwl,
462 ssicr::Dwl,
463 Ssicr_SPEC,
464 crate::common::RW,
465 > {
466 crate::common::RegisterField::<
467 19,
468 0x7,
469 1,
470 0,
471 ssicr::Dwl,
472 ssicr::Dwl,
473 Ssicr_SPEC,
474 crate::common::RW,
475 >::from_register(self, 0)
476 }
477
478 #[doc = "Selects Frame Word Number"]
479 #[inline(always)]
480 pub fn frm(
481 self,
482 ) -> crate::common::RegisterField<22, 0x3, 1, 0, u8, u8, Ssicr_SPEC, crate::common::RW> {
483 crate::common::RegisterField::<22,0x3,1,0,u8,u8,Ssicr_SPEC,crate::common::RW>::from_register(self,0)
484 }
485
486 #[doc = "Idle Mode Interrupt Output Enable"]
487 #[inline(always)]
488 pub fn iien(
489 self,
490 ) -> crate::common::RegisterField<
491 25,
492 0x1,
493 1,
494 0,
495 ssicr::Iien,
496 ssicr::Iien,
497 Ssicr_SPEC,
498 crate::common::RW,
499 > {
500 crate::common::RegisterField::<
501 25,
502 0x1,
503 1,
504 0,
505 ssicr::Iien,
506 ssicr::Iien,
507 Ssicr_SPEC,
508 crate::common::RW,
509 >::from_register(self, 0)
510 }
511
512 #[doc = "Receive Overflow Interrupt Output Enable"]
513 #[inline(always)]
514 pub fn roien(
515 self,
516 ) -> crate::common::RegisterField<
517 26,
518 0x1,
519 1,
520 0,
521 ssicr::Roien,
522 ssicr::Roien,
523 Ssicr_SPEC,
524 crate::common::RW,
525 > {
526 crate::common::RegisterField::<
527 26,
528 0x1,
529 1,
530 0,
531 ssicr::Roien,
532 ssicr::Roien,
533 Ssicr_SPEC,
534 crate::common::RW,
535 >::from_register(self, 0)
536 }
537
538 #[doc = "Receive Underflow Interrupt Output Enable"]
539 #[inline(always)]
540 pub fn ruien(
541 self,
542 ) -> crate::common::RegisterField<
543 27,
544 0x1,
545 1,
546 0,
547 ssicr::Ruien,
548 ssicr::Ruien,
549 Ssicr_SPEC,
550 crate::common::RW,
551 > {
552 crate::common::RegisterField::<
553 27,
554 0x1,
555 1,
556 0,
557 ssicr::Ruien,
558 ssicr::Ruien,
559 Ssicr_SPEC,
560 crate::common::RW,
561 >::from_register(self, 0)
562 }
563
564 #[doc = "Transmit Overflow Interrupt Output Enable"]
565 #[inline(always)]
566 pub fn toien(
567 self,
568 ) -> crate::common::RegisterField<
569 28,
570 0x1,
571 1,
572 0,
573 ssicr::Toien,
574 ssicr::Toien,
575 Ssicr_SPEC,
576 crate::common::RW,
577 > {
578 crate::common::RegisterField::<
579 28,
580 0x1,
581 1,
582 0,
583 ssicr::Toien,
584 ssicr::Toien,
585 Ssicr_SPEC,
586 crate::common::RW,
587 >::from_register(self, 0)
588 }
589
590 #[doc = "Transmit Underflow Interrupt Output Enable"]
591 #[inline(always)]
592 pub fn tuien(
593 self,
594 ) -> crate::common::RegisterField<
595 29,
596 0x1,
597 1,
598 0,
599 ssicr::Tuien,
600 ssicr::Tuien,
601 Ssicr_SPEC,
602 crate::common::RW,
603 > {
604 crate::common::RegisterField::<
605 29,
606 0x1,
607 1,
608 0,
609 ssicr::Tuien,
610 ssicr::Tuien,
611 Ssicr_SPEC,
612 crate::common::RW,
613 >::from_register(self, 0)
614 }
615
616 #[doc = "Selects an Audio Clock for Master-mode Communication"]
617 #[inline(always)]
618 pub fn cks(
619 self,
620 ) -> crate::common::RegisterField<
621 30,
622 0x1,
623 1,
624 0,
625 ssicr::Cks,
626 ssicr::Cks,
627 Ssicr_SPEC,
628 crate::common::RW,
629 > {
630 crate::common::RegisterField::<
631 30,
632 0x1,
633 1,
634 0,
635 ssicr::Cks,
636 ssicr::Cks,
637 Ssicr_SPEC,
638 crate::common::RW,
639 >::from_register(self, 0)
640 }
641}
642impl ::core::default::Default for Ssicr {
643 #[inline(always)]
644 fn default() -> Ssicr {
645 <crate::RegValueT<Ssicr_SPEC> as RegisterValue<_>>::new(0)
646 }
647}
648pub mod ssicr {
649
650 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
651 pub struct Ren_SPEC;
652 pub type Ren = crate::EnumBitfieldStruct<u8, Ren_SPEC>;
653 impl Ren {
654 #[doc = "Disables reception"]
655 pub const _0: Self = Self::new(0);
656
657 #[doc = "Enables reception (starts reception)"]
658 pub const _1: Self = Self::new(1);
659 }
660 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
661 pub struct Ten_SPEC;
662 pub type Ten = crate::EnumBitfieldStruct<u8, Ten_SPEC>;
663 impl Ten {
664 #[doc = "Disables transmission"]
665 pub const _0: Self = Self::new(0);
666
667 #[doc = "Enables transmission (starts transmission)"]
668 pub const _1: Self = Self::new(1);
669 }
670 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
671 pub struct Muen_SPEC;
672 pub type Muen = crate::EnumBitfieldStruct<u8, Muen_SPEC>;
673 impl Muen {
674 #[doc = "Disables muting on the next frame boundary"]
675 pub const _0: Self = Self::new(0);
676
677 #[doc = "Enables muting on the next frame boundary"]
678 pub const _1: Self = Self::new(1);
679 }
680 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
681 pub struct Ckdv_SPEC;
682 pub type Ckdv = crate::EnumBitfieldStruct<u8, Ckdv_SPEC>;
683 impl Ckdv {
684 #[doc = "AUDIO_MCK"]
685 pub const _0_X_0: Self = Self::new(0);
686
687 #[doc = "AUDIO_MCK/2"]
688 pub const _0_X_1: Self = Self::new(1);
689
690 #[doc = "AUDIO_MCK/4"]
691 pub const _0_X_2: Self = Self::new(2);
692
693 #[doc = "AUDIO_MCK/8"]
694 pub const _0_X_3: Self = Self::new(3);
695
696 #[doc = "AUDIO_MCK/16"]
697 pub const _0_X_4: Self = Self::new(4);
698
699 #[doc = "AUDIO_MCK/32"]
700 pub const _0_X_5: Self = Self::new(5);
701
702 #[doc = "AUDIO_MCK/64"]
703 pub const _0_X_6: Self = Self::new(6);
704
705 #[doc = "AUDIO_MCK/128"]
706 pub const _0_X_7: Self = Self::new(7);
707
708 #[doc = "AUDIO_MCK/6"]
709 pub const _0_X_8: Self = Self::new(8);
710
711 #[doc = "AUDIO_MCK/12"]
712 pub const _0_X_9: Self = Self::new(9);
713
714 #[doc = "AUDIO_MCK/24"]
715 pub const _0_X_A: Self = Self::new(10);
716
717 #[doc = "AUDIO_MCK/48"]
718 pub const _0_X_B: Self = Self::new(11);
719
720 #[doc = "AUDIO_MCK/96"]
721 pub const _0_X_C: Self = Self::new(12);
722
723 #[doc = "Setting prohibited"]
724 pub const OTHERS: Self = Self::new(0);
725 }
726 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
727 pub struct Del_SPEC;
728 pub type Del = crate::EnumBitfieldStruct<u8, Del_SPEC>;
729 impl Del {
730 #[doc = "Delay of 1 cycle of SSIBCKn (n = 0, 1) between SSILRCKn/SSIFSn (n = 0, 1) and SSITXD0/SSIRXD0/SSIDATA1"]
731 pub const _0: Self = Self::new(0);
732
733 #[doc = "No delay between SSILRCKn/SSIFSn (n = 0, 1) and SSITXD0/SSIRXD0/SSIDATA1"]
734 pub const _1: Self = Self::new(1);
735 }
736 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
737 pub struct Pdta_SPEC;
738 pub type Pdta = crate::EnumBitfieldStruct<u8, Pdta_SPEC>;
739 impl Pdta {
740 #[doc = "Left-justifies placement data (SSIFTDR, SSIFRDR)"]
741 pub const _0: Self = Self::new(0);
742
743 #[doc = "Right-justifies placement data (SSIFTDR, SSIFRDR)"]
744 pub const _1: Self = Self::new(1);
745 }
746 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
747 pub struct Sdta_SPEC;
748 pub type Sdta = crate::EnumBitfieldStruct<u8, Sdta_SPEC>;
749 impl Sdta {
750 #[doc = "Transmits and receives serial data first and then padding bits"]
751 pub const _0: Self = Self::new(0);
752
753 #[doc = "Transmit and receives padding bits first and then serial data"]
754 pub const _1: Self = Self::new(1);
755 }
756 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
757 pub struct Spdp_SPEC;
758 pub type Spdp = crate::EnumBitfieldStruct<u8, Spdp_SPEC>;
759 impl Spdp {
760 #[doc = "Padding data is at a low level"]
761 pub const _0: Self = Self::new(0);
762
763 #[doc = "Padding data is at a high level"]
764 pub const _1: Self = Self::new(1);
765 }
766 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
767 pub struct Lrckp_SPEC;
768 pub type Lrckp = crate::EnumBitfieldStruct<u8, Lrckp_SPEC>;
769 impl Lrckp {
770 #[doc = "The initial value is at a high level. The start trigger for a frame is synchronized with a falling edge of SSILRCKn/SSIFSn (n = 0, 1)."]
771 pub const _0: Self = Self::new(0);
772
773 #[doc = "The initial value is at a low level. The start trigger for a frame is synchronized with a rising edge of SSILRCKn/SSIFSn (n = 0, 1)."]
774 pub const _1: Self = Self::new(1);
775 }
776 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
777 pub struct Bckp_SPEC;
778 pub type Bckp = crate::EnumBitfieldStruct<u8, Bckp_SPEC>;
779 impl Bckp {
780 #[doc = "SSILRCKn/SSIFSn (n = 0, 1) and SSITXD0/SSIRXD0/SSIDATA1 change at a falling edge (SSILRCKn/SSIFSn (n = 0, 1) and SSIRXD0/SSIDATA1 are sampled at a rising edge of SSIBCKn (n = 0, 1))."]
781 pub const _0: Self = Self::new(0);
782
783 #[doc = "SSILRCKn/SSIFSn (n = 0, 1) and SSITXD0/SSIRXD0/SSIDATA1 change at a rising edge (SSILRCKn/SSIFSn (n = 0, 1) and SSIRXD0/SSIDATA1 are sampled at a falling edge of SSIBCKn (n = 0, 1))."]
784 pub const _1: Self = Self::new(1);
785 }
786 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
787 pub struct Mst_SPEC;
788 pub type Mst = crate::EnumBitfieldStruct<u8, Mst_SPEC>;
789 impl Mst {
790 #[doc = "Slave-mode communication"]
791 pub const _0: Self = Self::new(0);
792
793 #[doc = "Master-mode communication"]
794 pub const _1: Self = Self::new(1);
795 }
796 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
797 pub struct Swl_SPEC;
798 pub type Swl = crate::EnumBitfieldStruct<u8, Swl_SPEC>;
799 impl Swl {
800 #[doc = "8 bits"]
801 pub const _000: Self = Self::new(0);
802
803 #[doc = "16 bits"]
804 pub const _001: Self = Self::new(1);
805
806 #[doc = "24 bits"]
807 pub const _010: Self = Self::new(2);
808
809 #[doc = "32 bits"]
810 pub const _011: Self = Self::new(3);
811
812 #[doc = "48 bits"]
813 pub const _100: Self = Self::new(4);
814
815 #[doc = "64 bits"]
816 pub const _101: Self = Self::new(5);
817
818 #[doc = "128 bits"]
819 pub const _110: Self = Self::new(6);
820
821 #[doc = "256 bits"]
822 pub const _111: Self = Self::new(7);
823 }
824 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
825 pub struct Dwl_SPEC;
826 pub type Dwl = crate::EnumBitfieldStruct<u8, Dwl_SPEC>;
827 impl Dwl {
828 #[doc = "8 bits"]
829 pub const _000: Self = Self::new(0);
830
831 #[doc = "16 bits"]
832 pub const _001: Self = Self::new(1);
833
834 #[doc = "18 bits"]
835 pub const _010: Self = Self::new(2);
836
837 #[doc = "20 bits"]
838 pub const _011: Self = Self::new(3);
839
840 #[doc = "22 bits"]
841 pub const _100: Self = Self::new(4);
842
843 #[doc = "24 bits"]
844 pub const _101: Self = Self::new(5);
845
846 #[doc = "32 bits"]
847 pub const _110: Self = Self::new(6);
848
849 #[doc = "Setting prohibited"]
850 pub const _111: Self = Self::new(7);
851 }
852 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
853 pub struct Iien_SPEC;
854 pub type Iien = crate::EnumBitfieldStruct<u8, Iien_SPEC>;
855 impl Iien {
856 #[doc = "Disables idle mode interrupt output"]
857 pub const _0: Self = Self::new(0);
858
859 #[doc = "Enables idle mode interrupt output"]
860 pub const _1: Self = Self::new(1);
861 }
862 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
863 pub struct Roien_SPEC;
864 pub type Roien = crate::EnumBitfieldStruct<u8, Roien_SPEC>;
865 impl Roien {
866 #[doc = "Disables receive overflow interrupt output"]
867 pub const _0: Self = Self::new(0);
868
869 #[doc = "Enables receive overflow interrupt output"]
870 pub const _1: Self = Self::new(1);
871 }
872 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
873 pub struct Ruien_SPEC;
874 pub type Ruien = crate::EnumBitfieldStruct<u8, Ruien_SPEC>;
875 impl Ruien {
876 #[doc = "Disables receive underflow interrupt output"]
877 pub const _0: Self = Self::new(0);
878
879 #[doc = "Enables receive underflow interrupt output"]
880 pub const _1: Self = Self::new(1);
881 }
882 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
883 pub struct Toien_SPEC;
884 pub type Toien = crate::EnumBitfieldStruct<u8, Toien_SPEC>;
885 impl Toien {
886 #[doc = "Disables transmit overflow interrupt output"]
887 pub const _0: Self = Self::new(0);
888
889 #[doc = "Enables transmit overflow interrupt output"]
890 pub const _1: Self = Self::new(1);
891 }
892 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
893 pub struct Tuien_SPEC;
894 pub type Tuien = crate::EnumBitfieldStruct<u8, Tuien_SPEC>;
895 impl Tuien {
896 #[doc = "Disables transmit underflow interrupt output"]
897 pub const _0: Self = Self::new(0);
898
899 #[doc = "Enables transmit underflow interrupt output"]
900 pub const _1: Self = Self::new(1);
901 }
902 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
903 pub struct Cks_SPEC;
904 pub type Cks = crate::EnumBitfieldStruct<u8, Cks_SPEC>;
905 impl Cks {
906 #[doc = "Selects the AUDIO_CLK input"]
907 pub const _0: Self = Self::new(0);
908
909 #[doc = "Selects the GTIOC2A (GPT output)"]
910 pub const _1: Self = Self::new(1);
911 }
912}
913#[doc(hidden)]
914#[derive(Copy, Clone, Eq, PartialEq)]
915pub struct Ssisr_SPEC;
916impl crate::sealed::RegSpec for Ssisr_SPEC {
917 type DataType = u32;
918}
919
920#[doc = "Status Register"]
921pub type Ssisr = crate::RegValueT<Ssisr_SPEC>;
922
923impl Ssisr {
924 #[doc = "Idle Mode Status Flag"]
925 #[inline(always)]
926 pub fn iirq(
927 self,
928 ) -> crate::common::RegisterField<
929 25,
930 0x1,
931 1,
932 0,
933 ssisr::Iirq,
934 ssisr::Iirq,
935 Ssisr_SPEC,
936 crate::common::R,
937 > {
938 crate::common::RegisterField::<
939 25,
940 0x1,
941 1,
942 0,
943 ssisr::Iirq,
944 ssisr::Iirq,
945 Ssisr_SPEC,
946 crate::common::R,
947 >::from_register(self, 0)
948 }
949
950 #[doc = "Receive Overflow Error Status Flag"]
951 #[inline(always)]
952 pub fn roirq(
953 self,
954 ) -> crate::common::RegisterField<
955 26,
956 0x1,
957 1,
958 0,
959 ssisr::Roirq,
960 ssisr::Roirq,
961 Ssisr_SPEC,
962 crate::common::RW,
963 > {
964 crate::common::RegisterField::<
965 26,
966 0x1,
967 1,
968 0,
969 ssisr::Roirq,
970 ssisr::Roirq,
971 Ssisr_SPEC,
972 crate::common::RW,
973 >::from_register(self, 0)
974 }
975
976 #[doc = "Receive Underflow Error Status Flag"]
977 #[inline(always)]
978 pub fn ruirq(
979 self,
980 ) -> crate::common::RegisterField<
981 27,
982 0x1,
983 1,
984 0,
985 ssisr::Ruirq,
986 ssisr::Ruirq,
987 Ssisr_SPEC,
988 crate::common::RW,
989 > {
990 crate::common::RegisterField::<
991 27,
992 0x1,
993 1,
994 0,
995 ssisr::Ruirq,
996 ssisr::Ruirq,
997 Ssisr_SPEC,
998 crate::common::RW,
999 >::from_register(self, 0)
1000 }
1001
1002 #[doc = "Transmit Overflow Error Status Flag"]
1003 #[inline(always)]
1004 pub fn toirq(
1005 self,
1006 ) -> crate::common::RegisterField<
1007 28,
1008 0x1,
1009 1,
1010 0,
1011 ssisr::Toirq,
1012 ssisr::Toirq,
1013 Ssisr_SPEC,
1014 crate::common::RW,
1015 > {
1016 crate::common::RegisterField::<
1017 28,
1018 0x1,
1019 1,
1020 0,
1021 ssisr::Toirq,
1022 ssisr::Toirq,
1023 Ssisr_SPEC,
1024 crate::common::RW,
1025 >::from_register(self, 0)
1026 }
1027
1028 #[doc = "Transmit Underflow Error Status flag"]
1029 #[inline(always)]
1030 pub fn tuirq(
1031 self,
1032 ) -> crate::common::RegisterField<
1033 29,
1034 0x1,
1035 1,
1036 0,
1037 ssisr::Tuirq,
1038 ssisr::Tuirq,
1039 Ssisr_SPEC,
1040 crate::common::RW,
1041 > {
1042 crate::common::RegisterField::<
1043 29,
1044 0x1,
1045 1,
1046 0,
1047 ssisr::Tuirq,
1048 ssisr::Tuirq,
1049 Ssisr_SPEC,
1050 crate::common::RW,
1051 >::from_register(self, 0)
1052 }
1053}
1054impl ::core::default::Default for Ssisr {
1055 #[inline(always)]
1056 fn default() -> Ssisr {
1057 <crate::RegValueT<Ssisr_SPEC> as RegisterValue<_>>::new(33554432)
1058 }
1059}
1060pub mod ssisr {
1061
1062 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1063 pub struct Iirq_SPEC;
1064 pub type Iirq = crate::EnumBitfieldStruct<u8, Iirq_SPEC>;
1065 impl Iirq {
1066 #[doc = "In the communication state"]
1067 pub const _0: Self = Self::new(0);
1068
1069 #[doc = "In the idle state"]
1070 pub const _1: Self = Self::new(1);
1071 }
1072 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1073 pub struct Roirq_SPEC;
1074 pub type Roirq = crate::EnumBitfieldStruct<u8, Roirq_SPEC>;
1075 impl Roirq {
1076 #[doc = "No receive overflow error is generated."]
1077 pub const _0: Self = Self::new(0);
1078
1079 #[doc = "A receive overflow error is generated."]
1080 pub const _1: Self = Self::new(1);
1081 }
1082 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1083 pub struct Ruirq_SPEC;
1084 pub type Ruirq = crate::EnumBitfieldStruct<u8, Ruirq_SPEC>;
1085 impl Ruirq {
1086 #[doc = "No receive underflow error is generated."]
1087 pub const _0: Self = Self::new(0);
1088
1089 #[doc = "A receive underflow error is generated."]
1090 pub const _1: Self = Self::new(1);
1091 }
1092 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1093 pub struct Toirq_SPEC;
1094 pub type Toirq = crate::EnumBitfieldStruct<u8, Toirq_SPEC>;
1095 impl Toirq {
1096 #[doc = "No transmit overflow error is generated."]
1097 pub const _0: Self = Self::new(0);
1098
1099 #[doc = "A transmit overflow error is generated."]
1100 pub const _1: Self = Self::new(1);
1101 }
1102 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1103 pub struct Tuirq_SPEC;
1104 pub type Tuirq = crate::EnumBitfieldStruct<u8, Tuirq_SPEC>;
1105 impl Tuirq {
1106 #[doc = "No transmit underflow error is generated."]
1107 pub const _0: Self = Self::new(0);
1108
1109 #[doc = "A transmit underflow error is generated."]
1110 pub const _1: Self = Self::new(1);
1111 }
1112}
1113#[doc(hidden)]
1114#[derive(Copy, Clone, Eq, PartialEq)]
1115pub struct Ssifcr_SPEC;
1116impl crate::sealed::RegSpec for Ssifcr_SPEC {
1117 type DataType = u32;
1118}
1119
1120#[doc = "FIFO Control Register"]
1121pub type Ssifcr = crate::RegValueT<Ssifcr_SPEC>;
1122
1123impl Ssifcr {
1124 #[doc = "Receive FIFO Data Register Reset"]
1125 #[inline(always)]
1126 pub fn rfrst(
1127 self,
1128 ) -> crate::common::RegisterField<
1129 0,
1130 0x1,
1131 1,
1132 0,
1133 ssifcr::Rfrst,
1134 ssifcr::Rfrst,
1135 Ssifcr_SPEC,
1136 crate::common::RW,
1137 > {
1138 crate::common::RegisterField::<
1139 0,
1140 0x1,
1141 1,
1142 0,
1143 ssifcr::Rfrst,
1144 ssifcr::Rfrst,
1145 Ssifcr_SPEC,
1146 crate::common::RW,
1147 >::from_register(self, 0)
1148 }
1149
1150 #[doc = "Transmit FIFO Data Register Reset"]
1151 #[inline(always)]
1152 pub fn tfrst(
1153 self,
1154 ) -> crate::common::RegisterField<
1155 1,
1156 0x1,
1157 1,
1158 0,
1159 ssifcr::Tfrst,
1160 ssifcr::Tfrst,
1161 Ssifcr_SPEC,
1162 crate::common::RW,
1163 > {
1164 crate::common::RegisterField::<
1165 1,
1166 0x1,
1167 1,
1168 0,
1169 ssifcr::Tfrst,
1170 ssifcr::Tfrst,
1171 Ssifcr_SPEC,
1172 crate::common::RW,
1173 >::from_register(self, 0)
1174 }
1175
1176 #[doc = "Receive Data Full Interrupt Output Enable"]
1177 #[inline(always)]
1178 pub fn rie(
1179 self,
1180 ) -> crate::common::RegisterField<
1181 2,
1182 0x1,
1183 1,
1184 0,
1185 ssifcr::Rie,
1186 ssifcr::Rie,
1187 Ssifcr_SPEC,
1188 crate::common::RW,
1189 > {
1190 crate::common::RegisterField::<
1191 2,
1192 0x1,
1193 1,
1194 0,
1195 ssifcr::Rie,
1196 ssifcr::Rie,
1197 Ssifcr_SPEC,
1198 crate::common::RW,
1199 >::from_register(self, 0)
1200 }
1201
1202 #[doc = "Transmit Data Empty Interrupt Output Enable"]
1203 #[inline(always)]
1204 pub fn tie(
1205 self,
1206 ) -> crate::common::RegisterField<
1207 3,
1208 0x1,
1209 1,
1210 0,
1211 ssifcr::Tie,
1212 ssifcr::Tie,
1213 Ssifcr_SPEC,
1214 crate::common::RW,
1215 > {
1216 crate::common::RegisterField::<
1217 3,
1218 0x1,
1219 1,
1220 0,
1221 ssifcr::Tie,
1222 ssifcr::Tie,
1223 Ssifcr_SPEC,
1224 crate::common::RW,
1225 >::from_register(self, 0)
1226 }
1227
1228 #[doc = "Byte Swap Enable"]
1229 #[inline(always)]
1230 pub fn bsw(
1231 self,
1232 ) -> crate::common::RegisterField<
1233 11,
1234 0x1,
1235 1,
1236 0,
1237 ssifcr::Bsw,
1238 ssifcr::Bsw,
1239 Ssifcr_SPEC,
1240 crate::common::RW,
1241 > {
1242 crate::common::RegisterField::<
1243 11,
1244 0x1,
1245 1,
1246 0,
1247 ssifcr::Bsw,
1248 ssifcr::Bsw,
1249 Ssifcr_SPEC,
1250 crate::common::RW,
1251 >::from_register(self, 0)
1252 }
1253
1254 #[doc = "Software Reset"]
1255 #[inline(always)]
1256 pub fn ssirst(
1257 self,
1258 ) -> crate::common::RegisterField<
1259 16,
1260 0x1,
1261 1,
1262 0,
1263 ssifcr::Ssirst,
1264 ssifcr::Ssirst,
1265 Ssifcr_SPEC,
1266 crate::common::RW,
1267 > {
1268 crate::common::RegisterField::<
1269 16,
1270 0x1,
1271 1,
1272 0,
1273 ssifcr::Ssirst,
1274 ssifcr::Ssirst,
1275 Ssifcr_SPEC,
1276 crate::common::RW,
1277 >::from_register(self, 0)
1278 }
1279
1280 #[doc = "AUDIO_MCK Enable in Mastermode Communication"]
1281 #[inline(always)]
1282 pub fn aucke(
1283 self,
1284 ) -> crate::common::RegisterField<
1285 31,
1286 0x1,
1287 1,
1288 0,
1289 ssifcr::Aucke,
1290 ssifcr::Aucke,
1291 Ssifcr_SPEC,
1292 crate::common::RW,
1293 > {
1294 crate::common::RegisterField::<
1295 31,
1296 0x1,
1297 1,
1298 0,
1299 ssifcr::Aucke,
1300 ssifcr::Aucke,
1301 Ssifcr_SPEC,
1302 crate::common::RW,
1303 >::from_register(self, 0)
1304 }
1305}
1306impl ::core::default::Default for Ssifcr {
1307 #[inline(always)]
1308 fn default() -> Ssifcr {
1309 <crate::RegValueT<Ssifcr_SPEC> as RegisterValue<_>>::new(0)
1310 }
1311}
1312pub mod ssifcr {
1313
1314 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1315 pub struct Rfrst_SPEC;
1316 pub type Rfrst = crate::EnumBitfieldStruct<u8, Rfrst_SPEC>;
1317 impl Rfrst {
1318 #[doc = "Clears a receive data FIFO reset condition"]
1319 pub const _0: Self = Self::new(0);
1320
1321 #[doc = "Sets a receive data FIFO reset condition"]
1322 pub const _1: Self = Self::new(1);
1323 }
1324 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1325 pub struct Tfrst_SPEC;
1326 pub type Tfrst = crate::EnumBitfieldStruct<u8, Tfrst_SPEC>;
1327 impl Tfrst {
1328 #[doc = "Clears a transmit data FIFO reset condition"]
1329 pub const _0: Self = Self::new(0);
1330
1331 #[doc = "Sets a transmit data FIFO reset condition"]
1332 pub const _1: Self = Self::new(1);
1333 }
1334 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1335 pub struct Rie_SPEC;
1336 pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
1337 impl Rie {
1338 #[doc = "Disables receive data full interrupts"]
1339 pub const _0: Self = Self::new(0);
1340
1341 #[doc = "Enables receive data full interrupts"]
1342 pub const _1: Self = Self::new(1);
1343 }
1344 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1345 pub struct Tie_SPEC;
1346 pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
1347 impl Tie {
1348 #[doc = "Disables transmit data empty interrupts"]
1349 pub const _0: Self = Self::new(0);
1350
1351 #[doc = "Enables transmit data empty interrupts"]
1352 pub const _1: Self = Self::new(1);
1353 }
1354 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1355 pub struct Bsw_SPEC;
1356 pub type Bsw = crate::EnumBitfieldStruct<u8, Bsw_SPEC>;
1357 impl Bsw {
1358 #[doc = "Disables byte swap"]
1359 pub const _0: Self = Self::new(0);
1360
1361 #[doc = "Enables byte swap"]
1362 pub const _1: Self = Self::new(1);
1363 }
1364 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1365 pub struct Ssirst_SPEC;
1366 pub type Ssirst = crate::EnumBitfieldStruct<u8, Ssirst_SPEC>;
1367 impl Ssirst {
1368 #[doc = "Clears a software reset condition"]
1369 pub const _0: Self = Self::new(0);
1370
1371 #[doc = "Sets a software reset condition"]
1372 pub const _1: Self = Self::new(1);
1373 }
1374 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1375 pub struct Aucke_SPEC;
1376 pub type Aucke = crate::EnumBitfieldStruct<u8, Aucke_SPEC>;
1377 impl Aucke {
1378 #[doc = "Disables supply of AUDIO_MCK"]
1379 pub const _0: Self = Self::new(0);
1380
1381 #[doc = "Enables supply of AUDIO_MCK"]
1382 pub const _1: Self = Self::new(1);
1383 }
1384}
1385#[doc(hidden)]
1386#[derive(Copy, Clone, Eq, PartialEq)]
1387pub struct Ssifsr_SPEC;
1388impl crate::sealed::RegSpec for Ssifsr_SPEC {
1389 type DataType = u32;
1390}
1391
1392#[doc = "FIFO Status Register"]
1393pub type Ssifsr = crate::RegValueT<Ssifsr_SPEC>;
1394
1395impl Ssifsr {
1396 #[doc = "Receive Data Full Flag"]
1397 #[inline(always)]
1398 pub fn rdf(
1399 self,
1400 ) -> crate::common::RegisterField<
1401 0,
1402 0x1,
1403 1,
1404 0,
1405 ssifsr::Rdf,
1406 ssifsr::Rdf,
1407 Ssifsr_SPEC,
1408 crate::common::RW,
1409 > {
1410 crate::common::RegisterField::<
1411 0,
1412 0x1,
1413 1,
1414 0,
1415 ssifsr::Rdf,
1416 ssifsr::Rdf,
1417 Ssifsr_SPEC,
1418 crate::common::RW,
1419 >::from_register(self, 0)
1420 }
1421
1422 #[doc = "Receive Data Count"]
1423 #[inline(always)]
1424 pub fn rdc(
1425 self,
1426 ) -> crate::common::RegisterField<8, 0x3f, 1, 0, u8, u8, Ssifsr_SPEC, crate::common::R> {
1427 crate::common::RegisterField::<8,0x3f,1,0,u8,u8,Ssifsr_SPEC,crate::common::R>::from_register(self,0)
1428 }
1429
1430 #[doc = "Transmit Data Empty Flag"]
1431 #[inline(always)]
1432 pub fn tde(
1433 self,
1434 ) -> crate::common::RegisterField<
1435 16,
1436 0x1,
1437 1,
1438 0,
1439 ssifsr::Tde,
1440 ssifsr::Tde,
1441 Ssifsr_SPEC,
1442 crate::common::RW,
1443 > {
1444 crate::common::RegisterField::<
1445 16,
1446 0x1,
1447 1,
1448 0,
1449 ssifsr::Tde,
1450 ssifsr::Tde,
1451 Ssifsr_SPEC,
1452 crate::common::RW,
1453 >::from_register(self, 0)
1454 }
1455
1456 #[doc = "Transmit Data Count"]
1457 #[inline(always)]
1458 pub fn tdc(
1459 self,
1460 ) -> crate::common::RegisterField<24, 0x3f, 1, 0, u8, u8, Ssifsr_SPEC, crate::common::R> {
1461 crate::common::RegisterField::<24,0x3f,1,0,u8,u8,Ssifsr_SPEC,crate::common::R>::from_register(self,0)
1462 }
1463}
1464impl ::core::default::Default for Ssifsr {
1465 #[inline(always)]
1466 fn default() -> Ssifsr {
1467 <crate::RegValueT<Ssifsr_SPEC> as RegisterValue<_>>::new(65536)
1468 }
1469}
1470pub mod ssifsr {
1471
1472 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1473 pub struct Rdf_SPEC;
1474 pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
1475 impl Rdf {
1476 #[doc = "The size of received data in SSIFRDR is not more than the value of SSISCR.RDFS."]
1477 pub const _0: Self = Self::new(0);
1478
1479 #[doc = "The size of received data in SSIFRDR is not less than the value of SSISCR.RDFS plus one."]
1480 pub const _1: Self = Self::new(1);
1481 }
1482 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1483 pub struct Tde_SPEC;
1484 pub type Tde = crate::EnumBitfieldStruct<u8, Tde_SPEC>;
1485 impl Tde {
1486 #[doc = "The free space of SSIFTDR is not more than the value of SSISCR.TDES."]
1487 pub const _0: Self = Self::new(0);
1488
1489 #[doc = "The free space of SSIFTDR is not less than the value of SSISCR.TDES plus one."]
1490 pub const _1: Self = Self::new(1);
1491 }
1492}
1493#[doc(hidden)]
1494#[derive(Copy, Clone, Eq, PartialEq)]
1495pub struct Ssiftdr_SPEC;
1496impl crate::sealed::RegSpec for Ssiftdr_SPEC {
1497 type DataType = u32;
1498}
1499
1500#[doc = "Transmit FIFO Data Register"]
1501pub type Ssiftdr = crate::RegValueT<Ssiftdr_SPEC>;
1502
1503impl Ssiftdr {
1504 #[doc = "Transmit FIFO Data"]
1505 #[inline(always)]
1506 pub fn ssiftdr(
1507 self,
1508 ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, Ssiftdr_SPEC, crate::common::W>
1509 {
1510 crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,Ssiftdr_SPEC,crate::common::W>::from_register(self,0)
1511 }
1512}
1513impl ::core::default::Default for Ssiftdr {
1514 #[inline(always)]
1515 fn default() -> Ssiftdr {
1516 <crate::RegValueT<Ssiftdr_SPEC> as RegisterValue<_>>::new(0)
1517 }
1518}
1519
1520#[doc(hidden)]
1521#[derive(Copy, Clone, Eq, PartialEq)]
1522pub struct Ssifrdr_SPEC;
1523impl crate::sealed::RegSpec for Ssifrdr_SPEC {
1524 type DataType = u32;
1525}
1526
1527#[doc = "Receive FIFO Data Register"]
1528pub type Ssifrdr = crate::RegValueT<Ssifrdr_SPEC>;
1529
1530impl Ssifrdr {
1531 #[doc = "Receive FIFO Data"]
1532 #[inline(always)]
1533 pub fn ssifrdr(
1534 self,
1535 ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, Ssifrdr_SPEC, crate::common::R>
1536 {
1537 crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,Ssifrdr_SPEC,crate::common::R>::from_register(self,0)
1538 }
1539}
1540impl ::core::default::Default for Ssifrdr {
1541 #[inline(always)]
1542 fn default() -> Ssifrdr {
1543 <crate::RegValueT<Ssifrdr_SPEC> as RegisterValue<_>>::new(0)
1544 }
1545}
1546
1547#[doc(hidden)]
1548#[derive(Copy, Clone, Eq, PartialEq)]
1549pub struct Ssiofr_SPEC;
1550impl crate::sealed::RegSpec for Ssiofr_SPEC {
1551 type DataType = u32;
1552}
1553
1554#[doc = "Audio Format Register"]
1555pub type Ssiofr = crate::RegValueT<Ssiofr_SPEC>;
1556
1557impl Ssiofr {
1558 #[doc = "Audio Format Select"]
1559 #[inline(always)]
1560 pub fn omod(
1561 self,
1562 ) -> crate::common::RegisterField<
1563 0,
1564 0x3,
1565 1,
1566 0,
1567 ssiofr::Omod,
1568 ssiofr::Omod,
1569 Ssiofr_SPEC,
1570 crate::common::RW,
1571 > {
1572 crate::common::RegisterField::<
1573 0,
1574 0x3,
1575 1,
1576 0,
1577 ssiofr::Omod,
1578 ssiofr::Omod,
1579 Ssiofr_SPEC,
1580 crate::common::RW,
1581 >::from_register(self, 0)
1582 }
1583
1584 #[doc = "Whether to Enable LRCK/FS Continuation"]
1585 #[inline(always)]
1586 pub fn lrcont(
1587 self,
1588 ) -> crate::common::RegisterField<
1589 8,
1590 0x1,
1591 1,
1592 0,
1593 ssiofr::Lrcont,
1594 ssiofr::Lrcont,
1595 Ssiofr_SPEC,
1596 crate::common::RW,
1597 > {
1598 crate::common::RegisterField::<
1599 8,
1600 0x1,
1601 1,
1602 0,
1603 ssiofr::Lrcont,
1604 ssiofr::Lrcont,
1605 Ssiofr_SPEC,
1606 crate::common::RW,
1607 >::from_register(self, 0)
1608 }
1609
1610 #[doc = "Whether to Enable Stopping BCK Output When SSIE is in Idle Status"]
1611 #[inline(always)]
1612 pub fn bckastp(
1613 self,
1614 ) -> crate::common::RegisterField<
1615 9,
1616 0x1,
1617 1,
1618 0,
1619 ssiofr::Bckastp,
1620 ssiofr::Bckastp,
1621 Ssiofr_SPEC,
1622 crate::common::RW,
1623 > {
1624 crate::common::RegisterField::<
1625 9,
1626 0x1,
1627 1,
1628 0,
1629 ssiofr::Bckastp,
1630 ssiofr::Bckastp,
1631 Ssiofr_SPEC,
1632 crate::common::RW,
1633 >::from_register(self, 0)
1634 }
1635}
1636impl ::core::default::Default for Ssiofr {
1637 #[inline(always)]
1638 fn default() -> Ssiofr {
1639 <crate::RegValueT<Ssiofr_SPEC> as RegisterValue<_>>::new(0)
1640 }
1641}
1642pub mod ssiofr {
1643
1644 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1645 pub struct Omod_SPEC;
1646 pub type Omod = crate::EnumBitfieldStruct<u8, Omod_SPEC>;
1647 impl Omod {
1648 #[doc = "I2S format"]
1649 pub const _00: Self = Self::new(0);
1650
1651 #[doc = "TDM format"]
1652 pub const _01: Self = Self::new(1);
1653
1654 #[doc = "Monaural format"]
1655 pub const _10: Self = Self::new(2);
1656
1657 #[doc = "Setting prohibited"]
1658 pub const _11: Self = Self::new(3);
1659 }
1660 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1661 pub struct Lrcont_SPEC;
1662 pub type Lrcont = crate::EnumBitfieldStruct<u8, Lrcont_SPEC>;
1663 impl Lrcont {
1664 #[doc = "Disables LRCK/FS continuation"]
1665 pub const _0: Self = Self::new(0);
1666
1667 #[doc = "Enables LRCK/FS continuation"]
1668 pub const _1: Self = Self::new(1);
1669 }
1670 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1671 pub struct Bckastp_SPEC;
1672 pub type Bckastp = crate::EnumBitfieldStruct<u8, Bckastp_SPEC>;
1673 impl Bckastp {
1674 #[doc = "Always outputs BCK to the SSIBCKn (n = 0, 1) pin"]
1675 pub const _0: Self = Self::new(0);
1676
1677 #[doc = "Automatically controls output of BCK to the SSIBCKn (n = 0, 1) pin"]
1678 pub const _1: Self = Self::new(1);
1679 }
1680}
1681#[doc(hidden)]
1682#[derive(Copy, Clone, Eq, PartialEq)]
1683pub struct Ssiscr_SPEC;
1684impl crate::sealed::RegSpec for Ssiscr_SPEC {
1685 type DataType = u32;
1686}
1687
1688#[doc = "Status Control Register"]
1689pub type Ssiscr = crate::RegValueT<Ssiscr_SPEC>;
1690
1691impl Ssiscr {
1692 #[doc = "RDF Setting Condition Select"]
1693 #[inline(always)]
1694 pub fn rdfs(
1695 self,
1696 ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, Ssiscr_SPEC, crate::common::RW> {
1697 crate::common::RegisterField::<0,0x1f,1,0,u8,u8,Ssiscr_SPEC,crate::common::RW>::from_register(self,0)
1698 }
1699
1700 #[doc = "TDE Setting Condition Select"]
1701 #[inline(always)]
1702 pub fn tdes(
1703 self,
1704 ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, Ssiscr_SPEC, crate::common::RW> {
1705 crate::common::RegisterField::<8,0x1f,1,0,u8,u8,Ssiscr_SPEC,crate::common::RW>::from_register(self,0)
1706 }
1707}
1708impl ::core::default::Default for Ssiscr {
1709 #[inline(always)]
1710 fn default() -> Ssiscr {
1711 <crate::RegValueT<Ssiscr_SPEC> as RegisterValue<_>>::new(0)
1712 }
1713}