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