Skip to main content

ra4e1_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.20.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:04:18 +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 = "Preamble function Disable"]
2502    #[inline(always)]
2503    pub fn padis(
2504        self,
2505    ) -> crate::common::RegisterField<
2506        1,
2507        0x1,
2508        1,
2509        0,
2510        semr::Padis,
2511        semr::Padis,
2512        Semr_SPEC,
2513        crate::common::RW,
2514    > {
2515        crate::common::RegisterField::<
2516            1,
2517            0x1,
2518            1,
2519            0,
2520            semr::Padis,
2521            semr::Padis,
2522            Semr_SPEC,
2523            crate::common::RW,
2524        >::from_register(self, 0)
2525    }
2526
2527    #[doc = "Bit Rate Modulation Enable"]
2528    #[inline(always)]
2529    pub fn brme(
2530        self,
2531    ) -> crate::common::RegisterField<
2532        2,
2533        0x1,
2534        1,
2535        0,
2536        semr::Brme,
2537        semr::Brme,
2538        Semr_SPEC,
2539        crate::common::RW,
2540    > {
2541        crate::common::RegisterField::<
2542            2,
2543            0x1,
2544            1,
2545            0,
2546            semr::Brme,
2547            semr::Brme,
2548            Semr_SPEC,
2549            crate::common::RW,
2550        >::from_register(self, 0)
2551    }
2552
2553    #[doc = "Asynchronous Mode Extended Base Clock Select 1"]
2554    #[inline(always)]
2555    pub fn abcse(
2556        self,
2557    ) -> crate::common::RegisterField<
2558        3,
2559        0x1,
2560        1,
2561        0,
2562        semr::Abcse,
2563        semr::Abcse,
2564        Semr_SPEC,
2565        crate::common::RW,
2566    > {
2567        crate::common::RegisterField::<
2568            3,
2569            0x1,
2570            1,
2571            0,
2572            semr::Abcse,
2573            semr::Abcse,
2574            Semr_SPEC,
2575            crate::common::RW,
2576        >::from_register(self, 0)
2577    }
2578
2579    #[doc = "Asynchronous Mode Base Clock Select"]
2580    #[inline(always)]
2581    pub fn abcs(
2582        self,
2583    ) -> crate::common::RegisterField<
2584        4,
2585        0x1,
2586        1,
2587        0,
2588        semr::Abcs,
2589        semr::Abcs,
2590        Semr_SPEC,
2591        crate::common::RW,
2592    > {
2593        crate::common::RegisterField::<
2594            4,
2595            0x1,
2596            1,
2597            0,
2598            semr::Abcs,
2599            semr::Abcs,
2600            Semr_SPEC,
2601            crate::common::RW,
2602        >::from_register(self, 0)
2603    }
2604
2605    #[doc = "Digital Noise Filter Function Enable"]
2606    #[inline(always)]
2607    pub fn nfen(
2608        self,
2609    ) -> crate::common::RegisterField<
2610        5,
2611        0x1,
2612        1,
2613        0,
2614        semr::Nfen,
2615        semr::Nfen,
2616        Semr_SPEC,
2617        crate::common::RW,
2618    > {
2619        crate::common::RegisterField::<
2620            5,
2621            0x1,
2622            1,
2623            0,
2624            semr::Nfen,
2625            semr::Nfen,
2626            Semr_SPEC,
2627            crate::common::RW,
2628        >::from_register(self, 0)
2629    }
2630
2631    #[doc = "Baud Rate Generator Double-Speed Mode Select"]
2632    #[inline(always)]
2633    pub fn bgdm(
2634        self,
2635    ) -> crate::common::RegisterField<
2636        6,
2637        0x1,
2638        1,
2639        0,
2640        semr::Bgdm,
2641        semr::Bgdm,
2642        Semr_SPEC,
2643        crate::common::RW,
2644    > {
2645        crate::common::RegisterField::<
2646            6,
2647            0x1,
2648            1,
2649            0,
2650            semr::Bgdm,
2651            semr::Bgdm,
2652            Semr_SPEC,
2653            crate::common::RW,
2654        >::from_register(self, 0)
2655    }
2656
2657    #[doc = "Asynchronous Start Bit Edge Detection Select"]
2658    #[inline(always)]
2659    pub fn rxdesel(
2660        self,
2661    ) -> crate::common::RegisterField<
2662        7,
2663        0x1,
2664        1,
2665        0,
2666        semr::Rxdesel,
2667        semr::Rxdesel,
2668        Semr_SPEC,
2669        crate::common::RW,
2670    > {
2671        crate::common::RegisterField::<
2672            7,
2673            0x1,
2674            1,
2675            0,
2676            semr::Rxdesel,
2677            semr::Rxdesel,
2678            Semr_SPEC,
2679            crate::common::RW,
2680        >::from_register(self, 0)
2681    }
2682}
2683impl ::core::default::Default for Semr {
2684    #[inline(always)]
2685    fn default() -> Semr {
2686        <crate::RegValueT<Semr_SPEC> as RegisterValue<_>>::new(0)
2687    }
2688}
2689pub mod semr {
2690
2691    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2692    pub struct Padis_SPEC;
2693    pub type Padis = crate::EnumBitfieldStruct<u8, Padis_SPEC>;
2694    impl Padis {
2695        #[doc = "Preamble output function is enabled"]
2696        pub const _0: Self = Self::new(0);
2697
2698        #[doc = "Preamble output function is disabled These bits for the other SCI channels than SCIn (n = 0, 3, 4, 9) are reserved."]
2699        pub const _1: Self = Self::new(1);
2700    }
2701    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2702    pub struct Brme_SPEC;
2703    pub type Brme = crate::EnumBitfieldStruct<u8, Brme_SPEC>;
2704    impl Brme {
2705        #[doc = "Disable bit rate modulation function"]
2706        pub const _0: Self = Self::new(0);
2707
2708        #[doc = "Enable bit rate modulation function"]
2709        pub const _1: Self = Self::new(1);
2710    }
2711    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2712    pub struct Abcse_SPEC;
2713    pub type Abcse = crate::EnumBitfieldStruct<u8, Abcse_SPEC>;
2714    impl Abcse {
2715        #[doc = "Clock cycles for 1-bit period determined by combination of the BGDM and ABCS bits in the SEMR register"]
2716        pub const _0: Self = Self::new(0);
2717
2718        #[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."]
2719        pub const _1: Self = Self::new(1);
2720    }
2721    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2722    pub struct Abcs_SPEC;
2723    pub type Abcs = crate::EnumBitfieldStruct<u8, Abcs_SPEC>;
2724    impl Abcs {
2725        #[doc = "Select 16 base clock cycles for 1-bit period"]
2726        pub const _0: Self = Self::new(0);
2727
2728        #[doc = "Select 8 base clock cycles for 1-bit period"]
2729        pub const _1: Self = Self::new(1);
2730    }
2731    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2732    pub struct Nfen_SPEC;
2733    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
2734    impl Nfen {
2735        #[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"]
2736        pub const _0: Self = Self::new(0);
2737
2738        #[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"]
2739        pub const _1: Self = Self::new(1);
2740    }
2741    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2742    pub struct Bgdm_SPEC;
2743    pub type Bgdm = crate::EnumBitfieldStruct<u8, Bgdm_SPEC>;
2744    impl Bgdm {
2745        #[doc = "Output clock from baud rate generator with normal frequency"]
2746        pub const _0: Self = Self::new(0);
2747
2748        #[doc = "Output clock from baud rate generator with doubled frequency"]
2749        pub const _1: Self = Self::new(1);
2750    }
2751    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2752    pub struct Rxdesel_SPEC;
2753    pub type Rxdesel = crate::EnumBitfieldStruct<u8, Rxdesel_SPEC>;
2754    impl Rxdesel {
2755        #[doc = "Detect low level on RXDn pin as start bit"]
2756        pub const _0: Self = Self::new(0);
2757
2758        #[doc = "Detect falling edge of RXDn pin as start bit"]
2759        pub const _1: Self = Self::new(1);
2760    }
2761}
2762#[doc(hidden)]
2763#[derive(Copy, Clone, Eq, PartialEq)]
2764pub struct Snfr_SPEC;
2765impl crate::sealed::RegSpec for Snfr_SPEC {
2766    type DataType = u8;
2767}
2768
2769#[doc = "Noise Filter Setting Register"]
2770pub type Snfr = crate::RegValueT<Snfr_SPEC>;
2771
2772impl Snfr {
2773    #[doc = "Noise Filter Clock Select"]
2774    #[inline(always)]
2775    pub fn nfcs(
2776        self,
2777    ) -> crate::common::RegisterField<
2778        0,
2779        0x7,
2780        1,
2781        0,
2782        snfr::Nfcs,
2783        snfr::Nfcs,
2784        Snfr_SPEC,
2785        crate::common::RW,
2786    > {
2787        crate::common::RegisterField::<
2788            0,
2789            0x7,
2790            1,
2791            0,
2792            snfr::Nfcs,
2793            snfr::Nfcs,
2794            Snfr_SPEC,
2795            crate::common::RW,
2796        >::from_register(self, 0)
2797    }
2798}
2799impl ::core::default::Default for Snfr {
2800    #[inline(always)]
2801    fn default() -> Snfr {
2802        <crate::RegValueT<Snfr_SPEC> as RegisterValue<_>>::new(0)
2803    }
2804}
2805pub mod snfr {
2806
2807    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2808    pub struct Nfcs_SPEC;
2809    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
2810    impl Nfcs {
2811        #[doc = "In asynchronous mode: Use clock signal divided by 1 with noise filter In simple I2C mode: Setting prohibited"]
2812        pub const _000: Self = Self::new(0);
2813
2814        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 1 with noise filter"]
2815        pub const _001: Self = Self::new(1);
2816
2817        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 2 with noise filter"]
2818        pub const _010: Self = Self::new(2);
2819
2820        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 4 with noise filter"]
2821        pub const _011: Self = Self::new(3);
2822
2823        #[doc = "In asynchronous mode: Setting prohibited In simple I2C mode: Use clock signal divided by 8 with noise filter"]
2824        pub const _100: Self = Self::new(4);
2825    }
2826}
2827#[doc(hidden)]
2828#[derive(Copy, Clone, Eq, PartialEq)]
2829pub struct Simr1_SPEC;
2830impl crate::sealed::RegSpec for Simr1_SPEC {
2831    type DataType = u8;
2832}
2833
2834#[doc = "IIC Mode Register 1"]
2835pub type Simr1 = crate::RegValueT<Simr1_SPEC>;
2836
2837impl Simr1 {
2838    #[doc = "Simple IIC Mode Select"]
2839    #[inline(always)]
2840    pub fn iicm(
2841        self,
2842    ) -> crate::common::RegisterField<
2843        0,
2844        0x1,
2845        1,
2846        0,
2847        simr1::Iicm,
2848        simr1::Iicm,
2849        Simr1_SPEC,
2850        crate::common::RW,
2851    > {
2852        crate::common::RegisterField::<
2853            0,
2854            0x1,
2855            1,
2856            0,
2857            simr1::Iicm,
2858            simr1::Iicm,
2859            Simr1_SPEC,
2860            crate::common::RW,
2861        >::from_register(self, 0)
2862    }
2863
2864    #[doc = "SDAn Delay Output Select"]
2865    #[inline(always)]
2866    pub fn iicdl(
2867        self,
2868    ) -> crate::common::RegisterField<
2869        3,
2870        0x1f,
2871        1,
2872        0,
2873        simr1::Iicdl,
2874        simr1::Iicdl,
2875        Simr1_SPEC,
2876        crate::common::RW,
2877    > {
2878        crate::common::RegisterField::<
2879            3,
2880            0x1f,
2881            1,
2882            0,
2883            simr1::Iicdl,
2884            simr1::Iicdl,
2885            Simr1_SPEC,
2886            crate::common::RW,
2887        >::from_register(self, 0)
2888    }
2889}
2890impl ::core::default::Default for Simr1 {
2891    #[inline(always)]
2892    fn default() -> Simr1 {
2893        <crate::RegValueT<Simr1_SPEC> as RegisterValue<_>>::new(0)
2894    }
2895}
2896pub mod simr1 {
2897
2898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2899    pub struct Iicm_SPEC;
2900    pub type Iicm = crate::EnumBitfieldStruct<u8, Iicm_SPEC>;
2901    impl Iicm {
2902        #[doc = "SCMR.SMIF = 0: Asynchronous mode (including multi-processor mode), clock synchronous mode, or simple SPI mode SCMR.SMIF = 1: Smart card interface mode"]
2903        pub const _0: Self = Self::new(0);
2904
2905        #[doc = "SCMR.SMIF = 0: Simple IIC mode SCMR.SMIF = 1: Setting prohibited"]
2906        pub const _1: Self = Self::new(1);
2907    }
2908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2909    pub struct Iicdl_SPEC;
2910    pub type Iicdl = crate::EnumBitfieldStruct<u8, Iicdl_SPEC>;
2911    impl Iicdl {
2912        #[doc = "No output delay"]
2913        pub const _0_X_00: Self = Self::new(0);
2914    }
2915}
2916#[doc(hidden)]
2917#[derive(Copy, Clone, Eq, PartialEq)]
2918pub struct Simr2_SPEC;
2919impl crate::sealed::RegSpec for Simr2_SPEC {
2920    type DataType = u8;
2921}
2922
2923#[doc = "IIC Mode Register 2"]
2924pub type Simr2 = crate::RegValueT<Simr2_SPEC>;
2925
2926impl Simr2 {
2927    #[doc = "IIC Interrupt Mode Select"]
2928    #[inline(always)]
2929    pub fn iicintm(
2930        self,
2931    ) -> crate::common::RegisterField<
2932        0,
2933        0x1,
2934        1,
2935        0,
2936        simr2::Iicintm,
2937        simr2::Iicintm,
2938        Simr2_SPEC,
2939        crate::common::RW,
2940    > {
2941        crate::common::RegisterField::<
2942            0,
2943            0x1,
2944            1,
2945            0,
2946            simr2::Iicintm,
2947            simr2::Iicintm,
2948            Simr2_SPEC,
2949            crate::common::RW,
2950        >::from_register(self, 0)
2951    }
2952
2953    #[doc = "Clock Synchronization"]
2954    #[inline(always)]
2955    pub fn iiccsc(
2956        self,
2957    ) -> crate::common::RegisterField<
2958        1,
2959        0x1,
2960        1,
2961        0,
2962        simr2::Iiccsc,
2963        simr2::Iiccsc,
2964        Simr2_SPEC,
2965        crate::common::RW,
2966    > {
2967        crate::common::RegisterField::<
2968            1,
2969            0x1,
2970            1,
2971            0,
2972            simr2::Iiccsc,
2973            simr2::Iiccsc,
2974            Simr2_SPEC,
2975            crate::common::RW,
2976        >::from_register(self, 0)
2977    }
2978
2979    #[doc = "ACK Transmission Data"]
2980    #[inline(always)]
2981    pub fn iicackt(
2982        self,
2983    ) -> crate::common::RegisterField<
2984        5,
2985        0x1,
2986        1,
2987        0,
2988        simr2::Iicackt,
2989        simr2::Iicackt,
2990        Simr2_SPEC,
2991        crate::common::RW,
2992    > {
2993        crate::common::RegisterField::<
2994            5,
2995            0x1,
2996            1,
2997            0,
2998            simr2::Iicackt,
2999            simr2::Iicackt,
3000            Simr2_SPEC,
3001            crate::common::RW,
3002        >::from_register(self, 0)
3003    }
3004}
3005impl ::core::default::Default for Simr2 {
3006    #[inline(always)]
3007    fn default() -> Simr2 {
3008        <crate::RegValueT<Simr2_SPEC> as RegisterValue<_>>::new(0)
3009    }
3010}
3011pub mod simr2 {
3012
3013    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3014    pub struct Iicintm_SPEC;
3015    pub type Iicintm = crate::EnumBitfieldStruct<u8, Iicintm_SPEC>;
3016    impl Iicintm {
3017        #[doc = "Use ACK/NACK interrupts"]
3018        pub const _0: Self = Self::new(0);
3019
3020        #[doc = "Use reception and transmission interrupts"]
3021        pub const _1: Self = Self::new(1);
3022    }
3023    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3024    pub struct Iiccsc_SPEC;
3025    pub type Iiccsc = crate::EnumBitfieldStruct<u8, Iiccsc_SPEC>;
3026    impl Iiccsc {
3027        #[doc = "Do not synchronize with clock signal"]
3028        pub const _0: Self = Self::new(0);
3029
3030        #[doc = "Synchronize with clock signal"]
3031        pub const _1: Self = Self::new(1);
3032    }
3033    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3034    pub struct Iicackt_SPEC;
3035    pub type Iicackt = crate::EnumBitfieldStruct<u8, Iicackt_SPEC>;
3036    impl Iicackt {
3037        #[doc = "ACK transmission"]
3038        pub const _0: Self = Self::new(0);
3039
3040        #[doc = "NACK transmission and ACK/NACK reception"]
3041        pub const _1: Self = Self::new(1);
3042    }
3043}
3044#[doc(hidden)]
3045#[derive(Copy, Clone, Eq, PartialEq)]
3046pub struct Simr3_SPEC;
3047impl crate::sealed::RegSpec for Simr3_SPEC {
3048    type DataType = u8;
3049}
3050
3051#[doc = "IIC Mode Register 3"]
3052pub type Simr3 = crate::RegValueT<Simr3_SPEC>;
3053
3054impl Simr3 {
3055    #[doc = "Start Condition Generation"]
3056    #[inline(always)]
3057    pub fn iicstareq(
3058        self,
3059    ) -> crate::common::RegisterField<
3060        0,
3061        0x1,
3062        1,
3063        0,
3064        simr3::Iicstareq,
3065        simr3::Iicstareq,
3066        Simr3_SPEC,
3067        crate::common::RW,
3068    > {
3069        crate::common::RegisterField::<
3070            0,
3071            0x1,
3072            1,
3073            0,
3074            simr3::Iicstareq,
3075            simr3::Iicstareq,
3076            Simr3_SPEC,
3077            crate::common::RW,
3078        >::from_register(self, 0)
3079    }
3080
3081    #[doc = "Restart Condition Generation"]
3082    #[inline(always)]
3083    pub fn iicrstareq(
3084        self,
3085    ) -> crate::common::RegisterField<
3086        1,
3087        0x1,
3088        1,
3089        0,
3090        simr3::Iicrstareq,
3091        simr3::Iicrstareq,
3092        Simr3_SPEC,
3093        crate::common::RW,
3094    > {
3095        crate::common::RegisterField::<
3096            1,
3097            0x1,
3098            1,
3099            0,
3100            simr3::Iicrstareq,
3101            simr3::Iicrstareq,
3102            Simr3_SPEC,
3103            crate::common::RW,
3104        >::from_register(self, 0)
3105    }
3106
3107    #[doc = "Stop Condition Generation"]
3108    #[inline(always)]
3109    pub fn iicstpreq(
3110        self,
3111    ) -> crate::common::RegisterField<
3112        2,
3113        0x1,
3114        1,
3115        0,
3116        simr3::Iicstpreq,
3117        simr3::Iicstpreq,
3118        Simr3_SPEC,
3119        crate::common::RW,
3120    > {
3121        crate::common::RegisterField::<
3122            2,
3123            0x1,
3124            1,
3125            0,
3126            simr3::Iicstpreq,
3127            simr3::Iicstpreq,
3128            Simr3_SPEC,
3129            crate::common::RW,
3130        >::from_register(self, 0)
3131    }
3132
3133    #[doc = "Issuing of Start, Restart, or Stop Condition Completed Flag"]
3134    #[inline(always)]
3135    pub fn iicstif(
3136        self,
3137    ) -> crate::common::RegisterField<
3138        3,
3139        0x1,
3140        1,
3141        0,
3142        simr3::Iicstif,
3143        simr3::Iicstif,
3144        Simr3_SPEC,
3145        crate::common::RW,
3146    > {
3147        crate::common::RegisterField::<
3148            3,
3149            0x1,
3150            1,
3151            0,
3152            simr3::Iicstif,
3153            simr3::Iicstif,
3154            Simr3_SPEC,
3155            crate::common::RW,
3156        >::from_register(self, 0)
3157    }
3158
3159    #[doc = "SDAn Output Select"]
3160    #[inline(always)]
3161    pub fn iicsdas(
3162        self,
3163    ) -> crate::common::RegisterField<
3164        4,
3165        0x3,
3166        1,
3167        0,
3168        simr3::Iicsdas,
3169        simr3::Iicsdas,
3170        Simr3_SPEC,
3171        crate::common::RW,
3172    > {
3173        crate::common::RegisterField::<
3174            4,
3175            0x3,
3176            1,
3177            0,
3178            simr3::Iicsdas,
3179            simr3::Iicsdas,
3180            Simr3_SPEC,
3181            crate::common::RW,
3182        >::from_register(self, 0)
3183    }
3184
3185    #[doc = "SCLn Output Select"]
3186    #[inline(always)]
3187    pub fn iicscls(
3188        self,
3189    ) -> crate::common::RegisterField<
3190        6,
3191        0x3,
3192        1,
3193        0,
3194        simr3::Iicscls,
3195        simr3::Iicscls,
3196        Simr3_SPEC,
3197        crate::common::RW,
3198    > {
3199        crate::common::RegisterField::<
3200            6,
3201            0x3,
3202            1,
3203            0,
3204            simr3::Iicscls,
3205            simr3::Iicscls,
3206            Simr3_SPEC,
3207            crate::common::RW,
3208        >::from_register(self, 0)
3209    }
3210}
3211impl ::core::default::Default for Simr3 {
3212    #[inline(always)]
3213    fn default() -> Simr3 {
3214        <crate::RegValueT<Simr3_SPEC> as RegisterValue<_>>::new(0)
3215    }
3216}
3217pub mod simr3 {
3218
3219    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3220    pub struct Iicstareq_SPEC;
3221    pub type Iicstareq = crate::EnumBitfieldStruct<u8, Iicstareq_SPEC>;
3222    impl Iicstareq {
3223        #[doc = "Do not generate start condition"]
3224        pub const _0: Self = Self::new(0);
3225
3226        #[doc = "Generate start condition"]
3227        pub const _1: Self = Self::new(1);
3228    }
3229    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3230    pub struct Iicrstareq_SPEC;
3231    pub type Iicrstareq = crate::EnumBitfieldStruct<u8, Iicrstareq_SPEC>;
3232    impl Iicrstareq {
3233        #[doc = "Do not generate restart condition"]
3234        pub const _0: Self = Self::new(0);
3235
3236        #[doc = "Generate restart condition"]
3237        pub const _1: Self = Self::new(1);
3238    }
3239    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3240    pub struct Iicstpreq_SPEC;
3241    pub type Iicstpreq = crate::EnumBitfieldStruct<u8, Iicstpreq_SPEC>;
3242    impl Iicstpreq {
3243        #[doc = "Do not generate stop condition"]
3244        pub const _0: Self = Self::new(0);
3245
3246        #[doc = "Generate stop condition"]
3247        pub const _1: Self = Self::new(1);
3248    }
3249    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3250    pub struct Iicstif_SPEC;
3251    pub type Iicstif = crate::EnumBitfieldStruct<u8, Iicstif_SPEC>;
3252    impl Iicstif {
3253        #[doc = "No requests are being made for generating conditions, or a condition is being generated"]
3254        pub const _0: Self = Self::new(0);
3255
3256        #[doc = "Generation of start, restart, or stop condition is complete. When 0 is written to IICSTIF, it is set to 0"]
3257        pub const _1: Self = Self::new(1);
3258    }
3259    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3260    pub struct Iicsdas_SPEC;
3261    pub type Iicsdas = crate::EnumBitfieldStruct<u8, Iicsdas_SPEC>;
3262    impl Iicsdas {
3263        #[doc = "Output serial data"]
3264        pub const _00: Self = Self::new(0);
3265
3266        #[doc = "Generate start, restart, or stop condition"]
3267        pub const _01: Self = Self::new(1);
3268
3269        #[doc = "Output low on SDAn pin"]
3270        pub const _10: Self = Self::new(2);
3271
3272        #[doc = "Drive SDAn pin to high-impedance state"]
3273        pub const _11: Self = Self::new(3);
3274    }
3275    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3276    pub struct Iicscls_SPEC;
3277    pub type Iicscls = crate::EnumBitfieldStruct<u8, Iicscls_SPEC>;
3278    impl Iicscls {
3279        #[doc = "Output serial clock"]
3280        pub const _00: Self = Self::new(0);
3281
3282        #[doc = "Generate start, restart, or stop condition"]
3283        pub const _01: Self = Self::new(1);
3284
3285        #[doc = "Output low on SCLn pin"]
3286        pub const _10: Self = Self::new(2);
3287
3288        #[doc = "Drive SCLn pin to high-impedance state"]
3289        pub const _11: Self = Self::new(3);
3290    }
3291}
3292#[doc(hidden)]
3293#[derive(Copy, Clone, Eq, PartialEq)]
3294pub struct Sisr_SPEC;
3295impl crate::sealed::RegSpec for Sisr_SPEC {
3296    type DataType = u8;
3297}
3298
3299#[doc = "IIC Status Register"]
3300pub type Sisr = crate::RegValueT<Sisr_SPEC>;
3301
3302impl Sisr {
3303    #[doc = "ACK Reception Data Flag"]
3304    #[inline(always)]
3305    pub fn iicackr(
3306        self,
3307    ) -> crate::common::RegisterField<
3308        0,
3309        0x1,
3310        1,
3311        0,
3312        sisr::Iicackr,
3313        sisr::Iicackr,
3314        Sisr_SPEC,
3315        crate::common::R,
3316    > {
3317        crate::common::RegisterField::<
3318            0,
3319            0x1,
3320            1,
3321            0,
3322            sisr::Iicackr,
3323            sisr::Iicackr,
3324            Sisr_SPEC,
3325            crate::common::R,
3326        >::from_register(self, 0)
3327    }
3328}
3329impl ::core::default::Default for Sisr {
3330    #[inline(always)]
3331    fn default() -> Sisr {
3332        <crate::RegValueT<Sisr_SPEC> as RegisterValue<_>>::new(0)
3333    }
3334}
3335pub mod sisr {
3336
3337    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3338    pub struct Iicackr_SPEC;
3339    pub type Iicackr = crate::EnumBitfieldStruct<u8, Iicackr_SPEC>;
3340    impl Iicackr {
3341        #[doc = "ACK received"]
3342        pub const _0: Self = Self::new(0);
3343
3344        #[doc = "NACK received"]
3345        pub const _1: Self = Self::new(1);
3346    }
3347}
3348#[doc(hidden)]
3349#[derive(Copy, Clone, Eq, PartialEq)]
3350pub struct Spmr_SPEC;
3351impl crate::sealed::RegSpec for Spmr_SPEC {
3352    type DataType = u8;
3353}
3354
3355#[doc = "SPI Mode Register"]
3356pub type Spmr = crate::RegValueT<Spmr_SPEC>;
3357
3358impl Spmr {
3359    #[doc = "SSn Pin Function Enable"]
3360    #[inline(always)]
3361    pub fn sse(
3362        self,
3363    ) -> crate::common::RegisterField<
3364        0,
3365        0x1,
3366        1,
3367        0,
3368        spmr::Sse,
3369        spmr::Sse,
3370        Spmr_SPEC,
3371        crate::common::RW,
3372    > {
3373        crate::common::RegisterField::<
3374            0,
3375            0x1,
3376            1,
3377            0,
3378            spmr::Sse,
3379            spmr::Sse,
3380            Spmr_SPEC,
3381            crate::common::RW,
3382        >::from_register(self, 0)
3383    }
3384
3385    #[doc = "CTS Enable"]
3386    #[inline(always)]
3387    pub fn ctse(
3388        self,
3389    ) -> crate::common::RegisterField<
3390        1,
3391        0x1,
3392        1,
3393        0,
3394        spmr::Ctse,
3395        spmr::Ctse,
3396        Spmr_SPEC,
3397        crate::common::RW,
3398    > {
3399        crate::common::RegisterField::<
3400            1,
3401            0x1,
3402            1,
3403            0,
3404            spmr::Ctse,
3405            spmr::Ctse,
3406            Spmr_SPEC,
3407            crate::common::RW,
3408        >::from_register(self, 0)
3409    }
3410
3411    #[doc = "Master Slave Select"]
3412    #[inline(always)]
3413    pub fn mss(
3414        self,
3415    ) -> crate::common::RegisterField<
3416        2,
3417        0x1,
3418        1,
3419        0,
3420        spmr::Mss,
3421        spmr::Mss,
3422        Spmr_SPEC,
3423        crate::common::RW,
3424    > {
3425        crate::common::RegisterField::<
3426            2,
3427            0x1,
3428            1,
3429            0,
3430            spmr::Mss,
3431            spmr::Mss,
3432            Spmr_SPEC,
3433            crate::common::RW,
3434        >::from_register(self, 0)
3435    }
3436
3437    #[doc = "CTS external pin Enable"]
3438    #[inline(always)]
3439    pub fn ctspen(
3440        self,
3441    ) -> crate::common::RegisterField<
3442        3,
3443        0x1,
3444        1,
3445        0,
3446        spmr::Ctspen,
3447        spmr::Ctspen,
3448        Spmr_SPEC,
3449        crate::common::RW,
3450    > {
3451        crate::common::RegisterField::<
3452            3,
3453            0x1,
3454            1,
3455            0,
3456            spmr::Ctspen,
3457            spmr::Ctspen,
3458            Spmr_SPEC,
3459            crate::common::RW,
3460        >::from_register(self, 0)
3461    }
3462
3463    #[doc = "Mode Fault Flag"]
3464    #[inline(always)]
3465    pub fn mff(
3466        self,
3467    ) -> crate::common::RegisterField<
3468        4,
3469        0x1,
3470        1,
3471        0,
3472        spmr::Mff,
3473        spmr::Mff,
3474        Spmr_SPEC,
3475        crate::common::RW,
3476    > {
3477        crate::common::RegisterField::<
3478            4,
3479            0x1,
3480            1,
3481            0,
3482            spmr::Mff,
3483            spmr::Mff,
3484            Spmr_SPEC,
3485            crate::common::RW,
3486        >::from_register(self, 0)
3487    }
3488
3489    #[doc = "Clock Polarity Select"]
3490    #[inline(always)]
3491    pub fn ckpol(
3492        self,
3493    ) -> crate::common::RegisterField<
3494        6,
3495        0x1,
3496        1,
3497        0,
3498        spmr::Ckpol,
3499        spmr::Ckpol,
3500        Spmr_SPEC,
3501        crate::common::RW,
3502    > {
3503        crate::common::RegisterField::<
3504            6,
3505            0x1,
3506            1,
3507            0,
3508            spmr::Ckpol,
3509            spmr::Ckpol,
3510            Spmr_SPEC,
3511            crate::common::RW,
3512        >::from_register(self, 0)
3513    }
3514
3515    #[doc = "Clock Phase Select"]
3516    #[inline(always)]
3517    pub fn ckph(
3518        self,
3519    ) -> crate::common::RegisterField<
3520        7,
3521        0x1,
3522        1,
3523        0,
3524        spmr::Ckph,
3525        spmr::Ckph,
3526        Spmr_SPEC,
3527        crate::common::RW,
3528    > {
3529        crate::common::RegisterField::<
3530            7,
3531            0x1,
3532            1,
3533            0,
3534            spmr::Ckph,
3535            spmr::Ckph,
3536            Spmr_SPEC,
3537            crate::common::RW,
3538        >::from_register(self, 0)
3539    }
3540}
3541impl ::core::default::Default for Spmr {
3542    #[inline(always)]
3543    fn default() -> Spmr {
3544        <crate::RegValueT<Spmr_SPEC> as RegisterValue<_>>::new(0)
3545    }
3546}
3547pub mod spmr {
3548
3549    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3550    pub struct Sse_SPEC;
3551    pub type Sse = crate::EnumBitfieldStruct<u8, Sse_SPEC>;
3552    impl Sse {
3553        #[doc = "Disable SSn pin function"]
3554        pub const _0: Self = Self::new(0);
3555
3556        #[doc = "Enable SSn pin function"]
3557        pub const _1: Self = Self::new(1);
3558    }
3559    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3560    pub struct Ctse_SPEC;
3561    pub type Ctse = crate::EnumBitfieldStruct<u8, Ctse_SPEC>;
3562    impl Ctse {
3563        #[doc = "Disable CTS function (enable RTS output function)"]
3564        pub const _0: Self = Self::new(0);
3565
3566        #[doc = "Enable CTS function"]
3567        pub const _1: Self = Self::new(1);
3568    }
3569    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3570    pub struct Mss_SPEC;
3571    pub type Mss = crate::EnumBitfieldStruct<u8, Mss_SPEC>;
3572    impl Mss {
3573        #[doc = "Transmit through TXDn pin and receive through RXDn pin (master mode)"]
3574        pub const _0: Self = Self::new(0);
3575
3576        #[doc = "Receive through TXDn pin and transmit through RXDn pin (slave mode)"]
3577        pub const _1: Self = Self::new(1);
3578    }
3579    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3580    pub struct Ctspen_SPEC;
3581    pub type Ctspen = crate::EnumBitfieldStruct<u8, Ctspen_SPEC>;
3582    impl Ctspen {
3583        #[doc = "Alternate setting to use CTS and RTS functions as either one terminal"]
3584        pub const _0: Self = Self::new(0);
3585
3586        #[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."]
3587        pub const _1: Self = Self::new(1);
3588    }
3589    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3590    pub struct Mff_SPEC;
3591    pub type Mff = crate::EnumBitfieldStruct<u8, Mff_SPEC>;
3592    impl Mff {
3593        #[doc = "No mode fault error"]
3594        pub const _0: Self = Self::new(0);
3595
3596        #[doc = "Mode fault error"]
3597        pub const _1: Self = Self::new(1);
3598    }
3599    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3600    pub struct Ckpol_SPEC;
3601    pub type Ckpol = crate::EnumBitfieldStruct<u8, Ckpol_SPEC>;
3602    impl Ckpol {
3603        #[doc = "Do not invert clock polarity"]
3604        pub const _0: Self = Self::new(0);
3605
3606        #[doc = "Invert clock polarity"]
3607        pub const _1: Self = Self::new(1);
3608    }
3609    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3610    pub struct Ckph_SPEC;
3611    pub type Ckph = crate::EnumBitfieldStruct<u8, Ckph_SPEC>;
3612    impl Ckph {
3613        #[doc = "Do not delay clock"]
3614        pub const _0: Self = Self::new(0);
3615
3616        #[doc = "Delay clock"]
3617        pub const _1: Self = Self::new(1);
3618    }
3619}
3620#[doc(hidden)]
3621#[derive(Copy, Clone, Eq, PartialEq)]
3622pub struct Ftdrhl_SPEC;
3623impl crate::sealed::RegSpec for Ftdrhl_SPEC {
3624    type DataType = u16;
3625}
3626
3627#[doc = "Transmit FIFO Data Register"]
3628pub type Ftdrhl = crate::RegValueT<Ftdrhl_SPEC>;
3629
3630impl Ftdrhl {
3631    #[doc = "Serial transmit data"]
3632    #[inline(always)]
3633    pub fn tdat(
3634        self,
3635    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Ftdrhl_SPEC, crate::common::W> {
3636        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Ftdrhl_SPEC,crate::common::W>::from_register(self,0)
3637    }
3638
3639    #[doc = "Multi-Processor Transfer Bit Flag"]
3640    #[inline(always)]
3641    pub fn mpbt(
3642        self,
3643    ) -> crate::common::RegisterField<
3644        9,
3645        0x1,
3646        1,
3647        0,
3648        ftdrhl::Mpbt,
3649        ftdrhl::Mpbt,
3650        Ftdrhl_SPEC,
3651        crate::common::W,
3652    > {
3653        crate::common::RegisterField::<
3654            9,
3655            0x1,
3656            1,
3657            0,
3658            ftdrhl::Mpbt,
3659            ftdrhl::Mpbt,
3660            Ftdrhl_SPEC,
3661            crate::common::W,
3662        >::from_register(self, 0)
3663    }
3664}
3665impl ::core::default::Default for Ftdrhl {
3666    #[inline(always)]
3667    fn default() -> Ftdrhl {
3668        <crate::RegValueT<Ftdrhl_SPEC> as RegisterValue<_>>::new(65535)
3669    }
3670}
3671pub mod ftdrhl {
3672
3673    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3674    pub struct Mpbt_SPEC;
3675    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
3676    impl Mpbt {
3677        #[doc = "Data transmission cycle"]
3678        pub const _0: Self = Self::new(0);
3679
3680        #[doc = "ID transmission cycle"]
3681        pub const _1: Self = Self::new(1);
3682    }
3683}
3684#[doc(hidden)]
3685#[derive(Copy, Clone, Eq, PartialEq)]
3686pub struct Tdrhl_SPEC;
3687impl crate::sealed::RegSpec for Tdrhl_SPEC {
3688    type DataType = u16;
3689}
3690
3691#[doc = "Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
3692pub type Tdrhl = crate::RegValueT<Tdrhl_SPEC>;
3693
3694impl Tdrhl {
3695    #[doc = "Serial Transmit Data"]
3696    #[inline(always)]
3697    pub fn tdat(
3698        self,
3699    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Tdrhl_SPEC, crate::common::RW> {
3700        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Tdrhl_SPEC,crate::common::RW>::from_register(self,0)
3701    }
3702}
3703impl ::core::default::Default for Tdrhl {
3704    #[inline(always)]
3705    fn default() -> Tdrhl {
3706        <crate::RegValueT<Tdrhl_SPEC> as RegisterValue<_>>::new(65535)
3707    }
3708}
3709
3710#[doc(hidden)]
3711#[derive(Copy, Clone, Eq, PartialEq)]
3712pub struct TdrhlMan_SPEC;
3713impl crate::sealed::RegSpec for TdrhlMan_SPEC {
3714    type DataType = u16;
3715}
3716
3717#[doc = "Transmit Data Register for Manchester mode (MMR.MANEN = 1)"]
3718pub type TdrhlMan = crate::RegValueT<TdrhlMan_SPEC>;
3719
3720impl TdrhlMan {
3721    #[doc = "Serial transmit data"]
3722    #[inline(always)]
3723    pub fn tdat(
3724        self,
3725    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, TdrhlMan_SPEC, crate::common::RW>
3726    {
3727        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,TdrhlMan_SPEC,crate::common::RW>::from_register(self,0)
3728    }
3729
3730    #[doc = "Multi-processor transfer bit flag"]
3731    #[inline(always)]
3732    pub fn mpbt(
3733        self,
3734    ) -> crate::common::RegisterField<
3735        9,
3736        0x1,
3737        1,
3738        0,
3739        tdrhl_man::Mpbt,
3740        tdrhl_man::Mpbt,
3741        TdrhlMan_SPEC,
3742        crate::common::RW,
3743    > {
3744        crate::common::RegisterField::<
3745            9,
3746            0x1,
3747            1,
3748            0,
3749            tdrhl_man::Mpbt,
3750            tdrhl_man::Mpbt,
3751            TdrhlMan_SPEC,
3752            crate::common::RW,
3753        >::from_register(self, 0)
3754    }
3755
3756    #[doc = "Transmit SYNC data bit"]
3757    #[inline(always)]
3758    pub fn tsync(
3759        self,
3760    ) -> crate::common::RegisterField<
3761        12,
3762        0x1,
3763        1,
3764        0,
3765        tdrhl_man::Tsync,
3766        tdrhl_man::Tsync,
3767        TdrhlMan_SPEC,
3768        crate::common::RW,
3769    > {
3770        crate::common::RegisterField::<
3771            12,
3772            0x1,
3773            1,
3774            0,
3775            tdrhl_man::Tsync,
3776            tdrhl_man::Tsync,
3777            TdrhlMan_SPEC,
3778            crate::common::RW,
3779        >::from_register(self, 0)
3780    }
3781}
3782impl ::core::default::Default for TdrhlMan {
3783    #[inline(always)]
3784    fn default() -> TdrhlMan {
3785        <crate::RegValueT<TdrhlMan_SPEC> as RegisterValue<_>>::new(65535)
3786    }
3787}
3788pub mod tdrhl_man {
3789
3790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3791    pub struct Mpbt_SPEC;
3792    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
3793    impl Mpbt {
3794        #[doc = "Data transmission cycles"]
3795        pub const _0: Self = Self::new(0);
3796
3797        #[doc = "ID transmission cycles"]
3798        pub const _1: Self = Self::new(1);
3799    }
3800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3801    pub struct Tsync_SPEC;
3802    pub type Tsync = crate::EnumBitfieldStruct<u8, Tsync_SPEC>;
3803    impl Tsync {
3804        #[doc = "The Start Bit is transmitted as DATA SYNC."]
3805        pub const _0: Self = Self::new(0);
3806
3807        #[doc = "The Start Bit is transmitted as COMMAND SYNC."]
3808        pub const _1: Self = Self::new(1);
3809    }
3810}
3811#[doc(hidden)]
3812#[derive(Copy, Clone, Eq, PartialEq)]
3813pub struct Ftdrh_SPEC;
3814impl crate::sealed::RegSpec for Ftdrh_SPEC {
3815    type DataType = u8;
3816}
3817
3818#[doc = "Transmit FIFO Data Register"]
3819pub type Ftdrh = crate::RegValueT<Ftdrh_SPEC>;
3820
3821impl Ftdrh {
3822    #[doc = "Serial transmit data"]
3823    #[inline(always)]
3824    pub fn tdat(self) -> crate::common::RegisterFieldBool<0, 1, 0, Ftdrh_SPEC, crate::common::W> {
3825        crate::common::RegisterFieldBool::<0, 1, 0, Ftdrh_SPEC, crate::common::W>::from_register(
3826            self, 0,
3827        )
3828    }
3829
3830    #[doc = "Multi-Processor Transfer Bit Flag"]
3831    #[inline(always)]
3832    pub fn mpbt(
3833        self,
3834    ) -> crate::common::RegisterField<
3835        1,
3836        0x1,
3837        1,
3838        0,
3839        ftdrh::Mpbt,
3840        ftdrh::Mpbt,
3841        Ftdrh_SPEC,
3842        crate::common::W,
3843    > {
3844        crate::common::RegisterField::<
3845            1,
3846            0x1,
3847            1,
3848            0,
3849            ftdrh::Mpbt,
3850            ftdrh::Mpbt,
3851            Ftdrh_SPEC,
3852            crate::common::W,
3853        >::from_register(self, 0)
3854    }
3855}
3856impl ::core::default::Default for Ftdrh {
3857    #[inline(always)]
3858    fn default() -> Ftdrh {
3859        <crate::RegValueT<Ftdrh_SPEC> as RegisterValue<_>>::new(255)
3860    }
3861}
3862pub mod ftdrh {
3863
3864    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3865    pub struct Mpbt_SPEC;
3866    pub type Mpbt = crate::EnumBitfieldStruct<u8, Mpbt_SPEC>;
3867    impl Mpbt {
3868        #[doc = "Data transmission cycle"]
3869        pub const _0: Self = Self::new(0);
3870
3871        #[doc = "ID transmission cycle"]
3872        pub const _1: Self = Self::new(1);
3873    }
3874}
3875#[doc(hidden)]
3876#[derive(Copy, Clone, Eq, PartialEq)]
3877pub struct Ftdrl_SPEC;
3878impl crate::sealed::RegSpec for Ftdrl_SPEC {
3879    type DataType = u8;
3880}
3881
3882#[doc = "Transmit FIFO Data Register"]
3883pub type Ftdrl = crate::RegValueT<Ftdrl_SPEC>;
3884
3885impl Ftdrl {
3886    #[doc = "Serial transmit data"]
3887    #[inline(always)]
3888    pub fn tdat(
3889        self,
3890    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Ftdrl_SPEC, crate::common::W> {
3891        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Ftdrl_SPEC,crate::common::W>::from_register(self,0)
3892    }
3893}
3894impl ::core::default::Default for Ftdrl {
3895    #[inline(always)]
3896    fn default() -> Ftdrl {
3897        <crate::RegValueT<Ftdrl_SPEC> as RegisterValue<_>>::new(255)
3898    }
3899}
3900
3901#[doc(hidden)]
3902#[derive(Copy, Clone, Eq, PartialEq)]
3903pub struct Frdrhl_SPEC;
3904impl crate::sealed::RegSpec for Frdrhl_SPEC {
3905    type DataType = u16;
3906}
3907
3908#[doc = "Receive FIFO Data Register"]
3909pub type Frdrhl = crate::RegValueT<Frdrhl_SPEC>;
3910
3911impl Frdrhl {
3912    #[doc = "Serial receive data"]
3913    #[inline(always)]
3914    pub fn rdat(
3915        self,
3916    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Frdrhl_SPEC, crate::common::R> {
3917        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Frdrhl_SPEC,crate::common::R>::from_register(self,0)
3918    }
3919
3920    #[doc = "Multi-Processor Bit Flag"]
3921    #[inline(always)]
3922    pub fn mpb(
3923        self,
3924    ) -> crate::common::RegisterField<
3925        9,
3926        0x1,
3927        1,
3928        0,
3929        frdrhl::Mpb,
3930        frdrhl::Mpb,
3931        Frdrhl_SPEC,
3932        crate::common::R,
3933    > {
3934        crate::common::RegisterField::<
3935            9,
3936            0x1,
3937            1,
3938            0,
3939            frdrhl::Mpb,
3940            frdrhl::Mpb,
3941            Frdrhl_SPEC,
3942            crate::common::R,
3943        >::from_register(self, 0)
3944    }
3945
3946    #[doc = "Receive Data Ready Flag"]
3947    #[inline(always)]
3948    pub fn dr(
3949        self,
3950    ) -> crate::common::RegisterField<
3951        10,
3952        0x1,
3953        1,
3954        0,
3955        frdrhl::Dr,
3956        frdrhl::Dr,
3957        Frdrhl_SPEC,
3958        crate::common::R,
3959    > {
3960        crate::common::RegisterField::<
3961            10,
3962            0x1,
3963            1,
3964            0,
3965            frdrhl::Dr,
3966            frdrhl::Dr,
3967            Frdrhl_SPEC,
3968            crate::common::R,
3969        >::from_register(self, 0)
3970    }
3971
3972    #[doc = "Parity Error Flag"]
3973    #[inline(always)]
3974    pub fn per(
3975        self,
3976    ) -> crate::common::RegisterField<
3977        11,
3978        0x1,
3979        1,
3980        0,
3981        frdrhl::Per,
3982        frdrhl::Per,
3983        Frdrhl_SPEC,
3984        crate::common::R,
3985    > {
3986        crate::common::RegisterField::<
3987            11,
3988            0x1,
3989            1,
3990            0,
3991            frdrhl::Per,
3992            frdrhl::Per,
3993            Frdrhl_SPEC,
3994            crate::common::R,
3995        >::from_register(self, 0)
3996    }
3997
3998    #[doc = "Framing Error Flag"]
3999    #[inline(always)]
4000    pub fn fer(
4001        self,
4002    ) -> crate::common::RegisterField<
4003        12,
4004        0x1,
4005        1,
4006        0,
4007        frdrhl::Fer,
4008        frdrhl::Fer,
4009        Frdrhl_SPEC,
4010        crate::common::R,
4011    > {
4012        crate::common::RegisterField::<
4013            12,
4014            0x1,
4015            1,
4016            0,
4017            frdrhl::Fer,
4018            frdrhl::Fer,
4019            Frdrhl_SPEC,
4020            crate::common::R,
4021        >::from_register(self, 0)
4022    }
4023
4024    #[doc = "Overrun Error Flag"]
4025    #[inline(always)]
4026    pub fn orer(
4027        self,
4028    ) -> crate::common::RegisterField<
4029        13,
4030        0x1,
4031        1,
4032        0,
4033        frdrhl::Orer,
4034        frdrhl::Orer,
4035        Frdrhl_SPEC,
4036        crate::common::R,
4037    > {
4038        crate::common::RegisterField::<
4039            13,
4040            0x1,
4041            1,
4042            0,
4043            frdrhl::Orer,
4044            frdrhl::Orer,
4045            Frdrhl_SPEC,
4046            crate::common::R,
4047        >::from_register(self, 0)
4048    }
4049
4050    #[doc = "Receive FIFO Data Full Flag"]
4051    #[inline(always)]
4052    pub fn rdf(
4053        self,
4054    ) -> crate::common::RegisterField<
4055        14,
4056        0x1,
4057        1,
4058        0,
4059        frdrhl::Rdf,
4060        frdrhl::Rdf,
4061        Frdrhl_SPEC,
4062        crate::common::R,
4063    > {
4064        crate::common::RegisterField::<
4065            14,
4066            0x1,
4067            1,
4068            0,
4069            frdrhl::Rdf,
4070            frdrhl::Rdf,
4071            Frdrhl_SPEC,
4072            crate::common::R,
4073        >::from_register(self, 0)
4074    }
4075}
4076impl ::core::default::Default for Frdrhl {
4077    #[inline(always)]
4078    fn default() -> Frdrhl {
4079        <crate::RegValueT<Frdrhl_SPEC> as RegisterValue<_>>::new(0)
4080    }
4081}
4082pub mod frdrhl {
4083
4084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4085    pub struct Mpb_SPEC;
4086    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
4087    impl Mpb {
4088        #[doc = "Data transmission cycle"]
4089        pub const _0: Self = Self::new(0);
4090
4091        #[doc = "ID transmission cycle"]
4092        pub const _1: Self = Self::new(1);
4093    }
4094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4095    pub struct Dr_SPEC;
4096    pub type Dr = crate::EnumBitfieldStruct<u8, Dr_SPEC>;
4097    impl Dr {
4098        #[doc = "Receiving is in progress, or no received data remains in the FRDRH and FRDRL registers after successfully completed reception"]
4099        pub const _0: Self = Self::new(0);
4100
4101        #[doc = "Next receive data is not received for a period after successfully completed reception"]
4102        pub const _1: Self = Self::new(1);
4103    }
4104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4105    pub struct Per_SPEC;
4106    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
4107    impl Per {
4108        #[doc = "No parity error occurred in the first data of FRDRH and FRDRL"]
4109        pub const _0: Self = Self::new(0);
4110
4111        #[doc = "Parity error occurred in the first data of FRDRH and FRDRL"]
4112        pub const _1: Self = Self::new(1);
4113    }
4114    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4115    pub struct Fer_SPEC;
4116    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
4117    impl Fer {
4118        #[doc = "No framing error occurred in the first data of FRDRH and FRDRL"]
4119        pub const _0: Self = Self::new(0);
4120
4121        #[doc = "Framing error occurred in the first data of FRDRH and FRDRL"]
4122        pub const _1: Self = Self::new(1);
4123    }
4124    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4125    pub struct Orer_SPEC;
4126    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
4127    impl Orer {
4128        #[doc = "No overrun error occurred"]
4129        pub const _0: Self = Self::new(0);
4130
4131        #[doc = "Overrun error occurred"]
4132        pub const _1: Self = Self::new(1);
4133    }
4134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4135    pub struct Rdf_SPEC;
4136    pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
4137    impl Rdf {
4138        #[doc = "The amount of receive data written in FRDRH and FRDRL is less than the specified receive triggering number"]
4139        pub const _0: Self = Self::new(0);
4140
4141        #[doc = "The amount of receive data written in FRDRH and FRDRL is equal to or greater than the specified receive triggering number"]
4142        pub const _1: Self = Self::new(1);
4143    }
4144}
4145#[doc(hidden)]
4146#[derive(Copy, Clone, Eq, PartialEq)]
4147pub struct Rdrhl_SPEC;
4148impl crate::sealed::RegSpec for Rdrhl_SPEC {
4149    type DataType = u16;
4150}
4151
4152#[doc = "Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
4153pub type Rdrhl = crate::RegValueT<Rdrhl_SPEC>;
4154
4155impl Rdrhl {
4156    #[doc = "Serial Receive Data"]
4157    #[inline(always)]
4158    pub fn rdat(
4159        self,
4160    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Rdrhl_SPEC, crate::common::R> {
4161        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Rdrhl_SPEC,crate::common::R>::from_register(self,0)
4162    }
4163}
4164impl ::core::default::Default for Rdrhl {
4165    #[inline(always)]
4166    fn default() -> Rdrhl {
4167        <crate::RegValueT<Rdrhl_SPEC> as RegisterValue<_>>::new(0)
4168    }
4169}
4170
4171#[doc(hidden)]
4172#[derive(Copy, Clone, Eq, PartialEq)]
4173pub struct RdrhlMan_SPEC;
4174impl crate::sealed::RegSpec for RdrhlMan_SPEC {
4175    type DataType = u16;
4176}
4177
4178#[doc = "Receive Data Register for Manchester mode (MMR.MANEN = 1)"]
4179pub type RdrhlMan = crate::RegValueT<RdrhlMan_SPEC>;
4180
4181impl RdrhlMan {
4182    #[doc = "Serial receive data"]
4183    #[inline(always)]
4184    pub fn rdat(
4185        self,
4186    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, RdrhlMan_SPEC, crate::common::R>
4187    {
4188        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,RdrhlMan_SPEC,crate::common::R>::from_register(self,0)
4189    }
4190
4191    #[doc = "Multi-processor bit"]
4192    #[inline(always)]
4193    pub fn mpb(
4194        self,
4195    ) -> crate::common::RegisterField<
4196        9,
4197        0x1,
4198        1,
4199        0,
4200        rdrhl_man::Mpb,
4201        rdrhl_man::Mpb,
4202        RdrhlMan_SPEC,
4203        crate::common::R,
4204    > {
4205        crate::common::RegisterField::<
4206            9,
4207            0x1,
4208            1,
4209            0,
4210            rdrhl_man::Mpb,
4211            rdrhl_man::Mpb,
4212            RdrhlMan_SPEC,
4213            crate::common::R,
4214        >::from_register(self, 0)
4215    }
4216
4217    #[doc = "Receive SYNC data bit"]
4218    #[inline(always)]
4219    pub fn rsync(
4220        self,
4221    ) -> crate::common::RegisterField<
4222        12,
4223        0x1,
4224        1,
4225        0,
4226        rdrhl_man::Rsync,
4227        rdrhl_man::Rsync,
4228        RdrhlMan_SPEC,
4229        crate::common::R,
4230    > {
4231        crate::common::RegisterField::<
4232            12,
4233            0x1,
4234            1,
4235            0,
4236            rdrhl_man::Rsync,
4237            rdrhl_man::Rsync,
4238            RdrhlMan_SPEC,
4239            crate::common::R,
4240        >::from_register(self, 0)
4241    }
4242}
4243impl ::core::default::Default for RdrhlMan {
4244    #[inline(always)]
4245    fn default() -> RdrhlMan {
4246        <crate::RegValueT<RdrhlMan_SPEC> as RegisterValue<_>>::new(0)
4247    }
4248}
4249pub mod rdrhl_man {
4250
4251    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4252    pub struct Mpb_SPEC;
4253    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
4254    impl Mpb {
4255        #[doc = "Data transmission cycles"]
4256        pub const _0: Self = Self::new(0);
4257
4258        #[doc = "ID transmission cycles"]
4259        pub const _1: Self = Self::new(1);
4260    }
4261    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4262    pub struct Rsync_SPEC;
4263    pub type Rsync = crate::EnumBitfieldStruct<u8, Rsync_SPEC>;
4264    impl Rsync {
4265        #[doc = "The received the Start Bit is DATA SYNC"]
4266        pub const _0: Self = Self::new(0);
4267
4268        #[doc = "The received the Start Bit is COMMAND SYNC"]
4269        pub const _1: Self = Self::new(1);
4270    }
4271}
4272#[doc(hidden)]
4273#[derive(Copy, Clone, Eq, PartialEq)]
4274pub struct Frdrh_SPEC;
4275impl crate::sealed::RegSpec for Frdrh_SPEC {
4276    type DataType = u8;
4277}
4278
4279#[doc = "Receive FIFO Data Register"]
4280pub type Frdrh = crate::RegValueT<Frdrh_SPEC>;
4281
4282impl Frdrh {
4283    #[doc = "Serial receive data"]
4284    #[inline(always)]
4285    pub fn rdat(self) -> crate::common::RegisterFieldBool<0, 1, 0, Frdrh_SPEC, crate::common::R> {
4286        crate::common::RegisterFieldBool::<0, 1, 0, Frdrh_SPEC, crate::common::R>::from_register(
4287            self, 0,
4288        )
4289    }
4290
4291    #[doc = "Multi-Processor Bit Flag"]
4292    #[inline(always)]
4293    pub fn mpb(
4294        self,
4295    ) -> crate::common::RegisterField<
4296        1,
4297        0x1,
4298        1,
4299        0,
4300        frdrh::Mpb,
4301        frdrh::Mpb,
4302        Frdrh_SPEC,
4303        crate::common::R,
4304    > {
4305        crate::common::RegisterField::<
4306            1,
4307            0x1,
4308            1,
4309            0,
4310            frdrh::Mpb,
4311            frdrh::Mpb,
4312            Frdrh_SPEC,
4313            crate::common::R,
4314        >::from_register(self, 0)
4315    }
4316
4317    #[doc = "Receive Data Ready Flag"]
4318    #[inline(always)]
4319    pub fn dr(
4320        self,
4321    ) -> crate::common::RegisterField<
4322        2,
4323        0x1,
4324        1,
4325        0,
4326        frdrh::Dr,
4327        frdrh::Dr,
4328        Frdrh_SPEC,
4329        crate::common::R,
4330    > {
4331        crate::common::RegisterField::<
4332            2,
4333            0x1,
4334            1,
4335            0,
4336            frdrh::Dr,
4337            frdrh::Dr,
4338            Frdrh_SPEC,
4339            crate::common::R,
4340        >::from_register(self, 0)
4341    }
4342
4343    #[doc = "Parity Error Flag"]
4344    #[inline(always)]
4345    pub fn per(
4346        self,
4347    ) -> crate::common::RegisterField<
4348        3,
4349        0x1,
4350        1,
4351        0,
4352        frdrh::Per,
4353        frdrh::Per,
4354        Frdrh_SPEC,
4355        crate::common::R,
4356    > {
4357        crate::common::RegisterField::<
4358            3,
4359            0x1,
4360            1,
4361            0,
4362            frdrh::Per,
4363            frdrh::Per,
4364            Frdrh_SPEC,
4365            crate::common::R,
4366        >::from_register(self, 0)
4367    }
4368
4369    #[doc = "Framing Error Flag"]
4370    #[inline(always)]
4371    pub fn fer(
4372        self,
4373    ) -> crate::common::RegisterField<
4374        4,
4375        0x1,
4376        1,
4377        0,
4378        frdrh::Fer,
4379        frdrh::Fer,
4380        Frdrh_SPEC,
4381        crate::common::R,
4382    > {
4383        crate::common::RegisterField::<
4384            4,
4385            0x1,
4386            1,
4387            0,
4388            frdrh::Fer,
4389            frdrh::Fer,
4390            Frdrh_SPEC,
4391            crate::common::R,
4392        >::from_register(self, 0)
4393    }
4394
4395    #[doc = "Overrun Error Flag"]
4396    #[inline(always)]
4397    pub fn orer(
4398        self,
4399    ) -> crate::common::RegisterField<
4400        5,
4401        0x1,
4402        1,
4403        0,
4404        frdrh::Orer,
4405        frdrh::Orer,
4406        Frdrh_SPEC,
4407        crate::common::R,
4408    > {
4409        crate::common::RegisterField::<
4410            5,
4411            0x1,
4412            1,
4413            0,
4414            frdrh::Orer,
4415            frdrh::Orer,
4416            Frdrh_SPEC,
4417            crate::common::R,
4418        >::from_register(self, 0)
4419    }
4420
4421    #[doc = "Receive FIFO Data Full Flag"]
4422    #[inline(always)]
4423    pub fn rdf(
4424        self,
4425    ) -> crate::common::RegisterField<
4426        6,
4427        0x1,
4428        1,
4429        0,
4430        frdrh::Rdf,
4431        frdrh::Rdf,
4432        Frdrh_SPEC,
4433        crate::common::R,
4434    > {
4435        crate::common::RegisterField::<
4436            6,
4437            0x1,
4438            1,
4439            0,
4440            frdrh::Rdf,
4441            frdrh::Rdf,
4442            Frdrh_SPEC,
4443            crate::common::R,
4444        >::from_register(self, 0)
4445    }
4446}
4447impl ::core::default::Default for Frdrh {
4448    #[inline(always)]
4449    fn default() -> Frdrh {
4450        <crate::RegValueT<Frdrh_SPEC> as RegisterValue<_>>::new(0)
4451    }
4452}
4453pub mod frdrh {
4454
4455    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4456    pub struct Mpb_SPEC;
4457    pub type Mpb = crate::EnumBitfieldStruct<u8, Mpb_SPEC>;
4458    impl Mpb {
4459        #[doc = "Data transmission cycle"]
4460        pub const _0: Self = Self::new(0);
4461
4462        #[doc = "ID transmission cycle"]
4463        pub const _1: Self = Self::new(1);
4464    }
4465    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4466    pub struct Dr_SPEC;
4467    pub type Dr = crate::EnumBitfieldStruct<u8, Dr_SPEC>;
4468    impl Dr {
4469        #[doc = "Receiving is in progress, or no received data remains in the FRDRH and FRDRL registers after successfully completed reception"]
4470        pub const _0: Self = Self::new(0);
4471
4472        #[doc = "Next receive data is not received for a period after successfully completed reception"]
4473        pub const _1: Self = Self::new(1);
4474    }
4475    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4476    pub struct Per_SPEC;
4477    pub type Per = crate::EnumBitfieldStruct<u8, Per_SPEC>;
4478    impl Per {
4479        #[doc = "No parity error occurred in the first data of FRDRH and FRDRL"]
4480        pub const _0: Self = Self::new(0);
4481
4482        #[doc = "Parity error occurred in the first data of FRDRH and FRDRL"]
4483        pub const _1: Self = Self::new(1);
4484    }
4485    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4486    pub struct Fer_SPEC;
4487    pub type Fer = crate::EnumBitfieldStruct<u8, Fer_SPEC>;
4488    impl Fer {
4489        #[doc = "No framing error occurred in the first data of FRDRH and FRDRL"]
4490        pub const _0: Self = Self::new(0);
4491
4492        #[doc = "Framing error occurred in the first data of FRDRH and FRDRL"]
4493        pub const _1: Self = Self::new(1);
4494    }
4495    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4496    pub struct Orer_SPEC;
4497    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
4498    impl Orer {
4499        #[doc = "No overrun error occurred"]
4500        pub const _0: Self = Self::new(0);
4501
4502        #[doc = "Overrun error occurred"]
4503        pub const _1: Self = Self::new(1);
4504    }
4505    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4506    pub struct Rdf_SPEC;
4507    pub type Rdf = crate::EnumBitfieldStruct<u8, Rdf_SPEC>;
4508    impl Rdf {
4509        #[doc = "The amount of receive data written in FRDRH and FRDRL is less than the specified receive triggering number"]
4510        pub const _0: Self = Self::new(0);
4511
4512        #[doc = "The amount of receive data written in FRDRH and FRDRL is equal to or greater than the specified receive triggering number"]
4513        pub const _1: Self = Self::new(1);
4514    }
4515}
4516#[doc(hidden)]
4517#[derive(Copy, Clone, Eq, PartialEq)]
4518pub struct Frdrl_SPEC;
4519impl crate::sealed::RegSpec for Frdrl_SPEC {
4520    type DataType = u8;
4521}
4522
4523#[doc = "Receive FIFO Data Register"]
4524pub type Frdrl = crate::RegValueT<Frdrl_SPEC>;
4525
4526impl Frdrl {
4527    #[doc = "Serial receive data"]
4528    #[inline(always)]
4529    pub fn rdat(
4530        self,
4531    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Frdrl_SPEC, crate::common::R> {
4532        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Frdrl_SPEC,crate::common::R>::from_register(self,0)
4533    }
4534}
4535impl ::core::default::Default for Frdrl {
4536    #[inline(always)]
4537    fn default() -> Frdrl {
4538        <crate::RegValueT<Frdrl_SPEC> as RegisterValue<_>>::new(0)
4539    }
4540}
4541
4542#[doc(hidden)]
4543#[derive(Copy, Clone, Eq, PartialEq)]
4544pub struct Mddr_SPEC;
4545impl crate::sealed::RegSpec for Mddr_SPEC {
4546    type DataType = u8;
4547}
4548
4549#[doc = "Modulation Duty Register"]
4550pub type Mddr = crate::RegValueT<Mddr_SPEC>;
4551
4552impl NoBitfieldReg<Mddr_SPEC> for Mddr {}
4553impl ::core::default::Default for Mddr {
4554    #[inline(always)]
4555    fn default() -> Mddr {
4556        <crate::RegValueT<Mddr_SPEC> as RegisterValue<_>>::new(255)
4557    }
4558}
4559
4560#[doc(hidden)]
4561#[derive(Copy, Clone, Eq, PartialEq)]
4562pub struct Dccr_SPEC;
4563impl crate::sealed::RegSpec for Dccr_SPEC {
4564    type DataType = u8;
4565}
4566
4567#[doc = "Data Compare Match Control Register"]
4568pub type Dccr = crate::RegValueT<Dccr_SPEC>;
4569
4570impl Dccr {
4571    #[doc = "Data Compare Match Flag"]
4572    #[inline(always)]
4573    pub fn dcmf(
4574        self,
4575    ) -> crate::common::RegisterField<
4576        0,
4577        0x1,
4578        1,
4579        0,
4580        dccr::Dcmf,
4581        dccr::Dcmf,
4582        Dccr_SPEC,
4583        crate::common::RW,
4584    > {
4585        crate::common::RegisterField::<
4586            0,
4587            0x1,
4588            1,
4589            0,
4590            dccr::Dcmf,
4591            dccr::Dcmf,
4592            Dccr_SPEC,
4593            crate::common::RW,
4594        >::from_register(self, 0)
4595    }
4596
4597    #[doc = "Data Compare Match Parity Error Flag"]
4598    #[inline(always)]
4599    pub fn dper(
4600        self,
4601    ) -> crate::common::RegisterField<
4602        3,
4603        0x1,
4604        1,
4605        0,
4606        dccr::Dper,
4607        dccr::Dper,
4608        Dccr_SPEC,
4609        crate::common::RW,
4610    > {
4611        crate::common::RegisterField::<
4612            3,
4613            0x1,
4614            1,
4615            0,
4616            dccr::Dper,
4617            dccr::Dper,
4618            Dccr_SPEC,
4619            crate::common::RW,
4620        >::from_register(self, 0)
4621    }
4622
4623    #[doc = "Data Compare Match Framing Error Flag"]
4624    #[inline(always)]
4625    pub fn dfer(
4626        self,
4627    ) -> crate::common::RegisterField<
4628        4,
4629        0x1,
4630        1,
4631        0,
4632        dccr::Dfer,
4633        dccr::Dfer,
4634        Dccr_SPEC,
4635        crate::common::RW,
4636    > {
4637        crate::common::RegisterField::<
4638            4,
4639            0x1,
4640            1,
4641            0,
4642            dccr::Dfer,
4643            dccr::Dfer,
4644            Dccr_SPEC,
4645            crate::common::RW,
4646        >::from_register(self, 0)
4647    }
4648
4649    #[doc = "ID Frame Select"]
4650    #[inline(always)]
4651    pub fn idsel(
4652        self,
4653    ) -> crate::common::RegisterField<
4654        6,
4655        0x1,
4656        1,
4657        0,
4658        dccr::Idsel,
4659        dccr::Idsel,
4660        Dccr_SPEC,
4661        crate::common::RW,
4662    > {
4663        crate::common::RegisterField::<
4664            6,
4665            0x1,
4666            1,
4667            0,
4668            dccr::Idsel,
4669            dccr::Idsel,
4670            Dccr_SPEC,
4671            crate::common::RW,
4672        >::from_register(self, 0)
4673    }
4674
4675    #[doc = "Data Compare Match Enable"]
4676    #[inline(always)]
4677    pub fn dcme(
4678        self,
4679    ) -> crate::common::RegisterField<
4680        7,
4681        0x1,
4682        1,
4683        0,
4684        dccr::Dcme,
4685        dccr::Dcme,
4686        Dccr_SPEC,
4687        crate::common::RW,
4688    > {
4689        crate::common::RegisterField::<
4690            7,
4691            0x1,
4692            1,
4693            0,
4694            dccr::Dcme,
4695            dccr::Dcme,
4696            Dccr_SPEC,
4697            crate::common::RW,
4698        >::from_register(self, 0)
4699    }
4700}
4701impl ::core::default::Default for Dccr {
4702    #[inline(always)]
4703    fn default() -> Dccr {
4704        <crate::RegValueT<Dccr_SPEC> as RegisterValue<_>>::new(64)
4705    }
4706}
4707pub mod dccr {
4708
4709    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4710    pub struct Dcmf_SPEC;
4711    pub type Dcmf = crate::EnumBitfieldStruct<u8, Dcmf_SPEC>;
4712    impl Dcmf {
4713        #[doc = "Not matched"]
4714        pub const _0: Self = Self::new(0);
4715
4716        #[doc = "Matched"]
4717        pub const _1: Self = Self::new(1);
4718    }
4719    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4720    pub struct Dper_SPEC;
4721    pub type Dper = crate::EnumBitfieldStruct<u8, Dper_SPEC>;
4722    impl Dper {
4723        #[doc = "No parity error occurred"]
4724        pub const _0: Self = Self::new(0);
4725
4726        #[doc = "Parity error occurred"]
4727        pub const _1: Self = Self::new(1);
4728    }
4729    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4730    pub struct Dfer_SPEC;
4731    pub type Dfer = crate::EnumBitfieldStruct<u8, Dfer_SPEC>;
4732    impl Dfer {
4733        #[doc = "No framing error occurred"]
4734        pub const _0: Self = Self::new(0);
4735
4736        #[doc = "Framing error occurred"]
4737        pub const _1: Self = Self::new(1);
4738    }
4739    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4740    pub struct Idsel_SPEC;
4741    pub type Idsel = crate::EnumBitfieldStruct<u8, Idsel_SPEC>;
4742    impl Idsel {
4743        #[doc = "Always compare data regardless of the MPB bit value"]
4744        pub const _0: Self = Self::new(0);
4745
4746        #[doc = "Only compare data when MPB bit = 1 (ID frame)"]
4747        pub const _1: Self = Self::new(1);
4748    }
4749    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4750    pub struct Dcme_SPEC;
4751    pub type Dcme = crate::EnumBitfieldStruct<u8, Dcme_SPEC>;
4752    impl Dcme {
4753        #[doc = "Disable address match function"]
4754        pub const _0: Self = Self::new(0);
4755
4756        #[doc = "Enable address match function"]
4757        pub const _1: Self = Self::new(1);
4758    }
4759}
4760#[doc(hidden)]
4761#[derive(Copy, Clone, Eq, PartialEq)]
4762pub struct Fcr_SPEC;
4763impl crate::sealed::RegSpec for Fcr_SPEC {
4764    type DataType = u16;
4765}
4766
4767#[doc = "FIFO Control Register"]
4768pub type Fcr = crate::RegValueT<Fcr_SPEC>;
4769
4770impl Fcr {
4771    #[doc = "FIFO Mode Select"]
4772    #[inline(always)]
4773    pub fn fm(
4774        self,
4775    ) -> crate::common::RegisterField<0, 0x1, 1, 0, fcr::Fm, fcr::Fm, Fcr_SPEC, crate::common::RW>
4776    {
4777        crate::common::RegisterField::<0,0x1,1,0,fcr::Fm,fcr::Fm,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4778    }
4779
4780    #[doc = "Receive FIFO Data Register Reset"]
4781    #[inline(always)]
4782    pub fn rfrst(
4783        self,
4784    ) -> crate::common::RegisterField<
4785        1,
4786        0x1,
4787        1,
4788        0,
4789        fcr::Rfrst,
4790        fcr::Rfrst,
4791        Fcr_SPEC,
4792        crate::common::RW,
4793    > {
4794        crate::common::RegisterField::<
4795            1,
4796            0x1,
4797            1,
4798            0,
4799            fcr::Rfrst,
4800            fcr::Rfrst,
4801            Fcr_SPEC,
4802            crate::common::RW,
4803        >::from_register(self, 0)
4804    }
4805
4806    #[doc = "Transmit FIFO Data Register Reset"]
4807    #[inline(always)]
4808    pub fn tfrst(
4809        self,
4810    ) -> crate::common::RegisterField<
4811        2,
4812        0x1,
4813        1,
4814        0,
4815        fcr::Tfrst,
4816        fcr::Tfrst,
4817        Fcr_SPEC,
4818        crate::common::RW,
4819    > {
4820        crate::common::RegisterField::<
4821            2,
4822            0x1,
4823            1,
4824            0,
4825            fcr::Tfrst,
4826            fcr::Tfrst,
4827            Fcr_SPEC,
4828            crate::common::RW,
4829        >::from_register(self, 0)
4830    }
4831
4832    #[doc = "Receive Data Ready Error Select"]
4833    #[inline(always)]
4834    pub fn dres(
4835        self,
4836    ) -> crate::common::RegisterField<3, 0x1, 1, 0, fcr::Dres, fcr::Dres, Fcr_SPEC, crate::common::RW>
4837    {
4838        crate::common::RegisterField::<
4839            3,
4840            0x1,
4841            1,
4842            0,
4843            fcr::Dres,
4844            fcr::Dres,
4845            Fcr_SPEC,
4846            crate::common::RW,
4847        >::from_register(self, 0)
4848    }
4849
4850    #[doc = "Transmit FIFO Data Trigger Number"]
4851    #[inline(always)]
4852    pub fn ttrg(
4853        self,
4854    ) -> crate::common::RegisterField<4, 0xf, 1, 0, u8, u8, Fcr_SPEC, crate::common::RW> {
4855        crate::common::RegisterField::<4,0xf,1,0,u8,u8,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4856    }
4857
4858    #[doc = "Receive FIFO Data Trigger Number"]
4859    #[inline(always)]
4860    pub fn rtrg(
4861        self,
4862    ) -> crate::common::RegisterField<8, 0xf, 1, 0, u8, u8, Fcr_SPEC, crate::common::RW> {
4863        crate::common::RegisterField::<8,0xf,1,0,u8,u8,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4864    }
4865
4866    #[doc = "RTS Output Active Trigger Number Select"]
4867    #[inline(always)]
4868    pub fn rstrg(
4869        self,
4870    ) -> crate::common::RegisterField<12, 0xf, 1, 0, u8, u8, Fcr_SPEC, crate::common::RW> {
4871        crate::common::RegisterField::<12,0xf,1,0,u8,u8,Fcr_SPEC,crate::common::RW>::from_register(self,0)
4872    }
4873}
4874impl ::core::default::Default for Fcr {
4875    #[inline(always)]
4876    fn default() -> Fcr {
4877        <crate::RegValueT<Fcr_SPEC> as RegisterValue<_>>::new(63488)
4878    }
4879}
4880pub mod fcr {
4881
4882    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4883    pub struct Fm_SPEC;
4884    pub type Fm = crate::EnumBitfieldStruct<u8, Fm_SPEC>;
4885    impl Fm {
4886        #[doc = "Non-FIFO mode. Selects TDR/RDR or TDRHL/RDRHL for communication."]
4887        pub const _0: Self = Self::new(0);
4888
4889        #[doc = "FIFO mode. Selects FTDRHL/FRDRHL for communication."]
4890        pub const _1: Self = Self::new(1);
4891    }
4892    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4893    pub struct Rfrst_SPEC;
4894    pub type Rfrst = crate::EnumBitfieldStruct<u8, Rfrst_SPEC>;
4895    impl Rfrst {
4896        #[doc = "Do not reset FRDRHL"]
4897        pub const _0: Self = Self::new(0);
4898
4899        #[doc = "Reset FRDRHL"]
4900        pub const _1: Self = Self::new(1);
4901    }
4902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4903    pub struct Tfrst_SPEC;
4904    pub type Tfrst = crate::EnumBitfieldStruct<u8, Tfrst_SPEC>;
4905    impl Tfrst {
4906        #[doc = "Do not reset FTDRHL"]
4907        pub const _0: Self = Self::new(0);
4908
4909        #[doc = "Reset FTDRHL"]
4910        pub const _1: Self = Self::new(1);
4911    }
4912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4913    pub struct Dres_SPEC;
4914    pub type Dres = crate::EnumBitfieldStruct<u8, Dres_SPEC>;
4915    impl Dres {
4916        #[doc = "Receive data full interrupt (SCIn_RXI)"]
4917        pub const _0: Self = Self::new(0);
4918
4919        #[doc = "Receive error interrupt (SCIn_ERI)"]
4920        pub const _1: Self = Self::new(1);
4921    }
4922}
4923#[doc(hidden)]
4924#[derive(Copy, Clone, Eq, PartialEq)]
4925pub struct Fdr_SPEC;
4926impl crate::sealed::RegSpec for Fdr_SPEC {
4927    type DataType = u16;
4928}
4929
4930#[doc = "FIFO Data Count Register"]
4931pub type Fdr = crate::RegValueT<Fdr_SPEC>;
4932
4933impl Fdr {
4934    #[doc = "Receive FIFO Data Count"]
4935    #[inline(always)]
4936    pub fn r(
4937        self,
4938    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, Fdr_SPEC, crate::common::R> {
4939        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,Fdr_SPEC,crate::common::R>::from_register(self,0)
4940    }
4941
4942    #[doc = "Transmit FIFO Data Count"]
4943    #[inline(always)]
4944    pub fn t(
4945        self,
4946    ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, Fdr_SPEC, crate::common::R> {
4947        crate::common::RegisterField::<8,0x1f,1,0,u8,u8,Fdr_SPEC,crate::common::R>::from_register(self,0)
4948    }
4949}
4950impl ::core::default::Default for Fdr {
4951    #[inline(always)]
4952    fn default() -> Fdr {
4953        <crate::RegValueT<Fdr_SPEC> as RegisterValue<_>>::new(0)
4954    }
4955}
4956
4957#[doc(hidden)]
4958#[derive(Copy, Clone, Eq, PartialEq)]
4959pub struct Lsr_SPEC;
4960impl crate::sealed::RegSpec for Lsr_SPEC {
4961    type DataType = u16;
4962}
4963
4964#[doc = "Line Status Register"]
4965pub type Lsr = crate::RegValueT<Lsr_SPEC>;
4966
4967impl Lsr {
4968    #[doc = "Overrun Error Flag"]
4969    #[inline(always)]
4970    pub fn orer(
4971        self,
4972    ) -> crate::common::RegisterField<0, 0x1, 1, 0, lsr::Orer, lsr::Orer, Lsr_SPEC, crate::common::R>
4973    {
4974        crate::common::RegisterField::<0,0x1,1,0,lsr::Orer,lsr::Orer,Lsr_SPEC,crate::common::R>::from_register(self,0)
4975    }
4976
4977    #[doc = "Framing Error Count"]
4978    #[inline(always)]
4979    pub fn fnum(
4980        self,
4981    ) -> crate::common::RegisterField<2, 0x1f, 1, 0, u8, u8, Lsr_SPEC, crate::common::R> {
4982        crate::common::RegisterField::<2,0x1f,1,0,u8,u8,Lsr_SPEC,crate::common::R>::from_register(self,0)
4983    }
4984
4985    #[doc = "Parity Error Count"]
4986    #[inline(always)]
4987    pub fn pnum(
4988        self,
4989    ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, Lsr_SPEC, crate::common::R> {
4990        crate::common::RegisterField::<8,0x1f,1,0,u8,u8,Lsr_SPEC,crate::common::R>::from_register(self,0)
4991    }
4992}
4993impl ::core::default::Default for Lsr {
4994    #[inline(always)]
4995    fn default() -> Lsr {
4996        <crate::RegValueT<Lsr_SPEC> as RegisterValue<_>>::new(0)
4997    }
4998}
4999pub mod lsr {
5000
5001    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5002    pub struct Orer_SPEC;
5003    pub type Orer = crate::EnumBitfieldStruct<u8, Orer_SPEC>;
5004    impl Orer {
5005        #[doc = "No overrun error occurred"]
5006        pub const _0: Self = Self::new(0);
5007
5008        #[doc = "Overrun error occurred"]
5009        pub const _1: Self = Self::new(1);
5010    }
5011}
5012#[doc(hidden)]
5013#[derive(Copy, Clone, Eq, PartialEq)]
5014pub struct Cdr_SPEC;
5015impl crate::sealed::RegSpec for Cdr_SPEC {
5016    type DataType = u16;
5017}
5018
5019#[doc = "Compare Match Data Register"]
5020pub type Cdr = crate::RegValueT<Cdr_SPEC>;
5021
5022impl Cdr {
5023    #[doc = "Compare Match Data"]
5024    #[inline(always)]
5025    pub fn cmpd(
5026        self,
5027    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Cdr_SPEC, crate::common::RW> {
5028        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Cdr_SPEC,crate::common::RW>::from_register(self,0)
5029    }
5030}
5031impl ::core::default::Default for Cdr {
5032    #[inline(always)]
5033    fn default() -> Cdr {
5034        <crate::RegValueT<Cdr_SPEC> as RegisterValue<_>>::new(0)
5035    }
5036}
5037
5038#[doc(hidden)]
5039#[derive(Copy, Clone, Eq, PartialEq)]
5040pub struct Sptr_SPEC;
5041impl crate::sealed::RegSpec for Sptr_SPEC {
5042    type DataType = u8;
5043}
5044
5045#[doc = "Serial Port Register"]
5046pub type Sptr = crate::RegValueT<Sptr_SPEC>;
5047
5048impl Sptr {
5049    #[doc = "Serial Input Data Monitor"]
5050    #[inline(always)]
5051    pub fn rxdmon(self) -> crate::common::RegisterFieldBool<0, 1, 0, Sptr_SPEC, crate::common::R> {
5052        crate::common::RegisterFieldBool::<0, 1, 0, Sptr_SPEC, crate::common::R>::from_register(
5053            self, 0,
5054        )
5055    }
5056
5057    #[doc = "Serial Port Break Data Select"]
5058    #[inline(always)]
5059    pub fn spb2dt(self) -> crate::common::RegisterFieldBool<1, 1, 0, Sptr_SPEC, crate::common::RW> {
5060        crate::common::RegisterFieldBool::<1, 1, 0, Sptr_SPEC, crate::common::RW>::from_register(
5061            self, 0,
5062        )
5063    }
5064
5065    #[doc = "Serial Port Break I/O"]
5066    #[inline(always)]
5067    pub fn spb2io(
5068        self,
5069    ) -> crate::common::RegisterField<
5070        2,
5071        0x1,
5072        1,
5073        0,
5074        sptr::Spb2Io,
5075        sptr::Spb2Io,
5076        Sptr_SPEC,
5077        crate::common::RW,
5078    > {
5079        crate::common::RegisterField::<
5080            2,
5081            0x1,
5082            1,
5083            0,
5084            sptr::Spb2Io,
5085            sptr::Spb2Io,
5086            Sptr_SPEC,
5087            crate::common::RW,
5088        >::from_register(self, 0)
5089    }
5090
5091    #[doc = "RXD invert bit"]
5092    #[inline(always)]
5093    pub fn rinv(
5094        self,
5095    ) -> crate::common::RegisterField<
5096        4,
5097        0x1,
5098        1,
5099        0,
5100        sptr::Rinv,
5101        sptr::Rinv,
5102        Sptr_SPEC,
5103        crate::common::RW,
5104    > {
5105        crate::common::RegisterField::<
5106            4,
5107            0x1,
5108            1,
5109            0,
5110            sptr::Rinv,
5111            sptr::Rinv,
5112            Sptr_SPEC,
5113            crate::common::RW,
5114        >::from_register(self, 0)
5115    }
5116
5117    #[doc = "TXD invert bit"]
5118    #[inline(always)]
5119    pub fn tinv(
5120        self,
5121    ) -> crate::common::RegisterField<
5122        5,
5123        0x1,
5124        1,
5125        0,
5126        sptr::Tinv,
5127        sptr::Tinv,
5128        Sptr_SPEC,
5129        crate::common::RW,
5130    > {
5131        crate::common::RegisterField::<
5132            5,
5133            0x1,
5134            1,
5135            0,
5136            sptr::Tinv,
5137            sptr::Tinv,
5138            Sptr_SPEC,
5139            crate::common::RW,
5140        >::from_register(self, 0)
5141    }
5142
5143    #[doc = "Adjust receive sampling timing enable"]
5144    #[inline(always)]
5145    pub fn asen(
5146        self,
5147    ) -> crate::common::RegisterField<
5148        6,
5149        0x1,
5150        1,
5151        0,
5152        sptr::Asen,
5153        sptr::Asen,
5154        Sptr_SPEC,
5155        crate::common::RW,
5156    > {
5157        crate::common::RegisterField::<
5158            6,
5159            0x1,
5160            1,
5161            0,
5162            sptr::Asen,
5163            sptr::Asen,
5164            Sptr_SPEC,
5165            crate::common::RW,
5166        >::from_register(self, 0)
5167    }
5168
5169    #[doc = "Adjust transmit timing enable"]
5170    #[inline(always)]
5171    pub fn aten(
5172        self,
5173    ) -> crate::common::RegisterField<
5174        7,
5175        0x1,
5176        1,
5177        0,
5178        sptr::Aten,
5179        sptr::Aten,
5180        Sptr_SPEC,
5181        crate::common::RW,
5182    > {
5183        crate::common::RegisterField::<
5184            7,
5185            0x1,
5186            1,
5187            0,
5188            sptr::Aten,
5189            sptr::Aten,
5190            Sptr_SPEC,
5191            crate::common::RW,
5192        >::from_register(self, 0)
5193    }
5194}
5195impl ::core::default::Default for Sptr {
5196    #[inline(always)]
5197    fn default() -> Sptr {
5198        <crate::RegValueT<Sptr_SPEC> as RegisterValue<_>>::new(3)
5199    }
5200}
5201pub mod sptr {
5202
5203    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5204    pub struct Spb2Io_SPEC;
5205    pub type Spb2Io = crate::EnumBitfieldStruct<u8, Spb2Io_SPEC>;
5206    impl Spb2Io {
5207        #[doc = "Do not output value of SPB2DT bit on TXDn pin"]
5208        pub const _0: Self = Self::new(0);
5209
5210        #[doc = "Output value of SPB2DT bit on TXDn pin"]
5211        pub const _1: Self = Self::new(1);
5212    }
5213    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5214    pub struct Rinv_SPEC;
5215    pub type Rinv = crate::EnumBitfieldStruct<u8, Rinv_SPEC>;
5216    impl Rinv {
5217        #[doc = "Received data from RXDn is not inverted and input."]
5218        pub const _0: Self = Self::new(0);
5219
5220        #[doc = "Received data from RXDn is inverted and input."]
5221        pub const _1: Self = Self::new(1);
5222    }
5223    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5224    pub struct Tinv_SPEC;
5225    pub type Tinv = crate::EnumBitfieldStruct<u8, Tinv_SPEC>;
5226    impl Tinv {
5227        #[doc = "Transmit data is not inverted and output to TXDn."]
5228        pub const _0: Self = Self::new(0);
5229
5230        #[doc = "Transmit data is inverted and output to TXDn."]
5231        pub const _1: Self = Self::new(1);
5232    }
5233    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5234    pub struct Asen_SPEC;
5235    pub type Asen = crate::EnumBitfieldStruct<u8, Asen_SPEC>;
5236    impl Asen {
5237        #[doc = "Adjust sampling timing disable."]
5238        pub const _0: Self = Self::new(0);
5239
5240        #[doc = "Adjust sampling timing enable."]
5241        pub const _1: Self = Self::new(1);
5242    }
5243    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5244    pub struct Aten_SPEC;
5245    pub type Aten = crate::EnumBitfieldStruct<u8, Aten_SPEC>;
5246    impl Aten {
5247        #[doc = "Adjust transmit timing disable."]
5248        pub const _0: Self = Self::new(0);
5249
5250        #[doc = "Adjust transmit timing enable."]
5251        pub const _1: Self = Self::new(1);
5252    }
5253}
5254#[doc(hidden)]
5255#[derive(Copy, Clone, Eq, PartialEq)]
5256pub struct Actr_SPEC;
5257impl crate::sealed::RegSpec for Actr_SPEC {
5258    type DataType = u8;
5259}
5260
5261#[doc = "Adjustment Communication Timing Register"]
5262pub type Actr = crate::RegValueT<Actr_SPEC>;
5263
5264impl Actr {
5265    #[doc = "Adjustment value for receive Sampling Timing"]
5266    #[inline(always)]
5267    pub fn ast(
5268        self,
5269    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, Actr_SPEC, crate::common::RW> {
5270        crate::common::RegisterField::<0,0x7,1,0,u8,u8,Actr_SPEC,crate::common::RW>::from_register(self,0)
5271    }
5272
5273    #[doc = "Adjustment Direction for receive sampling timing"]
5274    #[inline(always)]
5275    pub fn ajd(
5276        self,
5277    ) -> crate::common::RegisterField<
5278        3,
5279        0x1,
5280        1,
5281        0,
5282        actr::Ajd,
5283        actr::Ajd,
5284        Actr_SPEC,
5285        crate::common::RW,
5286    > {
5287        crate::common::RegisterField::<
5288            3,
5289            0x1,
5290            1,
5291            0,
5292            actr::Ajd,
5293            actr::Ajd,
5294            Actr_SPEC,
5295            crate::common::RW,
5296        >::from_register(self, 0)
5297    }
5298
5299    #[doc = "Adjustment value for Transmit timing"]
5300    #[inline(always)]
5301    pub fn att(
5302        self,
5303    ) -> crate::common::RegisterField<4, 0x7, 1, 0, u8, u8, Actr_SPEC, crate::common::RW> {
5304        crate::common::RegisterField::<4,0x7,1,0,u8,u8,Actr_SPEC,crate::common::RW>::from_register(self,0)
5305    }
5306
5307    #[doc = "Adjustment edge for transmit timing"]
5308    #[inline(always)]
5309    pub fn aet(
5310        self,
5311    ) -> crate::common::RegisterField<
5312        7,
5313        0x1,
5314        1,
5315        0,
5316        actr::Aet,
5317        actr::Aet,
5318        Actr_SPEC,
5319        crate::common::RW,
5320    > {
5321        crate::common::RegisterField::<
5322            7,
5323            0x1,
5324            1,
5325            0,
5326            actr::Aet,
5327            actr::Aet,
5328            Actr_SPEC,
5329            crate::common::RW,
5330        >::from_register(self, 0)
5331    }
5332}
5333impl ::core::default::Default for Actr {
5334    #[inline(always)]
5335    fn default() -> Actr {
5336        <crate::RegValueT<Actr_SPEC> as RegisterValue<_>>::new(0)
5337    }
5338}
5339pub mod actr {
5340
5341    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5342    pub struct Ajd_SPEC;
5343    pub type Ajd = crate::EnumBitfieldStruct<u8, Ajd_SPEC>;
5344    impl Ajd {
5345        #[doc = "The sampling timing is adjusted backward to the middle of bit."]
5346        pub const _0: Self = Self::new(0);
5347
5348        #[doc = "The sampling timing is adjusted forward to the middle of bit."]
5349        pub const _1: Self = Self::new(1);
5350    }
5351    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5352    pub struct Aet_SPEC;
5353    pub type Aet = crate::EnumBitfieldStruct<u8, Aet_SPEC>;
5354    impl Aet {
5355        #[doc = "Adjust the rising edge timing."]
5356        pub const _0: Self = Self::new(0);
5357
5358        #[doc = "Adjust the falling edge timing."]
5359        pub const _1: Self = Self::new(1);
5360    }
5361}
5362#[doc(hidden)]
5363#[derive(Copy, Clone, Eq, PartialEq)]
5364pub struct Mmr_SPEC;
5365impl crate::sealed::RegSpec for Mmr_SPEC {
5366    type DataType = u8;
5367}
5368
5369#[doc = "Manchester Mode Register"]
5370pub type Mmr = crate::RegValueT<Mmr_SPEC>;
5371
5372impl Mmr {
5373    #[doc = "Polarity of Received Manchester Code"]
5374    #[inline(always)]
5375    pub fn rmpol(
5376        self,
5377    ) -> crate::common::RegisterField<
5378        0,
5379        0x1,
5380        1,
5381        0,
5382        mmr::Rmpol,
5383        mmr::Rmpol,
5384        Mmr_SPEC,
5385        crate::common::RW,
5386    > {
5387        crate::common::RegisterField::<
5388            0,
5389            0x1,
5390            1,
5391            0,
5392            mmr::Rmpol,
5393            mmr::Rmpol,
5394            Mmr_SPEC,
5395            crate::common::RW,
5396        >::from_register(self, 0)
5397    }
5398
5399    #[doc = "Polarity of Transmit Manchester Code"]
5400    #[inline(always)]
5401    pub fn tmpol(
5402        self,
5403    ) -> crate::common::RegisterField<
5404        1,
5405        0x1,
5406        1,
5407        0,
5408        mmr::Tmpol,
5409        mmr::Tmpol,
5410        Mmr_SPEC,
5411        crate::common::RW,
5412    > {
5413        crate::common::RegisterField::<
5414            1,
5415            0x1,
5416            1,
5417            0,
5418            mmr::Tmpol,
5419            mmr::Tmpol,
5420            Mmr_SPEC,
5421            crate::common::RW,
5422        >::from_register(self, 0)
5423    }
5424
5425    #[doc = "Manchester Edge Retiming Enable"]
5426    #[inline(always)]
5427    pub fn erten(
5428        self,
5429    ) -> crate::common::RegisterField<
5430        2,
5431        0x1,
5432        1,
5433        0,
5434        mmr::Erten,
5435        mmr::Erten,
5436        Mmr_SPEC,
5437        crate::common::RW,
5438    > {
5439        crate::common::RegisterField::<
5440            2,
5441            0x1,
5442            1,
5443            0,
5444            mmr::Erten,
5445            mmr::Erten,
5446            Mmr_SPEC,
5447            crate::common::RW,
5448        >::from_register(self, 0)
5449    }
5450
5451    #[doc = "SYNC value Setting"]
5452    #[inline(always)]
5453    pub fn synval(
5454        self,
5455    ) -> crate::common::RegisterField<
5456        4,
5457        0x1,
5458        1,
5459        0,
5460        mmr::Synval,
5461        mmr::Synval,
5462        Mmr_SPEC,
5463        crate::common::RW,
5464    > {
5465        crate::common::RegisterField::<
5466            4,
5467            0x1,
5468            1,
5469            0,
5470            mmr::Synval,
5471            mmr::Synval,
5472            Mmr_SPEC,
5473            crate::common::RW,
5474        >::from_register(self, 0)
5475    }
5476
5477    #[doc = "SYNC Select"]
5478    #[inline(always)]
5479    pub fn synsel(
5480        self,
5481    ) -> crate::common::RegisterField<
5482        5,
5483        0x1,
5484        1,
5485        0,
5486        mmr::Synsel,
5487        mmr::Synsel,
5488        Mmr_SPEC,
5489        crate::common::RW,
5490    > {
5491        crate::common::RegisterField::<
5492            5,
5493            0x1,
5494            1,
5495            0,
5496            mmr::Synsel,
5497            mmr::Synsel,
5498            Mmr_SPEC,
5499            crate::common::RW,
5500        >::from_register(self, 0)
5501    }
5502
5503    #[doc = "Start Bit Select"]
5504    #[inline(always)]
5505    pub fn sbsel(
5506        self,
5507    ) -> crate::common::RegisterField<
5508        6,
5509        0x1,
5510        1,
5511        0,
5512        mmr::Sbsel,
5513        mmr::Sbsel,
5514        Mmr_SPEC,
5515        crate::common::RW,
5516    > {
5517        crate::common::RegisterField::<
5518            6,
5519            0x1,
5520            1,
5521            0,
5522            mmr::Sbsel,
5523            mmr::Sbsel,
5524            Mmr_SPEC,
5525            crate::common::RW,
5526        >::from_register(self, 0)
5527    }
5528
5529    #[doc = "Manchester Mode Enable"]
5530    #[inline(always)]
5531    pub fn manen(
5532        self,
5533    ) -> crate::common::RegisterField<
5534        7,
5535        0x1,
5536        1,
5537        0,
5538        mmr::Manen,
5539        mmr::Manen,
5540        Mmr_SPEC,
5541        crate::common::RW,
5542    > {
5543        crate::common::RegisterField::<
5544            7,
5545            0x1,
5546            1,
5547            0,
5548            mmr::Manen,
5549            mmr::Manen,
5550            Mmr_SPEC,
5551            crate::common::RW,
5552        >::from_register(self, 0)
5553    }
5554}
5555impl ::core::default::Default for Mmr {
5556    #[inline(always)]
5557    fn default() -> Mmr {
5558        <crate::RegValueT<Mmr_SPEC> as RegisterValue<_>>::new(0)
5559    }
5560}
5561pub mod mmr {
5562
5563    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5564    pub struct Rmpol_SPEC;
5565    pub type Rmpol = crate::EnumBitfieldStruct<u8, Rmpol_SPEC>;
5566    impl Rmpol {
5567        #[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"]
5568        pub const _0: Self = Self::new(0);
5569
5570        #[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"]
5571        pub const _1: Self = Self::new(1);
5572    }
5573    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5574    pub struct Tmpol_SPEC;
5575    pub type Tmpol = crate::EnumBitfieldStruct<u8, Tmpol_SPEC>;
5576    impl Tmpol {
5577        #[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"]
5578        pub const _0: Self = Self::new(0);
5579
5580        #[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"]
5581        pub const _1: Self = Self::new(1);
5582    }
5583    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5584    pub struct Erten_SPEC;
5585    pub type Erten = crate::EnumBitfieldStruct<u8, Erten_SPEC>;
5586    impl Erten {
5587        #[doc = "Disables the receive retiming function"]
5588        pub const _0: Self = Self::new(0);
5589
5590        #[doc = "Enables the receive retiming function"]
5591        pub const _1: Self = Self::new(1);
5592    }
5593    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5594    pub struct Synval_SPEC;
5595    pub type Synval = crate::EnumBitfieldStruct<u8, Synval_SPEC>;
5596    impl Synval {
5597        #[doc = "The start bit is added as a zero-to-one transition."]
5598        pub const _0: Self = Self::new(0);
5599
5600        #[doc = "The start bit is added as a one-to-zero transition."]
5601        pub const _1: Self = Self::new(1);
5602    }
5603    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5604    pub struct Synsel_SPEC;
5605    pub type Synsel = crate::EnumBitfieldStruct<u8, Synsel_SPEC>;
5606    impl Synsel {
5607        #[doc = "The start bit pattern is set with the SYNVAL bit"]
5608        pub const _0: Self = Self::new(0);
5609
5610        #[doc = "The start bit pattern is set with the TSYNC bit."]
5611        pub const _1: Self = Self::new(1);
5612    }
5613    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5614    pub struct Sbsel_SPEC;
5615    pub type Sbsel = crate::EnumBitfieldStruct<u8, Sbsel_SPEC>;
5616    impl Sbsel {
5617        #[doc = "The start bit area consists of one bit."]
5618        pub const _0: Self = Self::new(0);
5619
5620        #[doc = "The start bit area consists of three bits (COMMAND SYNC or DATA SYNC)"]
5621        pub const _1: Self = Self::new(1);
5622    }
5623    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5624    pub struct Manen_SPEC;
5625    pub type Manen = crate::EnumBitfieldStruct<u8, Manen_SPEC>;
5626    impl Manen {
5627        #[doc = "Disables the Manchester mode"]
5628        pub const _0: Self = Self::new(0);
5629
5630        #[doc = "Enables the Manchester mode"]
5631        pub const _1: Self = Self::new(1);
5632    }
5633}
5634#[doc(hidden)]
5635#[derive(Copy, Clone, Eq, PartialEq)]
5636pub struct Tmpr_SPEC;
5637impl crate::sealed::RegSpec for Tmpr_SPEC {
5638    type DataType = u8;
5639}
5640
5641#[doc = "Transmit Manchester Preface Setting Register"]
5642pub type Tmpr = crate::RegValueT<Tmpr_SPEC>;
5643
5644impl Tmpr {
5645    #[doc = "Transmit preface length"]
5646    #[inline(always)]
5647    pub fn tplen(
5648        self,
5649    ) -> crate::common::RegisterField<
5650        0,
5651        0xf,
5652        1,
5653        0,
5654        tmpr::Tplen,
5655        tmpr::Tplen,
5656        Tmpr_SPEC,
5657        crate::common::RW,
5658    > {
5659        crate::common::RegisterField::<
5660            0,
5661            0xf,
5662            1,
5663            0,
5664            tmpr::Tplen,
5665            tmpr::Tplen,
5666            Tmpr_SPEC,
5667            crate::common::RW,
5668        >::from_register(self, 0)
5669    }
5670
5671    #[doc = "Transmit preface pattern"]
5672    #[inline(always)]
5673    pub fn tppat(
5674        self,
5675    ) -> crate::common::RegisterField<
5676        4,
5677        0x3,
5678        1,
5679        0,
5680        tmpr::Tppat,
5681        tmpr::Tppat,
5682        Tmpr_SPEC,
5683        crate::common::RW,
5684    > {
5685        crate::common::RegisterField::<
5686            4,
5687            0x3,
5688            1,
5689            0,
5690            tmpr::Tppat,
5691            tmpr::Tppat,
5692            Tmpr_SPEC,
5693            crate::common::RW,
5694        >::from_register(self, 0)
5695    }
5696}
5697impl ::core::default::Default for Tmpr {
5698    #[inline(always)]
5699    fn default() -> Tmpr {
5700        <crate::RegValueT<Tmpr_SPEC> as RegisterValue<_>>::new(0)
5701    }
5702}
5703pub mod tmpr {
5704
5705    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5706    pub struct Tplen_SPEC;
5707    pub type Tplen = crate::EnumBitfieldStruct<u8, Tplen_SPEC>;
5708    impl Tplen {
5709        #[doc = "Disables the transmit preface generation"]
5710        pub const _0_X_0: Self = Self::new(0);
5711    }
5712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5713    pub struct Tppat_SPEC;
5714    pub type Tppat = crate::EnumBitfieldStruct<u8, Tppat_SPEC>;
5715    impl Tppat {
5716        #[doc = "ALL ZERO"]
5717        pub const _00: Self = Self::new(0);
5718
5719        #[doc = "ZERO ONE"]
5720        pub const _01: Self = Self::new(1);
5721
5722        #[doc = "ONE ZERO"]
5723        pub const _10: Self = Self::new(2);
5724
5725        #[doc = "ALL ONE"]
5726        pub const _11: Self = Self::new(3);
5727    }
5728}
5729#[doc(hidden)]
5730#[derive(Copy, Clone, Eq, PartialEq)]
5731pub struct Rmpr_SPEC;
5732impl crate::sealed::RegSpec for Rmpr_SPEC {
5733    type DataType = u8;
5734}
5735
5736#[doc = "Receive Manchester Preface Setting Register"]
5737pub type Rmpr = crate::RegValueT<Rmpr_SPEC>;
5738
5739impl Rmpr {
5740    #[doc = "Receive Preface Length"]
5741    #[inline(always)]
5742    pub fn rplen(
5743        self,
5744    ) -> crate::common::RegisterField<
5745        0,
5746        0xf,
5747        1,
5748        0,
5749        rmpr::Rplen,
5750        rmpr::Rplen,
5751        Rmpr_SPEC,
5752        crate::common::RW,
5753    > {
5754        crate::common::RegisterField::<
5755            0,
5756            0xf,
5757            1,
5758            0,
5759            rmpr::Rplen,
5760            rmpr::Rplen,
5761            Rmpr_SPEC,
5762            crate::common::RW,
5763        >::from_register(self, 0)
5764    }
5765
5766    #[doc = "Receive Preface Pattern"]
5767    #[inline(always)]
5768    pub fn rppat(
5769        self,
5770    ) -> crate::common::RegisterField<
5771        4,
5772        0x3,
5773        1,
5774        0,
5775        rmpr::Rppat,
5776        rmpr::Rppat,
5777        Rmpr_SPEC,
5778        crate::common::RW,
5779    > {
5780        crate::common::RegisterField::<
5781            4,
5782            0x3,
5783            1,
5784            0,
5785            rmpr::Rppat,
5786            rmpr::Rppat,
5787            Rmpr_SPEC,
5788            crate::common::RW,
5789        >::from_register(self, 0)
5790    }
5791}
5792impl ::core::default::Default for Rmpr {
5793    #[inline(always)]
5794    fn default() -> Rmpr {
5795        <crate::RegValueT<Rmpr_SPEC> as RegisterValue<_>>::new(0)
5796    }
5797}
5798pub mod rmpr {
5799
5800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5801    pub struct Rplen_SPEC;
5802    pub type Rplen = crate::EnumBitfieldStruct<u8, Rplen_SPEC>;
5803    impl Rplen {
5804        #[doc = "Disables the receive preface generation"]
5805        pub const _0: Self = Self::new(0);
5806    }
5807    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5808    pub struct Rppat_SPEC;
5809    pub type Rppat = crate::EnumBitfieldStruct<u8, Rppat_SPEC>;
5810    impl Rppat {
5811        #[doc = "ALL ZERO"]
5812        pub const _00: Self = Self::new(0);
5813
5814        #[doc = "ZERO ONE"]
5815        pub const _01: Self = Self::new(1);
5816
5817        #[doc = "ONE ZERO"]
5818        pub const _10: Self = Self::new(2);
5819
5820        #[doc = "ALL ONE"]
5821        pub const _11: Self = Self::new(3);
5822    }
5823}
5824#[doc(hidden)]
5825#[derive(Copy, Clone, Eq, PartialEq)]
5826pub struct Mesr_SPEC;
5827impl crate::sealed::RegSpec for Mesr_SPEC {
5828    type DataType = u8;
5829}
5830
5831#[doc = "Manchester Extended Error Status Register"]
5832pub type Mesr = crate::RegValueT<Mesr_SPEC>;
5833
5834impl Mesr {
5835    #[doc = "Preface Error flag"]
5836    #[inline(always)]
5837    pub fn pfer(
5838        self,
5839    ) -> crate::common::RegisterField<
5840        0,
5841        0x1,
5842        1,
5843        0,
5844        mesr::Pfer,
5845        mesr::Pfer,
5846        Mesr_SPEC,
5847        crate::common::RW,
5848    > {
5849        crate::common::RegisterField::<
5850            0,
5851            0x1,
5852            1,
5853            0,
5854            mesr::Pfer,
5855            mesr::Pfer,
5856            Mesr_SPEC,
5857            crate::common::RW,
5858        >::from_register(self, 0)
5859    }
5860
5861    #[doc = "SYNC Error flag"]
5862    #[inline(always)]
5863    pub fn syer(
5864        self,
5865    ) -> crate::common::RegisterField<
5866        1,
5867        0x1,
5868        1,
5869        0,
5870        mesr::Syer,
5871        mesr::Syer,
5872        Mesr_SPEC,
5873        crate::common::RW,
5874    > {
5875        crate::common::RegisterField::<
5876            1,
5877            0x1,
5878            1,
5879            0,
5880            mesr::Syer,
5881            mesr::Syer,
5882            Mesr_SPEC,
5883            crate::common::RW,
5884        >::from_register(self, 0)
5885    }
5886
5887    #[doc = "Start Bit Error flag"]
5888    #[inline(always)]
5889    pub fn sber(
5890        self,
5891    ) -> crate::common::RegisterField<
5892        2,
5893        0x1,
5894        1,
5895        0,
5896        mesr::Sber,
5897        mesr::Sber,
5898        Mesr_SPEC,
5899        crate::common::RW,
5900    > {
5901        crate::common::RegisterField::<
5902            2,
5903            0x1,
5904            1,
5905            0,
5906            mesr::Sber,
5907            mesr::Sber,
5908            Mesr_SPEC,
5909            crate::common::RW,
5910        >::from_register(self, 0)
5911    }
5912}
5913impl ::core::default::Default for Mesr {
5914    #[inline(always)]
5915    fn default() -> Mesr {
5916        <crate::RegValueT<Mesr_SPEC> as RegisterValue<_>>::new(0)
5917    }
5918}
5919pub mod mesr {
5920
5921    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5922    pub struct Pfer_SPEC;
5923    pub type Pfer = crate::EnumBitfieldStruct<u8, Pfer_SPEC>;
5924    impl Pfer {
5925        #[doc = "No preface error detected"]
5926        pub const _0: Self = Self::new(0);
5927
5928        #[doc = "Preface error detected"]
5929        pub const _1: Self = Self::new(1);
5930    }
5931    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5932    pub struct Syer_SPEC;
5933    pub type Syer = crate::EnumBitfieldStruct<u8, Syer_SPEC>;
5934    impl Syer {
5935        #[doc = "No receive SYNC error detected"]
5936        pub const _0: Self = Self::new(0);
5937
5938        #[doc = "Receive SYNC error detected"]
5939        pub const _1: Self = Self::new(1);
5940    }
5941    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5942    pub struct Sber_SPEC;
5943    pub type Sber = crate::EnumBitfieldStruct<u8, Sber_SPEC>;
5944    impl Sber {
5945        #[doc = "No start bit error detected"]
5946        pub const _0: Self = Self::new(0);
5947
5948        #[doc = "Start bit error detected"]
5949        pub const _1: Self = Self::new(1);
5950    }
5951}
5952#[doc(hidden)]
5953#[derive(Copy, Clone, Eq, PartialEq)]
5954pub struct Mecr_SPEC;
5955impl crate::sealed::RegSpec for Mecr_SPEC {
5956    type DataType = u8;
5957}
5958
5959#[doc = "Manchester Extended Error Control Register"]
5960pub type Mecr = crate::RegValueT<Mecr_SPEC>;
5961
5962impl Mecr {
5963    #[doc = "Preface Error Enable"]
5964    #[inline(always)]
5965    pub fn pferen(
5966        self,
5967    ) -> crate::common::RegisterField<
5968        0,
5969        0x1,
5970        1,
5971        0,
5972        mecr::Pferen,
5973        mecr::Pferen,
5974        Mecr_SPEC,
5975        crate::common::RW,
5976    > {
5977        crate::common::RegisterField::<
5978            0,
5979            0x1,
5980            1,
5981            0,
5982            mecr::Pferen,
5983            mecr::Pferen,
5984            Mecr_SPEC,
5985            crate::common::RW,
5986        >::from_register(self, 0)
5987    }
5988
5989    #[doc = "Receive SYNC Error Enable"]
5990    #[inline(always)]
5991    pub fn syeren(
5992        self,
5993    ) -> crate::common::RegisterField<
5994        1,
5995        0x1,
5996        1,
5997        0,
5998        mecr::Syeren,
5999        mecr::Syeren,
6000        Mecr_SPEC,
6001        crate::common::RW,
6002    > {
6003        crate::common::RegisterField::<
6004            1,
6005            0x1,
6006            1,
6007            0,
6008            mecr::Syeren,
6009            mecr::Syeren,
6010            Mecr_SPEC,
6011            crate::common::RW,
6012        >::from_register(self, 0)
6013    }
6014
6015    #[doc = "Start Bit Error Enable"]
6016    #[inline(always)]
6017    pub fn sberen(
6018        self,
6019    ) -> crate::common::RegisterField<
6020        2,
6021        0x1,
6022        1,
6023        0,
6024        mecr::Sberen,
6025        mecr::Sberen,
6026        Mecr_SPEC,
6027        crate::common::RW,
6028    > {
6029        crate::common::RegisterField::<
6030            2,
6031            0x1,
6032            1,
6033            0,
6034            mecr::Sberen,
6035            mecr::Sberen,
6036            Mecr_SPEC,
6037            crate::common::RW,
6038        >::from_register(self, 0)
6039    }
6040}
6041impl ::core::default::Default for Mecr {
6042    #[inline(always)]
6043    fn default() -> Mecr {
6044        <crate::RegValueT<Mecr_SPEC> as RegisterValue<_>>::new(0)
6045    }
6046}
6047pub mod mecr {
6048
6049    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6050    pub struct Pferen_SPEC;
6051    pub type Pferen = crate::EnumBitfieldStruct<u8, Pferen_SPEC>;
6052    impl Pferen {
6053        #[doc = "Does not handle a preface error as an interrupt source"]
6054        pub const _0: Self = Self::new(0);
6055
6056        #[doc = "Handles a preface error as an interrupt source"]
6057        pub const _1: Self = Self::new(1);
6058    }
6059    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6060    pub struct Syeren_SPEC;
6061    pub type Syeren = crate::EnumBitfieldStruct<u8, Syeren_SPEC>;
6062    impl Syeren {
6063        #[doc = "Does not handle a receive SYNC error as an interrupt source"]
6064        pub const _0: Self = Self::new(0);
6065
6066        #[doc = "Handles a receive SYNC error as an interrupt source"]
6067        pub const _1: Self = Self::new(1);
6068    }
6069    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6070    pub struct Sberen_SPEC;
6071    pub type Sberen = crate::EnumBitfieldStruct<u8, Sberen_SPEC>;
6072    impl Sberen {
6073        #[doc = "Does not handle a start bit error as an interrupt source"]
6074        pub const _0: Self = Self::new(0);
6075
6076        #[doc = "Handles a start bit error as an interrupt source"]
6077        pub const _1: Self = Self::new(1);
6078    }
6079}