ra6e1_pac/
iic0.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.0 on Thu, 24 Jul 2025 04:50:30 +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"Inter-Integrated Circuit 0"]
28unsafe impl ::core::marker::Send for super::Iic0 {}
29unsafe impl ::core::marker::Sync for super::Iic0 {}
30impl super::Iic0 {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "I2C Bus Control Register 1"]
38    #[inline(always)]
39    pub const fn iccr1(&self) -> &'static crate::common::Reg<self::Iccr1_SPEC, crate::common::RW> {
40        unsafe {
41            crate::common::Reg::<self::Iccr1_SPEC, crate::common::RW>::from_ptr(
42                self._svd2pac_as_ptr().add(0usize),
43            )
44        }
45    }
46
47    #[doc = "I2C Bus Control Register 2"]
48    #[inline(always)]
49    pub const fn iccr2(&self) -> &'static crate::common::Reg<self::Iccr2_SPEC, crate::common::RW> {
50        unsafe {
51            crate::common::Reg::<self::Iccr2_SPEC, crate::common::RW>::from_ptr(
52                self._svd2pac_as_ptr().add(1usize),
53            )
54        }
55    }
56
57    #[doc = "I2C Bus Mode Register 1"]
58    #[inline(always)]
59    pub const fn icmr1(&self) -> &'static crate::common::Reg<self::Icmr1_SPEC, crate::common::RW> {
60        unsafe {
61            crate::common::Reg::<self::Icmr1_SPEC, crate::common::RW>::from_ptr(
62                self._svd2pac_as_ptr().add(2usize),
63            )
64        }
65    }
66
67    #[doc = "I2C Bus Mode Register 2"]
68    #[inline(always)]
69    pub const fn icmr2(&self) -> &'static crate::common::Reg<self::Icmr2_SPEC, crate::common::RW> {
70        unsafe {
71            crate::common::Reg::<self::Icmr2_SPEC, crate::common::RW>::from_ptr(
72                self._svd2pac_as_ptr().add(3usize),
73            )
74        }
75    }
76
77    #[doc = "I2C Bus Mode Register 3"]
78    #[inline(always)]
79    pub const fn icmr3(&self) -> &'static crate::common::Reg<self::Icmr3_SPEC, crate::common::RW> {
80        unsafe {
81            crate::common::Reg::<self::Icmr3_SPEC, crate::common::RW>::from_ptr(
82                self._svd2pac_as_ptr().add(4usize),
83            )
84        }
85    }
86
87    #[doc = "I2C Bus Function Enable Register"]
88    #[inline(always)]
89    pub const fn icfer(&self) -> &'static crate::common::Reg<self::Icfer_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::Icfer_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(5usize),
93            )
94        }
95    }
96
97    #[doc = "I2C Bus Status Enable Register"]
98    #[inline(always)]
99    pub const fn icser(&self) -> &'static crate::common::Reg<self::Icser_SPEC, crate::common::RW> {
100        unsafe {
101            crate::common::Reg::<self::Icser_SPEC, crate::common::RW>::from_ptr(
102                self._svd2pac_as_ptr().add(6usize),
103            )
104        }
105    }
106
107    #[doc = "I2C Bus Interrupt Enable Register"]
108    #[inline(always)]
109    pub const fn icier(&self) -> &'static crate::common::Reg<self::Icier_SPEC, crate::common::RW> {
110        unsafe {
111            crate::common::Reg::<self::Icier_SPEC, crate::common::RW>::from_ptr(
112                self._svd2pac_as_ptr().add(7usize),
113            )
114        }
115    }
116
117    #[doc = "I2C Bus Status Register 1"]
118    #[inline(always)]
119    pub const fn icsr1(&self) -> &'static crate::common::Reg<self::Icsr1_SPEC, crate::common::RW> {
120        unsafe {
121            crate::common::Reg::<self::Icsr1_SPEC, crate::common::RW>::from_ptr(
122                self._svd2pac_as_ptr().add(8usize),
123            )
124        }
125    }
126
127    #[doc = "I2C Bus Status Register 2"]
128    #[inline(always)]
129    pub const fn icsr2(&self) -> &'static crate::common::Reg<self::Icsr2_SPEC, crate::common::RW> {
130        unsafe {
131            crate::common::Reg::<self::Icsr2_SPEC, crate::common::RW>::from_ptr(
132                self._svd2pac_as_ptr().add(9usize),
133            )
134        }
135    }
136
137    #[doc = "Slave Address Register L %s"]
138    #[inline(always)]
139    pub const fn sarl(
140        &self,
141    ) -> &'static crate::common::ClusterRegisterArray<
142        crate::common::Reg<self::Sarl_SPEC, crate::common::RW>,
143        3,
144        0x2,
145    > {
146        unsafe {
147            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xausize))
148        }
149    }
150    #[inline(always)]
151    pub const fn sarl0(&self) -> &'static crate::common::Reg<self::Sarl_SPEC, crate::common::RW> {
152        unsafe {
153            crate::common::Reg::<self::Sarl_SPEC, crate::common::RW>::from_ptr(
154                self._svd2pac_as_ptr().add(0xausize),
155            )
156        }
157    }
158    #[inline(always)]
159    pub const fn sarl1(&self) -> &'static crate::common::Reg<self::Sarl_SPEC, crate::common::RW> {
160        unsafe {
161            crate::common::Reg::<self::Sarl_SPEC, crate::common::RW>::from_ptr(
162                self._svd2pac_as_ptr().add(0xcusize),
163            )
164        }
165    }
166    #[inline(always)]
167    pub const fn sarl2(&self) -> &'static crate::common::Reg<self::Sarl_SPEC, crate::common::RW> {
168        unsafe {
169            crate::common::Reg::<self::Sarl_SPEC, crate::common::RW>::from_ptr(
170                self._svd2pac_as_ptr().add(0xeusize),
171            )
172        }
173    }
174
175    #[doc = "Slave Address Register U %s"]
176    #[inline(always)]
177    pub const fn saru(
178        &self,
179    ) -> &'static crate::common::ClusterRegisterArray<
180        crate::common::Reg<self::Saru_SPEC, crate::common::RW>,
181        3,
182        0x2,
183    > {
184        unsafe {
185            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xbusize))
186        }
187    }
188    #[inline(always)]
189    pub const fn saru0(&self) -> &'static crate::common::Reg<self::Saru_SPEC, crate::common::RW> {
190        unsafe {
191            crate::common::Reg::<self::Saru_SPEC, crate::common::RW>::from_ptr(
192                self._svd2pac_as_ptr().add(0xbusize),
193            )
194        }
195    }
196    #[inline(always)]
197    pub const fn saru1(&self) -> &'static crate::common::Reg<self::Saru_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::Saru_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(0xdusize),
201            )
202        }
203    }
204    #[inline(always)]
205    pub const fn saru2(&self) -> &'static crate::common::Reg<self::Saru_SPEC, crate::common::RW> {
206        unsafe {
207            crate::common::Reg::<self::Saru_SPEC, crate::common::RW>::from_ptr(
208                self._svd2pac_as_ptr().add(0xfusize),
209            )
210        }
211    }
212
213    #[doc = "I2C Bus Bit Rate Low-Level Register"]
214    #[inline(always)]
215    pub const fn icbrl(&self) -> &'static crate::common::Reg<self::Icbrl_SPEC, crate::common::RW> {
216        unsafe {
217            crate::common::Reg::<self::Icbrl_SPEC, crate::common::RW>::from_ptr(
218                self._svd2pac_as_ptr().add(16usize),
219            )
220        }
221    }
222
223    #[doc = "I2C Bus Bit Rate High-Level Register"]
224    #[inline(always)]
225    pub const fn icbrh(&self) -> &'static crate::common::Reg<self::Icbrh_SPEC, crate::common::RW> {
226        unsafe {
227            crate::common::Reg::<self::Icbrh_SPEC, crate::common::RW>::from_ptr(
228                self._svd2pac_as_ptr().add(17usize),
229            )
230        }
231    }
232
233    #[doc = "I2C Bus Transmit Data Register"]
234    #[inline(always)]
235    pub const fn icdrt(&self) -> &'static crate::common::Reg<self::Icdrt_SPEC, crate::common::RW> {
236        unsafe {
237            crate::common::Reg::<self::Icdrt_SPEC, crate::common::RW>::from_ptr(
238                self._svd2pac_as_ptr().add(18usize),
239            )
240        }
241    }
242
243    #[doc = "I2C Bus Receive Data Register"]
244    #[inline(always)]
245    pub const fn icdrr(&self) -> &'static crate::common::Reg<self::Icdrr_SPEC, crate::common::R> {
246        unsafe {
247            crate::common::Reg::<self::Icdrr_SPEC, crate::common::R>::from_ptr(
248                self._svd2pac_as_ptr().add(19usize),
249            )
250        }
251    }
252}
253#[doc(hidden)]
254#[derive(Copy, Clone, Eq, PartialEq)]
255pub struct Iccr1_SPEC;
256impl crate::sealed::RegSpec for Iccr1_SPEC {
257    type DataType = u8;
258}
259
260#[doc = "I2C Bus Control Register 1"]
261pub type Iccr1 = crate::RegValueT<Iccr1_SPEC>;
262
263impl Iccr1 {
264    #[doc = "SDA Line Monitor"]
265    #[inline(always)]
266    pub fn sdai(
267        self,
268    ) -> crate::common::RegisterField<
269        0,
270        0x1,
271        1,
272        0,
273        iccr1::Sdai,
274        iccr1::Sdai,
275        Iccr1_SPEC,
276        crate::common::R,
277    > {
278        crate::common::RegisterField::<
279            0,
280            0x1,
281            1,
282            0,
283            iccr1::Sdai,
284            iccr1::Sdai,
285            Iccr1_SPEC,
286            crate::common::R,
287        >::from_register(self, 0)
288    }
289
290    #[doc = "SCL Line Monitor"]
291    #[inline(always)]
292    pub fn scli(
293        self,
294    ) -> crate::common::RegisterField<
295        1,
296        0x1,
297        1,
298        0,
299        iccr1::Scli,
300        iccr1::Scli,
301        Iccr1_SPEC,
302        crate::common::R,
303    > {
304        crate::common::RegisterField::<
305            1,
306            0x1,
307            1,
308            0,
309            iccr1::Scli,
310            iccr1::Scli,
311            Iccr1_SPEC,
312            crate::common::R,
313        >::from_register(self, 0)
314    }
315
316    #[doc = "SDA Output Control/Monitor"]
317    #[inline(always)]
318    pub fn sdao(
319        self,
320    ) -> crate::common::RegisterField<
321        2,
322        0x1,
323        1,
324        0,
325        iccr1::Sdao,
326        iccr1::Sdao,
327        Iccr1_SPEC,
328        crate::common::RW,
329    > {
330        crate::common::RegisterField::<
331            2,
332            0x1,
333            1,
334            0,
335            iccr1::Sdao,
336            iccr1::Sdao,
337            Iccr1_SPEC,
338            crate::common::RW,
339        >::from_register(self, 0)
340    }
341
342    #[doc = "SCL Output Control/Monitor"]
343    #[inline(always)]
344    pub fn sclo(
345        self,
346    ) -> crate::common::RegisterField<
347        3,
348        0x1,
349        1,
350        0,
351        iccr1::Sclo,
352        iccr1::Sclo,
353        Iccr1_SPEC,
354        crate::common::RW,
355    > {
356        crate::common::RegisterField::<
357            3,
358            0x1,
359            1,
360            0,
361            iccr1::Sclo,
362            iccr1::Sclo,
363            Iccr1_SPEC,
364            crate::common::RW,
365        >::from_register(self, 0)
366    }
367
368    #[doc = "SCLO/SDAO Write Protect"]
369    #[inline(always)]
370    pub fn sowp(
371        self,
372    ) -> crate::common::RegisterField<
373        4,
374        0x1,
375        1,
376        0,
377        iccr1::Sowp,
378        iccr1::Sowp,
379        Iccr1_SPEC,
380        crate::common::W,
381    > {
382        crate::common::RegisterField::<
383            4,
384            0x1,
385            1,
386            0,
387            iccr1::Sowp,
388            iccr1::Sowp,
389            Iccr1_SPEC,
390            crate::common::W,
391        >::from_register(self, 0)
392    }
393
394    #[doc = "Extra SCL Clock Cycle Output"]
395    #[inline(always)]
396    pub fn clo(
397        self,
398    ) -> crate::common::RegisterField<
399        5,
400        0x1,
401        1,
402        0,
403        iccr1::Clo,
404        iccr1::Clo,
405        Iccr1_SPEC,
406        crate::common::RW,
407    > {
408        crate::common::RegisterField::<
409            5,
410            0x1,
411            1,
412            0,
413            iccr1::Clo,
414            iccr1::Clo,
415            Iccr1_SPEC,
416            crate::common::RW,
417        >::from_register(self, 0)
418    }
419
420    #[doc = "I2C Bus Interface Internal Reset"]
421    #[inline(always)]
422    pub fn iicrst(
423        self,
424    ) -> crate::common::RegisterField<
425        6,
426        0x1,
427        1,
428        0,
429        iccr1::Iicrst,
430        iccr1::Iicrst,
431        Iccr1_SPEC,
432        crate::common::RW,
433    > {
434        crate::common::RegisterField::<
435            6,
436            0x1,
437            1,
438            0,
439            iccr1::Iicrst,
440            iccr1::Iicrst,
441            Iccr1_SPEC,
442            crate::common::RW,
443        >::from_register(self, 0)
444    }
445
446    #[doc = "I2C Bus Interface Enable"]
447    #[inline(always)]
448    pub fn ice(
449        self,
450    ) -> crate::common::RegisterField<
451        7,
452        0x1,
453        1,
454        0,
455        iccr1::Ice,
456        iccr1::Ice,
457        Iccr1_SPEC,
458        crate::common::RW,
459    > {
460        crate::common::RegisterField::<
461            7,
462            0x1,
463            1,
464            0,
465            iccr1::Ice,
466            iccr1::Ice,
467            Iccr1_SPEC,
468            crate::common::RW,
469        >::from_register(self, 0)
470    }
471}
472impl ::core::default::Default for Iccr1 {
473    #[inline(always)]
474    fn default() -> Iccr1 {
475        <crate::RegValueT<Iccr1_SPEC> as RegisterValue<_>>::new(31)
476    }
477}
478pub mod iccr1 {
479
480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
481    pub struct Sdai_SPEC;
482    pub type Sdai = crate::EnumBitfieldStruct<u8, Sdai_SPEC>;
483    impl Sdai {
484        #[doc = "SDAn line is low"]
485        pub const _0: Self = Self::new(0);
486
487        #[doc = "SDAn line is high"]
488        pub const _1: Self = Self::new(1);
489    }
490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
491    pub struct Scli_SPEC;
492    pub type Scli = crate::EnumBitfieldStruct<u8, Scli_SPEC>;
493    impl Scli {
494        #[doc = "SCLn line is low"]
495        pub const _0: Self = Self::new(0);
496
497        #[doc = "SCLn line is high"]
498        pub const _1: Self = Self::new(1);
499    }
500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
501    pub struct Sdao_SPEC;
502    pub type Sdao = crate::EnumBitfieldStruct<u8, Sdao_SPEC>;
503    impl Sdao {
504        #[doc = "Read: IIC drives SDAn pin low Write: IIC drives SDAn pin low"]
505        pub const _0: Self = Self::new(0);
506
507        #[doc = "Read: IIC releases SDAn pin Write: IIC releases SDAn pin"]
508        pub const _1: Self = Self::new(1);
509    }
510    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
511    pub struct Sclo_SPEC;
512    pub type Sclo = crate::EnumBitfieldStruct<u8, Sclo_SPEC>;
513    impl Sclo {
514        #[doc = "Read: IIC drives SCLn pin low Write: IIC drives SCLn pin low"]
515        pub const _0: Self = Self::new(0);
516
517        #[doc = "Read: IIC releases SCLn pin Write: IIC releases SCLn pin"]
518        pub const _1: Self = Self::new(1);
519    }
520    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
521    pub struct Sowp_SPEC;
522    pub type Sowp = crate::EnumBitfieldStruct<u8, Sowp_SPEC>;
523    impl Sowp {
524        #[doc = "Write enable SCLO and SDAO bits"]
525        pub const _0: Self = Self::new(0);
526
527        #[doc = "Write protect SCLO and SDAO bits"]
528        pub const _1: Self = Self::new(1);
529    }
530    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
531    pub struct Clo_SPEC;
532    pub type Clo = crate::EnumBitfieldStruct<u8, Clo_SPEC>;
533    impl Clo {
534        #[doc = "Do not output extra SCL clock cycle (default)"]
535        pub const _0: Self = Self::new(0);
536
537        #[doc = "Output extra SCL clock cycle"]
538        pub const _1: Self = Self::new(1);
539    }
540    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
541    pub struct Iicrst_SPEC;
542    pub type Iicrst = crate::EnumBitfieldStruct<u8, Iicrst_SPEC>;
543    impl Iicrst {
544        #[doc = "Release IIC reset or internal reset"]
545        pub const _0: Self = Self::new(0);
546
547        #[doc = "Initiate IIC reset or internal reset"]
548        pub const _1: Self = Self::new(1);
549    }
550    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
551    pub struct Ice_SPEC;
552    pub type Ice = crate::EnumBitfieldStruct<u8, Ice_SPEC>;
553    impl Ice {
554        #[doc = "Disable (SCLn and SDAn pins in inactive state)"]
555        pub const _0: Self = Self::new(0);
556
557        #[doc = "Enable (SCLn and SDAn pins in active state)"]
558        pub const _1: Self = Self::new(1);
559    }
560}
561#[doc(hidden)]
562#[derive(Copy, Clone, Eq, PartialEq)]
563pub struct Iccr2_SPEC;
564impl crate::sealed::RegSpec for Iccr2_SPEC {
565    type DataType = u8;
566}
567
568#[doc = "I2C Bus Control Register 2"]
569pub type Iccr2 = crate::RegValueT<Iccr2_SPEC>;
570
571impl Iccr2 {
572    #[doc = "Start Condition Issuance Request"]
573    #[inline(always)]
574    pub fn st(
575        self,
576    ) -> crate::common::RegisterField<
577        1,
578        0x1,
579        1,
580        0,
581        iccr2::St,
582        iccr2::St,
583        Iccr2_SPEC,
584        crate::common::RW,
585    > {
586        crate::common::RegisterField::<
587            1,
588            0x1,
589            1,
590            0,
591            iccr2::St,
592            iccr2::St,
593            Iccr2_SPEC,
594            crate::common::RW,
595        >::from_register(self, 0)
596    }
597
598    #[doc = "Restart Condition Issuance Request"]
599    #[inline(always)]
600    pub fn rs(
601        self,
602    ) -> crate::common::RegisterField<
603        2,
604        0x1,
605        1,
606        0,
607        iccr2::Rs,
608        iccr2::Rs,
609        Iccr2_SPEC,
610        crate::common::RW,
611    > {
612        crate::common::RegisterField::<
613            2,
614            0x1,
615            1,
616            0,
617            iccr2::Rs,
618            iccr2::Rs,
619            Iccr2_SPEC,
620            crate::common::RW,
621        >::from_register(self, 0)
622    }
623
624    #[doc = "Stop Condition Issuance Request"]
625    #[inline(always)]
626    pub fn sp(
627        self,
628    ) -> crate::common::RegisterField<
629        3,
630        0x1,
631        1,
632        0,
633        iccr2::Sp,
634        iccr2::Sp,
635        Iccr2_SPEC,
636        crate::common::RW,
637    > {
638        crate::common::RegisterField::<
639            3,
640            0x1,
641            1,
642            0,
643            iccr2::Sp,
644            iccr2::Sp,
645            Iccr2_SPEC,
646            crate::common::RW,
647        >::from_register(self, 0)
648    }
649
650    #[doc = "Transmit/Receive Mode"]
651    #[inline(always)]
652    pub fn trs(
653        self,
654    ) -> crate::common::RegisterField<
655        5,
656        0x1,
657        1,
658        0,
659        iccr2::Trs,
660        iccr2::Trs,
661        Iccr2_SPEC,
662        crate::common::RW,
663    > {
664        crate::common::RegisterField::<
665            5,
666            0x1,
667            1,
668            0,
669            iccr2::Trs,
670            iccr2::Trs,
671            Iccr2_SPEC,
672            crate::common::RW,
673        >::from_register(self, 0)
674    }
675
676    #[doc = "Master/Slave Mode"]
677    #[inline(always)]
678    pub fn mst(
679        self,
680    ) -> crate::common::RegisterField<
681        6,
682        0x1,
683        1,
684        0,
685        iccr2::Mst,
686        iccr2::Mst,
687        Iccr2_SPEC,
688        crate::common::RW,
689    > {
690        crate::common::RegisterField::<
691            6,
692            0x1,
693            1,
694            0,
695            iccr2::Mst,
696            iccr2::Mst,
697            Iccr2_SPEC,
698            crate::common::RW,
699        >::from_register(self, 0)
700    }
701
702    #[doc = "Bus Busy Detection Flag"]
703    #[inline(always)]
704    pub fn bbsy(
705        self,
706    ) -> crate::common::RegisterField<
707        7,
708        0x1,
709        1,
710        0,
711        iccr2::Bbsy,
712        iccr2::Bbsy,
713        Iccr2_SPEC,
714        crate::common::R,
715    > {
716        crate::common::RegisterField::<
717            7,
718            0x1,
719            1,
720            0,
721            iccr2::Bbsy,
722            iccr2::Bbsy,
723            Iccr2_SPEC,
724            crate::common::R,
725        >::from_register(self, 0)
726    }
727}
728impl ::core::default::Default for Iccr2 {
729    #[inline(always)]
730    fn default() -> Iccr2 {
731        <crate::RegValueT<Iccr2_SPEC> as RegisterValue<_>>::new(0)
732    }
733}
734pub mod iccr2 {
735
736    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
737    pub struct St_SPEC;
738    pub type St = crate::EnumBitfieldStruct<u8, St_SPEC>;
739    impl St {
740        #[doc = "Do not issue a start condition request"]
741        pub const _0: Self = Self::new(0);
742
743        #[doc = "Issue a start condition request"]
744        pub const _1: Self = Self::new(1);
745    }
746    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
747    pub struct Rs_SPEC;
748    pub type Rs = crate::EnumBitfieldStruct<u8, Rs_SPEC>;
749    impl Rs {
750        #[doc = "Do not issue a restart condition request"]
751        pub const _0: Self = Self::new(0);
752
753        #[doc = "Issue a restart condition request"]
754        pub const _1: Self = Self::new(1);
755    }
756    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
757    pub struct Sp_SPEC;
758    pub type Sp = crate::EnumBitfieldStruct<u8, Sp_SPEC>;
759    impl Sp {
760        #[doc = "Do not issue a stop condition request"]
761        pub const _0: Self = Self::new(0);
762
763        #[doc = "Issue a stop condition request"]
764        pub const _1: Self = Self::new(1);
765    }
766    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
767    pub struct Trs_SPEC;
768    pub type Trs = crate::EnumBitfieldStruct<u8, Trs_SPEC>;
769    impl Trs {
770        #[doc = "Receive mode"]
771        pub const _0: Self = Self::new(0);
772
773        #[doc = "Transmit mode"]
774        pub const _1: Self = Self::new(1);
775    }
776    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
777    pub struct Mst_SPEC;
778    pub type Mst = crate::EnumBitfieldStruct<u8, Mst_SPEC>;
779    impl Mst {
780        #[doc = "Slave mode"]
781        pub const _0: Self = Self::new(0);
782
783        #[doc = "Master mode"]
784        pub const _1: Self = Self::new(1);
785    }
786    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
787    pub struct Bbsy_SPEC;
788    pub type Bbsy = crate::EnumBitfieldStruct<u8, Bbsy_SPEC>;
789    impl Bbsy {
790        #[doc = "I2C bus released (bus free state)"]
791        pub const _0: Self = Self::new(0);
792
793        #[doc = "I2C bus occupied (bus busy state)"]
794        pub const _1: Self = Self::new(1);
795    }
796}
797#[doc(hidden)]
798#[derive(Copy, Clone, Eq, PartialEq)]
799pub struct Icmr1_SPEC;
800impl crate::sealed::RegSpec for Icmr1_SPEC {
801    type DataType = u8;
802}
803
804#[doc = "I2C Bus Mode Register 1"]
805pub type Icmr1 = crate::RegValueT<Icmr1_SPEC>;
806
807impl Icmr1 {
808    #[doc = "Bit Counter"]
809    #[inline(always)]
810    pub fn bc(
811        self,
812    ) -> crate::common::RegisterField<
813        0,
814        0x7,
815        1,
816        0,
817        icmr1::Bc,
818        icmr1::Bc,
819        Icmr1_SPEC,
820        crate::common::RW,
821    > {
822        crate::common::RegisterField::<
823            0,
824            0x7,
825            1,
826            0,
827            icmr1::Bc,
828            icmr1::Bc,
829            Icmr1_SPEC,
830            crate::common::RW,
831        >::from_register(self, 0)
832    }
833
834    #[doc = "BC Write Protect"]
835    #[inline(always)]
836    pub fn bcwp(
837        self,
838    ) -> crate::common::RegisterField<
839        3,
840        0x1,
841        1,
842        0,
843        icmr1::Bcwp,
844        icmr1::Bcwp,
845        Icmr1_SPEC,
846        crate::common::W,
847    > {
848        crate::common::RegisterField::<
849            3,
850            0x1,
851            1,
852            0,
853            icmr1::Bcwp,
854            icmr1::Bcwp,
855            Icmr1_SPEC,
856            crate::common::W,
857        >::from_register(self, 0)
858    }
859
860    #[doc = "Internal Reference Clock Select"]
861    #[inline(always)]
862    pub fn cks(
863        self,
864    ) -> crate::common::RegisterField<4, 0x7, 1, 0, u8, u8, Icmr1_SPEC, crate::common::RW> {
865        crate::common::RegisterField::<4,0x7,1,0,u8,u8,Icmr1_SPEC,crate::common::RW>::from_register(self,0)
866    }
867
868    #[doc = "MST/TRS Write Protect"]
869    #[inline(always)]
870    pub fn mtwp(
871        self,
872    ) -> crate::common::RegisterField<
873        7,
874        0x1,
875        1,
876        0,
877        icmr1::Mtwp,
878        icmr1::Mtwp,
879        Icmr1_SPEC,
880        crate::common::RW,
881    > {
882        crate::common::RegisterField::<
883            7,
884            0x1,
885            1,
886            0,
887            icmr1::Mtwp,
888            icmr1::Mtwp,
889            Icmr1_SPEC,
890            crate::common::RW,
891        >::from_register(self, 0)
892    }
893}
894impl ::core::default::Default for Icmr1 {
895    #[inline(always)]
896    fn default() -> Icmr1 {
897        <crate::RegValueT<Icmr1_SPEC> as RegisterValue<_>>::new(8)
898    }
899}
900pub mod icmr1 {
901
902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
903    pub struct Bc_SPEC;
904    pub type Bc = crate::EnumBitfieldStruct<u8, Bc_SPEC>;
905    impl Bc {
906        #[doc = "9 bits"]
907        pub const _000: Self = Self::new(0);
908
909        #[doc = "2 bits"]
910        pub const _001: Self = Self::new(1);
911
912        #[doc = "3 bits"]
913        pub const _010: Self = Self::new(2);
914
915        #[doc = "4 bits"]
916        pub const _011: Self = Self::new(3);
917
918        #[doc = "5 bits"]
919        pub const _100: Self = Self::new(4);
920
921        #[doc = "6 bits"]
922        pub const _101: Self = Self::new(5);
923
924        #[doc = "7 bits"]
925        pub const _110: Self = Self::new(6);
926
927        #[doc = "8 bits"]
928        pub const _111: Self = Self::new(7);
929    }
930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
931    pub struct Bcwp_SPEC;
932    pub type Bcwp = crate::EnumBitfieldStruct<u8, Bcwp_SPEC>;
933    impl Bcwp {
934        #[doc = "Write enable BC\\[2:0\\] bits"]
935        pub const _0: Self = Self::new(0);
936
937        #[doc = "Write protect BC\\[2:0\\] bits"]
938        pub const _1: Self = Self::new(1);
939    }
940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
941    pub struct Mtwp_SPEC;
942    pub type Mtwp = crate::EnumBitfieldStruct<u8, Mtwp_SPEC>;
943    impl Mtwp {
944        #[doc = "Write protect MST and TRS bits in ICCR2"]
945        pub const _0: Self = Self::new(0);
946
947        #[doc = "Write enable MST and TRS bits in ICCR2"]
948        pub const _1: Self = Self::new(1);
949    }
950}
951#[doc(hidden)]
952#[derive(Copy, Clone, Eq, PartialEq)]
953pub struct Icmr2_SPEC;
954impl crate::sealed::RegSpec for Icmr2_SPEC {
955    type DataType = u8;
956}
957
958#[doc = "I2C Bus Mode Register 2"]
959pub type Icmr2 = crate::RegValueT<Icmr2_SPEC>;
960
961impl Icmr2 {
962    #[doc = "Timeout Detection Time Select"]
963    #[inline(always)]
964    pub fn tmos(
965        self,
966    ) -> crate::common::RegisterField<
967        0,
968        0x1,
969        1,
970        0,
971        icmr2::Tmos,
972        icmr2::Tmos,
973        Icmr2_SPEC,
974        crate::common::RW,
975    > {
976        crate::common::RegisterField::<
977            0,
978            0x1,
979            1,
980            0,
981            icmr2::Tmos,
982            icmr2::Tmos,
983            Icmr2_SPEC,
984            crate::common::RW,
985        >::from_register(self, 0)
986    }
987
988    #[doc = "Timeout L Count Control"]
989    #[inline(always)]
990    pub fn tmol(
991        self,
992    ) -> crate::common::RegisterField<
993        1,
994        0x1,
995        1,
996        0,
997        icmr2::Tmol,
998        icmr2::Tmol,
999        Icmr2_SPEC,
1000        crate::common::RW,
1001    > {
1002        crate::common::RegisterField::<
1003            1,
1004            0x1,
1005            1,
1006            0,
1007            icmr2::Tmol,
1008            icmr2::Tmol,
1009            Icmr2_SPEC,
1010            crate::common::RW,
1011        >::from_register(self, 0)
1012    }
1013
1014    #[doc = "Timeout H Count Control"]
1015    #[inline(always)]
1016    pub fn tmoh(
1017        self,
1018    ) -> crate::common::RegisterField<
1019        2,
1020        0x1,
1021        1,
1022        0,
1023        icmr2::Tmoh,
1024        icmr2::Tmoh,
1025        Icmr2_SPEC,
1026        crate::common::RW,
1027    > {
1028        crate::common::RegisterField::<
1029            2,
1030            0x1,
1031            1,
1032            0,
1033            icmr2::Tmoh,
1034            icmr2::Tmoh,
1035            Icmr2_SPEC,
1036            crate::common::RW,
1037        >::from_register(self, 0)
1038    }
1039
1040    #[doc = "SDA Output Delay Counter"]
1041    #[inline(always)]
1042    pub fn sddl(
1043        self,
1044    ) -> crate::common::RegisterField<
1045        4,
1046        0x7,
1047        1,
1048        0,
1049        icmr2::Sddl,
1050        icmr2::Sddl,
1051        Icmr2_SPEC,
1052        crate::common::RW,
1053    > {
1054        crate::common::RegisterField::<
1055            4,
1056            0x7,
1057            1,
1058            0,
1059            icmr2::Sddl,
1060            icmr2::Sddl,
1061            Icmr2_SPEC,
1062            crate::common::RW,
1063        >::from_register(self, 0)
1064    }
1065
1066    #[doc = "SDA Output Delay Clock Source Select"]
1067    #[inline(always)]
1068    pub fn dlcs(
1069        self,
1070    ) -> crate::common::RegisterField<
1071        7,
1072        0x1,
1073        1,
1074        0,
1075        icmr2::Dlcs,
1076        icmr2::Dlcs,
1077        Icmr2_SPEC,
1078        crate::common::RW,
1079    > {
1080        crate::common::RegisterField::<
1081            7,
1082            0x1,
1083            1,
1084            0,
1085            icmr2::Dlcs,
1086            icmr2::Dlcs,
1087            Icmr2_SPEC,
1088            crate::common::RW,
1089        >::from_register(self, 0)
1090    }
1091}
1092impl ::core::default::Default for Icmr2 {
1093    #[inline(always)]
1094    fn default() -> Icmr2 {
1095        <crate::RegValueT<Icmr2_SPEC> as RegisterValue<_>>::new(6)
1096    }
1097}
1098pub mod icmr2 {
1099
1100    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1101    pub struct Tmos_SPEC;
1102    pub type Tmos = crate::EnumBitfieldStruct<u8, Tmos_SPEC>;
1103    impl Tmos {
1104        #[doc = "Select long mode"]
1105        pub const _0: Self = Self::new(0);
1106
1107        #[doc = "Select short mode"]
1108        pub const _1: Self = Self::new(1);
1109    }
1110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1111    pub struct Tmol_SPEC;
1112    pub type Tmol = crate::EnumBitfieldStruct<u8, Tmol_SPEC>;
1113    impl Tmol {
1114        #[doc = "Disable count while SCLn line is low"]
1115        pub const _0: Self = Self::new(0);
1116
1117        #[doc = "Enable count while SCLn line is low"]
1118        pub const _1: Self = Self::new(1);
1119    }
1120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1121    pub struct Tmoh_SPEC;
1122    pub type Tmoh = crate::EnumBitfieldStruct<u8, Tmoh_SPEC>;
1123    impl Tmoh {
1124        #[doc = "Disable count while SCLn line is high"]
1125        pub const _0: Self = Self::new(0);
1126
1127        #[doc = "Enable count while SCLn line is high"]
1128        pub const _1: Self = Self::new(1);
1129    }
1130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1131    pub struct Sddl_SPEC;
1132    pub type Sddl = crate::EnumBitfieldStruct<u8, Sddl_SPEC>;
1133    impl Sddl {
1134        #[doc = "No output delay"]
1135        pub const _000: Self = Self::new(0);
1136
1137        #[doc = "1 IIC-phi cycle (When ICMR2.DLCS = 0 (IIC-phi)) 1 or 2 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1138        pub const _001: Self = Self::new(1);
1139
1140        #[doc = "2 IIC-phi cycles (When ICMR2.DLCS = 0 (IIC-phi)) 3 or 4 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1141        pub const _010: Self = Self::new(2);
1142
1143        #[doc = "3 IIC-phi cycles (When ICMR2.DLCS = 0 (IIC-phi)) 5 or 6 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1144        pub const _011: Self = Self::new(3);
1145
1146        #[doc = "4 IIC-phi cycles (When ICMR2.DLCS = 0 (IIC-phi)) 7 or 8 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1147        pub const _100: Self = Self::new(4);
1148
1149        #[doc = "5 IIC-phi cycles (When ICMR2.DLCS = 0 (IIC-phi)) 9 or 10 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1150        pub const _101: Self = Self::new(5);
1151
1152        #[doc = "6 IIC-phi cycles (When ICMR2.DLCS = 0 (IIC-phi)) 11 or 12 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1153        pub const _110: Self = Self::new(6);
1154
1155        #[doc = "7 IIC-phi cycles (When ICMR2.DLCS = 0 (IIC-phi)) 13 or 14 IIC-phi cycles (When ICMR2.DLCS = 1 (IIC-phi/2))"]
1156        pub const _111: Self = Self::new(7);
1157    }
1158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1159    pub struct Dlcs_SPEC;
1160    pub type Dlcs = crate::EnumBitfieldStruct<u8, Dlcs_SPEC>;
1161    impl Dlcs {
1162        #[doc = "Select internal reference clock (IIC-phi) as the clock source for SDA output delay counter"]
1163        pub const _0: Self = Self::new(0);
1164
1165        #[doc = "Select internal reference clock divided by 2 (IIC-phi/2) as the clock source for SDA output delay counter"]
1166        pub const _1: Self = Self::new(1);
1167    }
1168}
1169#[doc(hidden)]
1170#[derive(Copy, Clone, Eq, PartialEq)]
1171pub struct Icmr3_SPEC;
1172impl crate::sealed::RegSpec for Icmr3_SPEC {
1173    type DataType = u8;
1174}
1175
1176#[doc = "I2C Bus Mode Register 3"]
1177pub type Icmr3 = crate::RegValueT<Icmr3_SPEC>;
1178
1179impl Icmr3 {
1180    #[doc = "Noise Filter Stage Select"]
1181    #[inline(always)]
1182    pub fn nf(
1183        self,
1184    ) -> crate::common::RegisterField<
1185        0,
1186        0x3,
1187        1,
1188        0,
1189        icmr3::Nf,
1190        icmr3::Nf,
1191        Icmr3_SPEC,
1192        crate::common::RW,
1193    > {
1194        crate::common::RegisterField::<
1195            0,
1196            0x3,
1197            1,
1198            0,
1199            icmr3::Nf,
1200            icmr3::Nf,
1201            Icmr3_SPEC,
1202            crate::common::RW,
1203        >::from_register(self, 0)
1204    }
1205
1206    #[doc = "Receive Acknowledge"]
1207    #[inline(always)]
1208    pub fn ackbr(
1209        self,
1210    ) -> crate::common::RegisterField<
1211        2,
1212        0x1,
1213        1,
1214        0,
1215        icmr3::Ackbr,
1216        icmr3::Ackbr,
1217        Icmr3_SPEC,
1218        crate::common::R,
1219    > {
1220        crate::common::RegisterField::<
1221            2,
1222            0x1,
1223            1,
1224            0,
1225            icmr3::Ackbr,
1226            icmr3::Ackbr,
1227            Icmr3_SPEC,
1228            crate::common::R,
1229        >::from_register(self, 0)
1230    }
1231
1232    #[doc = "Transmit Acknowledge"]
1233    #[inline(always)]
1234    pub fn ackbt(
1235        self,
1236    ) -> crate::common::RegisterField<
1237        3,
1238        0x1,
1239        1,
1240        0,
1241        icmr3::Ackbt,
1242        icmr3::Ackbt,
1243        Icmr3_SPEC,
1244        crate::common::RW,
1245    > {
1246        crate::common::RegisterField::<
1247            3,
1248            0x1,
1249            1,
1250            0,
1251            icmr3::Ackbt,
1252            icmr3::Ackbt,
1253            Icmr3_SPEC,
1254            crate::common::RW,
1255        >::from_register(self, 0)
1256    }
1257
1258    #[doc = "ACKBT Write Protect"]
1259    #[inline(always)]
1260    pub fn ackwp(
1261        self,
1262    ) -> crate::common::RegisterField<
1263        4,
1264        0x1,
1265        1,
1266        0,
1267        icmr3::Ackwp,
1268        icmr3::Ackwp,
1269        Icmr3_SPEC,
1270        crate::common::RW,
1271    > {
1272        crate::common::RegisterField::<
1273            4,
1274            0x1,
1275            1,
1276            0,
1277            icmr3::Ackwp,
1278            icmr3::Ackwp,
1279            Icmr3_SPEC,
1280            crate::common::RW,
1281        >::from_register(self, 0)
1282    }
1283
1284    #[doc = "RDRF Flag Set Timing Select"]
1285    #[inline(always)]
1286    pub fn rdrfs(
1287        self,
1288    ) -> crate::common::RegisterField<
1289        5,
1290        0x1,
1291        1,
1292        0,
1293        icmr3::Rdrfs,
1294        icmr3::Rdrfs,
1295        Icmr3_SPEC,
1296        crate::common::RW,
1297    > {
1298        crate::common::RegisterField::<
1299            5,
1300            0x1,
1301            1,
1302            0,
1303            icmr3::Rdrfs,
1304            icmr3::Rdrfs,
1305            Icmr3_SPEC,
1306            crate::common::RW,
1307        >::from_register(self, 0)
1308    }
1309
1310    #[doc = "Low-hold is released by reading ICDRR."]
1311    #[inline(always)]
1312    pub fn wait(
1313        self,
1314    ) -> crate::common::RegisterField<
1315        6,
1316        0x1,
1317        1,
1318        0,
1319        icmr3::Wait,
1320        icmr3::Wait,
1321        Icmr3_SPEC,
1322        crate::common::RW,
1323    > {
1324        crate::common::RegisterField::<
1325            6,
1326            0x1,
1327            1,
1328            0,
1329            icmr3::Wait,
1330            icmr3::Wait,
1331            Icmr3_SPEC,
1332            crate::common::RW,
1333        >::from_register(self, 0)
1334    }
1335
1336    #[doc = "SMBus/I2C Bus Select"]
1337    #[inline(always)]
1338    pub fn smbs(
1339        self,
1340    ) -> crate::common::RegisterField<
1341        7,
1342        0x1,
1343        1,
1344        0,
1345        icmr3::Smbs,
1346        icmr3::Smbs,
1347        Icmr3_SPEC,
1348        crate::common::RW,
1349    > {
1350        crate::common::RegisterField::<
1351            7,
1352            0x1,
1353            1,
1354            0,
1355            icmr3::Smbs,
1356            icmr3::Smbs,
1357            Icmr3_SPEC,
1358            crate::common::RW,
1359        >::from_register(self, 0)
1360    }
1361}
1362impl ::core::default::Default for Icmr3 {
1363    #[inline(always)]
1364    fn default() -> Icmr3 {
1365        <crate::RegValueT<Icmr3_SPEC> as RegisterValue<_>>::new(0)
1366    }
1367}
1368pub mod icmr3 {
1369
1370    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1371    pub struct Nf_SPEC;
1372    pub type Nf = crate::EnumBitfieldStruct<u8, Nf_SPEC>;
1373    impl Nf {
1374        #[doc = "Filter out noise of up to 1 IIC-phi cycle (single-stage filter)"]
1375        pub const _00: Self = Self::new(0);
1376
1377        #[doc = "Filter out noise of up to 2 IIC-phi cycles (2-stage filter)"]
1378        pub const _01: Self = Self::new(1);
1379
1380        #[doc = "Filter out noise of up to 3 IIC-phi cycles (3-stage filter)"]
1381        pub const _10: Self = Self::new(2);
1382
1383        #[doc = "Filter out noise of up to 4 IIC-phi cycles (4-stage filter)"]
1384        pub const _11: Self = Self::new(3);
1385    }
1386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1387    pub struct Ackbr_SPEC;
1388    pub type Ackbr = crate::EnumBitfieldStruct<u8, Ackbr_SPEC>;
1389    impl Ackbr {
1390        #[doc = "0 received as the acknowledge bit (ACK reception)"]
1391        pub const _0: Self = Self::new(0);
1392
1393        #[doc = "1 received as the acknowledge bit (NACK reception)"]
1394        pub const _1: Self = Self::new(1);
1395    }
1396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1397    pub struct Ackbt_SPEC;
1398    pub type Ackbt = crate::EnumBitfieldStruct<u8, Ackbt_SPEC>;
1399    impl Ackbt {
1400        #[doc = "Send 0 as the acknowledge bit (ACK transmission)"]
1401        pub const _0: Self = Self::new(0);
1402
1403        #[doc = "Send 1 as the acknowledge bit (NACK transmission)"]
1404        pub const _1: Self = Self::new(1);
1405    }
1406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1407    pub struct Ackwp_SPEC;
1408    pub type Ackwp = crate::EnumBitfieldStruct<u8, Ackwp_SPEC>;
1409    impl Ackwp {
1410        #[doc = "Write protect ACKBT bit"]
1411        pub const _0: Self = Self::new(0);
1412
1413        #[doc = "Write enable ACKBT bit"]
1414        pub const _1: Self = Self::new(1);
1415    }
1416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1417    pub struct Rdrfs_SPEC;
1418    pub type Rdrfs = crate::EnumBitfieldStruct<u8, Rdrfs_SPEC>;
1419    impl Rdrfs {
1420        #[doc = "Set the RDRF flag on the rising edge of the 9th SCL clock cycle. The SCLn line is not held low on the falling edge of the 8th clock cycle."]
1421        pub const _0: Self = Self::new(0);
1422
1423        #[doc = "Set the RDRF flag on the rising edge of the 8th SCL clock cycle. The SCLn line is held low on the falling edge of the 8th clock cycle."]
1424        pub const _1: Self = Self::new(1);
1425    }
1426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1427    pub struct Wait_SPEC;
1428    pub type Wait = crate::EnumBitfieldStruct<u8, Wait_SPEC>;
1429    impl Wait {
1430        #[doc = "No wait (The SCLn line is not held low during the period between the 9th clock cycle and the 1st clock cycle.)"]
1431        pub const _0: Self = Self::new(0);
1432
1433        #[doc = "Wait (The SCLn line is held low during the period between the 9th clock cycle and the 1st clock cycle.)"]
1434        pub const _1: Self = Self::new(1);
1435    }
1436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1437    pub struct Smbs_SPEC;
1438    pub type Smbs = crate::EnumBitfieldStruct<u8, Smbs_SPEC>;
1439    impl Smbs {
1440        #[doc = "Select I2C Bus"]
1441        pub const _0: Self = Self::new(0);
1442
1443        #[doc = "Select SMBus"]
1444        pub const _1: Self = Self::new(1);
1445    }
1446}
1447#[doc(hidden)]
1448#[derive(Copy, Clone, Eq, PartialEq)]
1449pub struct Icfer_SPEC;
1450impl crate::sealed::RegSpec for Icfer_SPEC {
1451    type DataType = u8;
1452}
1453
1454#[doc = "I2C Bus Function Enable Register"]
1455pub type Icfer = crate::RegValueT<Icfer_SPEC>;
1456
1457impl Icfer {
1458    #[doc = "Timeout Function Enable"]
1459    #[inline(always)]
1460    pub fn tmoe(
1461        self,
1462    ) -> crate::common::RegisterField<
1463        0,
1464        0x1,
1465        1,
1466        0,
1467        icfer::Tmoe,
1468        icfer::Tmoe,
1469        Icfer_SPEC,
1470        crate::common::RW,
1471    > {
1472        crate::common::RegisterField::<
1473            0,
1474            0x1,
1475            1,
1476            0,
1477            icfer::Tmoe,
1478            icfer::Tmoe,
1479            Icfer_SPEC,
1480            crate::common::RW,
1481        >::from_register(self, 0)
1482    }
1483
1484    #[doc = "Master Arbitration-Lost Detection Enable"]
1485    #[inline(always)]
1486    pub fn male(
1487        self,
1488    ) -> crate::common::RegisterField<
1489        1,
1490        0x1,
1491        1,
1492        0,
1493        icfer::Male,
1494        icfer::Male,
1495        Icfer_SPEC,
1496        crate::common::RW,
1497    > {
1498        crate::common::RegisterField::<
1499            1,
1500            0x1,
1501            1,
1502            0,
1503            icfer::Male,
1504            icfer::Male,
1505            Icfer_SPEC,
1506            crate::common::RW,
1507        >::from_register(self, 0)
1508    }
1509
1510    #[doc = "NACK Transmission Arbitration-Lost Detection Enable"]
1511    #[inline(always)]
1512    pub fn nale(
1513        self,
1514    ) -> crate::common::RegisterField<
1515        2,
1516        0x1,
1517        1,
1518        0,
1519        icfer::Nale,
1520        icfer::Nale,
1521        Icfer_SPEC,
1522        crate::common::RW,
1523    > {
1524        crate::common::RegisterField::<
1525            2,
1526            0x1,
1527            1,
1528            0,
1529            icfer::Nale,
1530            icfer::Nale,
1531            Icfer_SPEC,
1532            crate::common::RW,
1533        >::from_register(self, 0)
1534    }
1535
1536    #[doc = "Slave Arbitration-Lost Detection Enable"]
1537    #[inline(always)]
1538    pub fn sale(
1539        self,
1540    ) -> crate::common::RegisterField<
1541        3,
1542        0x1,
1543        1,
1544        0,
1545        icfer::Sale,
1546        icfer::Sale,
1547        Icfer_SPEC,
1548        crate::common::RW,
1549    > {
1550        crate::common::RegisterField::<
1551            3,
1552            0x1,
1553            1,
1554            0,
1555            icfer::Sale,
1556            icfer::Sale,
1557            Icfer_SPEC,
1558            crate::common::RW,
1559        >::from_register(self, 0)
1560    }
1561
1562    #[doc = "NACK Reception Transfer Suspension Enable"]
1563    #[inline(always)]
1564    pub fn nacke(
1565        self,
1566    ) -> crate::common::RegisterField<
1567        4,
1568        0x1,
1569        1,
1570        0,
1571        icfer::Nacke,
1572        icfer::Nacke,
1573        Icfer_SPEC,
1574        crate::common::RW,
1575    > {
1576        crate::common::RegisterField::<
1577            4,
1578            0x1,
1579            1,
1580            0,
1581            icfer::Nacke,
1582            icfer::Nacke,
1583            Icfer_SPEC,
1584            crate::common::RW,
1585        >::from_register(self, 0)
1586    }
1587
1588    #[doc = "Digital Noise Filter Circuit Enable"]
1589    #[inline(always)]
1590    pub fn nfe(
1591        self,
1592    ) -> crate::common::RegisterField<
1593        5,
1594        0x1,
1595        1,
1596        0,
1597        icfer::Nfe,
1598        icfer::Nfe,
1599        Icfer_SPEC,
1600        crate::common::RW,
1601    > {
1602        crate::common::RegisterField::<
1603            5,
1604            0x1,
1605            1,
1606            0,
1607            icfer::Nfe,
1608            icfer::Nfe,
1609            Icfer_SPEC,
1610            crate::common::RW,
1611        >::from_register(self, 0)
1612    }
1613
1614    #[doc = "SCL Synchronous Circuit Enable"]
1615    #[inline(always)]
1616    pub fn scle(
1617        self,
1618    ) -> crate::common::RegisterField<
1619        6,
1620        0x1,
1621        1,
1622        0,
1623        icfer::Scle,
1624        icfer::Scle,
1625        Icfer_SPEC,
1626        crate::common::RW,
1627    > {
1628        crate::common::RegisterField::<
1629            6,
1630            0x1,
1631            1,
1632            0,
1633            icfer::Scle,
1634            icfer::Scle,
1635            Icfer_SPEC,
1636            crate::common::RW,
1637        >::from_register(self, 0)
1638    }
1639
1640    #[doc = "Fast-Mode Plus Enable"]
1641    #[inline(always)]
1642    pub fn fmpe(
1643        self,
1644    ) -> crate::common::RegisterField<
1645        7,
1646        0x1,
1647        1,
1648        0,
1649        icfer::Fmpe,
1650        icfer::Fmpe,
1651        Icfer_SPEC,
1652        crate::common::RW,
1653    > {
1654        crate::common::RegisterField::<
1655            7,
1656            0x1,
1657            1,
1658            0,
1659            icfer::Fmpe,
1660            icfer::Fmpe,
1661            Icfer_SPEC,
1662            crate::common::RW,
1663        >::from_register(self, 0)
1664    }
1665}
1666impl ::core::default::Default for Icfer {
1667    #[inline(always)]
1668    fn default() -> Icfer {
1669        <crate::RegValueT<Icfer_SPEC> as RegisterValue<_>>::new(114)
1670    }
1671}
1672pub mod icfer {
1673
1674    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1675    pub struct Tmoe_SPEC;
1676    pub type Tmoe = crate::EnumBitfieldStruct<u8, Tmoe_SPEC>;
1677    impl Tmoe {
1678        #[doc = "Disable"]
1679        pub const _0: Self = Self::new(0);
1680
1681        #[doc = "Enable"]
1682        pub const _1: Self = Self::new(1);
1683    }
1684    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1685    pub struct Male_SPEC;
1686    pub type Male = crate::EnumBitfieldStruct<u8, Male_SPEC>;
1687    impl Male {
1688        #[doc = "Disable the arbitration-lost detection function and disable automatic clearing of the MST and TRS bits in ICCR2 when arbitration is lost"]
1689        pub const _0: Self = Self::new(0);
1690
1691        #[doc = "Enable the arbitration-lost detection function and enable automatic clearing of the MST and TRS bits in ICCR2 when arbitration is lost"]
1692        pub const _1: Self = Self::new(1);
1693    }
1694    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1695    pub struct Nale_SPEC;
1696    pub type Nale = crate::EnumBitfieldStruct<u8, Nale_SPEC>;
1697    impl Nale {
1698        #[doc = "Disable"]
1699        pub const _0: Self = Self::new(0);
1700
1701        #[doc = "Enable"]
1702        pub const _1: Self = Self::new(1);
1703    }
1704    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1705    pub struct Sale_SPEC;
1706    pub type Sale = crate::EnumBitfieldStruct<u8, Sale_SPEC>;
1707    impl Sale {
1708        #[doc = "Disable"]
1709        pub const _0: Self = Self::new(0);
1710
1711        #[doc = "Enable"]
1712        pub const _1: Self = Self::new(1);
1713    }
1714    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1715    pub struct Nacke_SPEC;
1716    pub type Nacke = crate::EnumBitfieldStruct<u8, Nacke_SPEC>;
1717    impl Nacke {
1718        #[doc = "Do not suspend transfer operation during NACK reception (disable transfer suspension)"]
1719        pub const _0: Self = Self::new(0);
1720
1721        #[doc = "Suspend transfer operation during NACK reception (enable transfer suspension)"]
1722        pub const _1: Self = Self::new(1);
1723    }
1724    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1725    pub struct Nfe_SPEC;
1726    pub type Nfe = crate::EnumBitfieldStruct<u8, Nfe_SPEC>;
1727    impl Nfe {
1728        #[doc = "Do not use the digital noise filter circuit"]
1729        pub const _0: Self = Self::new(0);
1730
1731        #[doc = "Use the digital noise filter circuit"]
1732        pub const _1: Self = Self::new(1);
1733    }
1734    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1735    pub struct Scle_SPEC;
1736    pub type Scle = crate::EnumBitfieldStruct<u8, Scle_SPEC>;
1737    impl Scle {
1738        #[doc = "Do not use the SCL synchronous circuit"]
1739        pub const _0: Self = Self::new(0);
1740
1741        #[doc = "Use the SCL synchronous circuit"]
1742        pub const _1: Self = Self::new(1);
1743    }
1744    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1745    pub struct Fmpe_SPEC;
1746    pub type Fmpe = crate::EnumBitfieldStruct<u8, Fmpe_SPEC>;
1747    impl Fmpe {
1748        #[doc = "Do not use the Fm+ slope control circuit for the SCLn and SDAn pins"]
1749        pub const _0: Self = Self::new(0);
1750
1751        #[doc = "Use the Fm+ slope control circuit for the SCLn and SDAn pins."]
1752        pub const _1: Self = Self::new(1);
1753    }
1754}
1755#[doc(hidden)]
1756#[derive(Copy, Clone, Eq, PartialEq)]
1757pub struct Icser_SPEC;
1758impl crate::sealed::RegSpec for Icser_SPEC {
1759    type DataType = u8;
1760}
1761
1762#[doc = "I2C Bus Status Enable Register"]
1763pub type Icser = crate::RegValueT<Icser_SPEC>;
1764
1765impl Icser {
1766    #[doc = "Slave Address Register 0 Enable"]
1767    #[inline(always)]
1768    pub fn sar0e(
1769        self,
1770    ) -> crate::common::RegisterField<
1771        0,
1772        0x1,
1773        1,
1774        0,
1775        icser::Sar0E,
1776        icser::Sar0E,
1777        Icser_SPEC,
1778        crate::common::RW,
1779    > {
1780        crate::common::RegisterField::<
1781            0,
1782            0x1,
1783            1,
1784            0,
1785            icser::Sar0E,
1786            icser::Sar0E,
1787            Icser_SPEC,
1788            crate::common::RW,
1789        >::from_register(self, 0)
1790    }
1791
1792    #[doc = "Slave Address Register 1 Enable"]
1793    #[inline(always)]
1794    pub fn sar1e(
1795        self,
1796    ) -> crate::common::RegisterField<
1797        1,
1798        0x1,
1799        1,
1800        0,
1801        icser::Sar1E,
1802        icser::Sar1E,
1803        Icser_SPEC,
1804        crate::common::RW,
1805    > {
1806        crate::common::RegisterField::<
1807            1,
1808            0x1,
1809            1,
1810            0,
1811            icser::Sar1E,
1812            icser::Sar1E,
1813            Icser_SPEC,
1814            crate::common::RW,
1815        >::from_register(self, 0)
1816    }
1817
1818    #[doc = "Slave Address Register 2 Enable"]
1819    #[inline(always)]
1820    pub fn sar2e(
1821        self,
1822    ) -> crate::common::RegisterField<
1823        2,
1824        0x1,
1825        1,
1826        0,
1827        icser::Sar2E,
1828        icser::Sar2E,
1829        Icser_SPEC,
1830        crate::common::RW,
1831    > {
1832        crate::common::RegisterField::<
1833            2,
1834            0x1,
1835            1,
1836            0,
1837            icser::Sar2E,
1838            icser::Sar2E,
1839            Icser_SPEC,
1840            crate::common::RW,
1841        >::from_register(self, 0)
1842    }
1843
1844    #[doc = "General Call Address Enable"]
1845    #[inline(always)]
1846    pub fn gcae(
1847        self,
1848    ) -> crate::common::RegisterField<
1849        3,
1850        0x1,
1851        1,
1852        0,
1853        icser::Gcae,
1854        icser::Gcae,
1855        Icser_SPEC,
1856        crate::common::RW,
1857    > {
1858        crate::common::RegisterField::<
1859            3,
1860            0x1,
1861            1,
1862            0,
1863            icser::Gcae,
1864            icser::Gcae,
1865            Icser_SPEC,
1866            crate::common::RW,
1867        >::from_register(self, 0)
1868    }
1869
1870    #[doc = "Device-ID Address Detection Enable"]
1871    #[inline(always)]
1872    pub fn dide(
1873        self,
1874    ) -> crate::common::RegisterField<
1875        5,
1876        0x1,
1877        1,
1878        0,
1879        icser::Dide,
1880        icser::Dide,
1881        Icser_SPEC,
1882        crate::common::RW,
1883    > {
1884        crate::common::RegisterField::<
1885            5,
1886            0x1,
1887            1,
1888            0,
1889            icser::Dide,
1890            icser::Dide,
1891            Icser_SPEC,
1892            crate::common::RW,
1893        >::from_register(self, 0)
1894    }
1895
1896    #[doc = "Host Address Enable"]
1897    #[inline(always)]
1898    pub fn hoae(
1899        self,
1900    ) -> crate::common::RegisterField<
1901        7,
1902        0x1,
1903        1,
1904        0,
1905        icser::Hoae,
1906        icser::Hoae,
1907        Icser_SPEC,
1908        crate::common::RW,
1909    > {
1910        crate::common::RegisterField::<
1911            7,
1912            0x1,
1913            1,
1914            0,
1915            icser::Hoae,
1916            icser::Hoae,
1917            Icser_SPEC,
1918            crate::common::RW,
1919        >::from_register(self, 0)
1920    }
1921}
1922impl ::core::default::Default for Icser {
1923    #[inline(always)]
1924    fn default() -> Icser {
1925        <crate::RegValueT<Icser_SPEC> as RegisterValue<_>>::new(9)
1926    }
1927}
1928pub mod icser {
1929
1930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1931    pub struct Sar0E_SPEC;
1932    pub type Sar0E = crate::EnumBitfieldStruct<u8, Sar0E_SPEC>;
1933    impl Sar0E {
1934        #[doc = "Disable slave address in SARL0 and SARU0"]
1935        pub const _0: Self = Self::new(0);
1936
1937        #[doc = "Enable slave address in SARL0 and SARU0"]
1938        pub const _1: Self = Self::new(1);
1939    }
1940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1941    pub struct Sar1E_SPEC;
1942    pub type Sar1E = crate::EnumBitfieldStruct<u8, Sar1E_SPEC>;
1943    impl Sar1E {
1944        #[doc = "Disable slave address in SARL1 and SARU1"]
1945        pub const _0: Self = Self::new(0);
1946
1947        #[doc = "Enable slave address in SARL1 and SARU1"]
1948        pub const _1: Self = Self::new(1);
1949    }
1950    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1951    pub struct Sar2E_SPEC;
1952    pub type Sar2E = crate::EnumBitfieldStruct<u8, Sar2E_SPEC>;
1953    impl Sar2E {
1954        #[doc = "Disable slave address in SARL2 and SARU2"]
1955        pub const _0: Self = Self::new(0);
1956
1957        #[doc = "Enable slave address in SARL2 and SARU2"]
1958        pub const _1: Self = Self::new(1);
1959    }
1960    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1961    pub struct Gcae_SPEC;
1962    pub type Gcae = crate::EnumBitfieldStruct<u8, Gcae_SPEC>;
1963    impl Gcae {
1964        #[doc = "Disable general call address detection"]
1965        pub const _0: Self = Self::new(0);
1966
1967        #[doc = "Enable general call address detection"]
1968        pub const _1: Self = Self::new(1);
1969    }
1970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1971    pub struct Dide_SPEC;
1972    pub type Dide = crate::EnumBitfieldStruct<u8, Dide_SPEC>;
1973    impl Dide {
1974        #[doc = "Disable device-ID address detection"]
1975        pub const _0: Self = Self::new(0);
1976
1977        #[doc = "Enable device-ID address detection"]
1978        pub const _1: Self = Self::new(1);
1979    }
1980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1981    pub struct Hoae_SPEC;
1982    pub type Hoae = crate::EnumBitfieldStruct<u8, Hoae_SPEC>;
1983    impl Hoae {
1984        #[doc = "Disable host address detection"]
1985        pub const _0: Self = Self::new(0);
1986
1987        #[doc = "Enable host address detection"]
1988        pub const _1: Self = Self::new(1);
1989    }
1990}
1991#[doc(hidden)]
1992#[derive(Copy, Clone, Eq, PartialEq)]
1993pub struct Icier_SPEC;
1994impl crate::sealed::RegSpec for Icier_SPEC {
1995    type DataType = u8;
1996}
1997
1998#[doc = "I2C Bus Interrupt Enable Register"]
1999pub type Icier = crate::RegValueT<Icier_SPEC>;
2000
2001impl Icier {
2002    #[doc = "Timeout Interrupt Request Enable"]
2003    #[inline(always)]
2004    pub fn tmoie(
2005        self,
2006    ) -> crate::common::RegisterField<
2007        0,
2008        0x1,
2009        1,
2010        0,
2011        icier::Tmoie,
2012        icier::Tmoie,
2013        Icier_SPEC,
2014        crate::common::RW,
2015    > {
2016        crate::common::RegisterField::<
2017            0,
2018            0x1,
2019            1,
2020            0,
2021            icier::Tmoie,
2022            icier::Tmoie,
2023            Icier_SPEC,
2024            crate::common::RW,
2025        >::from_register(self, 0)
2026    }
2027
2028    #[doc = "Arbitration-Lost Interrupt Request Enable"]
2029    #[inline(always)]
2030    pub fn alie(
2031        self,
2032    ) -> crate::common::RegisterField<
2033        1,
2034        0x1,
2035        1,
2036        0,
2037        icier::Alie,
2038        icier::Alie,
2039        Icier_SPEC,
2040        crate::common::RW,
2041    > {
2042        crate::common::RegisterField::<
2043            1,
2044            0x1,
2045            1,
2046            0,
2047            icier::Alie,
2048            icier::Alie,
2049            Icier_SPEC,
2050            crate::common::RW,
2051        >::from_register(self, 0)
2052    }
2053
2054    #[doc = "Start Condition Detection Interrupt Request Enable"]
2055    #[inline(always)]
2056    pub fn stie(
2057        self,
2058    ) -> crate::common::RegisterField<
2059        2,
2060        0x1,
2061        1,
2062        0,
2063        icier::Stie,
2064        icier::Stie,
2065        Icier_SPEC,
2066        crate::common::RW,
2067    > {
2068        crate::common::RegisterField::<
2069            2,
2070            0x1,
2071            1,
2072            0,
2073            icier::Stie,
2074            icier::Stie,
2075            Icier_SPEC,
2076            crate::common::RW,
2077        >::from_register(self, 0)
2078    }
2079
2080    #[doc = "Stop Condition Detection Interrupt Request Enable"]
2081    #[inline(always)]
2082    pub fn spie(
2083        self,
2084    ) -> crate::common::RegisterField<
2085        3,
2086        0x1,
2087        1,
2088        0,
2089        icier::Spie,
2090        icier::Spie,
2091        Icier_SPEC,
2092        crate::common::RW,
2093    > {
2094        crate::common::RegisterField::<
2095            3,
2096            0x1,
2097            1,
2098            0,
2099            icier::Spie,
2100            icier::Spie,
2101            Icier_SPEC,
2102            crate::common::RW,
2103        >::from_register(self, 0)
2104    }
2105
2106    #[doc = "NACK Reception Interrupt Request Enable"]
2107    #[inline(always)]
2108    pub fn nakie(
2109        self,
2110    ) -> crate::common::RegisterField<
2111        4,
2112        0x1,
2113        1,
2114        0,
2115        icier::Nakie,
2116        icier::Nakie,
2117        Icier_SPEC,
2118        crate::common::RW,
2119    > {
2120        crate::common::RegisterField::<
2121            4,
2122            0x1,
2123            1,
2124            0,
2125            icier::Nakie,
2126            icier::Nakie,
2127            Icier_SPEC,
2128            crate::common::RW,
2129        >::from_register(self, 0)
2130    }
2131
2132    #[doc = "Receive Data Full Interrupt Request Enable"]
2133    #[inline(always)]
2134    pub fn rie(
2135        self,
2136    ) -> crate::common::RegisterField<
2137        5,
2138        0x1,
2139        1,
2140        0,
2141        icier::Rie,
2142        icier::Rie,
2143        Icier_SPEC,
2144        crate::common::RW,
2145    > {
2146        crate::common::RegisterField::<
2147            5,
2148            0x1,
2149            1,
2150            0,
2151            icier::Rie,
2152            icier::Rie,
2153            Icier_SPEC,
2154            crate::common::RW,
2155        >::from_register(self, 0)
2156    }
2157
2158    #[doc = "Transmit End Interrupt Request Enable"]
2159    #[inline(always)]
2160    pub fn teie(
2161        self,
2162    ) -> crate::common::RegisterField<
2163        6,
2164        0x1,
2165        1,
2166        0,
2167        icier::Teie,
2168        icier::Teie,
2169        Icier_SPEC,
2170        crate::common::RW,
2171    > {
2172        crate::common::RegisterField::<
2173            6,
2174            0x1,
2175            1,
2176            0,
2177            icier::Teie,
2178            icier::Teie,
2179            Icier_SPEC,
2180            crate::common::RW,
2181        >::from_register(self, 0)
2182    }
2183
2184    #[doc = "Transmit Data Empty Interrupt Request Enable"]
2185    #[inline(always)]
2186    pub fn tie(
2187        self,
2188    ) -> crate::common::RegisterField<
2189        7,
2190        0x1,
2191        1,
2192        0,
2193        icier::Tie,
2194        icier::Tie,
2195        Icier_SPEC,
2196        crate::common::RW,
2197    > {
2198        crate::common::RegisterField::<
2199            7,
2200            0x1,
2201            1,
2202            0,
2203            icier::Tie,
2204            icier::Tie,
2205            Icier_SPEC,
2206            crate::common::RW,
2207        >::from_register(self, 0)
2208    }
2209}
2210impl ::core::default::Default for Icier {
2211    #[inline(always)]
2212    fn default() -> Icier {
2213        <crate::RegValueT<Icier_SPEC> as RegisterValue<_>>::new(0)
2214    }
2215}
2216pub mod icier {
2217
2218    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2219    pub struct Tmoie_SPEC;
2220    pub type Tmoie = crate::EnumBitfieldStruct<u8, Tmoie_SPEC>;
2221    impl Tmoie {
2222        #[doc = "Disable timeout interrupt (TMOI) request"]
2223        pub const _0: Self = Self::new(0);
2224
2225        #[doc = "Enable timeout interrupt (TMOI) request"]
2226        pub const _1: Self = Self::new(1);
2227    }
2228    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2229    pub struct Alie_SPEC;
2230    pub type Alie = crate::EnumBitfieldStruct<u8, Alie_SPEC>;
2231    impl Alie {
2232        #[doc = "Disable arbitration-lost interrupt (ALI) request"]
2233        pub const _0: Self = Self::new(0);
2234
2235        #[doc = "Enable arbitration-lost interrupt (ALI) request"]
2236        pub const _1: Self = Self::new(1);
2237    }
2238    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2239    pub struct Stie_SPEC;
2240    pub type Stie = crate::EnumBitfieldStruct<u8, Stie_SPEC>;
2241    impl Stie {
2242        #[doc = "Disable start condition detection interrupt (STI) request"]
2243        pub const _0: Self = Self::new(0);
2244
2245        #[doc = "Enable start condition detection interrupt (STI) request"]
2246        pub const _1: Self = Self::new(1);
2247    }
2248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2249    pub struct Spie_SPEC;
2250    pub type Spie = crate::EnumBitfieldStruct<u8, Spie_SPEC>;
2251    impl Spie {
2252        #[doc = "Disable stop condition detection interrupt (SPI) request"]
2253        pub const _0: Self = Self::new(0);
2254
2255        #[doc = "Enable stop condition detection interrupt (SPI) request"]
2256        pub const _1: Self = Self::new(1);
2257    }
2258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2259    pub struct Nakie_SPEC;
2260    pub type Nakie = crate::EnumBitfieldStruct<u8, Nakie_SPEC>;
2261    impl Nakie {
2262        #[doc = "Disable NACK reception interrupt (NAKI) request"]
2263        pub const _0: Self = Self::new(0);
2264
2265        #[doc = "Enable NACK reception interrupt (NAKI) request"]
2266        pub const _1: Self = Self::new(1);
2267    }
2268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2269    pub struct Rie_SPEC;
2270    pub type Rie = crate::EnumBitfieldStruct<u8, Rie_SPEC>;
2271    impl Rie {
2272        #[doc = "Disable receive data full interrupt (IICn_RXI) request"]
2273        pub const _0: Self = Self::new(0);
2274
2275        #[doc = "Enable receive data full interrupt (IICn_RXI) request"]
2276        pub const _1: Self = Self::new(1);
2277    }
2278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2279    pub struct Teie_SPEC;
2280    pub type Teie = crate::EnumBitfieldStruct<u8, Teie_SPEC>;
2281    impl Teie {
2282        #[doc = "Disable transmit end interrupt (IICn_TEI) request"]
2283        pub const _0: Self = Self::new(0);
2284
2285        #[doc = "Enable transmit end interrupt (IICn_TEI) request"]
2286        pub const _1: Self = Self::new(1);
2287    }
2288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2289    pub struct Tie_SPEC;
2290    pub type Tie = crate::EnumBitfieldStruct<u8, Tie_SPEC>;
2291    impl Tie {
2292        #[doc = "Disable transmit data empty interrupt (IICn_TXI) request"]
2293        pub const _0: Self = Self::new(0);
2294
2295        #[doc = "Enable transmit data empty interrupt (IICn_TXI) request"]
2296        pub const _1: Self = Self::new(1);
2297    }
2298}
2299#[doc(hidden)]
2300#[derive(Copy, Clone, Eq, PartialEq)]
2301pub struct Icsr1_SPEC;
2302impl crate::sealed::RegSpec for Icsr1_SPEC {
2303    type DataType = u8;
2304}
2305
2306#[doc = "I2C Bus Status Register 1"]
2307pub type Icsr1 = crate::RegValueT<Icsr1_SPEC>;
2308
2309impl Icsr1 {
2310    #[doc = "Slave Address 0 Detection Flag"]
2311    #[inline(always)]
2312    pub fn aas0(
2313        self,
2314    ) -> crate::common::RegisterField<
2315        0,
2316        0x1,
2317        1,
2318        0,
2319        icsr1::Aas0,
2320        icsr1::Aas0,
2321        Icsr1_SPEC,
2322        crate::common::RW,
2323    > {
2324        crate::common::RegisterField::<
2325            0,
2326            0x1,
2327            1,
2328            0,
2329            icsr1::Aas0,
2330            icsr1::Aas0,
2331            Icsr1_SPEC,
2332            crate::common::RW,
2333        >::from_register(self, 0)
2334    }
2335
2336    #[doc = "Slave Address 1 Detection Flag"]
2337    #[inline(always)]
2338    pub fn aas1(
2339        self,
2340    ) -> crate::common::RegisterField<
2341        1,
2342        0x1,
2343        1,
2344        0,
2345        icsr1::Aas1,
2346        icsr1::Aas1,
2347        Icsr1_SPEC,
2348        crate::common::RW,
2349    > {
2350        crate::common::RegisterField::<
2351            1,
2352            0x1,
2353            1,
2354            0,
2355            icsr1::Aas1,
2356            icsr1::Aas1,
2357            Icsr1_SPEC,
2358            crate::common::RW,
2359        >::from_register(self, 0)
2360    }
2361
2362    #[doc = "Slave Address 2 Detection Flag"]
2363    #[inline(always)]
2364    pub fn aas2(
2365        self,
2366    ) -> crate::common::RegisterField<
2367        2,
2368        0x1,
2369        1,
2370        0,
2371        icsr1::Aas2,
2372        icsr1::Aas2,
2373        Icsr1_SPEC,
2374        crate::common::RW,
2375    > {
2376        crate::common::RegisterField::<
2377            2,
2378            0x1,
2379            1,
2380            0,
2381            icsr1::Aas2,
2382            icsr1::Aas2,
2383            Icsr1_SPEC,
2384            crate::common::RW,
2385        >::from_register(self, 0)
2386    }
2387
2388    #[doc = "General Call Address Detection Flag"]
2389    #[inline(always)]
2390    pub fn gca(
2391        self,
2392    ) -> crate::common::RegisterField<
2393        3,
2394        0x1,
2395        1,
2396        0,
2397        icsr1::Gca,
2398        icsr1::Gca,
2399        Icsr1_SPEC,
2400        crate::common::RW,
2401    > {
2402        crate::common::RegisterField::<
2403            3,
2404            0x1,
2405            1,
2406            0,
2407            icsr1::Gca,
2408            icsr1::Gca,
2409            Icsr1_SPEC,
2410            crate::common::RW,
2411        >::from_register(self, 0)
2412    }
2413
2414    #[doc = "Device-ID Address Detection Flag"]
2415    #[inline(always)]
2416    pub fn did(
2417        self,
2418    ) -> crate::common::RegisterField<
2419        5,
2420        0x1,
2421        1,
2422        0,
2423        icsr1::Did,
2424        icsr1::Did,
2425        Icsr1_SPEC,
2426        crate::common::RW,
2427    > {
2428        crate::common::RegisterField::<
2429            5,
2430            0x1,
2431            1,
2432            0,
2433            icsr1::Did,
2434            icsr1::Did,
2435            Icsr1_SPEC,
2436            crate::common::RW,
2437        >::from_register(self, 0)
2438    }
2439
2440    #[doc = "Host Address Detection Flag"]
2441    #[inline(always)]
2442    pub fn hoa(
2443        self,
2444    ) -> crate::common::RegisterField<
2445        7,
2446        0x1,
2447        1,
2448        0,
2449        icsr1::Hoa,
2450        icsr1::Hoa,
2451        Icsr1_SPEC,
2452        crate::common::RW,
2453    > {
2454        crate::common::RegisterField::<
2455            7,
2456            0x1,
2457            1,
2458            0,
2459            icsr1::Hoa,
2460            icsr1::Hoa,
2461            Icsr1_SPEC,
2462            crate::common::RW,
2463        >::from_register(self, 0)
2464    }
2465}
2466impl ::core::default::Default for Icsr1 {
2467    #[inline(always)]
2468    fn default() -> Icsr1 {
2469        <crate::RegValueT<Icsr1_SPEC> as RegisterValue<_>>::new(0)
2470    }
2471}
2472pub mod icsr1 {
2473
2474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2475    pub struct Aas0_SPEC;
2476    pub type Aas0 = crate::EnumBitfieldStruct<u8, Aas0_SPEC>;
2477    impl Aas0 {
2478        #[doc = "Slave address 0 not detected"]
2479        pub const _0: Self = Self::new(0);
2480
2481        #[doc = "Slave address 0 detected"]
2482        pub const _1: Self = Self::new(1);
2483    }
2484    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2485    pub struct Aas1_SPEC;
2486    pub type Aas1 = crate::EnumBitfieldStruct<u8, Aas1_SPEC>;
2487    impl Aas1 {
2488        #[doc = "Slave address 1 not detected"]
2489        pub const _0: Self = Self::new(0);
2490
2491        #[doc = "Slave address 1 detected"]
2492        pub const _1: Self = Self::new(1);
2493    }
2494    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2495    pub struct Aas2_SPEC;
2496    pub type Aas2 = crate::EnumBitfieldStruct<u8, Aas2_SPEC>;
2497    impl Aas2 {
2498        #[doc = "Slave address 2 not detected"]
2499        pub const _0: Self = Self::new(0);
2500
2501        #[doc = "Slave address 2 detected"]
2502        pub const _1: Self = Self::new(1);
2503    }
2504    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2505    pub struct Gca_SPEC;
2506    pub type Gca = crate::EnumBitfieldStruct<u8, Gca_SPEC>;
2507    impl Gca {
2508        #[doc = "General call address not detected"]
2509        pub const _0: Self = Self::new(0);
2510
2511        #[doc = "General call address detected"]
2512        pub const _1: Self = Self::new(1);
2513    }
2514    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2515    pub struct Did_SPEC;
2516    pub type Did = crate::EnumBitfieldStruct<u8, Did_SPEC>;
2517    impl Did {
2518        #[doc = "Device-ID command not detected"]
2519        pub const _0: Self = Self::new(0);
2520
2521        #[doc = "Device-ID command detected"]
2522        pub const _1: Self = Self::new(1);
2523    }
2524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2525    pub struct Hoa_SPEC;
2526    pub type Hoa = crate::EnumBitfieldStruct<u8, Hoa_SPEC>;
2527    impl Hoa {
2528        #[doc = "Host address not detected"]
2529        pub const _0: Self = Self::new(0);
2530
2531        #[doc = "Host address detected"]
2532        pub const _1: Self = Self::new(1);
2533    }
2534}
2535#[doc(hidden)]
2536#[derive(Copy, Clone, Eq, PartialEq)]
2537pub struct Icsr2_SPEC;
2538impl crate::sealed::RegSpec for Icsr2_SPEC {
2539    type DataType = u8;
2540}
2541
2542#[doc = "I2C Bus Status Register 2"]
2543pub type Icsr2 = crate::RegValueT<Icsr2_SPEC>;
2544
2545impl Icsr2 {
2546    #[doc = "Timeout Detection Flag"]
2547    #[inline(always)]
2548    pub fn tmof(
2549        self,
2550    ) -> crate::common::RegisterField<
2551        0,
2552        0x1,
2553        1,
2554        0,
2555        icsr2::Tmof,
2556        icsr2::Tmof,
2557        Icsr2_SPEC,
2558        crate::common::RW,
2559    > {
2560        crate::common::RegisterField::<
2561            0,
2562            0x1,
2563            1,
2564            0,
2565            icsr2::Tmof,
2566            icsr2::Tmof,
2567            Icsr2_SPEC,
2568            crate::common::RW,
2569        >::from_register(self, 0)
2570    }
2571
2572    #[doc = "Arbitration-Lost Flag"]
2573    #[inline(always)]
2574    pub fn al(
2575        self,
2576    ) -> crate::common::RegisterField<
2577        1,
2578        0x1,
2579        1,
2580        0,
2581        icsr2::Al,
2582        icsr2::Al,
2583        Icsr2_SPEC,
2584        crate::common::RW,
2585    > {
2586        crate::common::RegisterField::<
2587            1,
2588            0x1,
2589            1,
2590            0,
2591            icsr2::Al,
2592            icsr2::Al,
2593            Icsr2_SPEC,
2594            crate::common::RW,
2595        >::from_register(self, 0)
2596    }
2597
2598    #[doc = "Start Condition Detection Flag"]
2599    #[inline(always)]
2600    pub fn start(
2601        self,
2602    ) -> crate::common::RegisterField<
2603        2,
2604        0x1,
2605        1,
2606        0,
2607        icsr2::Start,
2608        icsr2::Start,
2609        Icsr2_SPEC,
2610        crate::common::RW,
2611    > {
2612        crate::common::RegisterField::<
2613            2,
2614            0x1,
2615            1,
2616            0,
2617            icsr2::Start,
2618            icsr2::Start,
2619            Icsr2_SPEC,
2620            crate::common::RW,
2621        >::from_register(self, 0)
2622    }
2623
2624    #[doc = "Stop Condition Detection Flag"]
2625    #[inline(always)]
2626    pub fn stop(
2627        self,
2628    ) -> crate::common::RegisterField<
2629        3,
2630        0x1,
2631        1,
2632        0,
2633        icsr2::Stop,
2634        icsr2::Stop,
2635        Icsr2_SPEC,
2636        crate::common::RW,
2637    > {
2638        crate::common::RegisterField::<
2639            3,
2640            0x1,
2641            1,
2642            0,
2643            icsr2::Stop,
2644            icsr2::Stop,
2645            Icsr2_SPEC,
2646            crate::common::RW,
2647        >::from_register(self, 0)
2648    }
2649
2650    #[doc = "NACK Detection Flag"]
2651    #[inline(always)]
2652    pub fn nackf(
2653        self,
2654    ) -> crate::common::RegisterField<
2655        4,
2656        0x1,
2657        1,
2658        0,
2659        icsr2::Nackf,
2660        icsr2::Nackf,
2661        Icsr2_SPEC,
2662        crate::common::RW,
2663    > {
2664        crate::common::RegisterField::<
2665            4,
2666            0x1,
2667            1,
2668            0,
2669            icsr2::Nackf,
2670            icsr2::Nackf,
2671            Icsr2_SPEC,
2672            crate::common::RW,
2673        >::from_register(self, 0)
2674    }
2675
2676    #[doc = "Receive Data Full Flag"]
2677    #[inline(always)]
2678    pub fn rdrf(
2679        self,
2680    ) -> crate::common::RegisterField<
2681        5,
2682        0x1,
2683        1,
2684        0,
2685        icsr2::Rdrf,
2686        icsr2::Rdrf,
2687        Icsr2_SPEC,
2688        crate::common::RW,
2689    > {
2690        crate::common::RegisterField::<
2691            5,
2692            0x1,
2693            1,
2694            0,
2695            icsr2::Rdrf,
2696            icsr2::Rdrf,
2697            Icsr2_SPEC,
2698            crate::common::RW,
2699        >::from_register(self, 0)
2700    }
2701
2702    #[doc = "Transmit End Flag"]
2703    #[inline(always)]
2704    pub fn tend(
2705        self,
2706    ) -> crate::common::RegisterField<
2707        6,
2708        0x1,
2709        1,
2710        0,
2711        icsr2::Tend,
2712        icsr2::Tend,
2713        Icsr2_SPEC,
2714        crate::common::RW,
2715    > {
2716        crate::common::RegisterField::<
2717            6,
2718            0x1,
2719            1,
2720            0,
2721            icsr2::Tend,
2722            icsr2::Tend,
2723            Icsr2_SPEC,
2724            crate::common::RW,
2725        >::from_register(self, 0)
2726    }
2727
2728    #[doc = "Transmit Data Empty Flag"]
2729    #[inline(always)]
2730    pub fn tdre(
2731        self,
2732    ) -> crate::common::RegisterField<
2733        7,
2734        0x1,
2735        1,
2736        0,
2737        icsr2::Tdre,
2738        icsr2::Tdre,
2739        Icsr2_SPEC,
2740        crate::common::R,
2741    > {
2742        crate::common::RegisterField::<
2743            7,
2744            0x1,
2745            1,
2746            0,
2747            icsr2::Tdre,
2748            icsr2::Tdre,
2749            Icsr2_SPEC,
2750            crate::common::R,
2751        >::from_register(self, 0)
2752    }
2753}
2754impl ::core::default::Default for Icsr2 {
2755    #[inline(always)]
2756    fn default() -> Icsr2 {
2757        <crate::RegValueT<Icsr2_SPEC> as RegisterValue<_>>::new(0)
2758    }
2759}
2760pub mod icsr2 {
2761
2762    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2763    pub struct Tmof_SPEC;
2764    pub type Tmof = crate::EnumBitfieldStruct<u8, Tmof_SPEC>;
2765    impl Tmof {
2766        #[doc = "Timeout not detected"]
2767        pub const _0: Self = Self::new(0);
2768
2769        #[doc = "Timeout detected"]
2770        pub const _1: Self = Self::new(1);
2771    }
2772    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2773    pub struct Al_SPEC;
2774    pub type Al = crate::EnumBitfieldStruct<u8, Al_SPEC>;
2775    impl Al {
2776        #[doc = "Arbitration not lost"]
2777        pub const _0: Self = Self::new(0);
2778
2779        #[doc = "Arbitration lost"]
2780        pub const _1: Self = Self::new(1);
2781    }
2782    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2783    pub struct Start_SPEC;
2784    pub type Start = crate::EnumBitfieldStruct<u8, Start_SPEC>;
2785    impl Start {
2786        #[doc = "Start condition not detected"]
2787        pub const _0: Self = Self::new(0);
2788
2789        #[doc = "Start condition detected"]
2790        pub const _1: Self = Self::new(1);
2791    }
2792    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2793    pub struct Stop_SPEC;
2794    pub type Stop = crate::EnumBitfieldStruct<u8, Stop_SPEC>;
2795    impl Stop {
2796        #[doc = "Stop condition not detected"]
2797        pub const _0: Self = Self::new(0);
2798
2799        #[doc = "Stop condition detected"]
2800        pub const _1: Self = Self::new(1);
2801    }
2802    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2803    pub struct Nackf_SPEC;
2804    pub type Nackf = crate::EnumBitfieldStruct<u8, Nackf_SPEC>;
2805    impl Nackf {
2806        #[doc = "NACK not detected"]
2807        pub const _0: Self = Self::new(0);
2808
2809        #[doc = "NACK detected"]
2810        pub const _1: Self = Self::new(1);
2811    }
2812    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2813    pub struct Rdrf_SPEC;
2814    pub type Rdrf = crate::EnumBitfieldStruct<u8, Rdrf_SPEC>;
2815    impl Rdrf {
2816        #[doc = "ICDRR contains no receive data"]
2817        pub const _0: Self = Self::new(0);
2818
2819        #[doc = "ICDRR contains receive data"]
2820        pub const _1: Self = Self::new(1);
2821    }
2822    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2823    pub struct Tend_SPEC;
2824    pub type Tend = crate::EnumBitfieldStruct<u8, Tend_SPEC>;
2825    impl Tend {
2826        #[doc = "Data being transmitted"]
2827        pub const _0: Self = Self::new(0);
2828
2829        #[doc = "Data transmit complete"]
2830        pub const _1: Self = Self::new(1);
2831    }
2832    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2833    pub struct Tdre_SPEC;
2834    pub type Tdre = crate::EnumBitfieldStruct<u8, Tdre_SPEC>;
2835    impl Tdre {
2836        #[doc = "ICDRT contains transmit data"]
2837        pub const _0: Self = Self::new(0);
2838
2839        #[doc = "ICDRT contains no transmit data"]
2840        pub const _1: Self = Self::new(1);
2841    }
2842}
2843#[doc(hidden)]
2844#[derive(Copy, Clone, Eq, PartialEq)]
2845pub struct Sarl_SPEC;
2846impl crate::sealed::RegSpec for Sarl_SPEC {
2847    type DataType = u8;
2848}
2849
2850#[doc = "Slave Address Register L %s"]
2851pub type Sarl = crate::RegValueT<Sarl_SPEC>;
2852
2853impl Sarl {
2854    #[doc = "10-bit Address LSB"]
2855    #[inline(always)]
2856    pub fn sva0(self) -> crate::common::RegisterFieldBool<0, 1, 0, Sarl_SPEC, crate::common::RW> {
2857        crate::common::RegisterFieldBool::<0, 1, 0, Sarl_SPEC, crate::common::RW>::from_register(
2858            self, 0,
2859        )
2860    }
2861
2862    #[doc = "7-bit Address/10-bit Address Lower Bits"]
2863    #[inline(always)]
2864    pub fn sva(
2865        self,
2866    ) -> crate::common::RegisterField<1, 0x7f, 1, 0, u8, u8, Sarl_SPEC, crate::common::RW> {
2867        crate::common::RegisterField::<1,0x7f,1,0,u8,u8,Sarl_SPEC,crate::common::RW>::from_register(self,0)
2868    }
2869}
2870impl ::core::default::Default for Sarl {
2871    #[inline(always)]
2872    fn default() -> Sarl {
2873        <crate::RegValueT<Sarl_SPEC> as RegisterValue<_>>::new(0)
2874    }
2875}
2876
2877#[doc(hidden)]
2878#[derive(Copy, Clone, Eq, PartialEq)]
2879pub struct Saru_SPEC;
2880impl crate::sealed::RegSpec for Saru_SPEC {
2881    type DataType = u8;
2882}
2883
2884#[doc = "Slave Address Register U %s"]
2885pub type Saru = crate::RegValueT<Saru_SPEC>;
2886
2887impl Saru {
2888    #[doc = "7-bit/10-bit Address Format Select"]
2889    #[inline(always)]
2890    pub fn fs(
2891        self,
2892    ) -> crate::common::RegisterField<0, 0x1, 1, 0, saru::Fs, saru::Fs, Saru_SPEC, crate::common::RW>
2893    {
2894        crate::common::RegisterField::<0,0x1,1,0,saru::Fs,saru::Fs,Saru_SPEC,crate::common::RW>::from_register(self,0)
2895    }
2896
2897    #[doc = "10-bit Address Upper Bits"]
2898    #[inline(always)]
2899    pub fn sva(
2900        self,
2901    ) -> crate::common::RegisterField<1, 0x3, 1, 0, u8, u8, Saru_SPEC, crate::common::RW> {
2902        crate::common::RegisterField::<1,0x3,1,0,u8,u8,Saru_SPEC,crate::common::RW>::from_register(self,0)
2903    }
2904}
2905impl ::core::default::Default for Saru {
2906    #[inline(always)]
2907    fn default() -> Saru {
2908        <crate::RegValueT<Saru_SPEC> as RegisterValue<_>>::new(0)
2909    }
2910}
2911pub mod saru {
2912
2913    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2914    pub struct Fs_SPEC;
2915    pub type Fs = crate::EnumBitfieldStruct<u8, Fs_SPEC>;
2916    impl Fs {
2917        #[doc = "Select 7-bit address format"]
2918        pub const _0: Self = Self::new(0);
2919
2920        #[doc = "Select 10-bit address format"]
2921        pub const _1: Self = Self::new(1);
2922    }
2923}
2924#[doc(hidden)]
2925#[derive(Copy, Clone, Eq, PartialEq)]
2926pub struct Icbrl_SPEC;
2927impl crate::sealed::RegSpec for Icbrl_SPEC {
2928    type DataType = u8;
2929}
2930
2931#[doc = "I2C Bus Bit Rate Low-Level Register"]
2932pub type Icbrl = crate::RegValueT<Icbrl_SPEC>;
2933
2934impl Icbrl {
2935    #[doc = "Bit Rate Low-Level Period"]
2936    #[inline(always)]
2937    pub fn brl(
2938        self,
2939    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, Icbrl_SPEC, crate::common::RW> {
2940        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,Icbrl_SPEC,crate::common::RW>::from_register(self,0)
2941    }
2942}
2943impl ::core::default::Default for Icbrl {
2944    #[inline(always)]
2945    fn default() -> Icbrl {
2946        <crate::RegValueT<Icbrl_SPEC> as RegisterValue<_>>::new(255)
2947    }
2948}
2949
2950#[doc(hidden)]
2951#[derive(Copy, Clone, Eq, PartialEq)]
2952pub struct Icbrh_SPEC;
2953impl crate::sealed::RegSpec for Icbrh_SPEC {
2954    type DataType = u8;
2955}
2956
2957#[doc = "I2C Bus Bit Rate High-Level Register"]
2958pub type Icbrh = crate::RegValueT<Icbrh_SPEC>;
2959
2960impl Icbrh {
2961    #[doc = "Bit Rate High-Level Period"]
2962    #[inline(always)]
2963    pub fn brh(
2964        self,
2965    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, Icbrh_SPEC, crate::common::RW> {
2966        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,Icbrh_SPEC,crate::common::RW>::from_register(self,0)
2967    }
2968}
2969impl ::core::default::Default for Icbrh {
2970    #[inline(always)]
2971    fn default() -> Icbrh {
2972        <crate::RegValueT<Icbrh_SPEC> as RegisterValue<_>>::new(255)
2973    }
2974}
2975
2976#[doc(hidden)]
2977#[derive(Copy, Clone, Eq, PartialEq)]
2978pub struct Icdrt_SPEC;
2979impl crate::sealed::RegSpec for Icdrt_SPEC {
2980    type DataType = u8;
2981}
2982
2983#[doc = "I2C Bus Transmit Data Register"]
2984pub type Icdrt = crate::RegValueT<Icdrt_SPEC>;
2985
2986impl NoBitfieldReg<Icdrt_SPEC> for Icdrt {}
2987impl ::core::default::Default for Icdrt {
2988    #[inline(always)]
2989    fn default() -> Icdrt {
2990        <crate::RegValueT<Icdrt_SPEC> as RegisterValue<_>>::new(255)
2991    }
2992}
2993
2994#[doc(hidden)]
2995#[derive(Copy, Clone, Eq, PartialEq)]
2996pub struct Icdrr_SPEC;
2997impl crate::sealed::RegSpec for Icdrr_SPEC {
2998    type DataType = u8;
2999}
3000
3001#[doc = "I2C Bus Receive Data Register"]
3002pub type Icdrr = crate::RegValueT<Icdrr_SPEC>;
3003
3004impl NoBitfieldReg<Icdrr_SPEC> for Icdrr {}
3005impl ::core::default::Default for Icdrr {
3006    #[inline(always)]
3007    fn default() -> Icdrr {
3008        <crate::RegValueT<Icdrr_SPEC> as RegisterValue<_>>::new(0)
3009    }
3010}