Skip to main content

ra4m2_pac/
sci1.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.30.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:07:12 +0000
19
20#![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 Communication Interface 0"]
28unsafe impl ::core::marker::Send for super::Sci1 {}
29unsafe impl ::core::marker::Sync for super::Sci1 {}
30impl super::Sci1 {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Serial Mode Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
38    #[inline(always)]
39    pub const fn smr(&self) -> &'static crate::common::Reg<self::Smr_SPEC, crate::common::RW> {
40        unsafe {
41            crate::common::Reg::<self::Smr_SPEC, crate::common::RW>::from_ptr(
42                self._svd2pac_as_ptr().add(0usize),
43            )
44        }
45    }
46
47    #[doc = "Serial Mode Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
48    #[inline(always)]
49    pub const fn smr_smci(
50        &self,
51    ) -> &'static crate::common::Reg<self::SmrSmci_SPEC, crate::common::RW> {
52        unsafe {
53            crate::common::Reg::<self::SmrSmci_SPEC, crate::common::RW>::from_ptr(
54                self._svd2pac_as_ptr().add(0usize),
55            )
56        }
57    }
58
59    #[doc = "Bit Rate Register"]
60    #[inline(always)]
61    pub const fn brr(&self) -> &'static crate::common::Reg<self::Brr_SPEC, crate::common::RW> {
62        unsafe {
63            crate::common::Reg::<self::Brr_SPEC, crate::common::RW>::from_ptr(
64                self._svd2pac_as_ptr().add(1usize),
65            )
66        }
67    }
68
69    #[doc = "Serial Control Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
70    #[inline(always)]
71    pub const fn scr(&self) -> &'static crate::common::Reg<self::Scr_SPEC, crate::common::RW> {
72        unsafe {
73            crate::common::Reg::<self::Scr_SPEC, crate::common::RW>::from_ptr(
74                self._svd2pac_as_ptr().add(2usize),
75            )
76        }
77    }
78
79    #[doc = "Serial Control Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
80    #[inline(always)]
81    pub const fn scr_smci(
82        &self,
83    ) -> &'static crate::common::Reg<self::ScrSmci_SPEC, crate::common::RW> {
84        unsafe {
85            crate::common::Reg::<self::ScrSmci_SPEC, crate::common::RW>::from_ptr(
86                self._svd2pac_as_ptr().add(2usize),
87            )
88        }
89    }
90
91    #[doc = "Transmit Data Register"]
92    #[inline(always)]
93    pub const fn tdr(&self) -> &'static crate::common::Reg<self::Tdr_SPEC, crate::common::RW> {
94        unsafe {
95            crate::common::Reg::<self::Tdr_SPEC, crate::common::RW>::from_ptr(
96                self._svd2pac_as_ptr().add(3usize),
97            )
98        }
99    }
100
101    #[doc = "Serial Status Register for Non-Smart Card Interface and Non-FIFO Mode (SCMR.SMIF = 0, FCR.FM = 0, and MMR.MANEN = 0)"]
102    #[inline(always)]
103    pub const fn ssr(&self) -> &'static crate::common::Reg<self::Ssr_SPEC, crate::common::RW> {
104        unsafe {
105            crate::common::Reg::<self::Ssr_SPEC, crate::common::RW>::from_ptr(
106                self._svd2pac_as_ptr().add(4usize),
107            )
108        }
109    }
110
111    #[doc = "Serial Status Register for Smart Card Interface Mode (SCMR.SMIF = 1, and MMR.MANEN = 0)"]
112    #[inline(always)]
113    pub const fn ssr_smci(
114        &self,
115    ) -> &'static crate::common::Reg<self::SsrSmci_SPEC, crate::common::RW> {
116        unsafe {
117            crate::common::Reg::<self::SsrSmci_SPEC, crate::common::RW>::from_ptr(
118                self._svd2pac_as_ptr().add(4usize),
119            )
120        }
121    }
122
123    #[doc = "Receive Data Register"]
124    #[inline(always)]
125    pub const fn rdr(&self) -> &'static crate::common::Reg<self::Rdr_SPEC, crate::common::R> {
126        unsafe {
127            crate::common::Reg::<self::Rdr_SPEC, crate::common::R>::from_ptr(
128                self._svd2pac_as_ptr().add(5usize),
129            )
130        }
131    }
132
133    #[doc = "Smart Card Mode Register"]
134    #[inline(always)]
135    pub const fn scmr(&self) -> &'static crate::common::Reg<self::Scmr_SPEC, crate::common::RW> {
136        unsafe {
137            crate::common::Reg::<self::Scmr_SPEC, crate::common::RW>::from_ptr(
138                self._svd2pac_as_ptr().add(6usize),
139            )
140        }
141    }
142
143    #[doc = "Serial Extended Mode Register"]
144    #[inline(always)]
145    pub const fn semr(&self) -> &'static crate::common::Reg<self::Semr_SPEC, crate::common::RW> {
146        unsafe {
147            crate::common::Reg::<self::Semr_SPEC, crate::common::RW>::from_ptr(
148                self._svd2pac_as_ptr().add(7usize),
149            )
150        }
151    }
152
153    #[doc = "Noise Filter Setting Register"]
154    #[inline(always)]
155    pub const fn snfr(&self) -> &'static crate::common::Reg<self::Snfr_SPEC, crate::common::RW> {
156        unsafe {
157            crate::common::Reg::<self::Snfr_SPEC, crate::common::RW>::from_ptr(
158                self._svd2pac_as_ptr().add(8usize),
159            )
160        }
161    }
162
163    #[doc = "IIC Mode Register 1"]
164    #[inline(always)]
165    pub const fn simr1(&self) -> &'static crate::common::Reg<self::Simr1_SPEC, crate::common::RW> {
166        unsafe {
167            crate::common::Reg::<self::Simr1_SPEC, crate::common::RW>::from_ptr(
168                self._svd2pac_as_ptr().add(9usize),
169            )
170        }
171    }
172
173    #[doc = "IIC Mode Register 2"]
174    #[inline(always)]
175    pub const fn simr2(&self) -> &'static crate::common::Reg<self::Simr2_SPEC, crate::common::RW> {
176        unsafe {
177            crate::common::Reg::<self::Simr2_SPEC, crate::common::RW>::from_ptr(
178                self._svd2pac_as_ptr().add(10usize),
179            )
180        }
181    }
182
183    #[doc = "IIC Mode Register 3"]
184    #[inline(always)]
185    pub const fn simr3(&self) -> &'static crate::common::Reg<self::Simr3_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::Simr3_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(11usize),
189            )
190        }
191    }
192
193    #[doc = "IIC Status Register"]
194    #[inline(always)]
195    pub const fn sisr(&self) -> &'static crate::common::Reg<self::Sisr_SPEC, crate::common::R> {
196        unsafe {
197            crate::common::Reg::<self::Sisr_SPEC, crate::common::R>::from_ptr(
198                self._svd2pac_as_ptr().add(12usize),
199            )
200        }
201    }
202
203    #[doc = "SPI Mode Register"]
204    #[inline(always)]
205    pub const fn spmr(&self) -> &'static crate::common::Reg<self::Spmr_SPEC, crate::common::RW> {
206        unsafe {
207            crate::common::Reg::<self::Spmr_SPEC, crate::common::RW>::from_ptr(
208                self._svd2pac_as_ptr().add(13usize),
209            )
210        }
211    }
212
213    #[doc = "Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
214    #[inline(always)]
215    pub const fn tdrhl(&self) -> &'static crate::common::Reg<self::Tdrhl_SPEC, crate::common::RW> {
216        unsafe {
217            crate::common::Reg::<self::Tdrhl_SPEC, crate::common::RW>::from_ptr(
218                self._svd2pac_as_ptr().add(14usize),
219            )
220        }
221    }
222
223    #[doc = "Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
224    #[inline(always)]
225    pub const fn rdrhl(&self) -> &'static crate::common::Reg<self::Rdrhl_SPEC, crate::common::R> {
226        unsafe {
227            crate::common::Reg::<self::Rdrhl_SPEC, crate::common::R>::from_ptr(
228                self._svd2pac_as_ptr().add(16usize),
229            )
230        }
231    }
232
233    #[doc = "Modulation Duty Register"]
234    #[inline(always)]
235    pub const fn mddr(&self) -> &'static crate::common::Reg<self::Mddr_SPEC, crate::common::RW> {
236        unsafe {
237            crate::common::Reg::<self::Mddr_SPEC, crate::common::RW>::from_ptr(
238                self._svd2pac_as_ptr().add(18usize),
239            )
240        }
241    }
242
243    #[doc = "Extended Serial Module Enable Register"]
244    #[inline(always)]
245    pub const fn esmer(&self) -> &'static crate::common::Reg<self::Esmer_SPEC, crate::common::RW> {
246        unsafe {
247            crate::common::Reg::<self::Esmer_SPEC, crate::common::RW>::from_ptr(
248                self._svd2pac_as_ptr().add(32usize),
249            )
250        }
251    }
252
253    #[doc = "Control Register 0"]
254    #[inline(always)]
255    pub const fn cr0(&self) -> &'static crate::common::Reg<self::Cr0_SPEC, crate::common::RW> {
256        unsafe {
257            crate::common::Reg::<self::Cr0_SPEC, crate::common::RW>::from_ptr(
258                self._svd2pac_as_ptr().add(33usize),
259            )
260        }
261    }
262
263    #[doc = "Control Register 1"]
264    #[inline(always)]
265    pub const fn cr1(&self) -> &'static crate::common::Reg<self::Cr1_SPEC, crate::common::RW> {
266        unsafe {
267            crate::common::Reg::<self::Cr1_SPEC, crate::common::RW>::from_ptr(
268                self._svd2pac_as_ptr().add(34usize),
269            )
270        }
271    }
272
273    #[doc = "Control Register 2"]
274    #[inline(always)]
275    pub const fn cr2(&self) -> &'static crate::common::Reg<self::Cr2_SPEC, crate::common::RW> {
276        unsafe {
277            crate::common::Reg::<self::Cr2_SPEC, crate::common::RW>::from_ptr(
278                self._svd2pac_as_ptr().add(35usize),
279            )
280        }
281    }
282
283    #[doc = "Control Register 3"]
284    #[inline(always)]
285    pub const fn cr3(&self) -> &'static crate::common::Reg<self::Cr3_SPEC, crate::common::RW> {
286        unsafe {
287            crate::common::Reg::<self::Cr3_SPEC, crate::common::RW>::from_ptr(
288                self._svd2pac_as_ptr().add(36usize),
289            )
290        }
291    }
292
293    #[doc = "Port Control Register"]
294    #[inline(always)]
295    pub const fn pcr(&self) -> &'static crate::common::Reg<self::Pcr_SPEC, crate::common::RW> {
296        unsafe {
297            crate::common::Reg::<self::Pcr_SPEC, crate::common::RW>::from_ptr(
298                self._svd2pac_as_ptr().add(37usize),
299            )
300        }
301    }
302
303    #[doc = "Interrupt Control Register"]
304    #[inline(always)]
305    pub const fn icr(&self) -> &'static crate::common::Reg<self::Icr_SPEC, crate::common::RW> {
306        unsafe {
307            crate::common::Reg::<self::Icr_SPEC, crate::common::RW>::from_ptr(
308                self._svd2pac_as_ptr().add(38usize),
309            )
310        }
311    }
312
313    #[doc = "Status Register"]
314    #[inline(always)]
315    pub const fn str(&self) -> &'static crate::common::Reg<self::Str_SPEC, crate::common::R> {
316        unsafe {
317            crate::common::Reg::<self::Str_SPEC, crate::common::R>::from_ptr(
318                self._svd2pac_as_ptr().add(39usize),
319            )
320        }
321    }
322
323    #[doc = "Status Clear Register"]
324    #[inline(always)]
325    pub const fn stcr(&self) -> &'static crate::common::Reg<self::Stcr_SPEC, crate::common::RW> {
326        unsafe {
327            crate::common::Reg::<self::Stcr_SPEC, crate::common::RW>::from_ptr(
328                self._svd2pac_as_ptr().add(40usize),
329            )
330        }
331    }
332
333    #[doc = "Control Field 0 Data Register"]
334    #[inline(always)]
335    pub const fn cf0dr(&self) -> &'static crate::common::Reg<self::Cf0Dr_SPEC, crate::common::RW> {
336        unsafe {
337            crate::common::Reg::<self::Cf0Dr_SPEC, crate::common::RW>::from_ptr(
338                self._svd2pac_as_ptr().add(41usize),
339            )
340        }
341    }
342
343    #[doc = "Control Field 0 Compare Enable Register"]
344    #[inline(always)]
345    pub const fn cf0cr(&self) -> &'static crate::common::Reg<self::Cf0Cr_SPEC, crate::common::RW> {
346        unsafe {
347            crate::common::Reg::<self::Cf0Cr_SPEC, crate::common::RW>::from_ptr(
348                self._svd2pac_as_ptr().add(42usize),
349            )
350        }
351    }
352
353    #[doc = "Control Field 0 Receive Data Register"]
354    #[inline(always)]
355    pub const fn cf0rr(&self) -> &'static crate::common::Reg<self::Cf0Rr_SPEC, crate::common::RW> {
356        unsafe {
357            crate::common::Reg::<self::Cf0Rr_SPEC, crate::common::RW>::from_ptr(
358                self._svd2pac_as_ptr().add(43usize),
359            )
360        }
361    }
362
363    #[doc = "Primary Control Field 1 Data Register"]
364    #[inline(always)]
365    pub const fn pcf1dr(
366        &self,
367    ) -> &'static crate::common::Reg<self::Pcf1Dr_SPEC, crate::common::RW> {
368        unsafe {
369            crate::common::Reg::<self::Pcf1Dr_SPEC, crate::common::RW>::from_ptr(
370                self._svd2pac_as_ptr().add(44usize),
371            )
372        }
373    }
374
375    #[doc = "Secondary Control Field 1 Data Register"]
376    #[inline(always)]
377    pub const fn scf1dr(
378        &self,
379    ) -> &'static crate::common::Reg<self::Scf1Dr_SPEC, crate::common::RW> {
380        unsafe {
381            crate::common::Reg::<self::Scf1Dr_SPEC, crate::common::RW>::from_ptr(
382                self._svd2pac_as_ptr().add(45usize),
383            )
384        }
385    }
386
387    #[doc = "Control Field 1 Compare Enable Register"]
388    #[inline(always)]
389    pub const fn cf1cr(&self) -> &'static crate::common::Reg<self::Cf1Cr_SPEC, crate::common::RW> {
390        unsafe {
391            crate::common::Reg::<self::Cf1Cr_SPEC, crate::common::RW>::from_ptr(
392                self._svd2pac_as_ptr().add(46usize),
393            )
394        }
395    }
396
397    #[doc = "Control Field 1 Receive Data Register"]
398    #[inline(always)]
399    pub const fn cf1rr(&self) -> &'static crate::common::Reg<self::Cf1Rr_SPEC, crate::common::RW> {
400        unsafe {
401            crate::common::Reg::<self::Cf1Rr_SPEC, crate::common::RW>::from_ptr(
402                self._svd2pac_as_ptr().add(47usize),
403            )
404        }
405    }
406
407    #[doc = "Timer Control Register"]
408    #[inline(always)]
409    pub const fn tcr(&self) -> &'static crate::common::Reg<self::Tcr_SPEC, crate::common::RW> {
410        unsafe {
411            crate::common::Reg::<self::Tcr_SPEC, crate::common::RW>::from_ptr(
412                self._svd2pac_as_ptr().add(48usize),
413            )
414        }
415    }
416
417    #[doc = "Timer Mode Register"]
418    #[inline(always)]
419    pub const fn tmr(&self) -> &'static crate::common::Reg<self::Tmr_SPEC, crate::common::RW> {
420        unsafe {
421            crate::common::Reg::<self::Tmr_SPEC, crate::common::RW>::from_ptr(
422                self._svd2pac_as_ptr().add(49usize),
423            )
424        }
425    }
426
427    #[doc = "Timer Prescaler Register"]
428    #[inline(always)]
429    pub const fn tpre(&self) -> &'static crate::common::Reg<self::Tpre_SPEC, crate::common::RW> {
430        unsafe {
431            crate::common::Reg::<self::Tpre_SPEC, crate::common::RW>::from_ptr(
432                self._svd2pac_as_ptr().add(50usize),
433            )
434        }
435    }
436
437    #[doc = "Timer Count Register"]
438    #[inline(always)]
439    pub const fn tcnt(&self) -> &'static crate::common::Reg<self::Tcnt_SPEC, crate::common::RW> {
440        unsafe {
441            crate::common::Reg::<self::Tcnt_SPEC, crate::common::RW>::from_ptr(
442                self._svd2pac_as_ptr().add(51usize),
443            )
444        }
445    }
446}
447#[doc(hidden)]
448#[derive(Copy, Clone, Eq, PartialEq)]
449pub struct Smr_SPEC;
450impl crate::sealed::RegSpec for Smr_SPEC {
451    type DataType = u8;
452}
453
454#[doc = "Serial Mode Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
455pub type Smr = crate::RegValueT<Smr_SPEC>;
456
457impl Smr {
458    #[doc = "Clock Select"]
459    #[inline(always)]
460    pub fn cks(
461        self,
462    ) -> crate::common::RegisterField<0, 0x3, 1, 0, smr::Cks, smr::Cks, Smr_SPEC, crate::common::RW>
463    {
464        crate::common::RegisterField::<0,0x3,1,0,smr::Cks,smr::Cks,Smr_SPEC,crate::common::RW>::from_register(self,0)
465    }
466
467    #[doc = "Multi-Processor Mode"]
468    #[inline(always)]
469    pub fn mp(
470        self,
471    ) -> crate::common::RegisterField<2, 0x1, 1, 0, smr::Mp, smr::Mp, Smr_SPEC, crate::common::RW>
472    {
473        crate::common::RegisterField::<2,0x1,1,0,smr::Mp,smr::Mp,Smr_SPEC,crate::common::RW>::from_register(self,0)
474    }
475
476    #[doc = "Stop Bit Length"]
477    #[inline(always)]
478    pub fn stop(
479        self,
480    ) -> crate::common::RegisterField<3, 0x1, 1, 0, smr::Stop, smr::Stop, Smr_SPEC, crate::common::RW>
481    {
482        crate::common::RegisterField::<
483            3,
484            0x1,
485            1,
486            0,
487            smr::Stop,
488            smr::Stop,
489            Smr_SPEC,
490            crate::common::RW,
491        >::from_register(self, 0)
492    }
493
494    #[doc = "Parity Mode"]
495    #[inline(always)]
496    pub fn pm(
497        self,
498    ) -> crate::common::RegisterField<4, 0x1, 1, 0, smr::Pm, smr::Pm, Smr_SPEC, crate::common::RW>
499    {
500        crate::common::RegisterField::<4,0x1,1,0,smr::Pm,smr::Pm,Smr_SPEC,crate::common::RW>::from_register(self,0)
501    }
502
503    #[doc = "Parity Enable"]
504    #[inline(always)]
505    pub fn pe(
506        self,
507    ) -> crate::common::RegisterField<5, 0x1, 1, 0, smr::Pe, smr::Pe, Smr_SPEC, crate::common::RW>
508    {
509        crate::common::RegisterField::<5,0x1,1,0,smr::Pe,smr::Pe,Smr_SPEC,crate::common::RW>::from_register(self,0)
510    }
511
512    #[doc = "Character Length"]
513    #[inline(always)]
514    pub fn chr(
515        self,
516    ) -> crate::common::RegisterField<6, 0x1, 1, 0, smr::Chr, smr::Chr, Smr_SPEC, crate::common::RW>
517    {
518        crate::common::RegisterField::<6,0x1,1,0,smr::Chr,smr::Chr,Smr_SPEC,crate::common::RW>::from_register(self,0)
519    }
520
521    #[doc = "Communication Mode"]
522    #[inline(always)]
523    pub fn cm(
524        self,
525    ) -> crate::common::RegisterField<7, 0x1, 1, 0, smr::Cm, smr::Cm, Smr_SPEC, crate::common::RW>
526    {
527        crate::common::RegisterField::<7,0x1,1,0,smr::Cm,smr::Cm,Smr_SPEC,crate::common::RW>::from_register(self,0)
528    }
529}
530impl ::core::default::Default for Smr {
531    #[inline(always)]
532    fn default() -> Smr {
533        <crate::RegValueT<Smr_SPEC> as RegisterValue<_>>::new(0)
534    }
535}
536pub mod smr {
537
538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
539    pub struct Cks_SPEC;
540    pub type Cks = crate::EnumBitfieldStruct<u8, Cks_SPEC>;
541    impl Cks {
542        #[doc = "PCLK clock (n = 0)"]
543        pub const _00: Self = Self::new(0);
544
545        #[doc = "PCLK/4 clock (n = 1)"]
546        pub const _01: Self = Self::new(1);
547
548        #[doc = "PCLK/16 clock (n = 2)"]
549        pub const _10: Self = Self::new(2);
550
551        #[doc = "PCLK/64 clock (n = 3)"]
552        pub const _11: Self = Self::new(3);
553    }
554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
555    pub struct Mp_SPEC;
556    pub type Mp = crate::EnumBitfieldStruct<u8, Mp_SPEC>;
557    impl Mp {
558        #[doc = "Disable multi-processor communications function"]
559        pub const _0: Self = Self::new(0);
560
561        #[doc = "Enable multi-processor communications function"]
562        pub const _1: Self = Self::new(1);
563    }
564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
565    pub struct Stop_SPEC;
566    pub type Stop = crate::EnumBitfieldStruct<u8, Stop_SPEC>;
567    impl Stop {
568        #[doc = "1 stop bit"]
569        pub const _0: Self = Self::new(0);
570
571        #[doc = "2 stop bits"]
572        pub const _1: Self = Self::new(1);
573    }
574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
575    pub struct Pm_SPEC;
576    pub type Pm = crate::EnumBitfieldStruct<u8, Pm_SPEC>;
577    impl Pm {
578        #[doc = "Even parity"]
579        pub const _0: Self = Self::new(0);
580
581        #[doc = "Odd parity"]
582        pub const _1: Self = Self::new(1);
583    }
584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
585    pub struct Pe_SPEC;
586    pub type Pe = crate::EnumBitfieldStruct<u8, Pe_SPEC>;
587    impl Pe {
588        #[doc = "When transmitting: Do not add parity bit When receiving: Do not check parity bit"]
589        pub const _0: Self = Self::new(0);
590
591        #[doc = "When transmitting: Add parity bit When receiving: Check parity bit"]
592        pub const _1: Self = Self::new(1);
593    }
594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
595    pub struct Chr_SPEC;
596    pub type Chr = crate::EnumBitfieldStruct<u8, Chr_SPEC>;
597    impl Chr {
598        #[doc = "SCMR.CHR1 = 0: Transmit/receive in 9-bit data length SCMR.CHR1 = 1: Transmit/receive in 8-bit data length (initial value)"]
599        pub const _0: Self = Self::new(0);
600
601        #[doc = "SCMR.CHR1 = 0: Transmit/receive in 9-bit data length SCMR.CHR1 = 1: Transmit/receive in 7-bit data length"]
602        pub const _1: Self = Self::new(1);
603    }
604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
605    pub struct Cm_SPEC;
606    pub type Cm = crate::EnumBitfieldStruct<u8, Cm_SPEC>;
607    impl Cm {
608        #[doc = "Asynchronous mode or simple IIC mode"]
609        pub const _0: Self = Self::new(0);
610
611        #[doc = "Clock synchronous mode or simple SPI mode"]
612        pub const _1: Self = Self::new(1);
613    }
614}
615#[doc(hidden)]
616#[derive(Copy, Clone, Eq, PartialEq)]
617pub struct SmrSmci_SPEC;
618impl crate::sealed::RegSpec for SmrSmci_SPEC {
619    type DataType = u8;
620}
621
622#[doc = "Serial Mode Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
623pub type SmrSmci = crate::RegValueT<SmrSmci_SPEC>;
624
625impl SmrSmci {
626    #[doc = "Clock Select"]
627    #[inline(always)]
628    pub fn cks(
629        self,
630    ) -> crate::common::RegisterField<
631        0,
632        0x3,
633        1,
634        0,
635        smr_smci::Cks,
636        smr_smci::Cks,
637        SmrSmci_SPEC,
638        crate::common::RW,
639    > {
640        crate::common::RegisterField::<
641            0,
642            0x3,
643            1,
644            0,
645            smr_smci::Cks,
646            smr_smci::Cks,
647            SmrSmci_SPEC,
648            crate::common::RW,
649        >::from_register(self, 0)
650    }
651
652    #[doc = "Base Clock Pulse"]
653    #[inline(always)]
654    pub fn bcp(
655        self,
656    ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, SmrSmci_SPEC, crate::common::RW> {
657        crate::common::RegisterField::<2,0x3,1,0,u8,u8,SmrSmci_SPEC,crate::common::RW>::from_register(self,0)
658    }
659
660    #[doc = "Parity Mode"]
661    #[inline(always)]
662    pub fn pm(
663        self,
664    ) -> crate::common::RegisterField<
665        4,
666        0x1,
667        1,
668        0,
669        smr_smci::Pm,
670        smr_smci::Pm,
671        SmrSmci_SPEC,
672        crate::common::RW,
673    > {
674        crate::common::RegisterField::<
675            4,
676            0x1,
677            1,
678            0,
679            smr_smci::Pm,
680            smr_smci::Pm,
681            SmrSmci_SPEC,
682            crate::common::RW,
683        >::from_register(self, 0)
684    }
685
686    #[doc = "Parity Enable"]
687    #[inline(always)]
688    pub fn pe(self) -> crate::common::RegisterFieldBool<5, 1, 0, SmrSmci_SPEC, crate::common::RW> {
689        crate::common::RegisterFieldBool::<5, 1, 0, SmrSmci_SPEC, crate::common::RW>::from_register(
690            self, 0,
691        )
692    }
693
694    #[doc = "Block Transfer Mode"]
695    #[inline(always)]
696    pub fn blk(
697        self,
698    ) -> crate::common::RegisterField<
699        6,
700        0x1,
701        1,
702        0,
703        smr_smci::Blk,
704        smr_smci::Blk,
705        SmrSmci_SPEC,
706        crate::common::RW,
707    > {
708        crate::common::RegisterField::<
709            6,
710            0x1,
711            1,
712            0,
713            smr_smci::Blk,
714            smr_smci::Blk,
715            SmrSmci_SPEC,
716            crate::common::RW,
717        >::from_register(self, 0)
718    }
719
720    #[doc = "GSM Mode"]
721    #[inline(always)]
722    pub fn gm(
723        self,
724    ) -> crate::common::RegisterField<
725        7,
726        0x1,
727        1,
728        0,
729        smr_smci::Gm,
730        smr_smci::Gm,
731        SmrSmci_SPEC,
732        crate::common::RW,
733    > {
734        crate::common::RegisterField::<
735            7,
736            0x1,
737            1,
738            0,
739            smr_smci::Gm,
740            smr_smci::Gm,
741            SmrSmci_SPEC,
742            crate::common::RW,
743        >::from_register(self, 0)
744    }
745}
746impl ::core::default::Default for SmrSmci {
747    #[inline(always)]
748    fn default() -> SmrSmci {
749        <crate::RegValueT<SmrSmci_SPEC> as RegisterValue<_>>::new(0)
750    }
751}
752pub mod smr_smci {
753
754    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
755    pub struct Cks_SPEC;
756    pub type Cks = crate::EnumBitfieldStruct<u8, Cks_SPEC>;
757    impl Cks {
758        #[doc = "PCLK clock (n = 0)"]
759        pub const _00: Self = Self::new(0);
760
761        #[doc = "PCLK/4 clock (n = 1)"]
762        pub const _01: Self = Self::new(1);
763
764        #[doc = "PCLK/16 clock (n = 2)"]
765        pub const _10: Self = Self::new(2);
766
767        #[doc = "PCLK/64 clock (n = 3)"]
768        pub const _11: Self = Self::new(3);
769    }
770    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
771    pub struct Pm_SPEC;
772    pub type Pm = crate::EnumBitfieldStruct<u8, Pm_SPEC>;
773    impl Pm {
774        #[doc = "Even parity"]
775        pub const _0: Self = Self::new(0);
776
777        #[doc = "Odd parity"]
778        pub const _1: Self = Self::new(1);
779    }
780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
781    pub struct Blk_SPEC;
782    pub type Blk = crate::EnumBitfieldStruct<u8, Blk_SPEC>;
783    impl Blk {
784        #[doc = "Normal mode operation"]
785        pub const _0: Self = Self::new(0);
786
787        #[doc = "Block transfer mode operation"]
788        pub const _1: Self = Self::new(1);
789    }
790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
791    pub struct Gm_SPEC;
792    pub type Gm = crate::EnumBitfieldStruct<u8, Gm_SPEC>;
793    impl Gm {
794        #[doc = "Normal mode operation"]
795        pub const _0: Self = Self::new(0);
796
797        #[doc = "GSM mode operation"]
798        pub const _1: Self = Self::new(1);
799    }
800}
801#[doc(hidden)]
802#[derive(Copy, Clone, Eq, PartialEq)]
803pub struct Brr_SPEC;
804impl crate::sealed::RegSpec for Brr_SPEC {
805    type DataType = u8;
806}
807
808#[doc = "Bit Rate Register"]
809pub type Brr = crate::RegValueT<Brr_SPEC>;
810
811impl NoBitfieldReg<Brr_SPEC> for Brr {}
812impl ::core::default::Default for Brr {
813    #[inline(always)]
814    fn default() -> Brr {
815        <crate::RegValueT<Brr_SPEC> as RegisterValue<_>>::new(255)
816    }
817}
818
819#[doc(hidden)]
820#[derive(Copy, Clone, Eq, PartialEq)]
821pub struct Scr_SPEC;
822impl crate::sealed::RegSpec for Scr_SPEC {
823    type DataType = u8;
824}
825
826#[doc = "Serial Control Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
827pub type Scr = crate::RegValueT<Scr_SPEC>;
828
829impl Scr {
830    #[doc = "Clock Enable"]
831    #[inline(always)]
832    pub fn cke(
833        self,
834    ) -> crate::common::RegisterField<0, 0x3, 1, 0, scr::Cke, scr::Cke, Scr_SPEC, crate::common::RW>
835    {
836        crate::common::RegisterField::<0,0x3,1,0,scr::Cke,scr::Cke,Scr_SPEC,crate::common::RW>::from_register(self,0)
837    }
838
839    #[doc = "Transmit End Interrupt Enable"]
840    #[inline(always)]
841    pub fn teie(
842        self,
843    ) -> crate::common::RegisterField<2, 0x1, 1, 0, scr::Teie, scr::Teie, Scr_SPEC, crate::common::RW>
844    {
845        crate::common::RegisterField::<
846            2,
847            0x1,
848            1,
849            0,
850            scr::Teie,
851            scr::Teie,
852            Scr_SPEC,
853            crate::common::RW,
854        >::from_register(self, 0)
855    }
856
857    #[doc = "Multi-Processor Interrupt Enable"]
858    #[inline(always)]
859    pub fn mpie(
860        self,
861    ) -> crate::common::RegisterField<3, 0x1, 1, 0, scr::Mpie, scr::Mpie, Scr_SPEC, crate::common::RW>
862    {
863        crate::common::RegisterField::<
864            3,
865            0x1,
866            1,
867            0,
868            scr::Mpie,
869            scr::Mpie,
870            Scr_SPEC,
871            crate::common::RW,
872        >::from_register(self, 0)
873    }
874
875    #[doc = "Receive Enable"]
876    #[inline(always)]
877    pub fn re(
878        self,
879    ) -> crate::common::RegisterField<4, 0x1, 1, 0, scr::Re, scr::Re, Scr_SPEC, crate::common::RW>
880    {
881        crate::common::RegisterField::<4,0x1,1,0,scr::Re,scr::Re,Scr_SPEC,crate::common::RW>::from_register(self,0)
882    }
883
884    #[doc = "Transmit Enable"]
885    #[inline(always)]
886    pub fn te(
887        self,
888    ) -> crate::common::RegisterField<5, 0x1, 1, 0, scr::Te, scr::Te, Scr_SPEC, crate::common::RW>
889    {
890        crate::common::RegisterField::<5,0x1,1,0,scr::Te,scr::Te,Scr_SPEC,crate::common::RW>::from_register(self,0)
891    }
892
893    #[doc = "Receive Interrupt Enable"]
894    #[inline(always)]
895    pub fn rie(
896        self,
897    ) -> crate::common::RegisterField<6, 0x1, 1, 0, scr::Rie, scr::Rie, Scr_SPEC, crate::common::RW>
898    {
899        crate::common::RegisterField::<6,0x1,1,0,scr::Rie,scr::Rie,Scr_SPEC,crate::common::RW>::from_register(self,0)
900    }
901
902    #[doc = "Transmit Interrupt Enable"]
903    #[inline(always)]
904    pub fn tie(
905        self,
906    ) -> crate::common::RegisterField<7, 0x1, 1, 0, scr::Tie, scr::Tie, Scr_SPEC, crate::common::RW>
907    {
908        crate::common::RegisterField::<7,0x1,1,0,scr::Tie,scr::Tie,Scr_SPEC,crate::common::RW>::from_register(self,0)
909    }
910}
911impl ::core::default::Default for Scr {
912    #[inline(always)]
913    fn default() -> Scr {
914        <crate::RegValueT<Scr_SPEC> as RegisterValue<_>>::new(0)
915    }
916}
917pub mod scr {
918
919    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
920    pub struct Cke_SPEC;
921    pub type Cke = crate::EnumBitfieldStruct<u8, Cke_SPEC>;
922    impl Cke {
923        #[doc = "In asynchronous mode, the SCKn pin is available for use as an I/O port based on the I/O port settings. In clock synchronous mode, the SCKn pin functions as the clock output pin."]
924        pub const _00: Self = Self::new(0);
925
926        #[doc = "In asynchronous mode, a clock with the same frequency as the bit rate is output from the SCKn pin. In clock synchronous mode, the SCKn pin functions as the clock output pin."]
927        pub const _01: Self = Self::new(1);
928    }
929    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
930    pub struct Teie_SPEC;
931    pub type Teie = crate::EnumBitfieldStruct<u8, Teie_SPEC>;
932    impl Teie {
933        #[doc = "Disable SCIn_TEI interrupt requests"]
934        pub const _0: Self = Self::new(0);
935
936        #[doc = "Enable SCIn_TEI interrupt requests"]
937        pub const _1: Self = Self::new(1);
938    }
939    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
940    pub struct Mpie_SPEC;
941    pub type Mpie = crate::EnumBitfieldStruct<u8, Mpie_SPEC>;
942    impl Mpie {
943        #[doc = "Normal reception"]
944        pub const _0: Self = Self::new(0);
945
946        #[doc = "When data with the multi-processor bit set to 0 is received, the data is not read, and setting the status flags RDRF, ORER, and FER in SSR to 1 and the status flags SYER, PFER, and SBER in MESR are disabled. When data with the multi-processor bit set to 1 is received, the MPIE bit is automatically set to 0, and normal reception is resumed."]
947        pub const _1: Self = Self::new(1);
948    }
949    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
950    pub struct Re_SPEC;
951    pub type Re = crate::EnumBitfieldStruct<u8, Re_SPEC>;
952    impl Re {
953        #[doc = "Disable serial reception"]
954        pub const _0: Self = Self::new(0);
955
956        #[doc = "Enable serial reception"]
957        pub const _1: Self = Self::new(1);
958    }
959    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
960    pub struct Te_SPEC;
961    pub type Te = crate::EnumBitfieldStruct<u8, Te_SPEC>;
962    impl Te {
963        #[doc = "Disable serial transmission"]
964        pub const _0: Self = Self::new(0);
965
966        #[doc = "Enable serial transmission"]
967        pub const _1: Self = Self::new(1);
968    }
969    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
970    pub struct Rie_SPEC;
971    pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
972    impl Rie {
973        #[doc = "Disable SCIn_RXI and SCIn_ERI interrupt requests"]
974        pub const _0: Self = Self::new(0);
975
976        #[doc = "Enable SCIn_RXI and SCIn_ERI interrupt requests"]
977        pub const _1: Self = Self::new(1);
978    }
979    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
980    pub struct Tie_SPEC;
981    pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
982    impl Tie {
983        #[doc = "Disable SCIn_TXI interrupt requests"]
984        pub const _0: Self = Self::new(0);
985
986        #[doc = "Enable SCIn_TXI interrupt requests"]
987        pub const _1: Self = Self::new(1);
988    }
989}
990#[doc(hidden)]
991#[derive(Copy, Clone, Eq, PartialEq)]
992pub struct ScrSmci_SPEC;
993impl crate::sealed::RegSpec for ScrSmci_SPEC {
994    type DataType = u8;
995}
996
997#[doc = "Serial Control Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
998pub type ScrSmci = crate::RegValueT<ScrSmci_SPEC>;
999
1000impl ScrSmci {
1001    #[doc = "Clock Enable"]
1002    #[inline(always)]
1003    pub fn cke(
1004        self,
1005    ) -> crate::common::RegisterField<
1006        0,
1007        0x3,
1008        1,
1009        0,
1010        scr_smci::Cke,
1011        scr_smci::Cke,
1012        ScrSmci_SPEC,
1013        crate::common::RW,
1014    > {
1015        crate::common::RegisterField::<
1016            0,
1017            0x3,
1018            1,
1019            0,
1020            scr_smci::Cke,
1021            scr_smci::Cke,
1022            ScrSmci_SPEC,
1023            crate::common::RW,
1024        >::from_register(self, 0)
1025    }
1026
1027    #[doc = "Transmit End Interrupt Enable"]
1028    #[inline(always)]
1029    pub fn teie(
1030        self,
1031    ) -> crate::common::RegisterFieldBool<2, 1, 0, ScrSmci_SPEC, crate::common::RW> {
1032        crate::common::RegisterFieldBool::<2, 1, 0, ScrSmci_SPEC, crate::common::RW>::from_register(
1033            self, 0,
1034        )
1035    }
1036
1037    #[doc = "Multi-Processor Interrupt Enable"]
1038    #[inline(always)]
1039    pub fn mpie(
1040        self,
1041    ) -> crate::common::RegisterFieldBool<3, 1, 0, ScrSmci_SPEC, crate::common::RW> {
1042        crate::common::RegisterFieldBool::<3, 1, 0, ScrSmci_SPEC, crate::common::RW>::from_register(
1043            self, 0,
1044        )
1045    }
1046
1047    #[doc = "Receive Enable"]
1048    #[inline(always)]
1049    pub fn re(
1050        self,
1051    ) -> crate::common::RegisterField<
1052        4,
1053        0x1,
1054        1,
1055        0,
1056        scr_smci::Re,
1057        scr_smci::Re,
1058        ScrSmci_SPEC,
1059        crate::common::RW,
1060    > {
1061        crate::common::RegisterField::<
1062            4,
1063            0x1,
1064            1,
1065            0,
1066            scr_smci::Re,
1067            scr_smci::Re,
1068            ScrSmci_SPEC,
1069            crate::common::RW,
1070        >::from_register(self, 0)
1071    }
1072
1073    #[doc = "Transmit Enable"]
1074    #[inline(always)]
1075    pub fn te(
1076        self,
1077    ) -> crate::common::RegisterField<
1078        5,
1079        0x1,
1080        1,
1081        0,
1082        scr_smci::Te,
1083        scr_smci::Te,
1084        ScrSmci_SPEC,
1085        crate::common::RW,
1086    > {
1087        crate::common::RegisterField::<
1088            5,
1089            0x1,
1090            1,
1091            0,
1092            scr_smci::Te,
1093            scr_smci::Te,
1094            ScrSmci_SPEC,
1095            crate::common::RW,
1096        >::from_register(self, 0)
1097    }
1098
1099    #[doc = "Receive Interrupt Enable"]
1100    #[inline(always)]
1101    pub fn rie(
1102        self,
1103    ) -> crate::common::RegisterField<
1104        6,
1105        0x1,
1106        1,
1107        0,
1108        scr_smci::Rie,
1109        scr_smci::Rie,
1110        ScrSmci_SPEC,
1111        crate::common::RW,
1112    > {
1113        crate::common::RegisterField::<
1114            6,
1115            0x1,
1116            1,
1117            0,
1118            scr_smci::Rie,
1119            scr_smci::Rie,
1120            ScrSmci_SPEC,
1121            crate::common::RW,
1122        >::from_register(self, 0)
1123    }
1124
1125    #[doc = "Transmit Interrupt Enable"]
1126    #[inline(always)]
1127    pub fn tie(
1128        self,
1129    ) -> crate::common::RegisterField<
1130        7,
1131        0x1,
1132        1,
1133        0,
1134        scr_smci::Tie,
1135        scr_smci::Tie,
1136        ScrSmci_SPEC,
1137        crate::common::RW,
1138    > {
1139        crate::common::RegisterField::<
1140            7,
1141            0x1,
1142            1,
1143            0,
1144            scr_smci::Tie,
1145            scr_smci::Tie,
1146            ScrSmci_SPEC,
1147            crate::common::RW,
1148        >::from_register(self, 0)
1149    }
1150}
1151impl ::core::default::Default for ScrSmci {
1152    #[inline(always)]
1153    fn default() -> ScrSmci {
1154        <crate::RegValueT<ScrSmci_SPEC> as RegisterValue<_>>::new(0)
1155    }
1156}
1157pub mod scr_smci {
1158
1159    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1160    pub struct Cke_SPEC;
1161    pub type Cke = crate::EnumBitfieldStruct<u8, Cke_SPEC>;
1162    impl Cke {
1163        #[doc = "When SMR_SMCI.GM = 0: Disable output The SCKn pin is available for use as an I/O port if set up in the I/O port settings When SMR_SMCI.GM = 1: Fix output low"]
1164        pub const _00: Self = Self::new(0);
1165
1166        #[doc = "When SMR_SMCI.GM = 0: Output clock When SMR_SMCI.GM = 1: Output clock"]
1167        pub const _01: Self = Self::new(1);
1168
1169        #[doc = "When SMR_SMCI.GM = 0: Setting prohibited When SMR_SMCI.GM = 1: Fix output high"]
1170        pub const _10: Self = Self::new(2);
1171
1172        #[doc = "When SMR_SMCI.GM = 0: Setting prohibited When SMR_SMCI.GM = 1: Output clock"]
1173        pub const _11: Self = Self::new(3);
1174    }
1175    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1176    pub struct Re_SPEC;
1177    pub type Re = crate::EnumBitfieldStruct<u8, Re_SPEC>;
1178    impl Re {
1179        #[doc = "Disable serial reception"]
1180        pub const _0: Self = Self::new(0);
1181
1182        #[doc = "Enable serial reception"]
1183        pub const _1: Self = Self::new(1);
1184    }
1185    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1186    pub struct Te_SPEC;
1187    pub type Te = crate::EnumBitfieldStruct<u8, Te_SPEC>;
1188    impl Te {
1189        #[doc = "Disable serial transmission"]
1190        pub const _0: Self = Self::new(0);
1191
1192        #[doc = "Enable serial transmission"]
1193        pub const _1: Self = Self::new(1);
1194    }
1195    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1196    pub struct Rie_SPEC;
1197    pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
1198    impl Rie {
1199        #[doc = "Disable SCIn_RXI and SCIn_ERI interrupt requests"]
1200        pub const _0: Self = Self::new(0);
1201
1202        #[doc = "Enable SCIn_RXI and SCIn_ERI interrupt requests"]
1203        pub const _1: Self = Self::new(1);
1204    }
1205    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1206    pub struct Tie_SPEC;
1207    pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
1208    impl Tie {
1209        #[doc = "Disable SCIn_TXI interrupt requests"]
1210        pub const _0: Self = Self::new(0);
1211
1212        #[doc = "Enable SCIn_TXI interrupt requests"]
1213        pub const _1: Self = Self::new(1);
1214    }
1215}
1216#[doc(hidden)]
1217#[derive(Copy, Clone, Eq, PartialEq)]
1218pub struct Tdr_SPEC;
1219impl crate::sealed::RegSpec for Tdr_SPEC {
1220    type DataType = u8;
1221}
1222
1223#[doc = "Transmit Data Register"]
1224pub type Tdr = crate::RegValueT<Tdr_SPEC>;
1225
1226impl NoBitfieldReg<Tdr_SPEC> for Tdr {}
1227impl ::core::default::Default for Tdr {
1228    #[inline(always)]
1229    fn default() -> Tdr {
1230        <crate::RegValueT<Tdr_SPEC> as RegisterValue<_>>::new(255)
1231    }
1232}
1233
1234#[doc(hidden)]
1235#[derive(Copy, Clone, Eq, PartialEq)]
1236pub struct Ssr_SPEC;
1237impl crate::sealed::RegSpec for Ssr_SPEC {
1238    type DataType = u8;
1239}
1240
1241#[doc = "Serial Status Register for Non-Smart Card Interface and Non-FIFO Mode (SCMR.SMIF = 0, FCR.FM = 0, and MMR.MANEN = 0)"]
1242pub type Ssr = crate::RegValueT<Ssr_SPEC>;
1243
1244impl Ssr {
1245    #[doc = "Multi-Processor Bit Transfer"]
1246    #[inline(always)]
1247    pub fn mpbt(
1248        self,
1249    ) -> crate::common::RegisterField<0, 0x1, 1, 0, ssr::Mpbt, ssr::Mpbt, Ssr_SPEC, crate::common::RW>
1250    {
1251        crate::common::RegisterField::<
1252            0,
1253            0x1,
1254            1,
1255            0,
1256            ssr::Mpbt,
1257            ssr::Mpbt,
1258            Ssr_SPEC,
1259            crate::common::RW,
1260        >::from_register(self, 0)
1261    }
1262
1263    #[doc = "Multi-Processor"]
1264    #[inline(always)]
1265    pub fn mpb(
1266        self,
1267    ) -> crate::common::RegisterField<1, 0x1, 1, 0, ssr::Mpb, ssr::Mpb, Ssr_SPEC, crate::common::R>
1268    {
1269        crate::common::RegisterField::<1,0x1,1,0,ssr::Mpb,ssr::Mpb,Ssr_SPEC,crate::common::R>::from_register(self,0)
1270    }
1271
1272    #[doc = "Transmit End Flag"]
1273    #[inline(always)]
1274    pub fn tend(
1275        self,
1276    ) -> crate::common::RegisterField<2, 0x1, 1, 0, ssr::Tend, ssr::Tend, Ssr_SPEC, crate::common::R>
1277    {
1278        crate::common::RegisterField::<2,0x1,1,0,ssr::Tend,ssr::Tend,Ssr_SPEC,crate::common::R>::from_register(self,0)
1279    }
1280
1281    #[doc = "Parity Error Flag"]
1282    #[inline(always)]
1283    pub fn per(
1284        self,
1285    ) -> crate::common::RegisterField<3, 0x1, 1, 0, ssr::Per, ssr::Per, Ssr_SPEC, crate::common::RW>
1286    {
1287        crate::common::RegisterField::<3,0x1,1,0,ssr::Per,ssr::Per,Ssr_SPEC,crate::common::RW>::from_register(self,0)
1288    }
1289
1290    #[doc = "Framing Error Flag"]
1291    #[inline(always)]
1292    pub fn fer(
1293        self,
1294    ) -> crate::common::RegisterField<4, 0x1, 1, 0, ssr::Fer, ssr::Fer, Ssr_SPEC, crate::common::RW>
1295    {
1296        crate::common::RegisterField::<4,0x1,1,0,ssr::Fer,ssr::Fer,Ssr_SPEC,crate::common::RW>::from_register(self,0)
1297    }
1298
1299    #[doc = "Overrun Error Flag"]
1300    #[inline(always)]
1301    pub fn orer(
1302        self,
1303    ) -> crate::common::RegisterField<5, 0x1, 1, 0, ssr::Orer, ssr::Orer, Ssr_SPEC, crate::common::RW>
1304    {
1305        crate::common::RegisterField::<
1306            5,
1307            0x1,
1308            1,
1309            0,
1310            ssr::Orer,
1311            ssr::Orer,
1312            Ssr_SPEC,
1313            crate::common::RW,
1314        >::from_register(self, 0)
1315    }
1316
1317    #[doc = "Receive Data Full Flag"]
1318    #[inline(always)]
1319    pub fn rdrf(
1320        self,
1321    ) -> crate::common::RegisterField<6, 0x1, 1, 0, ssr::Rdrf, ssr::Rdrf, Ssr_SPEC, crate::common::RW>
1322    {
1323        crate::common::RegisterField::<
1324            6,
1325            0x1,
1326            1,
1327            0,
1328            ssr::Rdrf,
1329            ssr::Rdrf,
1330            Ssr_SPEC,
1331            crate::common::RW,
1332        >::from_register(self, 0)
1333    }
1334
1335    #[doc = "Transmit Data Empty Flag"]
1336    #[inline(always)]
1337    pub fn tdre(
1338        self,
1339    ) -> crate::common::RegisterField<7, 0x1, 1, 0, ssr::Tdre, ssr::Tdre, Ssr_SPEC, crate::common::RW>
1340    {
1341        crate::common::RegisterField::<
1342            7,
1343            0x1,
1344            1,
1345            0,
1346            ssr::Tdre,
1347            ssr::Tdre,
1348            Ssr_SPEC,
1349            crate::common::RW,
1350        >::from_register(self, 0)
1351    }
1352}
1353impl ::core::default::Default for Ssr {
1354    #[inline(always)]
1355    fn default() -> Ssr {
1356        <crate::RegValueT<Ssr_SPEC> as RegisterValue<_>>::new(132)
1357    }
1358}
1359pub mod ssr {
1360
1361    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1362    pub struct Mpbt_SPEC;
1363    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
1364    impl Mpbt {
1365        #[doc = "Data transmission cycle"]
1366        pub const _0: Self = Self::new(0);
1367
1368        #[doc = "ID transmission cycle"]
1369        pub const _1: Self = Self::new(1);
1370    }
1371    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1372    pub struct Mpb_SPEC;
1373    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
1374    impl Mpb {
1375        #[doc = "Data transmission cycle"]
1376        pub const _0: Self = Self::new(0);
1377
1378        #[doc = "ID transmission cycle"]
1379        pub const _1: Self = Self::new(1);
1380    }
1381    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1382    pub struct Tend_SPEC;
1383    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
1384    impl Tend {
1385        #[doc = "A character is being transmitted"]
1386        pub const _0: Self = Self::new(0);
1387
1388        #[doc = "Character transfer is complete"]
1389        pub const _1: Self = Self::new(1);
1390    }
1391    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1392    pub struct Per_SPEC;
1393    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
1394    impl Per {
1395        #[doc = "No parity error occurred"]
1396        pub const _0: Self = Self::new(0);
1397
1398        #[doc = "Parity error occurred"]
1399        pub const _1: Self = Self::new(1);
1400    }
1401    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1402    pub struct Fer_SPEC;
1403    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
1404    impl Fer {
1405        #[doc = "No framing error occurred"]
1406        pub const _0: Self = Self::new(0);
1407
1408        #[doc = "Framing error occurred"]
1409        pub const _1: Self = Self::new(1);
1410    }
1411    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1412    pub struct Orer_SPEC;
1413    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
1414    impl Orer {
1415        #[doc = "No overrun error occurred"]
1416        pub const _0: Self = Self::new(0);
1417
1418        #[doc = "Overrun error occurred"]
1419        pub const _1: Self = Self::new(1);
1420    }
1421    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1422    pub struct Rdrf_SPEC;
1423    pub type Rdrf = crate::EnumBitfieldStruct<u8, Rdrf_SPEC>;
1424    impl Rdrf {
1425        #[doc = "No received data in RDR register"]
1426        pub const _0: Self = Self::new(0);
1427
1428        #[doc = "Received data in RDR register"]
1429        pub const _1: Self = Self::new(1);
1430    }
1431    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1432    pub struct Tdre_SPEC;
1433    pub type Tdre = crate::EnumBitfieldStruct<u8, Tdre_SPEC>;
1434    impl Tdre {
1435        #[doc = "Transmit data in TDR register"]
1436        pub const _0: Self = Self::new(0);
1437
1438        #[doc = "No transmit data in TDR register"]
1439        pub const _1: Self = Self::new(1);
1440    }
1441}
1442#[doc(hidden)]
1443#[derive(Copy, Clone, Eq, PartialEq)]
1444pub struct SsrSmci_SPEC;
1445impl crate::sealed::RegSpec for SsrSmci_SPEC {
1446    type DataType = u8;
1447}
1448
1449#[doc = "Serial Status Register for Smart Card Interface Mode (SCMR.SMIF = 1, and MMR.MANEN = 0)"]
1450pub type SsrSmci = crate::RegValueT<SsrSmci_SPEC>;
1451
1452impl SsrSmci {
1453    #[doc = "Multi-Processor Bit Transfer"]
1454    #[inline(always)]
1455    pub fn mpbt(
1456        self,
1457    ) -> crate::common::RegisterFieldBool<0, 1, 0, SsrSmci_SPEC, crate::common::RW> {
1458        crate::common::RegisterFieldBool::<0, 1, 0, SsrSmci_SPEC, crate::common::RW>::from_register(
1459            self, 0,
1460        )
1461    }
1462
1463    #[doc = "Multi-Processor"]
1464    #[inline(always)]
1465    pub fn mpb(self) -> crate::common::RegisterFieldBool<1, 1, 0, SsrSmci_SPEC, crate::common::R> {
1466        crate::common::RegisterFieldBool::<1, 1, 0, SsrSmci_SPEC, crate::common::R>::from_register(
1467            self, 0,
1468        )
1469    }
1470
1471    #[doc = "Transmit End Flag"]
1472    #[inline(always)]
1473    pub fn tend(
1474        self,
1475    ) -> crate::common::RegisterField<
1476        2,
1477        0x1,
1478        1,
1479        0,
1480        ssr_smci::Tend,
1481        ssr_smci::Tend,
1482        SsrSmci_SPEC,
1483        crate::common::R,
1484    > {
1485        crate::common::RegisterField::<
1486            2,
1487            0x1,
1488            1,
1489            0,
1490            ssr_smci::Tend,
1491            ssr_smci::Tend,
1492            SsrSmci_SPEC,
1493            crate::common::R,
1494        >::from_register(self, 0)
1495    }
1496
1497    #[doc = "Parity Error Flag"]
1498    #[inline(always)]
1499    pub fn per(
1500        self,
1501    ) -> crate::common::RegisterField<
1502        3,
1503        0x1,
1504        1,
1505        0,
1506        ssr_smci::Per,
1507        ssr_smci::Per,
1508        SsrSmci_SPEC,
1509        crate::common::RW,
1510    > {
1511        crate::common::RegisterField::<
1512            3,
1513            0x1,
1514            1,
1515            0,
1516            ssr_smci::Per,
1517            ssr_smci::Per,
1518            SsrSmci_SPEC,
1519            crate::common::RW,
1520        >::from_register(self, 0)
1521    }
1522
1523    #[doc = "Error Signal Status Flag"]
1524    #[inline(always)]
1525    pub fn ers(
1526        self,
1527    ) -> crate::common::RegisterField<
1528        4,
1529        0x1,
1530        1,
1531        0,
1532        ssr_smci::Ers,
1533        ssr_smci::Ers,
1534        SsrSmci_SPEC,
1535        crate::common::RW,
1536    > {
1537        crate::common::RegisterField::<
1538            4,
1539            0x1,
1540            1,
1541            0,
1542            ssr_smci::Ers,
1543            ssr_smci::Ers,
1544            SsrSmci_SPEC,
1545            crate::common::RW,
1546        >::from_register(self, 0)
1547    }
1548
1549    #[doc = "Overrun Error Flag"]
1550    #[inline(always)]
1551    pub fn orer(
1552        self,
1553    ) -> crate::common::RegisterField<
1554        5,
1555        0x1,
1556        1,
1557        0,
1558        ssr_smci::Orer,
1559        ssr_smci::Orer,
1560        SsrSmci_SPEC,
1561        crate::common::RW,
1562    > {
1563        crate::common::RegisterField::<
1564            5,
1565            0x1,
1566            1,
1567            0,
1568            ssr_smci::Orer,
1569            ssr_smci::Orer,
1570            SsrSmci_SPEC,
1571            crate::common::RW,
1572        >::from_register(self, 0)
1573    }
1574
1575    #[doc = "Receive Data Full Flag"]
1576    #[inline(always)]
1577    pub fn rdrf(
1578        self,
1579    ) -> crate::common::RegisterField<
1580        6,
1581        0x1,
1582        1,
1583        0,
1584        ssr_smci::Rdrf,
1585        ssr_smci::Rdrf,
1586        SsrSmci_SPEC,
1587        crate::common::RW,
1588    > {
1589        crate::common::RegisterField::<
1590            6,
1591            0x1,
1592            1,
1593            0,
1594            ssr_smci::Rdrf,
1595            ssr_smci::Rdrf,
1596            SsrSmci_SPEC,
1597            crate::common::RW,
1598        >::from_register(self, 0)
1599    }
1600
1601    #[doc = "Transmit Data Empty Flag"]
1602    #[inline(always)]
1603    pub fn tdre(
1604        self,
1605    ) -> crate::common::RegisterField<
1606        7,
1607        0x1,
1608        1,
1609        0,
1610        ssr_smci::Tdre,
1611        ssr_smci::Tdre,
1612        SsrSmci_SPEC,
1613        crate::common::RW,
1614    > {
1615        crate::common::RegisterField::<
1616            7,
1617            0x1,
1618            1,
1619            0,
1620            ssr_smci::Tdre,
1621            ssr_smci::Tdre,
1622            SsrSmci_SPEC,
1623            crate::common::RW,
1624        >::from_register(self, 0)
1625    }
1626}
1627impl ::core::default::Default for SsrSmci {
1628    #[inline(always)]
1629    fn default() -> SsrSmci {
1630        <crate::RegValueT<SsrSmci_SPEC> as RegisterValue<_>>::new(132)
1631    }
1632}
1633pub mod ssr_smci {
1634
1635    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1636    pub struct Tend_SPEC;
1637    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
1638    impl Tend {
1639        #[doc = "A character is being transmitted"]
1640        pub const _0: Self = Self::new(0);
1641
1642        #[doc = "Character transfer is complete"]
1643        pub const _1: Self = Self::new(1);
1644    }
1645    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1646    pub struct Per_SPEC;
1647    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
1648    impl Per {
1649        #[doc = "No parity error occurred"]
1650        pub const _0: Self = Self::new(0);
1651
1652        #[doc = "Parity error occurred"]
1653        pub const _1: Self = Self::new(1);
1654    }
1655    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1656    pub struct Ers_SPEC;
1657    pub type Ers = crate::EnumBitfieldStruct<u8, Ers_SPEC>;
1658    impl Ers {
1659        #[doc = "No low error signal response"]
1660        pub const _0: Self = Self::new(0);
1661
1662        #[doc = "Low error signal response occurred"]
1663        pub const _1: Self = Self::new(1);
1664    }
1665    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1666    pub struct Orer_SPEC;
1667    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
1668    impl Orer {
1669        #[doc = "No overrun error occurred"]
1670        pub const _0: Self = Self::new(0);
1671
1672        #[doc = "Overrun error occurred"]
1673        pub const _1: Self = Self::new(1);
1674    }
1675    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1676    pub struct Rdrf_SPEC;
1677    pub type Rdrf = crate::EnumBitfieldStruct<u8, Rdrf_SPEC>;
1678    impl Rdrf {
1679        #[doc = "No received data in RDR register"]
1680        pub const _0: Self = Self::new(0);
1681
1682        #[doc = "Received data in RDR register"]
1683        pub const _1: Self = Self::new(1);
1684    }
1685    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1686    pub struct Tdre_SPEC;
1687    pub type Tdre = crate::EnumBitfieldStruct<u8, Tdre_SPEC>;
1688    impl Tdre {
1689        #[doc = "Transmit data in TDR register"]
1690        pub const _0: Self = Self::new(0);
1691
1692        #[doc = "No transmit data in TDR register"]
1693        pub const _1: Self = Self::new(1);
1694    }
1695}
1696#[doc(hidden)]
1697#[derive(Copy, Clone, Eq, PartialEq)]
1698pub struct Rdr_SPEC;
1699impl crate::sealed::RegSpec for Rdr_SPEC {
1700    type DataType = u8;
1701}
1702
1703#[doc = "Receive Data Register"]
1704pub type Rdr = crate::RegValueT<Rdr_SPEC>;
1705
1706impl NoBitfieldReg<Rdr_SPEC> for Rdr {}
1707impl ::core::default::Default for Rdr {
1708    #[inline(always)]
1709    fn default() -> Rdr {
1710        <crate::RegValueT<Rdr_SPEC> as RegisterValue<_>>::new(0)
1711    }
1712}
1713
1714#[doc(hidden)]
1715#[derive(Copy, Clone, Eq, PartialEq)]
1716pub struct Scmr_SPEC;
1717impl crate::sealed::RegSpec for Scmr_SPEC {
1718    type DataType = u8;
1719}
1720
1721#[doc = "Smart Card Mode Register"]
1722pub type Scmr = crate::RegValueT<Scmr_SPEC>;
1723
1724impl Scmr {
1725    #[doc = "Smart Card Interface Mode Select"]
1726    #[inline(always)]
1727    pub fn smif(
1728        self,
1729    ) -> crate::common::RegisterField<
1730        0,
1731        0x1,
1732        1,
1733        0,
1734        scmr::Smif,
1735        scmr::Smif,
1736        Scmr_SPEC,
1737        crate::common::RW,
1738    > {
1739        crate::common::RegisterField::<
1740            0,
1741            0x1,
1742            1,
1743            0,
1744            scmr::Smif,
1745            scmr::Smif,
1746            Scmr_SPEC,
1747            crate::common::RW,
1748        >::from_register(self, 0)
1749    }
1750
1751    #[doc = "Transmitted/Received Data Invert"]
1752    #[inline(always)]
1753    pub fn sinv(
1754        self,
1755    ) -> crate::common::RegisterField<
1756        2,
1757        0x1,
1758        1,
1759        0,
1760        scmr::Sinv,
1761        scmr::Sinv,
1762        Scmr_SPEC,
1763        crate::common::RW,
1764    > {
1765        crate::common::RegisterField::<
1766            2,
1767            0x1,
1768            1,
1769            0,
1770            scmr::Sinv,
1771            scmr::Sinv,
1772            Scmr_SPEC,
1773            crate::common::RW,
1774        >::from_register(self, 0)
1775    }
1776
1777    #[doc = "Transmitted/Received Data Transfer Direction"]
1778    #[inline(always)]
1779    pub fn sdir(
1780        self,
1781    ) -> crate::common::RegisterField<
1782        3,
1783        0x1,
1784        1,
1785        0,
1786        scmr::Sdir,
1787        scmr::Sdir,
1788        Scmr_SPEC,
1789        crate::common::RW,
1790    > {
1791        crate::common::RegisterField::<
1792            3,
1793            0x1,
1794            1,
1795            0,
1796            scmr::Sdir,
1797            scmr::Sdir,
1798            Scmr_SPEC,
1799            crate::common::RW,
1800        >::from_register(self, 0)
1801    }
1802
1803    #[doc = "Character Length 1"]
1804    #[inline(always)]
1805    pub fn chr1(
1806        self,
1807    ) -> crate::common::RegisterField<
1808        4,
1809        0x1,
1810        1,
1811        0,
1812        scmr::Chr1,
1813        scmr::Chr1,
1814        Scmr_SPEC,
1815        crate::common::RW,
1816    > {
1817        crate::common::RegisterField::<
1818            4,
1819            0x1,
1820            1,
1821            0,
1822            scmr::Chr1,
1823            scmr::Chr1,
1824            Scmr_SPEC,
1825            crate::common::RW,
1826        >::from_register(self, 0)
1827    }
1828
1829    #[doc = "Base Clock Pulse 2"]
1830    #[inline(always)]
1831    pub fn bcp2(self) -> crate::common::RegisterFieldBool<7, 1, 0, Scmr_SPEC, crate::common::RW> {
1832        crate::common::RegisterFieldBool::<7, 1, 0, Scmr_SPEC, crate::common::RW>::from_register(
1833            self, 0,
1834        )
1835    }
1836}
1837impl ::core::default::Default for Scmr {
1838    #[inline(always)]
1839    fn default() -> Scmr {
1840        <crate::RegValueT<Scmr_SPEC> as RegisterValue<_>>::new(242)
1841    }
1842}
1843pub mod scmr {
1844
1845    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1846    pub struct Smif_SPEC;
1847    pub type Smif = crate::EnumBitfieldStruct<u8, Smif_SPEC>;
1848    impl Smif {
1849        #[doc = "Non-smart card interface mode (asynchronous mode, clock synchronous mode, simple SPI mode, or simple IIC mode)"]
1850        pub const _0: Self = Self::new(0);
1851
1852        #[doc = "Smart card interface mode"]
1853        pub const _1: Self = Self::new(1);
1854    }
1855    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1856    pub struct Sinv_SPEC;
1857    pub type Sinv = crate::EnumBitfieldStruct<u8, Sinv_SPEC>;
1858    impl Sinv {
1859        #[doc = "TDR contents are transmitted as they are. Received data is stored as received in the RDR register."]
1860        pub const _0: Self = Self::new(0);
1861
1862        #[doc = "TDR register contents are inverted before transmission. Receive data is stored in inverted form in the RDR register."]
1863        pub const _1: Self = Self::new(1);
1864    }
1865    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1866    pub struct Sdir_SPEC;
1867    pub type Sdir = crate::EnumBitfieldStruct<u8, Sdir_SPEC>;
1868    impl Sdir {
1869        #[doc = "Transfer LSB-first"]
1870        pub const _0: Self = Self::new(0);
1871
1872        #[doc = "Transfer MSB-first"]
1873        pub const _1: Self = Self::new(1);
1874    }
1875    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1876    pub struct Chr1_SPEC;
1877    pub type Chr1 = crate::EnumBitfieldStruct<u8, Chr1_SPEC>;
1878    impl Chr1 {
1879        #[doc = "SMR.CHR = 0: Transmit/receive in 9-bit data length SMR.CHR = 1: Transmit/receive in 9-bit data length"]
1880        pub const _0: Self = Self::new(0);
1881
1882        #[doc = "SMR.CHR = 0: Transmit/receive in 8-bit data length (initial value) SMR.CHR = 1: Transmit/receive in 7-bit data length"]
1883        pub const _1: Self = Self::new(1);
1884    }
1885}
1886#[doc(hidden)]
1887#[derive(Copy, Clone, Eq, PartialEq)]
1888pub struct Semr_SPEC;
1889impl crate::sealed::RegSpec for Semr_SPEC {
1890    type DataType = u8;
1891}
1892
1893#[doc = "Serial Extended Mode Register"]
1894pub type Semr = crate::RegValueT<Semr_SPEC>;
1895
1896impl Semr {
1897    #[doc = "Asynchronous Mode Clock Source Select"]
1898    #[inline(always)]
1899    pub fn acs0(
1900        self,
1901    ) -> crate::common::RegisterField<
1902        0,
1903        0x1,
1904        1,
1905        0,
1906        semr::Acs0,
1907        semr::Acs0,
1908        Semr_SPEC,
1909        crate::common::RW,
1910    > {
1911        crate::common::RegisterField::<
1912            0,
1913            0x1,
1914            1,
1915            0,
1916            semr::Acs0,
1917            semr::Acs0,
1918            Semr_SPEC,
1919            crate::common::RW,
1920        >::from_register(self, 0)
1921    }
1922
1923    #[doc = "Preamble function Disable"]
1924    #[inline(always)]
1925    pub fn padis(
1926        self,
1927    ) -> crate::common::RegisterField<
1928        1,
1929        0x1,
1930        1,
1931        0,
1932        semr::Padis,
1933        semr::Padis,
1934        Semr_SPEC,
1935        crate::common::RW,
1936    > {
1937        crate::common::RegisterField::<
1938            1,
1939            0x1,
1940            1,
1941            0,
1942            semr::Padis,
1943            semr::Padis,
1944            Semr_SPEC,
1945            crate::common::RW,
1946        >::from_register(self, 0)
1947    }
1948
1949    #[doc = "Bit Rate Modulation Enable"]
1950    #[inline(always)]
1951    pub fn brme(
1952        self,
1953    ) -> crate::common::RegisterField<
1954        2,
1955        0x1,
1956        1,
1957        0,
1958        semr::Brme,
1959        semr::Brme,
1960        Semr_SPEC,
1961        crate::common::RW,
1962    > {
1963        crate::common::RegisterField::<
1964            2,
1965            0x1,
1966            1,
1967            0,
1968            semr::Brme,
1969            semr::Brme,
1970            Semr_SPEC,
1971            crate::common::RW,
1972        >::from_register(self, 0)
1973    }
1974
1975    #[doc = "Asynchronous Mode Extended Base Clock Select 1"]
1976    #[inline(always)]
1977    pub fn abcse(
1978        self,
1979    ) -> crate::common::RegisterField<
1980        3,
1981        0x1,
1982        1,
1983        0,
1984        semr::Abcse,
1985        semr::Abcse,
1986        Semr_SPEC,
1987        crate::common::RW,
1988    > {
1989        crate::common::RegisterField::<
1990            3,
1991            0x1,
1992            1,
1993            0,
1994            semr::Abcse,
1995            semr::Abcse,
1996            Semr_SPEC,
1997            crate::common::RW,
1998        >::from_register(self, 0)
1999    }
2000
2001    #[doc = "Asynchronous Mode Base Clock Select"]
2002    #[inline(always)]
2003    pub fn abcs(
2004        self,
2005    ) -> crate::common::RegisterField<
2006        4,
2007        0x1,
2008        1,
2009        0,
2010        semr::Abcs,
2011        semr::Abcs,
2012        Semr_SPEC,
2013        crate::common::RW,
2014    > {
2015        crate::common::RegisterField::<
2016            4,
2017            0x1,
2018            1,
2019            0,
2020            semr::Abcs,
2021            semr::Abcs,
2022            Semr_SPEC,
2023            crate::common::RW,
2024        >::from_register(self, 0)
2025    }
2026
2027    #[doc = "Digital Noise Filter Function Enable"]
2028    #[inline(always)]
2029    pub fn nfen(
2030        self,
2031    ) -> crate::common::RegisterField<
2032        5,
2033        0x1,
2034        1,
2035        0,
2036        semr::Nfen,
2037        semr::Nfen,
2038        Semr_SPEC,
2039        crate::common::RW,
2040    > {
2041        crate::common::RegisterField::<
2042            5,
2043            0x1,
2044            1,
2045            0,
2046            semr::Nfen,
2047            semr::Nfen,
2048            Semr_SPEC,
2049            crate::common::RW,
2050        >::from_register(self, 0)
2051    }
2052
2053    #[doc = "Baud Rate Generator Double-Speed Mode Select"]
2054    #[inline(always)]
2055    pub fn bgdm(
2056        self,
2057    ) -> crate::common::RegisterField<
2058        6,
2059        0x1,
2060        1,
2061        0,
2062        semr::Bgdm,
2063        semr::Bgdm,
2064        Semr_SPEC,
2065        crate::common::RW,
2066    > {
2067        crate::common::RegisterField::<
2068            6,
2069            0x1,
2070            1,
2071            0,
2072            semr::Bgdm,
2073            semr::Bgdm,
2074            Semr_SPEC,
2075            crate::common::RW,
2076        >::from_register(self, 0)
2077    }
2078
2079    #[doc = "Asynchronous Start Bit Edge Detection Select"]
2080    #[inline(always)]
2081    pub fn rxdesel(
2082        self,
2083    ) -> crate::common::RegisterField<
2084        7,
2085        0x1,
2086        1,
2087        0,
2088        semr::Rxdesel,
2089        semr::Rxdesel,
2090        Semr_SPEC,
2091        crate::common::RW,
2092    > {
2093        crate::common::RegisterField::<
2094            7,
2095            0x1,
2096            1,
2097            0,
2098            semr::Rxdesel,
2099            semr::Rxdesel,
2100            Semr_SPEC,
2101            crate::common::RW,
2102        >::from_register(self, 0)
2103    }
2104}
2105impl ::core::default::Default for Semr {
2106    #[inline(always)]
2107    fn default() -> Semr {
2108        <crate::RegValueT<Semr_SPEC> as RegisterValue<_>>::new(0)
2109    }
2110}
2111pub mod semr {
2112
2113    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2114    pub struct Acs0_SPEC;
2115    pub type Acs0 = crate::EnumBitfieldStruct<u8, Acs0_SPEC>;
2116    impl Acs0 {
2117        #[doc = "External clock input"]
2118        pub const _0: Self = Self::new(0);
2119
2120        #[doc = "Logical AND of compare matches output from the internal GPT. These bit for the other SCI channels than SCIn (n = 1, 2) are reserved."]
2121        pub const _1: Self = Self::new(1);
2122    }
2123    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2124    pub struct Padis_SPEC;
2125    pub type Padis = crate::EnumBitfieldStruct<u8, Padis_SPEC>;
2126    impl Padis {
2127        #[doc = "Preamble output function is enabled"]
2128        pub const _0: Self = Self::new(0);
2129
2130        #[doc = "Preamble output function is disabled These bits for the other SCI channels than SCIn (n = 0, 3, 4, 9) are reserved."]
2131        pub const _1: Self = Self::new(1);
2132    }
2133    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2134    pub struct Brme_SPEC;
2135    pub type Brme = crate::EnumBitfieldStruct<u8, Brme_SPEC>;
2136    impl Brme {
2137        #[doc = "Disable bit rate modulation function"]
2138        pub const _0: Self = Self::new(0);
2139
2140        #[doc = "Enable bit rate modulation function"]
2141        pub const _1: Self = Self::new(1);
2142    }
2143    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2144    pub struct Abcse_SPEC;
2145    pub type Abcse = crate::EnumBitfieldStruct<u8, Abcse_SPEC>;
2146    impl Abcse {
2147        #[doc = "Clock cycles for 1-bit period determined by combination of the BGDM and ABCS bits in the SEMR register"]
2148        pub const _0: Self = Self::new(0);
2149
2150        #[doc = "Baud rate is 6 base clock cycles for 1-bit period These bits for the other SCI channels than SCIn (n = 0, 3, 4, 9) are reserved."]
2151        pub const _1: Self = Self::new(1);
2152    }
2153    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2154    pub struct Abcs_SPEC;
2155    pub type Abcs = crate::EnumBitfieldStruct<u8, Abcs_SPEC>;
2156    impl Abcs {
2157        #[doc = "Select 16 base clock cycles for 1-bit period"]
2158        pub const _0: Self = Self::new(0);
2159
2160        #[doc = "Select 8 base clock cycles for 1-bit period"]
2161        pub const _1: Self = Self::new(1);
2162    }
2163    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2164    pub struct Nfen_SPEC;
2165    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
2166    impl Nfen {
2167        #[doc = "In asynchronous mode: Disable noise cancellation function for RXDn input signal In simple I2C mode: Disable noise cancellation function for SCLn and SDAn input signals"]
2168        pub const _0: Self = Self::new(0);
2169
2170        #[doc = "In asynchronous mode: Enable noise cancellation function for RXDn input signal In simple I2C mode: Enable noise cancellation function for SCLn and SDAn input signals"]
2171        pub const _1: Self = Self::new(1);
2172    }
2173    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2174    pub struct Bgdm_SPEC;
2175    pub type Bgdm = crate::EnumBitfieldStruct<u8, Bgdm_SPEC>;
2176    impl Bgdm {
2177        #[doc = "Output clock from baud rate generator with normal frequency"]
2178        pub const _0: Self = Self::new(0);
2179
2180        #[doc = "Output clock from baud rate generator with doubled frequency"]
2181        pub const _1: Self = Self::new(1);
2182    }
2183    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2184    pub struct Rxdesel_SPEC;
2185    pub type Rxdesel = crate::EnumBitfieldStruct<u8, Rxdesel_SPEC>;
2186    impl Rxdesel {
2187        #[doc = "Detect low level on RXDn pin as start bit"]
2188        pub const _0: Self = Self::new(0);
2189
2190        #[doc = "Detect falling edge of RXDn pin as start bit"]
2191        pub const _1: Self = Self::new(1);
2192    }
2193}
2194#[doc(hidden)]
2195#[derive(Copy, Clone, Eq, PartialEq)]
2196pub struct Snfr_SPEC;
2197impl crate::sealed::RegSpec for Snfr_SPEC {
2198    type DataType = u8;
2199}
2200
2201#[doc = "Noise Filter Setting Register"]
2202pub type Snfr = crate::RegValueT<Snfr_SPEC>;
2203
2204impl Snfr {
2205    #[doc = "Noise Filter Clock Select"]
2206    #[inline(always)]
2207    pub fn nfcs(
2208        self,
2209    ) -> crate::common::RegisterField<
2210        0,
2211        0x7,
2212        1,
2213        0,
2214        snfr::Nfcs,
2215        snfr::Nfcs,
2216        Snfr_SPEC,
2217        crate::common::RW,
2218    > {
2219        crate::common::RegisterField::<
2220            0,
2221            0x7,
2222            1,
2223            0,
2224            snfr::Nfcs,
2225            snfr::Nfcs,
2226            Snfr_SPEC,
2227            crate::common::RW,
2228        >::from_register(self, 0)
2229    }
2230}
2231impl ::core::default::Default for Snfr {
2232    #[inline(always)]
2233    fn default() -> Snfr {
2234        <crate::RegValueT<Snfr_SPEC> as RegisterValue<_>>::new(0)
2235    }
2236}
2237pub mod snfr {
2238
2239    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2240    pub struct Nfcs_SPEC;
2241    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
2242    impl Nfcs {
2243        #[doc = "In asynchronous mode: Use clock signal divided by 1 with noise filter In simple I2C mode: Setting prohibited"]
2244        pub const _000: Self = Self::new(0);
2245
2246        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 1 with noise filter"]
2247        pub const _001: Self = Self::new(1);
2248
2249        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 2 with noise filter"]
2250        pub const _010: Self = Self::new(2);
2251
2252        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 4 with noise filter"]
2253        pub const _011: Self = Self::new(3);
2254
2255        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 8 with noise filter"]
2256        pub const _100: Self = Self::new(4);
2257    }
2258}
2259#[doc(hidden)]
2260#[derive(Copy, Clone, Eq, PartialEq)]
2261pub struct Simr1_SPEC;
2262impl crate::sealed::RegSpec for Simr1_SPEC {
2263    type DataType = u8;
2264}
2265
2266#[doc = "IIC Mode Register 1"]
2267pub type Simr1 = crate::RegValueT<Simr1_SPEC>;
2268
2269impl Simr1 {
2270    #[doc = "Simple IIC Mode Select"]
2271    #[inline(always)]
2272    pub fn iicm(
2273        self,
2274    ) -> crate::common::RegisterField<
2275        0,
2276        0x1,
2277        1,
2278        0,
2279        simr1::Iicm,
2280        simr1::Iicm,
2281        Simr1_SPEC,
2282        crate::common::RW,
2283    > {
2284        crate::common::RegisterField::<
2285            0,
2286            0x1,
2287            1,
2288            0,
2289            simr1::Iicm,
2290            simr1::Iicm,
2291            Simr1_SPEC,
2292            crate::common::RW,
2293        >::from_register(self, 0)
2294    }
2295
2296    #[doc = "SDAn Delay Output Select"]
2297    #[inline(always)]
2298    pub fn iicdl(
2299        self,
2300    ) -> crate::common::RegisterField<
2301        3,
2302        0x1f,
2303        1,
2304        0,
2305        simr1::Iicdl,
2306        simr1::Iicdl,
2307        Simr1_SPEC,
2308        crate::common::RW,
2309    > {
2310        crate::common::RegisterField::<
2311            3,
2312            0x1f,
2313            1,
2314            0,
2315            simr1::Iicdl,
2316            simr1::Iicdl,
2317            Simr1_SPEC,
2318            crate::common::RW,
2319        >::from_register(self, 0)
2320    }
2321}
2322impl ::core::default::Default for Simr1 {
2323    #[inline(always)]
2324    fn default() -> Simr1 {
2325        <crate::RegValueT<Simr1_SPEC> as RegisterValue<_>>::new(0)
2326    }
2327}
2328pub mod simr1 {
2329
2330    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2331    pub struct Iicm_SPEC;
2332    pub type Iicm = crate::EnumBitfieldStruct<u8, Iicm_SPEC>;
2333    impl Iicm {
2334        #[doc = "SCMR.SMIF = 0: Asynchronous mode (including multi-processor mode), clock synchronous mode, or simple SPI mode SCMR.SMIF = 1: Smart card interface mode"]
2335        pub const _0: Self = Self::new(0);
2336
2337        #[doc = "SCMR.SMIF = 0: Simple IIC mode SCMR.SMIF = 1: Setting prohibited"]
2338        pub const _1: Self = Self::new(1);
2339    }
2340    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2341    pub struct Iicdl_SPEC;
2342    pub type Iicdl = crate::EnumBitfieldStruct<u8, Iicdl_SPEC>;
2343    impl Iicdl {
2344        #[doc = "No output delay"]
2345        pub const _0_X_00: Self = Self::new(0);
2346    }
2347}
2348#[doc(hidden)]
2349#[derive(Copy, Clone, Eq, PartialEq)]
2350pub struct Simr2_SPEC;
2351impl crate::sealed::RegSpec for Simr2_SPEC {
2352    type DataType = u8;
2353}
2354
2355#[doc = "IIC Mode Register 2"]
2356pub type Simr2 = crate::RegValueT<Simr2_SPEC>;
2357
2358impl Simr2 {
2359    #[doc = "IIC Interrupt Mode Select"]
2360    #[inline(always)]
2361    pub fn iicintm(
2362        self,
2363    ) -> crate::common::RegisterField<
2364        0,
2365        0x1,
2366        1,
2367        0,
2368        simr2::Iicintm,
2369        simr2::Iicintm,
2370        Simr2_SPEC,
2371        crate::common::RW,
2372    > {
2373        crate::common::RegisterField::<
2374            0,
2375            0x1,
2376            1,
2377            0,
2378            simr2::Iicintm,
2379            simr2::Iicintm,
2380            Simr2_SPEC,
2381            crate::common::RW,
2382        >::from_register(self, 0)
2383    }
2384
2385    #[doc = "Clock Synchronization"]
2386    #[inline(always)]
2387    pub fn iiccsc(
2388        self,
2389    ) -> crate::common::RegisterField<
2390        1,
2391        0x1,
2392        1,
2393        0,
2394        simr2::Iiccsc,
2395        simr2::Iiccsc,
2396        Simr2_SPEC,
2397        crate::common::RW,
2398    > {
2399        crate::common::RegisterField::<
2400            1,
2401            0x1,
2402            1,
2403            0,
2404            simr2::Iiccsc,
2405            simr2::Iiccsc,
2406            Simr2_SPEC,
2407            crate::common::RW,
2408        >::from_register(self, 0)
2409    }
2410
2411    #[doc = "ACK Transmission Data"]
2412    #[inline(always)]
2413    pub fn iicackt(
2414        self,
2415    ) -> crate::common::RegisterField<
2416        5,
2417        0x1,
2418        1,
2419        0,
2420        simr2::Iicackt,
2421        simr2::Iicackt,
2422        Simr2_SPEC,
2423        crate::common::RW,
2424    > {
2425        crate::common::RegisterField::<
2426            5,
2427            0x1,
2428            1,
2429            0,
2430            simr2::Iicackt,
2431            simr2::Iicackt,
2432            Simr2_SPEC,
2433            crate::common::RW,
2434        >::from_register(self, 0)
2435    }
2436}
2437impl ::core::default::Default for Simr2 {
2438    #[inline(always)]
2439    fn default() -> Simr2 {
2440        <crate::RegValueT<Simr2_SPEC> as RegisterValue<_>>::new(0)
2441    }
2442}
2443pub mod simr2 {
2444
2445    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2446    pub struct Iicintm_SPEC;
2447    pub type Iicintm = crate::EnumBitfieldStruct<u8, Iicintm_SPEC>;
2448    impl Iicintm {
2449        #[doc = "Use ACK/NACK interrupts"]
2450        pub const _0: Self = Self::new(0);
2451
2452        #[doc = "Use reception and transmission interrupts"]
2453        pub const _1: Self = Self::new(1);
2454    }
2455    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2456    pub struct Iiccsc_SPEC;
2457    pub type Iiccsc = crate::EnumBitfieldStruct<u8, Iiccsc_SPEC>;
2458    impl Iiccsc {
2459        #[doc = "Do not synchronize with clock signal"]
2460        pub const _0: Self = Self::new(0);
2461
2462        #[doc = "Synchronize with clock signal"]
2463        pub const _1: Self = Self::new(1);
2464    }
2465    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2466    pub struct Iicackt_SPEC;
2467    pub type Iicackt = crate::EnumBitfieldStruct<u8, Iicackt_SPEC>;
2468    impl Iicackt {
2469        #[doc = "ACK transmission"]
2470        pub const _0: Self = Self::new(0);
2471
2472        #[doc = "NACK transmission and ACK/NACK reception"]
2473        pub const _1: Self = Self::new(1);
2474    }
2475}
2476#[doc(hidden)]
2477#[derive(Copy, Clone, Eq, PartialEq)]
2478pub struct Simr3_SPEC;
2479impl crate::sealed::RegSpec for Simr3_SPEC {
2480    type DataType = u8;
2481}
2482
2483#[doc = "IIC Mode Register 3"]
2484pub type Simr3 = crate::RegValueT<Simr3_SPEC>;
2485
2486impl Simr3 {
2487    #[doc = "Start Condition Generation"]
2488    #[inline(always)]
2489    pub fn iicstareq(
2490        self,
2491    ) -> crate::common::RegisterField<
2492        0,
2493        0x1,
2494        1,
2495        0,
2496        simr3::Iicstareq,
2497        simr3::Iicstareq,
2498        Simr3_SPEC,
2499        crate::common::RW,
2500    > {
2501        crate::common::RegisterField::<
2502            0,
2503            0x1,
2504            1,
2505            0,
2506            simr3::Iicstareq,
2507            simr3::Iicstareq,
2508            Simr3_SPEC,
2509            crate::common::RW,
2510        >::from_register(self, 0)
2511    }
2512
2513    #[doc = "Restart Condition Generation"]
2514    #[inline(always)]
2515    pub fn iicrstareq(
2516        self,
2517    ) -> crate::common::RegisterField<
2518        1,
2519        0x1,
2520        1,
2521        0,
2522        simr3::Iicrstareq,
2523        simr3::Iicrstareq,
2524        Simr3_SPEC,
2525        crate::common::RW,
2526    > {
2527        crate::common::RegisterField::<
2528            1,
2529            0x1,
2530            1,
2531            0,
2532            simr3::Iicrstareq,
2533            simr3::Iicrstareq,
2534            Simr3_SPEC,
2535            crate::common::RW,
2536        >::from_register(self, 0)
2537    }
2538
2539    #[doc = "Stop Condition Generation"]
2540    #[inline(always)]
2541    pub fn iicstpreq(
2542        self,
2543    ) -> crate::common::RegisterField<
2544        2,
2545        0x1,
2546        1,
2547        0,
2548        simr3::Iicstpreq,
2549        simr3::Iicstpreq,
2550        Simr3_SPEC,
2551        crate::common::RW,
2552    > {
2553        crate::common::RegisterField::<
2554            2,
2555            0x1,
2556            1,
2557            0,
2558            simr3::Iicstpreq,
2559            simr3::Iicstpreq,
2560            Simr3_SPEC,
2561            crate::common::RW,
2562        >::from_register(self, 0)
2563    }
2564
2565    #[doc = "Issuing of Start, Restart, or Stop Condition Completed Flag"]
2566    #[inline(always)]
2567    pub fn iicstif(
2568        self,
2569    ) -> crate::common::RegisterField<
2570        3,
2571        0x1,
2572        1,
2573        0,
2574        simr3::Iicstif,
2575        simr3::Iicstif,
2576        Simr3_SPEC,
2577        crate::common::RW,
2578    > {
2579        crate::common::RegisterField::<
2580            3,
2581            0x1,
2582            1,
2583            0,
2584            simr3::Iicstif,
2585            simr3::Iicstif,
2586            Simr3_SPEC,
2587            crate::common::RW,
2588        >::from_register(self, 0)
2589    }
2590
2591    #[doc = "SDAn Output Select"]
2592    #[inline(always)]
2593    pub fn iicsdas(
2594        self,
2595    ) -> crate::common::RegisterField<
2596        4,
2597        0x3,
2598        1,
2599        0,
2600        simr3::Iicsdas,
2601        simr3::Iicsdas,
2602        Simr3_SPEC,
2603        crate::common::RW,
2604    > {
2605        crate::common::RegisterField::<
2606            4,
2607            0x3,
2608            1,
2609            0,
2610            simr3::Iicsdas,
2611            simr3::Iicsdas,
2612            Simr3_SPEC,
2613            crate::common::RW,
2614        >::from_register(self, 0)
2615    }
2616
2617    #[doc = "SCLn Output Select"]
2618    #[inline(always)]
2619    pub fn iicscls(
2620        self,
2621    ) -> crate::common::RegisterField<
2622        6,
2623        0x3,
2624        1,
2625        0,
2626        simr3::Iicscls,
2627        simr3::Iicscls,
2628        Simr3_SPEC,
2629        crate::common::RW,
2630    > {
2631        crate::common::RegisterField::<
2632            6,
2633            0x3,
2634            1,
2635            0,
2636            simr3::Iicscls,
2637            simr3::Iicscls,
2638            Simr3_SPEC,
2639            crate::common::RW,
2640        >::from_register(self, 0)
2641    }
2642}
2643impl ::core::default::Default for Simr3 {
2644    #[inline(always)]
2645    fn default() -> Simr3 {
2646        <crate::RegValueT<Simr3_SPEC> as RegisterValue<_>>::new(0)
2647    }
2648}
2649pub mod simr3 {
2650
2651    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2652    pub struct Iicstareq_SPEC;
2653    pub type Iicstareq = crate::EnumBitfieldStruct<u8, Iicstareq_SPEC>;
2654    impl Iicstareq {
2655        #[doc = "Do not generate start condition"]
2656        pub const _0: Self = Self::new(0);
2657
2658        #[doc = "Generate start condition"]
2659        pub const _1: Self = Self::new(1);
2660    }
2661    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2662    pub struct Iicrstareq_SPEC;
2663    pub type Iicrstareq = crate::EnumBitfieldStruct<u8, Iicrstareq_SPEC>;
2664    impl Iicrstareq {
2665        #[doc = "Do not generate restart condition"]
2666        pub const _0: Self = Self::new(0);
2667
2668        #[doc = "Generate restart condition"]
2669        pub const _1: Self = Self::new(1);
2670    }
2671    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2672    pub struct Iicstpreq_SPEC;
2673    pub type Iicstpreq = crate::EnumBitfieldStruct<u8, Iicstpreq_SPEC>;
2674    impl Iicstpreq {
2675        #[doc = "Do not generate stop condition"]
2676        pub const _0: Self = Self::new(0);
2677
2678        #[doc = "Generate stop condition"]
2679        pub const _1: Self = Self::new(1);
2680    }
2681    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2682    pub struct Iicstif_SPEC;
2683    pub type Iicstif = crate::EnumBitfieldStruct<u8, Iicstif_SPEC>;
2684    impl Iicstif {
2685        #[doc = "No requests are being made for generating conditions, or a condition is being generated"]
2686        pub const _0: Self = Self::new(0);
2687
2688        #[doc = "Generation of start, restart, or stop condition is complete. When 0 is written to IICSTIF, it is set to 0"]
2689        pub const _1: Self = Self::new(1);
2690    }
2691    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2692    pub struct Iicsdas_SPEC;
2693    pub type Iicsdas = crate::EnumBitfieldStruct<u8, Iicsdas_SPEC>;
2694    impl Iicsdas {
2695        #[doc = "Output serial data"]
2696        pub const _00: Self = Self::new(0);
2697
2698        #[doc = "Generate start, restart, or stop condition"]
2699        pub const _01: Self = Self::new(1);
2700
2701        #[doc = "Output low on SDAn pin"]
2702        pub const _10: Self = Self::new(2);
2703
2704        #[doc = "Drive SDAn pin to high-impedance state"]
2705        pub const _11: Self = Self::new(3);
2706    }
2707    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2708    pub struct Iicscls_SPEC;
2709    pub type Iicscls = crate::EnumBitfieldStruct<u8, Iicscls_SPEC>;
2710    impl Iicscls {
2711        #[doc = "Output serial clock"]
2712        pub const _00: Self = Self::new(0);
2713
2714        #[doc = "Generate start, restart, or stop condition"]
2715        pub const _01: Self = Self::new(1);
2716
2717        #[doc = "Output low on SCLn pin"]
2718        pub const _10: Self = Self::new(2);
2719
2720        #[doc = "Drive SCLn pin to high-impedance state"]
2721        pub const _11: Self = Self::new(3);
2722    }
2723}
2724#[doc(hidden)]
2725#[derive(Copy, Clone, Eq, PartialEq)]
2726pub struct Sisr_SPEC;
2727impl crate::sealed::RegSpec for Sisr_SPEC {
2728    type DataType = u8;
2729}
2730
2731#[doc = "IIC Status Register"]
2732pub type Sisr = crate::RegValueT<Sisr_SPEC>;
2733
2734impl Sisr {
2735    #[doc = "ACK Reception Data Flag"]
2736    #[inline(always)]
2737    pub fn iicackr(
2738        self,
2739    ) -> crate::common::RegisterField<
2740        0,
2741        0x1,
2742        1,
2743        0,
2744        sisr::Iicackr,
2745        sisr::Iicackr,
2746        Sisr_SPEC,
2747        crate::common::R,
2748    > {
2749        crate::common::RegisterField::<
2750            0,
2751            0x1,
2752            1,
2753            0,
2754            sisr::Iicackr,
2755            sisr::Iicackr,
2756            Sisr_SPEC,
2757            crate::common::R,
2758        >::from_register(self, 0)
2759    }
2760}
2761impl ::core::default::Default for Sisr {
2762    #[inline(always)]
2763    fn default() -> Sisr {
2764        <crate::RegValueT<Sisr_SPEC> as RegisterValue<_>>::new(0)
2765    }
2766}
2767pub mod sisr {
2768
2769    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2770    pub struct Iicackr_SPEC;
2771    pub type Iicackr = crate::EnumBitfieldStruct<u8, Iicackr_SPEC>;
2772    impl Iicackr {
2773        #[doc = "ACK received"]
2774        pub const _0: Self = Self::new(0);
2775
2776        #[doc = "NACK received"]
2777        pub const _1: Self = Self::new(1);
2778    }
2779}
2780#[doc(hidden)]
2781#[derive(Copy, Clone, Eq, PartialEq)]
2782pub struct Spmr_SPEC;
2783impl crate::sealed::RegSpec for Spmr_SPEC {
2784    type DataType = u8;
2785}
2786
2787#[doc = "SPI Mode Register"]
2788pub type Spmr = crate::RegValueT<Spmr_SPEC>;
2789
2790impl Spmr {
2791    #[doc = "SSn Pin Function Enable"]
2792    #[inline(always)]
2793    pub fn sse(
2794        self,
2795    ) -> crate::common::RegisterField<
2796        0,
2797        0x1,
2798        1,
2799        0,
2800        spmr::Sse,
2801        spmr::Sse,
2802        Spmr_SPEC,
2803        crate::common::RW,
2804    > {
2805        crate::common::RegisterField::<
2806            0,
2807            0x1,
2808            1,
2809            0,
2810            spmr::Sse,
2811            spmr::Sse,
2812            Spmr_SPEC,
2813            crate::common::RW,
2814        >::from_register(self, 0)
2815    }
2816
2817    #[doc = "CTS Enable"]
2818    #[inline(always)]
2819    pub fn ctse(
2820        self,
2821    ) -> crate::common::RegisterField<
2822        1,
2823        0x1,
2824        1,
2825        0,
2826        spmr::Ctse,
2827        spmr::Ctse,
2828        Spmr_SPEC,
2829        crate::common::RW,
2830    > {
2831        crate::common::RegisterField::<
2832            1,
2833            0x1,
2834            1,
2835            0,
2836            spmr::Ctse,
2837            spmr::Ctse,
2838            Spmr_SPEC,
2839            crate::common::RW,
2840        >::from_register(self, 0)
2841    }
2842
2843    #[doc = "Master Slave Select"]
2844    #[inline(always)]
2845    pub fn mss(
2846        self,
2847    ) -> crate::common::RegisterField<
2848        2,
2849        0x1,
2850        1,
2851        0,
2852        spmr::Mss,
2853        spmr::Mss,
2854        Spmr_SPEC,
2855        crate::common::RW,
2856    > {
2857        crate::common::RegisterField::<
2858            2,
2859            0x1,
2860            1,
2861            0,
2862            spmr::Mss,
2863            spmr::Mss,
2864            Spmr_SPEC,
2865            crate::common::RW,
2866        >::from_register(self, 0)
2867    }
2868
2869    #[doc = "CTS external pin Enable"]
2870    #[inline(always)]
2871    pub fn ctspen(
2872        self,
2873    ) -> crate::common::RegisterField<
2874        3,
2875        0x1,
2876        1,
2877        0,
2878        spmr::Ctspen,
2879        spmr::Ctspen,
2880        Spmr_SPEC,
2881        crate::common::RW,
2882    > {
2883        crate::common::RegisterField::<
2884            3,
2885            0x1,
2886            1,
2887            0,
2888            spmr::Ctspen,
2889            spmr::Ctspen,
2890            Spmr_SPEC,
2891            crate::common::RW,
2892        >::from_register(self, 0)
2893    }
2894
2895    #[doc = "Mode Fault Flag"]
2896    #[inline(always)]
2897    pub fn mff(
2898        self,
2899    ) -> crate::common::RegisterField<
2900        4,
2901        0x1,
2902        1,
2903        0,
2904        spmr::Mff,
2905        spmr::Mff,
2906        Spmr_SPEC,
2907        crate::common::RW,
2908    > {
2909        crate::common::RegisterField::<
2910            4,
2911            0x1,
2912            1,
2913            0,
2914            spmr::Mff,
2915            spmr::Mff,
2916            Spmr_SPEC,
2917            crate::common::RW,
2918        >::from_register(self, 0)
2919    }
2920
2921    #[doc = "Clock Polarity Select"]
2922    #[inline(always)]
2923    pub fn ckpol(
2924        self,
2925    ) -> crate::common::RegisterField<
2926        6,
2927        0x1,
2928        1,
2929        0,
2930        spmr::Ckpol,
2931        spmr::Ckpol,
2932        Spmr_SPEC,
2933        crate::common::RW,
2934    > {
2935        crate::common::RegisterField::<
2936            6,
2937            0x1,
2938            1,
2939            0,
2940            spmr::Ckpol,
2941            spmr::Ckpol,
2942            Spmr_SPEC,
2943            crate::common::RW,
2944        >::from_register(self, 0)
2945    }
2946
2947    #[doc = "Clock Phase Select"]
2948    #[inline(always)]
2949    pub fn ckph(
2950        self,
2951    ) -> crate::common::RegisterField<
2952        7,
2953        0x1,
2954        1,
2955        0,
2956        spmr::Ckph,
2957        spmr::Ckph,
2958        Spmr_SPEC,
2959        crate::common::RW,
2960    > {
2961        crate::common::RegisterField::<
2962            7,
2963            0x1,
2964            1,
2965            0,
2966            spmr::Ckph,
2967            spmr::Ckph,
2968            Spmr_SPEC,
2969            crate::common::RW,
2970        >::from_register(self, 0)
2971    }
2972}
2973impl ::core::default::Default for Spmr {
2974    #[inline(always)]
2975    fn default() -> Spmr {
2976        <crate::RegValueT<Spmr_SPEC> as RegisterValue<_>>::new(0)
2977    }
2978}
2979pub mod spmr {
2980
2981    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2982    pub struct Sse_SPEC;
2983    pub type Sse = crate::EnumBitfieldStruct<u8, Sse_SPEC>;
2984    impl Sse {
2985        #[doc = "Disable SSn pin function"]
2986        pub const _0: Self = Self::new(0);
2987
2988        #[doc = "Enable SSn pin function"]
2989        pub const _1: Self = Self::new(1);
2990    }
2991    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2992    pub struct Ctse_SPEC;
2993    pub type Ctse = crate::EnumBitfieldStruct<u8, Ctse_SPEC>;
2994    impl Ctse {
2995        #[doc = "Disable CTS function (enable RTS output function)"]
2996        pub const _0: Self = Self::new(0);
2997
2998        #[doc = "Enable CTS function"]
2999        pub const _1: Self = Self::new(1);
3000    }
3001    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3002    pub struct Mss_SPEC;
3003    pub type Mss = crate::EnumBitfieldStruct<u8, Mss_SPEC>;
3004    impl Mss {
3005        #[doc = "Transmit through TXDn pin and receive through RXDn pin (master mode)"]
3006        pub const _0: Self = Self::new(0);
3007
3008        #[doc = "Receive through TXDn pin and transmit through RXDn pin (slave mode)"]
3009        pub const _1: Self = Self::new(1);
3010    }
3011    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3012    pub struct Ctspen_SPEC;
3013    pub type Ctspen = crate::EnumBitfieldStruct<u8, Ctspen_SPEC>;
3014    impl Ctspen {
3015        #[doc = "Alternate setting to use CTS and RTS functions as either one terminal"]
3016        pub const _0: Self = Self::new(0);
3017
3018        #[doc = "Dedicated setting for separately using CTS and RTS functions with 2 terminals These bits for the other SCI channels than SCIn (n = 0, 3, 4, 9) are reserved."]
3019        pub const _1: Self = Self::new(1);
3020    }
3021    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3022    pub struct Mff_SPEC;
3023    pub type Mff = crate::EnumBitfieldStruct<u8, Mff_SPEC>;
3024    impl Mff {
3025        #[doc = "No mode fault error"]
3026        pub const _0: Self = Self::new(0);
3027
3028        #[doc = "Mode fault error"]
3029        pub const _1: Self = Self::new(1);
3030    }
3031    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3032    pub struct Ckpol_SPEC;
3033    pub type Ckpol = crate::EnumBitfieldStruct<u8, Ckpol_SPEC>;
3034    impl Ckpol {
3035        #[doc = "Do not invert clock polarity"]
3036        pub const _0: Self = Self::new(0);
3037
3038        #[doc = "Invert clock polarity"]
3039        pub const _1: Self = Self::new(1);
3040    }
3041    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3042    pub struct Ckph_SPEC;
3043    pub type Ckph = crate::EnumBitfieldStruct<u8, Ckph_SPEC>;
3044    impl Ckph {
3045        #[doc = "Do not delay clock"]
3046        pub const _0: Self = Self::new(0);
3047
3048        #[doc = "Delay clock"]
3049        pub const _1: Self = Self::new(1);
3050    }
3051}
3052#[doc(hidden)]
3053#[derive(Copy, Clone, Eq, PartialEq)]
3054pub struct Tdrhl_SPEC;
3055impl crate::sealed::RegSpec for Tdrhl_SPEC {
3056    type DataType = u16;
3057}
3058
3059#[doc = "Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
3060pub type Tdrhl = crate::RegValueT<Tdrhl_SPEC>;
3061
3062impl Tdrhl {
3063    #[doc = "Serial Transmit Data"]
3064    #[inline(always)]
3065    pub fn tdat(
3066        self,
3067    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Tdrhl_SPEC, crate::common::RW> {
3068        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Tdrhl_SPEC,crate::common::RW>::from_register(self,0)
3069    }
3070}
3071impl ::core::default::Default for Tdrhl {
3072    #[inline(always)]
3073    fn default() -> Tdrhl {
3074        <crate::RegValueT<Tdrhl_SPEC> as RegisterValue<_>>::new(65535)
3075    }
3076}
3077
3078#[doc(hidden)]
3079#[derive(Copy, Clone, Eq, PartialEq)]
3080pub struct Rdrhl_SPEC;
3081impl crate::sealed::RegSpec for Rdrhl_SPEC {
3082    type DataType = u16;
3083}
3084
3085#[doc = "Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
3086pub type Rdrhl = crate::RegValueT<Rdrhl_SPEC>;
3087
3088impl Rdrhl {
3089    #[doc = "Serial Receive Data"]
3090    #[inline(always)]
3091    pub fn rdat(
3092        self,
3093    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Rdrhl_SPEC, crate::common::R> {
3094        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Rdrhl_SPEC,crate::common::R>::from_register(self,0)
3095    }
3096}
3097impl ::core::default::Default for Rdrhl {
3098    #[inline(always)]
3099    fn default() -> Rdrhl {
3100        <crate::RegValueT<Rdrhl_SPEC> as RegisterValue<_>>::new(0)
3101    }
3102}
3103
3104#[doc(hidden)]
3105#[derive(Copy, Clone, Eq, PartialEq)]
3106pub struct Mddr_SPEC;
3107impl crate::sealed::RegSpec for Mddr_SPEC {
3108    type DataType = u8;
3109}
3110
3111#[doc = "Modulation Duty Register"]
3112pub type Mddr = crate::RegValueT<Mddr_SPEC>;
3113
3114impl NoBitfieldReg<Mddr_SPEC> for Mddr {}
3115impl ::core::default::Default for Mddr {
3116    #[inline(always)]
3117    fn default() -> Mddr {
3118        <crate::RegValueT<Mddr_SPEC> as RegisterValue<_>>::new(255)
3119    }
3120}
3121
3122#[doc(hidden)]
3123#[derive(Copy, Clone, Eq, PartialEq)]
3124pub struct Esmer_SPEC;
3125impl crate::sealed::RegSpec for Esmer_SPEC {
3126    type DataType = u8;
3127}
3128
3129#[doc = "Extended Serial Module Enable Register"]
3130pub type Esmer = crate::RegValueT<Esmer_SPEC>;
3131
3132impl Esmer {
3133    #[doc = "Extended Serial Mode Enable"]
3134    #[inline(always)]
3135    pub fn esme(
3136        self,
3137    ) -> crate::common::RegisterField<
3138        0,
3139        0x1,
3140        1,
3141        0,
3142        esmer::Esme,
3143        esmer::Esme,
3144        Esmer_SPEC,
3145        crate::common::RW,
3146    > {
3147        crate::common::RegisterField::<
3148            0,
3149            0x1,
3150            1,
3151            0,
3152            esmer::Esme,
3153            esmer::Esme,
3154            Esmer_SPEC,
3155            crate::common::RW,
3156        >::from_register(self, 0)
3157    }
3158}
3159impl ::core::default::Default for Esmer {
3160    #[inline(always)]
3161    fn default() -> Esmer {
3162        <crate::RegValueT<Esmer_SPEC> as RegisterValue<_>>::new(0)
3163    }
3164}
3165pub mod esmer {
3166
3167    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3168    pub struct Esme_SPEC;
3169    pub type Esme = crate::EnumBitfieldStruct<u8, Esme_SPEC>;
3170    impl Esme {
3171        #[doc = "The extended serial mode is disabled."]
3172        pub const _0: Self = Self::new(0);
3173
3174        #[doc = "The extended serial mode is enabled."]
3175        pub const _1: Self = Self::new(1);
3176    }
3177}
3178#[doc(hidden)]
3179#[derive(Copy, Clone, Eq, PartialEq)]
3180pub struct Cr0_SPEC;
3181impl crate::sealed::RegSpec for Cr0_SPEC {
3182    type DataType = u8;
3183}
3184
3185#[doc = "Control Register 0"]
3186pub type Cr0 = crate::RegValueT<Cr0_SPEC>;
3187
3188impl Cr0 {
3189    #[doc = "Start Frame Status Flag"]
3190    #[inline(always)]
3191    pub fn sfsf(
3192        self,
3193    ) -> crate::common::RegisterField<1, 0x1, 1, 0, cr0::Sfsf, cr0::Sfsf, Cr0_SPEC, crate::common::R>
3194    {
3195        crate::common::RegisterField::<1,0x1,1,0,cr0::Sfsf,cr0::Sfsf,Cr0_SPEC,crate::common::R>::from_register(self,0)
3196    }
3197
3198    #[doc = "RXDXn Input Status Flag"]
3199    #[inline(always)]
3200    pub fn rxdsf(
3201        self,
3202    ) -> crate::common::RegisterField<
3203        2,
3204        0x1,
3205        1,
3206        0,
3207        cr0::Rxdsf,
3208        cr0::Rxdsf,
3209        Cr0_SPEC,
3210        crate::common::R,
3211    > {
3212        crate::common::RegisterField::<
3213            2,
3214            0x1,
3215            1,
3216            0,
3217            cr0::Rxdsf,
3218            cr0::Rxdsf,
3219            Cr0_SPEC,
3220            crate::common::R,
3221        >::from_register(self, 0)
3222    }
3223
3224    #[doc = "Bit Rate Measurement Enable"]
3225    #[inline(always)]
3226    pub fn brme(
3227        self,
3228    ) -> crate::common::RegisterField<3, 0x1, 1, 0, cr0::Brme, cr0::Brme, Cr0_SPEC, crate::common::RW>
3229    {
3230        crate::common::RegisterField::<
3231            3,
3232            0x1,
3233            1,
3234            0,
3235            cr0::Brme,
3236            cr0::Brme,
3237            Cr0_SPEC,
3238            crate::common::RW,
3239        >::from_register(self, 0)
3240    }
3241}
3242impl ::core::default::Default for Cr0 {
3243    #[inline(always)]
3244    fn default() -> Cr0 {
3245        <crate::RegValueT<Cr0_SPEC> as RegisterValue<_>>::new(0)
3246    }
3247}
3248pub mod cr0 {
3249
3250    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3251    pub struct Sfsf_SPEC;
3252    pub type Sfsf = crate::EnumBitfieldStruct<u8, Sfsf_SPEC>;
3253    impl Sfsf {
3254        #[doc = "Start Frame detection function is disabled."]
3255        pub const _0: Self = Self::new(0);
3256
3257        #[doc = "Start Frame detection function is enabled."]
3258        pub const _1: Self = Self::new(1);
3259    }
3260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3261    pub struct Rxdsf_SPEC;
3262    pub type Rxdsf = crate::EnumBitfieldStruct<u8, Rxdsf_SPEC>;
3263    impl Rxdsf {
3264        #[doc = "RXDXn input is enabled."]
3265        pub const _0: Self = Self::new(0);
3266
3267        #[doc = "RXDXn input is disabled."]
3268        pub const _1: Self = Self::new(1);
3269    }
3270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3271    pub struct Brme_SPEC;
3272    pub type Brme = crate::EnumBitfieldStruct<u8, Brme_SPEC>;
3273    impl Brme {
3274        #[doc = "Measurement of bit rate is disabled."]
3275        pub const _0: Self = Self::new(0);
3276
3277        #[doc = "Measurement of bit rate is enabled."]
3278        pub const _1: Self = Self::new(1);
3279    }
3280}
3281#[doc(hidden)]
3282#[derive(Copy, Clone, Eq, PartialEq)]
3283pub struct Cr1_SPEC;
3284impl crate::sealed::RegSpec for Cr1_SPEC {
3285    type DataType = u8;
3286}
3287
3288#[doc = "Control Register 1"]
3289pub type Cr1 = crate::RegValueT<Cr1_SPEC>;
3290
3291impl Cr1 {
3292    #[doc = "Break Field Enable"]
3293    #[inline(always)]
3294    pub fn bfe(
3295        self,
3296    ) -> crate::common::RegisterField<0, 0x1, 1, 0, cr1::Bfe, cr1::Bfe, Cr1_SPEC, crate::common::RW>
3297    {
3298        crate::common::RegisterField::<0,0x1,1,0,cr1::Bfe,cr1::Bfe,Cr1_SPEC,crate::common::RW>::from_register(self,0)
3299    }
3300
3301    #[doc = "Control Field 0 Reception Enable"]
3302    #[inline(always)]
3303    pub fn cf0re(
3304        self,
3305    ) -> crate::common::RegisterField<
3306        1,
3307        0x1,
3308        1,
3309        0,
3310        cr1::Cf0Re,
3311        cr1::Cf0Re,
3312        Cr1_SPEC,
3313        crate::common::RW,
3314    > {
3315        crate::common::RegisterField::<
3316            1,
3317            0x1,
3318            1,
3319            0,
3320            cr1::Cf0Re,
3321            cr1::Cf0Re,
3322            Cr1_SPEC,
3323            crate::common::RW,
3324        >::from_register(self, 0)
3325    }
3326
3327    #[doc = "Control Field 1 Data Register Select"]
3328    #[inline(always)]
3329    pub fn cf1ds(
3330        self,
3331    ) -> crate::common::RegisterField<
3332        2,
3333        0x3,
3334        1,
3335        0,
3336        cr1::Cf1Ds,
3337        cr1::Cf1Ds,
3338        Cr1_SPEC,
3339        crate::common::RW,
3340    > {
3341        crate::common::RegisterField::<
3342            2,
3343            0x3,
3344            1,
3345            0,
3346            cr1::Cf1Ds,
3347            cr1::Cf1Ds,
3348            Cr1_SPEC,
3349            crate::common::RW,
3350        >::from_register(self, 0)
3351    }
3352
3353    #[doc = "Priority Interrupt Bit Enable"]
3354    #[inline(always)]
3355    pub fn pibe(
3356        self,
3357    ) -> crate::common::RegisterField<4, 0x1, 1, 0, cr1::Pibe, cr1::Pibe, Cr1_SPEC, crate::common::RW>
3358    {
3359        crate::common::RegisterField::<
3360            4,
3361            0x1,
3362            1,
3363            0,
3364            cr1::Pibe,
3365            cr1::Pibe,
3366            Cr1_SPEC,
3367            crate::common::RW,
3368        >::from_register(self, 0)
3369    }
3370
3371    #[doc = "Priority Interrupt Bit Select"]
3372    #[inline(always)]
3373    pub fn pibs(
3374        self,
3375    ) -> crate::common::RegisterField<5, 0x7, 1, 0, cr1::Pibs, cr1::Pibs, Cr1_SPEC, crate::common::RW>
3376    {
3377        crate::common::RegisterField::<
3378            5,
3379            0x7,
3380            1,
3381            0,
3382            cr1::Pibs,
3383            cr1::Pibs,
3384            Cr1_SPEC,
3385            crate::common::RW,
3386        >::from_register(self, 0)
3387    }
3388}
3389impl ::core::default::Default for Cr1 {
3390    #[inline(always)]
3391    fn default() -> Cr1 {
3392        <crate::RegValueT<Cr1_SPEC> as RegisterValue<_>>::new(0)
3393    }
3394}
3395pub mod cr1 {
3396
3397    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3398    pub struct Bfe_SPEC;
3399    pub type Bfe = crate::EnumBitfieldStruct<u8, Bfe_SPEC>;
3400    impl Bfe {
3401        #[doc = "Break Field detection is disabled."]
3402        pub const _0: Self = Self::new(0);
3403
3404        #[doc = "Break Field detection is enabled."]
3405        pub const _1: Self = Self::new(1);
3406    }
3407    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3408    pub struct Cf0Re_SPEC;
3409    pub type Cf0Re = crate::EnumBitfieldStruct<u8, Cf0Re_SPEC>;
3410    impl Cf0Re {
3411        #[doc = "Reception of Control Field 0 is disabled."]
3412        pub const _0: Self = Self::new(0);
3413
3414        #[doc = "Reception of Control Field 0 is enabled."]
3415        pub const _1: Self = Self::new(1);
3416    }
3417    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3418    pub struct Cf1Ds_SPEC;
3419    pub type Cf1Ds = crate::EnumBitfieldStruct<u8, Cf1Ds_SPEC>;
3420    impl Cf1Ds {
3421        #[doc = "Selects comparison with the value in PCF1DR."]
3422        pub const _00: Self = Self::new(0);
3423
3424        #[doc = "Selects comparison with the value in SCF1DR."]
3425        pub const _01: Self = Self::new(1);
3426
3427        #[doc = "Selects comparison with the values in PCF1DR and SCF1DR."]
3428        pub const _10: Self = Self::new(2);
3429
3430        #[doc = "Setting prohibited."]
3431        pub const _11: Self = Self::new(3);
3432    }
3433    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3434    pub struct Pibe_SPEC;
3435    pub type Pibe = crate::EnumBitfieldStruct<u8, Pibe_SPEC>;
3436    impl Pibe {
3437        #[doc = "The priority interrupt bit is disabled."]
3438        pub const _0: Self = Self::new(0);
3439
3440        #[doc = "The priority interrupt bit is enabled."]
3441        pub const _1: Self = Self::new(1);
3442    }
3443    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3444    pub struct Pibs_SPEC;
3445    pub type Pibs = crate::EnumBitfieldStruct<u8, Pibs_SPEC>;
3446    impl Pibs {
3447        #[doc = "0th bit of Control Field 1"]
3448        pub const _000: Self = Self::new(0);
3449
3450        #[doc = "1st bit of Control Field 1"]
3451        pub const _001: Self = Self::new(1);
3452
3453        #[doc = "2nd bit of Control Field 1"]
3454        pub const _010: Self = Self::new(2);
3455
3456        #[doc = "3rd bit of Control Field 1"]
3457        pub const _011: Self = Self::new(3);
3458
3459        #[doc = "4th bit of Control Field 1"]
3460        pub const _100: Self = Self::new(4);
3461
3462        #[doc = "5th bit of Control Field 1"]
3463        pub const _101: Self = Self::new(5);
3464
3465        #[doc = "6th bit of Control Field 1"]
3466        pub const _110: Self = Self::new(6);
3467
3468        #[doc = "7th bit of Control Field 1"]
3469        pub const _111: Self = Self::new(7);
3470    }
3471}
3472#[doc(hidden)]
3473#[derive(Copy, Clone, Eq, PartialEq)]
3474pub struct Cr2_SPEC;
3475impl crate::sealed::RegSpec for Cr2_SPEC {
3476    type DataType = u8;
3477}
3478
3479#[doc = "Control Register 2"]
3480pub type Cr2 = crate::RegValueT<Cr2_SPEC>;
3481
3482impl Cr2 {
3483    #[doc = "RXDXn Signal Digital Filter Clock Select"]
3484    #[inline(always)]
3485    pub fn dfcs(
3486        self,
3487    ) -> crate::common::RegisterField<0, 0x7, 1, 0, cr2::Dfcs, cr2::Dfcs, Cr2_SPEC, crate::common::RW>
3488    {
3489        crate::common::RegisterField::<
3490            0,
3491            0x7,
3492            1,
3493            0,
3494            cr2::Dfcs,
3495            cr2::Dfcs,
3496            Cr2_SPEC,
3497            crate::common::RW,
3498        >::from_register(self, 0)
3499    }
3500
3501    #[doc = "Bus Collision Detection Clock Select"]
3502    #[inline(always)]
3503    pub fn bccs(
3504        self,
3505    ) -> crate::common::RegisterField<4, 0x3, 1, 0, cr2::Bccs, cr2::Bccs, Cr2_SPEC, crate::common::RW>
3506    {
3507        crate::common::RegisterField::<
3508            4,
3509            0x3,
3510            1,
3511            0,
3512            cr2::Bccs,
3513            cr2::Bccs,
3514            Cr2_SPEC,
3515            crate::common::RW,
3516        >::from_register(self, 0)
3517    }
3518
3519    #[doc = "RXDXn Reception Sampling Timing Select"]
3520    #[inline(always)]
3521    pub fn rts(
3522        self,
3523    ) -> crate::common::RegisterField<6, 0x3, 1, 0, cr2::Rts, cr2::Rts, Cr2_SPEC, crate::common::RW>
3524    {
3525        crate::common::RegisterField::<6,0x3,1,0,cr2::Rts,cr2::Rts,Cr2_SPEC,crate::common::RW>::from_register(self,0)
3526    }
3527}
3528impl ::core::default::Default for Cr2 {
3529    #[inline(always)]
3530    fn default() -> Cr2 {
3531        <crate::RegValueT<Cr2_SPEC> as RegisterValue<_>>::new(0)
3532    }
3533}
3534pub mod cr2 {
3535
3536    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3537    pub struct Dfcs_SPEC;
3538    pub type Dfcs = crate::EnumBitfieldStruct<u8, Dfcs_SPEC>;
3539    impl Dfcs {
3540        #[doc = "Filter is disabled."]
3541        pub const _000: Self = Self::new(0);
3542
3543        #[doc = "Filter clock is SCI base clock"]
3544        pub const _001: Self = Self::new(1);
3545
3546        #[doc = "Filter clock is PCLK/8"]
3547        pub const _010: Self = Self::new(2);
3548
3549        #[doc = "Filter clock is PCLK/16"]
3550        pub const _011: Self = Self::new(3);
3551
3552        #[doc = "Filter clock is PCLK/32"]
3553        pub const _100: Self = Self::new(4);
3554
3555        #[doc = "Filter clock is PCLK/64"]
3556        pub const _101: Self = Self::new(5);
3557
3558        #[doc = "Filter clock is PCLK/128"]
3559        pub const _110: Self = Self::new(6);
3560
3561        #[doc = "Setting prohibited"]
3562        pub const _111: Self = Self::new(7);
3563    }
3564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3565    pub struct Bccs_SPEC;
3566    pub type Bccs = crate::EnumBitfieldStruct<u8, Bccs_SPEC>;
3567    impl Bccs {
3568        #[doc = "SCI base clock"]
3569        pub const _00: Self = Self::new(0);
3570
3571        #[doc = "SCI base clock frequency divided by 2"]
3572        pub const _01: Self = Self::new(1);
3573
3574        #[doc = "SCI base clock frequency divided by 4"]
3575        pub const _10: Self = Self::new(2);
3576
3577        #[doc = "Setting prohibited"]
3578        pub const _11: Self = Self::new(3);
3579    }
3580    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3581    pub struct Rts_SPEC;
3582    pub type Rts = crate::EnumBitfieldStruct<u8, Rts_SPEC>;
3583    impl Rts {
3584        #[doc = "Rising edge of the 8th cycle of SCI base clock"]
3585        pub const _00: Self = Self::new(0);
3586
3587        #[doc = "Rising edge of the 10th cycle of SCI base clock"]
3588        pub const _01: Self = Self::new(1);
3589
3590        #[doc = "Rising edge of the 12th cycle of SCI base clock"]
3591        pub const _10: Self = Self::new(2);
3592
3593        #[doc = "Rising edge of the 14th cycle of SCI base clock"]
3594        pub const _11: Self = Self::new(3);
3595    }
3596}
3597#[doc(hidden)]
3598#[derive(Copy, Clone, Eq, PartialEq)]
3599pub struct Cr3_SPEC;
3600impl crate::sealed::RegSpec for Cr3_SPEC {
3601    type DataType = u8;
3602}
3603
3604#[doc = "Control Register 3"]
3605pub type Cr3 = crate::RegValueT<Cr3_SPEC>;
3606
3607impl Cr3 {
3608    #[doc = "Start Frame Detection Start"]
3609    #[inline(always)]
3610    pub fn sdst(
3611        self,
3612    ) -> crate::common::RegisterField<0, 0x1, 1, 0, cr3::Sdst, cr3::Sdst, Cr3_SPEC, crate::common::RW>
3613    {
3614        crate::common::RegisterField::<
3615            0,
3616            0x1,
3617            1,
3618            0,
3619            cr3::Sdst,
3620            cr3::Sdst,
3621            Cr3_SPEC,
3622            crate::common::RW,
3623        >::from_register(self, 0)
3624    }
3625}
3626impl ::core::default::Default for Cr3 {
3627    #[inline(always)]
3628    fn default() -> Cr3 {
3629        <crate::RegValueT<Cr3_SPEC> as RegisterValue<_>>::new(0)
3630    }
3631}
3632pub mod cr3 {
3633
3634    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3635    pub struct Sdst_SPEC;
3636    pub type Sdst = crate::EnumBitfieldStruct<u8, Sdst_SPEC>;
3637    impl Sdst {
3638        #[doc = "Detection of Start Frame is not performed."]
3639        pub const _0: Self = Self::new(0);
3640
3641        #[doc = "Detection of Start Frame is performed."]
3642        pub const _1: Self = Self::new(1);
3643    }
3644}
3645#[doc(hidden)]
3646#[derive(Copy, Clone, Eq, PartialEq)]
3647pub struct Pcr_SPEC;
3648impl crate::sealed::RegSpec for Pcr_SPEC {
3649    type DataType = u8;
3650}
3651
3652#[doc = "Port Control Register"]
3653pub type Pcr = crate::RegValueT<Pcr_SPEC>;
3654
3655impl Pcr {
3656    #[doc = "TXDXn Signal Polarity Select"]
3657    #[inline(always)]
3658    pub fn txdxps(
3659        self,
3660    ) -> crate::common::RegisterField<
3661        0,
3662        0x1,
3663        1,
3664        0,
3665        pcr::Txdxps,
3666        pcr::Txdxps,
3667        Pcr_SPEC,
3668        crate::common::RW,
3669    > {
3670        crate::common::RegisterField::<
3671            0,
3672            0x1,
3673            1,
3674            0,
3675            pcr::Txdxps,
3676            pcr::Txdxps,
3677            Pcr_SPEC,
3678            crate::common::RW,
3679        >::from_register(self, 0)
3680    }
3681
3682    #[doc = "RXDXn Signal Polarity Select"]
3683    #[inline(always)]
3684    pub fn rxdxps(
3685        self,
3686    ) -> crate::common::RegisterField<
3687        1,
3688        0x1,
3689        1,
3690        0,
3691        pcr::Rxdxps,
3692        pcr::Rxdxps,
3693        Pcr_SPEC,
3694        crate::common::RW,
3695    > {
3696        crate::common::RegisterField::<
3697            1,
3698            0x1,
3699            1,
3700            0,
3701            pcr::Rxdxps,
3702            pcr::Rxdxps,
3703            Pcr_SPEC,
3704            crate::common::RW,
3705        >::from_register(self, 0)
3706    }
3707
3708    #[doc = "TXDXn/RXDXn Pin Multiplexing Select"]
3709    #[inline(always)]
3710    pub fn sharps(
3711        self,
3712    ) -> crate::common::RegisterField<
3713        4,
3714        0x1,
3715        1,
3716        0,
3717        pcr::Sharps,
3718        pcr::Sharps,
3719        Pcr_SPEC,
3720        crate::common::RW,
3721    > {
3722        crate::common::RegisterField::<
3723            4,
3724            0x1,
3725            1,
3726            0,
3727            pcr::Sharps,
3728            pcr::Sharps,
3729            Pcr_SPEC,
3730            crate::common::RW,
3731        >::from_register(self, 0)
3732    }
3733}
3734impl ::core::default::Default for Pcr {
3735    #[inline(always)]
3736    fn default() -> Pcr {
3737        <crate::RegValueT<Pcr_SPEC> as RegisterValue<_>>::new(0)
3738    }
3739}
3740pub mod pcr {
3741
3742    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3743    pub struct Txdxps_SPEC;
3744    pub type Txdxps = crate::EnumBitfieldStruct<u8, Txdxps_SPEC>;
3745    impl Txdxps {
3746        #[doc = "The polarity of TXDXn signal is not inverted for output."]
3747        pub const _0: Self = Self::new(0);
3748
3749        #[doc = "The polarity of TXDXn signal is inverted for output."]
3750        pub const _1: Self = Self::new(1);
3751    }
3752    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3753    pub struct Rxdxps_SPEC;
3754    pub type Rxdxps = crate::EnumBitfieldStruct<u8, Rxdxps_SPEC>;
3755    impl Rxdxps {
3756        #[doc = "The polarity of RXDXn signal is not inverted for input."]
3757        pub const _0: Self = Self::new(0);
3758
3759        #[doc = "The polarity of RXDXn signal is inverted for input."]
3760        pub const _1: Self = Self::new(1);
3761    }
3762    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3763    pub struct Sharps_SPEC;
3764    pub type Sharps = crate::EnumBitfieldStruct<u8, Sharps_SPEC>;
3765    impl Sharps {
3766        #[doc = "The TXDXn and RXDXn pins are independent."]
3767        pub const _0: Self = Self::new(0);
3768
3769        #[doc = "The TXDXn and RXDXn signals are multiplexed on the same pin."]
3770        pub const _1: Self = Self::new(1);
3771    }
3772}
3773#[doc(hidden)]
3774#[derive(Copy, Clone, Eq, PartialEq)]
3775pub struct Icr_SPEC;
3776impl crate::sealed::RegSpec for Icr_SPEC {
3777    type DataType = u8;
3778}
3779
3780#[doc = "Interrupt Control Register"]
3781pub type Icr = crate::RegValueT<Icr_SPEC>;
3782
3783impl Icr {
3784    #[doc = "Break Field Low Width Detected Interrupt Enable"]
3785    #[inline(always)]
3786    pub fn bfdie(
3787        self,
3788    ) -> crate::common::RegisterField<
3789        0,
3790        0x1,
3791        1,
3792        0,
3793        icr::Bfdie,
3794        icr::Bfdie,
3795        Icr_SPEC,
3796        crate::common::RW,
3797    > {
3798        crate::common::RegisterField::<
3799            0,
3800            0x1,
3801            1,
3802            0,
3803            icr::Bfdie,
3804            icr::Bfdie,
3805            Icr_SPEC,
3806            crate::common::RW,
3807        >::from_register(self, 0)
3808    }
3809
3810    #[doc = "Control Field 0 Match Detected Interrupt Enable"]
3811    #[inline(always)]
3812    pub fn cf0mie(
3813        self,
3814    ) -> crate::common::RegisterField<
3815        1,
3816        0x1,
3817        1,
3818        0,
3819        icr::Cf0Mie,
3820        icr::Cf0Mie,
3821        Icr_SPEC,
3822        crate::common::RW,
3823    > {
3824        crate::common::RegisterField::<
3825            1,
3826            0x1,
3827            1,
3828            0,
3829            icr::Cf0Mie,
3830            icr::Cf0Mie,
3831            Icr_SPEC,
3832            crate::common::RW,
3833        >::from_register(self, 0)
3834    }
3835
3836    #[doc = "Control Field 1 Match Detected Interrupt Enable"]
3837    #[inline(always)]
3838    pub fn cf1mie(
3839        self,
3840    ) -> crate::common::RegisterField<
3841        2,
3842        0x1,
3843        1,
3844        0,
3845        icr::Cf1Mie,
3846        icr::Cf1Mie,
3847        Icr_SPEC,
3848        crate::common::RW,
3849    > {
3850        crate::common::RegisterField::<
3851            2,
3852            0x1,
3853            1,
3854            0,
3855            icr::Cf1Mie,
3856            icr::Cf1Mie,
3857            Icr_SPEC,
3858            crate::common::RW,
3859        >::from_register(self, 0)
3860    }
3861
3862    #[doc = "Priority Interrupt Bit Detected Interrupt Enable"]
3863    #[inline(always)]
3864    pub fn pibdie(
3865        self,
3866    ) -> crate::common::RegisterField<
3867        3,
3868        0x1,
3869        1,
3870        0,
3871        icr::Pibdie,
3872        icr::Pibdie,
3873        Icr_SPEC,
3874        crate::common::RW,
3875    > {
3876        crate::common::RegisterField::<
3877            3,
3878            0x1,
3879            1,
3880            0,
3881            icr::Pibdie,
3882            icr::Pibdie,
3883            Icr_SPEC,
3884            crate::common::RW,
3885        >::from_register(self, 0)
3886    }
3887
3888    #[doc = "Bus Collision Detected Interrupt Enable"]
3889    #[inline(always)]
3890    pub fn bcdie(
3891        self,
3892    ) -> crate::common::RegisterField<
3893        4,
3894        0x1,
3895        1,
3896        0,
3897        icr::Bcdie,
3898        icr::Bcdie,
3899        Icr_SPEC,
3900        crate::common::RW,
3901    > {
3902        crate::common::RegisterField::<
3903            4,
3904            0x1,
3905            1,
3906            0,
3907            icr::Bcdie,
3908            icr::Bcdie,
3909            Icr_SPEC,
3910            crate::common::RW,
3911        >::from_register(self, 0)
3912    }
3913
3914    #[doc = "Valid Edge Detected Interrupt Enable"]
3915    #[inline(always)]
3916    pub fn aedie(
3917        self,
3918    ) -> crate::common::RegisterField<
3919        5,
3920        0x1,
3921        1,
3922        0,
3923        icr::Aedie,
3924        icr::Aedie,
3925        Icr_SPEC,
3926        crate::common::RW,
3927    > {
3928        crate::common::RegisterField::<
3929            5,
3930            0x1,
3931            1,
3932            0,
3933            icr::Aedie,
3934            icr::Aedie,
3935            Icr_SPEC,
3936            crate::common::RW,
3937        >::from_register(self, 0)
3938    }
3939}
3940impl ::core::default::Default for Icr {
3941    #[inline(always)]
3942    fn default() -> Icr {
3943        <crate::RegValueT<Icr_SPEC> as RegisterValue<_>>::new(0)
3944    }
3945}
3946pub mod icr {
3947
3948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3949    pub struct Bfdie_SPEC;
3950    pub type Bfdie = crate::EnumBitfieldStruct<u8, Bfdie_SPEC>;
3951    impl Bfdie {
3952        #[doc = "Interrupts on detection of the low width for a Break Field are disabled."]
3953        pub const _0: Self = Self::new(0);
3954
3955        #[doc = "Interrupts on detection of the low width for a Break Field are enabled."]
3956        pub const _1: Self = Self::new(1);
3957    }
3958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3959    pub struct Cf0Mie_SPEC;
3960    pub type Cf0Mie = crate::EnumBitfieldStruct<u8, Cf0Mie_SPEC>;
3961    impl Cf0Mie {
3962        #[doc = "Interrupts on detection of a match with Control Field 0 are disabled."]
3963        pub const _0: Self = Self::new(0);
3964
3965        #[doc = "Interrupts on detection of a match with Control Field 0 are enabled."]
3966        pub const _1: Self = Self::new(1);
3967    }
3968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3969    pub struct Cf1Mie_SPEC;
3970    pub type Cf1Mie = crate::EnumBitfieldStruct<u8, Cf1Mie_SPEC>;
3971    impl Cf1Mie {
3972        #[doc = "Interrupts on detection of a match with Control Field 1 are disabled."]
3973        pub const _0: Self = Self::new(0);
3974
3975        #[doc = "Interrupts on detection of a match with Control Field 1 are enabled."]
3976        pub const _1: Self = Self::new(1);
3977    }
3978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3979    pub struct Pibdie_SPEC;
3980    pub type Pibdie = crate::EnumBitfieldStruct<u8, Pibdie_SPEC>;
3981    impl Pibdie {
3982        #[doc = "Interrupts on detection of the priority interrupt bit are disabled."]
3983        pub const _0: Self = Self::new(0);
3984
3985        #[doc = "Interrupts on detection of the priority interrupt bit are enabled."]
3986        pub const _1: Self = Self::new(1);
3987    }
3988    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3989    pub struct Bcdie_SPEC;
3990    pub type Bcdie = crate::EnumBitfieldStruct<u8, Bcdie_SPEC>;
3991    impl Bcdie {
3992        #[doc = "Interrupts on detection of a bus collision are disabled."]
3993        pub const _0: Self = Self::new(0);
3994
3995        #[doc = "Interrupts on detection of a bus collision are enabled."]
3996        pub const _1: Self = Self::new(1);
3997    }
3998    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3999    pub struct Aedie_SPEC;
4000    pub type Aedie = crate::EnumBitfieldStruct<u8, Aedie_SPEC>;
4001    impl Aedie {
4002        #[doc = "Interrupts on detection of a valid edge are disabled."]
4003        pub const _0: Self = Self::new(0);
4004
4005        #[doc = "Interrupts on detection of a valid edge are enabled."]
4006        pub const _1: Self = Self::new(1);
4007    }
4008}
4009#[doc(hidden)]
4010#[derive(Copy, Clone, Eq, PartialEq)]
4011pub struct Str_SPEC;
4012impl crate::sealed::RegSpec for Str_SPEC {
4013    type DataType = u8;
4014}
4015
4016#[doc = "Status Register"]
4017pub type Str = crate::RegValueT<Str_SPEC>;
4018
4019impl Str {
4020    #[doc = "Break Field Low Width Detection Flag"]
4021    #[inline(always)]
4022    pub fn bfdf(self) -> crate::common::RegisterFieldBool<0, 1, 0, Str_SPEC, crate::common::R> {
4023        crate::common::RegisterFieldBool::<0, 1, 0, Str_SPEC, crate::common::R>::from_register(
4024            self, 0,
4025        )
4026    }
4027
4028    #[doc = "Control Field 0 Match Flag"]
4029    #[inline(always)]
4030    pub fn cf0mf(self) -> crate::common::RegisterFieldBool<1, 1, 0, Str_SPEC, crate::common::R> {
4031        crate::common::RegisterFieldBool::<1, 1, 0, Str_SPEC, crate::common::R>::from_register(
4032            self, 0,
4033        )
4034    }
4035
4036    #[doc = "Control Field 1 Match Flag"]
4037    #[inline(always)]
4038    pub fn cf1mf(self) -> crate::common::RegisterFieldBool<2, 1, 0, Str_SPEC, crate::common::R> {
4039        crate::common::RegisterFieldBool::<2, 1, 0, Str_SPEC, crate::common::R>::from_register(
4040            self, 0,
4041        )
4042    }
4043
4044    #[doc = "Priority Interrupt Bit Detection Flag"]
4045    #[inline(always)]
4046    pub fn pibdf(self) -> crate::common::RegisterFieldBool<3, 1, 0, Str_SPEC, crate::common::R> {
4047        crate::common::RegisterFieldBool::<3, 1, 0, Str_SPEC, crate::common::R>::from_register(
4048            self, 0,
4049        )
4050    }
4051
4052    #[doc = "Bus Collision Detected Flag"]
4053    #[inline(always)]
4054    pub fn bcdf(self) -> crate::common::RegisterFieldBool<4, 1, 0, Str_SPEC, crate::common::R> {
4055        crate::common::RegisterFieldBool::<4, 1, 0, Str_SPEC, crate::common::R>::from_register(
4056            self, 0,
4057        )
4058    }
4059
4060    #[doc = "Valid Edge Detection Flag"]
4061    #[inline(always)]
4062    pub fn aedf(self) -> crate::common::RegisterFieldBool<5, 1, 0, Str_SPEC, crate::common::R> {
4063        crate::common::RegisterFieldBool::<5, 1, 0, Str_SPEC, crate::common::R>::from_register(
4064            self, 0,
4065        )
4066    }
4067}
4068impl ::core::default::Default for Str {
4069    #[inline(always)]
4070    fn default() -> Str {
4071        <crate::RegValueT<Str_SPEC> as RegisterValue<_>>::new(0)
4072    }
4073}
4074
4075#[doc(hidden)]
4076#[derive(Copy, Clone, Eq, PartialEq)]
4077pub struct Stcr_SPEC;
4078impl crate::sealed::RegSpec for Stcr_SPEC {
4079    type DataType = u8;
4080}
4081
4082#[doc = "Status Clear Register"]
4083pub type Stcr = crate::RegValueT<Stcr_SPEC>;
4084
4085impl Stcr {
4086    #[doc = "BFDF Clear"]
4087    #[inline(always)]
4088    pub fn bfdcl(self) -> crate::common::RegisterFieldBool<0, 1, 0, Stcr_SPEC, crate::common::RW> {
4089        crate::common::RegisterFieldBool::<0, 1, 0, Stcr_SPEC, crate::common::RW>::from_register(
4090            self, 0,
4091        )
4092    }
4093
4094    #[doc = "CF0MF Clear"]
4095    #[inline(always)]
4096    pub fn cf0mcl(self) -> crate::common::RegisterFieldBool<1, 1, 0, Stcr_SPEC, crate::common::RW> {
4097        crate::common::RegisterFieldBool::<1, 1, 0, Stcr_SPEC, crate::common::RW>::from_register(
4098            self, 0,
4099        )
4100    }
4101
4102    #[doc = "CF1MF Clear"]
4103    #[inline(always)]
4104    pub fn cf1mcl(self) -> crate::common::RegisterFieldBool<2, 1, 0, Stcr_SPEC, crate::common::RW> {
4105        crate::common::RegisterFieldBool::<2, 1, 0, Stcr_SPEC, crate::common::RW>::from_register(
4106            self, 0,
4107        )
4108    }
4109
4110    #[doc = "PIBDF Clear"]
4111    #[inline(always)]
4112    pub fn pibdcl(self) -> crate::common::RegisterFieldBool<3, 1, 0, Stcr_SPEC, crate::common::RW> {
4113        crate::common::RegisterFieldBool::<3, 1, 0, Stcr_SPEC, crate::common::RW>::from_register(
4114            self, 0,
4115        )
4116    }
4117
4118    #[doc = "BCDF Clear"]
4119    #[inline(always)]
4120    pub fn bcdcl(self) -> crate::common::RegisterFieldBool<4, 1, 0, Stcr_SPEC, crate::common::RW> {
4121        crate::common::RegisterFieldBool::<4, 1, 0, Stcr_SPEC, crate::common::RW>::from_register(
4122            self, 0,
4123        )
4124    }
4125
4126    #[doc = "AEDF Clear"]
4127    #[inline(always)]
4128    pub fn aedcl(self) -> crate::common::RegisterFieldBool<5, 1, 0, Stcr_SPEC, crate::common::RW> {
4129        crate::common::RegisterFieldBool::<5, 1, 0, Stcr_SPEC, crate::common::RW>::from_register(
4130            self, 0,
4131        )
4132    }
4133}
4134impl ::core::default::Default for Stcr {
4135    #[inline(always)]
4136    fn default() -> Stcr {
4137        <crate::RegValueT<Stcr_SPEC> as RegisterValue<_>>::new(0)
4138    }
4139}
4140
4141#[doc(hidden)]
4142#[derive(Copy, Clone, Eq, PartialEq)]
4143pub struct Cf0Dr_SPEC;
4144impl crate::sealed::RegSpec for Cf0Dr_SPEC {
4145    type DataType = u8;
4146}
4147
4148#[doc = "Control Field 0 Data Register"]
4149pub type Cf0Dr = crate::RegValueT<Cf0Dr_SPEC>;
4150
4151impl NoBitfieldReg<Cf0Dr_SPEC> for Cf0Dr {}
4152impl ::core::default::Default for Cf0Dr {
4153    #[inline(always)]
4154    fn default() -> Cf0Dr {
4155        <crate::RegValueT<Cf0Dr_SPEC> as RegisterValue<_>>::new(0)
4156    }
4157}
4158
4159#[doc(hidden)]
4160#[derive(Copy, Clone, Eq, PartialEq)]
4161pub struct Cf0Cr_SPEC;
4162impl crate::sealed::RegSpec for Cf0Cr_SPEC {
4163    type DataType = u8;
4164}
4165
4166#[doc = "Control Field 0 Compare Enable Register"]
4167pub type Cf0Cr = crate::RegValueT<Cf0Cr_SPEC>;
4168
4169impl Cf0Cr {
4170    #[doc = "Control Field 0 Bit 0 Compare Enable"]
4171    #[inline(always)]
4172    pub fn cf0ce0(
4173        self,
4174    ) -> crate::common::RegisterField<
4175        0,
4176        0x1,
4177        1,
4178        0,
4179        cf0cr::Cf0Ce0,
4180        cf0cr::Cf0Ce0,
4181        Cf0Cr_SPEC,
4182        crate::common::RW,
4183    > {
4184        crate::common::RegisterField::<
4185            0,
4186            0x1,
4187            1,
4188            0,
4189            cf0cr::Cf0Ce0,
4190            cf0cr::Cf0Ce0,
4191            Cf0Cr_SPEC,
4192            crate::common::RW,
4193        >::from_register(self, 0)
4194    }
4195
4196    #[doc = "Control Field 1 Bit 0 Compare Enable"]
4197    #[inline(always)]
4198    pub fn cf0ce1(
4199        self,
4200    ) -> crate::common::RegisterField<
4201        1,
4202        0x1,
4203        1,
4204        0,
4205        cf0cr::Cf0Ce1,
4206        cf0cr::Cf0Ce1,
4207        Cf0Cr_SPEC,
4208        crate::common::RW,
4209    > {
4210        crate::common::RegisterField::<
4211            1,
4212            0x1,
4213            1,
4214            0,
4215            cf0cr::Cf0Ce1,
4216            cf0cr::Cf0Ce1,
4217            Cf0Cr_SPEC,
4218            crate::common::RW,
4219        >::from_register(self, 0)
4220    }
4221
4222    #[doc = "Control Field 2 Bit 0 Compare Enable"]
4223    #[inline(always)]
4224    pub fn cf0ce2(
4225        self,
4226    ) -> crate::common::RegisterField<
4227        2,
4228        0x1,
4229        1,
4230        0,
4231        cf0cr::Cf0Ce2,
4232        cf0cr::Cf0Ce2,
4233        Cf0Cr_SPEC,
4234        crate::common::RW,
4235    > {
4236        crate::common::RegisterField::<
4237            2,
4238            0x1,
4239            1,
4240            0,
4241            cf0cr::Cf0Ce2,
4242            cf0cr::Cf0Ce2,
4243            Cf0Cr_SPEC,
4244            crate::common::RW,
4245        >::from_register(self, 0)
4246    }
4247
4248    #[doc = "Control Field 3 Bit 0 Compare Enable"]
4249    #[inline(always)]
4250    pub fn cf0ce3(
4251        self,
4252    ) -> crate::common::RegisterField<
4253        3,
4254        0x1,
4255        1,
4256        0,
4257        cf0cr::Cf0Ce3,
4258        cf0cr::Cf0Ce3,
4259        Cf0Cr_SPEC,
4260        crate::common::RW,
4261    > {
4262        crate::common::RegisterField::<
4263            3,
4264            0x1,
4265            1,
4266            0,
4267            cf0cr::Cf0Ce3,
4268            cf0cr::Cf0Ce3,
4269            Cf0Cr_SPEC,
4270            crate::common::RW,
4271        >::from_register(self, 0)
4272    }
4273
4274    #[doc = "Control Field 4 Bit 0 Compare Enable"]
4275    #[inline(always)]
4276    pub fn cf0ce4(
4277        self,
4278    ) -> crate::common::RegisterField<
4279        4,
4280        0x1,
4281        1,
4282        0,
4283        cf0cr::Cf0Ce4,
4284        cf0cr::Cf0Ce4,
4285        Cf0Cr_SPEC,
4286        crate::common::RW,
4287    > {
4288        crate::common::RegisterField::<
4289            4,
4290            0x1,
4291            1,
4292            0,
4293            cf0cr::Cf0Ce4,
4294            cf0cr::Cf0Ce4,
4295            Cf0Cr_SPEC,
4296            crate::common::RW,
4297        >::from_register(self, 0)
4298    }
4299
4300    #[doc = "Control Field 5 Bit 0 Compare Enable"]
4301    #[inline(always)]
4302    pub fn cf0ce5(
4303        self,
4304    ) -> crate::common::RegisterField<
4305        5,
4306        0x1,
4307        1,
4308        0,
4309        cf0cr::Cf0Ce5,
4310        cf0cr::Cf0Ce5,
4311        Cf0Cr_SPEC,
4312        crate::common::RW,
4313    > {
4314        crate::common::RegisterField::<
4315            5,
4316            0x1,
4317            1,
4318            0,
4319            cf0cr::Cf0Ce5,
4320            cf0cr::Cf0Ce5,
4321            Cf0Cr_SPEC,
4322            crate::common::RW,
4323        >::from_register(self, 0)
4324    }
4325
4326    #[doc = "Control Field 6 Bit 0 Compare Enable"]
4327    #[inline(always)]
4328    pub fn cf0ce6(
4329        self,
4330    ) -> crate::common::RegisterField<
4331        6,
4332        0x1,
4333        1,
4334        0,
4335        cf0cr::Cf0Ce6,
4336        cf0cr::Cf0Ce6,
4337        Cf0Cr_SPEC,
4338        crate::common::RW,
4339    > {
4340        crate::common::RegisterField::<
4341            6,
4342            0x1,
4343            1,
4344            0,
4345            cf0cr::Cf0Ce6,
4346            cf0cr::Cf0Ce6,
4347            Cf0Cr_SPEC,
4348            crate::common::RW,
4349        >::from_register(self, 0)
4350    }
4351
4352    #[doc = "Control Field 7 Bit 0 Compare Enable"]
4353    #[inline(always)]
4354    pub fn cf0ce7(
4355        self,
4356    ) -> crate::common::RegisterField<
4357        7,
4358        0x1,
4359        1,
4360        0,
4361        cf0cr::Cf0Ce7,
4362        cf0cr::Cf0Ce7,
4363        Cf0Cr_SPEC,
4364        crate::common::RW,
4365    > {
4366        crate::common::RegisterField::<
4367            7,
4368            0x1,
4369            1,
4370            0,
4371            cf0cr::Cf0Ce7,
4372            cf0cr::Cf0Ce7,
4373            Cf0Cr_SPEC,
4374            crate::common::RW,
4375        >::from_register(self, 0)
4376    }
4377}
4378impl ::core::default::Default for Cf0Cr {
4379    #[inline(always)]
4380    fn default() -> Cf0Cr {
4381        <crate::RegValueT<Cf0Cr_SPEC> as RegisterValue<_>>::new(0)
4382    }
4383}
4384pub mod cf0cr {
4385
4386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4387    pub struct Cf0Ce0_SPEC;
4388    pub type Cf0Ce0 = crate::EnumBitfieldStruct<u8, Cf0Ce0_SPEC>;
4389    impl Cf0Ce0 {
4390        #[doc = "Comparison with bit 0 of Control Field 0 is disabled."]
4391        pub const _0: Self = Self::new(0);
4392
4393        #[doc = "Comparison with bit 0 of Control Field 0 is enabled."]
4394        pub const _1: Self = Self::new(1);
4395    }
4396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4397    pub struct Cf0Ce1_SPEC;
4398    pub type Cf0Ce1 = crate::EnumBitfieldStruct<u8, Cf0Ce1_SPEC>;
4399    impl Cf0Ce1 {
4400        #[doc = "Comparison with bit 1 of Control Field 0 is disabled."]
4401        pub const _0: Self = Self::new(0);
4402
4403        #[doc = "Comparison with bit 1 of Control Field 0 is enabled."]
4404        pub const _1: Self = Self::new(1);
4405    }
4406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4407    pub struct Cf0Ce2_SPEC;
4408    pub type Cf0Ce2 = crate::EnumBitfieldStruct<u8, Cf0Ce2_SPEC>;
4409    impl Cf0Ce2 {
4410        #[doc = "Comparison with bit 2 of Control Field 0 is disabled."]
4411        pub const _0: Self = Self::new(0);
4412
4413        #[doc = "Comparison with bit 2 of Control Field 0 is enabled."]
4414        pub const _1: Self = Self::new(1);
4415    }
4416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4417    pub struct Cf0Ce3_SPEC;
4418    pub type Cf0Ce3 = crate::EnumBitfieldStruct<u8, Cf0Ce3_SPEC>;
4419    impl Cf0Ce3 {
4420        #[doc = "Comparison with bit 3 of Control Field 0 is disabled."]
4421        pub const _0: Self = Self::new(0);
4422
4423        #[doc = "Comparison with bit 3 of Control Field 0 is enabled."]
4424        pub const _1: Self = Self::new(1);
4425    }
4426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4427    pub struct Cf0Ce4_SPEC;
4428    pub type Cf0Ce4 = crate::EnumBitfieldStruct<u8, Cf0Ce4_SPEC>;
4429    impl Cf0Ce4 {
4430        #[doc = "Comparison with bit 4 of Control Field 0 is disabled."]
4431        pub const _0: Self = Self::new(0);
4432
4433        #[doc = "Comparison with bit 4 of Control Field 0 is enabled."]
4434        pub const _1: Self = Self::new(1);
4435    }
4436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4437    pub struct Cf0Ce5_SPEC;
4438    pub type Cf0Ce5 = crate::EnumBitfieldStruct<u8, Cf0Ce5_SPEC>;
4439    impl Cf0Ce5 {
4440        #[doc = "Comparison with bit 5 of Control Field 0 is disabled."]
4441        pub const _0: Self = Self::new(0);
4442
4443        #[doc = "Comparison with bit 5 of Control Field 0 is enabled."]
4444        pub const _1: Self = Self::new(1);
4445    }
4446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4447    pub struct Cf0Ce6_SPEC;
4448    pub type Cf0Ce6 = crate::EnumBitfieldStruct<u8, Cf0Ce6_SPEC>;
4449    impl Cf0Ce6 {
4450        #[doc = "Comparison with bit 6 of Control Field 0 is disabled."]
4451        pub const _0: Self = Self::new(0);
4452
4453        #[doc = "Comparison with bit 6 of Control Field 0 is enabled."]
4454        pub const _1: Self = Self::new(1);
4455    }
4456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4457    pub struct Cf0Ce7_SPEC;
4458    pub type Cf0Ce7 = crate::EnumBitfieldStruct<u8, Cf0Ce7_SPEC>;
4459    impl Cf0Ce7 {
4460        #[doc = "Comparison with bit 7 of Control Field 0 is disabled."]
4461        pub const _0: Self = Self::new(0);
4462
4463        #[doc = "Comparison with bit 7 of Control Field 0 is enabled."]
4464        pub const _1: Self = Self::new(1);
4465    }
4466}
4467#[doc(hidden)]
4468#[derive(Copy, Clone, Eq, PartialEq)]
4469pub struct Cf0Rr_SPEC;
4470impl crate::sealed::RegSpec for Cf0Rr_SPEC {
4471    type DataType = u8;
4472}
4473
4474#[doc = "Control Field 0 Receive Data Register"]
4475pub type Cf0Rr = crate::RegValueT<Cf0Rr_SPEC>;
4476
4477impl NoBitfieldReg<Cf0Rr_SPEC> for Cf0Rr {}
4478impl ::core::default::Default for Cf0Rr {
4479    #[inline(always)]
4480    fn default() -> Cf0Rr {
4481        <crate::RegValueT<Cf0Rr_SPEC> as RegisterValue<_>>::new(0)
4482    }
4483}
4484
4485#[doc(hidden)]
4486#[derive(Copy, Clone, Eq, PartialEq)]
4487pub struct Pcf1Dr_SPEC;
4488impl crate::sealed::RegSpec for Pcf1Dr_SPEC {
4489    type DataType = u8;
4490}
4491
4492#[doc = "Primary Control Field 1 Data Register"]
4493pub type Pcf1Dr = crate::RegValueT<Pcf1Dr_SPEC>;
4494
4495impl NoBitfieldReg<Pcf1Dr_SPEC> for Pcf1Dr {}
4496impl ::core::default::Default for Pcf1Dr {
4497    #[inline(always)]
4498    fn default() -> Pcf1Dr {
4499        <crate::RegValueT<Pcf1Dr_SPEC> as RegisterValue<_>>::new(0)
4500    }
4501}
4502
4503#[doc(hidden)]
4504#[derive(Copy, Clone, Eq, PartialEq)]
4505pub struct Scf1Dr_SPEC;
4506impl crate::sealed::RegSpec for Scf1Dr_SPEC {
4507    type DataType = u8;
4508}
4509
4510#[doc = "Secondary Control Field 1 Data Register"]
4511pub type Scf1Dr = crate::RegValueT<Scf1Dr_SPEC>;
4512
4513impl NoBitfieldReg<Scf1Dr_SPEC> for Scf1Dr {}
4514impl ::core::default::Default for Scf1Dr {
4515    #[inline(always)]
4516    fn default() -> Scf1Dr {
4517        <crate::RegValueT<Scf1Dr_SPEC> as RegisterValue<_>>::new(0)
4518    }
4519}
4520
4521#[doc(hidden)]
4522#[derive(Copy, Clone, Eq, PartialEq)]
4523pub struct Cf1Cr_SPEC;
4524impl crate::sealed::RegSpec for Cf1Cr_SPEC {
4525    type DataType = u8;
4526}
4527
4528#[doc = "Control Field 1 Compare Enable Register"]
4529pub type Cf1Cr = crate::RegValueT<Cf1Cr_SPEC>;
4530
4531impl Cf1Cr {
4532    #[doc = "Control Field 1 Bit 0 Compare Enable"]
4533    #[inline(always)]
4534    pub fn cf1ce0(
4535        self,
4536    ) -> crate::common::RegisterField<
4537        0,
4538        0x1,
4539        1,
4540        0,
4541        cf1cr::Cf1Ce0,
4542        cf1cr::Cf1Ce0,
4543        Cf1Cr_SPEC,
4544        crate::common::RW,
4545    > {
4546        crate::common::RegisterField::<
4547            0,
4548            0x1,
4549            1,
4550            0,
4551            cf1cr::Cf1Ce0,
4552            cf1cr::Cf1Ce0,
4553            Cf1Cr_SPEC,
4554            crate::common::RW,
4555        >::from_register(self, 0)
4556    }
4557
4558    #[doc = "Control Field 1 Bit 1 Compare Enable"]
4559    #[inline(always)]
4560    pub fn cf1ce1(
4561        self,
4562    ) -> crate::common::RegisterField<
4563        1,
4564        0x1,
4565        1,
4566        0,
4567        cf1cr::Cf1Ce1,
4568        cf1cr::Cf1Ce1,
4569        Cf1Cr_SPEC,
4570        crate::common::RW,
4571    > {
4572        crate::common::RegisterField::<
4573            1,
4574            0x1,
4575            1,
4576            0,
4577            cf1cr::Cf1Ce1,
4578            cf1cr::Cf1Ce1,
4579            Cf1Cr_SPEC,
4580            crate::common::RW,
4581        >::from_register(self, 0)
4582    }
4583
4584    #[doc = "Control Field 1 Bit 2 Compare Enable"]
4585    #[inline(always)]
4586    pub fn cf1ce2(
4587        self,
4588    ) -> crate::common::RegisterField<
4589        2,
4590        0x1,
4591        1,
4592        0,
4593        cf1cr::Cf1Ce2,
4594        cf1cr::Cf1Ce2,
4595        Cf1Cr_SPEC,
4596        crate::common::RW,
4597    > {
4598        crate::common::RegisterField::<
4599            2,
4600            0x1,
4601            1,
4602            0,
4603            cf1cr::Cf1Ce2,
4604            cf1cr::Cf1Ce2,
4605            Cf1Cr_SPEC,
4606            crate::common::RW,
4607        >::from_register(self, 0)
4608    }
4609
4610    #[doc = "Control Field 1 Bit 3 Compare Enable"]
4611    #[inline(always)]
4612    pub fn cf1ce3(
4613        self,
4614    ) -> crate::common::RegisterField<
4615        3,
4616        0x1,
4617        1,
4618        0,
4619        cf1cr::Cf1Ce3,
4620        cf1cr::Cf1Ce3,
4621        Cf1Cr_SPEC,
4622        crate::common::RW,
4623    > {
4624        crate::common::RegisterField::<
4625            3,
4626            0x1,
4627            1,
4628            0,
4629            cf1cr::Cf1Ce3,
4630            cf1cr::Cf1Ce3,
4631            Cf1Cr_SPEC,
4632            crate::common::RW,
4633        >::from_register(self, 0)
4634    }
4635
4636    #[doc = "Control Field 1 Bit 4 Compare Enable"]
4637    #[inline(always)]
4638    pub fn cf1ce4(
4639        self,
4640    ) -> crate::common::RegisterField<
4641        4,
4642        0x1,
4643        1,
4644        0,
4645        cf1cr::Cf1Ce4,
4646        cf1cr::Cf1Ce4,
4647        Cf1Cr_SPEC,
4648        crate::common::RW,
4649    > {
4650        crate::common::RegisterField::<
4651            4,
4652            0x1,
4653            1,
4654            0,
4655            cf1cr::Cf1Ce4,
4656            cf1cr::Cf1Ce4,
4657            Cf1Cr_SPEC,
4658            crate::common::RW,
4659        >::from_register(self, 0)
4660    }
4661
4662    #[doc = "Control Field 1 Bit 5 Compare Enable"]
4663    #[inline(always)]
4664    pub fn cf1ce5(
4665        self,
4666    ) -> crate::common::RegisterField<
4667        5,
4668        0x1,
4669        1,
4670        0,
4671        cf1cr::Cf1Ce5,
4672        cf1cr::Cf1Ce5,
4673        Cf1Cr_SPEC,
4674        crate::common::RW,
4675    > {
4676        crate::common::RegisterField::<
4677            5,
4678            0x1,
4679            1,
4680            0,
4681            cf1cr::Cf1Ce5,
4682            cf1cr::Cf1Ce5,
4683            Cf1Cr_SPEC,
4684            crate::common::RW,
4685        >::from_register(self, 0)
4686    }
4687
4688    #[doc = "Control Field 1 Bit 6 Compare Enable"]
4689    #[inline(always)]
4690    pub fn cf1ce6(
4691        self,
4692    ) -> crate::common::RegisterField<
4693        6,
4694        0x1,
4695        1,
4696        0,
4697        cf1cr::Cf1Ce6,
4698        cf1cr::Cf1Ce6,
4699        Cf1Cr_SPEC,
4700        crate::common::RW,
4701    > {
4702        crate::common::RegisterField::<
4703            6,
4704            0x1,
4705            1,
4706            0,
4707            cf1cr::Cf1Ce6,
4708            cf1cr::Cf1Ce6,
4709            Cf1Cr_SPEC,
4710            crate::common::RW,
4711        >::from_register(self, 0)
4712    }
4713
4714    #[doc = "Control Field 1 Bit 7 Compare Enable"]
4715    #[inline(always)]
4716    pub fn cf1ce7(
4717        self,
4718    ) -> crate::common::RegisterField<
4719        7,
4720        0x1,
4721        1,
4722        0,
4723        cf1cr::Cf1Ce7,
4724        cf1cr::Cf1Ce7,
4725        Cf1Cr_SPEC,
4726        crate::common::RW,
4727    > {
4728        crate::common::RegisterField::<
4729            7,
4730            0x1,
4731            1,
4732            0,
4733            cf1cr::Cf1Ce7,
4734            cf1cr::Cf1Ce7,
4735            Cf1Cr_SPEC,
4736            crate::common::RW,
4737        >::from_register(self, 0)
4738    }
4739}
4740impl ::core::default::Default for Cf1Cr {
4741    #[inline(always)]
4742    fn default() -> Cf1Cr {
4743        <crate::RegValueT<Cf1Cr_SPEC> as RegisterValue<_>>::new(0)
4744    }
4745}
4746pub mod cf1cr {
4747
4748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4749    pub struct Cf1Ce0_SPEC;
4750    pub type Cf1Ce0 = crate::EnumBitfieldStruct<u8, Cf1Ce0_SPEC>;
4751    impl Cf1Ce0 {
4752        #[doc = "Comparison with bit 0 of Control Field 1 is disabled."]
4753        pub const _0: Self = Self::new(0);
4754
4755        #[doc = "Comparison with bit 0 of Control Field 1 is enabled."]
4756        pub const _1: Self = Self::new(1);
4757    }
4758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4759    pub struct Cf1Ce1_SPEC;
4760    pub type Cf1Ce1 = crate::EnumBitfieldStruct<u8, Cf1Ce1_SPEC>;
4761    impl Cf1Ce1 {
4762        #[doc = "Comparison with bit 1 of Control Field 1 is disabled."]
4763        pub const _0: Self = Self::new(0);
4764
4765        #[doc = "Comparison with bit 1 of Control Field 1 is enabled."]
4766        pub const _1: Self = Self::new(1);
4767    }
4768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4769    pub struct Cf1Ce2_SPEC;
4770    pub type Cf1Ce2 = crate::EnumBitfieldStruct<u8, Cf1Ce2_SPEC>;
4771    impl Cf1Ce2 {
4772        #[doc = "Comparison with bit 2 of Control Field 1 is disabled."]
4773        pub const _0: Self = Self::new(0);
4774
4775        #[doc = "Comparison with bit 2 of Control Field 1 is enabled."]
4776        pub const _1: Self = Self::new(1);
4777    }
4778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4779    pub struct Cf1Ce3_SPEC;
4780    pub type Cf1Ce3 = crate::EnumBitfieldStruct<u8, Cf1Ce3_SPEC>;
4781    impl Cf1Ce3 {
4782        #[doc = "Comparison with bit 3 of Control Field 1 is disabled."]
4783        pub const _0: Self = Self::new(0);
4784
4785        #[doc = "Comparison with bit 3 of Control Field 1 is enabled."]
4786        pub const _1: Self = Self::new(1);
4787    }
4788    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4789    pub struct Cf1Ce4_SPEC;
4790    pub type Cf1Ce4 = crate::EnumBitfieldStruct<u8, Cf1Ce4_SPEC>;
4791    impl Cf1Ce4 {
4792        #[doc = "Comparison with bit 4 of Control Field 1 is disabled."]
4793        pub const _0: Self = Self::new(0);
4794
4795        #[doc = "Comparison with bit 4 of Control Field 1 is enabled."]
4796        pub const _1: Self = Self::new(1);
4797    }
4798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4799    pub struct Cf1Ce5_SPEC;
4800    pub type Cf1Ce5 = crate::EnumBitfieldStruct<u8, Cf1Ce5_SPEC>;
4801    impl Cf1Ce5 {
4802        #[doc = "Comparison with bit 5 of Control Field 1 is disabled."]
4803        pub const _0: Self = Self::new(0);
4804
4805        #[doc = "Comparison with bit 5 of Control Field 1 is enabled."]
4806        pub const _1: Self = Self::new(1);
4807    }
4808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4809    pub struct Cf1Ce6_SPEC;
4810    pub type Cf1Ce6 = crate::EnumBitfieldStruct<u8, Cf1Ce6_SPEC>;
4811    impl Cf1Ce6 {
4812        #[doc = "Comparison with bit 6 of Control Field 1 is disabled."]
4813        pub const _0: Self = Self::new(0);
4814
4815        #[doc = "Comparison with bit 6 of Control Field 1 is enabled."]
4816        pub const _1: Self = Self::new(1);
4817    }
4818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4819    pub struct Cf1Ce7_SPEC;
4820    pub type Cf1Ce7 = crate::EnumBitfieldStruct<u8, Cf1Ce7_SPEC>;
4821    impl Cf1Ce7 {
4822        #[doc = "Comparison with bit 7 of Control Field 1 is disabled."]
4823        pub const _0: Self = Self::new(0);
4824
4825        #[doc = "Comparison with bit 7 of Control Field 1 is enabled."]
4826        pub const _1: Self = Self::new(1);
4827    }
4828}
4829#[doc(hidden)]
4830#[derive(Copy, Clone, Eq, PartialEq)]
4831pub struct Cf1Rr_SPEC;
4832impl crate::sealed::RegSpec for Cf1Rr_SPEC {
4833    type DataType = u8;
4834}
4835
4836#[doc = "Control Field 1 Receive Data Register"]
4837pub type Cf1Rr = crate::RegValueT<Cf1Rr_SPEC>;
4838
4839impl NoBitfieldReg<Cf1Rr_SPEC> for Cf1Rr {}
4840impl ::core::default::Default for Cf1Rr {
4841    #[inline(always)]
4842    fn default() -> Cf1Rr {
4843        <crate::RegValueT<Cf1Rr_SPEC> as RegisterValue<_>>::new(0)
4844    }
4845}
4846
4847#[doc(hidden)]
4848#[derive(Copy, Clone, Eq, PartialEq)]
4849pub struct Tcr_SPEC;
4850impl crate::sealed::RegSpec for Tcr_SPEC {
4851    type DataType = u8;
4852}
4853
4854#[doc = "Timer Control Register"]
4855pub type Tcr = crate::RegValueT<Tcr_SPEC>;
4856
4857impl Tcr {
4858    #[doc = "Timer Count Start"]
4859    #[inline(always)]
4860    pub fn tcst(
4861        self,
4862    ) -> crate::common::RegisterField<0, 0x1, 1, 0, tcr::Tcst, tcr::Tcst, Tcr_SPEC, crate::common::RW>
4863    {
4864        crate::common::RegisterField::<
4865            0,
4866            0x1,
4867            1,
4868            0,
4869            tcr::Tcst,
4870            tcr::Tcst,
4871            Tcr_SPEC,
4872            crate::common::RW,
4873        >::from_register(self, 0)
4874    }
4875}
4876impl ::core::default::Default for Tcr {
4877    #[inline(always)]
4878    fn default() -> Tcr {
4879        <crate::RegValueT<Tcr_SPEC> as RegisterValue<_>>::new(0)
4880    }
4881}
4882pub mod tcr {
4883
4884    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4885    pub struct Tcst_SPEC;
4886    pub type Tcst = crate::EnumBitfieldStruct<u8, Tcst_SPEC>;
4887    impl Tcst {
4888        #[doc = "Stops the timer counting"]
4889        pub const _0: Self = Self::new(0);
4890
4891        #[doc = "Starts the timer counting"]
4892        pub const _1: Self = Self::new(1);
4893    }
4894}
4895#[doc(hidden)]
4896#[derive(Copy, Clone, Eq, PartialEq)]
4897pub struct Tmr_SPEC;
4898impl crate::sealed::RegSpec for Tmr_SPEC {
4899    type DataType = u8;
4900}
4901
4902#[doc = "Timer Mode Register"]
4903pub type Tmr = crate::RegValueT<Tmr_SPEC>;
4904
4905impl Tmr {
4906    #[doc = "Timer Operating Mode Select"]
4907    #[inline(always)]
4908    pub fn toms(
4909        self,
4910    ) -> crate::common::RegisterField<0, 0x3, 1, 0, tmr::Toms, tmr::Toms, Tmr_SPEC, crate::common::RW>
4911    {
4912        crate::common::RegisterField::<
4913            0,
4914            0x3,
4915            1,
4916            0,
4917            tmr::Toms,
4918            tmr::Toms,
4919            Tmr_SPEC,
4920            crate::common::RW,
4921        >::from_register(self, 0)
4922    }
4923
4924    #[doc = "Counter Write Control"]
4925    #[inline(always)]
4926    pub fn twrc(
4927        self,
4928    ) -> crate::common::RegisterField<3, 0x1, 1, 0, tmr::Twrc, tmr::Twrc, Tmr_SPEC, crate::common::RW>
4929    {
4930        crate::common::RegisterField::<
4931            3,
4932            0x1,
4933            1,
4934            0,
4935            tmr::Twrc,
4936            tmr::Twrc,
4937            Tmr_SPEC,
4938            crate::common::RW,
4939        >::from_register(self, 0)
4940    }
4941
4942    #[doc = "Timer Count Clock Source Select"]
4943    #[inline(always)]
4944    pub fn tcss(
4945        self,
4946    ) -> crate::common::RegisterField<4, 0x7, 1, 0, tmr::Tcss, tmr::Tcss, Tmr_SPEC, crate::common::RW>
4947    {
4948        crate::common::RegisterField::<
4949            4,
4950            0x7,
4951            1,
4952            0,
4953            tmr::Tcss,
4954            tmr::Tcss,
4955            Tmr_SPEC,
4956            crate::common::RW,
4957        >::from_register(self, 0)
4958    }
4959}
4960impl ::core::default::Default for Tmr {
4961    #[inline(always)]
4962    fn default() -> Tmr {
4963        <crate::RegValueT<Tmr_SPEC> as RegisterValue<_>>::new(0)
4964    }
4965}
4966pub mod tmr {
4967
4968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4969    pub struct Toms_SPEC;
4970    pub type Toms = crate::EnumBitfieldStruct<u8, Toms_SPEC>;
4971    impl Toms {
4972        #[doc = "Timer mode"]
4973        pub const _00: Self = Self::new(0);
4974
4975        #[doc = "Break Field low width determination mode"]
4976        pub const _01: Self = Self::new(1);
4977
4978        #[doc = "Break Field low width output mode"]
4979        pub const _10: Self = Self::new(2);
4980
4981        #[doc = "Setting prohibited"]
4982        pub const _11: Self = Self::new(3);
4983    }
4984    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4985    pub struct Twrc_SPEC;
4986    pub type Twrc = crate::EnumBitfieldStruct<u8, Twrc_SPEC>;
4987    impl Twrc {
4988        #[doc = "Data is written to the reload register and counter"]
4989        pub const _0: Self = Self::new(0);
4990
4991        #[doc = "Data is written to the reload register only"]
4992        pub const _1: Self = Self::new(1);
4993    }
4994    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4995    pub struct Tcss_SPEC;
4996    pub type Tcss = crate::EnumBitfieldStruct<u8, Tcss_SPEC>;
4997    impl Tcss {
4998        #[doc = "PCLK"]
4999        pub const _000: Self = Self::new(0);
5000
5001        #[doc = "PCLK/2"]
5002        pub const _001: Self = Self::new(1);
5003
5004        #[doc = "PCLK/4"]
5005        pub const _010: Self = Self::new(2);
5006
5007        #[doc = "PCLK/8"]
5008        pub const _011: Self = Self::new(3);
5009
5010        #[doc = "PCLK/16"]
5011        pub const _100: Self = Self::new(4);
5012
5013        #[doc = "PCLK/32"]
5014        pub const _101: Self = Self::new(5);
5015
5016        #[doc = "PCLK/64"]
5017        pub const _110: Self = Self::new(6);
5018
5019        #[doc = "PCLK/128"]
5020        pub const _111: Self = Self::new(7);
5021    }
5022}
5023#[doc(hidden)]
5024#[derive(Copy, Clone, Eq, PartialEq)]
5025pub struct Tpre_SPEC;
5026impl crate::sealed::RegSpec for Tpre_SPEC {
5027    type DataType = u8;
5028}
5029
5030#[doc = "Timer Prescaler Register"]
5031pub type Tpre = crate::RegValueT<Tpre_SPEC>;
5032
5033impl NoBitfieldReg<Tpre_SPEC> for Tpre {}
5034impl ::core::default::Default for Tpre {
5035    #[inline(always)]
5036    fn default() -> Tpre {
5037        <crate::RegValueT<Tpre_SPEC> as RegisterValue<_>>::new(255)
5038    }
5039}
5040
5041#[doc(hidden)]
5042#[derive(Copy, Clone, Eq, PartialEq)]
5043pub struct Tcnt_SPEC;
5044impl crate::sealed::RegSpec for Tcnt_SPEC {
5045    type DataType = u8;
5046}
5047
5048#[doc = "Timer Count Register"]
5049pub type Tcnt = crate::RegValueT<Tcnt_SPEC>;
5050
5051impl NoBitfieldReg<Tcnt_SPEC> for Tcnt {}
5052impl ::core::default::Default for Tcnt {
5053    #[inline(always)]
5054    fn default() -> Tcnt {
5055        <crate::RegValueT<Tcnt_SPEC> as RegisterValue<_>>::new(255)
5056    }
5057}