ra4e2_pac/
usbfs.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.30.00, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:48:35 +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"USB 2.0 Full-Speed Module"]
28unsafe impl ::core::marker::Send for super::Usbfs {}
29unsafe impl ::core::marker::Sync for super::Usbfs {}
30impl super::Usbfs {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "System Configuration Control Register"]
38    #[inline(always)]
39    pub const fn syscfg(
40        &self,
41    ) -> &'static crate::common::Reg<self::Syscfg_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::Syscfg_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(0usize),
45            )
46        }
47    }
48
49    #[doc = "System Configuration Status Register 0"]
50    #[inline(always)]
51    pub const fn syssts0(
52        &self,
53    ) -> &'static crate::common::Reg<self::Syssts0_SPEC, crate::common::R> {
54        unsafe {
55            crate::common::Reg::<self::Syssts0_SPEC, crate::common::R>::from_ptr(
56                self._svd2pac_as_ptr().add(4usize),
57            )
58        }
59    }
60
61    #[doc = "Device State Control Register 0"]
62    #[inline(always)]
63    pub const fn dvstctr0(
64        &self,
65    ) -> &'static crate::common::Reg<self::Dvstctr0_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::Dvstctr0_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(8usize),
69            )
70        }
71    }
72
73    #[doc = "CFIFO Port Register"]
74    #[inline(always)]
75    pub const fn cfifo(&self) -> &'static crate::common::Reg<self::Cfifo_SPEC, crate::common::RW> {
76        unsafe {
77            crate::common::Reg::<self::Cfifo_SPEC, crate::common::RW>::from_ptr(
78                self._svd2pac_as_ptr().add(20usize),
79            )
80        }
81    }
82
83    #[doc = "CFIFO Port Register"]
84    #[inline(always)]
85    pub const fn cfifol(
86        &self,
87    ) -> &'static crate::common::Reg<self::Cfifol_SPEC, crate::common::RW> {
88        unsafe {
89            crate::common::Reg::<self::Cfifol_SPEC, crate::common::RW>::from_ptr(
90                self._svd2pac_as_ptr().add(20usize),
91            )
92        }
93    }
94
95    #[doc = "CFIFO Port Select Register"]
96    #[inline(always)]
97    pub const fn cfifosel(
98        &self,
99    ) -> &'static crate::common::Reg<self::Cfifosel_SPEC, crate::common::RW> {
100        unsafe {
101            crate::common::Reg::<self::Cfifosel_SPEC, crate::common::RW>::from_ptr(
102                self._svd2pac_as_ptr().add(32usize),
103            )
104        }
105    }
106
107    #[doc = "CFIFO Port Control Register"]
108    #[inline(always)]
109    pub const fn cfifoctr(
110        &self,
111    ) -> &'static crate::common::Reg<self::Cfifoctr_SPEC, crate::common::RW> {
112        unsafe {
113            crate::common::Reg::<self::Cfifoctr_SPEC, crate::common::RW>::from_ptr(
114                self._svd2pac_as_ptr().add(34usize),
115            )
116        }
117    }
118
119    #[doc = "Interrupt Enable Register 0"]
120    #[inline(always)]
121    pub const fn intenb0(
122        &self,
123    ) -> &'static crate::common::Reg<self::Intenb0_SPEC, crate::common::RW> {
124        unsafe {
125            crate::common::Reg::<self::Intenb0_SPEC, crate::common::RW>::from_ptr(
126                self._svd2pac_as_ptr().add(48usize),
127            )
128        }
129    }
130
131    #[doc = "BRDY Interrupt Enable Register"]
132    #[inline(always)]
133    pub const fn brdyenb(
134        &self,
135    ) -> &'static crate::common::Reg<self::Brdyenb_SPEC, crate::common::RW> {
136        unsafe {
137            crate::common::Reg::<self::Brdyenb_SPEC, crate::common::RW>::from_ptr(
138                self._svd2pac_as_ptr().add(54usize),
139            )
140        }
141    }
142
143    #[doc = "NRDY Interrupt Enable Register"]
144    #[inline(always)]
145    pub const fn nrdyenb(
146        &self,
147    ) -> &'static crate::common::Reg<self::Nrdyenb_SPEC, crate::common::RW> {
148        unsafe {
149            crate::common::Reg::<self::Nrdyenb_SPEC, crate::common::RW>::from_ptr(
150                self._svd2pac_as_ptr().add(56usize),
151            )
152        }
153    }
154
155    #[doc = "BEMP Interrupt Enable Register"]
156    #[inline(always)]
157    pub const fn bempenb(
158        &self,
159    ) -> &'static crate::common::Reg<self::Bempenb_SPEC, crate::common::RW> {
160        unsafe {
161            crate::common::Reg::<self::Bempenb_SPEC, crate::common::RW>::from_ptr(
162                self._svd2pac_as_ptr().add(58usize),
163            )
164        }
165    }
166
167    #[doc = "SOF Output Configuration Register"]
168    #[inline(always)]
169    pub const fn sofcfg(
170        &self,
171    ) -> &'static crate::common::Reg<self::Sofcfg_SPEC, crate::common::RW> {
172        unsafe {
173            crate::common::Reg::<self::Sofcfg_SPEC, crate::common::RW>::from_ptr(
174                self._svd2pac_as_ptr().add(60usize),
175            )
176        }
177    }
178
179    #[doc = "Interrupt Status Register 0"]
180    #[inline(always)]
181    pub const fn intsts0(
182        &self,
183    ) -> &'static crate::common::Reg<self::Intsts0_SPEC, crate::common::RW> {
184        unsafe {
185            crate::common::Reg::<self::Intsts0_SPEC, crate::common::RW>::from_ptr(
186                self._svd2pac_as_ptr().add(64usize),
187            )
188        }
189    }
190
191    #[doc = "BRDY Interrupt Status Register"]
192    #[inline(always)]
193    pub const fn brdysts(
194        &self,
195    ) -> &'static crate::common::Reg<self::Brdysts_SPEC, crate::common::RW> {
196        unsafe {
197            crate::common::Reg::<self::Brdysts_SPEC, crate::common::RW>::from_ptr(
198                self._svd2pac_as_ptr().add(70usize),
199            )
200        }
201    }
202
203    #[doc = "NRDY Interrupt Status Register"]
204    #[inline(always)]
205    pub const fn nrdysts(
206        &self,
207    ) -> &'static crate::common::Reg<self::Nrdysts_SPEC, crate::common::RW> {
208        unsafe {
209            crate::common::Reg::<self::Nrdysts_SPEC, crate::common::RW>::from_ptr(
210                self._svd2pac_as_ptr().add(72usize),
211            )
212        }
213    }
214
215    #[doc = "BEMP Interrupt Status Register"]
216    #[inline(always)]
217    pub const fn bempsts(
218        &self,
219    ) -> &'static crate::common::Reg<self::Bempsts_SPEC, crate::common::RW> {
220        unsafe {
221            crate::common::Reg::<self::Bempsts_SPEC, crate::common::RW>::from_ptr(
222                self._svd2pac_as_ptr().add(74usize),
223            )
224        }
225    }
226
227    #[doc = "Frame Number Register"]
228    #[inline(always)]
229    pub const fn frmnum(&self) -> &'static crate::common::Reg<self::Frmnum_SPEC, crate::common::R> {
230        unsafe {
231            crate::common::Reg::<self::Frmnum_SPEC, crate::common::R>::from_ptr(
232                self._svd2pac_as_ptr().add(76usize),
233            )
234        }
235    }
236
237    #[doc = "Device State Change Register"]
238    #[inline(always)]
239    pub const fn dvchgr(
240        &self,
241    ) -> &'static crate::common::Reg<self::Dvchgr_SPEC, crate::common::RW> {
242        unsafe {
243            crate::common::Reg::<self::Dvchgr_SPEC, crate::common::RW>::from_ptr(
244                self._svd2pac_as_ptr().add(78usize),
245            )
246        }
247    }
248
249    #[doc = "USB Address Register"]
250    #[inline(always)]
251    pub const fn usbaddr(
252        &self,
253    ) -> &'static crate::common::Reg<self::Usbaddr_SPEC, crate::common::RW> {
254        unsafe {
255            crate::common::Reg::<self::Usbaddr_SPEC, crate::common::RW>::from_ptr(
256                self._svd2pac_as_ptr().add(80usize),
257            )
258        }
259    }
260
261    #[doc = "USB Request Type Register"]
262    #[inline(always)]
263    pub const fn usbreq(&self) -> &'static crate::common::Reg<self::Usbreq_SPEC, crate::common::R> {
264        unsafe {
265            crate::common::Reg::<self::Usbreq_SPEC, crate::common::R>::from_ptr(
266                self._svd2pac_as_ptr().add(84usize),
267            )
268        }
269    }
270
271    #[doc = "USB Request Value Register"]
272    #[inline(always)]
273    pub const fn usbval(&self) -> &'static crate::common::Reg<self::Usbval_SPEC, crate::common::R> {
274        unsafe {
275            crate::common::Reg::<self::Usbval_SPEC, crate::common::R>::from_ptr(
276                self._svd2pac_as_ptr().add(86usize),
277            )
278        }
279    }
280
281    #[doc = "USB Request Index Register"]
282    #[inline(always)]
283    pub const fn usbindx(
284        &self,
285    ) -> &'static crate::common::Reg<self::Usbindx_SPEC, crate::common::R> {
286        unsafe {
287            crate::common::Reg::<self::Usbindx_SPEC, crate::common::R>::from_ptr(
288                self._svd2pac_as_ptr().add(88usize),
289            )
290        }
291    }
292
293    #[doc = "USB Request Length Register"]
294    #[inline(always)]
295    pub const fn usbleng(
296        &self,
297    ) -> &'static crate::common::Reg<self::Usbleng_SPEC, crate::common::R> {
298        unsafe {
299            crate::common::Reg::<self::Usbleng_SPEC, crate::common::R>::from_ptr(
300                self._svd2pac_as_ptr().add(90usize),
301            )
302        }
303    }
304
305    #[doc = "DCP Configuration Register"]
306    #[inline(always)]
307    pub const fn dcpcfg(
308        &self,
309    ) -> &'static crate::common::Reg<self::Dcpcfg_SPEC, crate::common::RW> {
310        unsafe {
311            crate::common::Reg::<self::Dcpcfg_SPEC, crate::common::RW>::from_ptr(
312                self._svd2pac_as_ptr().add(92usize),
313            )
314        }
315    }
316
317    #[doc = "DCP Maximum Packet Size Register"]
318    #[inline(always)]
319    pub const fn dcpmaxp(
320        &self,
321    ) -> &'static crate::common::Reg<self::Dcpmaxp_SPEC, crate::common::RW> {
322        unsafe {
323            crate::common::Reg::<self::Dcpmaxp_SPEC, crate::common::RW>::from_ptr(
324                self._svd2pac_as_ptr().add(94usize),
325            )
326        }
327    }
328
329    #[doc = "DCP Control Register"]
330    #[inline(always)]
331    pub const fn dcpctr(
332        &self,
333    ) -> &'static crate::common::Reg<self::Dcpctr_SPEC, crate::common::RW> {
334        unsafe {
335            crate::common::Reg::<self::Dcpctr_SPEC, crate::common::RW>::from_ptr(
336                self._svd2pac_as_ptr().add(96usize),
337            )
338        }
339    }
340
341    #[doc = "Pipe Window Select Register"]
342    #[inline(always)]
343    pub const fn pipesel(
344        &self,
345    ) -> &'static crate::common::Reg<self::Pipesel_SPEC, crate::common::RW> {
346        unsafe {
347            crate::common::Reg::<self::Pipesel_SPEC, crate::common::RW>::from_ptr(
348                self._svd2pac_as_ptr().add(100usize),
349            )
350        }
351    }
352
353    #[doc = "Pipe Configuration Register"]
354    #[inline(always)]
355    pub const fn pipecfg(
356        &self,
357    ) -> &'static crate::common::Reg<self::Pipecfg_SPEC, crate::common::RW> {
358        unsafe {
359            crate::common::Reg::<self::Pipecfg_SPEC, crate::common::RW>::from_ptr(
360                self._svd2pac_as_ptr().add(104usize),
361            )
362        }
363    }
364
365    #[doc = "Pipe Maximum Packet Size Register"]
366    #[inline(always)]
367    pub const fn pipemaxp(
368        &self,
369    ) -> &'static crate::common::Reg<self::Pipemaxp_SPEC, crate::common::RW> {
370        unsafe {
371            crate::common::Reg::<self::Pipemaxp_SPEC, crate::common::RW>::from_ptr(
372                self._svd2pac_as_ptr().add(108usize),
373            )
374        }
375    }
376
377    #[doc = "PIPE%s Control Registers"]
378    #[inline(always)]
379    pub const fn pipectr(
380        &self,
381    ) -> &'static crate::common::ClusterRegisterArray<
382        crate::common::Reg<self::Pipectr_SPEC, crate::common::RW>,
383        2,
384        0x2,
385    > {
386        unsafe {
387            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x7ausize))
388        }
389    }
390    #[inline(always)]
391    pub const fn pipe6ctr(
392        &self,
393    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
394        unsafe {
395            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
396                self._svd2pac_as_ptr().add(0x7ausize),
397            )
398        }
399    }
400    #[inline(always)]
401    pub const fn pipe7ctr(
402        &self,
403    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
404        unsafe {
405            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
406                self._svd2pac_as_ptr().add(0x7cusize),
407            )
408        }
409    }
410
411    #[doc = "PIPE%s Transaction Counter Enable Register"]
412    #[inline(always)]
413    pub const fn pipetre(
414        &self,
415    ) -> &'static crate::common::ClusterRegisterArray<
416        crate::common::Reg<self::Pipetre_SPEC, crate::common::RW>,
417        2,
418        0x4,
419    > {
420        unsafe {
421            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x9cusize))
422        }
423    }
424    #[inline(always)]
425    pub const fn pipe4tre(
426        &self,
427    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
428        unsafe {
429            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
430                self._svd2pac_as_ptr().add(0x9cusize),
431            )
432        }
433    }
434    #[inline(always)]
435    pub const fn pipe5tre(
436        &self,
437    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
438        unsafe {
439            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
440                self._svd2pac_as_ptr().add(0xa0usize),
441            )
442        }
443    }
444
445    #[doc = "PIPE%s Transaction Counter Register"]
446    #[inline(always)]
447    pub const fn pipetrn(
448        &self,
449    ) -> &'static crate::common::ClusterRegisterArray<
450        crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW>,
451        2,
452        0x4,
453    > {
454        unsafe {
455            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x9eusize))
456        }
457    }
458    #[inline(always)]
459    pub const fn pipe4trn(
460        &self,
461    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
462        unsafe {
463            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
464                self._svd2pac_as_ptr().add(0x9eusize),
465            )
466        }
467    }
468    #[inline(always)]
469    pub const fn pipe5trn(
470        &self,
471    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
472        unsafe {
473            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
474                self._svd2pac_as_ptr().add(0xa2usize),
475            )
476        }
477    }
478
479    #[doc = "PHY Single-ended Receiver Control Register"]
480    #[inline(always)]
481    pub const fn physectrl(
482        &self,
483    ) -> &'static crate::common::Reg<self::Physectrl_SPEC, crate::common::RW> {
484        unsafe {
485            crate::common::Reg::<self::Physectrl_SPEC, crate::common::RW>::from_ptr(
486                self._svd2pac_as_ptr().add(244usize),
487            )
488        }
489    }
490
491    #[doc = "Deep Software Standby USB Transceiver Control/Pin Monitor Register"]
492    #[inline(always)]
493    pub const fn dpusr0r(
494        &self,
495    ) -> &'static crate::common::Reg<self::Dpusr0R_SPEC, crate::common::RW> {
496        unsafe {
497            crate::common::Reg::<self::Dpusr0R_SPEC, crate::common::RW>::from_ptr(
498                self._svd2pac_as_ptr().add(1024usize),
499            )
500        }
501    }
502
503    #[doc = "Deep Software Standby USB Suspend/Resume Interrupt Register"]
504    #[inline(always)]
505    pub const fn dpusr1r(
506        &self,
507    ) -> &'static crate::common::Reg<self::Dpusr1R_SPEC, crate::common::RW> {
508        unsafe {
509            crate::common::Reg::<self::Dpusr1R_SPEC, crate::common::RW>::from_ptr(
510                self._svd2pac_as_ptr().add(1028usize),
511            )
512        }
513    }
514}
515#[doc(hidden)]
516#[derive(Copy, Clone, Eq, PartialEq)]
517pub struct Syscfg_SPEC;
518impl crate::sealed::RegSpec for Syscfg_SPEC {
519    type DataType = u16;
520}
521
522#[doc = "System Configuration Control Register"]
523pub type Syscfg = crate::RegValueT<Syscfg_SPEC>;
524
525impl Syscfg {
526    #[doc = "USBFS Operation Enable"]
527    #[inline(always)]
528    pub fn usbe(
529        self,
530    ) -> crate::common::RegisterField<
531        0,
532        0x1,
533        1,
534        0,
535        syscfg::Usbe,
536        syscfg::Usbe,
537        Syscfg_SPEC,
538        crate::common::RW,
539    > {
540        crate::common::RegisterField::<
541            0,
542            0x1,
543            1,
544            0,
545            syscfg::Usbe,
546            syscfg::Usbe,
547            Syscfg_SPEC,
548            crate::common::RW,
549        >::from_register(self, 0)
550    }
551
552    #[doc = "D+ Line Resistor Control"]
553    #[inline(always)]
554    pub fn dprpu(
555        self,
556    ) -> crate::common::RegisterField<
557        4,
558        0x1,
559        1,
560        0,
561        syscfg::Dprpu,
562        syscfg::Dprpu,
563        Syscfg_SPEC,
564        crate::common::RW,
565    > {
566        crate::common::RegisterField::<
567            4,
568            0x1,
569            1,
570            0,
571            syscfg::Dprpu,
572            syscfg::Dprpu,
573            Syscfg_SPEC,
574            crate::common::RW,
575        >::from_register(self, 0)
576    }
577
578    #[doc = "USB Clock Enable"]
579    #[inline(always)]
580    pub fn scke(
581        self,
582    ) -> crate::common::RegisterField<
583        10,
584        0x1,
585        1,
586        0,
587        syscfg::Scke,
588        syscfg::Scke,
589        Syscfg_SPEC,
590        crate::common::RW,
591    > {
592        crate::common::RegisterField::<
593            10,
594            0x1,
595            1,
596            0,
597            syscfg::Scke,
598            syscfg::Scke,
599            Syscfg_SPEC,
600            crate::common::RW,
601        >::from_register(self, 0)
602    }
603}
604impl ::core::default::Default for Syscfg {
605    #[inline(always)]
606    fn default() -> Syscfg {
607        <crate::RegValueT<Syscfg_SPEC> as RegisterValue<_>>::new(0)
608    }
609}
610pub mod syscfg {
611
612    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
613    pub struct Usbe_SPEC;
614    pub type Usbe = crate::EnumBitfieldStruct<u8, Usbe_SPEC>;
615    impl Usbe {
616        #[doc = "Disable"]
617        pub const _0: Self = Self::new(0);
618
619        #[doc = "Enable"]
620        pub const _1: Self = Self::new(1);
621    }
622    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
623    pub struct Dprpu_SPEC;
624    pub type Dprpu = crate::EnumBitfieldStruct<u8, Dprpu_SPEC>;
625    impl Dprpu {
626        #[doc = "Disable line pull-up"]
627        pub const _0: Self = Self::new(0);
628
629        #[doc = "Enable line pull-up"]
630        pub const _1: Self = Self::new(1);
631    }
632    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
633    pub struct Scke_SPEC;
634    pub type Scke = crate::EnumBitfieldStruct<u8, Scke_SPEC>;
635    impl Scke {
636        #[doc = "Stop clock supply to the USBFS"]
637        pub const _0: Self = Self::new(0);
638
639        #[doc = "Enable clock supply to the USBFS"]
640        pub const _1: Self = Self::new(1);
641    }
642}
643#[doc(hidden)]
644#[derive(Copy, Clone, Eq, PartialEq)]
645pub struct Syssts0_SPEC;
646impl crate::sealed::RegSpec for Syssts0_SPEC {
647    type DataType = u16;
648}
649
650#[doc = "System Configuration Status Register 0"]
651pub type Syssts0 = crate::RegValueT<Syssts0_SPEC>;
652
653impl Syssts0 {
654    #[doc = "USB Data Line Status Monitor"]
655    #[inline(always)]
656    pub fn lnst(
657        self,
658    ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, Syssts0_SPEC, crate::common::R> {
659        crate::common::RegisterField::<0,0x3,1,0,u8,u8,Syssts0_SPEC,crate::common::R>::from_register(self,0)
660    }
661}
662impl ::core::default::Default for Syssts0 {
663    #[inline(always)]
664    fn default() -> Syssts0 {
665        <crate::RegValueT<Syssts0_SPEC> as RegisterValue<_>>::new(0)
666    }
667}
668
669#[doc(hidden)]
670#[derive(Copy, Clone, Eq, PartialEq)]
671pub struct Dvstctr0_SPEC;
672impl crate::sealed::RegSpec for Dvstctr0_SPEC {
673    type DataType = u16;
674}
675
676#[doc = "Device State Control Register 0"]
677pub type Dvstctr0 = crate::RegValueT<Dvstctr0_SPEC>;
678
679impl Dvstctr0 {
680    #[doc = "USB Bus Reset Status"]
681    #[inline(always)]
682    pub fn rhst(
683        self,
684    ) -> crate::common::RegisterField<
685        0,
686        0x7,
687        1,
688        0,
689        dvstctr0::Rhst,
690        dvstctr0::Rhst,
691        Dvstctr0_SPEC,
692        crate::common::R,
693    > {
694        crate::common::RegisterField::<
695            0,
696            0x7,
697            1,
698            0,
699            dvstctr0::Rhst,
700            dvstctr0::Rhst,
701            Dvstctr0_SPEC,
702            crate::common::R,
703        >::from_register(self, 0)
704    }
705
706    #[doc = "Wakeup Output"]
707    #[inline(always)]
708    pub fn wkup(
709        self,
710    ) -> crate::common::RegisterField<
711        8,
712        0x1,
713        1,
714        0,
715        dvstctr0::Wkup,
716        dvstctr0::Wkup,
717        Dvstctr0_SPEC,
718        crate::common::RW,
719    > {
720        crate::common::RegisterField::<
721            8,
722            0x1,
723            1,
724            0,
725            dvstctr0::Wkup,
726            dvstctr0::Wkup,
727            Dvstctr0_SPEC,
728            crate::common::RW,
729        >::from_register(self, 0)
730    }
731}
732impl ::core::default::Default for Dvstctr0 {
733    #[inline(always)]
734    fn default() -> Dvstctr0 {
735        <crate::RegValueT<Dvstctr0_SPEC> as RegisterValue<_>>::new(0)
736    }
737}
738pub mod dvstctr0 {
739
740    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
741    pub struct Rhst_SPEC;
742    pub type Rhst = crate::EnumBitfieldStruct<u8, Rhst_SPEC>;
743    impl Rhst {
744        #[doc = "Communication speed indeterminate"]
745        pub const _000: Self = Self::new(0);
746
747        #[doc = "USB bus reset in progress"]
748        pub const _001: Self = Self::new(1);
749
750        #[doc = "USB bus reset in progress or full-speed connection"]
751        pub const _010: Self = Self::new(2);
752
753        #[doc = "Setting prohibited"]
754        pub const OTHERS: Self = Self::new(0);
755    }
756    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
757    pub struct Wkup_SPEC;
758    pub type Wkup = crate::EnumBitfieldStruct<u8, Wkup_SPEC>;
759    impl Wkup {
760        #[doc = "Do not output remote wakeup signal"]
761        pub const _0: Self = Self::new(0);
762
763        #[doc = "Output remote wakeup signal"]
764        pub const _1: Self = Self::new(1);
765    }
766}
767#[doc(hidden)]
768#[derive(Copy, Clone, Eq, PartialEq)]
769pub struct Cfifo_SPEC;
770impl crate::sealed::RegSpec for Cfifo_SPEC {
771    type DataType = u16;
772}
773
774#[doc = "CFIFO Port Register"]
775pub type Cfifo = crate::RegValueT<Cfifo_SPEC>;
776
777impl Cfifo {
778    #[doc = "FIFO Port"]
779    #[inline(always)]
780    pub fn fifoport(
781        self,
782    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Cfifo_SPEC, crate::common::RW>
783    {
784        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Cfifo_SPEC,crate::common::RW>::from_register(self,0)
785    }
786}
787impl ::core::default::Default for Cfifo {
788    #[inline(always)]
789    fn default() -> Cfifo {
790        <crate::RegValueT<Cfifo_SPEC> as RegisterValue<_>>::new(0)
791    }
792}
793
794#[doc(hidden)]
795#[derive(Copy, Clone, Eq, PartialEq)]
796pub struct Cfifol_SPEC;
797impl crate::sealed::RegSpec for Cfifol_SPEC {
798    type DataType = u8;
799}
800
801#[doc = "CFIFO Port Register"]
802pub type Cfifol = crate::RegValueT<Cfifol_SPEC>;
803
804impl Cfifol {
805    #[doc = "FIFO Port"]
806    #[inline(always)]
807    pub fn fifoport(
808        self,
809    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Cfifol_SPEC, crate::common::RW> {
810        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Cfifol_SPEC,crate::common::RW>::from_register(self,0)
811    }
812}
813impl ::core::default::Default for Cfifol {
814    #[inline(always)]
815    fn default() -> Cfifol {
816        <crate::RegValueT<Cfifol_SPEC> as RegisterValue<_>>::new(0)
817    }
818}
819
820#[doc(hidden)]
821#[derive(Copy, Clone, Eq, PartialEq)]
822pub struct Cfifosel_SPEC;
823impl crate::sealed::RegSpec for Cfifosel_SPEC {
824    type DataType = u16;
825}
826
827#[doc = "CFIFO Port Select Register"]
828pub type Cfifosel = crate::RegValueT<Cfifosel_SPEC>;
829
830impl Cfifosel {
831    #[doc = "CFIFO Port Access Pipe Specification"]
832    #[inline(always)]
833    pub fn curpipe(
834        self,
835    ) -> crate::common::RegisterField<
836        0,
837        0xf,
838        1,
839        0,
840        cfifosel::Curpipe,
841        cfifosel::Curpipe,
842        Cfifosel_SPEC,
843        crate::common::RW,
844    > {
845        crate::common::RegisterField::<
846            0,
847            0xf,
848            1,
849            0,
850            cfifosel::Curpipe,
851            cfifosel::Curpipe,
852            Cfifosel_SPEC,
853            crate::common::RW,
854        >::from_register(self, 0)
855    }
856
857    #[doc = "CFIFO Port Access Direction When DCP Is Selected"]
858    #[inline(always)]
859    pub fn isel(
860        self,
861    ) -> crate::common::RegisterField<
862        5,
863        0x1,
864        1,
865        0,
866        cfifosel::Isel,
867        cfifosel::Isel,
868        Cfifosel_SPEC,
869        crate::common::RW,
870    > {
871        crate::common::RegisterField::<
872            5,
873            0x1,
874            1,
875            0,
876            cfifosel::Isel,
877            cfifosel::Isel,
878            Cfifosel_SPEC,
879            crate::common::RW,
880        >::from_register(self, 0)
881    }
882
883    #[doc = "CFIFO Port Endian Control"]
884    #[inline(always)]
885    pub fn bigend(
886        self,
887    ) -> crate::common::RegisterField<
888        8,
889        0x1,
890        1,
891        0,
892        cfifosel::Bigend,
893        cfifosel::Bigend,
894        Cfifosel_SPEC,
895        crate::common::RW,
896    > {
897        crate::common::RegisterField::<
898            8,
899            0x1,
900            1,
901            0,
902            cfifosel::Bigend,
903            cfifosel::Bigend,
904            Cfifosel_SPEC,
905            crate::common::RW,
906        >::from_register(self, 0)
907    }
908
909    #[doc = "CFIFO Port Access Bit Width"]
910    #[inline(always)]
911    pub fn mbw(
912        self,
913    ) -> crate::common::RegisterField<
914        10,
915        0x1,
916        1,
917        0,
918        cfifosel::Mbw,
919        cfifosel::Mbw,
920        Cfifosel_SPEC,
921        crate::common::RW,
922    > {
923        crate::common::RegisterField::<
924            10,
925            0x1,
926            1,
927            0,
928            cfifosel::Mbw,
929            cfifosel::Mbw,
930            Cfifosel_SPEC,
931            crate::common::RW,
932        >::from_register(self, 0)
933    }
934
935    #[doc = "Buffer Pointer Rewind"]
936    #[inline(always)]
937    pub fn rew(
938        self,
939    ) -> crate::common::RegisterField<
940        14,
941        0x1,
942        1,
943        0,
944        cfifosel::Rew,
945        cfifosel::Rew,
946        Cfifosel_SPEC,
947        crate::common::W,
948    > {
949        crate::common::RegisterField::<
950            14,
951            0x1,
952            1,
953            0,
954            cfifosel::Rew,
955            cfifosel::Rew,
956            Cfifosel_SPEC,
957            crate::common::W,
958        >::from_register(self, 0)
959    }
960
961    #[doc = "Read Count Mode"]
962    #[inline(always)]
963    pub fn rcnt(
964        self,
965    ) -> crate::common::RegisterField<
966        15,
967        0x1,
968        1,
969        0,
970        cfifosel::Rcnt,
971        cfifosel::Rcnt,
972        Cfifosel_SPEC,
973        crate::common::RW,
974    > {
975        crate::common::RegisterField::<
976            15,
977            0x1,
978            1,
979            0,
980            cfifosel::Rcnt,
981            cfifosel::Rcnt,
982            Cfifosel_SPEC,
983            crate::common::RW,
984        >::from_register(self, 0)
985    }
986}
987impl ::core::default::Default for Cfifosel {
988    #[inline(always)]
989    fn default() -> Cfifosel {
990        <crate::RegValueT<Cfifosel_SPEC> as RegisterValue<_>>::new(0)
991    }
992}
993pub mod cfifosel {
994
995    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
996    pub struct Curpipe_SPEC;
997    pub type Curpipe = crate::EnumBitfieldStruct<u8, Curpipe_SPEC>;
998    impl Curpipe {
999        #[doc = "Default Control Pipe"]
1000        pub const _0_X_0: Self = Self::new(0);
1001
1002        #[doc = "Pipe 4"]
1003        pub const _0_X_4: Self = Self::new(4);
1004
1005        #[doc = "Pipe 5"]
1006        pub const _0_X_5: Self = Self::new(5);
1007
1008        #[doc = "Pipe 6"]
1009        pub const _0_X_6: Self = Self::new(6);
1010
1011        #[doc = "Pipe 7"]
1012        pub const _0_X_7: Self = Self::new(7);
1013
1014        #[doc = "Setting prohibited"]
1015        pub const OTHERS: Self = Self::new(0);
1016    }
1017    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1018    pub struct Isel_SPEC;
1019    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
1020    impl Isel {
1021        #[doc = "Select reading from the FIFO buffer"]
1022        pub const _0: Self = Self::new(0);
1023
1024        #[doc = "Select writing to the FIFO buffer"]
1025        pub const _1: Self = Self::new(1);
1026    }
1027    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1028    pub struct Bigend_SPEC;
1029    pub type Bigend = crate::EnumBitfieldStruct<u8, Bigend_SPEC>;
1030    impl Bigend {
1031        #[doc = "Little endian"]
1032        pub const _0: Self = Self::new(0);
1033
1034        #[doc = "Big endian"]
1035        pub const _1: Self = Self::new(1);
1036    }
1037    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1038    pub struct Mbw_SPEC;
1039    pub type Mbw = crate::EnumBitfieldStruct<u8, Mbw_SPEC>;
1040    impl Mbw {
1041        #[doc = "8-bit width"]
1042        pub const _0: Self = Self::new(0);
1043
1044        #[doc = "16-bit width"]
1045        pub const _1: Self = Self::new(1);
1046    }
1047    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1048    pub struct Rew_SPEC;
1049    pub type Rew = crate::EnumBitfieldStruct<u8, Rew_SPEC>;
1050    impl Rew {
1051        #[doc = "Do not rewind buffer pointer"]
1052        pub const _0: Self = Self::new(0);
1053
1054        #[doc = "Rewind buffer pointer"]
1055        pub const _1: Self = Self::new(1);
1056    }
1057    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1058    pub struct Rcnt_SPEC;
1059    pub type Rcnt = crate::EnumBitfieldStruct<u8, Rcnt_SPEC>;
1060    impl Rcnt {
1061        #[doc = "The DTLN\\[8:0\\] bits (CFIFOCTR.DTLN\\[8:0\\]) are cleared when all receive data is read from the CFIFO. In double buffer mode, the DTLN\\[8:0\\] value is cleared when all data is read from only a single plane."]
1062        pub const _0: Self = Self::new(0);
1063
1064        #[doc = "The DTLN\\[8:0\\] bits are decremented each time the receive data is read from the CFIFO."]
1065        pub const _1: Self = Self::new(1);
1066    }
1067}
1068#[doc(hidden)]
1069#[derive(Copy, Clone, Eq, PartialEq)]
1070pub struct Cfifoctr_SPEC;
1071impl crate::sealed::RegSpec for Cfifoctr_SPEC {
1072    type DataType = u16;
1073}
1074
1075#[doc = "CFIFO Port Control Register"]
1076pub type Cfifoctr = crate::RegValueT<Cfifoctr_SPEC>;
1077
1078impl Cfifoctr {
1079    #[doc = "Receive Data Length"]
1080    #[inline(always)]
1081    pub fn dtln(
1082        self,
1083    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Cfifoctr_SPEC, crate::common::R>
1084    {
1085        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Cfifoctr_SPEC,crate::common::R>::from_register(self,0)
1086    }
1087
1088    #[doc = "FIFO Port Ready"]
1089    #[inline(always)]
1090    pub fn frdy(
1091        self,
1092    ) -> crate::common::RegisterField<
1093        13,
1094        0x1,
1095        1,
1096        0,
1097        cfifoctr::Frdy,
1098        cfifoctr::Frdy,
1099        Cfifoctr_SPEC,
1100        crate::common::R,
1101    > {
1102        crate::common::RegisterField::<
1103            13,
1104            0x1,
1105            1,
1106            0,
1107            cfifoctr::Frdy,
1108            cfifoctr::Frdy,
1109            Cfifoctr_SPEC,
1110            crate::common::R,
1111        >::from_register(self, 0)
1112    }
1113
1114    #[doc = "CPU Buffer Clear"]
1115    #[inline(always)]
1116    pub fn bclr(
1117        self,
1118    ) -> crate::common::RegisterField<
1119        14,
1120        0x1,
1121        1,
1122        0,
1123        cfifoctr::Bclr,
1124        cfifoctr::Bclr,
1125        Cfifoctr_SPEC,
1126        crate::common::W,
1127    > {
1128        crate::common::RegisterField::<
1129            14,
1130            0x1,
1131            1,
1132            0,
1133            cfifoctr::Bclr,
1134            cfifoctr::Bclr,
1135            Cfifoctr_SPEC,
1136            crate::common::W,
1137        >::from_register(self, 0)
1138    }
1139
1140    #[doc = "Buffer Memory Valid Flag"]
1141    #[inline(always)]
1142    pub fn bval(
1143        self,
1144    ) -> crate::common::RegisterField<
1145        15,
1146        0x1,
1147        1,
1148        0,
1149        cfifoctr::Bval,
1150        cfifoctr::Bval,
1151        Cfifoctr_SPEC,
1152        crate::common::RW,
1153    > {
1154        crate::common::RegisterField::<
1155            15,
1156            0x1,
1157            1,
1158            0,
1159            cfifoctr::Bval,
1160            cfifoctr::Bval,
1161            Cfifoctr_SPEC,
1162            crate::common::RW,
1163        >::from_register(self, 0)
1164    }
1165}
1166impl ::core::default::Default for Cfifoctr {
1167    #[inline(always)]
1168    fn default() -> Cfifoctr {
1169        <crate::RegValueT<Cfifoctr_SPEC> as RegisterValue<_>>::new(0)
1170    }
1171}
1172pub mod cfifoctr {
1173
1174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1175    pub struct Frdy_SPEC;
1176    pub type Frdy = crate::EnumBitfieldStruct<u8, Frdy_SPEC>;
1177    impl Frdy {
1178        #[doc = "FIFO port access disabled"]
1179        pub const _0: Self = Self::new(0);
1180
1181        #[doc = "FIFO port access enabled"]
1182        pub const _1: Self = Self::new(1);
1183    }
1184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1185    pub struct Bclr_SPEC;
1186    pub type Bclr = crate::EnumBitfieldStruct<u8, Bclr_SPEC>;
1187    impl Bclr {
1188        #[doc = "No operation"]
1189        pub const _0: Self = Self::new(0);
1190
1191        #[doc = "Clear FIFO buffer on the CPU side"]
1192        pub const _1: Self = Self::new(1);
1193    }
1194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1195    pub struct Bval_SPEC;
1196    pub type Bval = crate::EnumBitfieldStruct<u8, Bval_SPEC>;
1197    impl Bval {
1198        #[doc = "Invalid (writing 0 has no effect)"]
1199        pub const _0: Self = Self::new(0);
1200
1201        #[doc = "Writing ended"]
1202        pub const _1: Self = Self::new(1);
1203    }
1204}
1205#[doc(hidden)]
1206#[derive(Copy, Clone, Eq, PartialEq)]
1207pub struct Intenb0_SPEC;
1208impl crate::sealed::RegSpec for Intenb0_SPEC {
1209    type DataType = u16;
1210}
1211
1212#[doc = "Interrupt Enable Register 0"]
1213pub type Intenb0 = crate::RegValueT<Intenb0_SPEC>;
1214
1215impl Intenb0 {
1216    #[doc = "Buffer Ready Interrupt Enable"]
1217    #[inline(always)]
1218    pub fn brdye(
1219        self,
1220    ) -> crate::common::RegisterField<
1221        8,
1222        0x1,
1223        1,
1224        0,
1225        intenb0::Brdye,
1226        intenb0::Brdye,
1227        Intenb0_SPEC,
1228        crate::common::RW,
1229    > {
1230        crate::common::RegisterField::<
1231            8,
1232            0x1,
1233            1,
1234            0,
1235            intenb0::Brdye,
1236            intenb0::Brdye,
1237            Intenb0_SPEC,
1238            crate::common::RW,
1239        >::from_register(self, 0)
1240    }
1241
1242    #[doc = "Buffer Not Ready Response Interrupt Enable"]
1243    #[inline(always)]
1244    pub fn nrdye(
1245        self,
1246    ) -> crate::common::RegisterField<
1247        9,
1248        0x1,
1249        1,
1250        0,
1251        intenb0::Nrdye,
1252        intenb0::Nrdye,
1253        Intenb0_SPEC,
1254        crate::common::RW,
1255    > {
1256        crate::common::RegisterField::<
1257            9,
1258            0x1,
1259            1,
1260            0,
1261            intenb0::Nrdye,
1262            intenb0::Nrdye,
1263            Intenb0_SPEC,
1264            crate::common::RW,
1265        >::from_register(self, 0)
1266    }
1267
1268    #[doc = "Buffer Empty Interrupt Enable"]
1269    #[inline(always)]
1270    pub fn bempe(
1271        self,
1272    ) -> crate::common::RegisterField<
1273        10,
1274        0x1,
1275        1,
1276        0,
1277        intenb0::Bempe,
1278        intenb0::Bempe,
1279        Intenb0_SPEC,
1280        crate::common::RW,
1281    > {
1282        crate::common::RegisterField::<
1283            10,
1284            0x1,
1285            1,
1286            0,
1287            intenb0::Bempe,
1288            intenb0::Bempe,
1289            Intenb0_SPEC,
1290            crate::common::RW,
1291        >::from_register(self, 0)
1292    }
1293
1294    #[doc = "Control Transfer Stage Transition Interrupt Enable"]
1295    #[inline(always)]
1296    pub fn ctre(
1297        self,
1298    ) -> crate::common::RegisterField<
1299        11,
1300        0x1,
1301        1,
1302        0,
1303        intenb0::Ctre,
1304        intenb0::Ctre,
1305        Intenb0_SPEC,
1306        crate::common::RW,
1307    > {
1308        crate::common::RegisterField::<
1309            11,
1310            0x1,
1311            1,
1312            0,
1313            intenb0::Ctre,
1314            intenb0::Ctre,
1315            Intenb0_SPEC,
1316            crate::common::RW,
1317        >::from_register(self, 0)
1318    }
1319
1320    #[doc = "Device State Transition Interrupt Enable"]
1321    #[inline(always)]
1322    pub fn dvse(
1323        self,
1324    ) -> crate::common::RegisterField<
1325        12,
1326        0x1,
1327        1,
1328        0,
1329        intenb0::Dvse,
1330        intenb0::Dvse,
1331        Intenb0_SPEC,
1332        crate::common::RW,
1333    > {
1334        crate::common::RegisterField::<
1335            12,
1336            0x1,
1337            1,
1338            0,
1339            intenb0::Dvse,
1340            intenb0::Dvse,
1341            Intenb0_SPEC,
1342            crate::common::RW,
1343        >::from_register(self, 0)
1344    }
1345
1346    #[doc = "Frame Number Update Interrupt Enable"]
1347    #[inline(always)]
1348    pub fn sofe(
1349        self,
1350    ) -> crate::common::RegisterField<
1351        13,
1352        0x1,
1353        1,
1354        0,
1355        intenb0::Sofe,
1356        intenb0::Sofe,
1357        Intenb0_SPEC,
1358        crate::common::RW,
1359    > {
1360        crate::common::RegisterField::<
1361            13,
1362            0x1,
1363            1,
1364            0,
1365            intenb0::Sofe,
1366            intenb0::Sofe,
1367            Intenb0_SPEC,
1368            crate::common::RW,
1369        >::from_register(self, 0)
1370    }
1371
1372    #[doc = "Resume Interrupt Enable"]
1373    #[inline(always)]
1374    pub fn rsme(
1375        self,
1376    ) -> crate::common::RegisterField<
1377        14,
1378        0x1,
1379        1,
1380        0,
1381        intenb0::Rsme,
1382        intenb0::Rsme,
1383        Intenb0_SPEC,
1384        crate::common::RW,
1385    > {
1386        crate::common::RegisterField::<
1387            14,
1388            0x1,
1389            1,
1390            0,
1391            intenb0::Rsme,
1392            intenb0::Rsme,
1393            Intenb0_SPEC,
1394            crate::common::RW,
1395        >::from_register(self, 0)
1396    }
1397
1398    #[doc = "VBUS Interrupt Enable"]
1399    #[inline(always)]
1400    pub fn vbse(
1401        self,
1402    ) -> crate::common::RegisterField<
1403        15,
1404        0x1,
1405        1,
1406        0,
1407        intenb0::Vbse,
1408        intenb0::Vbse,
1409        Intenb0_SPEC,
1410        crate::common::RW,
1411    > {
1412        crate::common::RegisterField::<
1413            15,
1414            0x1,
1415            1,
1416            0,
1417            intenb0::Vbse,
1418            intenb0::Vbse,
1419            Intenb0_SPEC,
1420            crate::common::RW,
1421        >::from_register(self, 0)
1422    }
1423}
1424impl ::core::default::Default for Intenb0 {
1425    #[inline(always)]
1426    fn default() -> Intenb0 {
1427        <crate::RegValueT<Intenb0_SPEC> as RegisterValue<_>>::new(0)
1428    }
1429}
1430pub mod intenb0 {
1431
1432    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1433    pub struct Brdye_SPEC;
1434    pub type Brdye = crate::EnumBitfieldStruct<u8, Brdye_SPEC>;
1435    impl Brdye {
1436        #[doc = "Disable interrupt request"]
1437        pub const _0: Self = Self::new(0);
1438
1439        #[doc = "Enable interrupt request"]
1440        pub const _1: Self = Self::new(1);
1441    }
1442    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1443    pub struct Nrdye_SPEC;
1444    pub type Nrdye = crate::EnumBitfieldStruct<u8, Nrdye_SPEC>;
1445    impl Nrdye {
1446        #[doc = "Disable interrupt request"]
1447        pub const _0: Self = Self::new(0);
1448
1449        #[doc = "Enable interrupt request"]
1450        pub const _1: Self = Self::new(1);
1451    }
1452    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1453    pub struct Bempe_SPEC;
1454    pub type Bempe = crate::EnumBitfieldStruct<u8, Bempe_SPEC>;
1455    impl Bempe {
1456        #[doc = "Disable interrupt request"]
1457        pub const _0: Self = Self::new(0);
1458
1459        #[doc = "Enable interrupt request"]
1460        pub const _1: Self = Self::new(1);
1461    }
1462    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1463    pub struct Ctre_SPEC;
1464    pub type Ctre = crate::EnumBitfieldStruct<u8, Ctre_SPEC>;
1465    impl Ctre {
1466        #[doc = "Disable interrupt request"]
1467        pub const _0: Self = Self::new(0);
1468
1469        #[doc = "Enable interrupt request"]
1470        pub const _1: Self = Self::new(1);
1471    }
1472    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1473    pub struct Dvse_SPEC;
1474    pub type Dvse = crate::EnumBitfieldStruct<u8, Dvse_SPEC>;
1475    impl Dvse {
1476        #[doc = "Disable interrupt request"]
1477        pub const _0: Self = Self::new(0);
1478
1479        #[doc = "Enable interrupt request"]
1480        pub const _1: Self = Self::new(1);
1481    }
1482    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1483    pub struct Sofe_SPEC;
1484    pub type Sofe = crate::EnumBitfieldStruct<u8, Sofe_SPEC>;
1485    impl Sofe {
1486        #[doc = "Disable interrupt request"]
1487        pub const _0: Self = Self::new(0);
1488
1489        #[doc = "Enable interrupt request"]
1490        pub const _1: Self = Self::new(1);
1491    }
1492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1493    pub struct Rsme_SPEC;
1494    pub type Rsme = crate::EnumBitfieldStruct<u8, Rsme_SPEC>;
1495    impl Rsme {
1496        #[doc = "Disable interrupt request"]
1497        pub const _0: Self = Self::new(0);
1498
1499        #[doc = "Enable interrupt request"]
1500        pub const _1: Self = Self::new(1);
1501    }
1502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1503    pub struct Vbse_SPEC;
1504    pub type Vbse = crate::EnumBitfieldStruct<u8, Vbse_SPEC>;
1505    impl Vbse {
1506        #[doc = "Disable interrupt request"]
1507        pub const _0: Self = Self::new(0);
1508
1509        #[doc = "Enable interrupt request"]
1510        pub const _1: Self = Self::new(1);
1511    }
1512}
1513#[doc(hidden)]
1514#[derive(Copy, Clone, Eq, PartialEq)]
1515pub struct Brdyenb_SPEC;
1516impl crate::sealed::RegSpec for Brdyenb_SPEC {
1517    type DataType = u16;
1518}
1519
1520#[doc = "BRDY Interrupt Enable Register"]
1521pub type Brdyenb = crate::RegValueT<Brdyenb_SPEC>;
1522
1523impl Brdyenb {
1524    #[doc = "BRDY Interrupt Enable for Pipe 0"]
1525    #[inline(always)]
1526    pub fn pipe0brdye(
1527        self,
1528    ) -> crate::common::RegisterField<
1529        0,
1530        0x1,
1531        1,
1532        0,
1533        brdyenb::Pipe0Brdye,
1534        brdyenb::Pipe0Brdye,
1535        Brdyenb_SPEC,
1536        crate::common::RW,
1537    > {
1538        crate::common::RegisterField::<
1539            0,
1540            0x1,
1541            1,
1542            0,
1543            brdyenb::Pipe0Brdye,
1544            brdyenb::Pipe0Brdye,
1545            Brdyenb_SPEC,
1546            crate::common::RW,
1547        >::from_register(self, 0)
1548    }
1549
1550    #[doc = "BRDY Interrupt Enable for Pipe 4"]
1551    #[inline(always)]
1552    pub fn pipe4brdye(
1553        self,
1554    ) -> crate::common::RegisterField<
1555        4,
1556        0x1,
1557        1,
1558        0,
1559        brdyenb::Pipe4Brdye,
1560        brdyenb::Pipe4Brdye,
1561        Brdyenb_SPEC,
1562        crate::common::RW,
1563    > {
1564        crate::common::RegisterField::<
1565            4,
1566            0x1,
1567            1,
1568            0,
1569            brdyenb::Pipe4Brdye,
1570            brdyenb::Pipe4Brdye,
1571            Brdyenb_SPEC,
1572            crate::common::RW,
1573        >::from_register(self, 0)
1574    }
1575
1576    #[doc = "BRDY Interrupt Enable for Pipe 5"]
1577    #[inline(always)]
1578    pub fn pipe5brdye(
1579        self,
1580    ) -> crate::common::RegisterField<
1581        5,
1582        0x1,
1583        1,
1584        0,
1585        brdyenb::Pipe5Brdye,
1586        brdyenb::Pipe5Brdye,
1587        Brdyenb_SPEC,
1588        crate::common::RW,
1589    > {
1590        crate::common::RegisterField::<
1591            5,
1592            0x1,
1593            1,
1594            0,
1595            brdyenb::Pipe5Brdye,
1596            brdyenb::Pipe5Brdye,
1597            Brdyenb_SPEC,
1598            crate::common::RW,
1599        >::from_register(self, 0)
1600    }
1601
1602    #[doc = "BRDY Interrupt Enable for Pipe 6"]
1603    #[inline(always)]
1604    pub fn pipe6brdye(
1605        self,
1606    ) -> crate::common::RegisterField<
1607        6,
1608        0x1,
1609        1,
1610        0,
1611        brdyenb::Pipe6Brdye,
1612        brdyenb::Pipe6Brdye,
1613        Brdyenb_SPEC,
1614        crate::common::RW,
1615    > {
1616        crate::common::RegisterField::<
1617            6,
1618            0x1,
1619            1,
1620            0,
1621            brdyenb::Pipe6Brdye,
1622            brdyenb::Pipe6Brdye,
1623            Brdyenb_SPEC,
1624            crate::common::RW,
1625        >::from_register(self, 0)
1626    }
1627
1628    #[doc = "BRDY Interrupt Enable for Pipe 7"]
1629    #[inline(always)]
1630    pub fn pipe7brdye(
1631        self,
1632    ) -> crate::common::RegisterField<
1633        7,
1634        0x1,
1635        1,
1636        0,
1637        brdyenb::Pipe7Brdye,
1638        brdyenb::Pipe7Brdye,
1639        Brdyenb_SPEC,
1640        crate::common::RW,
1641    > {
1642        crate::common::RegisterField::<
1643            7,
1644            0x1,
1645            1,
1646            0,
1647            brdyenb::Pipe7Brdye,
1648            brdyenb::Pipe7Brdye,
1649            Brdyenb_SPEC,
1650            crate::common::RW,
1651        >::from_register(self, 0)
1652    }
1653}
1654impl ::core::default::Default for Brdyenb {
1655    #[inline(always)]
1656    fn default() -> Brdyenb {
1657        <crate::RegValueT<Brdyenb_SPEC> as RegisterValue<_>>::new(0)
1658    }
1659}
1660pub mod brdyenb {
1661
1662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1663    pub struct Pipe0Brdye_SPEC;
1664    pub type Pipe0Brdye = crate::EnumBitfieldStruct<u8, Pipe0Brdye_SPEC>;
1665    impl Pipe0Brdye {
1666        #[doc = "Disable interrupt request"]
1667        pub const _0: Self = Self::new(0);
1668
1669        #[doc = "Enable interrupt request"]
1670        pub const _1: Self = Self::new(1);
1671    }
1672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1673    pub struct Pipe4Brdye_SPEC;
1674    pub type Pipe4Brdye = crate::EnumBitfieldStruct<u8, Pipe4Brdye_SPEC>;
1675    impl Pipe4Brdye {
1676        #[doc = "Disable interrupt request"]
1677        pub const _0: Self = Self::new(0);
1678
1679        #[doc = "Enable interrupt request"]
1680        pub const _1: Self = Self::new(1);
1681    }
1682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1683    pub struct Pipe5Brdye_SPEC;
1684    pub type Pipe5Brdye = crate::EnumBitfieldStruct<u8, Pipe5Brdye_SPEC>;
1685    impl Pipe5Brdye {
1686        #[doc = "Disable interrupt request"]
1687        pub const _0: Self = Self::new(0);
1688
1689        #[doc = "Enable interrupt request"]
1690        pub const _1: Self = Self::new(1);
1691    }
1692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1693    pub struct Pipe6Brdye_SPEC;
1694    pub type Pipe6Brdye = crate::EnumBitfieldStruct<u8, Pipe6Brdye_SPEC>;
1695    impl Pipe6Brdye {
1696        #[doc = "Disable interrupt request"]
1697        pub const _0: Self = Self::new(0);
1698
1699        #[doc = "Enable interrupt request"]
1700        pub const _1: Self = Self::new(1);
1701    }
1702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1703    pub struct Pipe7Brdye_SPEC;
1704    pub type Pipe7Brdye = crate::EnumBitfieldStruct<u8, Pipe7Brdye_SPEC>;
1705    impl Pipe7Brdye {
1706        #[doc = "Disable interrupt request"]
1707        pub const _0: Self = Self::new(0);
1708
1709        #[doc = "Enable interrupt request"]
1710        pub const _1: Self = Self::new(1);
1711    }
1712}
1713#[doc(hidden)]
1714#[derive(Copy, Clone, Eq, PartialEq)]
1715pub struct Nrdyenb_SPEC;
1716impl crate::sealed::RegSpec for Nrdyenb_SPEC {
1717    type DataType = u16;
1718}
1719
1720#[doc = "NRDY Interrupt Enable Register"]
1721pub type Nrdyenb = crate::RegValueT<Nrdyenb_SPEC>;
1722
1723impl Nrdyenb {
1724    #[doc = "NRDY Interrupt Enable for Pipe 0"]
1725    #[inline(always)]
1726    pub fn pipe0nrdye(
1727        self,
1728    ) -> crate::common::RegisterField<
1729        0,
1730        0x1,
1731        1,
1732        0,
1733        nrdyenb::Pipe0Nrdye,
1734        nrdyenb::Pipe0Nrdye,
1735        Nrdyenb_SPEC,
1736        crate::common::RW,
1737    > {
1738        crate::common::RegisterField::<
1739            0,
1740            0x1,
1741            1,
1742            0,
1743            nrdyenb::Pipe0Nrdye,
1744            nrdyenb::Pipe0Nrdye,
1745            Nrdyenb_SPEC,
1746            crate::common::RW,
1747        >::from_register(self, 0)
1748    }
1749
1750    #[doc = "NRDY Interrupt Enable for Pipe 4"]
1751    #[inline(always)]
1752    pub fn pipe4nrdye(
1753        self,
1754    ) -> crate::common::RegisterField<
1755        4,
1756        0x1,
1757        1,
1758        0,
1759        nrdyenb::Pipe4Nrdye,
1760        nrdyenb::Pipe4Nrdye,
1761        Nrdyenb_SPEC,
1762        crate::common::RW,
1763    > {
1764        crate::common::RegisterField::<
1765            4,
1766            0x1,
1767            1,
1768            0,
1769            nrdyenb::Pipe4Nrdye,
1770            nrdyenb::Pipe4Nrdye,
1771            Nrdyenb_SPEC,
1772            crate::common::RW,
1773        >::from_register(self, 0)
1774    }
1775
1776    #[doc = "NRDY Interrupt Enable for Pipe 5"]
1777    #[inline(always)]
1778    pub fn pipe5nrdye(
1779        self,
1780    ) -> crate::common::RegisterField<
1781        5,
1782        0x1,
1783        1,
1784        0,
1785        nrdyenb::Pipe5Nrdye,
1786        nrdyenb::Pipe5Nrdye,
1787        Nrdyenb_SPEC,
1788        crate::common::RW,
1789    > {
1790        crate::common::RegisterField::<
1791            5,
1792            0x1,
1793            1,
1794            0,
1795            nrdyenb::Pipe5Nrdye,
1796            nrdyenb::Pipe5Nrdye,
1797            Nrdyenb_SPEC,
1798            crate::common::RW,
1799        >::from_register(self, 0)
1800    }
1801
1802    #[doc = "NRDY Interrupt Enable for Pipe 6"]
1803    #[inline(always)]
1804    pub fn pipe6nrdye(
1805        self,
1806    ) -> crate::common::RegisterField<
1807        6,
1808        0x1,
1809        1,
1810        0,
1811        nrdyenb::Pipe6Nrdye,
1812        nrdyenb::Pipe6Nrdye,
1813        Nrdyenb_SPEC,
1814        crate::common::RW,
1815    > {
1816        crate::common::RegisterField::<
1817            6,
1818            0x1,
1819            1,
1820            0,
1821            nrdyenb::Pipe6Nrdye,
1822            nrdyenb::Pipe6Nrdye,
1823            Nrdyenb_SPEC,
1824            crate::common::RW,
1825        >::from_register(self, 0)
1826    }
1827
1828    #[doc = "NRDY Interrupt Enable for Pipe 7"]
1829    #[inline(always)]
1830    pub fn pipe7nrdye(
1831        self,
1832    ) -> crate::common::RegisterField<
1833        7,
1834        0x1,
1835        1,
1836        0,
1837        nrdyenb::Pipe7Nrdye,
1838        nrdyenb::Pipe7Nrdye,
1839        Nrdyenb_SPEC,
1840        crate::common::RW,
1841    > {
1842        crate::common::RegisterField::<
1843            7,
1844            0x1,
1845            1,
1846            0,
1847            nrdyenb::Pipe7Nrdye,
1848            nrdyenb::Pipe7Nrdye,
1849            Nrdyenb_SPEC,
1850            crate::common::RW,
1851        >::from_register(self, 0)
1852    }
1853}
1854impl ::core::default::Default for Nrdyenb {
1855    #[inline(always)]
1856    fn default() -> Nrdyenb {
1857        <crate::RegValueT<Nrdyenb_SPEC> as RegisterValue<_>>::new(0)
1858    }
1859}
1860pub mod nrdyenb {
1861
1862    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1863    pub struct Pipe0Nrdye_SPEC;
1864    pub type Pipe0Nrdye = crate::EnumBitfieldStruct<u8, Pipe0Nrdye_SPEC>;
1865    impl Pipe0Nrdye {
1866        #[doc = "Disable interrupt request"]
1867        pub const _0: Self = Self::new(0);
1868
1869        #[doc = "Enable interrupt request"]
1870        pub const _1: Self = Self::new(1);
1871    }
1872    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1873    pub struct Pipe4Nrdye_SPEC;
1874    pub type Pipe4Nrdye = crate::EnumBitfieldStruct<u8, Pipe4Nrdye_SPEC>;
1875    impl Pipe4Nrdye {
1876        #[doc = "Disable interrupt request"]
1877        pub const _0: Self = Self::new(0);
1878
1879        #[doc = "Enable interrupt request"]
1880        pub const _1: Self = Self::new(1);
1881    }
1882    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1883    pub struct Pipe5Nrdye_SPEC;
1884    pub type Pipe5Nrdye = crate::EnumBitfieldStruct<u8, Pipe5Nrdye_SPEC>;
1885    impl Pipe5Nrdye {
1886        #[doc = "Disable interrupt request"]
1887        pub const _0: Self = Self::new(0);
1888
1889        #[doc = "Enable interrupt request"]
1890        pub const _1: Self = Self::new(1);
1891    }
1892    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1893    pub struct Pipe6Nrdye_SPEC;
1894    pub type Pipe6Nrdye = crate::EnumBitfieldStruct<u8, Pipe6Nrdye_SPEC>;
1895    impl Pipe6Nrdye {
1896        #[doc = "Disable interrupt request"]
1897        pub const _0: Self = Self::new(0);
1898
1899        #[doc = "Enable interrupt request"]
1900        pub const _1: Self = Self::new(1);
1901    }
1902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1903    pub struct Pipe7Nrdye_SPEC;
1904    pub type Pipe7Nrdye = crate::EnumBitfieldStruct<u8, Pipe7Nrdye_SPEC>;
1905    impl Pipe7Nrdye {
1906        #[doc = "Disable interrupt request"]
1907        pub const _0: Self = Self::new(0);
1908
1909        #[doc = "Enable interrupt request"]
1910        pub const _1: Self = Self::new(1);
1911    }
1912}
1913#[doc(hidden)]
1914#[derive(Copy, Clone, Eq, PartialEq)]
1915pub struct Bempenb_SPEC;
1916impl crate::sealed::RegSpec for Bempenb_SPEC {
1917    type DataType = u16;
1918}
1919
1920#[doc = "BEMP Interrupt Enable Register"]
1921pub type Bempenb = crate::RegValueT<Bempenb_SPEC>;
1922
1923impl Bempenb {
1924    #[doc = "BEMP Interrupt Enable for Pipe 0"]
1925    #[inline(always)]
1926    pub fn pipe0bempe(
1927        self,
1928    ) -> crate::common::RegisterField<
1929        0,
1930        0x1,
1931        1,
1932        0,
1933        bempenb::Pipe0Bempe,
1934        bempenb::Pipe0Bempe,
1935        Bempenb_SPEC,
1936        crate::common::RW,
1937    > {
1938        crate::common::RegisterField::<
1939            0,
1940            0x1,
1941            1,
1942            0,
1943            bempenb::Pipe0Bempe,
1944            bempenb::Pipe0Bempe,
1945            Bempenb_SPEC,
1946            crate::common::RW,
1947        >::from_register(self, 0)
1948    }
1949
1950    #[doc = "BEMP Interrupt Enable for Pipe 4"]
1951    #[inline(always)]
1952    pub fn pipe4bempe(
1953        self,
1954    ) -> crate::common::RegisterField<
1955        4,
1956        0x1,
1957        1,
1958        0,
1959        bempenb::Pipe4Bempe,
1960        bempenb::Pipe4Bempe,
1961        Bempenb_SPEC,
1962        crate::common::RW,
1963    > {
1964        crate::common::RegisterField::<
1965            4,
1966            0x1,
1967            1,
1968            0,
1969            bempenb::Pipe4Bempe,
1970            bempenb::Pipe4Bempe,
1971            Bempenb_SPEC,
1972            crate::common::RW,
1973        >::from_register(self, 0)
1974    }
1975
1976    #[doc = "BEMP Interrupt Enable for Pipe 5"]
1977    #[inline(always)]
1978    pub fn pipe5bempe(
1979        self,
1980    ) -> crate::common::RegisterField<
1981        5,
1982        0x1,
1983        1,
1984        0,
1985        bempenb::Pipe5Bempe,
1986        bempenb::Pipe5Bempe,
1987        Bempenb_SPEC,
1988        crate::common::RW,
1989    > {
1990        crate::common::RegisterField::<
1991            5,
1992            0x1,
1993            1,
1994            0,
1995            bempenb::Pipe5Bempe,
1996            bempenb::Pipe5Bempe,
1997            Bempenb_SPEC,
1998            crate::common::RW,
1999        >::from_register(self, 0)
2000    }
2001
2002    #[doc = "BEMP Interrupt Enable for Pipe 6"]
2003    #[inline(always)]
2004    pub fn pipe6bempe(
2005        self,
2006    ) -> crate::common::RegisterField<
2007        6,
2008        0x1,
2009        1,
2010        0,
2011        bempenb::Pipe6Bempe,
2012        bempenb::Pipe6Bempe,
2013        Bempenb_SPEC,
2014        crate::common::RW,
2015    > {
2016        crate::common::RegisterField::<
2017            6,
2018            0x1,
2019            1,
2020            0,
2021            bempenb::Pipe6Bempe,
2022            bempenb::Pipe6Bempe,
2023            Bempenb_SPEC,
2024            crate::common::RW,
2025        >::from_register(self, 0)
2026    }
2027
2028    #[doc = "BEMP Interrupt Enable for Pipe 7"]
2029    #[inline(always)]
2030    pub fn pipe7bempe(
2031        self,
2032    ) -> crate::common::RegisterField<
2033        7,
2034        0x1,
2035        1,
2036        0,
2037        bempenb::Pipe7Bempe,
2038        bempenb::Pipe7Bempe,
2039        Bempenb_SPEC,
2040        crate::common::RW,
2041    > {
2042        crate::common::RegisterField::<
2043            7,
2044            0x1,
2045            1,
2046            0,
2047            bempenb::Pipe7Bempe,
2048            bempenb::Pipe7Bempe,
2049            Bempenb_SPEC,
2050            crate::common::RW,
2051        >::from_register(self, 0)
2052    }
2053}
2054impl ::core::default::Default for Bempenb {
2055    #[inline(always)]
2056    fn default() -> Bempenb {
2057        <crate::RegValueT<Bempenb_SPEC> as RegisterValue<_>>::new(0)
2058    }
2059}
2060pub mod bempenb {
2061
2062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2063    pub struct Pipe0Bempe_SPEC;
2064    pub type Pipe0Bempe = crate::EnumBitfieldStruct<u8, Pipe0Bempe_SPEC>;
2065    impl Pipe0Bempe {
2066        #[doc = "Disable interrupt request"]
2067        pub const _0: Self = Self::new(0);
2068
2069        #[doc = "Enable interrupt request"]
2070        pub const _1: Self = Self::new(1);
2071    }
2072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2073    pub struct Pipe4Bempe_SPEC;
2074    pub type Pipe4Bempe = crate::EnumBitfieldStruct<u8, Pipe4Bempe_SPEC>;
2075    impl Pipe4Bempe {
2076        #[doc = "Disable interrupt request"]
2077        pub const _0: Self = Self::new(0);
2078
2079        #[doc = "Enable interrupt request"]
2080        pub const _1: Self = Self::new(1);
2081    }
2082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2083    pub struct Pipe5Bempe_SPEC;
2084    pub type Pipe5Bempe = crate::EnumBitfieldStruct<u8, Pipe5Bempe_SPEC>;
2085    impl Pipe5Bempe {
2086        #[doc = "Disable interrupt request"]
2087        pub const _0: Self = Self::new(0);
2088
2089        #[doc = "Enable interrupt request"]
2090        pub const _1: Self = Self::new(1);
2091    }
2092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2093    pub struct Pipe6Bempe_SPEC;
2094    pub type Pipe6Bempe = crate::EnumBitfieldStruct<u8, Pipe6Bempe_SPEC>;
2095    impl Pipe6Bempe {
2096        #[doc = "Disable interrupt request"]
2097        pub const _0: Self = Self::new(0);
2098
2099        #[doc = "Enable interrupt request"]
2100        pub const _1: Self = Self::new(1);
2101    }
2102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2103    pub struct Pipe7Bempe_SPEC;
2104    pub type Pipe7Bempe = crate::EnumBitfieldStruct<u8, Pipe7Bempe_SPEC>;
2105    impl Pipe7Bempe {
2106        #[doc = "Disable interrupt request"]
2107        pub const _0: Self = Self::new(0);
2108
2109        #[doc = "Enable interrupt request"]
2110        pub const _1: Self = Self::new(1);
2111    }
2112}
2113#[doc(hidden)]
2114#[derive(Copy, Clone, Eq, PartialEq)]
2115pub struct Sofcfg_SPEC;
2116impl crate::sealed::RegSpec for Sofcfg_SPEC {
2117    type DataType = u16;
2118}
2119
2120#[doc = "SOF Output Configuration Register"]
2121pub type Sofcfg = crate::RegValueT<Sofcfg_SPEC>;
2122
2123impl Sofcfg {
2124    #[doc = "Edge Interrupt Output Status Monitor"]
2125    #[inline(always)]
2126    pub fn edgests(
2127        self,
2128    ) -> crate::common::RegisterFieldBool<4, 1, 0, Sofcfg_SPEC, crate::common::R> {
2129        crate::common::RegisterFieldBool::<4, 1, 0, Sofcfg_SPEC, crate::common::R>::from_register(
2130            self, 0,
2131        )
2132    }
2133
2134    #[doc = "BRDY Interrupt Status Clear Timing"]
2135    #[inline(always)]
2136    pub fn brdym(
2137        self,
2138    ) -> crate::common::RegisterField<
2139        6,
2140        0x1,
2141        1,
2142        0,
2143        sofcfg::Brdym,
2144        sofcfg::Brdym,
2145        Sofcfg_SPEC,
2146        crate::common::RW,
2147    > {
2148        crate::common::RegisterField::<
2149            6,
2150            0x1,
2151            1,
2152            0,
2153            sofcfg::Brdym,
2154            sofcfg::Brdym,
2155            Sofcfg_SPEC,
2156            crate::common::RW,
2157        >::from_register(self, 0)
2158    }
2159}
2160impl ::core::default::Default for Sofcfg {
2161    #[inline(always)]
2162    fn default() -> Sofcfg {
2163        <crate::RegValueT<Sofcfg_SPEC> as RegisterValue<_>>::new(0)
2164    }
2165}
2166pub mod sofcfg {
2167
2168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2169    pub struct Brdym_SPEC;
2170    pub type Brdym = crate::EnumBitfieldStruct<u8, Brdym_SPEC>;
2171    impl Brdym {
2172        #[doc = "Clear BRDY flag by software"]
2173        pub const _0: Self = Self::new(0);
2174
2175        #[doc = "Clear BRDY flag by the USBFS through a data read from the FIFO buffer or data write to the FIFO buffer"]
2176        pub const _1: Self = Self::new(1);
2177    }
2178}
2179#[doc(hidden)]
2180#[derive(Copy, Clone, Eq, PartialEq)]
2181pub struct Intsts0_SPEC;
2182impl crate::sealed::RegSpec for Intsts0_SPEC {
2183    type DataType = u16;
2184}
2185
2186#[doc = "Interrupt Status Register 0"]
2187pub type Intsts0 = crate::RegValueT<Intsts0_SPEC>;
2188
2189impl Intsts0 {
2190    #[doc = "Control Transfer Stage"]
2191    #[inline(always)]
2192    pub fn ctsq(
2193        self,
2194    ) -> crate::common::RegisterField<
2195        0,
2196        0x7,
2197        1,
2198        0,
2199        intsts0::Ctsq,
2200        intsts0::Ctsq,
2201        Intsts0_SPEC,
2202        crate::common::R,
2203    > {
2204        crate::common::RegisterField::<
2205            0,
2206            0x7,
2207            1,
2208            0,
2209            intsts0::Ctsq,
2210            intsts0::Ctsq,
2211            Intsts0_SPEC,
2212            crate::common::R,
2213        >::from_register(self, 0)
2214    }
2215
2216    #[doc = "USB Request Reception"]
2217    #[inline(always)]
2218    pub fn valid(
2219        self,
2220    ) -> crate::common::RegisterField<
2221        3,
2222        0x1,
2223        1,
2224        0,
2225        intsts0::Valid,
2226        intsts0::Valid,
2227        Intsts0_SPEC,
2228        crate::common::RW,
2229    > {
2230        crate::common::RegisterField::<
2231            3,
2232            0x1,
2233            1,
2234            0,
2235            intsts0::Valid,
2236            intsts0::Valid,
2237            Intsts0_SPEC,
2238            crate::common::RW,
2239        >::from_register(self, 0)
2240    }
2241
2242    #[doc = "Device State"]
2243    #[inline(always)]
2244    pub fn dvsq(
2245        self,
2246    ) -> crate::common::RegisterField<
2247        4,
2248        0x7,
2249        1,
2250        0,
2251        intsts0::Dvsq,
2252        intsts0::Dvsq,
2253        Intsts0_SPEC,
2254        crate::common::R,
2255    > {
2256        crate::common::RegisterField::<
2257            4,
2258            0x7,
2259            1,
2260            0,
2261            intsts0::Dvsq,
2262            intsts0::Dvsq,
2263            Intsts0_SPEC,
2264            crate::common::R,
2265        >::from_register(self, 0)
2266    }
2267
2268    #[doc = "VBUS Input Status"]
2269    #[inline(always)]
2270    pub fn vbsts(
2271        self,
2272    ) -> crate::common::RegisterField<
2273        7,
2274        0x1,
2275        1,
2276        0,
2277        intsts0::Vbsts,
2278        intsts0::Vbsts,
2279        Intsts0_SPEC,
2280        crate::common::R,
2281    > {
2282        crate::common::RegisterField::<
2283            7,
2284            0x1,
2285            1,
2286            0,
2287            intsts0::Vbsts,
2288            intsts0::Vbsts,
2289            Intsts0_SPEC,
2290            crate::common::R,
2291        >::from_register(self, 0)
2292    }
2293
2294    #[doc = "Buffer Ready Interrupt Status"]
2295    #[inline(always)]
2296    pub fn brdy(
2297        self,
2298    ) -> crate::common::RegisterField<
2299        8,
2300        0x1,
2301        1,
2302        0,
2303        intsts0::Brdy,
2304        intsts0::Brdy,
2305        Intsts0_SPEC,
2306        crate::common::R,
2307    > {
2308        crate::common::RegisterField::<
2309            8,
2310            0x1,
2311            1,
2312            0,
2313            intsts0::Brdy,
2314            intsts0::Brdy,
2315            Intsts0_SPEC,
2316            crate::common::R,
2317        >::from_register(self, 0)
2318    }
2319
2320    #[doc = "Buffer Not Ready Interrupt Status"]
2321    #[inline(always)]
2322    pub fn nrdy(
2323        self,
2324    ) -> crate::common::RegisterField<
2325        9,
2326        0x1,
2327        1,
2328        0,
2329        intsts0::Nrdy,
2330        intsts0::Nrdy,
2331        Intsts0_SPEC,
2332        crate::common::R,
2333    > {
2334        crate::common::RegisterField::<
2335            9,
2336            0x1,
2337            1,
2338            0,
2339            intsts0::Nrdy,
2340            intsts0::Nrdy,
2341            Intsts0_SPEC,
2342            crate::common::R,
2343        >::from_register(self, 0)
2344    }
2345
2346    #[doc = "Buffer Empty Interrupt Status"]
2347    #[inline(always)]
2348    pub fn bemp(
2349        self,
2350    ) -> crate::common::RegisterField<
2351        10,
2352        0x1,
2353        1,
2354        0,
2355        intsts0::Bemp,
2356        intsts0::Bemp,
2357        Intsts0_SPEC,
2358        crate::common::R,
2359    > {
2360        crate::common::RegisterField::<
2361            10,
2362            0x1,
2363            1,
2364            0,
2365            intsts0::Bemp,
2366            intsts0::Bemp,
2367            Intsts0_SPEC,
2368            crate::common::R,
2369        >::from_register(self, 0)
2370    }
2371
2372    #[doc = "Control Transfer Stage Transition Interrupt Status"]
2373    #[inline(always)]
2374    pub fn ctrt(
2375        self,
2376    ) -> crate::common::RegisterField<
2377        11,
2378        0x1,
2379        1,
2380        0,
2381        intsts0::Ctrt,
2382        intsts0::Ctrt,
2383        Intsts0_SPEC,
2384        crate::common::RW,
2385    > {
2386        crate::common::RegisterField::<
2387            11,
2388            0x1,
2389            1,
2390            0,
2391            intsts0::Ctrt,
2392            intsts0::Ctrt,
2393            Intsts0_SPEC,
2394            crate::common::RW,
2395        >::from_register(self, 0)
2396    }
2397
2398    #[doc = "Device State Transition Interrupt Status"]
2399    #[inline(always)]
2400    pub fn dvst(
2401        self,
2402    ) -> crate::common::RegisterField<
2403        12,
2404        0x1,
2405        1,
2406        0,
2407        intsts0::Dvst,
2408        intsts0::Dvst,
2409        Intsts0_SPEC,
2410        crate::common::RW,
2411    > {
2412        crate::common::RegisterField::<
2413            12,
2414            0x1,
2415            1,
2416            0,
2417            intsts0::Dvst,
2418            intsts0::Dvst,
2419            Intsts0_SPEC,
2420            crate::common::RW,
2421        >::from_register(self, 0)
2422    }
2423
2424    #[doc = "Frame Number Refresh Interrupt Status"]
2425    #[inline(always)]
2426    pub fn sofr(
2427        self,
2428    ) -> crate::common::RegisterField<
2429        13,
2430        0x1,
2431        1,
2432        0,
2433        intsts0::Sofr,
2434        intsts0::Sofr,
2435        Intsts0_SPEC,
2436        crate::common::RW,
2437    > {
2438        crate::common::RegisterField::<
2439            13,
2440            0x1,
2441            1,
2442            0,
2443            intsts0::Sofr,
2444            intsts0::Sofr,
2445            Intsts0_SPEC,
2446            crate::common::RW,
2447        >::from_register(self, 0)
2448    }
2449
2450    #[doc = "Resume Interrupt Status"]
2451    #[inline(always)]
2452    pub fn resm(
2453        self,
2454    ) -> crate::common::RegisterField<
2455        14,
2456        0x1,
2457        1,
2458        0,
2459        intsts0::Resm,
2460        intsts0::Resm,
2461        Intsts0_SPEC,
2462        crate::common::RW,
2463    > {
2464        crate::common::RegisterField::<
2465            14,
2466            0x1,
2467            1,
2468            0,
2469            intsts0::Resm,
2470            intsts0::Resm,
2471            Intsts0_SPEC,
2472            crate::common::RW,
2473        >::from_register(self, 0)
2474    }
2475
2476    #[doc = "VBUS Interrupt Status"]
2477    #[inline(always)]
2478    pub fn vbint(
2479        self,
2480    ) -> crate::common::RegisterField<
2481        15,
2482        0x1,
2483        1,
2484        0,
2485        intsts0::Vbint,
2486        intsts0::Vbint,
2487        Intsts0_SPEC,
2488        crate::common::RW,
2489    > {
2490        crate::common::RegisterField::<
2491            15,
2492            0x1,
2493            1,
2494            0,
2495            intsts0::Vbint,
2496            intsts0::Vbint,
2497            Intsts0_SPEC,
2498            crate::common::RW,
2499        >::from_register(self, 0)
2500    }
2501}
2502impl ::core::default::Default for Intsts0 {
2503    #[inline(always)]
2504    fn default() -> Intsts0 {
2505        <crate::RegValueT<Intsts0_SPEC> as RegisterValue<_>>::new(0)
2506    }
2507}
2508pub mod intsts0 {
2509
2510    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2511    pub struct Ctsq_SPEC;
2512    pub type Ctsq = crate::EnumBitfieldStruct<u8, Ctsq_SPEC>;
2513    impl Ctsq {
2514        #[doc = "Idle or setup stage"]
2515        pub const _000: Self = Self::new(0);
2516
2517        #[doc = "Control read data stage"]
2518        pub const _001: Self = Self::new(1);
2519
2520        #[doc = "Control read status stage"]
2521        pub const _010: Self = Self::new(2);
2522
2523        #[doc = "Control write data stage"]
2524        pub const _011: Self = Self::new(3);
2525
2526        #[doc = "Control write status stage"]
2527        pub const _100: Self = Self::new(4);
2528
2529        #[doc = "Control write (no data) status stage"]
2530        pub const _101: Self = Self::new(5);
2531
2532        #[doc = "Control transfer sequence error"]
2533        pub const _110: Self = Self::new(6);
2534    }
2535    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2536    pub struct Valid_SPEC;
2537    pub type Valid = crate::EnumBitfieldStruct<u8, Valid_SPEC>;
2538    impl Valid {
2539        #[doc = "Setup packet not received"]
2540        pub const _0: Self = Self::new(0);
2541
2542        #[doc = "Setup packet received"]
2543        pub const _1: Self = Self::new(1);
2544    }
2545    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2546    pub struct Dvsq_SPEC;
2547    pub type Dvsq = crate::EnumBitfieldStruct<u8, Dvsq_SPEC>;
2548    impl Dvsq {
2549        #[doc = "Powered state"]
2550        pub const _000: Self = Self::new(0);
2551
2552        #[doc = "Default state"]
2553        pub const _001: Self = Self::new(1);
2554
2555        #[doc = "Address state"]
2556        pub const _010: Self = Self::new(2);
2557
2558        #[doc = "Configured state"]
2559        pub const _011: Self = Self::new(3);
2560
2561        #[doc = "Suspend state"]
2562        pub const OTHERS: Self = Self::new(0);
2563    }
2564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2565    pub struct Vbsts_SPEC;
2566    pub type Vbsts = crate::EnumBitfieldStruct<u8, Vbsts_SPEC>;
2567    impl Vbsts {
2568        #[doc = "USB_VBUS pin is low"]
2569        pub const _0: Self = Self::new(0);
2570
2571        #[doc = "USB_VBUS pin is high"]
2572        pub const _1: Self = Self::new(1);
2573    }
2574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2575    pub struct Brdy_SPEC;
2576    pub type Brdy = crate::EnumBitfieldStruct<u8, Brdy_SPEC>;
2577    impl Brdy {
2578        #[doc = "No BRDY interrupt occurred"]
2579        pub const _0: Self = Self::new(0);
2580
2581        #[doc = "BRDY interrupt occurred"]
2582        pub const _1: Self = Self::new(1);
2583    }
2584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2585    pub struct Nrdy_SPEC;
2586    pub type Nrdy = crate::EnumBitfieldStruct<u8, Nrdy_SPEC>;
2587    impl Nrdy {
2588        #[doc = "No NRDY interrupt occurred"]
2589        pub const _0: Self = Self::new(0);
2590
2591        #[doc = "NRDY interrupt occurred"]
2592        pub const _1: Self = Self::new(1);
2593    }
2594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2595    pub struct Bemp_SPEC;
2596    pub type Bemp = crate::EnumBitfieldStruct<u8, Bemp_SPEC>;
2597    impl Bemp {
2598        #[doc = "No BEMP interrupt occurred"]
2599        pub const _0: Self = Self::new(0);
2600
2601        #[doc = "BEMP interrupt occurred"]
2602        pub const _1: Self = Self::new(1);
2603    }
2604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2605    pub struct Ctrt_SPEC;
2606    pub type Ctrt = crate::EnumBitfieldStruct<u8, Ctrt_SPEC>;
2607    impl Ctrt {
2608        #[doc = "No control transfer stage transition interrupt occurred"]
2609        pub const _0: Self = Self::new(0);
2610
2611        #[doc = "Control transfer stage transition interrupt occurred"]
2612        pub const _1: Self = Self::new(1);
2613    }
2614    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2615    pub struct Dvst_SPEC;
2616    pub type Dvst = crate::EnumBitfieldStruct<u8, Dvst_SPEC>;
2617    impl Dvst {
2618        #[doc = "No device state transition interrupt occurred"]
2619        pub const _0: Self = Self::new(0);
2620
2621        #[doc = "Device state transition interrupt occurred"]
2622        pub const _1: Self = Self::new(1);
2623    }
2624    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2625    pub struct Sofr_SPEC;
2626    pub type Sofr = crate::EnumBitfieldStruct<u8, Sofr_SPEC>;
2627    impl Sofr {
2628        #[doc = "No SOF interrupt occurred"]
2629        pub const _0: Self = Self::new(0);
2630
2631        #[doc = "SOF interrupt occurred"]
2632        pub const _1: Self = Self::new(1);
2633    }
2634    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2635    pub struct Resm_SPEC;
2636    pub type Resm = crate::EnumBitfieldStruct<u8, Resm_SPEC>;
2637    impl Resm {
2638        #[doc = "No resume interrupt occurred"]
2639        pub const _0: Self = Self::new(0);
2640
2641        #[doc = "Resume interrupt occurred"]
2642        pub const _1: Self = Self::new(1);
2643    }
2644    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2645    pub struct Vbint_SPEC;
2646    pub type Vbint = crate::EnumBitfieldStruct<u8, Vbint_SPEC>;
2647    impl Vbint {
2648        #[doc = "No VBUS interrupt occurred"]
2649        pub const _0: Self = Self::new(0);
2650
2651        #[doc = "VBUS interrupt occurred"]
2652        pub const _1: Self = Self::new(1);
2653    }
2654}
2655#[doc(hidden)]
2656#[derive(Copy, Clone, Eq, PartialEq)]
2657pub struct Brdysts_SPEC;
2658impl crate::sealed::RegSpec for Brdysts_SPEC {
2659    type DataType = u16;
2660}
2661
2662#[doc = "BRDY Interrupt Status Register"]
2663pub type Brdysts = crate::RegValueT<Brdysts_SPEC>;
2664
2665impl Brdysts {
2666    #[doc = "BRDY Interrupt Status for Pipe 0"]
2667    #[inline(always)]
2668    pub fn pipe0brdy(
2669        self,
2670    ) -> crate::common::RegisterField<
2671        0,
2672        0x1,
2673        1,
2674        0,
2675        brdysts::Pipe0Brdy,
2676        brdysts::Pipe0Brdy,
2677        Brdysts_SPEC,
2678        crate::common::RW,
2679    > {
2680        crate::common::RegisterField::<
2681            0,
2682            0x1,
2683            1,
2684            0,
2685            brdysts::Pipe0Brdy,
2686            brdysts::Pipe0Brdy,
2687            Brdysts_SPEC,
2688            crate::common::RW,
2689        >::from_register(self, 0)
2690    }
2691
2692    #[doc = "BRDY Interrupt Status for Pipe 4"]
2693    #[inline(always)]
2694    pub fn pipe4brdy(
2695        self,
2696    ) -> crate::common::RegisterField<
2697        4,
2698        0x1,
2699        1,
2700        0,
2701        brdysts::Pipe4Brdy,
2702        brdysts::Pipe4Brdy,
2703        Brdysts_SPEC,
2704        crate::common::RW,
2705    > {
2706        crate::common::RegisterField::<
2707            4,
2708            0x1,
2709            1,
2710            0,
2711            brdysts::Pipe4Brdy,
2712            brdysts::Pipe4Brdy,
2713            Brdysts_SPEC,
2714            crate::common::RW,
2715        >::from_register(self, 0)
2716    }
2717
2718    #[doc = "BRDY Interrupt Status for Pipe 5"]
2719    #[inline(always)]
2720    pub fn pipe5brdy(
2721        self,
2722    ) -> crate::common::RegisterField<
2723        5,
2724        0x1,
2725        1,
2726        0,
2727        brdysts::Pipe5Brdy,
2728        brdysts::Pipe5Brdy,
2729        Brdysts_SPEC,
2730        crate::common::RW,
2731    > {
2732        crate::common::RegisterField::<
2733            5,
2734            0x1,
2735            1,
2736            0,
2737            brdysts::Pipe5Brdy,
2738            brdysts::Pipe5Brdy,
2739            Brdysts_SPEC,
2740            crate::common::RW,
2741        >::from_register(self, 0)
2742    }
2743
2744    #[doc = "BRDY Interrupt Status for Pipe 6"]
2745    #[inline(always)]
2746    pub fn pipe6brdy(
2747        self,
2748    ) -> crate::common::RegisterField<
2749        6,
2750        0x1,
2751        1,
2752        0,
2753        brdysts::Pipe6Brdy,
2754        brdysts::Pipe6Brdy,
2755        Brdysts_SPEC,
2756        crate::common::RW,
2757    > {
2758        crate::common::RegisterField::<
2759            6,
2760            0x1,
2761            1,
2762            0,
2763            brdysts::Pipe6Brdy,
2764            brdysts::Pipe6Brdy,
2765            Brdysts_SPEC,
2766            crate::common::RW,
2767        >::from_register(self, 0)
2768    }
2769
2770    #[doc = "BRDY Interrupt Status for Pipe 7"]
2771    #[inline(always)]
2772    pub fn pipe7brdy(
2773        self,
2774    ) -> crate::common::RegisterField<
2775        7,
2776        0x1,
2777        1,
2778        0,
2779        brdysts::Pipe7Brdy,
2780        brdysts::Pipe7Brdy,
2781        Brdysts_SPEC,
2782        crate::common::RW,
2783    > {
2784        crate::common::RegisterField::<
2785            7,
2786            0x1,
2787            1,
2788            0,
2789            brdysts::Pipe7Brdy,
2790            brdysts::Pipe7Brdy,
2791            Brdysts_SPEC,
2792            crate::common::RW,
2793        >::from_register(self, 0)
2794    }
2795}
2796impl ::core::default::Default for Brdysts {
2797    #[inline(always)]
2798    fn default() -> Brdysts {
2799        <crate::RegValueT<Brdysts_SPEC> as RegisterValue<_>>::new(0)
2800    }
2801}
2802pub mod brdysts {
2803
2804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2805    pub struct Pipe0Brdy_SPEC;
2806    pub type Pipe0Brdy = crate::EnumBitfieldStruct<u8, Pipe0Brdy_SPEC>;
2807    impl Pipe0Brdy {
2808        #[doc = "No BRDY interrupt occurred"]
2809        pub const _0: Self = Self::new(0);
2810
2811        #[doc = "BRDY interrupt occurred"]
2812        pub const _1: Self = Self::new(1);
2813    }
2814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2815    pub struct Pipe4Brdy_SPEC;
2816    pub type Pipe4Brdy = crate::EnumBitfieldStruct<u8, Pipe4Brdy_SPEC>;
2817    impl Pipe4Brdy {
2818        #[doc = "No BRDY interrupt occurred"]
2819        pub const _0: Self = Self::new(0);
2820
2821        #[doc = "BRDY interrupt occurred"]
2822        pub const _1: Self = Self::new(1);
2823    }
2824    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2825    pub struct Pipe5Brdy_SPEC;
2826    pub type Pipe5Brdy = crate::EnumBitfieldStruct<u8, Pipe5Brdy_SPEC>;
2827    impl Pipe5Brdy {
2828        #[doc = "No BRDY interrupt occurred"]
2829        pub const _0: Self = Self::new(0);
2830
2831        #[doc = "BRDY interrupt occurred"]
2832        pub const _1: Self = Self::new(1);
2833    }
2834    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2835    pub struct Pipe6Brdy_SPEC;
2836    pub type Pipe6Brdy = crate::EnumBitfieldStruct<u8, Pipe6Brdy_SPEC>;
2837    impl Pipe6Brdy {
2838        #[doc = "No BRDY interrupt occurred"]
2839        pub const _0: Self = Self::new(0);
2840
2841        #[doc = "BRDY interrupt occurred"]
2842        pub const _1: Self = Self::new(1);
2843    }
2844    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2845    pub struct Pipe7Brdy_SPEC;
2846    pub type Pipe7Brdy = crate::EnumBitfieldStruct<u8, Pipe7Brdy_SPEC>;
2847    impl Pipe7Brdy {
2848        #[doc = "No BRDY interrupt occurred"]
2849        pub const _0: Self = Self::new(0);
2850
2851        #[doc = "BRDY interrupt occurred"]
2852        pub const _1: Self = Self::new(1);
2853    }
2854}
2855#[doc(hidden)]
2856#[derive(Copy, Clone, Eq, PartialEq)]
2857pub struct Nrdysts_SPEC;
2858impl crate::sealed::RegSpec for Nrdysts_SPEC {
2859    type DataType = u16;
2860}
2861
2862#[doc = "NRDY Interrupt Status Register"]
2863pub type Nrdysts = crate::RegValueT<Nrdysts_SPEC>;
2864
2865impl Nrdysts {
2866    #[doc = "NRDY Interrupt Status for Pipe 0"]
2867    #[inline(always)]
2868    pub fn pipe0nrdy(
2869        self,
2870    ) -> crate::common::RegisterField<
2871        0,
2872        0x1,
2873        1,
2874        0,
2875        nrdysts::Pipe0Nrdy,
2876        nrdysts::Pipe0Nrdy,
2877        Nrdysts_SPEC,
2878        crate::common::RW,
2879    > {
2880        crate::common::RegisterField::<
2881            0,
2882            0x1,
2883            1,
2884            0,
2885            nrdysts::Pipe0Nrdy,
2886            nrdysts::Pipe0Nrdy,
2887            Nrdysts_SPEC,
2888            crate::common::RW,
2889        >::from_register(self, 0)
2890    }
2891
2892    #[doc = "NRDY Interrupt Status for Pipe 4"]
2893    #[inline(always)]
2894    pub fn pipe4nrdy(
2895        self,
2896    ) -> crate::common::RegisterField<
2897        4,
2898        0x1,
2899        1,
2900        0,
2901        nrdysts::Pipe4Nrdy,
2902        nrdysts::Pipe4Nrdy,
2903        Nrdysts_SPEC,
2904        crate::common::RW,
2905    > {
2906        crate::common::RegisterField::<
2907            4,
2908            0x1,
2909            1,
2910            0,
2911            nrdysts::Pipe4Nrdy,
2912            nrdysts::Pipe4Nrdy,
2913            Nrdysts_SPEC,
2914            crate::common::RW,
2915        >::from_register(self, 0)
2916    }
2917
2918    #[doc = "NRDY Interrupt Status for Pipe 5"]
2919    #[inline(always)]
2920    pub fn pipe5nrdy(
2921        self,
2922    ) -> crate::common::RegisterField<
2923        5,
2924        0x1,
2925        1,
2926        0,
2927        nrdysts::Pipe5Nrdy,
2928        nrdysts::Pipe5Nrdy,
2929        Nrdysts_SPEC,
2930        crate::common::RW,
2931    > {
2932        crate::common::RegisterField::<
2933            5,
2934            0x1,
2935            1,
2936            0,
2937            nrdysts::Pipe5Nrdy,
2938            nrdysts::Pipe5Nrdy,
2939            Nrdysts_SPEC,
2940            crate::common::RW,
2941        >::from_register(self, 0)
2942    }
2943
2944    #[doc = "NRDY Interrupt Status for Pipe 6"]
2945    #[inline(always)]
2946    pub fn pipe6nrdy(
2947        self,
2948    ) -> crate::common::RegisterField<
2949        6,
2950        0x1,
2951        1,
2952        0,
2953        nrdysts::Pipe6Nrdy,
2954        nrdysts::Pipe6Nrdy,
2955        Nrdysts_SPEC,
2956        crate::common::RW,
2957    > {
2958        crate::common::RegisterField::<
2959            6,
2960            0x1,
2961            1,
2962            0,
2963            nrdysts::Pipe6Nrdy,
2964            nrdysts::Pipe6Nrdy,
2965            Nrdysts_SPEC,
2966            crate::common::RW,
2967        >::from_register(self, 0)
2968    }
2969
2970    #[doc = "NRDY Interrupt Status for Pipe 7"]
2971    #[inline(always)]
2972    pub fn pipe7nrdy(
2973        self,
2974    ) -> crate::common::RegisterField<
2975        7,
2976        0x1,
2977        1,
2978        0,
2979        nrdysts::Pipe7Nrdy,
2980        nrdysts::Pipe7Nrdy,
2981        Nrdysts_SPEC,
2982        crate::common::RW,
2983    > {
2984        crate::common::RegisterField::<
2985            7,
2986            0x1,
2987            1,
2988            0,
2989            nrdysts::Pipe7Nrdy,
2990            nrdysts::Pipe7Nrdy,
2991            Nrdysts_SPEC,
2992            crate::common::RW,
2993        >::from_register(self, 0)
2994    }
2995}
2996impl ::core::default::Default for Nrdysts {
2997    #[inline(always)]
2998    fn default() -> Nrdysts {
2999        <crate::RegValueT<Nrdysts_SPEC> as RegisterValue<_>>::new(0)
3000    }
3001}
3002pub mod nrdysts {
3003
3004    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3005    pub struct Pipe0Nrdy_SPEC;
3006    pub type Pipe0Nrdy = crate::EnumBitfieldStruct<u8, Pipe0Nrdy_SPEC>;
3007    impl Pipe0Nrdy {
3008        #[doc = "No NRDY interrupt occurred"]
3009        pub const _0: Self = Self::new(0);
3010
3011        #[doc = "NRDY interrupt occurred"]
3012        pub const _1: Self = Self::new(1);
3013    }
3014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3015    pub struct Pipe4Nrdy_SPEC;
3016    pub type Pipe4Nrdy = crate::EnumBitfieldStruct<u8, Pipe4Nrdy_SPEC>;
3017    impl Pipe4Nrdy {
3018        #[doc = "No NRDY interrupt occurred"]
3019        pub const _0: Self = Self::new(0);
3020
3021        #[doc = "NRDY interrupt occurred"]
3022        pub const _1: Self = Self::new(1);
3023    }
3024    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3025    pub struct Pipe5Nrdy_SPEC;
3026    pub type Pipe5Nrdy = crate::EnumBitfieldStruct<u8, Pipe5Nrdy_SPEC>;
3027    impl Pipe5Nrdy {
3028        #[doc = "No NRDY interrupt occurred"]
3029        pub const _0: Self = Self::new(0);
3030
3031        #[doc = "NRDY interrupt occurred"]
3032        pub const _1: Self = Self::new(1);
3033    }
3034    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3035    pub struct Pipe6Nrdy_SPEC;
3036    pub type Pipe6Nrdy = crate::EnumBitfieldStruct<u8, Pipe6Nrdy_SPEC>;
3037    impl Pipe6Nrdy {
3038        #[doc = "No NRDY interrupt occurred"]
3039        pub const _0: Self = Self::new(0);
3040
3041        #[doc = "NRDY interrupt occurred"]
3042        pub const _1: Self = Self::new(1);
3043    }
3044    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3045    pub struct Pipe7Nrdy_SPEC;
3046    pub type Pipe7Nrdy = crate::EnumBitfieldStruct<u8, Pipe7Nrdy_SPEC>;
3047    impl Pipe7Nrdy {
3048        #[doc = "No NRDY interrupt occurred"]
3049        pub const _0: Self = Self::new(0);
3050
3051        #[doc = "NRDY interrupt occurred"]
3052        pub const _1: Self = Self::new(1);
3053    }
3054}
3055#[doc(hidden)]
3056#[derive(Copy, Clone, Eq, PartialEq)]
3057pub struct Bempsts_SPEC;
3058impl crate::sealed::RegSpec for Bempsts_SPEC {
3059    type DataType = u16;
3060}
3061
3062#[doc = "BEMP Interrupt Status Register"]
3063pub type Bempsts = crate::RegValueT<Bempsts_SPEC>;
3064
3065impl Bempsts {
3066    #[doc = "BEMP Interrupt Status for Pipe 0"]
3067    #[inline(always)]
3068    pub fn pipe0bemp(
3069        self,
3070    ) -> crate::common::RegisterField<
3071        0,
3072        0x1,
3073        1,
3074        0,
3075        bempsts::Pipe0Bemp,
3076        bempsts::Pipe0Bemp,
3077        Bempsts_SPEC,
3078        crate::common::RW,
3079    > {
3080        crate::common::RegisterField::<
3081            0,
3082            0x1,
3083            1,
3084            0,
3085            bempsts::Pipe0Bemp,
3086            bempsts::Pipe0Bemp,
3087            Bempsts_SPEC,
3088            crate::common::RW,
3089        >::from_register(self, 0)
3090    }
3091
3092    #[doc = "BEMP Interrupt Status for Pipe 4"]
3093    #[inline(always)]
3094    pub fn pipe4bemp(
3095        self,
3096    ) -> crate::common::RegisterField<
3097        4,
3098        0x1,
3099        1,
3100        0,
3101        bempsts::Pipe4Bemp,
3102        bempsts::Pipe4Bemp,
3103        Bempsts_SPEC,
3104        crate::common::RW,
3105    > {
3106        crate::common::RegisterField::<
3107            4,
3108            0x1,
3109            1,
3110            0,
3111            bempsts::Pipe4Bemp,
3112            bempsts::Pipe4Bemp,
3113            Bempsts_SPEC,
3114            crate::common::RW,
3115        >::from_register(self, 0)
3116    }
3117
3118    #[doc = "BEMP Interrupt Status for Pipe 5"]
3119    #[inline(always)]
3120    pub fn pipe5bemp(
3121        self,
3122    ) -> crate::common::RegisterField<
3123        5,
3124        0x1,
3125        1,
3126        0,
3127        bempsts::Pipe5Bemp,
3128        bempsts::Pipe5Bemp,
3129        Bempsts_SPEC,
3130        crate::common::RW,
3131    > {
3132        crate::common::RegisterField::<
3133            5,
3134            0x1,
3135            1,
3136            0,
3137            bempsts::Pipe5Bemp,
3138            bempsts::Pipe5Bemp,
3139            Bempsts_SPEC,
3140            crate::common::RW,
3141        >::from_register(self, 0)
3142    }
3143
3144    #[doc = "BEMP Interrupt Status for Pipe 6"]
3145    #[inline(always)]
3146    pub fn pipe6bemp(
3147        self,
3148    ) -> crate::common::RegisterField<
3149        6,
3150        0x1,
3151        1,
3152        0,
3153        bempsts::Pipe6Bemp,
3154        bempsts::Pipe6Bemp,
3155        Bempsts_SPEC,
3156        crate::common::RW,
3157    > {
3158        crate::common::RegisterField::<
3159            6,
3160            0x1,
3161            1,
3162            0,
3163            bempsts::Pipe6Bemp,
3164            bempsts::Pipe6Bemp,
3165            Bempsts_SPEC,
3166            crate::common::RW,
3167        >::from_register(self, 0)
3168    }
3169
3170    #[doc = "BEMP Interrupt Status for Pipe 7"]
3171    #[inline(always)]
3172    pub fn pipe7bemp(
3173        self,
3174    ) -> crate::common::RegisterField<
3175        7,
3176        0x1,
3177        1,
3178        0,
3179        bempsts::Pipe7Bemp,
3180        bempsts::Pipe7Bemp,
3181        Bempsts_SPEC,
3182        crate::common::RW,
3183    > {
3184        crate::common::RegisterField::<
3185            7,
3186            0x1,
3187            1,
3188            0,
3189            bempsts::Pipe7Bemp,
3190            bempsts::Pipe7Bemp,
3191            Bempsts_SPEC,
3192            crate::common::RW,
3193        >::from_register(self, 0)
3194    }
3195}
3196impl ::core::default::Default for Bempsts {
3197    #[inline(always)]
3198    fn default() -> Bempsts {
3199        <crate::RegValueT<Bempsts_SPEC> as RegisterValue<_>>::new(0)
3200    }
3201}
3202pub mod bempsts {
3203
3204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3205    pub struct Pipe0Bemp_SPEC;
3206    pub type Pipe0Bemp = crate::EnumBitfieldStruct<u8, Pipe0Bemp_SPEC>;
3207    impl Pipe0Bemp {
3208        #[doc = "No BEMP interrupt occurred"]
3209        pub const _0: Self = Self::new(0);
3210
3211        #[doc = "BEMP interrupt occurred"]
3212        pub const _1: Self = Self::new(1);
3213    }
3214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3215    pub struct Pipe4Bemp_SPEC;
3216    pub type Pipe4Bemp = crate::EnumBitfieldStruct<u8, Pipe4Bemp_SPEC>;
3217    impl Pipe4Bemp {
3218        #[doc = "No BEMP interrupt occurred"]
3219        pub const _0: Self = Self::new(0);
3220
3221        #[doc = "BEMP interrupt occurred"]
3222        pub const _1: Self = Self::new(1);
3223    }
3224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3225    pub struct Pipe5Bemp_SPEC;
3226    pub type Pipe5Bemp = crate::EnumBitfieldStruct<u8, Pipe5Bemp_SPEC>;
3227    impl Pipe5Bemp {
3228        #[doc = "No BEMP interrupt occurred"]
3229        pub const _0: Self = Self::new(0);
3230
3231        #[doc = "BEMP interrupt occurred"]
3232        pub const _1: Self = Self::new(1);
3233    }
3234    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3235    pub struct Pipe6Bemp_SPEC;
3236    pub type Pipe6Bemp = crate::EnumBitfieldStruct<u8, Pipe6Bemp_SPEC>;
3237    impl Pipe6Bemp {
3238        #[doc = "No BEMP interrupt occurred"]
3239        pub const _0: Self = Self::new(0);
3240
3241        #[doc = "BEMP interrupt occurred"]
3242        pub const _1: Self = Self::new(1);
3243    }
3244    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3245    pub struct Pipe7Bemp_SPEC;
3246    pub type Pipe7Bemp = crate::EnumBitfieldStruct<u8, Pipe7Bemp_SPEC>;
3247    impl Pipe7Bemp {
3248        #[doc = "No BEMP interrupt occurred"]
3249        pub const _0: Self = Self::new(0);
3250
3251        #[doc = "BEMP interrupt occurred"]
3252        pub const _1: Self = Self::new(1);
3253    }
3254}
3255#[doc(hidden)]
3256#[derive(Copy, Clone, Eq, PartialEq)]
3257pub struct Frmnum_SPEC;
3258impl crate::sealed::RegSpec for Frmnum_SPEC {
3259    type DataType = u16;
3260}
3261
3262#[doc = "Frame Number Register"]
3263pub type Frmnum = crate::RegValueT<Frmnum_SPEC>;
3264
3265impl Frmnum {
3266    #[doc = "Frame Number"]
3267    #[inline(always)]
3268    pub fn frnm(
3269        self,
3270    ) -> crate::common::RegisterField<0, 0x7ff, 1, 0, u16, u16, Frmnum_SPEC, crate::common::R> {
3271        crate::common::RegisterField::<0,0x7ff,1,0,u16,u16,Frmnum_SPEC,crate::common::R>::from_register(self,0)
3272    }
3273}
3274impl ::core::default::Default for Frmnum {
3275    #[inline(always)]
3276    fn default() -> Frmnum {
3277        <crate::RegValueT<Frmnum_SPEC> as RegisterValue<_>>::new(0)
3278    }
3279}
3280
3281#[doc(hidden)]
3282#[derive(Copy, Clone, Eq, PartialEq)]
3283pub struct Dvchgr_SPEC;
3284impl crate::sealed::RegSpec for Dvchgr_SPEC {
3285    type DataType = u16;
3286}
3287
3288#[doc = "Device State Change Register"]
3289pub type Dvchgr = crate::RegValueT<Dvchgr_SPEC>;
3290
3291impl Dvchgr {
3292    #[doc = "Device State Change"]
3293    #[inline(always)]
3294    pub fn dvchg(
3295        self,
3296    ) -> crate::common::RegisterField<
3297        15,
3298        0x1,
3299        1,
3300        0,
3301        dvchgr::Dvchg,
3302        dvchgr::Dvchg,
3303        Dvchgr_SPEC,
3304        crate::common::RW,
3305    > {
3306        crate::common::RegisterField::<
3307            15,
3308            0x1,
3309            1,
3310            0,
3311            dvchgr::Dvchg,
3312            dvchgr::Dvchg,
3313            Dvchgr_SPEC,
3314            crate::common::RW,
3315        >::from_register(self, 0)
3316    }
3317}
3318impl ::core::default::Default for Dvchgr {
3319    #[inline(always)]
3320    fn default() -> Dvchgr {
3321        <crate::RegValueT<Dvchgr_SPEC> as RegisterValue<_>>::new(0)
3322    }
3323}
3324pub mod dvchgr {
3325
3326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3327    pub struct Dvchg_SPEC;
3328    pub type Dvchg = crate::EnumBitfieldStruct<u8, Dvchg_SPEC>;
3329    impl Dvchg {
3330        #[doc = "Disable writes to the USBADDR.STSRECOV\\[3:0\\] and USBADDR.USBADDR\\[6:0\\] bits"]
3331        pub const _0: Self = Self::new(0);
3332
3333        #[doc = "Enable writes to the USBADDR.STSRECOV\\[3:0\\] and USBADDR.USBADDR\\[6:0\\] bits"]
3334        pub const _1: Self = Self::new(1);
3335    }
3336}
3337#[doc(hidden)]
3338#[derive(Copy, Clone, Eq, PartialEq)]
3339pub struct Usbaddr_SPEC;
3340impl crate::sealed::RegSpec for Usbaddr_SPEC {
3341    type DataType = u16;
3342}
3343
3344#[doc = "USB Address Register"]
3345pub type Usbaddr = crate::RegValueT<Usbaddr_SPEC>;
3346
3347impl Usbaddr {
3348    #[doc = "USB Address"]
3349    #[inline(always)]
3350    pub fn usbaddr(
3351        self,
3352    ) -> crate::common::RegisterField<0, 0x7f, 1, 0, u8, u8, Usbaddr_SPEC, crate::common::RW> {
3353        crate::common::RegisterField::<0,0x7f,1,0,u8,u8,Usbaddr_SPEC,crate::common::RW>::from_register(self,0)
3354    }
3355
3356    #[doc = "Status Recovery"]
3357    #[inline(always)]
3358    pub fn stsrecov(
3359        self,
3360    ) -> crate::common::RegisterField<
3361        8,
3362        0xf,
3363        1,
3364        0,
3365        usbaddr::Stsrecov,
3366        usbaddr::Stsrecov,
3367        Usbaddr_SPEC,
3368        crate::common::RW,
3369    > {
3370        crate::common::RegisterField::<
3371            8,
3372            0xf,
3373            1,
3374            0,
3375            usbaddr::Stsrecov,
3376            usbaddr::Stsrecov,
3377            Usbaddr_SPEC,
3378            crate::common::RW,
3379        >::from_register(self, 0)
3380    }
3381}
3382impl ::core::default::Default for Usbaddr {
3383    #[inline(always)]
3384    fn default() -> Usbaddr {
3385        <crate::RegValueT<Usbaddr_SPEC> as RegisterValue<_>>::new(0)
3386    }
3387}
3388pub mod usbaddr {
3389
3390    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3391    pub struct Stsrecov_SPEC;
3392    pub type Stsrecov = crate::EnumBitfieldStruct<u8, Stsrecov_SPEC>;
3393    impl Stsrecov {
3394        #[doc = "Return to the full-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 010b), bits INTSTS0.DVSQ\\[2:0\\] = 001b (default state)"]
3395        pub const _0_X_9: Self = Self::new(9);
3396
3397        #[doc = "Return to the full-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 010b), bits INTSTS0.DVSQ\\[2:0\\] = 010b (address state)"]
3398        pub const _0_X_A: Self = Self::new(10);
3399
3400        #[doc = "Return to the full-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 010b), bits INTSTS0.DVSQ\\[2:0\\] = 011b (configured state)"]
3401        pub const _0_X_B: Self = Self::new(11);
3402
3403        #[doc = "Setting prohibited"]
3404        pub const OTHERS: Self = Self::new(0);
3405    }
3406}
3407#[doc(hidden)]
3408#[derive(Copy, Clone, Eq, PartialEq)]
3409pub struct Usbreq_SPEC;
3410impl crate::sealed::RegSpec for Usbreq_SPEC {
3411    type DataType = u16;
3412}
3413
3414#[doc = "USB Request Type Register"]
3415pub type Usbreq = crate::RegValueT<Usbreq_SPEC>;
3416
3417impl Usbreq {
3418    #[doc = "Request Type"]
3419    #[inline(always)]
3420    pub fn bmrequesttype(
3421        self,
3422    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Usbreq_SPEC, crate::common::R> {
3423        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Usbreq_SPEC,crate::common::R>::from_register(self,0)
3424    }
3425
3426    #[doc = "Request"]
3427    #[inline(always)]
3428    pub fn brequest(
3429        self,
3430    ) -> crate::common::RegisterField<8, 0xff, 1, 0, u8, u8, Usbreq_SPEC, crate::common::R> {
3431        crate::common::RegisterField::<8,0xff,1,0,u8,u8,Usbreq_SPEC,crate::common::R>::from_register(self,0)
3432    }
3433}
3434impl ::core::default::Default for Usbreq {
3435    #[inline(always)]
3436    fn default() -> Usbreq {
3437        <crate::RegValueT<Usbreq_SPEC> as RegisterValue<_>>::new(0)
3438    }
3439}
3440
3441#[doc(hidden)]
3442#[derive(Copy, Clone, Eq, PartialEq)]
3443pub struct Usbval_SPEC;
3444impl crate::sealed::RegSpec for Usbval_SPEC {
3445    type DataType = u16;
3446}
3447
3448#[doc = "USB Request Value Register"]
3449pub type Usbval = crate::RegValueT<Usbval_SPEC>;
3450
3451impl Usbval {
3452    #[doc = "Value"]
3453    #[inline(always)]
3454    pub fn wvalue(
3455        self,
3456    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Usbval_SPEC, crate::common::R>
3457    {
3458        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Usbval_SPEC,crate::common::R>::from_register(self,0)
3459    }
3460}
3461impl ::core::default::Default for Usbval {
3462    #[inline(always)]
3463    fn default() -> Usbval {
3464        <crate::RegValueT<Usbval_SPEC> as RegisterValue<_>>::new(0)
3465    }
3466}
3467
3468#[doc(hidden)]
3469#[derive(Copy, Clone, Eq, PartialEq)]
3470pub struct Usbindx_SPEC;
3471impl crate::sealed::RegSpec for Usbindx_SPEC {
3472    type DataType = u16;
3473}
3474
3475#[doc = "USB Request Index Register"]
3476pub type Usbindx = crate::RegValueT<Usbindx_SPEC>;
3477
3478impl Usbindx {
3479    #[doc = "Index"]
3480    #[inline(always)]
3481    pub fn windex(
3482        self,
3483    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Usbindx_SPEC, crate::common::R>
3484    {
3485        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Usbindx_SPEC,crate::common::R>::from_register(self,0)
3486    }
3487}
3488impl ::core::default::Default for Usbindx {
3489    #[inline(always)]
3490    fn default() -> Usbindx {
3491        <crate::RegValueT<Usbindx_SPEC> as RegisterValue<_>>::new(0)
3492    }
3493}
3494
3495#[doc(hidden)]
3496#[derive(Copy, Clone, Eq, PartialEq)]
3497pub struct Usbleng_SPEC;
3498impl crate::sealed::RegSpec for Usbleng_SPEC {
3499    type DataType = u16;
3500}
3501
3502#[doc = "USB Request Length Register"]
3503pub type Usbleng = crate::RegValueT<Usbleng_SPEC>;
3504
3505impl Usbleng {
3506    #[doc = "Length"]
3507    #[inline(always)]
3508    pub fn wlentuh(
3509        self,
3510    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Usbleng_SPEC, crate::common::R>
3511    {
3512        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Usbleng_SPEC,crate::common::R>::from_register(self,0)
3513    }
3514}
3515impl ::core::default::Default for Usbleng {
3516    #[inline(always)]
3517    fn default() -> Usbleng {
3518        <crate::RegValueT<Usbleng_SPEC> as RegisterValue<_>>::new(0)
3519    }
3520}
3521
3522#[doc(hidden)]
3523#[derive(Copy, Clone, Eq, PartialEq)]
3524pub struct Dcpcfg_SPEC;
3525impl crate::sealed::RegSpec for Dcpcfg_SPEC {
3526    type DataType = u16;
3527}
3528
3529#[doc = "DCP Configuration Register"]
3530pub type Dcpcfg = crate::RegValueT<Dcpcfg_SPEC>;
3531
3532impl Dcpcfg {
3533    #[doc = "Pipe Disabled at End of Transfer"]
3534    #[inline(always)]
3535    pub fn shtnak(
3536        self,
3537    ) -> crate::common::RegisterField<
3538        7,
3539        0x1,
3540        1,
3541        0,
3542        dcpcfg::Shtnak,
3543        dcpcfg::Shtnak,
3544        Dcpcfg_SPEC,
3545        crate::common::RW,
3546    > {
3547        crate::common::RegisterField::<
3548            7,
3549            0x1,
3550            1,
3551            0,
3552            dcpcfg::Shtnak,
3553            dcpcfg::Shtnak,
3554            Dcpcfg_SPEC,
3555            crate::common::RW,
3556        >::from_register(self, 0)
3557    }
3558}
3559impl ::core::default::Default for Dcpcfg {
3560    #[inline(always)]
3561    fn default() -> Dcpcfg {
3562        <crate::RegValueT<Dcpcfg_SPEC> as RegisterValue<_>>::new(0)
3563    }
3564}
3565pub mod dcpcfg {
3566
3567    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3568    pub struct Shtnak_SPEC;
3569    pub type Shtnak = crate::EnumBitfieldStruct<u8, Shtnak_SPEC>;
3570    impl Shtnak {
3571        #[doc = "Keep pipe open after transfer ends"]
3572        pub const _0: Self = Self::new(0);
3573
3574        #[doc = "Disable pipe after transfer ends"]
3575        pub const _1: Self = Self::new(1);
3576    }
3577}
3578#[doc(hidden)]
3579#[derive(Copy, Clone, Eq, PartialEq)]
3580pub struct Dcpmaxp_SPEC;
3581impl crate::sealed::RegSpec for Dcpmaxp_SPEC {
3582    type DataType = u16;
3583}
3584
3585#[doc = "DCP Maximum Packet Size Register"]
3586pub type Dcpmaxp = crate::RegValueT<Dcpmaxp_SPEC>;
3587
3588impl Dcpmaxp {
3589    #[doc = "Maximum Packet Size"]
3590    #[inline(always)]
3591    pub fn mxps(
3592        self,
3593    ) -> crate::common::RegisterField<0, 0x7f, 1, 0, u8, u8, Dcpmaxp_SPEC, crate::common::RW> {
3594        crate::common::RegisterField::<0,0x7f,1,0,u8,u8,Dcpmaxp_SPEC,crate::common::RW>::from_register(self,0)
3595    }
3596}
3597impl ::core::default::Default for Dcpmaxp {
3598    #[inline(always)]
3599    fn default() -> Dcpmaxp {
3600        <crate::RegValueT<Dcpmaxp_SPEC> as RegisterValue<_>>::new(64)
3601    }
3602}
3603
3604#[doc(hidden)]
3605#[derive(Copy, Clone, Eq, PartialEq)]
3606pub struct Dcpctr_SPEC;
3607impl crate::sealed::RegSpec for Dcpctr_SPEC {
3608    type DataType = u16;
3609}
3610
3611#[doc = "DCP Control Register"]
3612pub type Dcpctr = crate::RegValueT<Dcpctr_SPEC>;
3613
3614impl Dcpctr {
3615    #[doc = "Response PID"]
3616    #[inline(always)]
3617    pub fn pid(
3618        self,
3619    ) -> crate::common::RegisterField<
3620        0,
3621        0x3,
3622        1,
3623        0,
3624        dcpctr::Pid,
3625        dcpctr::Pid,
3626        Dcpctr_SPEC,
3627        crate::common::RW,
3628    > {
3629        crate::common::RegisterField::<
3630            0,
3631            0x3,
3632            1,
3633            0,
3634            dcpctr::Pid,
3635            dcpctr::Pid,
3636            Dcpctr_SPEC,
3637            crate::common::RW,
3638        >::from_register(self, 0)
3639    }
3640
3641    #[doc = "Control Transfer End Enable"]
3642    #[inline(always)]
3643    pub fn ccpl(
3644        self,
3645    ) -> crate::common::RegisterField<
3646        2,
3647        0x1,
3648        1,
3649        0,
3650        dcpctr::Ccpl,
3651        dcpctr::Ccpl,
3652        Dcpctr_SPEC,
3653        crate::common::RW,
3654    > {
3655        crate::common::RegisterField::<
3656            2,
3657            0x1,
3658            1,
3659            0,
3660            dcpctr::Ccpl,
3661            dcpctr::Ccpl,
3662            Dcpctr_SPEC,
3663            crate::common::RW,
3664        >::from_register(self, 0)
3665    }
3666
3667    #[doc = "Pipe Busy"]
3668    #[inline(always)]
3669    pub fn pbusy(
3670        self,
3671    ) -> crate::common::RegisterField<
3672        5,
3673        0x1,
3674        1,
3675        0,
3676        dcpctr::Pbusy,
3677        dcpctr::Pbusy,
3678        Dcpctr_SPEC,
3679        crate::common::R,
3680    > {
3681        crate::common::RegisterField::<
3682            5,
3683            0x1,
3684            1,
3685            0,
3686            dcpctr::Pbusy,
3687            dcpctr::Pbusy,
3688            Dcpctr_SPEC,
3689            crate::common::R,
3690        >::from_register(self, 0)
3691    }
3692
3693    #[doc = "Sequence Toggle Bit Monitor"]
3694    #[inline(always)]
3695    pub fn sqmon(
3696        self,
3697    ) -> crate::common::RegisterField<
3698        6,
3699        0x1,
3700        1,
3701        0,
3702        dcpctr::Sqmon,
3703        dcpctr::Sqmon,
3704        Dcpctr_SPEC,
3705        crate::common::R,
3706    > {
3707        crate::common::RegisterField::<
3708            6,
3709            0x1,
3710            1,
3711            0,
3712            dcpctr::Sqmon,
3713            dcpctr::Sqmon,
3714            Dcpctr_SPEC,
3715            crate::common::R,
3716        >::from_register(self, 0)
3717    }
3718
3719    #[doc = "Sequence Toggle Bit Set"]
3720    #[inline(always)]
3721    pub fn sqset(
3722        self,
3723    ) -> crate::common::RegisterField<
3724        7,
3725        0x1,
3726        1,
3727        0,
3728        dcpctr::Sqset,
3729        dcpctr::Sqset,
3730        Dcpctr_SPEC,
3731        crate::common::RW,
3732    > {
3733        crate::common::RegisterField::<
3734            7,
3735            0x1,
3736            1,
3737            0,
3738            dcpctr::Sqset,
3739            dcpctr::Sqset,
3740            Dcpctr_SPEC,
3741            crate::common::RW,
3742        >::from_register(self, 0)
3743    }
3744
3745    #[doc = "Sequence Toggle Bit Clear"]
3746    #[inline(always)]
3747    pub fn sqclr(
3748        self,
3749    ) -> crate::common::RegisterField<
3750        8,
3751        0x1,
3752        1,
3753        0,
3754        dcpctr::Sqclr,
3755        dcpctr::Sqclr,
3756        Dcpctr_SPEC,
3757        crate::common::RW,
3758    > {
3759        crate::common::RegisterField::<
3760            8,
3761            0x1,
3762            1,
3763            0,
3764            dcpctr::Sqclr,
3765            dcpctr::Sqclr,
3766            Dcpctr_SPEC,
3767            crate::common::RW,
3768        >::from_register(self, 0)
3769    }
3770
3771    #[doc = "Buffer Status"]
3772    #[inline(always)]
3773    pub fn bsts(
3774        self,
3775    ) -> crate::common::RegisterField<
3776        15,
3777        0x1,
3778        1,
3779        0,
3780        dcpctr::Bsts,
3781        dcpctr::Bsts,
3782        Dcpctr_SPEC,
3783        crate::common::R,
3784    > {
3785        crate::common::RegisterField::<
3786            15,
3787            0x1,
3788            1,
3789            0,
3790            dcpctr::Bsts,
3791            dcpctr::Bsts,
3792            Dcpctr_SPEC,
3793            crate::common::R,
3794        >::from_register(self, 0)
3795    }
3796}
3797impl ::core::default::Default for Dcpctr {
3798    #[inline(always)]
3799    fn default() -> Dcpctr {
3800        <crate::RegValueT<Dcpctr_SPEC> as RegisterValue<_>>::new(64)
3801    }
3802}
3803pub mod dcpctr {
3804
3805    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3806    pub struct Pid_SPEC;
3807    pub type Pid = crate::EnumBitfieldStruct<u8, Pid_SPEC>;
3808    impl Pid {
3809        #[doc = "NAK response"]
3810        pub const _00: Self = Self::new(0);
3811
3812        #[doc = "BUF response (depends on the buffer state)"]
3813        pub const _01: Self = Self::new(1);
3814
3815        #[doc = "STALL response"]
3816        pub const _10: Self = Self::new(2);
3817
3818        #[doc = "STALL response"]
3819        pub const _11: Self = Self::new(3);
3820    }
3821    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3822    pub struct Ccpl_SPEC;
3823    pub type Ccpl = crate::EnumBitfieldStruct<u8, Ccpl_SPEC>;
3824    impl Ccpl {
3825        #[doc = "Disable control transfer completion"]
3826        pub const _0: Self = Self::new(0);
3827
3828        #[doc = "Enable control transfer completion"]
3829        pub const _1: Self = Self::new(1);
3830    }
3831    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3832    pub struct Pbusy_SPEC;
3833    pub type Pbusy = crate::EnumBitfieldStruct<u8, Pbusy_SPEC>;
3834    impl Pbusy {
3835        #[doc = "DCP not used for the USB bus"]
3836        pub const _0: Self = Self::new(0);
3837
3838        #[doc = "DCP in use for the USB bus"]
3839        pub const _1: Self = Self::new(1);
3840    }
3841    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3842    pub struct Sqmon_SPEC;
3843    pub type Sqmon = crate::EnumBitfieldStruct<u8, Sqmon_SPEC>;
3844    impl Sqmon {
3845        #[doc = "DATA0"]
3846        pub const _0: Self = Self::new(0);
3847
3848        #[doc = "DATA1"]
3849        pub const _1: Self = Self::new(1);
3850    }
3851    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3852    pub struct Sqset_SPEC;
3853    pub type Sqset = crate::EnumBitfieldStruct<u8, Sqset_SPEC>;
3854    impl Sqset {
3855        #[doc = "Invalid (writing 0 has no effect)"]
3856        pub const _0: Self = Self::new(0);
3857
3858        #[doc = "Set the expected value for the next transaction to DATA1"]
3859        pub const _1: Self = Self::new(1);
3860    }
3861    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3862    pub struct Sqclr_SPEC;
3863    pub type Sqclr = crate::EnumBitfieldStruct<u8, Sqclr_SPEC>;
3864    impl Sqclr {
3865        #[doc = "Invalid (writing 0 has no effect)"]
3866        pub const _0: Self = Self::new(0);
3867
3868        #[doc = "Clear the expected value for the next transaction to DATA0"]
3869        pub const _1: Self = Self::new(1);
3870    }
3871    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3872    pub struct Bsts_SPEC;
3873    pub type Bsts = crate::EnumBitfieldStruct<u8, Bsts_SPEC>;
3874    impl Bsts {
3875        #[doc = "Buffer access disabled"]
3876        pub const _0: Self = Self::new(0);
3877
3878        #[doc = "Buffer access enabled"]
3879        pub const _1: Self = Self::new(1);
3880    }
3881}
3882#[doc(hidden)]
3883#[derive(Copy, Clone, Eq, PartialEq)]
3884pub struct Pipesel_SPEC;
3885impl crate::sealed::RegSpec for Pipesel_SPEC {
3886    type DataType = u16;
3887}
3888
3889#[doc = "Pipe Window Select Register"]
3890pub type Pipesel = crate::RegValueT<Pipesel_SPEC>;
3891
3892impl Pipesel {
3893    #[doc = "Pipe Window Select"]
3894    #[inline(always)]
3895    pub fn pipesel(
3896        self,
3897    ) -> crate::common::RegisterField<
3898        0,
3899        0xf,
3900        1,
3901        0,
3902        pipesel::Pipesel,
3903        pipesel::Pipesel,
3904        Pipesel_SPEC,
3905        crate::common::RW,
3906    > {
3907        crate::common::RegisterField::<
3908            0,
3909            0xf,
3910            1,
3911            0,
3912            pipesel::Pipesel,
3913            pipesel::Pipesel,
3914            Pipesel_SPEC,
3915            crate::common::RW,
3916        >::from_register(self, 0)
3917    }
3918}
3919impl ::core::default::Default for Pipesel {
3920    #[inline(always)]
3921    fn default() -> Pipesel {
3922        <crate::RegValueT<Pipesel_SPEC> as RegisterValue<_>>::new(0)
3923    }
3924}
3925pub mod pipesel {
3926
3927    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3928    pub struct Pipesel_SPEC;
3929    pub type Pipesel = crate::EnumBitfieldStruct<u8, Pipesel_SPEC>;
3930    impl Pipesel {
3931        #[doc = "No pipe selected"]
3932        pub const _0_X_0: Self = Self::new(0);
3933
3934        #[doc = "Pipe 4"]
3935        pub const _0_X_4: Self = Self::new(4);
3936
3937        #[doc = "Pipe 5"]
3938        pub const _0_X_5: Self = Self::new(5);
3939
3940        #[doc = "Pipe 6"]
3941        pub const _0_X_6: Self = Self::new(6);
3942
3943        #[doc = "Pipe 7"]
3944        pub const _0_X_7: Self = Self::new(7);
3945
3946        #[doc = "Setting prohibited"]
3947        pub const OTHERS: Self = Self::new(0);
3948    }
3949}
3950#[doc(hidden)]
3951#[derive(Copy, Clone, Eq, PartialEq)]
3952pub struct Pipecfg_SPEC;
3953impl crate::sealed::RegSpec for Pipecfg_SPEC {
3954    type DataType = u16;
3955}
3956
3957#[doc = "Pipe Configuration Register"]
3958pub type Pipecfg = crate::RegValueT<Pipecfg_SPEC>;
3959
3960impl Pipecfg {
3961    #[doc = "Endpoint Number"]
3962    #[inline(always)]
3963    pub fn epnum(
3964        self,
3965    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, Pipecfg_SPEC, crate::common::RW> {
3966        crate::common::RegisterField::<0,0xf,1,0,u8,u8,Pipecfg_SPEC,crate::common::RW>::from_register(self,0)
3967    }
3968
3969    #[doc = "Transfer Direction"]
3970    #[inline(always)]
3971    pub fn dir(
3972        self,
3973    ) -> crate::common::RegisterField<
3974        4,
3975        0x1,
3976        1,
3977        0,
3978        pipecfg::Dir,
3979        pipecfg::Dir,
3980        Pipecfg_SPEC,
3981        crate::common::RW,
3982    > {
3983        crate::common::RegisterField::<
3984            4,
3985            0x1,
3986            1,
3987            0,
3988            pipecfg::Dir,
3989            pipecfg::Dir,
3990            Pipecfg_SPEC,
3991            crate::common::RW,
3992        >::from_register(self, 0)
3993    }
3994
3995    #[doc = "Pipe Disabled at End of Transfer"]
3996    #[inline(always)]
3997    pub fn shtnak(
3998        self,
3999    ) -> crate::common::RegisterField<
4000        7,
4001        0x1,
4002        1,
4003        0,
4004        pipecfg::Shtnak,
4005        pipecfg::Shtnak,
4006        Pipecfg_SPEC,
4007        crate::common::RW,
4008    > {
4009        crate::common::RegisterField::<
4010            7,
4011            0x1,
4012            1,
4013            0,
4014            pipecfg::Shtnak,
4015            pipecfg::Shtnak,
4016            Pipecfg_SPEC,
4017            crate::common::RW,
4018        >::from_register(self, 0)
4019    }
4020
4021    #[doc = "Double Buffer Mode"]
4022    #[inline(always)]
4023    pub fn dblb(
4024        self,
4025    ) -> crate::common::RegisterField<
4026        9,
4027        0x1,
4028        1,
4029        0,
4030        pipecfg::Dblb,
4031        pipecfg::Dblb,
4032        Pipecfg_SPEC,
4033        crate::common::RW,
4034    > {
4035        crate::common::RegisterField::<
4036            9,
4037            0x1,
4038            1,
4039            0,
4040            pipecfg::Dblb,
4041            pipecfg::Dblb,
4042            Pipecfg_SPEC,
4043            crate::common::RW,
4044        >::from_register(self, 0)
4045    }
4046
4047    #[doc = "BRDY Interrupt Operation Specification"]
4048    #[inline(always)]
4049    pub fn bfre(
4050        self,
4051    ) -> crate::common::RegisterField<
4052        10,
4053        0x1,
4054        1,
4055        0,
4056        pipecfg::Bfre,
4057        pipecfg::Bfre,
4058        Pipecfg_SPEC,
4059        crate::common::RW,
4060    > {
4061        crate::common::RegisterField::<
4062            10,
4063            0x1,
4064            1,
4065            0,
4066            pipecfg::Bfre,
4067            pipecfg::Bfre,
4068            Pipecfg_SPEC,
4069            crate::common::RW,
4070        >::from_register(self, 0)
4071    }
4072
4073    #[doc = "Transfer Type"]
4074    #[inline(always)]
4075    pub fn r#type(
4076        self,
4077    ) -> crate::common::RegisterField<
4078        14,
4079        0x3,
4080        1,
4081        0,
4082        pipecfg::Type,
4083        pipecfg::Type,
4084        Pipecfg_SPEC,
4085        crate::common::RW,
4086    > {
4087        crate::common::RegisterField::<
4088            14,
4089            0x3,
4090            1,
4091            0,
4092            pipecfg::Type,
4093            pipecfg::Type,
4094            Pipecfg_SPEC,
4095            crate::common::RW,
4096        >::from_register(self, 0)
4097    }
4098}
4099impl ::core::default::Default for Pipecfg {
4100    #[inline(always)]
4101    fn default() -> Pipecfg {
4102        <crate::RegValueT<Pipecfg_SPEC> as RegisterValue<_>>::new(0)
4103    }
4104}
4105pub mod pipecfg {
4106
4107    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4108    pub struct Dir_SPEC;
4109    pub type Dir = crate::EnumBitfieldStruct<u8, Dir_SPEC>;
4110    impl Dir {
4111        #[doc = "Receiving direction"]
4112        pub const _0: Self = Self::new(0);
4113
4114        #[doc = "Transmitting direction"]
4115        pub const _1: Self = Self::new(1);
4116    }
4117    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4118    pub struct Shtnak_SPEC;
4119    pub type Shtnak = crate::EnumBitfieldStruct<u8, Shtnak_SPEC>;
4120    impl Shtnak {
4121        #[doc = "Continue pipe operation after transfer ends"]
4122        pub const _0: Self = Self::new(0);
4123
4124        #[doc = "Disable pipe after transfer ends"]
4125        pub const _1: Self = Self::new(1);
4126    }
4127    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4128    pub struct Dblb_SPEC;
4129    pub type Dblb = crate::EnumBitfieldStruct<u8, Dblb_SPEC>;
4130    impl Dblb {
4131        #[doc = "Single buffer"]
4132        pub const _0: Self = Self::new(0);
4133
4134        #[doc = "Double buffer"]
4135        pub const _1: Self = Self::new(1);
4136    }
4137    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4138    pub struct Bfre_SPEC;
4139    pub type Bfre = crate::EnumBitfieldStruct<u8, Bfre_SPEC>;
4140    impl Bfre {
4141        #[doc = "Generate BRDY interrupt on transmitting or receiving data"]
4142        pub const _0: Self = Self::new(0);
4143
4144        #[doc = "Generate BRDY interrupt on completion of reading data"]
4145        pub const _1: Self = Self::new(1);
4146    }
4147    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4148    pub struct Type_SPEC;
4149    pub type Type = crate::EnumBitfieldStruct<u8, Type_SPEC>;
4150    impl Type {
4151        #[doc = "Pipe not used"]
4152        pub const _00: Self = Self::new(0);
4153
4154        #[doc = "Pipes 4 and 5: Bulk transfer Pipes 6 and 7: Setting prohibited"]
4155        pub const _01: Self = Self::new(1);
4156
4157        #[doc = "Pipes 4 and 5: Setting prohibited Pipes 6 and 7: Interrupt transfer"]
4158        pub const _10: Self = Self::new(2);
4159
4160        #[doc = "Pipes 4 and 5: Setting prohibited Pipes 6 and 7: Setting prohibited"]
4161        pub const _11: Self = Self::new(3);
4162    }
4163}
4164#[doc(hidden)]
4165#[derive(Copy, Clone, Eq, PartialEq)]
4166pub struct Pipemaxp_SPEC;
4167impl crate::sealed::RegSpec for Pipemaxp_SPEC {
4168    type DataType = u16;
4169}
4170
4171#[doc = "Pipe Maximum Packet Size Register"]
4172pub type Pipemaxp = crate::RegValueT<Pipemaxp_SPEC>;
4173
4174impl Pipemaxp {
4175    #[doc = "Maximum Packet Size"]
4176    #[inline(always)]
4177    pub fn mxps(
4178        self,
4179    ) -> crate::common::RegisterField<0, 0x1ff, 1, 0, u16, u16, Pipemaxp_SPEC, crate::common::RW>
4180    {
4181        crate::common::RegisterField::<0,0x1ff,1,0,u16,u16,Pipemaxp_SPEC,crate::common::RW>::from_register(self,0)
4182    }
4183}
4184impl ::core::default::Default for Pipemaxp {
4185    #[inline(always)]
4186    fn default() -> Pipemaxp {
4187        <crate::RegValueT<Pipemaxp_SPEC> as RegisterValue<_>>::new(0)
4188    }
4189}
4190
4191#[doc(hidden)]
4192#[derive(Copy, Clone, Eq, PartialEq)]
4193pub struct Pipectr_SPEC;
4194impl crate::sealed::RegSpec for Pipectr_SPEC {
4195    type DataType = u16;
4196}
4197
4198#[doc = "PIPE%s Control Registers"]
4199pub type Pipectr = crate::RegValueT<Pipectr_SPEC>;
4200
4201impl Pipectr {
4202    #[doc = "Response PID"]
4203    #[inline(always)]
4204    pub fn pid(
4205        self,
4206    ) -> crate::common::RegisterField<
4207        0,
4208        0x3,
4209        1,
4210        0,
4211        pipectr::Pid,
4212        pipectr::Pid,
4213        Pipectr_SPEC,
4214        crate::common::RW,
4215    > {
4216        crate::common::RegisterField::<
4217            0,
4218            0x3,
4219            1,
4220            0,
4221            pipectr::Pid,
4222            pipectr::Pid,
4223            Pipectr_SPEC,
4224            crate::common::RW,
4225        >::from_register(self, 0)
4226    }
4227
4228    #[doc = "Pipe Busy"]
4229    #[inline(always)]
4230    pub fn pbusy(
4231        self,
4232    ) -> crate::common::RegisterField<
4233        5,
4234        0x1,
4235        1,
4236        0,
4237        pipectr::Pbusy,
4238        pipectr::Pbusy,
4239        Pipectr_SPEC,
4240        crate::common::R,
4241    > {
4242        crate::common::RegisterField::<
4243            5,
4244            0x1,
4245            1,
4246            0,
4247            pipectr::Pbusy,
4248            pipectr::Pbusy,
4249            Pipectr_SPEC,
4250            crate::common::R,
4251        >::from_register(self, 0)
4252    }
4253
4254    #[doc = "Sequence Toggle Bit Confirmation"]
4255    #[inline(always)]
4256    pub fn sqmon(
4257        self,
4258    ) -> crate::common::RegisterField<
4259        6,
4260        0x1,
4261        1,
4262        0,
4263        pipectr::Sqmon,
4264        pipectr::Sqmon,
4265        Pipectr_SPEC,
4266        crate::common::R,
4267    > {
4268        crate::common::RegisterField::<
4269            6,
4270            0x1,
4271            1,
4272            0,
4273            pipectr::Sqmon,
4274            pipectr::Sqmon,
4275            Pipectr_SPEC,
4276            crate::common::R,
4277        >::from_register(self, 0)
4278    }
4279
4280    #[doc = "Sequence Toggle Bit Set"]
4281    #[inline(always)]
4282    pub fn sqset(
4283        self,
4284    ) -> crate::common::RegisterField<
4285        7,
4286        0x1,
4287        1,
4288        0,
4289        pipectr::Sqset,
4290        pipectr::Sqset,
4291        Pipectr_SPEC,
4292        crate::common::W,
4293    > {
4294        crate::common::RegisterField::<
4295            7,
4296            0x1,
4297            1,
4298            0,
4299            pipectr::Sqset,
4300            pipectr::Sqset,
4301            Pipectr_SPEC,
4302            crate::common::W,
4303        >::from_register(self, 0)
4304    }
4305
4306    #[doc = "Sequence Toggle Bit Clear"]
4307    #[inline(always)]
4308    pub fn sqclr(
4309        self,
4310    ) -> crate::common::RegisterField<
4311        8,
4312        0x1,
4313        1,
4314        0,
4315        pipectr::Sqclr,
4316        pipectr::Sqclr,
4317        Pipectr_SPEC,
4318        crate::common::W,
4319    > {
4320        crate::common::RegisterField::<
4321            8,
4322            0x1,
4323            1,
4324            0,
4325            pipectr::Sqclr,
4326            pipectr::Sqclr,
4327            Pipectr_SPEC,
4328            crate::common::W,
4329        >::from_register(self, 0)
4330    }
4331
4332    #[doc = "Auto Buffer Clear Mode"]
4333    #[inline(always)]
4334    pub fn aclrm(
4335        self,
4336    ) -> crate::common::RegisterField<
4337        9,
4338        0x1,
4339        1,
4340        0,
4341        pipectr::Aclrm,
4342        pipectr::Aclrm,
4343        Pipectr_SPEC,
4344        crate::common::RW,
4345    > {
4346        crate::common::RegisterField::<
4347            9,
4348            0x1,
4349            1,
4350            0,
4351            pipectr::Aclrm,
4352            pipectr::Aclrm,
4353            Pipectr_SPEC,
4354            crate::common::RW,
4355        >::from_register(self, 0)
4356    }
4357
4358    #[doc = "Buffer Status"]
4359    #[inline(always)]
4360    pub fn bsts(
4361        self,
4362    ) -> crate::common::RegisterField<
4363        15,
4364        0x1,
4365        1,
4366        0,
4367        pipectr::Bsts,
4368        pipectr::Bsts,
4369        Pipectr_SPEC,
4370        crate::common::R,
4371    > {
4372        crate::common::RegisterField::<
4373            15,
4374            0x1,
4375            1,
4376            0,
4377            pipectr::Bsts,
4378            pipectr::Bsts,
4379            Pipectr_SPEC,
4380            crate::common::R,
4381        >::from_register(self, 0)
4382    }
4383}
4384impl ::core::default::Default for Pipectr {
4385    #[inline(always)]
4386    fn default() -> Pipectr {
4387        <crate::RegValueT<Pipectr_SPEC> as RegisterValue<_>>::new(0)
4388    }
4389}
4390pub mod pipectr {
4391
4392    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4393    pub struct Pid_SPEC;
4394    pub type Pid = crate::EnumBitfieldStruct<u8, Pid_SPEC>;
4395    impl Pid {
4396        #[doc = "NAK response"]
4397        pub const _00: Self = Self::new(0);
4398
4399        #[doc = "BUF response (depends buffer state)"]
4400        pub const _01: Self = Self::new(1);
4401
4402        #[doc = "STALL response"]
4403        pub const _10: Self = Self::new(2);
4404
4405        #[doc = "STALL response"]
4406        pub const _11: Self = Self::new(3);
4407    }
4408    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4409    pub struct Pbusy_SPEC;
4410    pub type Pbusy = crate::EnumBitfieldStruct<u8, Pbusy_SPEC>;
4411    impl Pbusy {
4412        #[doc = "Pipe n not in use for the transaction"]
4413        pub const _0: Self = Self::new(0);
4414
4415        #[doc = "Pipe n in use for the transaction"]
4416        pub const _1: Self = Self::new(1);
4417    }
4418    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4419    pub struct Sqmon_SPEC;
4420    pub type Sqmon = crate::EnumBitfieldStruct<u8, Sqmon_SPEC>;
4421    impl Sqmon {
4422        #[doc = "DATA0"]
4423        pub const _0: Self = Self::new(0);
4424
4425        #[doc = "DATA1"]
4426        pub const _1: Self = Self::new(1);
4427    }
4428    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4429    pub struct Sqset_SPEC;
4430    pub type Sqset = crate::EnumBitfieldStruct<u8, Sqset_SPEC>;
4431    impl Sqset {
4432        #[doc = "Invalid (writing 0 has no effect)"]
4433        pub const _0: Self = Self::new(0);
4434
4435        #[doc = "Set the expected value for the next transaction to DATA0"]
4436        pub const _1: Self = Self::new(1);
4437    }
4438    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4439    pub struct Sqclr_SPEC;
4440    pub type Sqclr = crate::EnumBitfieldStruct<u8, Sqclr_SPEC>;
4441    impl Sqclr {
4442        #[doc = "Invalid (writing 0 has no effect)"]
4443        pub const _0: Self = Self::new(0);
4444
4445        #[doc = "Clear the expected value for the next transaction to DATA0"]
4446        pub const _1: Self = Self::new(1);
4447    }
4448    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4449    pub struct Aclrm_SPEC;
4450    pub type Aclrm = crate::EnumBitfieldStruct<u8, Aclrm_SPEC>;
4451    impl Aclrm {
4452        #[doc = "Disable"]
4453        pub const _0: Self = Self::new(0);
4454
4455        #[doc = "Enable (all buffers initialized)"]
4456        pub const _1: Self = Self::new(1);
4457    }
4458    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4459    pub struct Bsts_SPEC;
4460    pub type Bsts = crate::EnumBitfieldStruct<u8, Bsts_SPEC>;
4461    impl Bsts {
4462        #[doc = "Buffer access disabled"]
4463        pub const _0: Self = Self::new(0);
4464
4465        #[doc = "Buffer access enabled"]
4466        pub const _1: Self = Self::new(1);
4467    }
4468}
4469#[doc(hidden)]
4470#[derive(Copy, Clone, Eq, PartialEq)]
4471pub struct Pipetre_SPEC;
4472impl crate::sealed::RegSpec for Pipetre_SPEC {
4473    type DataType = u16;
4474}
4475
4476#[doc = "PIPE%s Transaction Counter Enable Register"]
4477pub type Pipetre = crate::RegValueT<Pipetre_SPEC>;
4478
4479impl Pipetre {
4480    #[doc = "Transaction Counter Clear"]
4481    #[inline(always)]
4482    pub fn trclr(
4483        self,
4484    ) -> crate::common::RegisterField<
4485        8,
4486        0x1,
4487        1,
4488        0,
4489        pipetre::Trclr,
4490        pipetre::Trclr,
4491        Pipetre_SPEC,
4492        crate::common::RW,
4493    > {
4494        crate::common::RegisterField::<
4495            8,
4496            0x1,
4497            1,
4498            0,
4499            pipetre::Trclr,
4500            pipetre::Trclr,
4501            Pipetre_SPEC,
4502            crate::common::RW,
4503        >::from_register(self, 0)
4504    }
4505
4506    #[doc = "Transaction Counter Enable"]
4507    #[inline(always)]
4508    pub fn trenb(
4509        self,
4510    ) -> crate::common::RegisterField<
4511        9,
4512        0x1,
4513        1,
4514        0,
4515        pipetre::Trenb,
4516        pipetre::Trenb,
4517        Pipetre_SPEC,
4518        crate::common::RW,
4519    > {
4520        crate::common::RegisterField::<
4521            9,
4522            0x1,
4523            1,
4524            0,
4525            pipetre::Trenb,
4526            pipetre::Trenb,
4527            Pipetre_SPEC,
4528            crate::common::RW,
4529        >::from_register(self, 0)
4530    }
4531}
4532impl ::core::default::Default for Pipetre {
4533    #[inline(always)]
4534    fn default() -> Pipetre {
4535        <crate::RegValueT<Pipetre_SPEC> as RegisterValue<_>>::new(0)
4536    }
4537}
4538pub mod pipetre {
4539
4540    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4541    pub struct Trclr_SPEC;
4542    pub type Trclr = crate::EnumBitfieldStruct<u8, Trclr_SPEC>;
4543    impl Trclr {
4544        #[doc = "Invalid (writing 0 has no effect)"]
4545        pub const _0: Self = Self::new(0);
4546
4547        #[doc = "Clear counter value"]
4548        pub const _1: Self = Self::new(1);
4549    }
4550    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4551    pub struct Trenb_SPEC;
4552    pub type Trenb = crate::EnumBitfieldStruct<u8, Trenb_SPEC>;
4553    impl Trenb {
4554        #[doc = "Disable transaction counter"]
4555        pub const _0: Self = Self::new(0);
4556
4557        #[doc = "Enable transaction counter"]
4558        pub const _1: Self = Self::new(1);
4559    }
4560}
4561#[doc(hidden)]
4562#[derive(Copy, Clone, Eq, PartialEq)]
4563pub struct Pipetrn_SPEC;
4564impl crate::sealed::RegSpec for Pipetrn_SPEC {
4565    type DataType = u16;
4566}
4567
4568#[doc = "PIPE%s Transaction Counter Register"]
4569pub type Pipetrn = crate::RegValueT<Pipetrn_SPEC>;
4570
4571impl Pipetrn {
4572    #[doc = "Transaction Counter"]
4573    #[inline(always)]
4574    pub fn trncnt(
4575        self,
4576    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Pipetrn_SPEC, crate::common::RW>
4577    {
4578        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Pipetrn_SPEC,crate::common::RW>::from_register(self,0)
4579    }
4580}
4581impl ::core::default::Default for Pipetrn {
4582    #[inline(always)]
4583    fn default() -> Pipetrn {
4584        <crate::RegValueT<Pipetrn_SPEC> as RegisterValue<_>>::new(0)
4585    }
4586}
4587
4588#[doc(hidden)]
4589#[derive(Copy, Clone, Eq, PartialEq)]
4590pub struct Physectrl_SPEC;
4591impl crate::sealed::RegSpec for Physectrl_SPEC {
4592    type DataType = u32;
4593}
4594
4595#[doc = "PHY Single-ended Receiver Control Register"]
4596pub type Physectrl = crate::RegValueT<Physectrl_SPEC>;
4597
4598impl Physectrl {
4599    #[doc = "Single-ended Receiver Enable"]
4600    #[inline(always)]
4601    pub fn cnen(
4602        self,
4603    ) -> crate::common::RegisterField<
4604        4,
4605        0x1,
4606        1,
4607        0,
4608        physectrl::Cnen,
4609        physectrl::Cnen,
4610        Physectrl_SPEC,
4611        crate::common::RW,
4612    > {
4613        crate::common::RegisterField::<
4614            4,
4615            0x1,
4616            1,
4617            0,
4618            physectrl::Cnen,
4619            physectrl::Cnen,
4620            Physectrl_SPEC,
4621            crate::common::RW,
4622        >::from_register(self, 0)
4623    }
4624}
4625impl ::core::default::Default for Physectrl {
4626    #[inline(always)]
4627    fn default() -> Physectrl {
4628        <crate::RegValueT<Physectrl_SPEC> as RegisterValue<_>>::new(0)
4629    }
4630}
4631pub mod physectrl {
4632
4633    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4634    pub struct Cnen_SPEC;
4635    pub type Cnen = crate::EnumBitfieldStruct<u8, Cnen_SPEC>;
4636    impl Cnen {
4637        #[doc = "Single-ended receiver operation is disabled"]
4638        pub const _0: Self = Self::new(0);
4639
4640        #[doc = "Single-ended receiver operation is enabled"]
4641        pub const _1: Self = Self::new(1);
4642    }
4643}
4644#[doc(hidden)]
4645#[derive(Copy, Clone, Eq, PartialEq)]
4646pub struct Dpusr0R_SPEC;
4647impl crate::sealed::RegSpec for Dpusr0R_SPEC {
4648    type DataType = u32;
4649}
4650
4651#[doc = "Deep Software Standby USB Transceiver Control/Pin Monitor Register"]
4652pub type Dpusr0R = crate::RegValueT<Dpusr0R_SPEC>;
4653
4654impl Dpusr0R {
4655    #[doc = "USB Single-ended Receiver Control"]
4656    #[inline(always)]
4657    pub fn srpc0(
4658        self,
4659    ) -> crate::common::RegisterField<
4660        0,
4661        0x1,
4662        1,
4663        0,
4664        dpusr0r::Srpc0,
4665        dpusr0r::Srpc0,
4666        Dpusr0R_SPEC,
4667        crate::common::RW,
4668    > {
4669        crate::common::RegisterField::<
4670            0,
4671            0x1,
4672            1,
4673            0,
4674            dpusr0r::Srpc0,
4675            dpusr0r::Srpc0,
4676            Dpusr0R_SPEC,
4677            crate::common::RW,
4678        >::from_register(self, 0)
4679    }
4680
4681    #[doc = "DP Pull-Up Resistor Control"]
4682    #[inline(always)]
4683    pub fn rpue0(
4684        self,
4685    ) -> crate::common::RegisterField<
4686        1,
4687        0x1,
4688        1,
4689        0,
4690        dpusr0r::Rpue0,
4691        dpusr0r::Rpue0,
4692        Dpusr0R_SPEC,
4693        crate::common::RW,
4694    > {
4695        crate::common::RegisterField::<
4696            1,
4697            0x1,
4698            1,
4699            0,
4700            dpusr0r::Rpue0,
4701            dpusr0r::Rpue0,
4702            Dpusr0R_SPEC,
4703            crate::common::RW,
4704        >::from_register(self, 0)
4705    }
4706
4707    #[doc = "USB Transceiver Output Fix"]
4708    #[inline(always)]
4709    pub fn fixphy0(
4710        self,
4711    ) -> crate::common::RegisterField<
4712        4,
4713        0x1,
4714        1,
4715        0,
4716        dpusr0r::Fixphy0,
4717        dpusr0r::Fixphy0,
4718        Dpusr0R_SPEC,
4719        crate::common::RW,
4720    > {
4721        crate::common::RegisterField::<
4722            4,
4723            0x1,
4724            1,
4725            0,
4726            dpusr0r::Fixphy0,
4727            dpusr0r::Fixphy0,
4728            Dpusr0R_SPEC,
4729            crate::common::RW,
4730        >::from_register(self, 0)
4731    }
4732
4733    #[doc = "USB D+ Input"]
4734    #[inline(always)]
4735    pub fn dp0(self) -> crate::common::RegisterFieldBool<16, 1, 0, Dpusr0R_SPEC, crate::common::R> {
4736        crate::common::RegisterFieldBool::<16, 1, 0, Dpusr0R_SPEC, crate::common::R>::from_register(
4737            self, 0,
4738        )
4739    }
4740
4741    #[doc = "USB D- Input"]
4742    #[inline(always)]
4743    pub fn dm0(self) -> crate::common::RegisterFieldBool<17, 1, 0, Dpusr0R_SPEC, crate::common::R> {
4744        crate::common::RegisterFieldBool::<17, 1, 0, Dpusr0R_SPEC, crate::common::R>::from_register(
4745            self, 0,
4746        )
4747    }
4748
4749    #[doc = "USB VBUS Input"]
4750    #[inline(always)]
4751    pub fn dvbsts0(
4752        self,
4753    ) -> crate::common::RegisterFieldBool<23, 1, 0, Dpusr0R_SPEC, crate::common::R> {
4754        crate::common::RegisterFieldBool::<23, 1, 0, Dpusr0R_SPEC, crate::common::R>::from_register(
4755            self, 0,
4756        )
4757    }
4758}
4759impl ::core::default::Default for Dpusr0R {
4760    #[inline(always)]
4761    fn default() -> Dpusr0R {
4762        <crate::RegValueT<Dpusr0R_SPEC> as RegisterValue<_>>::new(0)
4763    }
4764}
4765pub mod dpusr0r {
4766
4767    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4768    pub struct Srpc0_SPEC;
4769    pub type Srpc0 = crate::EnumBitfieldStruct<u8, Srpc0_SPEC>;
4770    impl Srpc0 {
4771        #[doc = "Disable input through DP and DM inputs"]
4772        pub const _0: Self = Self::new(0);
4773
4774        #[doc = "Enable input through DP and DM inputs"]
4775        pub const _1: Self = Self::new(1);
4776    }
4777    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4778    pub struct Rpue0_SPEC;
4779    pub type Rpue0 = crate::EnumBitfieldStruct<u8, Rpue0_SPEC>;
4780    impl Rpue0 {
4781        #[doc = "Disable DP pull-up resistor"]
4782        pub const _0: Self = Self::new(0);
4783
4784        #[doc = "Enable DP pull-up resistor"]
4785        pub const _1: Self = Self::new(1);
4786    }
4787    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4788    pub struct Fixphy0_SPEC;
4789    pub type Fixphy0 = crate::EnumBitfieldStruct<u8, Fixphy0_SPEC>;
4790    impl Fixphy0 {
4791        #[doc = "Fix outputs in Normal mode and on return from Deep Software Standby mode"]
4792        pub const _0: Self = Self::new(0);
4793
4794        #[doc = "Fix outputs on transition to Deep Software Standby mode"]
4795        pub const _1: Self = Self::new(1);
4796    }
4797}
4798#[doc(hidden)]
4799#[derive(Copy, Clone, Eq, PartialEq)]
4800pub struct Dpusr1R_SPEC;
4801impl crate::sealed::RegSpec for Dpusr1R_SPEC {
4802    type DataType = u32;
4803}
4804
4805#[doc = "Deep Software Standby USB Suspend/Resume Interrupt Register"]
4806pub type Dpusr1R = crate::RegValueT<Dpusr1R_SPEC>;
4807
4808impl Dpusr1R {
4809    #[doc = "USB DP Interrupt Enable/Clear"]
4810    #[inline(always)]
4811    pub fn dpinte0(
4812        self,
4813    ) -> crate::common::RegisterField<
4814        0,
4815        0x1,
4816        1,
4817        0,
4818        dpusr1r::Dpinte0,
4819        dpusr1r::Dpinte0,
4820        Dpusr1R_SPEC,
4821        crate::common::RW,
4822    > {
4823        crate::common::RegisterField::<
4824            0,
4825            0x1,
4826            1,
4827            0,
4828            dpusr1r::Dpinte0,
4829            dpusr1r::Dpinte0,
4830            Dpusr1R_SPEC,
4831            crate::common::RW,
4832        >::from_register(self, 0)
4833    }
4834
4835    #[doc = "USB DM Interrupt Enable/Clear"]
4836    #[inline(always)]
4837    pub fn dminte0(
4838        self,
4839    ) -> crate::common::RegisterField<
4840        1,
4841        0x1,
4842        1,
4843        0,
4844        dpusr1r::Dminte0,
4845        dpusr1r::Dminte0,
4846        Dpusr1R_SPEC,
4847        crate::common::RW,
4848    > {
4849        crate::common::RegisterField::<
4850            1,
4851            0x1,
4852            1,
4853            0,
4854            dpusr1r::Dminte0,
4855            dpusr1r::Dminte0,
4856            Dpusr1R_SPEC,
4857            crate::common::RW,
4858        >::from_register(self, 0)
4859    }
4860
4861    #[doc = "USB VBUS Interrupt Enable/Clear"]
4862    #[inline(always)]
4863    pub fn dvbse0(
4864        self,
4865    ) -> crate::common::RegisterField<
4866        7,
4867        0x1,
4868        1,
4869        0,
4870        dpusr1r::Dvbse0,
4871        dpusr1r::Dvbse0,
4872        Dpusr1R_SPEC,
4873        crate::common::RW,
4874    > {
4875        crate::common::RegisterField::<
4876            7,
4877            0x1,
4878            1,
4879            0,
4880            dpusr1r::Dvbse0,
4881            dpusr1r::Dvbse0,
4882            Dpusr1R_SPEC,
4883            crate::common::RW,
4884        >::from_register(self, 0)
4885    }
4886
4887    #[doc = "USB DP Interrupt Source Recovery"]
4888    #[inline(always)]
4889    pub fn dpint0(
4890        self,
4891    ) -> crate::common::RegisterField<
4892        16,
4893        0x1,
4894        1,
4895        0,
4896        dpusr1r::Dpint0,
4897        dpusr1r::Dpint0,
4898        Dpusr1R_SPEC,
4899        crate::common::R,
4900    > {
4901        crate::common::RegisterField::<
4902            16,
4903            0x1,
4904            1,
4905            0,
4906            dpusr1r::Dpint0,
4907            dpusr1r::Dpint0,
4908            Dpusr1R_SPEC,
4909            crate::common::R,
4910        >::from_register(self, 0)
4911    }
4912
4913    #[doc = "USB DM Interrupt Source Recovery"]
4914    #[inline(always)]
4915    pub fn dmint0(
4916        self,
4917    ) -> crate::common::RegisterField<
4918        17,
4919        0x1,
4920        1,
4921        0,
4922        dpusr1r::Dmint0,
4923        dpusr1r::Dmint0,
4924        Dpusr1R_SPEC,
4925        crate::common::R,
4926    > {
4927        crate::common::RegisterField::<
4928            17,
4929            0x1,
4930            1,
4931            0,
4932            dpusr1r::Dmint0,
4933            dpusr1r::Dmint0,
4934            Dpusr1R_SPEC,
4935            crate::common::R,
4936        >::from_register(self, 0)
4937    }
4938
4939    #[doc = "USB VBUS Interrupt Source Recovery"]
4940    #[inline(always)]
4941    pub fn dvbint0(
4942        self,
4943    ) -> crate::common::RegisterField<
4944        23,
4945        0x1,
4946        1,
4947        0,
4948        dpusr1r::Dvbint0,
4949        dpusr1r::Dvbint0,
4950        Dpusr1R_SPEC,
4951        crate::common::R,
4952    > {
4953        crate::common::RegisterField::<
4954            23,
4955            0x1,
4956            1,
4957            0,
4958            dpusr1r::Dvbint0,
4959            dpusr1r::Dvbint0,
4960            Dpusr1R_SPEC,
4961            crate::common::R,
4962        >::from_register(self, 0)
4963    }
4964}
4965impl ::core::default::Default for Dpusr1R {
4966    #[inline(always)]
4967    fn default() -> Dpusr1R {
4968        <crate::RegValueT<Dpusr1R_SPEC> as RegisterValue<_>>::new(0)
4969    }
4970}
4971pub mod dpusr1r {
4972
4973    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4974    pub struct Dpinte0_SPEC;
4975    pub type Dpinte0 = crate::EnumBitfieldStruct<u8, Dpinte0_SPEC>;
4976    impl Dpinte0 {
4977        #[doc = "Disable recovery from Deep Software Standby mode by DP input"]
4978        pub const _0: Self = Self::new(0);
4979
4980        #[doc = "Enable recovery from Deep Software Standby mode by DP input"]
4981        pub const _1: Self = Self::new(1);
4982    }
4983    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4984    pub struct Dminte0_SPEC;
4985    pub type Dminte0 = crate::EnumBitfieldStruct<u8, Dminte0_SPEC>;
4986    impl Dminte0 {
4987        #[doc = "Disable recovery from Deep Software Standby mode by DM input"]
4988        pub const _0: Self = Self::new(0);
4989
4990        #[doc = "Enable recovery from Deep Software Standby mode by DM input"]
4991        pub const _1: Self = Self::new(1);
4992    }
4993    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4994    pub struct Dvbse0_SPEC;
4995    pub type Dvbse0 = crate::EnumBitfieldStruct<u8, Dvbse0_SPEC>;
4996    impl Dvbse0 {
4997        #[doc = "Disable recovery from Deep Software Standby mode by VBUS input"]
4998        pub const _0: Self = Self::new(0);
4999
5000        #[doc = "Enable recovery from Deep Software Standby mode by VBUS input"]
5001        pub const _1: Self = Self::new(1);
5002    }
5003    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5004    pub struct Dpint0_SPEC;
5005    pub type Dpint0 = crate::EnumBitfieldStruct<u8, Dpint0_SPEC>;
5006    impl Dpint0 {
5007        #[doc = "System has not recovered from Deep Software Standby mode"]
5008        pub const _0: Self = Self::new(0);
5009
5010        #[doc = "System recovered from Deep Software Standby mode because of DP"]
5011        pub const _1: Self = Self::new(1);
5012    }
5013    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5014    pub struct Dmint0_SPEC;
5015    pub type Dmint0 = crate::EnumBitfieldStruct<u8, Dmint0_SPEC>;
5016    impl Dmint0 {
5017        #[doc = "System has not recovered from Deep Software Standby mode"]
5018        pub const _0: Self = Self::new(0);
5019
5020        #[doc = "System recovered from Deep Software Standby mode because of DM input"]
5021        pub const _1: Self = Self::new(1);
5022    }
5023    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5024    pub struct Dvbint0_SPEC;
5025    pub type Dvbint0 = crate::EnumBitfieldStruct<u8, Dvbint0_SPEC>;
5026    impl Dvbint0 {
5027        #[doc = "System has not recovered from Deep Software Standby mode"]
5028        pub const _0: Self = Self::new(0);
5029
5030        #[doc = "System recovered from Deep Software Standby mode because of VBUS input"]
5031        pub const _1: Self = Self::new(1);
5032    }
5033}