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 (SSIE)"]
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 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
724 pub struct Del_SPEC;
725 pub type Del = crate::EnumBitfieldStruct<u8, Del_SPEC>;
726 impl Del {
727 #[doc = "Delay of 1 cycle of SSIBCK0 between SSILRCK0/SSIFS0 and SSITXD0/SSIRXD0"]
728 pub const _0: Self = Self::new(0);
729
730 #[doc = "No delay between SSILRCK0/SSIFS0 and SSITXD0/SSIRXD0"]
731 pub const _1: Self = Self::new(1);
732 }
733 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
734 pub struct Pdta_SPEC;
735 pub type Pdta = crate::EnumBitfieldStruct<u8, Pdta_SPEC>;
736 impl Pdta {
737 #[doc = "Left-justifies placement data (SSIFTDR, SSIFRDR)"]
738 pub const _0: Self = Self::new(0);
739
740 #[doc = "Right-justifies placement data (SSIFTDR, SSIFRDR)"]
741 pub const _1: Self = Self::new(1);
742 }
743 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
744 pub struct Sdta_SPEC;
745 pub type Sdta = crate::EnumBitfieldStruct<u8, Sdta_SPEC>;
746 impl Sdta {
747 #[doc = "Transmits and receives serial data first and then padding bits"]
748 pub const _0: Self = Self::new(0);
749
750 #[doc = "Transmit and receives padding bits first and then serial data"]
751 pub const _1: Self = Self::new(1);
752 }
753 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
754 pub struct Spdp_SPEC;
755 pub type Spdp = crate::EnumBitfieldStruct<u8, Spdp_SPEC>;
756 impl Spdp {
757 #[doc = "Padding data is at a low level"]
758 pub const _0: Self = Self::new(0);
759
760 #[doc = "Padding data is at a high level"]
761 pub const _1: Self = Self::new(1);
762 }
763 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
764 pub struct Lrckp_SPEC;
765 pub type Lrckp = crate::EnumBitfieldStruct<u8, Lrckp_SPEC>;
766 impl Lrckp {
767 #[doc = "The initial value is at a high level. The start trigger for a frame is synchronized with a falling edge of SSILRCK0/SSIFS0."]
768 pub const _0: Self = Self::new(0);
769
770 #[doc = "The initial value is at a low level. The start trigger for a frame is synchronized with a rising edge of SSILRCK0/SSIFS0."]
771 pub const _1: Self = Self::new(1);
772 }
773 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
774 pub struct Bckp_SPEC;
775 pub type Bckp = crate::EnumBitfieldStruct<u8, Bckp_SPEC>;
776 impl Bckp {
777 #[doc = "SSILRCK0/SSIFS0 and SSITXD0/SSIRXD0 change at a falling edge (SSILRCK0/SSIFS0 and SSIRXD0 are sampled at a rising edge of SSIBCK0)."]
778 pub const _0: Self = Self::new(0);
779
780 #[doc = "SSILRCK0/SSIFS0 and SSITXD0/SSIRXD0 change at a rising edge (SSILRCK0/SSIFS0 and SSIRXD0 are sampled at a falling edge of SSIBCK0)."]
781 pub const _1: Self = Self::new(1);
782 }
783 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
784 pub struct Mst_SPEC;
785 pub type Mst = crate::EnumBitfieldStruct<u8, Mst_SPEC>;
786 impl Mst {
787 #[doc = "Slave-mode communication"]
788 pub const _0: Self = Self::new(0);
789
790 #[doc = "Master-mode communication"]
791 pub const _1: Self = Self::new(1);
792 }
793 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
794 pub struct Swl_SPEC;
795 pub type Swl = crate::EnumBitfieldStruct<u8, Swl_SPEC>;
796 impl Swl {
797 #[doc = "8 bits"]
798 pub const _000: Self = Self::new(0);
799
800 #[doc = "16 bits"]
801 pub const _001: Self = Self::new(1);
802
803 #[doc = "24 bits"]
804 pub const _010: Self = Self::new(2);
805
806 #[doc = "32 bits"]
807 pub const _011: Self = Self::new(3);
808
809 #[doc = "48 bits"]
810 pub const _100: Self = Self::new(4);
811
812 #[doc = "64 bits"]
813 pub const _101: Self = Self::new(5);
814
815 #[doc = "128 bits"]
816 pub const _110: Self = Self::new(6);
817
818 #[doc = "256 bits"]
819 pub const _111: Self = Self::new(7);
820 }
821 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
822 pub struct Dwl_SPEC;
823 pub type Dwl = crate::EnumBitfieldStruct<u8, Dwl_SPEC>;
824 impl Dwl {
825 #[doc = "8 bits"]
826 pub const _000: Self = Self::new(0);
827
828 #[doc = "16 bits"]
829 pub const _001: Self = Self::new(1);
830
831 #[doc = "18 bits"]
832 pub const _010: Self = Self::new(2);
833
834 #[doc = "20 bits"]
835 pub const _011: Self = Self::new(3);
836
837 #[doc = "22 bits"]
838 pub const _100: Self = Self::new(4);
839
840 #[doc = "24 bits"]
841 pub const _101: Self = Self::new(5);
842
843 #[doc = "32 bits"]
844 pub const _110: Self = Self::new(6);
845
846 #[doc = "Setting prohibited"]
847 pub const _111: Self = Self::new(7);
848 }
849 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
850 pub struct Iien_SPEC;
851 pub type Iien = crate::EnumBitfieldStruct<u8, Iien_SPEC>;
852 impl Iien {
853 #[doc = "Disables idle mode interrupt output"]
854 pub const _0: Self = Self::new(0);
855
856 #[doc = "Enables idle mode interrupt output"]
857 pub const _1: Self = Self::new(1);
858 }
859 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
860 pub struct Roien_SPEC;
861 pub type Roien = crate::EnumBitfieldStruct<u8, Roien_SPEC>;
862 impl Roien {
863 #[doc = "Disables receive overflow interrupt output"]
864 pub const _0: Self = Self::new(0);
865
866 #[doc = "Enables receive overflow interrupt output"]
867 pub const _1: Self = Self::new(1);
868 }
869 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
870 pub struct Ruien_SPEC;
871 pub type Ruien = crate::EnumBitfieldStruct<u8, Ruien_SPEC>;
872 impl Ruien {
873 #[doc = "Disables receive underflow interrupt output"]
874 pub const _0: Self = Self::new(0);
875
876 #[doc = "Enables receive underflow interrupt output"]
877 pub const _1: Self = Self::new(1);
878 }
879 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
880 pub struct Toien_SPEC;
881 pub type Toien = crate::EnumBitfieldStruct<u8, Toien_SPEC>;
882 impl Toien {
883 #[doc = "Disables transmit overflow interrupt output"]
884 pub const _0: Self = Self::new(0);
885
886 #[doc = "Enables transmit overflow interrupt output"]
887 pub const _1: Self = Self::new(1);
888 }
889 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
890 pub struct Tuien_SPEC;
891 pub type Tuien = crate::EnumBitfieldStruct<u8, Tuien_SPEC>;
892 impl Tuien {
893 #[doc = "Disables transmit underflow interrupt output"]
894 pub const _0: Self = Self::new(0);
895
896 #[doc = "Enables transmit underflow interrupt output"]
897 pub const _1: Self = Self::new(1);
898 }
899 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
900 pub struct Cks_SPEC;
901 pub type Cks = crate::EnumBitfieldStruct<u8, Cks_SPEC>;
902 impl Cks {
903 #[doc = "Selects the AUDIO_CLK input"]
904 pub const _0: Self = Self::new(0);
905
906 #[doc = "Selects the GTIOC2A (GPT output)"]
907 pub const _1: Self = Self::new(1);
908 }
909}
910#[doc(hidden)]
911#[derive(Copy, Clone, Eq, PartialEq)]
912pub struct Ssisr_SPEC;
913impl crate::sealed::RegSpec for Ssisr_SPEC {
914 type DataType = u32;
915}
916
917#[doc = "Status Register"]
918pub type Ssisr = crate::RegValueT<Ssisr_SPEC>;
919
920impl Ssisr {
921 #[doc = "Idle Mode Status Flag"]
922 #[inline(always)]
923 pub fn iirq(
924 self,
925 ) -> crate::common::RegisterField<
926 25,
927 0x1,
928 1,
929 0,
930 ssisr::Iirq,
931 ssisr::Iirq,
932 Ssisr_SPEC,
933 crate::common::R,
934 > {
935 crate::common::RegisterField::<
936 25,
937 0x1,
938 1,
939 0,
940 ssisr::Iirq,
941 ssisr::Iirq,
942 Ssisr_SPEC,
943 crate::common::R,
944 >::from_register(self, 0)
945 }
946
947 #[doc = "Receive Overflow Error Status Flag"]
948 #[inline(always)]
949 pub fn roirq(
950 self,
951 ) -> crate::common::RegisterField<
952 26,
953 0x1,
954 1,
955 0,
956 ssisr::Roirq,
957 ssisr::Roirq,
958 Ssisr_SPEC,
959 crate::common::RW,
960 > {
961 crate::common::RegisterField::<
962 26,
963 0x1,
964 1,
965 0,
966 ssisr::Roirq,
967 ssisr::Roirq,
968 Ssisr_SPEC,
969 crate::common::RW,
970 >::from_register(self, 0)
971 }
972
973 #[doc = "Receive Underflow Error Status Flag"]
974 #[inline(always)]
975 pub fn ruirq(
976 self,
977 ) -> crate::common::RegisterField<
978 27,
979 0x1,
980 1,
981 0,
982 ssisr::Ruirq,
983 ssisr::Ruirq,
984 Ssisr_SPEC,
985 crate::common::RW,
986 > {
987 crate::common::RegisterField::<
988 27,
989 0x1,
990 1,
991 0,
992 ssisr::Ruirq,
993 ssisr::Ruirq,
994 Ssisr_SPEC,
995 crate::common::RW,
996 >::from_register(self, 0)
997 }
998
999 #[doc = "Transmit Overflow Error Status Flag"]
1000 #[inline(always)]
1001 pub fn toirq(
1002 self,
1003 ) -> crate::common::RegisterField<
1004 28,
1005 0x1,
1006 1,
1007 0,
1008 ssisr::Toirq,
1009 ssisr::Toirq,
1010 Ssisr_SPEC,
1011 crate::common::RW,
1012 > {
1013 crate::common::RegisterField::<
1014 28,
1015 0x1,
1016 1,
1017 0,
1018 ssisr::Toirq,
1019 ssisr::Toirq,
1020 Ssisr_SPEC,
1021 crate::common::RW,
1022 >::from_register(self, 0)
1023 }
1024
1025 #[doc = "Transmit Underflow Error Status flag"]
1026 #[inline(always)]
1027 pub fn tuirq(
1028 self,
1029 ) -> crate::common::RegisterField<
1030 29,
1031 0x1,
1032 1,
1033 0,
1034 ssisr::Tuirq,
1035 ssisr::Tuirq,
1036 Ssisr_SPEC,
1037 crate::common::RW,
1038 > {
1039 crate::common::RegisterField::<
1040 29,
1041 0x1,
1042 1,
1043 0,
1044 ssisr::Tuirq,
1045 ssisr::Tuirq,
1046 Ssisr_SPEC,
1047 crate::common::RW,
1048 >::from_register(self, 0)
1049 }
1050}
1051impl ::core::default::Default for Ssisr {
1052 #[inline(always)]
1053 fn default() -> Ssisr {
1054 <crate::RegValueT<Ssisr_SPEC> as RegisterValue<_>>::new(33554432)
1055 }
1056}
1057pub mod ssisr {
1058
1059 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1060 pub struct Iirq_SPEC;
1061 pub type Iirq = crate::EnumBitfieldStruct<u8, Iirq_SPEC>;
1062 impl Iirq {
1063 #[doc = "In the communication state"]
1064 pub const _0: Self = Self::new(0);
1065
1066 #[doc = "In the idle state"]
1067 pub const _1: Self = Self::new(1);
1068 }
1069 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1070 pub struct Roirq_SPEC;
1071 pub type Roirq = crate::EnumBitfieldStruct<u8, Roirq_SPEC>;
1072 impl Roirq {
1073 #[doc = "No receive overflow error is generated."]
1074 pub const _0: Self = Self::new(0);
1075
1076 #[doc = "A receive overflow error is generated."]
1077 pub const _1: Self = Self::new(1);
1078 }
1079 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1080 pub struct Ruirq_SPEC;
1081 pub type Ruirq = crate::EnumBitfieldStruct<u8, Ruirq_SPEC>;
1082 impl Ruirq {
1083 #[doc = "No receive underflow error is generated."]
1084 pub const _0: Self = Self::new(0);
1085
1086 #[doc = "A receive underflow error is generated."]
1087 pub const _1: Self = Self::new(1);
1088 }
1089 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1090 pub struct Toirq_SPEC;
1091 pub type Toirq = crate::EnumBitfieldStruct<u8, Toirq_SPEC>;
1092 impl Toirq {
1093 #[doc = "No transmit overflow error is generated."]
1094 pub const _0: Self = Self::new(0);
1095
1096 #[doc = "A transmit overflow error is generated."]
1097 pub const _1: Self = Self::new(1);
1098 }
1099 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1100 pub struct Tuirq_SPEC;
1101 pub type Tuirq = crate::EnumBitfieldStruct<u8, Tuirq_SPEC>;
1102 impl Tuirq {
1103 #[doc = "No transmit underflow error is generated."]
1104 pub const _0: Self = Self::new(0);
1105
1106 #[doc = "A transmit underflow error is generated."]
1107 pub const _1: Self = Self::new(1);
1108 }
1109}
1110#[doc(hidden)]
1111#[derive(Copy, Clone, Eq, PartialEq)]
1112pub struct Ssifcr_SPEC;
1113impl crate::sealed::RegSpec for Ssifcr_SPEC {
1114 type DataType = u32;
1115}
1116
1117#[doc = "FIFO Control Register"]
1118pub type Ssifcr = crate::RegValueT<Ssifcr_SPEC>;
1119
1120impl Ssifcr {
1121 #[doc = "Receive FIFO Data Register Reset"]
1122 #[inline(always)]
1123 pub fn rfrst(
1124 self,
1125 ) -> crate::common::RegisterField<
1126 0,
1127 0x1,
1128 1,
1129 0,
1130 ssifcr::Rfrst,
1131 ssifcr::Rfrst,
1132 Ssifcr_SPEC,
1133 crate::common::RW,
1134 > {
1135 crate::common::RegisterField::<
1136 0,
1137 0x1,
1138 1,
1139 0,
1140 ssifcr::Rfrst,
1141 ssifcr::Rfrst,
1142 Ssifcr_SPEC,
1143 crate::common::RW,
1144 >::from_register(self, 0)
1145 }
1146
1147 #[doc = "Transmit FIFO Data Register Reset"]
1148 #[inline(always)]
1149 pub fn tfrst(
1150 self,
1151 ) -> crate::common::RegisterField<
1152 1,
1153 0x1,
1154 1,
1155 0,
1156 ssifcr::Tfrst,
1157 ssifcr::Tfrst,
1158 Ssifcr_SPEC,
1159 crate::common::RW,
1160 > {
1161 crate::common::RegisterField::<
1162 1,
1163 0x1,
1164 1,
1165 0,
1166 ssifcr::Tfrst,
1167 ssifcr::Tfrst,
1168 Ssifcr_SPEC,
1169 crate::common::RW,
1170 >::from_register(self, 0)
1171 }
1172
1173 #[doc = "Receive Data Full Interrupt Output Enable"]
1174 #[inline(always)]
1175 pub fn rie(
1176 self,
1177 ) -> crate::common::RegisterField<
1178 2,
1179 0x1,
1180 1,
1181 0,
1182 ssifcr::Rie,
1183 ssifcr::Rie,
1184 Ssifcr_SPEC,
1185 crate::common::RW,
1186 > {
1187 crate::common::RegisterField::<
1188 2,
1189 0x1,
1190 1,
1191 0,
1192 ssifcr::Rie,
1193 ssifcr::Rie,
1194 Ssifcr_SPEC,
1195 crate::common::RW,
1196 >::from_register(self, 0)
1197 }
1198
1199 #[doc = "Transmit Data Empty Interrupt Output Enable"]
1200 #[inline(always)]
1201 pub fn tie(
1202 self,
1203 ) -> crate::common::RegisterField<
1204 3,
1205 0x1,
1206 1,
1207 0,
1208 ssifcr::Tie,
1209 ssifcr::Tie,
1210 Ssifcr_SPEC,
1211 crate::common::RW,
1212 > {
1213 crate::common::RegisterField::<
1214 3,
1215 0x1,
1216 1,
1217 0,
1218 ssifcr::Tie,
1219 ssifcr::Tie,
1220 Ssifcr_SPEC,
1221 crate::common::RW,
1222 >::from_register(self, 0)
1223 }
1224
1225 #[doc = "Byte Swap Enable"]
1226 #[inline(always)]
1227 pub fn bsw(
1228 self,
1229 ) -> crate::common::RegisterField<
1230 11,
1231 0x1,
1232 1,
1233 0,
1234 ssifcr::Bsw,
1235 ssifcr::Bsw,
1236 Ssifcr_SPEC,
1237 crate::common::RW,
1238 > {
1239 crate::common::RegisterField::<
1240 11,
1241 0x1,
1242 1,
1243 0,
1244 ssifcr::Bsw,
1245 ssifcr::Bsw,
1246 Ssifcr_SPEC,
1247 crate::common::RW,
1248 >::from_register(self, 0)
1249 }
1250
1251 #[doc = "Software Reset"]
1252 #[inline(always)]
1253 pub fn ssirst(
1254 self,
1255 ) -> crate::common::RegisterField<
1256 16,
1257 0x1,
1258 1,
1259 0,
1260 ssifcr::Ssirst,
1261 ssifcr::Ssirst,
1262 Ssifcr_SPEC,
1263 crate::common::RW,
1264 > {
1265 crate::common::RegisterField::<
1266 16,
1267 0x1,
1268 1,
1269 0,
1270 ssifcr::Ssirst,
1271 ssifcr::Ssirst,
1272 Ssifcr_SPEC,
1273 crate::common::RW,
1274 >::from_register(self, 0)
1275 }
1276
1277 #[doc = "AUDIO_MCK Enable in Master-mode Communication"]
1278 #[inline(always)]
1279 pub fn aucke(
1280 self,
1281 ) -> crate::common::RegisterField<
1282 31,
1283 0x1,
1284 1,
1285 0,
1286 ssifcr::Aucke,
1287 ssifcr::Aucke,
1288 Ssifcr_SPEC,
1289 crate::common::RW,
1290 > {
1291 crate::common::RegisterField::<
1292 31,
1293 0x1,
1294 1,
1295 0,
1296 ssifcr::Aucke,
1297 ssifcr::Aucke,
1298 Ssifcr_SPEC,
1299 crate::common::RW,
1300 >::from_register(self, 0)
1301 }
1302}
1303impl ::core::default::Default for Ssifcr {
1304 #[inline(always)]
1305 fn default() -> Ssifcr {
1306 <crate::RegValueT<Ssifcr_SPEC> as RegisterValue<_>>::new(0)
1307 }
1308}
1309pub mod ssifcr {
1310
1311 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1312 pub struct Rfrst_SPEC;
1313 pub type Rfrst = crate::EnumBitfieldStruct<u8, Rfrst_SPEC>;
1314 impl Rfrst {
1315 #[doc = "Clears a receive data FIFO reset condition"]
1316 pub const _0: Self = Self::new(0);
1317
1318 #[doc = "Sets a receive data FIFO reset condition"]
1319 pub const _1: Self = Self::new(1);
1320 }
1321 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1322 pub struct Tfrst_SPEC;
1323 pub type Tfrst = crate::EnumBitfieldStruct<u8, Tfrst_SPEC>;
1324 impl Tfrst {
1325 #[doc = "Clears a transmit data FIFO reset condition"]
1326 pub const _0: Self = Self::new(0);
1327
1328 #[doc = "Sets a transmit data FIFO reset condition"]
1329 pub const _1: Self = Self::new(1);
1330 }
1331 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1332 pub struct Rie_SPEC;
1333 pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
1334 impl Rie {
1335 #[doc = "Disables receive data full interrupts"]
1336 pub const _0: Self = Self::new(0);
1337
1338 #[doc = "Enables receive data full interrupts"]
1339 pub const _1: Self = Self::new(1);
1340 }
1341 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1342 pub struct Tie_SPEC;
1343 pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
1344 impl Tie {
1345 #[doc = "Disables transmit data empty interrupts"]
1346 pub const _0: Self = Self::new(0);
1347
1348 #[doc = "Enables transmit data empty interrupts"]
1349 pub const _1: Self = Self::new(1);
1350 }
1351 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1352 pub struct Bsw_SPEC;
1353 pub type Bsw = crate::EnumBitfieldStruct<u8, Bsw_SPEC>;
1354 impl Bsw {
1355 #[doc = "Disables byte swap"]
1356 pub const _0: Self = Self::new(0);
1357
1358 #[doc = "Enables byte swap"]
1359 pub const _1: Self = Self::new(1);
1360 }
1361 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1362 pub struct Ssirst_SPEC;
1363 pub type Ssirst = crate::EnumBitfieldStruct<u8, Ssirst_SPEC>;
1364 impl Ssirst {
1365 #[doc = "Clears a software reset condition"]
1366 pub const _0: Self = Self::new(0);
1367
1368 #[doc = "Sets a software reset condition"]
1369 pub const _1: Self = Self::new(1);
1370 }
1371 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1372 pub struct Aucke_SPEC;
1373 pub type Aucke = crate::EnumBitfieldStruct<u8, Aucke_SPEC>;
1374 impl Aucke {
1375 #[doc = "Disables supply of AUDIO_MCK"]
1376 pub const _0: Self = Self::new(0);
1377
1378 #[doc = "Enables supply of AUDIO_MCK"]
1379 pub const _1: Self = Self::new(1);
1380 }
1381}
1382#[doc(hidden)]
1383#[derive(Copy, Clone, Eq, PartialEq)]
1384pub struct Ssifsr_SPEC;
1385impl crate::sealed::RegSpec for Ssifsr_SPEC {
1386 type DataType = u32;
1387}
1388
1389#[doc = "FIFO Status Register"]
1390pub type Ssifsr = crate::RegValueT<Ssifsr_SPEC>;
1391
1392impl Ssifsr {
1393 #[doc = "Receive Data Full Flag"]
1394 #[inline(always)]
1395 pub fn rdf(
1396 self,
1397 ) -> crate::common::RegisterField<
1398 0,
1399 0x1,
1400 1,
1401 0,
1402 ssifsr::Rdf,
1403 ssifsr::Rdf,
1404 Ssifsr_SPEC,
1405 crate::common::RW,
1406 > {
1407 crate::common::RegisterField::<
1408 0,
1409 0x1,
1410 1,
1411 0,
1412 ssifsr::Rdf,
1413 ssifsr::Rdf,
1414 Ssifsr_SPEC,
1415 crate::common::RW,
1416 >::from_register(self, 0)
1417 }
1418
1419 #[doc = "Receive Data Count"]
1420 #[inline(always)]
1421 pub fn rdc(
1422 self,
1423 ) -> crate::common::RegisterField<8, 0x3f, 1, 0, u8, u8, Ssifsr_SPEC, crate::common::R> {
1424 crate::common::RegisterField::<8,0x3f,1,0,u8,u8,Ssifsr_SPEC,crate::common::R>::from_register(self,0)
1425 }
1426
1427 #[doc = "Transmit Data Empty Flag"]
1428 #[inline(always)]
1429 pub fn tde(
1430 self,
1431 ) -> crate::common::RegisterField<
1432 16,
1433 0x1,
1434 1,
1435 0,
1436 ssifsr::Tde,
1437 ssifsr::Tde,
1438 Ssifsr_SPEC,
1439 crate::common::RW,
1440 > {
1441 crate::common::RegisterField::<
1442 16,
1443 0x1,
1444 1,
1445 0,
1446 ssifsr::Tde,
1447 ssifsr::Tde,
1448 Ssifsr_SPEC,
1449 crate::common::RW,
1450 >::from_register(self, 0)
1451 }
1452
1453 #[doc = "Transmit Data Count"]
1454 #[inline(always)]
1455 pub fn tdc(
1456 self,
1457 ) -> crate::common::RegisterField<24, 0x3f, 1, 0, u8, u8, Ssifsr_SPEC, crate::common::R> {
1458 crate::common::RegisterField::<24,0x3f,1,0,u8,u8,Ssifsr_SPEC,crate::common::R>::from_register(self,0)
1459 }
1460}
1461impl ::core::default::Default for Ssifsr {
1462 #[inline(always)]
1463 fn default() -> Ssifsr {
1464 <crate::RegValueT<Ssifsr_SPEC> as RegisterValue<_>>::new(65536)
1465 }
1466}
1467pub mod ssifsr {
1468
1469 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1470 pub struct Rdf_SPEC;
1471 pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
1472 impl Rdf {
1473 #[doc = "The size of received data in SSIFRDR is not more than the value of SSISCR.RDFS."]
1474 pub const _0: Self = Self::new(0);
1475
1476 #[doc = "The size of received data in SSIFRDR is not less than the value of SSISCR.RDFS plus one."]
1477 pub const _1: Self = Self::new(1);
1478 }
1479 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1480 pub struct Tde_SPEC;
1481 pub type Tde = crate::EnumBitfieldStruct<u8, Tde_SPEC>;
1482 impl Tde {
1483 #[doc = "The free space of SSIFTDR is not more than the value of SSISCR.TDES."]
1484 pub const _0: Self = Self::new(0);
1485
1486 #[doc = "The free space of SSIFTDR is not less than the value of SSISCR.TDES plus one."]
1487 pub const _1: Self = Self::new(1);
1488 }
1489}
1490#[doc(hidden)]
1491#[derive(Copy, Clone, Eq, PartialEq)]
1492pub struct Ssiftdr_SPEC;
1493impl crate::sealed::RegSpec for Ssiftdr_SPEC {
1494 type DataType = u32;
1495}
1496
1497#[doc = "Transmit FIFO Data Register"]
1498pub type Ssiftdr = crate::RegValueT<Ssiftdr_SPEC>;
1499
1500impl Ssiftdr {
1501 #[doc = "Transmit FIFO Data"]
1502 #[inline(always)]
1503 pub fn ssiftdr(
1504 self,
1505 ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, Ssiftdr_SPEC, crate::common::W>
1506 {
1507 crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,Ssiftdr_SPEC,crate::common::W>::from_register(self,0)
1508 }
1509}
1510impl ::core::default::Default for Ssiftdr {
1511 #[inline(always)]
1512 fn default() -> Ssiftdr {
1513 <crate::RegValueT<Ssiftdr_SPEC> as RegisterValue<_>>::new(0)
1514 }
1515}
1516
1517#[doc(hidden)]
1518#[derive(Copy, Clone, Eq, PartialEq)]
1519pub struct Ssifrdr_SPEC;
1520impl crate::sealed::RegSpec for Ssifrdr_SPEC {
1521 type DataType = u32;
1522}
1523
1524#[doc = "Receive FIFO Data Register"]
1525pub type Ssifrdr = crate::RegValueT<Ssifrdr_SPEC>;
1526
1527impl Ssifrdr {
1528 #[doc = "Receive FIFO Data"]
1529 #[inline(always)]
1530 pub fn ssifrdr(
1531 self,
1532 ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, Ssifrdr_SPEC, crate::common::R>
1533 {
1534 crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,Ssifrdr_SPEC,crate::common::R>::from_register(self,0)
1535 }
1536}
1537impl ::core::default::Default for Ssifrdr {
1538 #[inline(always)]
1539 fn default() -> Ssifrdr {
1540 <crate::RegValueT<Ssifrdr_SPEC> as RegisterValue<_>>::new(0)
1541 }
1542}
1543
1544#[doc(hidden)]
1545#[derive(Copy, Clone, Eq, PartialEq)]
1546pub struct Ssiofr_SPEC;
1547impl crate::sealed::RegSpec for Ssiofr_SPEC {
1548 type DataType = u32;
1549}
1550
1551#[doc = "Audio Format Register"]
1552pub type Ssiofr = crate::RegValueT<Ssiofr_SPEC>;
1553
1554impl Ssiofr {
1555 #[doc = "Audio Format Select"]
1556 #[inline(always)]
1557 pub fn omod(
1558 self,
1559 ) -> crate::common::RegisterField<
1560 0,
1561 0x3,
1562 1,
1563 0,
1564 ssiofr::Omod,
1565 ssiofr::Omod,
1566 Ssiofr_SPEC,
1567 crate::common::RW,
1568 > {
1569 crate::common::RegisterField::<
1570 0,
1571 0x3,
1572 1,
1573 0,
1574 ssiofr::Omod,
1575 ssiofr::Omod,
1576 Ssiofr_SPEC,
1577 crate::common::RW,
1578 >::from_register(self, 0)
1579 }
1580
1581 #[doc = "Whether to Enable LRCK/FS Continuation"]
1582 #[inline(always)]
1583 pub fn lrcont(
1584 self,
1585 ) -> crate::common::RegisterField<
1586 8,
1587 0x1,
1588 1,
1589 0,
1590 ssiofr::Lrcont,
1591 ssiofr::Lrcont,
1592 Ssiofr_SPEC,
1593 crate::common::RW,
1594 > {
1595 crate::common::RegisterField::<
1596 8,
1597 0x1,
1598 1,
1599 0,
1600 ssiofr::Lrcont,
1601 ssiofr::Lrcont,
1602 Ssiofr_SPEC,
1603 crate::common::RW,
1604 >::from_register(self, 0)
1605 }
1606
1607 #[doc = "Whether to Enable Stopping BCK Output When SSIE is in Idle Status"]
1608 #[inline(always)]
1609 pub fn bckastp(
1610 self,
1611 ) -> crate::common::RegisterField<
1612 9,
1613 0x1,
1614 1,
1615 0,
1616 ssiofr::Bckastp,
1617 ssiofr::Bckastp,
1618 Ssiofr_SPEC,
1619 crate::common::RW,
1620 > {
1621 crate::common::RegisterField::<
1622 9,
1623 0x1,
1624 1,
1625 0,
1626 ssiofr::Bckastp,
1627 ssiofr::Bckastp,
1628 Ssiofr_SPEC,
1629 crate::common::RW,
1630 >::from_register(self, 0)
1631 }
1632}
1633impl ::core::default::Default for Ssiofr {
1634 #[inline(always)]
1635 fn default() -> Ssiofr {
1636 <crate::RegValueT<Ssiofr_SPEC> as RegisterValue<_>>::new(0)
1637 }
1638}
1639pub mod ssiofr {
1640
1641 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1642 pub struct Omod_SPEC;
1643 pub type Omod = crate::EnumBitfieldStruct<u8, Omod_SPEC>;
1644 impl Omod {
1645 #[doc = "I2S format"]
1646 pub const _00: Self = Self::new(0);
1647
1648 #[doc = "TDM format"]
1649 pub const _01: Self = Self::new(1);
1650
1651 #[doc = "Monaural format"]
1652 pub const _10: Self = Self::new(2);
1653
1654 #[doc = "Setting prohibited"]
1655 pub const _11: Self = Self::new(3);
1656 }
1657 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1658 pub struct Lrcont_SPEC;
1659 pub type Lrcont = crate::EnumBitfieldStruct<u8, Lrcont_SPEC>;
1660 impl Lrcont {
1661 #[doc = "Disables LRCK/FS continuation"]
1662 pub const _0: Self = Self::new(0);
1663
1664 #[doc = "Enables LRCK/FS continuation"]
1665 pub const _1: Self = Self::new(1);
1666 }
1667 #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1668 pub struct Bckastp_SPEC;
1669 pub type Bckastp = crate::EnumBitfieldStruct<u8, Bckastp_SPEC>;
1670 impl Bckastp {
1671 #[doc = "Always outputs BCK to the SSIBCK0 pin"]
1672 pub const _0: Self = Self::new(0);
1673
1674 #[doc = "Automatically controls output of BCK to the SSIBCK0 pin"]
1675 pub const _1: Self = Self::new(1);
1676 }
1677}
1678#[doc(hidden)]
1679#[derive(Copy, Clone, Eq, PartialEq)]
1680pub struct Ssiscr_SPEC;
1681impl crate::sealed::RegSpec for Ssiscr_SPEC {
1682 type DataType = u32;
1683}
1684
1685#[doc = "Status Control Register"]
1686pub type Ssiscr = crate::RegValueT<Ssiscr_SPEC>;
1687
1688impl Ssiscr {
1689 #[doc = "RDF Setting Condition Select"]
1690 #[inline(always)]
1691 pub fn rdfs(
1692 self,
1693 ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, Ssiscr_SPEC, crate::common::RW> {
1694 crate::common::RegisterField::<0,0x1f,1,0,u8,u8,Ssiscr_SPEC,crate::common::RW>::from_register(self,0)
1695 }
1696
1697 #[doc = "TDE Setting Condition Select"]
1698 #[inline(always)]
1699 pub fn tdes(
1700 self,
1701 ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, Ssiscr_SPEC, crate::common::RW> {
1702 crate::common::RegisterField::<8,0x1f,1,0,u8,u8,Ssiscr_SPEC,crate::common::RW>::from_register(self,0)
1703 }
1704}
1705impl ::core::default::Default for Ssiscr {
1706 #[inline(always)]
1707 fn default() -> Ssiscr {
1708 <crate::RegValueT<Ssiscr_SPEC> as RegisterValue<_>>::new(0)
1709 }
1710}