Skip to main content

ra4m2_pac/
sci3.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"]
28unsafe impl ::core::marker::Send for super::Sci3 {}
29unsafe impl ::core::marker::Sync for super::Sci3 {}
30impl super::Sci3 {
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 Non-Smart Card Interface and FIFO Mode (SCMR.SMIF = 0, FCR.FM = 1, and MMR.MANEN = 0)"]
112    #[inline(always)]
113    pub const fn ssr_fifo(
114        &self,
115    ) -> &'static crate::common::Reg<self::SsrFifo_SPEC, crate::common::RW> {
116        unsafe {
117            crate::common::Reg::<self::SsrFifo_SPEC, crate::common::RW>::from_ptr(
118                self._svd2pac_as_ptr().add(4usize),
119            )
120        }
121    }
122
123    #[doc = "Serial Status Register for Manchester Mode (SCMR.SMIF = 0, and MMR.MANEN = 1)"]
124    #[inline(always)]
125    pub const fn ssr_manc(
126        &self,
127    ) -> &'static crate::common::Reg<self::SsrManc_SPEC, crate::common::RW> {
128        unsafe {
129            crate::common::Reg::<self::SsrManc_SPEC, crate::common::RW>::from_ptr(
130                self._svd2pac_as_ptr().add(4usize),
131            )
132        }
133    }
134
135    #[doc = "Serial Status Register for Smart Card Interface Mode (SCMR.SMIF = 1, and MMR.MANEN = 0)"]
136    #[inline(always)]
137    pub const fn ssr_smci(
138        &self,
139    ) -> &'static crate::common::Reg<self::SsrSmci_SPEC, crate::common::RW> {
140        unsafe {
141            crate::common::Reg::<self::SsrSmci_SPEC, crate::common::RW>::from_ptr(
142                self._svd2pac_as_ptr().add(4usize),
143            )
144        }
145    }
146
147    #[doc = "Receive Data Register"]
148    #[inline(always)]
149    pub const fn rdr(&self) -> &'static crate::common::Reg<self::Rdr_SPEC, crate::common::R> {
150        unsafe {
151            crate::common::Reg::<self::Rdr_SPEC, crate::common::R>::from_ptr(
152                self._svd2pac_as_ptr().add(5usize),
153            )
154        }
155    }
156
157    #[doc = "Smart Card Mode Register"]
158    #[inline(always)]
159    pub const fn scmr(&self) -> &'static crate::common::Reg<self::Scmr_SPEC, crate::common::RW> {
160        unsafe {
161            crate::common::Reg::<self::Scmr_SPEC, crate::common::RW>::from_ptr(
162                self._svd2pac_as_ptr().add(6usize),
163            )
164        }
165    }
166
167    #[doc = "Serial Extended Mode Register"]
168    #[inline(always)]
169    pub const fn semr(&self) -> &'static crate::common::Reg<self::Semr_SPEC, crate::common::RW> {
170        unsafe {
171            crate::common::Reg::<self::Semr_SPEC, crate::common::RW>::from_ptr(
172                self._svd2pac_as_ptr().add(7usize),
173            )
174        }
175    }
176
177    #[doc = "Noise Filter Setting Register"]
178    #[inline(always)]
179    pub const fn snfr(&self) -> &'static crate::common::Reg<self::Snfr_SPEC, crate::common::RW> {
180        unsafe {
181            crate::common::Reg::<self::Snfr_SPEC, crate::common::RW>::from_ptr(
182                self._svd2pac_as_ptr().add(8usize),
183            )
184        }
185    }
186
187    #[doc = "IIC Mode Register 1"]
188    #[inline(always)]
189    pub const fn simr1(&self) -> &'static crate::common::Reg<self::Simr1_SPEC, crate::common::RW> {
190        unsafe {
191            crate::common::Reg::<self::Simr1_SPEC, crate::common::RW>::from_ptr(
192                self._svd2pac_as_ptr().add(9usize),
193            )
194        }
195    }
196
197    #[doc = "IIC Mode Register 2"]
198    #[inline(always)]
199    pub const fn simr2(&self) -> &'static crate::common::Reg<self::Simr2_SPEC, crate::common::RW> {
200        unsafe {
201            crate::common::Reg::<self::Simr2_SPEC, crate::common::RW>::from_ptr(
202                self._svd2pac_as_ptr().add(10usize),
203            )
204        }
205    }
206
207    #[doc = "IIC Mode Register 3"]
208    #[inline(always)]
209    pub const fn simr3(&self) -> &'static crate::common::Reg<self::Simr3_SPEC, crate::common::RW> {
210        unsafe {
211            crate::common::Reg::<self::Simr3_SPEC, crate::common::RW>::from_ptr(
212                self._svd2pac_as_ptr().add(11usize),
213            )
214        }
215    }
216
217    #[doc = "IIC Status Register"]
218    #[inline(always)]
219    pub const fn sisr(&self) -> &'static crate::common::Reg<self::Sisr_SPEC, crate::common::R> {
220        unsafe {
221            crate::common::Reg::<self::Sisr_SPEC, crate::common::R>::from_ptr(
222                self._svd2pac_as_ptr().add(12usize),
223            )
224        }
225    }
226
227    #[doc = "SPI Mode Register"]
228    #[inline(always)]
229    pub const fn spmr(&self) -> &'static crate::common::Reg<self::Spmr_SPEC, crate::common::RW> {
230        unsafe {
231            crate::common::Reg::<self::Spmr_SPEC, crate::common::RW>::from_ptr(
232                self._svd2pac_as_ptr().add(13usize),
233            )
234        }
235    }
236
237    #[doc = "Transmit FIFO Data Register"]
238    #[inline(always)]
239    pub const fn ftdrhl(&self) -> &'static crate::common::Reg<self::Ftdrhl_SPEC, crate::common::W> {
240        unsafe {
241            crate::common::Reg::<self::Ftdrhl_SPEC, crate::common::W>::from_ptr(
242                self._svd2pac_as_ptr().add(14usize),
243            )
244        }
245    }
246
247    #[doc = "Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
248    #[inline(always)]
249    pub const fn tdrhl(&self) -> &'static crate::common::Reg<self::Tdrhl_SPEC, crate::common::RW> {
250        unsafe {
251            crate::common::Reg::<self::Tdrhl_SPEC, crate::common::RW>::from_ptr(
252                self._svd2pac_as_ptr().add(14usize),
253            )
254        }
255    }
256
257    #[doc = "Transmit Data Register for Manchester mode (MMR.MANEN = 1)"]
258    #[inline(always)]
259    pub const fn tdrhl_man(
260        &self,
261    ) -> &'static crate::common::Reg<self::TdrhlMan_SPEC, crate::common::RW> {
262        unsafe {
263            crate::common::Reg::<self::TdrhlMan_SPEC, crate::common::RW>::from_ptr(
264                self._svd2pac_as_ptr().add(14usize),
265            )
266        }
267    }
268
269    #[doc = "Transmit FIFO Data Register"]
270    #[inline(always)]
271    pub const fn ftdrh(&self) -> &'static crate::common::Reg<self::Ftdrh_SPEC, crate::common::W> {
272        unsafe {
273            crate::common::Reg::<self::Ftdrh_SPEC, crate::common::W>::from_ptr(
274                self._svd2pac_as_ptr().add(14usize),
275            )
276        }
277    }
278
279    #[doc = "Transmit FIFO Data Register"]
280    #[inline(always)]
281    pub const fn ftdrl(&self) -> &'static crate::common::Reg<self::Ftdrl_SPEC, crate::common::W> {
282        unsafe {
283            crate::common::Reg::<self::Ftdrl_SPEC, crate::common::W>::from_ptr(
284                self._svd2pac_as_ptr().add(15usize),
285            )
286        }
287    }
288
289    #[doc = "Receive FIFO Data Register"]
290    #[inline(always)]
291    pub const fn frdrhl(&self) -> &'static crate::common::Reg<self::Frdrhl_SPEC, crate::common::R> {
292        unsafe {
293            crate::common::Reg::<self::Frdrhl_SPEC, crate::common::R>::from_ptr(
294                self._svd2pac_as_ptr().add(16usize),
295            )
296        }
297    }
298
299    #[doc = "Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
300    #[inline(always)]
301    pub const fn rdrhl(&self) -> &'static crate::common::Reg<self::Rdrhl_SPEC, crate::common::R> {
302        unsafe {
303            crate::common::Reg::<self::Rdrhl_SPEC, crate::common::R>::from_ptr(
304                self._svd2pac_as_ptr().add(16usize),
305            )
306        }
307    }
308
309    #[doc = "Receive Data Register for Manchester mode (MMR.MANEN = 1)"]
310    #[inline(always)]
311    pub const fn rdrhl_man(
312        &self,
313    ) -> &'static crate::common::Reg<self::RdrhlMan_SPEC, crate::common::R> {
314        unsafe {
315            crate::common::Reg::<self::RdrhlMan_SPEC, crate::common::R>::from_ptr(
316                self._svd2pac_as_ptr().add(16usize),
317            )
318        }
319    }
320
321    #[doc = "Receive FIFO Data Register"]
322    #[inline(always)]
323    pub const fn frdrh(&self) -> &'static crate::common::Reg<self::Frdrh_SPEC, crate::common::R> {
324        unsafe {
325            crate::common::Reg::<self::Frdrh_SPEC, crate::common::R>::from_ptr(
326                self._svd2pac_as_ptr().add(16usize),
327            )
328        }
329    }
330
331    #[doc = "Receive FIFO Data Register"]
332    #[inline(always)]
333    pub const fn frdrl(&self) -> &'static crate::common::Reg<self::Frdrl_SPEC, crate::common::R> {
334        unsafe {
335            crate::common::Reg::<self::Frdrl_SPEC, crate::common::R>::from_ptr(
336                self._svd2pac_as_ptr().add(17usize),
337            )
338        }
339    }
340
341    #[doc = "Modulation Duty Register"]
342    #[inline(always)]
343    pub const fn mddr(&self) -> &'static crate::common::Reg<self::Mddr_SPEC, crate::common::RW> {
344        unsafe {
345            crate::common::Reg::<self::Mddr_SPEC, crate::common::RW>::from_ptr(
346                self._svd2pac_as_ptr().add(18usize),
347            )
348        }
349    }
350
351    #[doc = "Data Compare Match Control Register"]
352    #[inline(always)]
353    pub const fn dccr(&self) -> &'static crate::common::Reg<self::Dccr_SPEC, crate::common::RW> {
354        unsafe {
355            crate::common::Reg::<self::Dccr_SPEC, crate::common::RW>::from_ptr(
356                self._svd2pac_as_ptr().add(19usize),
357            )
358        }
359    }
360
361    #[doc = "FIFO Control Register"]
362    #[inline(always)]
363    pub const fn fcr(&self) -> &'static crate::common::Reg<self::Fcr_SPEC, crate::common::RW> {
364        unsafe {
365            crate::common::Reg::<self::Fcr_SPEC, crate::common::RW>::from_ptr(
366                self._svd2pac_as_ptr().add(20usize),
367            )
368        }
369    }
370
371    #[doc = "FIFO Data Count Register"]
372    #[inline(always)]
373    pub const fn fdr(&self) -> &'static crate::common::Reg<self::Fdr_SPEC, crate::common::R> {
374        unsafe {
375            crate::common::Reg::<self::Fdr_SPEC, crate::common::R>::from_ptr(
376                self._svd2pac_as_ptr().add(22usize),
377            )
378        }
379    }
380
381    #[doc = "Line Status Register"]
382    #[inline(always)]
383    pub const fn lsr(&self) -> &'static crate::common::Reg<self::Lsr_SPEC, crate::common::R> {
384        unsafe {
385            crate::common::Reg::<self::Lsr_SPEC, crate::common::R>::from_ptr(
386                self._svd2pac_as_ptr().add(24usize),
387            )
388        }
389    }
390
391    #[doc = "Compare Match Data Register"]
392    #[inline(always)]
393    pub const fn cdr(&self) -> &'static crate::common::Reg<self::Cdr_SPEC, crate::common::RW> {
394        unsafe {
395            crate::common::Reg::<self::Cdr_SPEC, crate::common::RW>::from_ptr(
396                self._svd2pac_as_ptr().add(26usize),
397            )
398        }
399    }
400
401    #[doc = "Serial Port Register"]
402    #[inline(always)]
403    pub const fn sptr(&self) -> &'static crate::common::Reg<self::Sptr_SPEC, crate::common::RW> {
404        unsafe {
405            crate::common::Reg::<self::Sptr_SPEC, crate::common::RW>::from_ptr(
406                self._svd2pac_as_ptr().add(28usize),
407            )
408        }
409    }
410
411    #[doc = "Adjustment Communication Timing Register"]
412    #[inline(always)]
413    pub const fn actr(&self) -> &'static crate::common::Reg<self::Actr_SPEC, crate::common::RW> {
414        unsafe {
415            crate::common::Reg::<self::Actr_SPEC, crate::common::RW>::from_ptr(
416                self._svd2pac_as_ptr().add(29usize),
417            )
418        }
419    }
420
421    #[doc = "Manchester Mode Register"]
422    #[inline(always)]
423    pub const fn mmr(&self) -> &'static crate::common::Reg<self::Mmr_SPEC, crate::common::RW> {
424        unsafe {
425            crate::common::Reg::<self::Mmr_SPEC, crate::common::RW>::from_ptr(
426                self._svd2pac_as_ptr().add(32usize),
427            )
428        }
429    }
430
431    #[doc = "Transmit Manchester Preface Setting Register"]
432    #[inline(always)]
433    pub const fn tmpr(&self) -> &'static crate::common::Reg<self::Tmpr_SPEC, crate::common::RW> {
434        unsafe {
435            crate::common::Reg::<self::Tmpr_SPEC, crate::common::RW>::from_ptr(
436                self._svd2pac_as_ptr().add(34usize),
437            )
438        }
439    }
440
441    #[doc = "Receive Manchester Preface Setting Register"]
442    #[inline(always)]
443    pub const fn rmpr(&self) -> &'static crate::common::Reg<self::Rmpr_SPEC, crate::common::RW> {
444        unsafe {
445            crate::common::Reg::<self::Rmpr_SPEC, crate::common::RW>::from_ptr(
446                self._svd2pac_as_ptr().add(35usize),
447            )
448        }
449    }
450
451    #[doc = "Manchester Extended Error Status Register"]
452    #[inline(always)]
453    pub const fn mesr(&self) -> &'static crate::common::Reg<self::Mesr_SPEC, crate::common::RW> {
454        unsafe {
455            crate::common::Reg::<self::Mesr_SPEC, crate::common::RW>::from_ptr(
456                self._svd2pac_as_ptr().add(36usize),
457            )
458        }
459    }
460
461    #[doc = "Manchester Extended Error Control Register"]
462    #[inline(always)]
463    pub const fn mecr(&self) -> &'static crate::common::Reg<self::Mecr_SPEC, crate::common::RW> {
464        unsafe {
465            crate::common::Reg::<self::Mecr_SPEC, crate::common::RW>::from_ptr(
466                self._svd2pac_as_ptr().add(37usize),
467            )
468        }
469    }
470}
471#[doc(hidden)]
472#[derive(Copy, Clone, Eq, PartialEq)]
473pub struct Smr_SPEC;
474impl crate::sealed::RegSpec for Smr_SPEC {
475    type DataType = u8;
476}
477
478#[doc = "Serial Mode Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
479pub type Smr = crate::RegValueT<Smr_SPEC>;
480
481impl Smr {
482    #[doc = "Clock Select"]
483    #[inline(always)]
484    pub fn cks(
485        self,
486    ) -> crate::common::RegisterField<0, 0x3, 1, 0, smr::Cks, smr::Cks, Smr_SPEC, crate::common::RW>
487    {
488        crate::common::RegisterField::<0,0x3,1,0,smr::Cks,smr::Cks,Smr_SPEC,crate::common::RW>::from_register(self,0)
489    }
490
491    #[doc = "Multi-Processor Mode"]
492    #[inline(always)]
493    pub fn mp(
494        self,
495    ) -> crate::common::RegisterField<2, 0x1, 1, 0, smr::Mp, smr::Mp, Smr_SPEC, crate::common::RW>
496    {
497        crate::common::RegisterField::<2,0x1,1,0,smr::Mp,smr::Mp,Smr_SPEC,crate::common::RW>::from_register(self,0)
498    }
499
500    #[doc = "Stop Bit Length"]
501    #[inline(always)]
502    pub fn stop(
503        self,
504    ) -> crate::common::RegisterField<3, 0x1, 1, 0, smr::Stop, smr::Stop, Smr_SPEC, crate::common::RW>
505    {
506        crate::common::RegisterField::<
507            3,
508            0x1,
509            1,
510            0,
511            smr::Stop,
512            smr::Stop,
513            Smr_SPEC,
514            crate::common::RW,
515        >::from_register(self, 0)
516    }
517
518    #[doc = "Parity Mode"]
519    #[inline(always)]
520    pub fn pm(
521        self,
522    ) -> crate::common::RegisterField<4, 0x1, 1, 0, smr::Pm, smr::Pm, Smr_SPEC, crate::common::RW>
523    {
524        crate::common::RegisterField::<4,0x1,1,0,smr::Pm,smr::Pm,Smr_SPEC,crate::common::RW>::from_register(self,0)
525    }
526
527    #[doc = "Parity Enable"]
528    #[inline(always)]
529    pub fn pe(
530        self,
531    ) -> crate::common::RegisterField<5, 0x1, 1, 0, smr::Pe, smr::Pe, Smr_SPEC, crate::common::RW>
532    {
533        crate::common::RegisterField::<5,0x1,1,0,smr::Pe,smr::Pe,Smr_SPEC,crate::common::RW>::from_register(self,0)
534    }
535
536    #[doc = "Character Length"]
537    #[inline(always)]
538    pub fn chr(
539        self,
540    ) -> crate::common::RegisterField<6, 0x1, 1, 0, smr::Chr, smr::Chr, Smr_SPEC, crate::common::RW>
541    {
542        crate::common::RegisterField::<6,0x1,1,0,smr::Chr,smr::Chr,Smr_SPEC,crate::common::RW>::from_register(self,0)
543    }
544
545    #[doc = "Communication Mode"]
546    #[inline(always)]
547    pub fn cm(
548        self,
549    ) -> crate::common::RegisterField<7, 0x1, 1, 0, smr::Cm, smr::Cm, Smr_SPEC, crate::common::RW>
550    {
551        crate::common::RegisterField::<7,0x1,1,0,smr::Cm,smr::Cm,Smr_SPEC,crate::common::RW>::from_register(self,0)
552    }
553}
554impl ::core::default::Default for Smr {
555    #[inline(always)]
556    fn default() -> Smr {
557        <crate::RegValueT<Smr_SPEC> as RegisterValue<_>>::new(0)
558    }
559}
560pub mod smr {
561
562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
563    pub struct Cks_SPEC;
564    pub type Cks = crate::EnumBitfieldStruct<u8, Cks_SPEC>;
565    impl Cks {
566        #[doc = "PCLK clock (n = 0)"]
567        pub const _00: Self = Self::new(0);
568
569        #[doc = "PCLK/4 clock (n = 1)"]
570        pub const _01: Self = Self::new(1);
571
572        #[doc = "PCLK/16 clock (n = 2)"]
573        pub const _10: Self = Self::new(2);
574
575        #[doc = "PCLK/64 clock (n = 3)"]
576        pub const _11: Self = Self::new(3);
577    }
578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
579    pub struct Mp_SPEC;
580    pub type Mp = crate::EnumBitfieldStruct<u8, Mp_SPEC>;
581    impl Mp {
582        #[doc = "Disable multi-processor communications function"]
583        pub const _0: Self = Self::new(0);
584
585        #[doc = "Enable multi-processor communications function"]
586        pub const _1: Self = Self::new(1);
587    }
588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
589    pub struct Stop_SPEC;
590    pub type Stop = crate::EnumBitfieldStruct<u8, Stop_SPEC>;
591    impl Stop {
592        #[doc = "1 stop bit"]
593        pub const _0: Self = Self::new(0);
594
595        #[doc = "2 stop bits"]
596        pub const _1: Self = Self::new(1);
597    }
598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
599    pub struct Pm_SPEC;
600    pub type Pm = crate::EnumBitfieldStruct<u8, Pm_SPEC>;
601    impl Pm {
602        #[doc = "Even parity"]
603        pub const _0: Self = Self::new(0);
604
605        #[doc = "Odd parity"]
606        pub const _1: Self = Self::new(1);
607    }
608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
609    pub struct Pe_SPEC;
610    pub type Pe = crate::EnumBitfieldStruct<u8, Pe_SPEC>;
611    impl Pe {
612        #[doc = "When transmitting: Do not add parity bit When receiving: Do not check parity bit"]
613        pub const _0: Self = Self::new(0);
614
615        #[doc = "When transmitting: Add parity bit When receiving: Check parity bit"]
616        pub const _1: Self = Self::new(1);
617    }
618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
619    pub struct Chr_SPEC;
620    pub type Chr = crate::EnumBitfieldStruct<u8, Chr_SPEC>;
621    impl Chr {
622        #[doc = "SCMR.CHR1 = 0: Transmit/receive in 9-bit data length SCMR.CHR1 = 1: Transmit/receive in 8-bit data length (initial value)"]
623        pub const _0: Self = Self::new(0);
624
625        #[doc = "SCMR.CHR1 = 0: Transmit/receive in 9-bit data length SCMR.CHR1 = 1: Transmit/receive in 7-bit data length"]
626        pub const _1: Self = Self::new(1);
627    }
628    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
629    pub struct Cm_SPEC;
630    pub type Cm = crate::EnumBitfieldStruct<u8, Cm_SPEC>;
631    impl Cm {
632        #[doc = "Asynchronous mode or simple IIC mode"]
633        pub const _0: Self = Self::new(0);
634
635        #[doc = "Clock synchronous mode or simple SPI mode"]
636        pub const _1: Self = Self::new(1);
637    }
638}
639#[doc(hidden)]
640#[derive(Copy, Clone, Eq, PartialEq)]
641pub struct SmrSmci_SPEC;
642impl crate::sealed::RegSpec for SmrSmci_SPEC {
643    type DataType = u8;
644}
645
646#[doc = "Serial Mode Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
647pub type SmrSmci = crate::RegValueT<SmrSmci_SPEC>;
648
649impl SmrSmci {
650    #[doc = "Clock Select"]
651    #[inline(always)]
652    pub fn cks(
653        self,
654    ) -> crate::common::RegisterField<
655        0,
656        0x3,
657        1,
658        0,
659        smr_smci::Cks,
660        smr_smci::Cks,
661        SmrSmci_SPEC,
662        crate::common::RW,
663    > {
664        crate::common::RegisterField::<
665            0,
666            0x3,
667            1,
668            0,
669            smr_smci::Cks,
670            smr_smci::Cks,
671            SmrSmci_SPEC,
672            crate::common::RW,
673        >::from_register(self, 0)
674    }
675
676    #[doc = "Base Clock Pulse"]
677    #[inline(always)]
678    pub fn bcp(
679        self,
680    ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, SmrSmci_SPEC, crate::common::RW> {
681        crate::common::RegisterField::<2,0x3,1,0,u8,u8,SmrSmci_SPEC,crate::common::RW>::from_register(self,0)
682    }
683
684    #[doc = "Parity Mode"]
685    #[inline(always)]
686    pub fn pm(
687        self,
688    ) -> crate::common::RegisterField<
689        4,
690        0x1,
691        1,
692        0,
693        smr_smci::Pm,
694        smr_smci::Pm,
695        SmrSmci_SPEC,
696        crate::common::RW,
697    > {
698        crate::common::RegisterField::<
699            4,
700            0x1,
701            1,
702            0,
703            smr_smci::Pm,
704            smr_smci::Pm,
705            SmrSmci_SPEC,
706            crate::common::RW,
707        >::from_register(self, 0)
708    }
709
710    #[doc = "Parity Enable"]
711    #[inline(always)]
712    pub fn pe(self) -> crate::common::RegisterFieldBool<5, 1, 0, SmrSmci_SPEC, crate::common::RW> {
713        crate::common::RegisterFieldBool::<5, 1, 0, SmrSmci_SPEC, crate::common::RW>::from_register(
714            self, 0,
715        )
716    }
717
718    #[doc = "Block Transfer Mode"]
719    #[inline(always)]
720    pub fn blk(
721        self,
722    ) -> crate::common::RegisterField<
723        6,
724        0x1,
725        1,
726        0,
727        smr_smci::Blk,
728        smr_smci::Blk,
729        SmrSmci_SPEC,
730        crate::common::RW,
731    > {
732        crate::common::RegisterField::<
733            6,
734            0x1,
735            1,
736            0,
737            smr_smci::Blk,
738            smr_smci::Blk,
739            SmrSmci_SPEC,
740            crate::common::RW,
741        >::from_register(self, 0)
742    }
743
744    #[doc = "GSM Mode"]
745    #[inline(always)]
746    pub fn gm(
747        self,
748    ) -> crate::common::RegisterField<
749        7,
750        0x1,
751        1,
752        0,
753        smr_smci::Gm,
754        smr_smci::Gm,
755        SmrSmci_SPEC,
756        crate::common::RW,
757    > {
758        crate::common::RegisterField::<
759            7,
760            0x1,
761            1,
762            0,
763            smr_smci::Gm,
764            smr_smci::Gm,
765            SmrSmci_SPEC,
766            crate::common::RW,
767        >::from_register(self, 0)
768    }
769}
770impl ::core::default::Default for SmrSmci {
771    #[inline(always)]
772    fn default() -> SmrSmci {
773        <crate::RegValueT<SmrSmci_SPEC> as RegisterValue<_>>::new(0)
774    }
775}
776pub mod smr_smci {
777
778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
779    pub struct Cks_SPEC;
780    pub type Cks = crate::EnumBitfieldStruct<u8, Cks_SPEC>;
781    impl Cks {
782        #[doc = "PCLK clock (n = 0)"]
783        pub const _00: Self = Self::new(0);
784
785        #[doc = "PCLK/4 clock (n = 1)"]
786        pub const _01: Self = Self::new(1);
787
788        #[doc = "PCLK/16 clock (n = 2)"]
789        pub const _10: Self = Self::new(2);
790
791        #[doc = "PCLK/64 clock (n = 3)"]
792        pub const _11: Self = Self::new(3);
793    }
794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
795    pub struct Pm_SPEC;
796    pub type Pm = crate::EnumBitfieldStruct<u8, Pm_SPEC>;
797    impl Pm {
798        #[doc = "Even parity"]
799        pub const _0: Self = Self::new(0);
800
801        #[doc = "Odd parity"]
802        pub const _1: Self = Self::new(1);
803    }
804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
805    pub struct Blk_SPEC;
806    pub type Blk = crate::EnumBitfieldStruct<u8, Blk_SPEC>;
807    impl Blk {
808        #[doc = "Normal mode operation"]
809        pub const _0: Self = Self::new(0);
810
811        #[doc = "Block transfer mode operation"]
812        pub const _1: Self = Self::new(1);
813    }
814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
815    pub struct Gm_SPEC;
816    pub type Gm = crate::EnumBitfieldStruct<u8, Gm_SPEC>;
817    impl Gm {
818        #[doc = "Normal mode operation"]
819        pub const _0: Self = Self::new(0);
820
821        #[doc = "GSM mode operation"]
822        pub const _1: Self = Self::new(1);
823    }
824}
825#[doc(hidden)]
826#[derive(Copy, Clone, Eq, PartialEq)]
827pub struct Brr_SPEC;
828impl crate::sealed::RegSpec for Brr_SPEC {
829    type DataType = u8;
830}
831
832#[doc = "Bit Rate Register"]
833pub type Brr = crate::RegValueT<Brr_SPEC>;
834
835impl NoBitfieldReg<Brr_SPEC> for Brr {}
836impl ::core::default::Default for Brr {
837    #[inline(always)]
838    fn default() -> Brr {
839        <crate::RegValueT<Brr_SPEC> as RegisterValue<_>>::new(255)
840    }
841}
842
843#[doc(hidden)]
844#[derive(Copy, Clone, Eq, PartialEq)]
845pub struct Scr_SPEC;
846impl crate::sealed::RegSpec for Scr_SPEC {
847    type DataType = u8;
848}
849
850#[doc = "Serial Control Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
851pub type Scr = crate::RegValueT<Scr_SPEC>;
852
853impl Scr {
854    #[doc = "Clock Enable"]
855    #[inline(always)]
856    pub fn cke(
857        self,
858    ) -> crate::common::RegisterField<0, 0x3, 1, 0, scr::Cke, scr::Cke, Scr_SPEC, crate::common::RW>
859    {
860        crate::common::RegisterField::<0,0x3,1,0,scr::Cke,scr::Cke,Scr_SPEC,crate::common::RW>::from_register(self,0)
861    }
862
863    #[doc = "Transmit End Interrupt Enable"]
864    #[inline(always)]
865    pub fn teie(
866        self,
867    ) -> crate::common::RegisterField<2, 0x1, 1, 0, scr::Teie, scr::Teie, Scr_SPEC, crate::common::RW>
868    {
869        crate::common::RegisterField::<
870            2,
871            0x1,
872            1,
873            0,
874            scr::Teie,
875            scr::Teie,
876            Scr_SPEC,
877            crate::common::RW,
878        >::from_register(self, 0)
879    }
880
881    #[doc = "Multi-Processor Interrupt Enable"]
882    #[inline(always)]
883    pub fn mpie(
884        self,
885    ) -> crate::common::RegisterField<3, 0x1, 1, 0, scr::Mpie, scr::Mpie, Scr_SPEC, crate::common::RW>
886    {
887        crate::common::RegisterField::<
888            3,
889            0x1,
890            1,
891            0,
892            scr::Mpie,
893            scr::Mpie,
894            Scr_SPEC,
895            crate::common::RW,
896        >::from_register(self, 0)
897    }
898
899    #[doc = "Receive Enable"]
900    #[inline(always)]
901    pub fn re(
902        self,
903    ) -> crate::common::RegisterField<4, 0x1, 1, 0, scr::Re, scr::Re, Scr_SPEC, crate::common::RW>
904    {
905        crate::common::RegisterField::<4,0x1,1,0,scr::Re,scr::Re,Scr_SPEC,crate::common::RW>::from_register(self,0)
906    }
907
908    #[doc = "Transmit Enable"]
909    #[inline(always)]
910    pub fn te(
911        self,
912    ) -> crate::common::RegisterField<5, 0x1, 1, 0, scr::Te, scr::Te, Scr_SPEC, crate::common::RW>
913    {
914        crate::common::RegisterField::<5,0x1,1,0,scr::Te,scr::Te,Scr_SPEC,crate::common::RW>::from_register(self,0)
915    }
916
917    #[doc = "Receive Interrupt Enable"]
918    #[inline(always)]
919    pub fn rie(
920        self,
921    ) -> crate::common::RegisterField<6, 0x1, 1, 0, scr::Rie, scr::Rie, Scr_SPEC, crate::common::RW>
922    {
923        crate::common::RegisterField::<6,0x1,1,0,scr::Rie,scr::Rie,Scr_SPEC,crate::common::RW>::from_register(self,0)
924    }
925
926    #[doc = "Transmit Interrupt Enable"]
927    #[inline(always)]
928    pub fn tie(
929        self,
930    ) -> crate::common::RegisterField<7, 0x1, 1, 0, scr::Tie, scr::Tie, Scr_SPEC, crate::common::RW>
931    {
932        crate::common::RegisterField::<7,0x1,1,0,scr::Tie,scr::Tie,Scr_SPEC,crate::common::RW>::from_register(self,0)
933    }
934}
935impl ::core::default::Default for Scr {
936    #[inline(always)]
937    fn default() -> Scr {
938        <crate::RegValueT<Scr_SPEC> as RegisterValue<_>>::new(0)
939    }
940}
941pub mod scr {
942
943    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
944    pub struct Cke_SPEC;
945    pub type Cke = crate::EnumBitfieldStruct<u8, Cke_SPEC>;
946    impl Cke {
947        #[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."]
948        pub const _00: Self = Self::new(0);
949
950        #[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."]
951        pub const _01: Self = Self::new(1);
952    }
953    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
954    pub struct Teie_SPEC;
955    pub type Teie = crate::EnumBitfieldStruct<u8, Teie_SPEC>;
956    impl Teie {
957        #[doc = "Disable SCIn_TEI interrupt requests"]
958        pub const _0: Self = Self::new(0);
959
960        #[doc = "Enable SCIn_TEI interrupt requests"]
961        pub const _1: Self = Self::new(1);
962    }
963    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
964    pub struct Mpie_SPEC;
965    pub type Mpie = crate::EnumBitfieldStruct<u8, Mpie_SPEC>;
966    impl Mpie {
967        #[doc = "Normal reception"]
968        pub const _0: Self = Self::new(0);
969
970        #[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."]
971        pub const _1: Self = Self::new(1);
972    }
973    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
974    pub struct Re_SPEC;
975    pub type Re = crate::EnumBitfieldStruct<u8, Re_SPEC>;
976    impl Re {
977        #[doc = "Disable serial reception"]
978        pub const _0: Self = Self::new(0);
979
980        #[doc = "Enable serial reception"]
981        pub const _1: Self = Self::new(1);
982    }
983    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
984    pub struct Te_SPEC;
985    pub type Te = crate::EnumBitfieldStruct<u8, Te_SPEC>;
986    impl Te {
987        #[doc = "Disable serial transmission"]
988        pub const _0: Self = Self::new(0);
989
990        #[doc = "Enable serial transmission"]
991        pub const _1: Self = Self::new(1);
992    }
993    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
994    pub struct Rie_SPEC;
995    pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
996    impl Rie {
997        #[doc = "Disable SCIn_RXI and SCIn_ERI interrupt requests"]
998        pub const _0: Self = Self::new(0);
999
1000        #[doc = "Enable SCIn_RXI and SCIn_ERI interrupt requests"]
1001        pub const _1: Self = Self::new(1);
1002    }
1003    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1004    pub struct Tie_SPEC;
1005    pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
1006    impl Tie {
1007        #[doc = "Disable SCIn_TXI interrupt requests"]
1008        pub const _0: Self = Self::new(0);
1009
1010        #[doc = "Enable SCIn_TXI interrupt requests"]
1011        pub const _1: Self = Self::new(1);
1012    }
1013}
1014#[doc(hidden)]
1015#[derive(Copy, Clone, Eq, PartialEq)]
1016pub struct ScrSmci_SPEC;
1017impl crate::sealed::RegSpec for ScrSmci_SPEC {
1018    type DataType = u8;
1019}
1020
1021#[doc = "Serial Control Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
1022pub type ScrSmci = crate::RegValueT<ScrSmci_SPEC>;
1023
1024impl ScrSmci {
1025    #[doc = "Clock Enable"]
1026    #[inline(always)]
1027    pub fn cke(
1028        self,
1029    ) -> crate::common::RegisterField<
1030        0,
1031        0x3,
1032        1,
1033        0,
1034        scr_smci::Cke,
1035        scr_smci::Cke,
1036        ScrSmci_SPEC,
1037        crate::common::RW,
1038    > {
1039        crate::common::RegisterField::<
1040            0,
1041            0x3,
1042            1,
1043            0,
1044            scr_smci::Cke,
1045            scr_smci::Cke,
1046            ScrSmci_SPEC,
1047            crate::common::RW,
1048        >::from_register(self, 0)
1049    }
1050
1051    #[doc = "Transmit End Interrupt Enable"]
1052    #[inline(always)]
1053    pub fn teie(
1054        self,
1055    ) -> crate::common::RegisterFieldBool<2, 1, 0, ScrSmci_SPEC, crate::common::RW> {
1056        crate::common::RegisterFieldBool::<2, 1, 0, ScrSmci_SPEC, crate::common::RW>::from_register(
1057            self, 0,
1058        )
1059    }
1060
1061    #[doc = "Multi-Processor Interrupt Enable"]
1062    #[inline(always)]
1063    pub fn mpie(
1064        self,
1065    ) -> crate::common::RegisterFieldBool<3, 1, 0, ScrSmci_SPEC, crate::common::RW> {
1066        crate::common::RegisterFieldBool::<3, 1, 0, ScrSmci_SPEC, crate::common::RW>::from_register(
1067            self, 0,
1068        )
1069    }
1070
1071    #[doc = "Receive Enable"]
1072    #[inline(always)]
1073    pub fn re(
1074        self,
1075    ) -> crate::common::RegisterField<
1076        4,
1077        0x1,
1078        1,
1079        0,
1080        scr_smci::Re,
1081        scr_smci::Re,
1082        ScrSmci_SPEC,
1083        crate::common::RW,
1084    > {
1085        crate::common::RegisterField::<
1086            4,
1087            0x1,
1088            1,
1089            0,
1090            scr_smci::Re,
1091            scr_smci::Re,
1092            ScrSmci_SPEC,
1093            crate::common::RW,
1094        >::from_register(self, 0)
1095    }
1096
1097    #[doc = "Transmit Enable"]
1098    #[inline(always)]
1099    pub fn te(
1100        self,
1101    ) -> crate::common::RegisterField<
1102        5,
1103        0x1,
1104        1,
1105        0,
1106        scr_smci::Te,
1107        scr_smci::Te,
1108        ScrSmci_SPEC,
1109        crate::common::RW,
1110    > {
1111        crate::common::RegisterField::<
1112            5,
1113            0x1,
1114            1,
1115            0,
1116            scr_smci::Te,
1117            scr_smci::Te,
1118            ScrSmci_SPEC,
1119            crate::common::RW,
1120        >::from_register(self, 0)
1121    }
1122
1123    #[doc = "Receive Interrupt Enable"]
1124    #[inline(always)]
1125    pub fn rie(
1126        self,
1127    ) -> crate::common::RegisterField<
1128        6,
1129        0x1,
1130        1,
1131        0,
1132        scr_smci::Rie,
1133        scr_smci::Rie,
1134        ScrSmci_SPEC,
1135        crate::common::RW,
1136    > {
1137        crate::common::RegisterField::<
1138            6,
1139            0x1,
1140            1,
1141            0,
1142            scr_smci::Rie,
1143            scr_smci::Rie,
1144            ScrSmci_SPEC,
1145            crate::common::RW,
1146        >::from_register(self, 0)
1147    }
1148
1149    #[doc = "Transmit Interrupt Enable"]
1150    #[inline(always)]
1151    pub fn tie(
1152        self,
1153    ) -> crate::common::RegisterField<
1154        7,
1155        0x1,
1156        1,
1157        0,
1158        scr_smci::Tie,
1159        scr_smci::Tie,
1160        ScrSmci_SPEC,
1161        crate::common::RW,
1162    > {
1163        crate::common::RegisterField::<
1164            7,
1165            0x1,
1166            1,
1167            0,
1168            scr_smci::Tie,
1169            scr_smci::Tie,
1170            ScrSmci_SPEC,
1171            crate::common::RW,
1172        >::from_register(self, 0)
1173    }
1174}
1175impl ::core::default::Default for ScrSmci {
1176    #[inline(always)]
1177    fn default() -> ScrSmci {
1178        <crate::RegValueT<ScrSmci_SPEC> as RegisterValue<_>>::new(0)
1179    }
1180}
1181pub mod scr_smci {
1182
1183    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1184    pub struct Cke_SPEC;
1185    pub type Cke = crate::EnumBitfieldStruct<u8, Cke_SPEC>;
1186    impl Cke {
1187        #[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"]
1188        pub const _00: Self = Self::new(0);
1189
1190        #[doc = "When SMR_SMCI.GM = 0: Output clock When SMR_SMCI.GM = 1: Output clock"]
1191        pub const _01: Self = Self::new(1);
1192
1193        #[doc = "When SMR_SMCI.GM = 0: Setting prohibited When SMR_SMCI.GM = 1: Fix output high"]
1194        pub const _10: Self = Self::new(2);
1195
1196        #[doc = "When SMR_SMCI.GM = 0: Setting prohibited When SMR_SMCI.GM = 1: Output clock"]
1197        pub const _11: Self = Self::new(3);
1198    }
1199    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1200    pub struct Re_SPEC;
1201    pub type Re = crate::EnumBitfieldStruct<u8, Re_SPEC>;
1202    impl Re {
1203        #[doc = "Disable serial reception"]
1204        pub const _0: Self = Self::new(0);
1205
1206        #[doc = "Enable serial reception"]
1207        pub const _1: Self = Self::new(1);
1208    }
1209    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1210    pub struct Te_SPEC;
1211    pub type Te = crate::EnumBitfieldStruct<u8, Te_SPEC>;
1212    impl Te {
1213        #[doc = "Disable serial transmission"]
1214        pub const _0: Self = Self::new(0);
1215
1216        #[doc = "Enable serial transmission"]
1217        pub const _1: Self = Self::new(1);
1218    }
1219    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1220    pub struct Rie_SPEC;
1221    pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
1222    impl Rie {
1223        #[doc = "Disable SCIn_RXI and SCIn_ERI interrupt requests"]
1224        pub const _0: Self = Self::new(0);
1225
1226        #[doc = "Enable SCIn_RXI and SCIn_ERI interrupt requests"]
1227        pub const _1: Self = Self::new(1);
1228    }
1229    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1230    pub struct Tie_SPEC;
1231    pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
1232    impl Tie {
1233        #[doc = "Disable SCIn_TXI interrupt requests"]
1234        pub const _0: Self = Self::new(0);
1235
1236        #[doc = "Enable SCIn_TXI interrupt requests"]
1237        pub const _1: Self = Self::new(1);
1238    }
1239}
1240#[doc(hidden)]
1241#[derive(Copy, Clone, Eq, PartialEq)]
1242pub struct Tdr_SPEC;
1243impl crate::sealed::RegSpec for Tdr_SPEC {
1244    type DataType = u8;
1245}
1246
1247#[doc = "Transmit Data Register"]
1248pub type Tdr = crate::RegValueT<Tdr_SPEC>;
1249
1250impl NoBitfieldReg<Tdr_SPEC> for Tdr {}
1251impl ::core::default::Default for Tdr {
1252    #[inline(always)]
1253    fn default() -> Tdr {
1254        <crate::RegValueT<Tdr_SPEC> as RegisterValue<_>>::new(255)
1255    }
1256}
1257
1258#[doc(hidden)]
1259#[derive(Copy, Clone, Eq, PartialEq)]
1260pub struct Ssr_SPEC;
1261impl crate::sealed::RegSpec for Ssr_SPEC {
1262    type DataType = u8;
1263}
1264
1265#[doc = "Serial Status Register for Non-Smart Card Interface and Non-FIFO Mode (SCMR.SMIF = 0, FCR.FM = 0, and MMR.MANEN = 0)"]
1266pub type Ssr = crate::RegValueT<Ssr_SPEC>;
1267
1268impl Ssr {
1269    #[doc = "Multi-Processor Bit Transfer"]
1270    #[inline(always)]
1271    pub fn mpbt(
1272        self,
1273    ) -> crate::common::RegisterField<0, 0x1, 1, 0, ssr::Mpbt, ssr::Mpbt, Ssr_SPEC, crate::common::RW>
1274    {
1275        crate::common::RegisterField::<
1276            0,
1277            0x1,
1278            1,
1279            0,
1280            ssr::Mpbt,
1281            ssr::Mpbt,
1282            Ssr_SPEC,
1283            crate::common::RW,
1284        >::from_register(self, 0)
1285    }
1286
1287    #[doc = "Multi-Processor"]
1288    #[inline(always)]
1289    pub fn mpb(
1290        self,
1291    ) -> crate::common::RegisterField<1, 0x1, 1, 0, ssr::Mpb, ssr::Mpb, Ssr_SPEC, crate::common::R>
1292    {
1293        crate::common::RegisterField::<1,0x1,1,0,ssr::Mpb,ssr::Mpb,Ssr_SPEC,crate::common::R>::from_register(self,0)
1294    }
1295
1296    #[doc = "Transmit End Flag"]
1297    #[inline(always)]
1298    pub fn tend(
1299        self,
1300    ) -> crate::common::RegisterField<2, 0x1, 1, 0, ssr::Tend, ssr::Tend, Ssr_SPEC, crate::common::R>
1301    {
1302        crate::common::RegisterField::<2,0x1,1,0,ssr::Tend,ssr::Tend,Ssr_SPEC,crate::common::R>::from_register(self,0)
1303    }
1304
1305    #[doc = "Parity Error Flag"]
1306    #[inline(always)]
1307    pub fn per(
1308        self,
1309    ) -> crate::common::RegisterField<3, 0x1, 1, 0, ssr::Per, ssr::Per, Ssr_SPEC, crate::common::RW>
1310    {
1311        crate::common::RegisterField::<3,0x1,1,0,ssr::Per,ssr::Per,Ssr_SPEC,crate::common::RW>::from_register(self,0)
1312    }
1313
1314    #[doc = "Framing Error Flag"]
1315    #[inline(always)]
1316    pub fn fer(
1317        self,
1318    ) -> crate::common::RegisterField<4, 0x1, 1, 0, ssr::Fer, ssr::Fer, Ssr_SPEC, crate::common::RW>
1319    {
1320        crate::common::RegisterField::<4,0x1,1,0,ssr::Fer,ssr::Fer,Ssr_SPEC,crate::common::RW>::from_register(self,0)
1321    }
1322
1323    #[doc = "Overrun Error Flag"]
1324    #[inline(always)]
1325    pub fn orer(
1326        self,
1327    ) -> crate::common::RegisterField<5, 0x1, 1, 0, ssr::Orer, ssr::Orer, Ssr_SPEC, crate::common::RW>
1328    {
1329        crate::common::RegisterField::<
1330            5,
1331            0x1,
1332            1,
1333            0,
1334            ssr::Orer,
1335            ssr::Orer,
1336            Ssr_SPEC,
1337            crate::common::RW,
1338        >::from_register(self, 0)
1339    }
1340
1341    #[doc = "Receive Data Full Flag"]
1342    #[inline(always)]
1343    pub fn rdrf(
1344        self,
1345    ) -> crate::common::RegisterField<6, 0x1, 1, 0, ssr::Rdrf, ssr::Rdrf, Ssr_SPEC, crate::common::RW>
1346    {
1347        crate::common::RegisterField::<
1348            6,
1349            0x1,
1350            1,
1351            0,
1352            ssr::Rdrf,
1353            ssr::Rdrf,
1354            Ssr_SPEC,
1355            crate::common::RW,
1356        >::from_register(self, 0)
1357    }
1358
1359    #[doc = "Transmit Data Empty Flag"]
1360    #[inline(always)]
1361    pub fn tdre(
1362        self,
1363    ) -> crate::common::RegisterField<7, 0x1, 1, 0, ssr::Tdre, ssr::Tdre, Ssr_SPEC, crate::common::RW>
1364    {
1365        crate::common::RegisterField::<
1366            7,
1367            0x1,
1368            1,
1369            0,
1370            ssr::Tdre,
1371            ssr::Tdre,
1372            Ssr_SPEC,
1373            crate::common::RW,
1374        >::from_register(self, 0)
1375    }
1376}
1377impl ::core::default::Default for Ssr {
1378    #[inline(always)]
1379    fn default() -> Ssr {
1380        <crate::RegValueT<Ssr_SPEC> as RegisterValue<_>>::new(132)
1381    }
1382}
1383pub mod ssr {
1384
1385    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1386    pub struct Mpbt_SPEC;
1387    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
1388    impl Mpbt {
1389        #[doc = "Data transmission cycle"]
1390        pub const _0: Self = Self::new(0);
1391
1392        #[doc = "ID transmission cycle"]
1393        pub const _1: Self = Self::new(1);
1394    }
1395    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1396    pub struct Mpb_SPEC;
1397    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
1398    impl Mpb {
1399        #[doc = "Data transmission cycle"]
1400        pub const _0: Self = Self::new(0);
1401
1402        #[doc = "ID transmission cycle"]
1403        pub const _1: Self = Self::new(1);
1404    }
1405    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1406    pub struct Tend_SPEC;
1407    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
1408    impl Tend {
1409        #[doc = "A character is being transmitted"]
1410        pub const _0: Self = Self::new(0);
1411
1412        #[doc = "Character transfer is complete"]
1413        pub const _1: Self = Self::new(1);
1414    }
1415    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1416    pub struct Per_SPEC;
1417    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
1418    impl Per {
1419        #[doc = "No parity error occurred"]
1420        pub const _0: Self = Self::new(0);
1421
1422        #[doc = "Parity error occurred"]
1423        pub const _1: Self = Self::new(1);
1424    }
1425    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1426    pub struct Fer_SPEC;
1427    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
1428    impl Fer {
1429        #[doc = "No framing error occurred"]
1430        pub const _0: Self = Self::new(0);
1431
1432        #[doc = "Framing error occurred"]
1433        pub const _1: Self = Self::new(1);
1434    }
1435    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1436    pub struct Orer_SPEC;
1437    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
1438    impl Orer {
1439        #[doc = "No overrun error occurred"]
1440        pub const _0: Self = Self::new(0);
1441
1442        #[doc = "Overrun error occurred"]
1443        pub const _1: Self = Self::new(1);
1444    }
1445    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1446    pub struct Rdrf_SPEC;
1447    pub type Rdrf = crate::EnumBitfieldStruct<u8, Rdrf_SPEC>;
1448    impl Rdrf {
1449        #[doc = "No received data in RDR register"]
1450        pub const _0: Self = Self::new(0);
1451
1452        #[doc = "Received data in RDR register"]
1453        pub const _1: Self = Self::new(1);
1454    }
1455    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1456    pub struct Tdre_SPEC;
1457    pub type Tdre = crate::EnumBitfieldStruct<u8, Tdre_SPEC>;
1458    impl Tdre {
1459        #[doc = "Transmit data in TDR register"]
1460        pub const _0: Self = Self::new(0);
1461
1462        #[doc = "No transmit data in TDR register"]
1463        pub const _1: Self = Self::new(1);
1464    }
1465}
1466#[doc(hidden)]
1467#[derive(Copy, Clone, Eq, PartialEq)]
1468pub struct SsrFifo_SPEC;
1469impl crate::sealed::RegSpec for SsrFifo_SPEC {
1470    type DataType = u8;
1471}
1472
1473#[doc = "Serial Status Register for Non-Smart Card Interface and FIFO Mode (SCMR.SMIF = 0, FCR.FM = 1, and MMR.MANEN = 0)"]
1474pub type SsrFifo = crate::RegValueT<SsrFifo_SPEC>;
1475
1476impl SsrFifo {
1477    #[doc = "Receive Data Ready Flag"]
1478    #[inline(always)]
1479    pub fn dr(
1480        self,
1481    ) -> crate::common::RegisterField<
1482        0,
1483        0x1,
1484        1,
1485        0,
1486        ssr_fifo::Dr,
1487        ssr_fifo::Dr,
1488        SsrFifo_SPEC,
1489        crate::common::RW,
1490    > {
1491        crate::common::RegisterField::<
1492            0,
1493            0x1,
1494            1,
1495            0,
1496            ssr_fifo::Dr,
1497            ssr_fifo::Dr,
1498            SsrFifo_SPEC,
1499            crate::common::RW,
1500        >::from_register(self, 0)
1501    }
1502
1503    #[doc = "Transmit End Flag"]
1504    #[inline(always)]
1505    pub fn tend(
1506        self,
1507    ) -> crate::common::RegisterField<
1508        2,
1509        0x1,
1510        1,
1511        0,
1512        ssr_fifo::Tend,
1513        ssr_fifo::Tend,
1514        SsrFifo_SPEC,
1515        crate::common::RW,
1516    > {
1517        crate::common::RegisterField::<
1518            2,
1519            0x1,
1520            1,
1521            0,
1522            ssr_fifo::Tend,
1523            ssr_fifo::Tend,
1524            SsrFifo_SPEC,
1525            crate::common::RW,
1526        >::from_register(self, 0)
1527    }
1528
1529    #[doc = "Parity Error Flag"]
1530    #[inline(always)]
1531    pub fn per(
1532        self,
1533    ) -> crate::common::RegisterField<
1534        3,
1535        0x1,
1536        1,
1537        0,
1538        ssr_fifo::Per,
1539        ssr_fifo::Per,
1540        SsrFifo_SPEC,
1541        crate::common::RW,
1542    > {
1543        crate::common::RegisterField::<
1544            3,
1545            0x1,
1546            1,
1547            0,
1548            ssr_fifo::Per,
1549            ssr_fifo::Per,
1550            SsrFifo_SPEC,
1551            crate::common::RW,
1552        >::from_register(self, 0)
1553    }
1554
1555    #[doc = "Framing Error Flag"]
1556    #[inline(always)]
1557    pub fn fer(
1558        self,
1559    ) -> crate::common::RegisterField<
1560        4,
1561        0x1,
1562        1,
1563        0,
1564        ssr_fifo::Fer,
1565        ssr_fifo::Fer,
1566        SsrFifo_SPEC,
1567        crate::common::RW,
1568    > {
1569        crate::common::RegisterField::<
1570            4,
1571            0x1,
1572            1,
1573            0,
1574            ssr_fifo::Fer,
1575            ssr_fifo::Fer,
1576            SsrFifo_SPEC,
1577            crate::common::RW,
1578        >::from_register(self, 0)
1579    }
1580
1581    #[doc = "Overrun Error Flag"]
1582    #[inline(always)]
1583    pub fn orer(
1584        self,
1585    ) -> crate::common::RegisterField<
1586        5,
1587        0x1,
1588        1,
1589        0,
1590        ssr_fifo::Orer,
1591        ssr_fifo::Orer,
1592        SsrFifo_SPEC,
1593        crate::common::RW,
1594    > {
1595        crate::common::RegisterField::<
1596            5,
1597            0x1,
1598            1,
1599            0,
1600            ssr_fifo::Orer,
1601            ssr_fifo::Orer,
1602            SsrFifo_SPEC,
1603            crate::common::RW,
1604        >::from_register(self, 0)
1605    }
1606
1607    #[doc = "Receive FIFO Data Full Flag"]
1608    #[inline(always)]
1609    pub fn rdf(
1610        self,
1611    ) -> crate::common::RegisterField<
1612        6,
1613        0x1,
1614        1,
1615        0,
1616        ssr_fifo::Rdf,
1617        ssr_fifo::Rdf,
1618        SsrFifo_SPEC,
1619        crate::common::RW,
1620    > {
1621        crate::common::RegisterField::<
1622            6,
1623            0x1,
1624            1,
1625            0,
1626            ssr_fifo::Rdf,
1627            ssr_fifo::Rdf,
1628            SsrFifo_SPEC,
1629            crate::common::RW,
1630        >::from_register(self, 0)
1631    }
1632
1633    #[doc = "Transmit FIFO Data Empty Flag"]
1634    #[inline(always)]
1635    pub fn tdfe(
1636        self,
1637    ) -> crate::common::RegisterField<
1638        7,
1639        0x1,
1640        1,
1641        0,
1642        ssr_fifo::Tdfe,
1643        ssr_fifo::Tdfe,
1644        SsrFifo_SPEC,
1645        crate::common::RW,
1646    > {
1647        crate::common::RegisterField::<
1648            7,
1649            0x1,
1650            1,
1651            0,
1652            ssr_fifo::Tdfe,
1653            ssr_fifo::Tdfe,
1654            SsrFifo_SPEC,
1655            crate::common::RW,
1656        >::from_register(self, 0)
1657    }
1658}
1659impl ::core::default::Default for SsrFifo {
1660    #[inline(always)]
1661    fn default() -> SsrFifo {
1662        <crate::RegValueT<SsrFifo_SPEC> as RegisterValue<_>>::new(128)
1663    }
1664}
1665pub mod ssr_fifo {
1666
1667    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1668    pub struct Dr_SPEC;
1669    pub type Dr = crate::EnumBitfieldStruct<u8, Dr_SPEC>;
1670    impl Dr {
1671        #[doc = "Receiving is in progress, or no received data remains in FRDRHL after successfully completed reception (receive FIFO empty)"]
1672        pub const _0: Self = Self::new(0);
1673
1674        #[doc = "Next receive data is not received for a period after normal receiving is complete, when the amount of data stored in the FIFO is equal to or less than the receive triggering number"]
1675        pub const _1: Self = Self::new(1);
1676    }
1677    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1678    pub struct Tend_SPEC;
1679    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
1680    impl Tend {
1681        #[doc = "A character is being transmitted"]
1682        pub const _0: Self = Self::new(0);
1683
1684        #[doc = "Character transfer is complete"]
1685        pub const _1: Self = Self::new(1);
1686    }
1687    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1688    pub struct Per_SPEC;
1689    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
1690    impl Per {
1691        #[doc = "No parity error occurred"]
1692        pub const _0: Self = Self::new(0);
1693
1694        #[doc = "Parity error occurred"]
1695        pub const _1: Self = Self::new(1);
1696    }
1697    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1698    pub struct Fer_SPEC;
1699    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
1700    impl Fer {
1701        #[doc = "No framing error occurred"]
1702        pub const _0: Self = Self::new(0);
1703
1704        #[doc = "Framing error occurred"]
1705        pub const _1: Self = Self::new(1);
1706    }
1707    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1708    pub struct Orer_SPEC;
1709    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
1710    impl Orer {
1711        #[doc = "No overrun error occurred"]
1712        pub const _0: Self = Self::new(0);
1713
1714        #[doc = "Overrun error occurred"]
1715        pub const _1: Self = Self::new(1);
1716    }
1717    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1718    pub struct Rdf_SPEC;
1719    pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
1720    impl Rdf {
1721        #[doc = "The amount of receive data written in FRDRHL is less than the specified receive triggering number"]
1722        pub const _0: Self = Self::new(0);
1723
1724        #[doc = "The amount of receive data written in FRDRHL is equal to or greater than the specified receive triggering number"]
1725        pub const _1: Self = Self::new(1);
1726    }
1727    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1728    pub struct Tdfe_SPEC;
1729    pub type Tdfe = crate::EnumBitfieldStruct<u8, Tdfe_SPEC>;
1730    impl Tdfe {
1731        #[doc = "The amount of transmit data written in FTDRHL exceeds the specified transmit triggering number"]
1732        pub const _0: Self = Self::new(0);
1733
1734        #[doc = "The amount of transmit data written in FTDRHL is equal to or less than the specified transmit triggering number"]
1735        pub const _1: Self = Self::new(1);
1736    }
1737}
1738#[doc(hidden)]
1739#[derive(Copy, Clone, Eq, PartialEq)]
1740pub struct SsrManc_SPEC;
1741impl crate::sealed::RegSpec for SsrManc_SPEC {
1742    type DataType = u8;
1743}
1744
1745#[doc = "Serial Status Register for Manchester Mode (SCMR.SMIF = 0, and MMR.MANEN = 1)"]
1746pub type SsrManc = crate::RegValueT<SsrManc_SPEC>;
1747
1748impl SsrManc {
1749    #[doc = "Manchester Error Flag"]
1750    #[inline(always)]
1751    pub fn mer(
1752        self,
1753    ) -> crate::common::RegisterField<
1754        0,
1755        0x1,
1756        1,
1757        0,
1758        ssr_manc::Mer,
1759        ssr_manc::Mer,
1760        SsrManc_SPEC,
1761        crate::common::RW,
1762    > {
1763        crate::common::RegisterField::<
1764            0,
1765            0x1,
1766            1,
1767            0,
1768            ssr_manc::Mer,
1769            ssr_manc::Mer,
1770            SsrManc_SPEC,
1771            crate::common::RW,
1772        >::from_register(self, 0)
1773    }
1774
1775    #[doc = "Multi-Processor"]
1776    #[inline(always)]
1777    pub fn mpb(
1778        self,
1779    ) -> crate::common::RegisterField<
1780        1,
1781        0x1,
1782        1,
1783        0,
1784        ssr_manc::Mpb,
1785        ssr_manc::Mpb,
1786        SsrManc_SPEC,
1787        crate::common::R,
1788    > {
1789        crate::common::RegisterField::<
1790            1,
1791            0x1,
1792            1,
1793            0,
1794            ssr_manc::Mpb,
1795            ssr_manc::Mpb,
1796            SsrManc_SPEC,
1797            crate::common::R,
1798        >::from_register(self, 0)
1799    }
1800
1801    #[doc = "Transmit End Flag"]
1802    #[inline(always)]
1803    pub fn tend(
1804        self,
1805    ) -> crate::common::RegisterField<
1806        2,
1807        0x1,
1808        1,
1809        0,
1810        ssr_manc::Tend,
1811        ssr_manc::Tend,
1812        SsrManc_SPEC,
1813        crate::common::R,
1814    > {
1815        crate::common::RegisterField::<
1816            2,
1817            0x1,
1818            1,
1819            0,
1820            ssr_manc::Tend,
1821            ssr_manc::Tend,
1822            SsrManc_SPEC,
1823            crate::common::R,
1824        >::from_register(self, 0)
1825    }
1826
1827    #[doc = "Parity Error Flag"]
1828    #[inline(always)]
1829    pub fn per(
1830        self,
1831    ) -> crate::common::RegisterField<
1832        3,
1833        0x1,
1834        1,
1835        0,
1836        ssr_manc::Per,
1837        ssr_manc::Per,
1838        SsrManc_SPEC,
1839        crate::common::RW,
1840    > {
1841        crate::common::RegisterField::<
1842            3,
1843            0x1,
1844            1,
1845            0,
1846            ssr_manc::Per,
1847            ssr_manc::Per,
1848            SsrManc_SPEC,
1849            crate::common::RW,
1850        >::from_register(self, 0)
1851    }
1852
1853    #[doc = "Framing Error Flag"]
1854    #[inline(always)]
1855    pub fn fer(
1856        self,
1857    ) -> crate::common::RegisterField<
1858        4,
1859        0x1,
1860        1,
1861        0,
1862        ssr_manc::Fer,
1863        ssr_manc::Fer,
1864        SsrManc_SPEC,
1865        crate::common::RW,
1866    > {
1867        crate::common::RegisterField::<
1868            4,
1869            0x1,
1870            1,
1871            0,
1872            ssr_manc::Fer,
1873            ssr_manc::Fer,
1874            SsrManc_SPEC,
1875            crate::common::RW,
1876        >::from_register(self, 0)
1877    }
1878
1879    #[doc = "Overrun Error Flag"]
1880    #[inline(always)]
1881    pub fn orer(
1882        self,
1883    ) -> crate::common::RegisterField<
1884        5,
1885        0x1,
1886        1,
1887        0,
1888        ssr_manc::Orer,
1889        ssr_manc::Orer,
1890        SsrManc_SPEC,
1891        crate::common::RW,
1892    > {
1893        crate::common::RegisterField::<
1894            5,
1895            0x1,
1896            1,
1897            0,
1898            ssr_manc::Orer,
1899            ssr_manc::Orer,
1900            SsrManc_SPEC,
1901            crate::common::RW,
1902        >::from_register(self, 0)
1903    }
1904
1905    #[doc = "Receive Data Full Flag"]
1906    #[inline(always)]
1907    pub fn rdrf(
1908        self,
1909    ) -> crate::common::RegisterField<
1910        6,
1911        0x1,
1912        1,
1913        0,
1914        ssr_manc::Rdrf,
1915        ssr_manc::Rdrf,
1916        SsrManc_SPEC,
1917        crate::common::RW,
1918    > {
1919        crate::common::RegisterField::<
1920            6,
1921            0x1,
1922            1,
1923            0,
1924            ssr_manc::Rdrf,
1925            ssr_manc::Rdrf,
1926            SsrManc_SPEC,
1927            crate::common::RW,
1928        >::from_register(self, 0)
1929    }
1930
1931    #[doc = "Transmit Data Empty Flag"]
1932    #[inline(always)]
1933    pub fn tdre(
1934        self,
1935    ) -> crate::common::RegisterField<
1936        7,
1937        0x1,
1938        1,
1939        0,
1940        ssr_manc::Tdre,
1941        ssr_manc::Tdre,
1942        SsrManc_SPEC,
1943        crate::common::RW,
1944    > {
1945        crate::common::RegisterField::<
1946            7,
1947            0x1,
1948            1,
1949            0,
1950            ssr_manc::Tdre,
1951            ssr_manc::Tdre,
1952            SsrManc_SPEC,
1953            crate::common::RW,
1954        >::from_register(self, 0)
1955    }
1956}
1957impl ::core::default::Default for SsrManc {
1958    #[inline(always)]
1959    fn default() -> SsrManc {
1960        <crate::RegValueT<SsrManc_SPEC> as RegisterValue<_>>::new(132)
1961    }
1962}
1963pub mod ssr_manc {
1964
1965    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1966    pub struct Mer_SPEC;
1967    pub type Mer = crate::EnumBitfieldStruct<u8, Mer_SPEC>;
1968    impl Mer {
1969        #[doc = "No Manchester error occurred"]
1970        pub const _0: Self = Self::new(0);
1971
1972        #[doc = "Manchester error has occurred"]
1973        pub const _1: Self = Self::new(1);
1974    }
1975    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1976    pub struct Mpb_SPEC;
1977    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
1978    impl Mpb {
1979        #[doc = "Data transmission cycles"]
1980        pub const _0: Self = Self::new(0);
1981
1982        #[doc = "ID transmission cycles"]
1983        pub const _1: Self = Self::new(1);
1984    }
1985    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1986    pub struct Tend_SPEC;
1987    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
1988    impl Tend {
1989        #[doc = "A character is being transmitted"]
1990        pub const _0: Self = Self::new(0);
1991
1992        #[doc = "Character transfer has been completed."]
1993        pub const _1: Self = Self::new(1);
1994    }
1995    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1996    pub struct Per_SPEC;
1997    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
1998    impl Per {
1999        #[doc = "No parity error occurred"]
2000        pub const _0: Self = Self::new(0);
2001
2002        #[doc = "A parity error has occurred"]
2003        pub const _1: Self = Self::new(1);
2004    }
2005    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2006    pub struct Fer_SPEC;
2007    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
2008    impl Fer {
2009        #[doc = "No framing error occurred"]
2010        pub const _0: Self = Self::new(0);
2011
2012        #[doc = "A framing error has occurred"]
2013        pub const _1: Self = Self::new(1);
2014    }
2015    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2016    pub struct Orer_SPEC;
2017    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
2018    impl Orer {
2019        #[doc = "No overrun error occurred"]
2020        pub const _0: Self = Self::new(0);
2021
2022        #[doc = "An overrun error has occurred"]
2023        pub const _1: Self = Self::new(1);
2024    }
2025    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2026    pub struct Rdrf_SPEC;
2027    pub type Rdrf = crate::EnumBitfieldStruct<u8, Rdrf_SPEC>;
2028    impl Rdrf {
2029        #[doc = "No received data is in RDR register"]
2030        pub const _0: Self = Self::new(0);
2031
2032        #[doc = "Received data is in RDR register"]
2033        pub const _1: Self = Self::new(1);
2034    }
2035    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2036    pub struct Tdre_SPEC;
2037    pub type Tdre = crate::EnumBitfieldStruct<u8, Tdre_SPEC>;
2038    impl Tdre {
2039        #[doc = "Transmit data is in TDR register"]
2040        pub const _0: Self = Self::new(0);
2041
2042        #[doc = "No transmit data is in TDR register"]
2043        pub const _1: Self = Self::new(1);
2044    }
2045}
2046#[doc(hidden)]
2047#[derive(Copy, Clone, Eq, PartialEq)]
2048pub struct SsrSmci_SPEC;
2049impl crate::sealed::RegSpec for SsrSmci_SPEC {
2050    type DataType = u8;
2051}
2052
2053#[doc = "Serial Status Register for Smart Card Interface Mode (SCMR.SMIF = 1, and MMR.MANEN = 0)"]
2054pub type SsrSmci = crate::RegValueT<SsrSmci_SPEC>;
2055
2056impl SsrSmci {
2057    #[doc = "Multi-Processor Bit Transfer"]
2058    #[inline(always)]
2059    pub fn mpbt(
2060        self,
2061    ) -> crate::common::RegisterFieldBool<0, 1, 0, SsrSmci_SPEC, crate::common::RW> {
2062        crate::common::RegisterFieldBool::<0, 1, 0, SsrSmci_SPEC, crate::common::RW>::from_register(
2063            self, 0,
2064        )
2065    }
2066
2067    #[doc = "Multi-Processor"]
2068    #[inline(always)]
2069    pub fn mpb(self) -> crate::common::RegisterFieldBool<1, 1, 0, SsrSmci_SPEC, crate::common::R> {
2070        crate::common::RegisterFieldBool::<1, 1, 0, SsrSmci_SPEC, crate::common::R>::from_register(
2071            self, 0,
2072        )
2073    }
2074
2075    #[doc = "Transmit End Flag"]
2076    #[inline(always)]
2077    pub fn tend(
2078        self,
2079    ) -> crate::common::RegisterField<
2080        2,
2081        0x1,
2082        1,
2083        0,
2084        ssr_smci::Tend,
2085        ssr_smci::Tend,
2086        SsrSmci_SPEC,
2087        crate::common::R,
2088    > {
2089        crate::common::RegisterField::<
2090            2,
2091            0x1,
2092            1,
2093            0,
2094            ssr_smci::Tend,
2095            ssr_smci::Tend,
2096            SsrSmci_SPEC,
2097            crate::common::R,
2098        >::from_register(self, 0)
2099    }
2100
2101    #[doc = "Parity Error Flag"]
2102    #[inline(always)]
2103    pub fn per(
2104        self,
2105    ) -> crate::common::RegisterField<
2106        3,
2107        0x1,
2108        1,
2109        0,
2110        ssr_smci::Per,
2111        ssr_smci::Per,
2112        SsrSmci_SPEC,
2113        crate::common::RW,
2114    > {
2115        crate::common::RegisterField::<
2116            3,
2117            0x1,
2118            1,
2119            0,
2120            ssr_smci::Per,
2121            ssr_smci::Per,
2122            SsrSmci_SPEC,
2123            crate::common::RW,
2124        >::from_register(self, 0)
2125    }
2126
2127    #[doc = "Error Signal Status Flag"]
2128    #[inline(always)]
2129    pub fn ers(
2130        self,
2131    ) -> crate::common::RegisterField<
2132        4,
2133        0x1,
2134        1,
2135        0,
2136        ssr_smci::Ers,
2137        ssr_smci::Ers,
2138        SsrSmci_SPEC,
2139        crate::common::RW,
2140    > {
2141        crate::common::RegisterField::<
2142            4,
2143            0x1,
2144            1,
2145            0,
2146            ssr_smci::Ers,
2147            ssr_smci::Ers,
2148            SsrSmci_SPEC,
2149            crate::common::RW,
2150        >::from_register(self, 0)
2151    }
2152
2153    #[doc = "Overrun Error Flag"]
2154    #[inline(always)]
2155    pub fn orer(
2156        self,
2157    ) -> crate::common::RegisterField<
2158        5,
2159        0x1,
2160        1,
2161        0,
2162        ssr_smci::Orer,
2163        ssr_smci::Orer,
2164        SsrSmci_SPEC,
2165        crate::common::RW,
2166    > {
2167        crate::common::RegisterField::<
2168            5,
2169            0x1,
2170            1,
2171            0,
2172            ssr_smci::Orer,
2173            ssr_smci::Orer,
2174            SsrSmci_SPEC,
2175            crate::common::RW,
2176        >::from_register(self, 0)
2177    }
2178
2179    #[doc = "Receive Data Full Flag"]
2180    #[inline(always)]
2181    pub fn rdrf(
2182        self,
2183    ) -> crate::common::RegisterField<
2184        6,
2185        0x1,
2186        1,
2187        0,
2188        ssr_smci::Rdrf,
2189        ssr_smci::Rdrf,
2190        SsrSmci_SPEC,
2191        crate::common::RW,
2192    > {
2193        crate::common::RegisterField::<
2194            6,
2195            0x1,
2196            1,
2197            0,
2198            ssr_smci::Rdrf,
2199            ssr_smci::Rdrf,
2200            SsrSmci_SPEC,
2201            crate::common::RW,
2202        >::from_register(self, 0)
2203    }
2204
2205    #[doc = "Transmit Data Empty Flag"]
2206    #[inline(always)]
2207    pub fn tdre(
2208        self,
2209    ) -> crate::common::RegisterField<
2210        7,
2211        0x1,
2212        1,
2213        0,
2214        ssr_smci::Tdre,
2215        ssr_smci::Tdre,
2216        SsrSmci_SPEC,
2217        crate::common::RW,
2218    > {
2219        crate::common::RegisterField::<
2220            7,
2221            0x1,
2222            1,
2223            0,
2224            ssr_smci::Tdre,
2225            ssr_smci::Tdre,
2226            SsrSmci_SPEC,
2227            crate::common::RW,
2228        >::from_register(self, 0)
2229    }
2230}
2231impl ::core::default::Default for SsrSmci {
2232    #[inline(always)]
2233    fn default() -> SsrSmci {
2234        <crate::RegValueT<SsrSmci_SPEC> as RegisterValue<_>>::new(132)
2235    }
2236}
2237pub mod ssr_smci {
2238
2239    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2240    pub struct Tend_SPEC;
2241    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
2242    impl Tend {
2243        #[doc = "A character is being transmitted"]
2244        pub const _0: Self = Self::new(0);
2245
2246        #[doc = "Character transfer is complete"]
2247        pub const _1: Self = Self::new(1);
2248    }
2249    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2250    pub struct Per_SPEC;
2251    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
2252    impl Per {
2253        #[doc = "No parity error occurred"]
2254        pub const _0: Self = Self::new(0);
2255
2256        #[doc = "Parity error occurred"]
2257        pub const _1: Self = Self::new(1);
2258    }
2259    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2260    pub struct Ers_SPEC;
2261    pub type Ers = crate::EnumBitfieldStruct<u8, Ers_SPEC>;
2262    impl Ers {
2263        #[doc = "No low error signal response"]
2264        pub const _0: Self = Self::new(0);
2265
2266        #[doc = "Low error signal response occurred"]
2267        pub const _1: Self = Self::new(1);
2268    }
2269    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2270    pub struct Orer_SPEC;
2271    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
2272    impl Orer {
2273        #[doc = "No overrun error occurred"]
2274        pub const _0: Self = Self::new(0);
2275
2276        #[doc = "Overrun error occurred"]
2277        pub const _1: Self = Self::new(1);
2278    }
2279    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2280    pub struct Rdrf_SPEC;
2281    pub type Rdrf = crate::EnumBitfieldStruct<u8, Rdrf_SPEC>;
2282    impl Rdrf {
2283        #[doc = "No received data in RDR register"]
2284        pub const _0: Self = Self::new(0);
2285
2286        #[doc = "Received data in RDR register"]
2287        pub const _1: Self = Self::new(1);
2288    }
2289    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2290    pub struct Tdre_SPEC;
2291    pub type Tdre = crate::EnumBitfieldStruct<u8, Tdre_SPEC>;
2292    impl Tdre {
2293        #[doc = "Transmit data in TDR register"]
2294        pub const _0: Self = Self::new(0);
2295
2296        #[doc = "No transmit data in TDR register"]
2297        pub const _1: Self = Self::new(1);
2298    }
2299}
2300#[doc(hidden)]
2301#[derive(Copy, Clone, Eq, PartialEq)]
2302pub struct Rdr_SPEC;
2303impl crate::sealed::RegSpec for Rdr_SPEC {
2304    type DataType = u8;
2305}
2306
2307#[doc = "Receive Data Register"]
2308pub type Rdr = crate::RegValueT<Rdr_SPEC>;
2309
2310impl NoBitfieldReg<Rdr_SPEC> for Rdr {}
2311impl ::core::default::Default for Rdr {
2312    #[inline(always)]
2313    fn default() -> Rdr {
2314        <crate::RegValueT<Rdr_SPEC> as RegisterValue<_>>::new(0)
2315    }
2316}
2317
2318#[doc(hidden)]
2319#[derive(Copy, Clone, Eq, PartialEq)]
2320pub struct Scmr_SPEC;
2321impl crate::sealed::RegSpec for Scmr_SPEC {
2322    type DataType = u8;
2323}
2324
2325#[doc = "Smart Card Mode Register"]
2326pub type Scmr = crate::RegValueT<Scmr_SPEC>;
2327
2328impl Scmr {
2329    #[doc = "Smart Card Interface Mode Select"]
2330    #[inline(always)]
2331    pub fn smif(
2332        self,
2333    ) -> crate::common::RegisterField<
2334        0,
2335        0x1,
2336        1,
2337        0,
2338        scmr::Smif,
2339        scmr::Smif,
2340        Scmr_SPEC,
2341        crate::common::RW,
2342    > {
2343        crate::common::RegisterField::<
2344            0,
2345            0x1,
2346            1,
2347            0,
2348            scmr::Smif,
2349            scmr::Smif,
2350            Scmr_SPEC,
2351            crate::common::RW,
2352        >::from_register(self, 0)
2353    }
2354
2355    #[doc = "Transmitted/Received Data Invert"]
2356    #[inline(always)]
2357    pub fn sinv(
2358        self,
2359    ) -> crate::common::RegisterField<
2360        2,
2361        0x1,
2362        1,
2363        0,
2364        scmr::Sinv,
2365        scmr::Sinv,
2366        Scmr_SPEC,
2367        crate::common::RW,
2368    > {
2369        crate::common::RegisterField::<
2370            2,
2371            0x1,
2372            1,
2373            0,
2374            scmr::Sinv,
2375            scmr::Sinv,
2376            Scmr_SPEC,
2377            crate::common::RW,
2378        >::from_register(self, 0)
2379    }
2380
2381    #[doc = "Transmitted/Received Data Transfer Direction"]
2382    #[inline(always)]
2383    pub fn sdir(
2384        self,
2385    ) -> crate::common::RegisterField<
2386        3,
2387        0x1,
2388        1,
2389        0,
2390        scmr::Sdir,
2391        scmr::Sdir,
2392        Scmr_SPEC,
2393        crate::common::RW,
2394    > {
2395        crate::common::RegisterField::<
2396            3,
2397            0x1,
2398            1,
2399            0,
2400            scmr::Sdir,
2401            scmr::Sdir,
2402            Scmr_SPEC,
2403            crate::common::RW,
2404        >::from_register(self, 0)
2405    }
2406
2407    #[doc = "Character Length 1"]
2408    #[inline(always)]
2409    pub fn chr1(
2410        self,
2411    ) -> crate::common::RegisterField<
2412        4,
2413        0x1,
2414        1,
2415        0,
2416        scmr::Chr1,
2417        scmr::Chr1,
2418        Scmr_SPEC,
2419        crate::common::RW,
2420    > {
2421        crate::common::RegisterField::<
2422            4,
2423            0x1,
2424            1,
2425            0,
2426            scmr::Chr1,
2427            scmr::Chr1,
2428            Scmr_SPEC,
2429            crate::common::RW,
2430        >::from_register(self, 0)
2431    }
2432
2433    #[doc = "Base Clock Pulse 2"]
2434    #[inline(always)]
2435    pub fn bcp2(self) -> crate::common::RegisterFieldBool<7, 1, 0, Scmr_SPEC, crate::common::RW> {
2436        crate::common::RegisterFieldBool::<7, 1, 0, Scmr_SPEC, crate::common::RW>::from_register(
2437            self, 0,
2438        )
2439    }
2440}
2441impl ::core::default::Default for Scmr {
2442    #[inline(always)]
2443    fn default() -> Scmr {
2444        <crate::RegValueT<Scmr_SPEC> as RegisterValue<_>>::new(242)
2445    }
2446}
2447pub mod scmr {
2448
2449    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2450    pub struct Smif_SPEC;
2451    pub type Smif = crate::EnumBitfieldStruct<u8, Smif_SPEC>;
2452    impl Smif {
2453        #[doc = "Non-smart card interface mode (asynchronous mode, clock synchronous mode, simple SPI mode, or simple IIC mode)"]
2454        pub const _0: Self = Self::new(0);
2455
2456        #[doc = "Smart card interface mode"]
2457        pub const _1: Self = Self::new(1);
2458    }
2459    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2460    pub struct Sinv_SPEC;
2461    pub type Sinv = crate::EnumBitfieldStruct<u8, Sinv_SPEC>;
2462    impl Sinv {
2463        #[doc = "TDR contents are transmitted as they are. Received data is stored as received in the RDR register."]
2464        pub const _0: Self = Self::new(0);
2465
2466        #[doc = "TDR register contents are inverted before transmission. Receive data is stored in inverted form in the RDR register."]
2467        pub const _1: Self = Self::new(1);
2468    }
2469    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2470    pub struct Sdir_SPEC;
2471    pub type Sdir = crate::EnumBitfieldStruct<u8, Sdir_SPEC>;
2472    impl Sdir {
2473        #[doc = "Transfer LSB-first"]
2474        pub const _0: Self = Self::new(0);
2475
2476        #[doc = "Transfer MSB-first"]
2477        pub const _1: Self = Self::new(1);
2478    }
2479    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2480    pub struct Chr1_SPEC;
2481    pub type Chr1 = crate::EnumBitfieldStruct<u8, Chr1_SPEC>;
2482    impl Chr1 {
2483        #[doc = "SMR.CHR = 0: Transmit/receive in 9-bit data length SMR.CHR = 1: Transmit/receive in 9-bit data length"]
2484        pub const _0: Self = Self::new(0);
2485
2486        #[doc = "SMR.CHR = 0: Transmit/receive in 8-bit data length (initial value) SMR.CHR = 1: Transmit/receive in 7-bit data length"]
2487        pub const _1: Self = Self::new(1);
2488    }
2489}
2490#[doc(hidden)]
2491#[derive(Copy, Clone, Eq, PartialEq)]
2492pub struct Semr_SPEC;
2493impl crate::sealed::RegSpec for Semr_SPEC {
2494    type DataType = u8;
2495}
2496
2497#[doc = "Serial Extended Mode Register"]
2498pub type Semr = crate::RegValueT<Semr_SPEC>;
2499
2500impl Semr {
2501    #[doc = "Asynchronous Mode Clock Source Select"]
2502    #[inline(always)]
2503    pub fn acs0(
2504        self,
2505    ) -> crate::common::RegisterField<
2506        0,
2507        0x1,
2508        1,
2509        0,
2510        semr::Acs0,
2511        semr::Acs0,
2512        Semr_SPEC,
2513        crate::common::RW,
2514    > {
2515        crate::common::RegisterField::<
2516            0,
2517            0x1,
2518            1,
2519            0,
2520            semr::Acs0,
2521            semr::Acs0,
2522            Semr_SPEC,
2523            crate::common::RW,
2524        >::from_register(self, 0)
2525    }
2526
2527    #[doc = "Preamble function Disable"]
2528    #[inline(always)]
2529    pub fn padis(
2530        self,
2531    ) -> crate::common::RegisterField<
2532        1,
2533        0x1,
2534        1,
2535        0,
2536        semr::Padis,
2537        semr::Padis,
2538        Semr_SPEC,
2539        crate::common::RW,
2540    > {
2541        crate::common::RegisterField::<
2542            1,
2543            0x1,
2544            1,
2545            0,
2546            semr::Padis,
2547            semr::Padis,
2548            Semr_SPEC,
2549            crate::common::RW,
2550        >::from_register(self, 0)
2551    }
2552
2553    #[doc = "Bit Rate Modulation Enable"]
2554    #[inline(always)]
2555    pub fn brme(
2556        self,
2557    ) -> crate::common::RegisterField<
2558        2,
2559        0x1,
2560        1,
2561        0,
2562        semr::Brme,
2563        semr::Brme,
2564        Semr_SPEC,
2565        crate::common::RW,
2566    > {
2567        crate::common::RegisterField::<
2568            2,
2569            0x1,
2570            1,
2571            0,
2572            semr::Brme,
2573            semr::Brme,
2574            Semr_SPEC,
2575            crate::common::RW,
2576        >::from_register(self, 0)
2577    }
2578
2579    #[doc = "Asynchronous Mode Extended Base Clock Select 1"]
2580    #[inline(always)]
2581    pub fn abcse(
2582        self,
2583    ) -> crate::common::RegisterField<
2584        3,
2585        0x1,
2586        1,
2587        0,
2588        semr::Abcse,
2589        semr::Abcse,
2590        Semr_SPEC,
2591        crate::common::RW,
2592    > {
2593        crate::common::RegisterField::<
2594            3,
2595            0x1,
2596            1,
2597            0,
2598            semr::Abcse,
2599            semr::Abcse,
2600            Semr_SPEC,
2601            crate::common::RW,
2602        >::from_register(self, 0)
2603    }
2604
2605    #[doc = "Asynchronous Mode Base Clock Select"]
2606    #[inline(always)]
2607    pub fn abcs(
2608        self,
2609    ) -> crate::common::RegisterField<
2610        4,
2611        0x1,
2612        1,
2613        0,
2614        semr::Abcs,
2615        semr::Abcs,
2616        Semr_SPEC,
2617        crate::common::RW,
2618    > {
2619        crate::common::RegisterField::<
2620            4,
2621            0x1,
2622            1,
2623            0,
2624            semr::Abcs,
2625            semr::Abcs,
2626            Semr_SPEC,
2627            crate::common::RW,
2628        >::from_register(self, 0)
2629    }
2630
2631    #[doc = "Digital Noise Filter Function Enable"]
2632    #[inline(always)]
2633    pub fn nfen(
2634        self,
2635    ) -> crate::common::RegisterField<
2636        5,
2637        0x1,
2638        1,
2639        0,
2640        semr::Nfen,
2641        semr::Nfen,
2642        Semr_SPEC,
2643        crate::common::RW,
2644    > {
2645        crate::common::RegisterField::<
2646            5,
2647            0x1,
2648            1,
2649            0,
2650            semr::Nfen,
2651            semr::Nfen,
2652            Semr_SPEC,
2653            crate::common::RW,
2654        >::from_register(self, 0)
2655    }
2656
2657    #[doc = "Baud Rate Generator Double-Speed Mode Select"]
2658    #[inline(always)]
2659    pub fn bgdm(
2660        self,
2661    ) -> crate::common::RegisterField<
2662        6,
2663        0x1,
2664        1,
2665        0,
2666        semr::Bgdm,
2667        semr::Bgdm,
2668        Semr_SPEC,
2669        crate::common::RW,
2670    > {
2671        crate::common::RegisterField::<
2672            6,
2673            0x1,
2674            1,
2675            0,
2676            semr::Bgdm,
2677            semr::Bgdm,
2678            Semr_SPEC,
2679            crate::common::RW,
2680        >::from_register(self, 0)
2681    }
2682
2683    #[doc = "Asynchronous Start Bit Edge Detection Select"]
2684    #[inline(always)]
2685    pub fn rxdesel(
2686        self,
2687    ) -> crate::common::RegisterField<
2688        7,
2689        0x1,
2690        1,
2691        0,
2692        semr::Rxdesel,
2693        semr::Rxdesel,
2694        Semr_SPEC,
2695        crate::common::RW,
2696    > {
2697        crate::common::RegisterField::<
2698            7,
2699            0x1,
2700            1,
2701            0,
2702            semr::Rxdesel,
2703            semr::Rxdesel,
2704            Semr_SPEC,
2705            crate::common::RW,
2706        >::from_register(self, 0)
2707    }
2708}
2709impl ::core::default::Default for Semr {
2710    #[inline(always)]
2711    fn default() -> Semr {
2712        <crate::RegValueT<Semr_SPEC> as RegisterValue<_>>::new(0)
2713    }
2714}
2715pub mod semr {
2716
2717    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2718    pub struct Acs0_SPEC;
2719    pub type Acs0 = crate::EnumBitfieldStruct<u8, Acs0_SPEC>;
2720    impl Acs0 {
2721        #[doc = "External clock input"]
2722        pub const _0: Self = Self::new(0);
2723
2724        #[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."]
2725        pub const _1: Self = Self::new(1);
2726    }
2727    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2728    pub struct Padis_SPEC;
2729    pub type Padis = crate::EnumBitfieldStruct<u8, Padis_SPEC>;
2730    impl Padis {
2731        #[doc = "Preamble output function is enabled"]
2732        pub const _0: Self = Self::new(0);
2733
2734        #[doc = "Preamble output function is disabled These bits for the other SCI channels than SCIn (n = 0, 3, 4, 9) are reserved."]
2735        pub const _1: Self = Self::new(1);
2736    }
2737    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2738    pub struct Brme_SPEC;
2739    pub type Brme = crate::EnumBitfieldStruct<u8, Brme_SPEC>;
2740    impl Brme {
2741        #[doc = "Disable bit rate modulation function"]
2742        pub const _0: Self = Self::new(0);
2743
2744        #[doc = "Enable bit rate modulation function"]
2745        pub const _1: Self = Self::new(1);
2746    }
2747    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2748    pub struct Abcse_SPEC;
2749    pub type Abcse = crate::EnumBitfieldStruct<u8, Abcse_SPEC>;
2750    impl Abcse {
2751        #[doc = "Clock cycles for 1-bit period determined by combination of the BGDM and ABCS bits in the SEMR register"]
2752        pub const _0: Self = Self::new(0);
2753
2754        #[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."]
2755        pub const _1: Self = Self::new(1);
2756    }
2757    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2758    pub struct Abcs_SPEC;
2759    pub type Abcs = crate::EnumBitfieldStruct<u8, Abcs_SPEC>;
2760    impl Abcs {
2761        #[doc = "Select 16 base clock cycles for 1-bit period"]
2762        pub const _0: Self = Self::new(0);
2763
2764        #[doc = "Select 8 base clock cycles for 1-bit period"]
2765        pub const _1: Self = Self::new(1);
2766    }
2767    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2768    pub struct Nfen_SPEC;
2769    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
2770    impl Nfen {
2771        #[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"]
2772        pub const _0: Self = Self::new(0);
2773
2774        #[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"]
2775        pub const _1: Self = Self::new(1);
2776    }
2777    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2778    pub struct Bgdm_SPEC;
2779    pub type Bgdm = crate::EnumBitfieldStruct<u8, Bgdm_SPEC>;
2780    impl Bgdm {
2781        #[doc = "Output clock from baud rate generator with normal frequency"]
2782        pub const _0: Self = Self::new(0);
2783
2784        #[doc = "Output clock from baud rate generator with doubled frequency"]
2785        pub const _1: Self = Self::new(1);
2786    }
2787    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2788    pub struct Rxdesel_SPEC;
2789    pub type Rxdesel = crate::EnumBitfieldStruct<u8, Rxdesel_SPEC>;
2790    impl Rxdesel {
2791        #[doc = "Detect low level on RXDn pin as start bit"]
2792        pub const _0: Self = Self::new(0);
2793
2794        #[doc = "Detect falling edge of RXDn pin as start bit"]
2795        pub const _1: Self = Self::new(1);
2796    }
2797}
2798#[doc(hidden)]
2799#[derive(Copy, Clone, Eq, PartialEq)]
2800pub struct Snfr_SPEC;
2801impl crate::sealed::RegSpec for Snfr_SPEC {
2802    type DataType = u8;
2803}
2804
2805#[doc = "Noise Filter Setting Register"]
2806pub type Snfr = crate::RegValueT<Snfr_SPEC>;
2807
2808impl Snfr {
2809    #[doc = "Noise Filter Clock Select"]
2810    #[inline(always)]
2811    pub fn nfcs(
2812        self,
2813    ) -> crate::common::RegisterField<
2814        0,
2815        0x7,
2816        1,
2817        0,
2818        snfr::Nfcs,
2819        snfr::Nfcs,
2820        Snfr_SPEC,
2821        crate::common::RW,
2822    > {
2823        crate::common::RegisterField::<
2824            0,
2825            0x7,
2826            1,
2827            0,
2828            snfr::Nfcs,
2829            snfr::Nfcs,
2830            Snfr_SPEC,
2831            crate::common::RW,
2832        >::from_register(self, 0)
2833    }
2834}
2835impl ::core::default::Default for Snfr {
2836    #[inline(always)]
2837    fn default() -> Snfr {
2838        <crate::RegValueT<Snfr_SPEC> as RegisterValue<_>>::new(0)
2839    }
2840}
2841pub mod snfr {
2842
2843    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2844    pub struct Nfcs_SPEC;
2845    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
2846    impl Nfcs {
2847        #[doc = "In asynchronous mode: Use clock signal divided by 1 with noise filter In simple I2C mode: Setting prohibited"]
2848        pub const _000: Self = Self::new(0);
2849
2850        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 1 with noise filter"]
2851        pub const _001: Self = Self::new(1);
2852
2853        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 2 with noise filter"]
2854        pub const _010: Self = Self::new(2);
2855
2856        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 4 with noise filter"]
2857        pub const _011: Self = Self::new(3);
2858
2859        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 8 with noise filter"]
2860        pub const _100: Self = Self::new(4);
2861    }
2862}
2863#[doc(hidden)]
2864#[derive(Copy, Clone, Eq, PartialEq)]
2865pub struct Simr1_SPEC;
2866impl crate::sealed::RegSpec for Simr1_SPEC {
2867    type DataType = u8;
2868}
2869
2870#[doc = "IIC Mode Register 1"]
2871pub type Simr1 = crate::RegValueT<Simr1_SPEC>;
2872
2873impl Simr1 {
2874    #[doc = "Simple IIC Mode Select"]
2875    #[inline(always)]
2876    pub fn iicm(
2877        self,
2878    ) -> crate::common::RegisterField<
2879        0,
2880        0x1,
2881        1,
2882        0,
2883        simr1::Iicm,
2884        simr1::Iicm,
2885        Simr1_SPEC,
2886        crate::common::RW,
2887    > {
2888        crate::common::RegisterField::<
2889            0,
2890            0x1,
2891            1,
2892            0,
2893            simr1::Iicm,
2894            simr1::Iicm,
2895            Simr1_SPEC,
2896            crate::common::RW,
2897        >::from_register(self, 0)
2898    }
2899
2900    #[doc = "SDAn Delay Output Select"]
2901    #[inline(always)]
2902    pub fn iicdl(
2903        self,
2904    ) -> crate::common::RegisterField<
2905        3,
2906        0x1f,
2907        1,
2908        0,
2909        simr1::Iicdl,
2910        simr1::Iicdl,
2911        Simr1_SPEC,
2912        crate::common::RW,
2913    > {
2914        crate::common::RegisterField::<
2915            3,
2916            0x1f,
2917            1,
2918            0,
2919            simr1::Iicdl,
2920            simr1::Iicdl,
2921            Simr1_SPEC,
2922            crate::common::RW,
2923        >::from_register(self, 0)
2924    }
2925}
2926impl ::core::default::Default for Simr1 {
2927    #[inline(always)]
2928    fn default() -> Simr1 {
2929        <crate::RegValueT<Simr1_SPEC> as RegisterValue<_>>::new(0)
2930    }
2931}
2932pub mod simr1 {
2933
2934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2935    pub struct Iicm_SPEC;
2936    pub type Iicm = crate::EnumBitfieldStruct<u8, Iicm_SPEC>;
2937    impl Iicm {
2938        #[doc = "SCMR.SMIF = 0: Asynchronous mode (including multi-processor mode), clock synchronous mode, or simple SPI mode SCMR.SMIF = 1: Smart card interface mode"]
2939        pub const _0: Self = Self::new(0);
2940
2941        #[doc = "SCMR.SMIF = 0: Simple IIC mode SCMR.SMIF = 1: Setting prohibited"]
2942        pub const _1: Self = Self::new(1);
2943    }
2944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2945    pub struct Iicdl_SPEC;
2946    pub type Iicdl = crate::EnumBitfieldStruct<u8, Iicdl_SPEC>;
2947    impl Iicdl {
2948        #[doc = "No output delay"]
2949        pub const _0_X_00: Self = Self::new(0);
2950    }
2951}
2952#[doc(hidden)]
2953#[derive(Copy, Clone, Eq, PartialEq)]
2954pub struct Simr2_SPEC;
2955impl crate::sealed::RegSpec for Simr2_SPEC {
2956    type DataType = u8;
2957}
2958
2959#[doc = "IIC Mode Register 2"]
2960pub type Simr2 = crate::RegValueT<Simr2_SPEC>;
2961
2962impl Simr2 {
2963    #[doc = "IIC Interrupt Mode Select"]
2964    #[inline(always)]
2965    pub fn iicintm(
2966        self,
2967    ) -> crate::common::RegisterField<
2968        0,
2969        0x1,
2970        1,
2971        0,
2972        simr2::Iicintm,
2973        simr2::Iicintm,
2974        Simr2_SPEC,
2975        crate::common::RW,
2976    > {
2977        crate::common::RegisterField::<
2978            0,
2979            0x1,
2980            1,
2981            0,
2982            simr2::Iicintm,
2983            simr2::Iicintm,
2984            Simr2_SPEC,
2985            crate::common::RW,
2986        >::from_register(self, 0)
2987    }
2988
2989    #[doc = "Clock Synchronization"]
2990    #[inline(always)]
2991    pub fn iiccsc(
2992        self,
2993    ) -> crate::common::RegisterField<
2994        1,
2995        0x1,
2996        1,
2997        0,
2998        simr2::Iiccsc,
2999        simr2::Iiccsc,
3000        Simr2_SPEC,
3001        crate::common::RW,
3002    > {
3003        crate::common::RegisterField::<
3004            1,
3005            0x1,
3006            1,
3007            0,
3008            simr2::Iiccsc,
3009            simr2::Iiccsc,
3010            Simr2_SPEC,
3011            crate::common::RW,
3012        >::from_register(self, 0)
3013    }
3014
3015    #[doc = "ACK Transmission Data"]
3016    #[inline(always)]
3017    pub fn iicackt(
3018        self,
3019    ) -> crate::common::RegisterField<
3020        5,
3021        0x1,
3022        1,
3023        0,
3024        simr2::Iicackt,
3025        simr2::Iicackt,
3026        Simr2_SPEC,
3027        crate::common::RW,
3028    > {
3029        crate::common::RegisterField::<
3030            5,
3031            0x1,
3032            1,
3033            0,
3034            simr2::Iicackt,
3035            simr2::Iicackt,
3036            Simr2_SPEC,
3037            crate::common::RW,
3038        >::from_register(self, 0)
3039    }
3040}
3041impl ::core::default::Default for Simr2 {
3042    #[inline(always)]
3043    fn default() -> Simr2 {
3044        <crate::RegValueT<Simr2_SPEC> as RegisterValue<_>>::new(0)
3045    }
3046}
3047pub mod simr2 {
3048
3049    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3050    pub struct Iicintm_SPEC;
3051    pub type Iicintm = crate::EnumBitfieldStruct<u8, Iicintm_SPEC>;
3052    impl Iicintm {
3053        #[doc = "Use ACK/NACK interrupts"]
3054        pub const _0: Self = Self::new(0);
3055
3056        #[doc = "Use reception and transmission interrupts"]
3057        pub const _1: Self = Self::new(1);
3058    }
3059    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3060    pub struct Iiccsc_SPEC;
3061    pub type Iiccsc = crate::EnumBitfieldStruct<u8, Iiccsc_SPEC>;
3062    impl Iiccsc {
3063        #[doc = "Do not synchronize with clock signal"]
3064        pub const _0: Self = Self::new(0);
3065
3066        #[doc = "Synchronize with clock signal"]
3067        pub const _1: Self = Self::new(1);
3068    }
3069    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3070    pub struct Iicackt_SPEC;
3071    pub type Iicackt = crate::EnumBitfieldStruct<u8, Iicackt_SPEC>;
3072    impl Iicackt {
3073        #[doc = "ACK transmission"]
3074        pub const _0: Self = Self::new(0);
3075
3076        #[doc = "NACK transmission and ACK/NACK reception"]
3077        pub const _1: Self = Self::new(1);
3078    }
3079}
3080#[doc(hidden)]
3081#[derive(Copy, Clone, Eq, PartialEq)]
3082pub struct Simr3_SPEC;
3083impl crate::sealed::RegSpec for Simr3_SPEC {
3084    type DataType = u8;
3085}
3086
3087#[doc = "IIC Mode Register 3"]
3088pub type Simr3 = crate::RegValueT<Simr3_SPEC>;
3089
3090impl Simr3 {
3091    #[doc = "Start Condition Generation"]
3092    #[inline(always)]
3093    pub fn iicstareq(
3094        self,
3095    ) -> crate::common::RegisterField<
3096        0,
3097        0x1,
3098        1,
3099        0,
3100        simr3::Iicstareq,
3101        simr3::Iicstareq,
3102        Simr3_SPEC,
3103        crate::common::RW,
3104    > {
3105        crate::common::RegisterField::<
3106            0,
3107            0x1,
3108            1,
3109            0,
3110            simr3::Iicstareq,
3111            simr3::Iicstareq,
3112            Simr3_SPEC,
3113            crate::common::RW,
3114        >::from_register(self, 0)
3115    }
3116
3117    #[doc = "Restart Condition Generation"]
3118    #[inline(always)]
3119    pub fn iicrstareq(
3120        self,
3121    ) -> crate::common::RegisterField<
3122        1,
3123        0x1,
3124        1,
3125        0,
3126        simr3::Iicrstareq,
3127        simr3::Iicrstareq,
3128        Simr3_SPEC,
3129        crate::common::RW,
3130    > {
3131        crate::common::RegisterField::<
3132            1,
3133            0x1,
3134            1,
3135            0,
3136            simr3::Iicrstareq,
3137            simr3::Iicrstareq,
3138            Simr3_SPEC,
3139            crate::common::RW,
3140        >::from_register(self, 0)
3141    }
3142
3143    #[doc = "Stop Condition Generation"]
3144    #[inline(always)]
3145    pub fn iicstpreq(
3146        self,
3147    ) -> crate::common::RegisterField<
3148        2,
3149        0x1,
3150        1,
3151        0,
3152        simr3::Iicstpreq,
3153        simr3::Iicstpreq,
3154        Simr3_SPEC,
3155        crate::common::RW,
3156    > {
3157        crate::common::RegisterField::<
3158            2,
3159            0x1,
3160            1,
3161            0,
3162            simr3::Iicstpreq,
3163            simr3::Iicstpreq,
3164            Simr3_SPEC,
3165            crate::common::RW,
3166        >::from_register(self, 0)
3167    }
3168
3169    #[doc = "Issuing of Start, Restart, or Stop Condition Completed Flag"]
3170    #[inline(always)]
3171    pub fn iicstif(
3172        self,
3173    ) -> crate::common::RegisterField<
3174        3,
3175        0x1,
3176        1,
3177        0,
3178        simr3::Iicstif,
3179        simr3::Iicstif,
3180        Simr3_SPEC,
3181        crate::common::RW,
3182    > {
3183        crate::common::RegisterField::<
3184            3,
3185            0x1,
3186            1,
3187            0,
3188            simr3::Iicstif,
3189            simr3::Iicstif,
3190            Simr3_SPEC,
3191            crate::common::RW,
3192        >::from_register(self, 0)
3193    }
3194
3195    #[doc = "SDAn Output Select"]
3196    #[inline(always)]
3197    pub fn iicsdas(
3198        self,
3199    ) -> crate::common::RegisterField<
3200        4,
3201        0x3,
3202        1,
3203        0,
3204        simr3::Iicsdas,
3205        simr3::Iicsdas,
3206        Simr3_SPEC,
3207        crate::common::RW,
3208    > {
3209        crate::common::RegisterField::<
3210            4,
3211            0x3,
3212            1,
3213            0,
3214            simr3::Iicsdas,
3215            simr3::Iicsdas,
3216            Simr3_SPEC,
3217            crate::common::RW,
3218        >::from_register(self, 0)
3219    }
3220
3221    #[doc = "SCLn Output Select"]
3222    #[inline(always)]
3223    pub fn iicscls(
3224        self,
3225    ) -> crate::common::RegisterField<
3226        6,
3227        0x3,
3228        1,
3229        0,
3230        simr3::Iicscls,
3231        simr3::Iicscls,
3232        Simr3_SPEC,
3233        crate::common::RW,
3234    > {
3235        crate::common::RegisterField::<
3236            6,
3237            0x3,
3238            1,
3239            0,
3240            simr3::Iicscls,
3241            simr3::Iicscls,
3242            Simr3_SPEC,
3243            crate::common::RW,
3244        >::from_register(self, 0)
3245    }
3246}
3247impl ::core::default::Default for Simr3 {
3248    #[inline(always)]
3249    fn default() -> Simr3 {
3250        <crate::RegValueT<Simr3_SPEC> as RegisterValue<_>>::new(0)
3251    }
3252}
3253pub mod simr3 {
3254
3255    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3256    pub struct Iicstareq_SPEC;
3257    pub type Iicstareq = crate::EnumBitfieldStruct<u8, Iicstareq_SPEC>;
3258    impl Iicstareq {
3259        #[doc = "Do not generate start condition"]
3260        pub const _0: Self = Self::new(0);
3261
3262        #[doc = "Generate start condition"]
3263        pub const _1: Self = Self::new(1);
3264    }
3265    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3266    pub struct Iicrstareq_SPEC;
3267    pub type Iicrstareq = crate::EnumBitfieldStruct<u8, Iicrstareq_SPEC>;
3268    impl Iicrstareq {
3269        #[doc = "Do not generate restart condition"]
3270        pub const _0: Self = Self::new(0);
3271
3272        #[doc = "Generate restart condition"]
3273        pub const _1: Self = Self::new(1);
3274    }
3275    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3276    pub struct Iicstpreq_SPEC;
3277    pub type Iicstpreq = crate::EnumBitfieldStruct<u8, Iicstpreq_SPEC>;
3278    impl Iicstpreq {
3279        #[doc = "Do not generate stop condition"]
3280        pub const _0: Self = Self::new(0);
3281
3282        #[doc = "Generate stop condition"]
3283        pub const _1: Self = Self::new(1);
3284    }
3285    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3286    pub struct Iicstif_SPEC;
3287    pub type Iicstif = crate::EnumBitfieldStruct<u8, Iicstif_SPEC>;
3288    impl Iicstif {
3289        #[doc = "No requests are being made for generating conditions, or a condition is being generated"]
3290        pub const _0: Self = Self::new(0);
3291
3292        #[doc = "Generation of start, restart, or stop condition is complete. When 0 is written to IICSTIF, it is set to 0"]
3293        pub const _1: Self = Self::new(1);
3294    }
3295    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3296    pub struct Iicsdas_SPEC;
3297    pub type Iicsdas = crate::EnumBitfieldStruct<u8, Iicsdas_SPEC>;
3298    impl Iicsdas {
3299        #[doc = "Output serial data"]
3300        pub const _00: Self = Self::new(0);
3301
3302        #[doc = "Generate start, restart, or stop condition"]
3303        pub const _01: Self = Self::new(1);
3304
3305        #[doc = "Output low on SDAn pin"]
3306        pub const _10: Self = Self::new(2);
3307
3308        #[doc = "Drive SDAn pin to high-impedance state"]
3309        pub const _11: Self = Self::new(3);
3310    }
3311    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3312    pub struct Iicscls_SPEC;
3313    pub type Iicscls = crate::EnumBitfieldStruct<u8, Iicscls_SPEC>;
3314    impl Iicscls {
3315        #[doc = "Output serial clock"]
3316        pub const _00: Self = Self::new(0);
3317
3318        #[doc = "Generate start, restart, or stop condition"]
3319        pub const _01: Self = Self::new(1);
3320
3321        #[doc = "Output low on SCLn pin"]
3322        pub const _10: Self = Self::new(2);
3323
3324        #[doc = "Drive SCLn pin to high-impedance state"]
3325        pub const _11: Self = Self::new(3);
3326    }
3327}
3328#[doc(hidden)]
3329#[derive(Copy, Clone, Eq, PartialEq)]
3330pub struct Sisr_SPEC;
3331impl crate::sealed::RegSpec for Sisr_SPEC {
3332    type DataType = u8;
3333}
3334
3335#[doc = "IIC Status Register"]
3336pub type Sisr = crate::RegValueT<Sisr_SPEC>;
3337
3338impl Sisr {
3339    #[doc = "ACK Reception Data Flag"]
3340    #[inline(always)]
3341    pub fn iicackr(
3342        self,
3343    ) -> crate::common::RegisterField<
3344        0,
3345        0x1,
3346        1,
3347        0,
3348        sisr::Iicackr,
3349        sisr::Iicackr,
3350        Sisr_SPEC,
3351        crate::common::R,
3352    > {
3353        crate::common::RegisterField::<
3354            0,
3355            0x1,
3356            1,
3357            0,
3358            sisr::Iicackr,
3359            sisr::Iicackr,
3360            Sisr_SPEC,
3361            crate::common::R,
3362        >::from_register(self, 0)
3363    }
3364}
3365impl ::core::default::Default for Sisr {
3366    #[inline(always)]
3367    fn default() -> Sisr {
3368        <crate::RegValueT<Sisr_SPEC> as RegisterValue<_>>::new(0)
3369    }
3370}
3371pub mod sisr {
3372
3373    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3374    pub struct Iicackr_SPEC;
3375    pub type Iicackr = crate::EnumBitfieldStruct<u8, Iicackr_SPEC>;
3376    impl Iicackr {
3377        #[doc = "ACK received"]
3378        pub const _0: Self = Self::new(0);
3379
3380        #[doc = "NACK received"]
3381        pub const _1: Self = Self::new(1);
3382    }
3383}
3384#[doc(hidden)]
3385#[derive(Copy, Clone, Eq, PartialEq)]
3386pub struct Spmr_SPEC;
3387impl crate::sealed::RegSpec for Spmr_SPEC {
3388    type DataType = u8;
3389}
3390
3391#[doc = "SPI Mode Register"]
3392pub type Spmr = crate::RegValueT<Spmr_SPEC>;
3393
3394impl Spmr {
3395    #[doc = "SSn Pin Function Enable"]
3396    #[inline(always)]
3397    pub fn sse(
3398        self,
3399    ) -> crate::common::RegisterField<
3400        0,
3401        0x1,
3402        1,
3403        0,
3404        spmr::Sse,
3405        spmr::Sse,
3406        Spmr_SPEC,
3407        crate::common::RW,
3408    > {
3409        crate::common::RegisterField::<
3410            0,
3411            0x1,
3412            1,
3413            0,
3414            spmr::Sse,
3415            spmr::Sse,
3416            Spmr_SPEC,
3417            crate::common::RW,
3418        >::from_register(self, 0)
3419    }
3420
3421    #[doc = "CTS Enable"]
3422    #[inline(always)]
3423    pub fn ctse(
3424        self,
3425    ) -> crate::common::RegisterField<
3426        1,
3427        0x1,
3428        1,
3429        0,
3430        spmr::Ctse,
3431        spmr::Ctse,
3432        Spmr_SPEC,
3433        crate::common::RW,
3434    > {
3435        crate::common::RegisterField::<
3436            1,
3437            0x1,
3438            1,
3439            0,
3440            spmr::Ctse,
3441            spmr::Ctse,
3442            Spmr_SPEC,
3443            crate::common::RW,
3444        >::from_register(self, 0)
3445    }
3446
3447    #[doc = "Master Slave Select"]
3448    #[inline(always)]
3449    pub fn mss(
3450        self,
3451    ) -> crate::common::RegisterField<
3452        2,
3453        0x1,
3454        1,
3455        0,
3456        spmr::Mss,
3457        spmr::Mss,
3458        Spmr_SPEC,
3459        crate::common::RW,
3460    > {
3461        crate::common::RegisterField::<
3462            2,
3463            0x1,
3464            1,
3465            0,
3466            spmr::Mss,
3467            spmr::Mss,
3468            Spmr_SPEC,
3469            crate::common::RW,
3470        >::from_register(self, 0)
3471    }
3472
3473    #[doc = "CTS external pin Enable"]
3474    #[inline(always)]
3475    pub fn ctspen(
3476        self,
3477    ) -> crate::common::RegisterField<
3478        3,
3479        0x1,
3480        1,
3481        0,
3482        spmr::Ctspen,
3483        spmr::Ctspen,
3484        Spmr_SPEC,
3485        crate::common::RW,
3486    > {
3487        crate::common::RegisterField::<
3488            3,
3489            0x1,
3490            1,
3491            0,
3492            spmr::Ctspen,
3493            spmr::Ctspen,
3494            Spmr_SPEC,
3495            crate::common::RW,
3496        >::from_register(self, 0)
3497    }
3498
3499    #[doc = "Mode Fault Flag"]
3500    #[inline(always)]
3501    pub fn mff(
3502        self,
3503    ) -> crate::common::RegisterField<
3504        4,
3505        0x1,
3506        1,
3507        0,
3508        spmr::Mff,
3509        spmr::Mff,
3510        Spmr_SPEC,
3511        crate::common::RW,
3512    > {
3513        crate::common::RegisterField::<
3514            4,
3515            0x1,
3516            1,
3517            0,
3518            spmr::Mff,
3519            spmr::Mff,
3520            Spmr_SPEC,
3521            crate::common::RW,
3522        >::from_register(self, 0)
3523    }
3524
3525    #[doc = "Clock Polarity Select"]
3526    #[inline(always)]
3527    pub fn ckpol(
3528        self,
3529    ) -> crate::common::RegisterField<
3530        6,
3531        0x1,
3532        1,
3533        0,
3534        spmr::Ckpol,
3535        spmr::Ckpol,
3536        Spmr_SPEC,
3537        crate::common::RW,
3538    > {
3539        crate::common::RegisterField::<
3540            6,
3541            0x1,
3542            1,
3543            0,
3544            spmr::Ckpol,
3545            spmr::Ckpol,
3546            Spmr_SPEC,
3547            crate::common::RW,
3548        >::from_register(self, 0)
3549    }
3550
3551    #[doc = "Clock Phase Select"]
3552    #[inline(always)]
3553    pub fn ckph(
3554        self,
3555    ) -> crate::common::RegisterField<
3556        7,
3557        0x1,
3558        1,
3559        0,
3560        spmr::Ckph,
3561        spmr::Ckph,
3562        Spmr_SPEC,
3563        crate::common::RW,
3564    > {
3565        crate::common::RegisterField::<
3566            7,
3567            0x1,
3568            1,
3569            0,
3570            spmr::Ckph,
3571            spmr::Ckph,
3572            Spmr_SPEC,
3573            crate::common::RW,
3574        >::from_register(self, 0)
3575    }
3576}
3577impl ::core::default::Default for Spmr {
3578    #[inline(always)]
3579    fn default() -> Spmr {
3580        <crate::RegValueT<Spmr_SPEC> as RegisterValue<_>>::new(0)
3581    }
3582}
3583pub mod spmr {
3584
3585    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3586    pub struct Sse_SPEC;
3587    pub type Sse = crate::EnumBitfieldStruct<u8, Sse_SPEC>;
3588    impl Sse {
3589        #[doc = "Disable SSn pin function"]
3590        pub const _0: Self = Self::new(0);
3591
3592        #[doc = "Enable SSn pin function"]
3593        pub const _1: Self = Self::new(1);
3594    }
3595    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3596    pub struct Ctse_SPEC;
3597    pub type Ctse = crate::EnumBitfieldStruct<u8, Ctse_SPEC>;
3598    impl Ctse {
3599        #[doc = "Disable CTS function (enable RTS output function)"]
3600        pub const _0: Self = Self::new(0);
3601
3602        #[doc = "Enable CTS function"]
3603        pub const _1: Self = Self::new(1);
3604    }
3605    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3606    pub struct Mss_SPEC;
3607    pub type Mss = crate::EnumBitfieldStruct<u8, Mss_SPEC>;
3608    impl Mss {
3609        #[doc = "Transmit through TXDn pin and receive through RXDn pin (master mode)"]
3610        pub const _0: Self = Self::new(0);
3611
3612        #[doc = "Receive through TXDn pin and transmit through RXDn pin (slave mode)"]
3613        pub const _1: Self = Self::new(1);
3614    }
3615    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3616    pub struct Ctspen_SPEC;
3617    pub type Ctspen = crate::EnumBitfieldStruct<u8, Ctspen_SPEC>;
3618    impl Ctspen {
3619        #[doc = "Alternate setting to use CTS and RTS functions as either one terminal"]
3620        pub const _0: Self = Self::new(0);
3621
3622        #[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."]
3623        pub const _1: Self = Self::new(1);
3624    }
3625    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3626    pub struct Mff_SPEC;
3627    pub type Mff = crate::EnumBitfieldStruct<u8, Mff_SPEC>;
3628    impl Mff {
3629        #[doc = "No mode fault error"]
3630        pub const _0: Self = Self::new(0);
3631
3632        #[doc = "Mode fault error"]
3633        pub const _1: Self = Self::new(1);
3634    }
3635    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3636    pub struct Ckpol_SPEC;
3637    pub type Ckpol = crate::EnumBitfieldStruct<u8, Ckpol_SPEC>;
3638    impl Ckpol {
3639        #[doc = "Do not invert clock polarity"]
3640        pub const _0: Self = Self::new(0);
3641
3642        #[doc = "Invert clock polarity"]
3643        pub const _1: Self = Self::new(1);
3644    }
3645    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3646    pub struct Ckph_SPEC;
3647    pub type Ckph = crate::EnumBitfieldStruct<u8, Ckph_SPEC>;
3648    impl Ckph {
3649        #[doc = "Do not delay clock"]
3650        pub const _0: Self = Self::new(0);
3651
3652        #[doc = "Delay clock"]
3653        pub const _1: Self = Self::new(1);
3654    }
3655}
3656#[doc(hidden)]
3657#[derive(Copy, Clone, Eq, PartialEq)]
3658pub struct Ftdrhl_SPEC;
3659impl crate::sealed::RegSpec for Ftdrhl_SPEC {
3660    type DataType = u16;
3661}
3662
3663#[doc = "Transmit FIFO Data Register"]
3664pub type Ftdrhl = crate::RegValueT<Ftdrhl_SPEC>;
3665
3666impl Ftdrhl {
3667    #[doc = "Serial transmit data"]
3668    #[inline(always)]
3669    pub fn tdat(
3670        self,
3671    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Ftdrhl_SPEC, crate::common::W> {
3672        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Ftdrhl_SPEC,crate::common::W>::from_register(self,0)
3673    }
3674
3675    #[doc = "Multi-Processor Transfer Bit Flag"]
3676    #[inline(always)]
3677    pub fn mpbt(
3678        self,
3679    ) -> crate::common::RegisterField<
3680        9,
3681        0x1,
3682        1,
3683        0,
3684        ftdrhl::Mpbt,
3685        ftdrhl::Mpbt,
3686        Ftdrhl_SPEC,
3687        crate::common::W,
3688    > {
3689        crate::common::RegisterField::<
3690            9,
3691            0x1,
3692            1,
3693            0,
3694            ftdrhl::Mpbt,
3695            ftdrhl::Mpbt,
3696            Ftdrhl_SPEC,
3697            crate::common::W,
3698        >::from_register(self, 0)
3699    }
3700}
3701impl ::core::default::Default for Ftdrhl {
3702    #[inline(always)]
3703    fn default() -> Ftdrhl {
3704        <crate::RegValueT<Ftdrhl_SPEC> as RegisterValue<_>>::new(65535)
3705    }
3706}
3707pub mod ftdrhl {
3708
3709    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3710    pub struct Mpbt_SPEC;
3711    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
3712    impl Mpbt {
3713        #[doc = "Data transmission cycle"]
3714        pub const _0: Self = Self::new(0);
3715
3716        #[doc = "ID transmission cycle"]
3717        pub const _1: Self = Self::new(1);
3718    }
3719}
3720#[doc(hidden)]
3721#[derive(Copy, Clone, Eq, PartialEq)]
3722pub struct Tdrhl_SPEC;
3723impl crate::sealed::RegSpec for Tdrhl_SPEC {
3724    type DataType = u16;
3725}
3726
3727#[doc = "Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
3728pub type Tdrhl = crate::RegValueT<Tdrhl_SPEC>;
3729
3730impl Tdrhl {
3731    #[doc = "Serial Transmit Data"]
3732    #[inline(always)]
3733    pub fn tdat(
3734        self,
3735    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Tdrhl_SPEC, crate::common::RW> {
3736        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Tdrhl_SPEC,crate::common::RW>::from_register(self,0)
3737    }
3738}
3739impl ::core::default::Default for Tdrhl {
3740    #[inline(always)]
3741    fn default() -> Tdrhl {
3742        <crate::RegValueT<Tdrhl_SPEC> as RegisterValue<_>>::new(65535)
3743    }
3744}
3745
3746#[doc(hidden)]
3747#[derive(Copy, Clone, Eq, PartialEq)]
3748pub struct TdrhlMan_SPEC;
3749impl crate::sealed::RegSpec for TdrhlMan_SPEC {
3750    type DataType = u16;
3751}
3752
3753#[doc = "Transmit Data Register for Manchester mode (MMR.MANEN = 1)"]
3754pub type TdrhlMan = crate::RegValueT<TdrhlMan_SPEC>;
3755
3756impl TdrhlMan {
3757    #[doc = "Serial transmit data"]
3758    #[inline(always)]
3759    pub fn tdat(
3760        self,
3761    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, TdrhlMan_SPEC, crate::common::RW>
3762    {
3763        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,TdrhlMan_SPEC,crate::common::RW>::from_register(self,0)
3764    }
3765
3766    #[doc = "Multi-processor transfer bit flag"]
3767    #[inline(always)]
3768    pub fn mpbt(
3769        self,
3770    ) -> crate::common::RegisterField<
3771        9,
3772        0x1,
3773        1,
3774        0,
3775        tdrhl_man::Mpbt,
3776        tdrhl_man::Mpbt,
3777        TdrhlMan_SPEC,
3778        crate::common::RW,
3779    > {
3780        crate::common::RegisterField::<
3781            9,
3782            0x1,
3783            1,
3784            0,
3785            tdrhl_man::Mpbt,
3786            tdrhl_man::Mpbt,
3787            TdrhlMan_SPEC,
3788            crate::common::RW,
3789        >::from_register(self, 0)
3790    }
3791
3792    #[doc = "Transmit SYNC data bit"]
3793    #[inline(always)]
3794    pub fn tsync(
3795        self,
3796    ) -> crate::common::RegisterField<
3797        12,
3798        0x1,
3799        1,
3800        0,
3801        tdrhl_man::Tsync,
3802        tdrhl_man::Tsync,
3803        TdrhlMan_SPEC,
3804        crate::common::RW,
3805    > {
3806        crate::common::RegisterField::<
3807            12,
3808            0x1,
3809            1,
3810            0,
3811            tdrhl_man::Tsync,
3812            tdrhl_man::Tsync,
3813            TdrhlMan_SPEC,
3814            crate::common::RW,
3815        >::from_register(self, 0)
3816    }
3817}
3818impl ::core::default::Default for TdrhlMan {
3819    #[inline(always)]
3820    fn default() -> TdrhlMan {
3821        <crate::RegValueT<TdrhlMan_SPEC> as RegisterValue<_>>::new(65535)
3822    }
3823}
3824pub mod tdrhl_man {
3825
3826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3827    pub struct Mpbt_SPEC;
3828    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
3829    impl Mpbt {
3830        #[doc = "Data transmission cycles"]
3831        pub const _0: Self = Self::new(0);
3832
3833        #[doc = "ID transmission cycles"]
3834        pub const _1: Self = Self::new(1);
3835    }
3836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3837    pub struct Tsync_SPEC;
3838    pub type Tsync = crate::EnumBitfieldStruct<u8, Tsync_SPEC>;
3839    impl Tsync {
3840        #[doc = "The Start Bit is transmitted as DATA SYNC."]
3841        pub const _0: Self = Self::new(0);
3842
3843        #[doc = "The Start Bit is transmitted as COMMAND SYNC."]
3844        pub const _1: Self = Self::new(1);
3845    }
3846}
3847#[doc(hidden)]
3848#[derive(Copy, Clone, Eq, PartialEq)]
3849pub struct Ftdrh_SPEC;
3850impl crate::sealed::RegSpec for Ftdrh_SPEC {
3851    type DataType = u8;
3852}
3853
3854#[doc = "Transmit FIFO Data Register"]
3855pub type Ftdrh = crate::RegValueT<Ftdrh_SPEC>;
3856
3857impl Ftdrh {
3858    #[doc = "Multi-Processor Transfer Bit Flag"]
3859    #[inline(always)]
3860    pub fn mpbt(
3861        self,
3862    ) -> crate::common::RegisterField<
3863        1,
3864        0x1,
3865        1,
3866        0,
3867        ftdrh::Mpbt,
3868        ftdrh::Mpbt,
3869        Ftdrh_SPEC,
3870        crate::common::W,
3871    > {
3872        crate::common::RegisterField::<
3873            1,
3874            0x1,
3875            1,
3876            0,
3877            ftdrh::Mpbt,
3878            ftdrh::Mpbt,
3879            Ftdrh_SPEC,
3880            crate::common::W,
3881        >::from_register(self, 0)
3882    }
3883}
3884impl ::core::default::Default for Ftdrh {
3885    #[inline(always)]
3886    fn default() -> Ftdrh {
3887        <crate::RegValueT<Ftdrh_SPEC> as RegisterValue<_>>::new(255)
3888    }
3889}
3890pub mod ftdrh {
3891
3892    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3893    pub struct Mpbt_SPEC;
3894    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
3895    impl Mpbt {
3896        #[doc = "Data transmission cycle"]
3897        pub const _0: Self = Self::new(0);
3898
3899        #[doc = "ID transmission cycle"]
3900        pub const _1: Self = Self::new(1);
3901    }
3902}
3903#[doc(hidden)]
3904#[derive(Copy, Clone, Eq, PartialEq)]
3905pub struct Ftdrl_SPEC;
3906impl crate::sealed::RegSpec for Ftdrl_SPEC {
3907    type DataType = u8;
3908}
3909
3910#[doc = "Transmit FIFO Data Register"]
3911pub type Ftdrl = crate::RegValueT<Ftdrl_SPEC>;
3912
3913impl Ftdrl {
3914    #[doc = "Serial transmit data"]
3915    #[inline(always)]
3916    pub fn tdat(
3917        self,
3918    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Ftdrl_SPEC, crate::common::W> {
3919        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Ftdrl_SPEC,crate::common::W>::from_register(self,0)
3920    }
3921}
3922impl ::core::default::Default for Ftdrl {
3923    #[inline(always)]
3924    fn default() -> Ftdrl {
3925        <crate::RegValueT<Ftdrl_SPEC> as RegisterValue<_>>::new(255)
3926    }
3927}
3928
3929#[doc(hidden)]
3930#[derive(Copy, Clone, Eq, PartialEq)]
3931pub struct Frdrhl_SPEC;
3932impl crate::sealed::RegSpec for Frdrhl_SPEC {
3933    type DataType = u16;
3934}
3935
3936#[doc = "Receive FIFO Data Register"]
3937pub type Frdrhl = crate::RegValueT<Frdrhl_SPEC>;
3938
3939impl Frdrhl {
3940    #[doc = "Serial receive data"]
3941    #[inline(always)]
3942    pub fn rdat(
3943        self,
3944    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Frdrhl_SPEC, crate::common::R> {
3945        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Frdrhl_SPEC,crate::common::R>::from_register(self,0)
3946    }
3947
3948    #[doc = "Multi-Processor Bit Flag"]
3949    #[inline(always)]
3950    pub fn mpb(
3951        self,
3952    ) -> crate::common::RegisterField<
3953        9,
3954        0x1,
3955        1,
3956        0,
3957        frdrhl::Mpb,
3958        frdrhl::Mpb,
3959        Frdrhl_SPEC,
3960        crate::common::R,
3961    > {
3962        crate::common::RegisterField::<
3963            9,
3964            0x1,
3965            1,
3966            0,
3967            frdrhl::Mpb,
3968            frdrhl::Mpb,
3969            Frdrhl_SPEC,
3970            crate::common::R,
3971        >::from_register(self, 0)
3972    }
3973
3974    #[doc = "Receive Data Ready Flag"]
3975    #[inline(always)]
3976    pub fn dr(
3977        self,
3978    ) -> crate::common::RegisterField<
3979        10,
3980        0x1,
3981        1,
3982        0,
3983        frdrhl::Dr,
3984        frdrhl::Dr,
3985        Frdrhl_SPEC,
3986        crate::common::R,
3987    > {
3988        crate::common::RegisterField::<
3989            10,
3990            0x1,
3991            1,
3992            0,
3993            frdrhl::Dr,
3994            frdrhl::Dr,
3995            Frdrhl_SPEC,
3996            crate::common::R,
3997        >::from_register(self, 0)
3998    }
3999
4000    #[doc = "Parity Error Flag"]
4001    #[inline(always)]
4002    pub fn per(
4003        self,
4004    ) -> crate::common::RegisterField<
4005        11,
4006        0x1,
4007        1,
4008        0,
4009        frdrhl::Per,
4010        frdrhl::Per,
4011        Frdrhl_SPEC,
4012        crate::common::R,
4013    > {
4014        crate::common::RegisterField::<
4015            11,
4016            0x1,
4017            1,
4018            0,
4019            frdrhl::Per,
4020            frdrhl::Per,
4021            Frdrhl_SPEC,
4022            crate::common::R,
4023        >::from_register(self, 0)
4024    }
4025
4026    #[doc = "Framing Error Flag"]
4027    #[inline(always)]
4028    pub fn fer(
4029        self,
4030    ) -> crate::common::RegisterField<
4031        12,
4032        0x1,
4033        1,
4034        0,
4035        frdrhl::Fer,
4036        frdrhl::Fer,
4037        Frdrhl_SPEC,
4038        crate::common::R,
4039    > {
4040        crate::common::RegisterField::<
4041            12,
4042            0x1,
4043            1,
4044            0,
4045            frdrhl::Fer,
4046            frdrhl::Fer,
4047            Frdrhl_SPEC,
4048            crate::common::R,
4049        >::from_register(self, 0)
4050    }
4051
4052    #[doc = "Overrun Error Flag"]
4053    #[inline(always)]
4054    pub fn orer(
4055        self,
4056    ) -> crate::common::RegisterField<
4057        13,
4058        0x1,
4059        1,
4060        0,
4061        frdrhl::Orer,
4062        frdrhl::Orer,
4063        Frdrhl_SPEC,
4064        crate::common::R,
4065    > {
4066        crate::common::RegisterField::<
4067            13,
4068            0x1,
4069            1,
4070            0,
4071            frdrhl::Orer,
4072            frdrhl::Orer,
4073            Frdrhl_SPEC,
4074            crate::common::R,
4075        >::from_register(self, 0)
4076    }
4077
4078    #[doc = "Receive FIFO Data Full Flag"]
4079    #[inline(always)]
4080    pub fn rdf(
4081        self,
4082    ) -> crate::common::RegisterField<
4083        14,
4084        0x1,
4085        1,
4086        0,
4087        frdrhl::Rdf,
4088        frdrhl::Rdf,
4089        Frdrhl_SPEC,
4090        crate::common::R,
4091    > {
4092        crate::common::RegisterField::<
4093            14,
4094            0x1,
4095            1,
4096            0,
4097            frdrhl::Rdf,
4098            frdrhl::Rdf,
4099            Frdrhl_SPEC,
4100            crate::common::R,
4101        >::from_register(self, 0)
4102    }
4103}
4104impl ::core::default::Default for Frdrhl {
4105    #[inline(always)]
4106    fn default() -> Frdrhl {
4107        <crate::RegValueT<Frdrhl_SPEC> as RegisterValue<_>>::new(0)
4108    }
4109}
4110pub mod frdrhl {
4111
4112    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4113    pub struct Mpb_SPEC;
4114    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
4115    impl Mpb {
4116        #[doc = "Data transmission cycle"]
4117        pub const _0: Self = Self::new(0);
4118
4119        #[doc = "ID transmission cycle"]
4120        pub const _1: Self = Self::new(1);
4121    }
4122    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4123    pub struct Dr_SPEC;
4124    pub type Dr = crate::EnumBitfieldStruct<u8, Dr_SPEC>;
4125    impl Dr {
4126        #[doc = "Receiving is in progress, or no received data remains in the FRDRH and FRDRL registers after successfully completed reception"]
4127        pub const _0: Self = Self::new(0);
4128
4129        #[doc = "Next receive data is not received for a period after successfully completed reception"]
4130        pub const _1: Self = Self::new(1);
4131    }
4132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4133    pub struct Per_SPEC;
4134    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
4135    impl Per {
4136        #[doc = "No parity error occurred in the first data of FRDRH and FRDRL"]
4137        pub const _0: Self = Self::new(0);
4138
4139        #[doc = "Parity error occurred in the first data of FRDRH and FRDRL"]
4140        pub const _1: Self = Self::new(1);
4141    }
4142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4143    pub struct Fer_SPEC;
4144    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
4145    impl Fer {
4146        #[doc = "No framing error occurred in the first data of FRDRH and FRDRL"]
4147        pub const _0: Self = Self::new(0);
4148
4149        #[doc = "Framing error occurred in the first data of FRDRH and FRDRL"]
4150        pub const _1: Self = Self::new(1);
4151    }
4152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4153    pub struct Orer_SPEC;
4154    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
4155    impl Orer {
4156        #[doc = "No overrun error occurred"]
4157        pub const _0: Self = Self::new(0);
4158
4159        #[doc = "Overrun error occurred"]
4160        pub const _1: Self = Self::new(1);
4161    }
4162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4163    pub struct Rdf_SPEC;
4164    pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
4165    impl Rdf {
4166        #[doc = "The amount of receive data written in FRDRH and FRDRL is less than the specified receive triggering number"]
4167        pub const _0: Self = Self::new(0);
4168
4169        #[doc = "The amount of receive data written in FRDRH and FRDRL is equal to or greater than the specified receive triggering number"]
4170        pub const _1: Self = Self::new(1);
4171    }
4172}
4173#[doc(hidden)]
4174#[derive(Copy, Clone, Eq, PartialEq)]
4175pub struct Rdrhl_SPEC;
4176impl crate::sealed::RegSpec for Rdrhl_SPEC {
4177    type DataType = u16;
4178}
4179
4180#[doc = "Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
4181pub type Rdrhl = crate::RegValueT<Rdrhl_SPEC>;
4182
4183impl Rdrhl {
4184    #[doc = "Serial Receive Data"]
4185    #[inline(always)]
4186    pub fn rdat(
4187        self,
4188    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Rdrhl_SPEC, crate::common::R> {
4189        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Rdrhl_SPEC,crate::common::R>::from_register(self,0)
4190    }
4191}
4192impl ::core::default::Default for Rdrhl {
4193    #[inline(always)]
4194    fn default() -> Rdrhl {
4195        <crate::RegValueT<Rdrhl_SPEC> as RegisterValue<_>>::new(0)
4196    }
4197}
4198
4199#[doc(hidden)]
4200#[derive(Copy, Clone, Eq, PartialEq)]
4201pub struct RdrhlMan_SPEC;
4202impl crate::sealed::RegSpec for RdrhlMan_SPEC {
4203    type DataType = u16;
4204}
4205
4206#[doc = "Receive Data Register for Manchester mode (MMR.MANEN = 1)"]
4207pub type RdrhlMan = crate::RegValueT<RdrhlMan_SPEC>;
4208
4209impl RdrhlMan {
4210    #[doc = "Serial receive data"]
4211    #[inline(always)]
4212    pub fn rdat(
4213        self,
4214    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, RdrhlMan_SPEC, crate::common::R>
4215    {
4216        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,RdrhlMan_SPEC,crate::common::R>::from_register(self,0)
4217    }
4218
4219    #[doc = "Multi-processor bit"]
4220    #[inline(always)]
4221    pub fn mpb(
4222        self,
4223    ) -> crate::common::RegisterField<
4224        9,
4225        0x1,
4226        1,
4227        0,
4228        rdrhl_man::Mpb,
4229        rdrhl_man::Mpb,
4230        RdrhlMan_SPEC,
4231        crate::common::R,
4232    > {
4233        crate::common::RegisterField::<
4234            9,
4235            0x1,
4236            1,
4237            0,
4238            rdrhl_man::Mpb,
4239            rdrhl_man::Mpb,
4240            RdrhlMan_SPEC,
4241            crate::common::R,
4242        >::from_register(self, 0)
4243    }
4244
4245    #[doc = "Receive SYNC data bit"]
4246    #[inline(always)]
4247    pub fn rsync(
4248        self,
4249    ) -> crate::common::RegisterField<
4250        12,
4251        0x1,
4252        1,
4253        0,
4254        rdrhl_man::Rsync,
4255        rdrhl_man::Rsync,
4256        RdrhlMan_SPEC,
4257        crate::common::R,
4258    > {
4259        crate::common::RegisterField::<
4260            12,
4261            0x1,
4262            1,
4263            0,
4264            rdrhl_man::Rsync,
4265            rdrhl_man::Rsync,
4266            RdrhlMan_SPEC,
4267            crate::common::R,
4268        >::from_register(self, 0)
4269    }
4270}
4271impl ::core::default::Default for RdrhlMan {
4272    #[inline(always)]
4273    fn default() -> RdrhlMan {
4274        <crate::RegValueT<RdrhlMan_SPEC> as RegisterValue<_>>::new(0)
4275    }
4276}
4277pub mod rdrhl_man {
4278
4279    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4280    pub struct Mpb_SPEC;
4281    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
4282    impl Mpb {
4283        #[doc = "Data transmission cycles"]
4284        pub const _0: Self = Self::new(0);
4285
4286        #[doc = "ID transmission cycles"]
4287        pub const _1: Self = Self::new(1);
4288    }
4289    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4290    pub struct Rsync_SPEC;
4291    pub type Rsync = crate::EnumBitfieldStruct<u8, Rsync_SPEC>;
4292    impl Rsync {
4293        #[doc = "The received the Start Bit is DATA SYNC"]
4294        pub const _0: Self = Self::new(0);
4295
4296        #[doc = "The received the Start Bit is COMMAND SYNC"]
4297        pub const _1: Self = Self::new(1);
4298    }
4299}
4300#[doc(hidden)]
4301#[derive(Copy, Clone, Eq, PartialEq)]
4302pub struct Frdrh_SPEC;
4303impl crate::sealed::RegSpec for Frdrh_SPEC {
4304    type DataType = u8;
4305}
4306
4307#[doc = "Receive FIFO Data Register"]
4308pub type Frdrh = crate::RegValueT<Frdrh_SPEC>;
4309
4310impl Frdrh {
4311    #[doc = "Multi-Processor Bit Flag"]
4312    #[inline(always)]
4313    pub fn mpb(
4314        self,
4315    ) -> crate::common::RegisterField<
4316        1,
4317        0x1,
4318        1,
4319        0,
4320        frdrh::Mpb,
4321        frdrh::Mpb,
4322        Frdrh_SPEC,
4323        crate::common::R,
4324    > {
4325        crate::common::RegisterField::<
4326            1,
4327            0x1,
4328            1,
4329            0,
4330            frdrh::Mpb,
4331            frdrh::Mpb,
4332            Frdrh_SPEC,
4333            crate::common::R,
4334        >::from_register(self, 0)
4335    }
4336
4337    #[doc = "Receive Data Ready Flag"]
4338    #[inline(always)]
4339    pub fn dr(
4340        self,
4341    ) -> crate::common::RegisterField<
4342        2,
4343        0x1,
4344        1,
4345        0,
4346        frdrh::Dr,
4347        frdrh::Dr,
4348        Frdrh_SPEC,
4349        crate::common::R,
4350    > {
4351        crate::common::RegisterField::<
4352            2,
4353            0x1,
4354            1,
4355            0,
4356            frdrh::Dr,
4357            frdrh::Dr,
4358            Frdrh_SPEC,
4359            crate::common::R,
4360        >::from_register(self, 0)
4361    }
4362
4363    #[doc = "Parity Error Flag"]
4364    #[inline(always)]
4365    pub fn per(
4366        self,
4367    ) -> crate::common::RegisterField<
4368        3,
4369        0x1,
4370        1,
4371        0,
4372        frdrh::Per,
4373        frdrh::Per,
4374        Frdrh_SPEC,
4375        crate::common::R,
4376    > {
4377        crate::common::RegisterField::<
4378            3,
4379            0x1,
4380            1,
4381            0,
4382            frdrh::Per,
4383            frdrh::Per,
4384            Frdrh_SPEC,
4385            crate::common::R,
4386        >::from_register(self, 0)
4387    }
4388
4389    #[doc = "Framing Error Flag"]
4390    #[inline(always)]
4391    pub fn fer(
4392        self,
4393    ) -> crate::common::RegisterField<
4394        4,
4395        0x1,
4396        1,
4397        0,
4398        frdrh::Fer,
4399        frdrh::Fer,
4400        Frdrh_SPEC,
4401        crate::common::R,
4402    > {
4403        crate::common::RegisterField::<
4404            4,
4405            0x1,
4406            1,
4407            0,
4408            frdrh::Fer,
4409            frdrh::Fer,
4410            Frdrh_SPEC,
4411            crate::common::R,
4412        >::from_register(self, 0)
4413    }
4414
4415    #[doc = "Overrun Error Flag"]
4416    #[inline(always)]
4417    pub fn orer(
4418        self,
4419    ) -> crate::common::RegisterField<
4420        5,
4421        0x1,
4422        1,
4423        0,
4424        frdrh::Orer,
4425        frdrh::Orer,
4426        Frdrh_SPEC,
4427        crate::common::R,
4428    > {
4429        crate::common::RegisterField::<
4430            5,
4431            0x1,
4432            1,
4433            0,
4434            frdrh::Orer,
4435            frdrh::Orer,
4436            Frdrh_SPEC,
4437            crate::common::R,
4438        >::from_register(self, 0)
4439    }
4440
4441    #[doc = "Receive FIFO Data Full Flag"]
4442    #[inline(always)]
4443    pub fn rdf(
4444        self,
4445    ) -> crate::common::RegisterField<
4446        6,
4447        0x1,
4448        1,
4449        0,
4450        frdrh::Rdf,
4451        frdrh::Rdf,
4452        Frdrh_SPEC,
4453        crate::common::R,
4454    > {
4455        crate::common::RegisterField::<
4456            6,
4457            0x1,
4458            1,
4459            0,
4460            frdrh::Rdf,
4461            frdrh::Rdf,
4462            Frdrh_SPEC,
4463            crate::common::R,
4464        >::from_register(self, 0)
4465    }
4466}
4467impl ::core::default::Default for Frdrh {
4468    #[inline(always)]
4469    fn default() -> Frdrh {
4470        <crate::RegValueT<Frdrh_SPEC> as RegisterValue<_>>::new(0)
4471    }
4472}
4473pub mod frdrh {
4474
4475    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4476    pub struct Mpb_SPEC;
4477    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
4478    impl Mpb {
4479        #[doc = "Data transmission cycle"]
4480        pub const _0: Self = Self::new(0);
4481
4482        #[doc = "ID transmission cycle"]
4483        pub const _1: Self = Self::new(1);
4484    }
4485    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4486    pub struct Dr_SPEC;
4487    pub type Dr = crate::EnumBitfieldStruct<u8, Dr_SPEC>;
4488    impl Dr {
4489        #[doc = "Receiving is in progress, or no received data remains in the FRDRH and FRDRL registers after successfully completed reception"]
4490        pub const _0: Self = Self::new(0);
4491
4492        #[doc = "Next receive data is not received for a period after successfully completed reception"]
4493        pub const _1: Self = Self::new(1);
4494    }
4495    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4496    pub struct Per_SPEC;
4497    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
4498    impl Per {
4499        #[doc = "No parity error occurred in the first data of FRDRH and FRDRL"]
4500        pub const _0: Self = Self::new(0);
4501
4502        #[doc = "Parity error occurred in the first data of FRDRH and FRDRL"]
4503        pub const _1: Self = Self::new(1);
4504    }
4505    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4506    pub struct Fer_SPEC;
4507    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
4508    impl Fer {
4509        #[doc = "No framing error occurred in the first data of FRDRH and FRDRL"]
4510        pub const _0: Self = Self::new(0);
4511
4512        #[doc = "Framing error occurred in the first data of FRDRH and FRDRL"]
4513        pub const _1: Self = Self::new(1);
4514    }
4515    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4516    pub struct Orer_SPEC;
4517    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
4518    impl Orer {
4519        #[doc = "No overrun error occurred"]
4520        pub const _0: Self = Self::new(0);
4521
4522        #[doc = "Overrun error occurred"]
4523        pub const _1: Self = Self::new(1);
4524    }
4525    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4526    pub struct Rdf_SPEC;
4527    pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
4528    impl Rdf {
4529        #[doc = "The amount of receive data written in FRDRH and FRDRL is less than the specified receive triggering number"]
4530        pub const _0: Self = Self::new(0);
4531
4532        #[doc = "The amount of receive data written in FRDRH and FRDRL is equal to or greater than the specified receive triggering number"]
4533        pub const _1: Self = Self::new(1);
4534    }
4535}
4536#[doc(hidden)]
4537#[derive(Copy, Clone, Eq, PartialEq)]
4538pub struct Frdrl_SPEC;
4539impl crate::sealed::RegSpec for Frdrl_SPEC {
4540    type DataType = u8;
4541}
4542
4543#[doc = "Receive FIFO Data Register"]
4544pub type Frdrl = crate::RegValueT<Frdrl_SPEC>;
4545
4546impl Frdrl {
4547    #[doc = "Serial receive data"]
4548    #[inline(always)]
4549    pub fn rdat(
4550        self,
4551    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Frdrl_SPEC, crate::common::R> {
4552        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Frdrl_SPEC,crate::common::R>::from_register(self,0)
4553    }
4554}
4555impl ::core::default::Default for Frdrl {
4556    #[inline(always)]
4557    fn default() -> Frdrl {
4558        <crate::RegValueT<Frdrl_SPEC> as RegisterValue<_>>::new(0)
4559    }
4560}
4561
4562#[doc(hidden)]
4563#[derive(Copy, Clone, Eq, PartialEq)]
4564pub struct Mddr_SPEC;
4565impl crate::sealed::RegSpec for Mddr_SPEC {
4566    type DataType = u8;
4567}
4568
4569#[doc = "Modulation Duty Register"]
4570pub type Mddr = crate::RegValueT<Mddr_SPEC>;
4571
4572impl NoBitfieldReg<Mddr_SPEC> for Mddr {}
4573impl ::core::default::Default for Mddr {
4574    #[inline(always)]
4575    fn default() -> Mddr {
4576        <crate::RegValueT<Mddr_SPEC> as RegisterValue<_>>::new(255)
4577    }
4578}
4579
4580#[doc(hidden)]
4581#[derive(Copy, Clone, Eq, PartialEq)]
4582pub struct Dccr_SPEC;
4583impl crate::sealed::RegSpec for Dccr_SPEC {
4584    type DataType = u8;
4585}
4586
4587#[doc = "Data Compare Match Control Register"]
4588pub type Dccr = crate::RegValueT<Dccr_SPEC>;
4589
4590impl Dccr {
4591    #[doc = "Data Compare Match Flag"]
4592    #[inline(always)]
4593    pub fn dcmf(
4594        self,
4595    ) -> crate::common::RegisterField<
4596        0,
4597        0x1,
4598        1,
4599        0,
4600        dccr::Dcmf,
4601        dccr::Dcmf,
4602        Dccr_SPEC,
4603        crate::common::RW,
4604    > {
4605        crate::common::RegisterField::<
4606            0,
4607            0x1,
4608            1,
4609            0,
4610            dccr::Dcmf,
4611            dccr::Dcmf,
4612            Dccr_SPEC,
4613            crate::common::RW,
4614        >::from_register(self, 0)
4615    }
4616
4617    #[doc = "Data Compare Match Parity Error Flag"]
4618    #[inline(always)]
4619    pub fn dper(
4620        self,
4621    ) -> crate::common::RegisterField<
4622        3,
4623        0x1,
4624        1,
4625        0,
4626        dccr::Dper,
4627        dccr::Dper,
4628        Dccr_SPEC,
4629        crate::common::RW,
4630    > {
4631        crate::common::RegisterField::<
4632            3,
4633            0x1,
4634            1,
4635            0,
4636            dccr::Dper,
4637            dccr::Dper,
4638            Dccr_SPEC,
4639            crate::common::RW,
4640        >::from_register(self, 0)
4641    }
4642
4643    #[doc = "Data Compare Match Framing Error Flag"]
4644    #[inline(always)]
4645    pub fn dfer(
4646        self,
4647    ) -> crate::common::RegisterField<
4648        4,
4649        0x1,
4650        1,
4651        0,
4652        dccr::Dfer,
4653        dccr::Dfer,
4654        Dccr_SPEC,
4655        crate::common::RW,
4656    > {
4657        crate::common::RegisterField::<
4658            4,
4659            0x1,
4660            1,
4661            0,
4662            dccr::Dfer,
4663            dccr::Dfer,
4664            Dccr_SPEC,
4665            crate::common::RW,
4666        >::from_register(self, 0)
4667    }
4668
4669    #[doc = "ID Frame Select"]
4670    #[inline(always)]
4671    pub fn idsel(
4672        self,
4673    ) -> crate::common::RegisterField<
4674        6,
4675        0x1,
4676        1,
4677        0,
4678        dccr::Idsel,
4679        dccr::Idsel,
4680        Dccr_SPEC,
4681        crate::common::RW,
4682    > {
4683        crate::common::RegisterField::<
4684            6,
4685            0x1,
4686            1,
4687            0,
4688            dccr::Idsel,
4689            dccr::Idsel,
4690            Dccr_SPEC,
4691            crate::common::RW,
4692        >::from_register(self, 0)
4693    }
4694
4695    #[doc = "Data Compare Match Enable"]
4696    #[inline(always)]
4697    pub fn dcme(
4698        self,
4699    ) -> crate::common::RegisterField<
4700        7,
4701        0x1,
4702        1,
4703        0,
4704        dccr::Dcme,
4705        dccr::Dcme,
4706        Dccr_SPEC,
4707        crate::common::RW,
4708    > {
4709        crate::common::RegisterField::<
4710            7,
4711            0x1,
4712            1,
4713            0,
4714            dccr::Dcme,
4715            dccr::Dcme,
4716            Dccr_SPEC,
4717            crate::common::RW,
4718        >::from_register(self, 0)
4719    }
4720}
4721impl ::core::default::Default for Dccr {
4722    #[inline(always)]
4723    fn default() -> Dccr {
4724        <crate::RegValueT<Dccr_SPEC> as RegisterValue<_>>::new(64)
4725    }
4726}
4727pub mod dccr {
4728
4729    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4730    pub struct Dcmf_SPEC;
4731    pub type Dcmf = crate::EnumBitfieldStruct<u8, Dcmf_SPEC>;
4732    impl Dcmf {
4733        #[doc = "Not matched"]
4734        pub const _0: Self = Self::new(0);
4735
4736        #[doc = "Matched"]
4737        pub const _1: Self = Self::new(1);
4738    }
4739    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4740    pub struct Dper_SPEC;
4741    pub type Dper = crate::EnumBitfieldStruct<u8, Dper_SPEC>;
4742    impl Dper {
4743        #[doc = "No parity error occurred"]
4744        pub const _0: Self = Self::new(0);
4745
4746        #[doc = "Parity error occurred"]
4747        pub const _1: Self = Self::new(1);
4748    }
4749    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4750    pub struct Dfer_SPEC;
4751    pub type Dfer = crate::EnumBitfieldStruct<u8, Dfer_SPEC>;
4752    impl Dfer {
4753        #[doc = "No framing error occurred"]
4754        pub const _0: Self = Self::new(0);
4755
4756        #[doc = "Framing error occurred"]
4757        pub const _1: Self = Self::new(1);
4758    }
4759    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4760    pub struct Idsel_SPEC;
4761    pub type Idsel = crate::EnumBitfieldStruct<u8, Idsel_SPEC>;
4762    impl Idsel {
4763        #[doc = "Always compare data regardless of the MPB bit value"]
4764        pub const _0: Self = Self::new(0);
4765
4766        #[doc = "Only compare data when MPB bit = 1 (ID frame)"]
4767        pub const _1: Self = Self::new(1);
4768    }
4769    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4770    pub struct Dcme_SPEC;
4771    pub type Dcme = crate::EnumBitfieldStruct<u8, Dcme_SPEC>;
4772    impl Dcme {
4773        #[doc = "Disable address match function"]
4774        pub const _0: Self = Self::new(0);
4775
4776        #[doc = "Enable address match function"]
4777        pub const _1: Self = Self::new(1);
4778    }
4779}
4780#[doc(hidden)]
4781#[derive(Copy, Clone, Eq, PartialEq)]
4782pub struct Fcr_SPEC;
4783impl crate::sealed::RegSpec for Fcr_SPEC {
4784    type DataType = u16;
4785}
4786
4787#[doc = "FIFO Control Register"]
4788pub type Fcr = crate::RegValueT<Fcr_SPEC>;
4789
4790impl Fcr {
4791    #[doc = "FIFO Mode Select"]
4792    #[inline(always)]
4793    pub fn fm(
4794        self,
4795    ) -> crate::common::RegisterField<0, 0x1, 1, 0, fcr::Fm, fcr::Fm, Fcr_SPEC, crate::common::RW>
4796    {
4797        crate::common::RegisterField::<0,0x1,1,0,fcr::Fm,fcr::Fm,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4798    }
4799
4800    #[doc = "Receive FIFO Data Register Reset"]
4801    #[inline(always)]
4802    pub fn rfrst(
4803        self,
4804    ) -> crate::common::RegisterField<
4805        1,
4806        0x1,
4807        1,
4808        0,
4809        fcr::Rfrst,
4810        fcr::Rfrst,
4811        Fcr_SPEC,
4812        crate::common::RW,
4813    > {
4814        crate::common::RegisterField::<
4815            1,
4816            0x1,
4817            1,
4818            0,
4819            fcr::Rfrst,
4820            fcr::Rfrst,
4821            Fcr_SPEC,
4822            crate::common::RW,
4823        >::from_register(self, 0)
4824    }
4825
4826    #[doc = "Transmit FIFO Data Register Reset"]
4827    #[inline(always)]
4828    pub fn tfrst(
4829        self,
4830    ) -> crate::common::RegisterField<
4831        2,
4832        0x1,
4833        1,
4834        0,
4835        fcr::Tfrst,
4836        fcr::Tfrst,
4837        Fcr_SPEC,
4838        crate::common::RW,
4839    > {
4840        crate::common::RegisterField::<
4841            2,
4842            0x1,
4843            1,
4844            0,
4845            fcr::Tfrst,
4846            fcr::Tfrst,
4847            Fcr_SPEC,
4848            crate::common::RW,
4849        >::from_register(self, 0)
4850    }
4851
4852    #[doc = "Receive Data Ready Error Select"]
4853    #[inline(always)]
4854    pub fn dres(
4855        self,
4856    ) -> crate::common::RegisterField<3, 0x1, 1, 0, fcr::Dres, fcr::Dres, Fcr_SPEC, crate::common::RW>
4857    {
4858        crate::common::RegisterField::<
4859            3,
4860            0x1,
4861            1,
4862            0,
4863            fcr::Dres,
4864            fcr::Dres,
4865            Fcr_SPEC,
4866            crate::common::RW,
4867        >::from_register(self, 0)
4868    }
4869
4870    #[doc = "Transmit FIFO Data Trigger Number"]
4871    #[inline(always)]
4872    pub fn ttrg(
4873        self,
4874    ) -> crate::common::RegisterField<4, 0xf, 1, 0, u8, u8, Fcr_SPEC, crate::common::RW> {
4875        crate::common::RegisterField::<4,0xf,1,0,u8,u8,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4876    }
4877
4878    #[doc = "Receive FIFO Data Trigger Number"]
4879    #[inline(always)]
4880    pub fn rtrg(
4881        self,
4882    ) -> crate::common::RegisterField<8, 0xf, 1, 0, u8, u8, Fcr_SPEC, crate::common::RW> {
4883        crate::common::RegisterField::<8,0xf,1,0,u8,u8,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4884    }
4885
4886    #[doc = "RTS Output Active Trigger Number Select"]
4887    #[inline(always)]
4888    pub fn rstrg(
4889        self,
4890    ) -> crate::common::RegisterField<12, 0xf, 1, 0, u8, u8, Fcr_SPEC, crate::common::RW> {
4891        crate::common::RegisterField::<12,0xf,1,0,u8,u8,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4892    }
4893}
4894impl ::core::default::Default for Fcr {
4895    #[inline(always)]
4896    fn default() -> Fcr {
4897        <crate::RegValueT<Fcr_SPEC> as RegisterValue<_>>::new(63488)
4898    }
4899}
4900pub mod fcr {
4901
4902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4903    pub struct Fm_SPEC;
4904    pub type Fm = crate::EnumBitfieldStruct<u8, Fm_SPEC>;
4905    impl Fm {
4906        #[doc = "Non-FIFO mode. Selects TDR/RDR or TDRHL/RDRHL for communication."]
4907        pub const _0: Self = Self::new(0);
4908
4909        #[doc = "FIFO mode. Selects FTDRHL/FRDRHL for communication."]
4910        pub const _1: Self = Self::new(1);
4911    }
4912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4913    pub struct Rfrst_SPEC;
4914    pub type Rfrst = crate::EnumBitfieldStruct<u8, Rfrst_SPEC>;
4915    impl Rfrst {
4916        #[doc = "Do not reset FRDRHL"]
4917        pub const _0: Self = Self::new(0);
4918
4919        #[doc = "Reset FRDRHL"]
4920        pub const _1: Self = Self::new(1);
4921    }
4922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4923    pub struct Tfrst_SPEC;
4924    pub type Tfrst = crate::EnumBitfieldStruct<u8, Tfrst_SPEC>;
4925    impl Tfrst {
4926        #[doc = "Do not reset FTDRHL"]
4927        pub const _0: Self = Self::new(0);
4928
4929        #[doc = "Reset FTDRHL"]
4930        pub const _1: Self = Self::new(1);
4931    }
4932    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4933    pub struct Dres_SPEC;
4934    pub type Dres = crate::EnumBitfieldStruct<u8, Dres_SPEC>;
4935    impl Dres {
4936        #[doc = "Receive data full interrupt (SCIn_RXI)"]
4937        pub const _0: Self = Self::new(0);
4938
4939        #[doc = "Receive error interrupt (SCIn_ERI)"]
4940        pub const _1: Self = Self::new(1);
4941    }
4942}
4943#[doc(hidden)]
4944#[derive(Copy, Clone, Eq, PartialEq)]
4945pub struct Fdr_SPEC;
4946impl crate::sealed::RegSpec for Fdr_SPEC {
4947    type DataType = u16;
4948}
4949
4950#[doc = "FIFO Data Count Register"]
4951pub type Fdr = crate::RegValueT<Fdr_SPEC>;
4952
4953impl Fdr {
4954    #[doc = "Receive FIFO Data Count"]
4955    #[inline(always)]
4956    pub fn r(
4957        self,
4958    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, Fdr_SPEC, crate::common::R> {
4959        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,Fdr_SPEC,crate::common::R>::from_register(self,0)
4960    }
4961
4962    #[doc = "Transmit FIFO Data Count"]
4963    #[inline(always)]
4964    pub fn t(
4965        self,
4966    ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, Fdr_SPEC, crate::common::R> {
4967        crate::common::RegisterField::<8,0x1f,1,0,u8,u8,Fdr_SPEC,crate::common::R>::from_register(self,0)
4968    }
4969}
4970impl ::core::default::Default for Fdr {
4971    #[inline(always)]
4972    fn default() -> Fdr {
4973        <crate::RegValueT<Fdr_SPEC> as RegisterValue<_>>::new(0)
4974    }
4975}
4976
4977#[doc(hidden)]
4978#[derive(Copy, Clone, Eq, PartialEq)]
4979pub struct Lsr_SPEC;
4980impl crate::sealed::RegSpec for Lsr_SPEC {
4981    type DataType = u16;
4982}
4983
4984#[doc = "Line Status Register"]
4985pub type Lsr = crate::RegValueT<Lsr_SPEC>;
4986
4987impl Lsr {
4988    #[doc = "Overrun Error Flag"]
4989    #[inline(always)]
4990    pub fn orer(
4991        self,
4992    ) -> crate::common::RegisterField<0, 0x1, 1, 0, lsr::Orer, lsr::Orer, Lsr_SPEC, crate::common::R>
4993    {
4994        crate::common::RegisterField::<0,0x1,1,0,lsr::Orer,lsr::Orer,Lsr_SPEC,crate::common::R>::from_register(self,0)
4995    }
4996
4997    #[doc = "Framing Error Count"]
4998    #[inline(always)]
4999    pub fn fnum(
5000        self,
5001    ) -> crate::common::RegisterField<2, 0x1f, 1, 0, u8, u8, Lsr_SPEC, crate::common::R> {
5002        crate::common::RegisterField::<2,0x1f,1,0,u8,u8,Lsr_SPEC,crate::common::R>::from_register(self,0)
5003    }
5004
5005    #[doc = "Parity Error Count"]
5006    #[inline(always)]
5007    pub fn pnum(
5008        self,
5009    ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, Lsr_SPEC, crate::common::R> {
5010        crate::common::RegisterField::<8,0x1f,1,0,u8,u8,Lsr_SPEC,crate::common::R>::from_register(self,0)
5011    }
5012}
5013impl ::core::default::Default for Lsr {
5014    #[inline(always)]
5015    fn default() -> Lsr {
5016        <crate::RegValueT<Lsr_SPEC> as RegisterValue<_>>::new(0)
5017    }
5018}
5019pub mod lsr {
5020
5021    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5022    pub struct Orer_SPEC;
5023    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
5024    impl Orer {
5025        #[doc = "No overrun error occurred"]
5026        pub const _0: Self = Self::new(0);
5027
5028        #[doc = "Overrun error occurred"]
5029        pub const _1: Self = Self::new(1);
5030    }
5031}
5032#[doc(hidden)]
5033#[derive(Copy, Clone, Eq, PartialEq)]
5034pub struct Cdr_SPEC;
5035impl crate::sealed::RegSpec for Cdr_SPEC {
5036    type DataType = u16;
5037}
5038
5039#[doc = "Compare Match Data Register"]
5040pub type Cdr = crate::RegValueT<Cdr_SPEC>;
5041
5042impl Cdr {
5043    #[doc = "Compare Match Data"]
5044    #[inline(always)]
5045    pub fn cmpd(
5046        self,
5047    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Cdr_SPEC, crate::common::RW> {
5048        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Cdr_SPEC,crate::common::RW>::from_register(self,0)
5049    }
5050}
5051impl ::core::default::Default for Cdr {
5052    #[inline(always)]
5053    fn default() -> Cdr {
5054        <crate::RegValueT<Cdr_SPEC> as RegisterValue<_>>::new(0)
5055    }
5056}
5057
5058#[doc(hidden)]
5059#[derive(Copy, Clone, Eq, PartialEq)]
5060pub struct Sptr_SPEC;
5061impl crate::sealed::RegSpec for Sptr_SPEC {
5062    type DataType = u8;
5063}
5064
5065#[doc = "Serial Port Register"]
5066pub type Sptr = crate::RegValueT<Sptr_SPEC>;
5067
5068impl Sptr {
5069    #[doc = "Serial Input Data Monitor"]
5070    #[inline(always)]
5071    pub fn rxdmon(self) -> crate::common::RegisterFieldBool<0, 1, 0, Sptr_SPEC, crate::common::R> {
5072        crate::common::RegisterFieldBool::<0, 1, 0, Sptr_SPEC, crate::common::R>::from_register(
5073            self, 0,
5074        )
5075    }
5076
5077    #[doc = "Serial Port Break Data Select"]
5078    #[inline(always)]
5079    pub fn spb2dt(self) -> crate::common::RegisterFieldBool<1, 1, 0, Sptr_SPEC, crate::common::RW> {
5080        crate::common::RegisterFieldBool::<1, 1, 0, Sptr_SPEC, crate::common::RW>::from_register(
5081            self, 0,
5082        )
5083    }
5084
5085    #[doc = "Serial Port Break I/O"]
5086    #[inline(always)]
5087    pub fn spb2io(
5088        self,
5089    ) -> crate::common::RegisterField<
5090        2,
5091        0x1,
5092        1,
5093        0,
5094        sptr::Spb2Io,
5095        sptr::Spb2Io,
5096        Sptr_SPEC,
5097        crate::common::RW,
5098    > {
5099        crate::common::RegisterField::<
5100            2,
5101            0x1,
5102            1,
5103            0,
5104            sptr::Spb2Io,
5105            sptr::Spb2Io,
5106            Sptr_SPEC,
5107            crate::common::RW,
5108        >::from_register(self, 0)
5109    }
5110
5111    #[doc = "RXD invert bit"]
5112    #[inline(always)]
5113    pub fn rinv(
5114        self,
5115    ) -> crate::common::RegisterField<
5116        4,
5117        0x1,
5118        1,
5119        0,
5120        sptr::Rinv,
5121        sptr::Rinv,
5122        Sptr_SPEC,
5123        crate::common::RW,
5124    > {
5125        crate::common::RegisterField::<
5126            4,
5127            0x1,
5128            1,
5129            0,
5130            sptr::Rinv,
5131            sptr::Rinv,
5132            Sptr_SPEC,
5133            crate::common::RW,
5134        >::from_register(self, 0)
5135    }
5136
5137    #[doc = "TXD invert bit"]
5138    #[inline(always)]
5139    pub fn tinv(
5140        self,
5141    ) -> crate::common::RegisterField<
5142        5,
5143        0x1,
5144        1,
5145        0,
5146        sptr::Tinv,
5147        sptr::Tinv,
5148        Sptr_SPEC,
5149        crate::common::RW,
5150    > {
5151        crate::common::RegisterField::<
5152            5,
5153            0x1,
5154            1,
5155            0,
5156            sptr::Tinv,
5157            sptr::Tinv,
5158            Sptr_SPEC,
5159            crate::common::RW,
5160        >::from_register(self, 0)
5161    }
5162
5163    #[doc = "Adjust receive sampling timing enable"]
5164    #[inline(always)]
5165    pub fn asen(
5166        self,
5167    ) -> crate::common::RegisterField<
5168        6,
5169        0x1,
5170        1,
5171        0,
5172        sptr::Asen,
5173        sptr::Asen,
5174        Sptr_SPEC,
5175        crate::common::RW,
5176    > {
5177        crate::common::RegisterField::<
5178            6,
5179            0x1,
5180            1,
5181            0,
5182            sptr::Asen,
5183            sptr::Asen,
5184            Sptr_SPEC,
5185            crate::common::RW,
5186        >::from_register(self, 0)
5187    }
5188
5189    #[doc = "Adjust transmit timing enable"]
5190    #[inline(always)]
5191    pub fn aten(
5192        self,
5193    ) -> crate::common::RegisterField<
5194        7,
5195        0x1,
5196        1,
5197        0,
5198        sptr::Aten,
5199        sptr::Aten,
5200        Sptr_SPEC,
5201        crate::common::RW,
5202    > {
5203        crate::common::RegisterField::<
5204            7,
5205            0x1,
5206            1,
5207            0,
5208            sptr::Aten,
5209            sptr::Aten,
5210            Sptr_SPEC,
5211            crate::common::RW,
5212        >::from_register(self, 0)
5213    }
5214}
5215impl ::core::default::Default for Sptr {
5216    #[inline(always)]
5217    fn default() -> Sptr {
5218        <crate::RegValueT<Sptr_SPEC> as RegisterValue<_>>::new(3)
5219    }
5220}
5221pub mod sptr {
5222
5223    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5224    pub struct Spb2Io_SPEC;
5225    pub type Spb2Io = crate::EnumBitfieldStruct<u8, Spb2Io_SPEC>;
5226    impl Spb2Io {
5227        #[doc = "Do not output value of SPB2DT bit on TXDn pin"]
5228        pub const _0: Self = Self::new(0);
5229
5230        #[doc = "Output value of SPB2DT bit on TXDn pin"]
5231        pub const _1: Self = Self::new(1);
5232    }
5233    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5234    pub struct Rinv_SPEC;
5235    pub type Rinv = crate::EnumBitfieldStruct<u8, Rinv_SPEC>;
5236    impl Rinv {
5237        #[doc = "Received data from RXDn is not inverted and input."]
5238        pub const _0: Self = Self::new(0);
5239
5240        #[doc = "Received data from RXDn is inverted and input."]
5241        pub const _1: Self = Self::new(1);
5242    }
5243    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5244    pub struct Tinv_SPEC;
5245    pub type Tinv = crate::EnumBitfieldStruct<u8, Tinv_SPEC>;
5246    impl Tinv {
5247        #[doc = "Transmit data is not inverted and output to TXDn."]
5248        pub const _0: Self = Self::new(0);
5249
5250        #[doc = "Transmit data is inverted and output to TXDn."]
5251        pub const _1: Self = Self::new(1);
5252    }
5253    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5254    pub struct Asen_SPEC;
5255    pub type Asen = crate::EnumBitfieldStruct<u8, Asen_SPEC>;
5256    impl Asen {
5257        #[doc = "Adjust sampling timing disable."]
5258        pub const _0: Self = Self::new(0);
5259
5260        #[doc = "Adjust sampling timing enable."]
5261        pub const _1: Self = Self::new(1);
5262    }
5263    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5264    pub struct Aten_SPEC;
5265    pub type Aten = crate::EnumBitfieldStruct<u8, Aten_SPEC>;
5266    impl Aten {
5267        #[doc = "Adjust transmit timing disable."]
5268        pub const _0: Self = Self::new(0);
5269
5270        #[doc = "Adjust transmit timing enable."]
5271        pub const _1: Self = Self::new(1);
5272    }
5273}
5274#[doc(hidden)]
5275#[derive(Copy, Clone, Eq, PartialEq)]
5276pub struct Actr_SPEC;
5277impl crate::sealed::RegSpec for Actr_SPEC {
5278    type DataType = u8;
5279}
5280
5281#[doc = "Adjustment Communication Timing Register"]
5282pub type Actr = crate::RegValueT<Actr_SPEC>;
5283
5284impl Actr {
5285    #[doc = "Adjustment value for receive Sampling Timing"]
5286    #[inline(always)]
5287    pub fn ast(
5288        self,
5289    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, Actr_SPEC, crate::common::RW> {
5290        crate::common::RegisterField::<0,0x7,1,0,u8,u8,Actr_SPEC,crate::common::RW>::from_register(self,0)
5291    }
5292
5293    #[doc = "Adjustment Direction for receive sampling timing"]
5294    #[inline(always)]
5295    pub fn ajd(
5296        self,
5297    ) -> crate::common::RegisterField<
5298        3,
5299        0x1,
5300        1,
5301        0,
5302        actr::Ajd,
5303        actr::Ajd,
5304        Actr_SPEC,
5305        crate::common::RW,
5306    > {
5307        crate::common::RegisterField::<
5308            3,
5309            0x1,
5310            1,
5311            0,
5312            actr::Ajd,
5313            actr::Ajd,
5314            Actr_SPEC,
5315            crate::common::RW,
5316        >::from_register(self, 0)
5317    }
5318
5319    #[doc = "Adjustment value for Transmit timing"]
5320    #[inline(always)]
5321    pub fn att(
5322        self,
5323    ) -> crate::common::RegisterField<4, 0x7, 1, 0, u8, u8, Actr_SPEC, crate::common::RW> {
5324        crate::common::RegisterField::<4,0x7,1,0,u8,u8,Actr_SPEC,crate::common::RW>::from_register(self,0)
5325    }
5326
5327    #[doc = "Adjustment edge for transmit timing"]
5328    #[inline(always)]
5329    pub fn aet(
5330        self,
5331    ) -> crate::common::RegisterField<
5332        7,
5333        0x1,
5334        1,
5335        0,
5336        actr::Aet,
5337        actr::Aet,
5338        Actr_SPEC,
5339        crate::common::RW,
5340    > {
5341        crate::common::RegisterField::<
5342            7,
5343            0x1,
5344            1,
5345            0,
5346            actr::Aet,
5347            actr::Aet,
5348            Actr_SPEC,
5349            crate::common::RW,
5350        >::from_register(self, 0)
5351    }
5352}
5353impl ::core::default::Default for Actr {
5354    #[inline(always)]
5355    fn default() -> Actr {
5356        <crate::RegValueT<Actr_SPEC> as RegisterValue<_>>::new(0)
5357    }
5358}
5359pub mod actr {
5360
5361    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5362    pub struct Ajd_SPEC;
5363    pub type Ajd = crate::EnumBitfieldStruct<u8, Ajd_SPEC>;
5364    impl Ajd {
5365        #[doc = "The sampling timing is adjusted backward to the middle of bit."]
5366        pub const _0: Self = Self::new(0);
5367
5368        #[doc = "The sampling timing is adjusted forward to the middle of bit."]
5369        pub const _1: Self = Self::new(1);
5370    }
5371    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5372    pub struct Aet_SPEC;
5373    pub type Aet = crate::EnumBitfieldStruct<u8, Aet_SPEC>;
5374    impl Aet {
5375        #[doc = "Adjust the rising edge timing."]
5376        pub const _0: Self = Self::new(0);
5377
5378        #[doc = "Adjust the falling edge timing."]
5379        pub const _1: Self = Self::new(1);
5380    }
5381}
5382#[doc(hidden)]
5383#[derive(Copy, Clone, Eq, PartialEq)]
5384pub struct Mmr_SPEC;
5385impl crate::sealed::RegSpec for Mmr_SPEC {
5386    type DataType = u8;
5387}
5388
5389#[doc = "Manchester Mode Register"]
5390pub type Mmr = crate::RegValueT<Mmr_SPEC>;
5391
5392impl Mmr {
5393    #[doc = "Polarity of Received Manchester Code"]
5394    #[inline(always)]
5395    pub fn rmpol(
5396        self,
5397    ) -> crate::common::RegisterField<
5398        0,
5399        0x1,
5400        1,
5401        0,
5402        mmr::Rmpol,
5403        mmr::Rmpol,
5404        Mmr_SPEC,
5405        crate::common::RW,
5406    > {
5407        crate::common::RegisterField::<
5408            0,
5409            0x1,
5410            1,
5411            0,
5412            mmr::Rmpol,
5413            mmr::Rmpol,
5414            Mmr_SPEC,
5415            crate::common::RW,
5416        >::from_register(self, 0)
5417    }
5418
5419    #[doc = "Polarity of Transmit Manchester Code"]
5420    #[inline(always)]
5421    pub fn tmpol(
5422        self,
5423    ) -> crate::common::RegisterField<
5424        1,
5425        0x1,
5426        1,
5427        0,
5428        mmr::Tmpol,
5429        mmr::Tmpol,
5430        Mmr_SPEC,
5431        crate::common::RW,
5432    > {
5433        crate::common::RegisterField::<
5434            1,
5435            0x1,
5436            1,
5437            0,
5438            mmr::Tmpol,
5439            mmr::Tmpol,
5440            Mmr_SPEC,
5441            crate::common::RW,
5442        >::from_register(self, 0)
5443    }
5444
5445    #[doc = "Manchester Edge Retiming Enable"]
5446    #[inline(always)]
5447    pub fn erten(
5448        self,
5449    ) -> crate::common::RegisterField<
5450        2,
5451        0x1,
5452        1,
5453        0,
5454        mmr::Erten,
5455        mmr::Erten,
5456        Mmr_SPEC,
5457        crate::common::RW,
5458    > {
5459        crate::common::RegisterField::<
5460            2,
5461            0x1,
5462            1,
5463            0,
5464            mmr::Erten,
5465            mmr::Erten,
5466            Mmr_SPEC,
5467            crate::common::RW,
5468        >::from_register(self, 0)
5469    }
5470
5471    #[doc = "SYNC value Setting"]
5472    #[inline(always)]
5473    pub fn synval(
5474        self,
5475    ) -> crate::common::RegisterField<
5476        4,
5477        0x1,
5478        1,
5479        0,
5480        mmr::Synval,
5481        mmr::Synval,
5482        Mmr_SPEC,
5483        crate::common::RW,
5484    > {
5485        crate::common::RegisterField::<
5486            4,
5487            0x1,
5488            1,
5489            0,
5490            mmr::Synval,
5491            mmr::Synval,
5492            Mmr_SPEC,
5493            crate::common::RW,
5494        >::from_register(self, 0)
5495    }
5496
5497    #[doc = "SYNC Select"]
5498    #[inline(always)]
5499    pub fn synsel(
5500        self,
5501    ) -> crate::common::RegisterField<
5502        5,
5503        0x1,
5504        1,
5505        0,
5506        mmr::Synsel,
5507        mmr::Synsel,
5508        Mmr_SPEC,
5509        crate::common::RW,
5510    > {
5511        crate::common::RegisterField::<
5512            5,
5513            0x1,
5514            1,
5515            0,
5516            mmr::Synsel,
5517            mmr::Synsel,
5518            Mmr_SPEC,
5519            crate::common::RW,
5520        >::from_register(self, 0)
5521    }
5522
5523    #[doc = "Start Bit Select"]
5524    #[inline(always)]
5525    pub fn sbsel(
5526        self,
5527    ) -> crate::common::RegisterField<
5528        6,
5529        0x1,
5530        1,
5531        0,
5532        mmr::Sbsel,
5533        mmr::Sbsel,
5534        Mmr_SPEC,
5535        crate::common::RW,
5536    > {
5537        crate::common::RegisterField::<
5538            6,
5539            0x1,
5540            1,
5541            0,
5542            mmr::Sbsel,
5543            mmr::Sbsel,
5544            Mmr_SPEC,
5545            crate::common::RW,
5546        >::from_register(self, 0)
5547    }
5548
5549    #[doc = "Manchester Mode Enable"]
5550    #[inline(always)]
5551    pub fn manen(
5552        self,
5553    ) -> crate::common::RegisterField<
5554        7,
5555        0x1,
5556        1,
5557        0,
5558        mmr::Manen,
5559        mmr::Manen,
5560        Mmr_SPEC,
5561        crate::common::RW,
5562    > {
5563        crate::common::RegisterField::<
5564            7,
5565            0x1,
5566            1,
5567            0,
5568            mmr::Manen,
5569            mmr::Manen,
5570            Mmr_SPEC,
5571            crate::common::RW,
5572        >::from_register(self, 0)
5573    }
5574}
5575impl ::core::default::Default for Mmr {
5576    #[inline(always)]
5577    fn default() -> Mmr {
5578        <crate::RegValueT<Mmr_SPEC> as RegisterValue<_>>::new(0)
5579    }
5580}
5581pub mod mmr {
5582
5583    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5584    pub struct Rmpol_SPEC;
5585    pub type Rmpol = crate::EnumBitfieldStruct<u8, Rmpol_SPEC>;
5586    impl Rmpol {
5587        #[doc = "Logic 0 is coded as a zero-to-one transition in Manchester code Logic 1 is coded as a one-to-zero transition in Manchester code"]
5588        pub const _0: Self = Self::new(0);
5589
5590        #[doc = "Logic 0 is coded as a one-to-zero transition in Manchester code Logic 1 is coded as a zero-to-one transition in Manchester code"]
5591        pub const _1: Self = Self::new(1);
5592    }
5593    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5594    pub struct Tmpol_SPEC;
5595    pub type Tmpol = crate::EnumBitfieldStruct<u8, Tmpol_SPEC>;
5596    impl Tmpol {
5597        #[doc = "Logic 0 is coded as a zero-to-one transition in Manchester code Logic 1 is coded as a one-to-zero transition in Manchester code"]
5598        pub const _0: Self = Self::new(0);
5599
5600        #[doc = "Logic 0 is coded as a one-to-zero transition in Manchester code Logic 1 is coded as a zero-to-one transition in Manchester code"]
5601        pub const _1: Self = Self::new(1);
5602    }
5603    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5604    pub struct Erten_SPEC;
5605    pub type Erten = crate::EnumBitfieldStruct<u8, Erten_SPEC>;
5606    impl Erten {
5607        #[doc = "Disables the receive retiming function"]
5608        pub const _0: Self = Self::new(0);
5609
5610        #[doc = "Enables the receive retiming function"]
5611        pub const _1: Self = Self::new(1);
5612    }
5613    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5614    pub struct Synval_SPEC;
5615    pub type Synval = crate::EnumBitfieldStruct<u8, Synval_SPEC>;
5616    impl Synval {
5617        #[doc = "The start bit is added as a zero-to-one transition."]
5618        pub const _0: Self = Self::new(0);
5619
5620        #[doc = "The start bit is added as a one-to-zero transition."]
5621        pub const _1: Self = Self::new(1);
5622    }
5623    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5624    pub struct Synsel_SPEC;
5625    pub type Synsel = crate::EnumBitfieldStruct<u8, Synsel_SPEC>;
5626    impl Synsel {
5627        #[doc = "The start bit pattern is set with the SYNVAL bit"]
5628        pub const _0: Self = Self::new(0);
5629
5630        #[doc = "The start bit pattern is set with the TSYNC bit."]
5631        pub const _1: Self = Self::new(1);
5632    }
5633    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5634    pub struct Sbsel_SPEC;
5635    pub type Sbsel = crate::EnumBitfieldStruct<u8, Sbsel_SPEC>;
5636    impl Sbsel {
5637        #[doc = "The start bit area consists of one bit."]
5638        pub const _0: Self = Self::new(0);
5639
5640        #[doc = "The start bit area consists of three bits (COMMAND SYNC or DATA SYNC)"]
5641        pub const _1: Self = Self::new(1);
5642    }
5643    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5644    pub struct Manen_SPEC;
5645    pub type Manen = crate::EnumBitfieldStruct<u8, Manen_SPEC>;
5646    impl Manen {
5647        #[doc = "Disables the Manchester mode"]
5648        pub const _0: Self = Self::new(0);
5649
5650        #[doc = "Enables the Manchester mode"]
5651        pub const _1: Self = Self::new(1);
5652    }
5653}
5654#[doc(hidden)]
5655#[derive(Copy, Clone, Eq, PartialEq)]
5656pub struct Tmpr_SPEC;
5657impl crate::sealed::RegSpec for Tmpr_SPEC {
5658    type DataType = u8;
5659}
5660
5661#[doc = "Transmit Manchester Preface Setting Register"]
5662pub type Tmpr = crate::RegValueT<Tmpr_SPEC>;
5663
5664impl Tmpr {
5665    #[doc = "Transmit preface length"]
5666    #[inline(always)]
5667    pub fn tplen(
5668        self,
5669    ) -> crate::common::RegisterField<
5670        0,
5671        0xf,
5672        1,
5673        0,
5674        tmpr::Tplen,
5675        tmpr::Tplen,
5676        Tmpr_SPEC,
5677        crate::common::RW,
5678    > {
5679        crate::common::RegisterField::<
5680            0,
5681            0xf,
5682            1,
5683            0,
5684            tmpr::Tplen,
5685            tmpr::Tplen,
5686            Tmpr_SPEC,
5687            crate::common::RW,
5688        >::from_register(self, 0)
5689    }
5690
5691    #[doc = "Transmit preface pattern"]
5692    #[inline(always)]
5693    pub fn tppat(
5694        self,
5695    ) -> crate::common::RegisterField<
5696        4,
5697        0x3,
5698        1,
5699        0,
5700        tmpr::Tppat,
5701        tmpr::Tppat,
5702        Tmpr_SPEC,
5703        crate::common::RW,
5704    > {
5705        crate::common::RegisterField::<
5706            4,
5707            0x3,
5708            1,
5709            0,
5710            tmpr::Tppat,
5711            tmpr::Tppat,
5712            Tmpr_SPEC,
5713            crate::common::RW,
5714        >::from_register(self, 0)
5715    }
5716}
5717impl ::core::default::Default for Tmpr {
5718    #[inline(always)]
5719    fn default() -> Tmpr {
5720        <crate::RegValueT<Tmpr_SPEC> as RegisterValue<_>>::new(0)
5721    }
5722}
5723pub mod tmpr {
5724
5725    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5726    pub struct Tplen_SPEC;
5727    pub type Tplen = crate::EnumBitfieldStruct<u8, Tplen_SPEC>;
5728    impl Tplen {
5729        #[doc = "Disables the transmit preface generation"]
5730        pub const _0_X_0: Self = Self::new(0);
5731    }
5732    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5733    pub struct Tppat_SPEC;
5734    pub type Tppat = crate::EnumBitfieldStruct<u8, Tppat_SPEC>;
5735    impl Tppat {
5736        #[doc = "ALL ZERO"]
5737        pub const _00: Self = Self::new(0);
5738
5739        #[doc = "ZERO ONE"]
5740        pub const _01: Self = Self::new(1);
5741
5742        #[doc = "ONE ZERO"]
5743        pub const _10: Self = Self::new(2);
5744
5745        #[doc = "ALL ONE"]
5746        pub const _11: Self = Self::new(3);
5747    }
5748}
5749#[doc(hidden)]
5750#[derive(Copy, Clone, Eq, PartialEq)]
5751pub struct Rmpr_SPEC;
5752impl crate::sealed::RegSpec for Rmpr_SPEC {
5753    type DataType = u8;
5754}
5755
5756#[doc = "Receive Manchester Preface Setting Register"]
5757pub type Rmpr = crate::RegValueT<Rmpr_SPEC>;
5758
5759impl Rmpr {
5760    #[doc = "Receive Preface Length"]
5761    #[inline(always)]
5762    pub fn rplen(
5763        self,
5764    ) -> crate::common::RegisterField<
5765        0,
5766        0xf,
5767        1,
5768        0,
5769        rmpr::Rplen,
5770        rmpr::Rplen,
5771        Rmpr_SPEC,
5772        crate::common::RW,
5773    > {
5774        crate::common::RegisterField::<
5775            0,
5776            0xf,
5777            1,
5778            0,
5779            rmpr::Rplen,
5780            rmpr::Rplen,
5781            Rmpr_SPEC,
5782            crate::common::RW,
5783        >::from_register(self, 0)
5784    }
5785
5786    #[doc = "Receive Preface Pattern"]
5787    #[inline(always)]
5788    pub fn rppat(
5789        self,
5790    ) -> crate::common::RegisterField<
5791        4,
5792        0x3,
5793        1,
5794        0,
5795        rmpr::Rppat,
5796        rmpr::Rppat,
5797        Rmpr_SPEC,
5798        crate::common::RW,
5799    > {
5800        crate::common::RegisterField::<
5801            4,
5802            0x3,
5803            1,
5804            0,
5805            rmpr::Rppat,
5806            rmpr::Rppat,
5807            Rmpr_SPEC,
5808            crate::common::RW,
5809        >::from_register(self, 0)
5810    }
5811}
5812impl ::core::default::Default for Rmpr {
5813    #[inline(always)]
5814    fn default() -> Rmpr {
5815        <crate::RegValueT<Rmpr_SPEC> as RegisterValue<_>>::new(0)
5816    }
5817}
5818pub mod rmpr {
5819
5820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5821    pub struct Rplen_SPEC;
5822    pub type Rplen = crate::EnumBitfieldStruct<u8, Rplen_SPEC>;
5823    impl Rplen {
5824        #[doc = "Disables the receive preface generation"]
5825        pub const _0: Self = Self::new(0);
5826    }
5827    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5828    pub struct Rppat_SPEC;
5829    pub type Rppat = crate::EnumBitfieldStruct<u8, Rppat_SPEC>;
5830    impl Rppat {
5831        #[doc = "ALL ZERO"]
5832        pub const _00: Self = Self::new(0);
5833
5834        #[doc = "ZERO ONE"]
5835        pub const _01: Self = Self::new(1);
5836
5837        #[doc = "ONE ZERO"]
5838        pub const _10: Self = Self::new(2);
5839
5840        #[doc = "ALL ONE"]
5841        pub const _11: Self = Self::new(3);
5842    }
5843}
5844#[doc(hidden)]
5845#[derive(Copy, Clone, Eq, PartialEq)]
5846pub struct Mesr_SPEC;
5847impl crate::sealed::RegSpec for Mesr_SPEC {
5848    type DataType = u8;
5849}
5850
5851#[doc = "Manchester Extended Error Status Register"]
5852pub type Mesr = crate::RegValueT<Mesr_SPEC>;
5853
5854impl Mesr {
5855    #[doc = "Preface Error flag"]
5856    #[inline(always)]
5857    pub fn pfer(
5858        self,
5859    ) -> crate::common::RegisterField<
5860        0,
5861        0x1,
5862        1,
5863        0,
5864        mesr::Pfer,
5865        mesr::Pfer,
5866        Mesr_SPEC,
5867        crate::common::RW,
5868    > {
5869        crate::common::RegisterField::<
5870            0,
5871            0x1,
5872            1,
5873            0,
5874            mesr::Pfer,
5875            mesr::Pfer,
5876            Mesr_SPEC,
5877            crate::common::RW,
5878        >::from_register(self, 0)
5879    }
5880
5881    #[doc = "SYNC Error flag"]
5882    #[inline(always)]
5883    pub fn syer(
5884        self,
5885    ) -> crate::common::RegisterField<
5886        1,
5887        0x1,
5888        1,
5889        0,
5890        mesr::Syer,
5891        mesr::Syer,
5892        Mesr_SPEC,
5893        crate::common::RW,
5894    > {
5895        crate::common::RegisterField::<
5896            1,
5897            0x1,
5898            1,
5899            0,
5900            mesr::Syer,
5901            mesr::Syer,
5902            Mesr_SPEC,
5903            crate::common::RW,
5904        >::from_register(self, 0)
5905    }
5906
5907    #[doc = "Start Bit Error flag"]
5908    #[inline(always)]
5909    pub fn sber(
5910        self,
5911    ) -> crate::common::RegisterField<
5912        2,
5913        0x1,
5914        1,
5915        0,
5916        mesr::Sber,
5917        mesr::Sber,
5918        Mesr_SPEC,
5919        crate::common::RW,
5920    > {
5921        crate::common::RegisterField::<
5922            2,
5923            0x1,
5924            1,
5925            0,
5926            mesr::Sber,
5927            mesr::Sber,
5928            Mesr_SPEC,
5929            crate::common::RW,
5930        >::from_register(self, 0)
5931    }
5932}
5933impl ::core::default::Default for Mesr {
5934    #[inline(always)]
5935    fn default() -> Mesr {
5936        <crate::RegValueT<Mesr_SPEC> as RegisterValue<_>>::new(0)
5937    }
5938}
5939pub mod mesr {
5940
5941    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5942    pub struct Pfer_SPEC;
5943    pub type Pfer = crate::EnumBitfieldStruct<u8, Pfer_SPEC>;
5944    impl Pfer {
5945        #[doc = "No preface error detected"]
5946        pub const _0: Self = Self::new(0);
5947
5948        #[doc = "Preface error detected"]
5949        pub const _1: Self = Self::new(1);
5950    }
5951    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5952    pub struct Syer_SPEC;
5953    pub type Syer = crate::EnumBitfieldStruct<u8, Syer_SPEC>;
5954    impl Syer {
5955        #[doc = "No receive SYNC error detected"]
5956        pub const _0: Self = Self::new(0);
5957
5958        #[doc = "Receive SYNC error detected"]
5959        pub const _1: Self = Self::new(1);
5960    }
5961    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5962    pub struct Sber_SPEC;
5963    pub type Sber = crate::EnumBitfieldStruct<u8, Sber_SPEC>;
5964    impl Sber {
5965        #[doc = "No start bit error detected"]
5966        pub const _0: Self = Self::new(0);
5967
5968        #[doc = "Start bit error detected"]
5969        pub const _1: Self = Self::new(1);
5970    }
5971}
5972#[doc(hidden)]
5973#[derive(Copy, Clone, Eq, PartialEq)]
5974pub struct Mecr_SPEC;
5975impl crate::sealed::RegSpec for Mecr_SPEC {
5976    type DataType = u8;
5977}
5978
5979#[doc = "Manchester Extended Error Control Register"]
5980pub type Mecr = crate::RegValueT<Mecr_SPEC>;
5981
5982impl Mecr {
5983    #[doc = "Preface Error Enable"]
5984    #[inline(always)]
5985    pub fn pferen(
5986        self,
5987    ) -> crate::common::RegisterField<
5988        0,
5989        0x1,
5990        1,
5991        0,
5992        mecr::Pferen,
5993        mecr::Pferen,
5994        Mecr_SPEC,
5995        crate::common::RW,
5996    > {
5997        crate::common::RegisterField::<
5998            0,
5999            0x1,
6000            1,
6001            0,
6002            mecr::Pferen,
6003            mecr::Pferen,
6004            Mecr_SPEC,
6005            crate::common::RW,
6006        >::from_register(self, 0)
6007    }
6008
6009    #[doc = "Receive SYNC Error Enable"]
6010    #[inline(always)]
6011    pub fn syeren(
6012        self,
6013    ) -> crate::common::RegisterField<
6014        1,
6015        0x1,
6016        1,
6017        0,
6018        mecr::Syeren,
6019        mecr::Syeren,
6020        Mecr_SPEC,
6021        crate::common::RW,
6022    > {
6023        crate::common::RegisterField::<
6024            1,
6025            0x1,
6026            1,
6027            0,
6028            mecr::Syeren,
6029            mecr::Syeren,
6030            Mecr_SPEC,
6031            crate::common::RW,
6032        >::from_register(self, 0)
6033    }
6034
6035    #[doc = "Start Bit Error Enable"]
6036    #[inline(always)]
6037    pub fn sberen(
6038        self,
6039    ) -> crate::common::RegisterField<
6040        2,
6041        0x1,
6042        1,
6043        0,
6044        mecr::Sberen,
6045        mecr::Sberen,
6046        Mecr_SPEC,
6047        crate::common::RW,
6048    > {
6049        crate::common::RegisterField::<
6050            2,
6051            0x1,
6052            1,
6053            0,
6054            mecr::Sberen,
6055            mecr::Sberen,
6056            Mecr_SPEC,
6057            crate::common::RW,
6058        >::from_register(self, 0)
6059    }
6060}
6061impl ::core::default::Default for Mecr {
6062    #[inline(always)]
6063    fn default() -> Mecr {
6064        <crate::RegValueT<Mecr_SPEC> as RegisterValue<_>>::new(0)
6065    }
6066}
6067pub mod mecr {
6068
6069    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6070    pub struct Pferen_SPEC;
6071    pub type Pferen = crate::EnumBitfieldStruct<u8, Pferen_SPEC>;
6072    impl Pferen {
6073        #[doc = "Does not handle a preface error as an interrupt source"]
6074        pub const _0: Self = Self::new(0);
6075
6076        #[doc = "Handles a preface error as an interrupt source"]
6077        pub const _1: Self = Self::new(1);
6078    }
6079    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6080    pub struct Syeren_SPEC;
6081    pub type Syeren = crate::EnumBitfieldStruct<u8, Syeren_SPEC>;
6082    impl Syeren {
6083        #[doc = "Does not handle a receive SYNC error as an interrupt source"]
6084        pub const _0: Self = Self::new(0);
6085
6086        #[doc = "Handles a receive SYNC error as an interrupt source"]
6087        pub const _1: Self = Self::new(1);
6088    }
6089    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6090    pub struct Sberen_SPEC;
6091    pub type Sberen = crate::EnumBitfieldStruct<u8, Sberen_SPEC>;
6092    impl Sberen {
6093        #[doc = "Does not handle a start bit error as an interrupt source"]
6094        pub const _0: Self = Self::new(0);
6095
6096        #[doc = "Handles a start bit error as an interrupt source"]
6097        pub const _1: Self = Self::new(1);
6098    }
6099}