Skip to main content

ra6m2_pac/
usbhs.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.2, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:11:44 +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 High-Speed Module"]
28unsafe impl ::core::marker::Send for super::Usbhs {}
29unsafe impl ::core::marker::Sync for super::Usbhs {}
30impl super::Usbhs {
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 = "CPU Bus Wait Register"]
50    #[inline(always)]
51    pub const fn buswait(
52        &self,
53    ) -> &'static crate::common::Reg<self::Buswait_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::Buswait_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(2usize),
57            )
58        }
59    }
60
61    #[doc = "System Configuration Status Register"]
62    #[inline(always)]
63    pub const fn syssts0(
64        &self,
65    ) -> &'static crate::common::Reg<self::Syssts0_SPEC, crate::common::R> {
66        unsafe {
67            crate::common::Reg::<self::Syssts0_SPEC, crate::common::R>::from_ptr(
68                self._svd2pac_as_ptr().add(4usize),
69            )
70        }
71    }
72
73    #[doc = "PLL Status Register"]
74    #[inline(always)]
75    pub const fn pllsta(&self) -> &'static crate::common::Reg<self::Pllsta_SPEC, crate::common::R> {
76        unsafe {
77            crate::common::Reg::<self::Pllsta_SPEC, crate::common::R>::from_ptr(
78                self._svd2pac_as_ptr().add(6usize),
79            )
80        }
81    }
82
83    #[doc = "Device State Control Register 0"]
84    #[inline(always)]
85    pub const fn dvstctr0(
86        &self,
87    ) -> &'static crate::common::Reg<self::Dvstctr0_SPEC, crate::common::RW> {
88        unsafe {
89            crate::common::Reg::<self::Dvstctr0_SPEC, crate::common::RW>::from_ptr(
90                self._svd2pac_as_ptr().add(8usize),
91            )
92        }
93    }
94
95    #[doc = "USB Test Mode Register"]
96    #[inline(always)]
97    pub const fn testmode(
98        &self,
99    ) -> &'static crate::common::Reg<self::Testmode_SPEC, crate::common::RW> {
100        unsafe {
101            crate::common::Reg::<self::Testmode_SPEC, crate::common::RW>::from_ptr(
102                self._svd2pac_as_ptr().add(12usize),
103            )
104        }
105    }
106
107    #[doc = "CFIFO Port Register"]
108    #[inline(always)]
109    pub const fn cfifo(&self) -> &'static crate::common::Reg<self::Cfifo_SPEC, crate::common::RW> {
110        unsafe {
111            crate::common::Reg::<self::Cfifo_SPEC, crate::common::RW>::from_ptr(
112                self._svd2pac_as_ptr().add(20usize),
113            )
114        }
115    }
116
117    #[doc = "CFIFO Port Register L"]
118    #[inline(always)]
119    pub const fn cfifol(
120        &self,
121    ) -> &'static crate::common::Reg<self::Cfifol_SPEC, crate::common::RW> {
122        unsafe {
123            crate::common::Reg::<self::Cfifol_SPEC, crate::common::RW>::from_ptr(
124                self._svd2pac_as_ptr().add(20usize),
125            )
126        }
127    }
128
129    #[doc = "CFIFO Port Register H"]
130    #[inline(always)]
131    pub const fn cfifoh(
132        &self,
133    ) -> &'static crate::common::Reg<self::Cfifoh_SPEC, crate::common::RW> {
134        unsafe {
135            crate::common::Reg::<self::Cfifoh_SPEC, crate::common::RW>::from_ptr(
136                self._svd2pac_as_ptr().add(22usize),
137            )
138        }
139    }
140
141    #[doc = "CFIFO Port Register LL"]
142    #[inline(always)]
143    pub const fn cfifoll(
144        &self,
145    ) -> &'static crate::common::Reg<self::Cfifoll_SPEC, crate::common::RW> {
146        unsafe {
147            crate::common::Reg::<self::Cfifoll_SPEC, crate::common::RW>::from_ptr(
148                self._svd2pac_as_ptr().add(20usize),
149            )
150        }
151    }
152
153    #[doc = "CFIFO Port Register HH"]
154    #[inline(always)]
155    pub const fn cfifohh(
156        &self,
157    ) -> &'static crate::common::Reg<self::Cfifohh_SPEC, crate::common::RW> {
158        unsafe {
159            crate::common::Reg::<self::Cfifohh_SPEC, crate::common::RW>::from_ptr(
160                self._svd2pac_as_ptr().add(23usize),
161            )
162        }
163    }
164
165    #[doc = "D0FIFO Port Register"]
166    #[inline(always)]
167    pub const fn d0fifo(
168        &self,
169    ) -> &'static crate::common::Reg<self::D0Fifo_SPEC, crate::common::RW> {
170        unsafe {
171            crate::common::Reg::<self::D0Fifo_SPEC, crate::common::RW>::from_ptr(
172                self._svd2pac_as_ptr().add(24usize),
173            )
174        }
175    }
176
177    #[doc = "D0FIFO Port Register L"]
178    #[inline(always)]
179    pub const fn d0fifol(
180        &self,
181    ) -> &'static crate::common::Reg<self::D0Fifol_SPEC, crate::common::RW> {
182        unsafe {
183            crate::common::Reg::<self::D0Fifol_SPEC, crate::common::RW>::from_ptr(
184                self._svd2pac_as_ptr().add(24usize),
185            )
186        }
187    }
188
189    #[doc = "D0FIFO Port Register H"]
190    #[inline(always)]
191    pub const fn d0fifoh(
192        &self,
193    ) -> &'static crate::common::Reg<self::D0Fifoh_SPEC, crate::common::RW> {
194        unsafe {
195            crate::common::Reg::<self::D0Fifoh_SPEC, crate::common::RW>::from_ptr(
196                self._svd2pac_as_ptr().add(26usize),
197            )
198        }
199    }
200
201    #[doc = "D0FIFO Port Register LL"]
202    #[inline(always)]
203    pub const fn d0fifoll(
204        &self,
205    ) -> &'static crate::common::Reg<self::D0Fifoll_SPEC, crate::common::RW> {
206        unsafe {
207            crate::common::Reg::<self::D0Fifoll_SPEC, crate::common::RW>::from_ptr(
208                self._svd2pac_as_ptr().add(24usize),
209            )
210        }
211    }
212
213    #[doc = "D0FIFO Port Register HH"]
214    #[inline(always)]
215    pub const fn d0fifohh(
216        &self,
217    ) -> &'static crate::common::Reg<self::D0Fifohh_SPEC, crate::common::RW> {
218        unsafe {
219            crate::common::Reg::<self::D0Fifohh_SPEC, crate::common::RW>::from_ptr(
220                self._svd2pac_as_ptr().add(27usize),
221            )
222        }
223    }
224
225    #[doc = "D1FIFO Port Register"]
226    #[inline(always)]
227    pub const fn d1fifo(
228        &self,
229    ) -> &'static crate::common::Reg<self::D1Fifo_SPEC, crate::common::RW> {
230        unsafe {
231            crate::common::Reg::<self::D1Fifo_SPEC, crate::common::RW>::from_ptr(
232                self._svd2pac_as_ptr().add(28usize),
233            )
234        }
235    }
236
237    #[doc = "D1FIFO Port Register L"]
238    #[inline(always)]
239    pub const fn d1fifol(
240        &self,
241    ) -> &'static crate::common::Reg<self::D1Fifol_SPEC, crate::common::RW> {
242        unsafe {
243            crate::common::Reg::<self::D1Fifol_SPEC, crate::common::RW>::from_ptr(
244                self._svd2pac_as_ptr().add(28usize),
245            )
246        }
247    }
248
249    #[doc = "D1FIFO Port Register H"]
250    #[inline(always)]
251    pub const fn d1fifoh(
252        &self,
253    ) -> &'static crate::common::Reg<self::D1Fifoh_SPEC, crate::common::RW> {
254        unsafe {
255            crate::common::Reg::<self::D1Fifoh_SPEC, crate::common::RW>::from_ptr(
256                self._svd2pac_as_ptr().add(30usize),
257            )
258        }
259    }
260
261    #[doc = "D1FIFO Port Register LL"]
262    #[inline(always)]
263    pub const fn d1fifoll(
264        &self,
265    ) -> &'static crate::common::Reg<self::D1Fifoll_SPEC, crate::common::RW> {
266        unsafe {
267            crate::common::Reg::<self::D1Fifoll_SPEC, crate::common::RW>::from_ptr(
268                self._svd2pac_as_ptr().add(28usize),
269            )
270        }
271    }
272
273    #[doc = "D1FIFO Port Register HH"]
274    #[inline(always)]
275    pub const fn d1fifohh(
276        &self,
277    ) -> &'static crate::common::Reg<self::D1Fifohh_SPEC, crate::common::RW> {
278        unsafe {
279            crate::common::Reg::<self::D1Fifohh_SPEC, crate::common::RW>::from_ptr(
280                self._svd2pac_as_ptr().add(31usize),
281            )
282        }
283    }
284
285    #[doc = "CFIFO Port Select Register"]
286    #[inline(always)]
287    pub const fn cfifosel(
288        &self,
289    ) -> &'static crate::common::Reg<self::Cfifosel_SPEC, crate::common::RW> {
290        unsafe {
291            crate::common::Reg::<self::Cfifosel_SPEC, crate::common::RW>::from_ptr(
292                self._svd2pac_as_ptr().add(32usize),
293            )
294        }
295    }
296
297    #[doc = "D0FIFO Port Select Register"]
298    #[inline(always)]
299    pub const fn d0fifosel(
300        &self,
301    ) -> &'static crate::common::Reg<self::D0Fifosel_SPEC, crate::common::RW> {
302        unsafe {
303            crate::common::Reg::<self::D0Fifosel_SPEC, crate::common::RW>::from_ptr(
304                self._svd2pac_as_ptr().add(40usize),
305            )
306        }
307    }
308
309    #[doc = "D1FIFO Port Select Register"]
310    #[inline(always)]
311    pub const fn d1fifosel(
312        &self,
313    ) -> &'static crate::common::Reg<self::D1Fifosel_SPEC, crate::common::RW> {
314        unsafe {
315            crate::common::Reg::<self::D1Fifosel_SPEC, crate::common::RW>::from_ptr(
316                self._svd2pac_as_ptr().add(44usize),
317            )
318        }
319    }
320
321    #[doc = "CFIFO Port Control Register"]
322    #[inline(always)]
323    pub const fn cfifoctr(
324        &self,
325    ) -> &'static crate::common::Reg<self::Cfifoctr_SPEC, crate::common::RW> {
326        unsafe {
327            crate::common::Reg::<self::Cfifoctr_SPEC, crate::common::RW>::from_ptr(
328                self._svd2pac_as_ptr().add(34usize),
329            )
330        }
331    }
332
333    #[doc = "D0FIFO Port Control Register"]
334    #[inline(always)]
335    pub const fn d0fifoctr(
336        &self,
337    ) -> &'static crate::common::Reg<self::D0Fifoctr_SPEC, crate::common::RW> {
338        unsafe {
339            crate::common::Reg::<self::D0Fifoctr_SPEC, crate::common::RW>::from_ptr(
340                self._svd2pac_as_ptr().add(42usize),
341            )
342        }
343    }
344
345    #[doc = "D1FIFO Port Control Register"]
346    #[inline(always)]
347    pub const fn d1fifoctr(
348        &self,
349    ) -> &'static crate::common::Reg<self::D1Fifoctr_SPEC, crate::common::RW> {
350        unsafe {
351            crate::common::Reg::<self::D1Fifoctr_SPEC, crate::common::RW>::from_ptr(
352                self._svd2pac_as_ptr().add(46usize),
353            )
354        }
355    }
356
357    #[doc = "Interrupt Enable Register 0"]
358    #[inline(always)]
359    pub const fn intenb0(
360        &self,
361    ) -> &'static crate::common::Reg<self::Intenb0_SPEC, crate::common::RW> {
362        unsafe {
363            crate::common::Reg::<self::Intenb0_SPEC, crate::common::RW>::from_ptr(
364                self._svd2pac_as_ptr().add(48usize),
365            )
366        }
367    }
368
369    #[doc = "Interrupt Enable Register 1"]
370    #[inline(always)]
371    pub const fn intenb1(
372        &self,
373    ) -> &'static crate::common::Reg<self::Intenb1_SPEC, crate::common::RW> {
374        unsafe {
375            crate::common::Reg::<self::Intenb1_SPEC, crate::common::RW>::from_ptr(
376                self._svd2pac_as_ptr().add(50usize),
377            )
378        }
379    }
380
381    #[doc = "BRDY Interrupt Enable Register"]
382    #[inline(always)]
383    pub const fn brdyenb(
384        &self,
385    ) -> &'static crate::common::Reg<self::Brdyenb_SPEC, crate::common::RW> {
386        unsafe {
387            crate::common::Reg::<self::Brdyenb_SPEC, crate::common::RW>::from_ptr(
388                self._svd2pac_as_ptr().add(54usize),
389            )
390        }
391    }
392
393    #[doc = "NRDY Interrupt Enable Register"]
394    #[inline(always)]
395    pub const fn nrdyenb(
396        &self,
397    ) -> &'static crate::common::Reg<self::Nrdyenb_SPEC, crate::common::RW> {
398        unsafe {
399            crate::common::Reg::<self::Nrdyenb_SPEC, crate::common::RW>::from_ptr(
400                self._svd2pac_as_ptr().add(56usize),
401            )
402        }
403    }
404
405    #[doc = "BEMP Interrupt Enable Register"]
406    #[inline(always)]
407    pub const fn bempenb(
408        &self,
409    ) -> &'static crate::common::Reg<self::Bempenb_SPEC, crate::common::RW> {
410        unsafe {
411            crate::common::Reg::<self::Bempenb_SPEC, crate::common::RW>::from_ptr(
412                self._svd2pac_as_ptr().add(58usize),
413            )
414        }
415    }
416
417    #[doc = "SOF Pin Configuration Register"]
418    #[inline(always)]
419    pub const fn sofcfg(
420        &self,
421    ) -> &'static crate::common::Reg<self::Sofcfg_SPEC, crate::common::RW> {
422        unsafe {
423            crate::common::Reg::<self::Sofcfg_SPEC, crate::common::RW>::from_ptr(
424                self._svd2pac_as_ptr().add(60usize),
425            )
426        }
427    }
428
429    #[doc = "PHY Setting Register"]
430    #[inline(always)]
431    pub const fn physet(
432        &self,
433    ) -> &'static crate::common::Reg<self::Physet_SPEC, crate::common::RW> {
434        unsafe {
435            crate::common::Reg::<self::Physet_SPEC, crate::common::RW>::from_ptr(
436                self._svd2pac_as_ptr().add(62usize),
437            )
438        }
439    }
440
441    #[doc = "Interrupt Status Register 0"]
442    #[inline(always)]
443    pub const fn intsts0(
444        &self,
445    ) -> &'static crate::common::Reg<self::Intsts0_SPEC, crate::common::RW> {
446        unsafe {
447            crate::common::Reg::<self::Intsts0_SPEC, crate::common::RW>::from_ptr(
448                self._svd2pac_as_ptr().add(64usize),
449            )
450        }
451    }
452
453    #[doc = "Interrupt Status Register 1"]
454    #[inline(always)]
455    pub const fn intsts1(
456        &self,
457    ) -> &'static crate::common::Reg<self::Intsts1_SPEC, crate::common::RW> {
458        unsafe {
459            crate::common::Reg::<self::Intsts1_SPEC, crate::common::RW>::from_ptr(
460                self._svd2pac_as_ptr().add(66usize),
461            )
462        }
463    }
464
465    #[doc = "BRDY Interrupt Status Register"]
466    #[inline(always)]
467    pub const fn brdysts(
468        &self,
469    ) -> &'static crate::common::Reg<self::Brdysts_SPEC, crate::common::RW> {
470        unsafe {
471            crate::common::Reg::<self::Brdysts_SPEC, crate::common::RW>::from_ptr(
472                self._svd2pac_as_ptr().add(70usize),
473            )
474        }
475    }
476
477    #[doc = "NRDY Interrupt Status Register"]
478    #[inline(always)]
479    pub const fn nrdysts(
480        &self,
481    ) -> &'static crate::common::Reg<self::Nrdysts_SPEC, crate::common::RW> {
482        unsafe {
483            crate::common::Reg::<self::Nrdysts_SPEC, crate::common::RW>::from_ptr(
484                self._svd2pac_as_ptr().add(72usize),
485            )
486        }
487    }
488
489    #[doc = "BEMP Interrupt Status Register"]
490    #[inline(always)]
491    pub const fn bempsts(
492        &self,
493    ) -> &'static crate::common::Reg<self::Bempsts_SPEC, crate::common::RW> {
494        unsafe {
495            crate::common::Reg::<self::Bempsts_SPEC, crate::common::RW>::from_ptr(
496                self._svd2pac_as_ptr().add(74usize),
497            )
498        }
499    }
500
501    #[doc = "Frame Number Register"]
502    #[inline(always)]
503    pub const fn frmnum(
504        &self,
505    ) -> &'static crate::common::Reg<self::Frmnum_SPEC, crate::common::RW> {
506        unsafe {
507            crate::common::Reg::<self::Frmnum_SPEC, crate::common::RW>::from_ptr(
508                self._svd2pac_as_ptr().add(76usize),
509            )
510        }
511    }
512
513    #[doc = "uFrame Number Register"]
514    #[inline(always)]
515    pub const fn ufrmnum(
516        &self,
517    ) -> &'static crate::common::Reg<self::Ufrmnum_SPEC, crate::common::RW> {
518        unsafe {
519            crate::common::Reg::<self::Ufrmnum_SPEC, crate::common::RW>::from_ptr(
520                self._svd2pac_as_ptr().add(78usize),
521            )
522        }
523    }
524
525    #[doc = "USB Address Register"]
526    #[inline(always)]
527    pub const fn usbaddr(
528        &self,
529    ) -> &'static crate::common::Reg<self::Usbaddr_SPEC, crate::common::RW> {
530        unsafe {
531            crate::common::Reg::<self::Usbaddr_SPEC, crate::common::RW>::from_ptr(
532                self._svd2pac_as_ptr().add(80usize),
533            )
534        }
535    }
536
537    #[doc = "USB Request Type Register"]
538    #[inline(always)]
539    pub const fn usbreq(
540        &self,
541    ) -> &'static crate::common::Reg<self::Usbreq_SPEC, crate::common::RW> {
542        unsafe {
543            crate::common::Reg::<self::Usbreq_SPEC, crate::common::RW>::from_ptr(
544                self._svd2pac_as_ptr().add(84usize),
545            )
546        }
547    }
548
549    #[doc = "USB Request Value Register"]
550    #[inline(always)]
551    pub const fn usbval(
552        &self,
553    ) -> &'static crate::common::Reg<self::Usbval_SPEC, crate::common::RW> {
554        unsafe {
555            crate::common::Reg::<self::Usbval_SPEC, crate::common::RW>::from_ptr(
556                self._svd2pac_as_ptr().add(86usize),
557            )
558        }
559    }
560
561    #[doc = "USB Request Index Register"]
562    #[inline(always)]
563    pub const fn usbindx(
564        &self,
565    ) -> &'static crate::common::Reg<self::Usbindx_SPEC, crate::common::RW> {
566        unsafe {
567            crate::common::Reg::<self::Usbindx_SPEC, crate::common::RW>::from_ptr(
568                self._svd2pac_as_ptr().add(88usize),
569            )
570        }
571    }
572
573    #[doc = "USB Request Length Register"]
574    #[inline(always)]
575    pub const fn usbleng(
576        &self,
577    ) -> &'static crate::common::Reg<self::Usbleng_SPEC, crate::common::RW> {
578        unsafe {
579            crate::common::Reg::<self::Usbleng_SPEC, crate::common::RW>::from_ptr(
580                self._svd2pac_as_ptr().add(90usize),
581            )
582        }
583    }
584
585    #[doc = "DCP Configuration Register"]
586    #[inline(always)]
587    pub const fn dcpcfg(
588        &self,
589    ) -> &'static crate::common::Reg<self::Dcpcfg_SPEC, crate::common::RW> {
590        unsafe {
591            crate::common::Reg::<self::Dcpcfg_SPEC, crate::common::RW>::from_ptr(
592                self._svd2pac_as_ptr().add(92usize),
593            )
594        }
595    }
596
597    #[doc = "DCP Maximum Packet Size Register"]
598    #[inline(always)]
599    pub const fn dcpmaxp(
600        &self,
601    ) -> &'static crate::common::Reg<self::Dcpmaxp_SPEC, crate::common::RW> {
602        unsafe {
603            crate::common::Reg::<self::Dcpmaxp_SPEC, crate::common::RW>::from_ptr(
604                self._svd2pac_as_ptr().add(94usize),
605            )
606        }
607    }
608
609    #[doc = "DCP Control Register"]
610    #[inline(always)]
611    pub const fn dcpctr(
612        &self,
613    ) -> &'static crate::common::Reg<self::Dcpctr_SPEC, crate::common::RW> {
614        unsafe {
615            crate::common::Reg::<self::Dcpctr_SPEC, crate::common::RW>::from_ptr(
616                self._svd2pac_as_ptr().add(96usize),
617            )
618        }
619    }
620
621    #[doc = "Pipe Window Select Register"]
622    #[inline(always)]
623    pub const fn pipesel(
624        &self,
625    ) -> &'static crate::common::Reg<self::Pipesel_SPEC, crate::common::RW> {
626        unsafe {
627            crate::common::Reg::<self::Pipesel_SPEC, crate::common::RW>::from_ptr(
628                self._svd2pac_as_ptr().add(100usize),
629            )
630        }
631    }
632
633    #[doc = "Pipe Configuration Register"]
634    #[inline(always)]
635    pub const fn pipecfg(
636        &self,
637    ) -> &'static crate::common::Reg<self::Pipecfg_SPEC, crate::common::RW> {
638        unsafe {
639            crate::common::Reg::<self::Pipecfg_SPEC, crate::common::RW>::from_ptr(
640                self._svd2pac_as_ptr().add(104usize),
641            )
642        }
643    }
644
645    #[doc = "Pipe Buffer Register"]
646    #[inline(always)]
647    pub const fn pipebuf(
648        &self,
649    ) -> &'static crate::common::Reg<self::Pipebuf_SPEC, crate::common::RW> {
650        unsafe {
651            crate::common::Reg::<self::Pipebuf_SPEC, crate::common::RW>::from_ptr(
652                self._svd2pac_as_ptr().add(106usize),
653            )
654        }
655    }
656
657    #[doc = "Pipe Maximum Packet Size Register"]
658    #[inline(always)]
659    pub const fn pipemaxp(
660        &self,
661    ) -> &'static crate::common::Reg<self::Pipemaxp_SPEC, crate::common::RW> {
662        unsafe {
663            crate::common::Reg::<self::Pipemaxp_SPEC, crate::common::RW>::from_ptr(
664                self._svd2pac_as_ptr().add(108usize),
665            )
666        }
667    }
668
669    #[doc = "Pipe Cycle Control Register"]
670    #[inline(always)]
671    pub const fn pipeperi(
672        &self,
673    ) -> &'static crate::common::Reg<self::Pipeperi_SPEC, crate::common::RW> {
674        unsafe {
675            crate::common::Reg::<self::Pipeperi_SPEC, crate::common::RW>::from_ptr(
676                self._svd2pac_as_ptr().add(110usize),
677            )
678        }
679    }
680
681    #[doc = "PIPE Control Register"]
682    #[inline(always)]
683    pub const fn pipectr(
684        &self,
685    ) -> &'static crate::common::ClusterRegisterArray<
686        crate::common::Reg<self::Pipectr_SPEC, crate::common::RW>,
687        9,
688        0x2,
689    > {
690        unsafe {
691            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x70usize))
692        }
693    }
694    #[inline(always)]
695    pub const fn pipe1ctr(
696        &self,
697    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
698        unsafe {
699            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
700                self._svd2pac_as_ptr().add(0x70usize),
701            )
702        }
703    }
704    #[inline(always)]
705    pub const fn pipe2ctr(
706        &self,
707    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
708        unsafe {
709            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
710                self._svd2pac_as_ptr().add(0x72usize),
711            )
712        }
713    }
714    #[inline(always)]
715    pub const fn pipe3ctr(
716        &self,
717    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
718        unsafe {
719            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
720                self._svd2pac_as_ptr().add(0x74usize),
721            )
722        }
723    }
724    #[inline(always)]
725    pub const fn pipe4ctr(
726        &self,
727    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
728        unsafe {
729            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
730                self._svd2pac_as_ptr().add(0x76usize),
731            )
732        }
733    }
734    #[inline(always)]
735    pub const fn pipe5ctr(
736        &self,
737    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
738        unsafe {
739            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
740                self._svd2pac_as_ptr().add(0x78usize),
741            )
742        }
743    }
744    #[inline(always)]
745    pub const fn pipe6ctr(
746        &self,
747    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
748        unsafe {
749            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
750                self._svd2pac_as_ptr().add(0x7ausize),
751            )
752        }
753    }
754    #[inline(always)]
755    pub const fn pipe7ctr(
756        &self,
757    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
758        unsafe {
759            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
760                self._svd2pac_as_ptr().add(0x7cusize),
761            )
762        }
763    }
764    #[inline(always)]
765    pub const fn pipe8ctr(
766        &self,
767    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
768        unsafe {
769            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
770                self._svd2pac_as_ptr().add(0x7eusize),
771            )
772        }
773    }
774    #[inline(always)]
775    pub const fn pipe9ctr(
776        &self,
777    ) -> &'static crate::common::Reg<self::Pipectr_SPEC, crate::common::RW> {
778        unsafe {
779            crate::common::Reg::<self::Pipectr_SPEC, crate::common::RW>::from_ptr(
780                self._svd2pac_as_ptr().add(0x80usize),
781            )
782        }
783    }
784
785    #[doc = "PIPE Transaction Counter Enable Register"]
786    #[inline(always)]
787    pub const fn pipetre(
788        &self,
789    ) -> &'static crate::common::ClusterRegisterArray<
790        crate::common::Reg<self::Pipetre_SPEC, crate::common::RW>,
791        5,
792        0x4,
793    > {
794        unsafe {
795            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x90usize))
796        }
797    }
798    #[inline(always)]
799    pub const fn pipe1tre(
800        &self,
801    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
802        unsafe {
803            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
804                self._svd2pac_as_ptr().add(0x90usize),
805            )
806        }
807    }
808    #[inline(always)]
809    pub const fn pipe2tre(
810        &self,
811    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
812        unsafe {
813            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
814                self._svd2pac_as_ptr().add(0x94usize),
815            )
816        }
817    }
818    #[inline(always)]
819    pub const fn pipe3tre(
820        &self,
821    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
822        unsafe {
823            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
824                self._svd2pac_as_ptr().add(0x98usize),
825            )
826        }
827    }
828    #[inline(always)]
829    pub const fn pipe4tre(
830        &self,
831    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
832        unsafe {
833            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
834                self._svd2pac_as_ptr().add(0x9cusize),
835            )
836        }
837    }
838    #[inline(always)]
839    pub const fn pipe5tre(
840        &self,
841    ) -> &'static crate::common::Reg<self::Pipetre_SPEC, crate::common::RW> {
842        unsafe {
843            crate::common::Reg::<self::Pipetre_SPEC, crate::common::RW>::from_ptr(
844                self._svd2pac_as_ptr().add(0xa0usize),
845            )
846        }
847    }
848
849    #[doc = "PIPE Transaction Counter Register"]
850    #[inline(always)]
851    pub const fn pipetrn(
852        &self,
853    ) -> &'static crate::common::ClusterRegisterArray<
854        crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW>,
855        5,
856        0x4,
857    > {
858        unsafe {
859            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x92usize))
860        }
861    }
862    #[inline(always)]
863    pub const fn pipe1trn(
864        &self,
865    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
866        unsafe {
867            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
868                self._svd2pac_as_ptr().add(0x92usize),
869            )
870        }
871    }
872    #[inline(always)]
873    pub const fn pipe2trn(
874        &self,
875    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
876        unsafe {
877            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
878                self._svd2pac_as_ptr().add(0x96usize),
879            )
880        }
881    }
882    #[inline(always)]
883    pub const fn pipe3trn(
884        &self,
885    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
886        unsafe {
887            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
888                self._svd2pac_as_ptr().add(0x9ausize),
889            )
890        }
891    }
892    #[inline(always)]
893    pub const fn pipe4trn(
894        &self,
895    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
896        unsafe {
897            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
898                self._svd2pac_as_ptr().add(0x9eusize),
899            )
900        }
901    }
902    #[inline(always)]
903    pub const fn pipe5trn(
904        &self,
905    ) -> &'static crate::common::Reg<self::Pipetrn_SPEC, crate::common::RW> {
906        unsafe {
907            crate::common::Reg::<self::Pipetrn_SPEC, crate::common::RW>::from_ptr(
908                self._svd2pac_as_ptr().add(0xa2usize),
909            )
910        }
911    }
912
913    #[doc = "Device Address Configuration Register"]
914    #[inline(always)]
915    pub const fn devadd(
916        &self,
917    ) -> &'static crate::common::ClusterRegisterArray<
918        crate::common::Reg<self::Devadd_SPEC, crate::common::RW>,
919        10,
920        0x2,
921    > {
922        unsafe {
923            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xd0usize))
924        }
925    }
926    #[inline(always)]
927    pub const fn devadd0(
928        &self,
929    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
930        unsafe {
931            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
932                self._svd2pac_as_ptr().add(0xd0usize),
933            )
934        }
935    }
936    #[inline(always)]
937    pub const fn devadd1(
938        &self,
939    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
940        unsafe {
941            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
942                self._svd2pac_as_ptr().add(0xd2usize),
943            )
944        }
945    }
946    #[inline(always)]
947    pub const fn devadd2(
948        &self,
949    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
950        unsafe {
951            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
952                self._svd2pac_as_ptr().add(0xd4usize),
953            )
954        }
955    }
956    #[inline(always)]
957    pub const fn devadd3(
958        &self,
959    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
960        unsafe {
961            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
962                self._svd2pac_as_ptr().add(0xd6usize),
963            )
964        }
965    }
966    #[inline(always)]
967    pub const fn devadd4(
968        &self,
969    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
970        unsafe {
971            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
972                self._svd2pac_as_ptr().add(0xd8usize),
973            )
974        }
975    }
976    #[inline(always)]
977    pub const fn devadd5(
978        &self,
979    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
980        unsafe {
981            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
982                self._svd2pac_as_ptr().add(0xdausize),
983            )
984        }
985    }
986    #[inline(always)]
987    pub const fn devadd6(
988        &self,
989    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
990        unsafe {
991            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
992                self._svd2pac_as_ptr().add(0xdcusize),
993            )
994        }
995    }
996    #[inline(always)]
997    pub const fn devadd7(
998        &self,
999    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
1000        unsafe {
1001            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
1002                self._svd2pac_as_ptr().add(0xdeusize),
1003            )
1004        }
1005    }
1006    #[inline(always)]
1007    pub const fn devadd8(
1008        &self,
1009    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
1010        unsafe {
1011            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
1012                self._svd2pac_as_ptr().add(0xe0usize),
1013            )
1014        }
1015    }
1016    #[inline(always)]
1017    pub const fn devadd9(
1018        &self,
1019    ) -> &'static crate::common::Reg<self::Devadd_SPEC, crate::common::RW> {
1020        unsafe {
1021            crate::common::Reg::<self::Devadd_SPEC, crate::common::RW>::from_ptr(
1022                self._svd2pac_as_ptr().add(0xe2usize),
1023            )
1024        }
1025    }
1026
1027    #[doc = "Device Address Configuration Register A"]
1028    #[inline(always)]
1029    pub const fn devadda(
1030        &self,
1031    ) -> &'static crate::common::Reg<self::Devadda_SPEC, crate::common::RW> {
1032        unsafe {
1033            crate::common::Reg::<self::Devadda_SPEC, crate::common::RW>::from_ptr(
1034                self._svd2pac_as_ptr().add(228usize),
1035            )
1036        }
1037    }
1038
1039    #[doc = "Low Power Control Register"]
1040    #[inline(always)]
1041    pub const fn lpctrl(
1042        &self,
1043    ) -> &'static crate::common::Reg<self::Lpctrl_SPEC, crate::common::RW> {
1044        unsafe {
1045            crate::common::Reg::<self::Lpctrl_SPEC, crate::common::RW>::from_ptr(
1046                self._svd2pac_as_ptr().add(256usize),
1047            )
1048        }
1049    }
1050
1051    #[doc = "Low Power Status Register"]
1052    #[inline(always)]
1053    pub const fn lpsts(&self) -> &'static crate::common::Reg<self::Lpsts_SPEC, crate::common::RW> {
1054        unsafe {
1055            crate::common::Reg::<self::Lpsts_SPEC, crate::common::RW>::from_ptr(
1056                self._svd2pac_as_ptr().add(258usize),
1057            )
1058        }
1059    }
1060
1061    #[doc = "Battery Charging Control Register"]
1062    #[inline(always)]
1063    pub const fn bcctrl(
1064        &self,
1065    ) -> &'static crate::common::Reg<self::Bcctrl_SPEC, crate::common::RW> {
1066        unsafe {
1067            crate::common::Reg::<self::Bcctrl_SPEC, crate::common::RW>::from_ptr(
1068                self._svd2pac_as_ptr().add(320usize),
1069            )
1070        }
1071    }
1072
1073    #[doc = "Function L1 Control Register 1"]
1074    #[inline(always)]
1075    pub const fn pl1ctrl1(
1076        &self,
1077    ) -> &'static crate::common::Reg<self::Pl1Ctrl1_SPEC, crate::common::RW> {
1078        unsafe {
1079            crate::common::Reg::<self::Pl1Ctrl1_SPEC, crate::common::RW>::from_ptr(
1080                self._svd2pac_as_ptr().add(324usize),
1081            )
1082        }
1083    }
1084
1085    #[doc = "Function L1 Control Register 2"]
1086    #[inline(always)]
1087    pub const fn pl1ctrl2(
1088        &self,
1089    ) -> &'static crate::common::Reg<self::Pl1Ctrl2_SPEC, crate::common::RW> {
1090        unsafe {
1091            crate::common::Reg::<self::Pl1Ctrl2_SPEC, crate::common::RW>::from_ptr(
1092                self._svd2pac_as_ptr().add(326usize),
1093            )
1094        }
1095    }
1096
1097    #[doc = "Host L1 Control Register 1"]
1098    #[inline(always)]
1099    pub const fn hl1ctrl1(
1100        &self,
1101    ) -> &'static crate::common::Reg<self::Hl1Ctrl1_SPEC, crate::common::RW> {
1102        unsafe {
1103            crate::common::Reg::<self::Hl1Ctrl1_SPEC, crate::common::RW>::from_ptr(
1104                self._svd2pac_as_ptr().add(328usize),
1105            )
1106        }
1107    }
1108
1109    #[doc = "Host L1 Control Register 2"]
1110    #[inline(always)]
1111    pub const fn hl1ctrl2(
1112        &self,
1113    ) -> &'static crate::common::Reg<self::Hl1Ctrl2_SPEC, crate::common::RW> {
1114        unsafe {
1115            crate::common::Reg::<self::Hl1Ctrl2_SPEC, crate::common::RW>::from_ptr(
1116                self._svd2pac_as_ptr().add(330usize),
1117            )
1118        }
1119    }
1120
1121    #[doc = "Deep Standby USB Transceiver Control/Pin Monitor Register"]
1122    #[inline(always)]
1123    pub const fn dpusr0r(
1124        &self,
1125    ) -> &'static crate::common::Reg<self::Dpusr0R_SPEC, crate::common::R> {
1126        unsafe {
1127            crate::common::Reg::<self::Dpusr0R_SPEC, crate::common::R>::from_ptr(
1128                self._svd2pac_as_ptr().add(352usize),
1129            )
1130        }
1131    }
1132
1133    #[doc = "Deep Standby USB Suspend/Resume Interrupt Register"]
1134    #[inline(always)]
1135    pub const fn dpusr1r(
1136        &self,
1137    ) -> &'static crate::common::Reg<self::Dpusr1R_SPEC, crate::common::RW> {
1138        unsafe {
1139            crate::common::Reg::<self::Dpusr1R_SPEC, crate::common::RW>::from_ptr(
1140                self._svd2pac_as_ptr().add(356usize),
1141            )
1142        }
1143    }
1144
1145    #[doc = "Deep Standby USB Suspend/Resume Interrupt Register"]
1146    #[inline(always)]
1147    pub const fn dpusr2r(
1148        &self,
1149    ) -> &'static crate::common::Reg<self::Dpusr2R_SPEC, crate::common::RW> {
1150        unsafe {
1151            crate::common::Reg::<self::Dpusr2R_SPEC, crate::common::RW>::from_ptr(
1152                self._svd2pac_as_ptr().add(360usize),
1153            )
1154        }
1155    }
1156
1157    #[doc = "Deep Standby USB Suspend/Resume Command Register"]
1158    #[inline(always)]
1159    pub const fn dpusrcr(
1160        &self,
1161    ) -> &'static crate::common::Reg<self::Dpusrcr_SPEC, crate::common::RW> {
1162        unsafe {
1163            crate::common::Reg::<self::Dpusrcr_SPEC, crate::common::RW>::from_ptr(
1164                self._svd2pac_as_ptr().add(362usize),
1165            )
1166        }
1167    }
1168}
1169#[doc(hidden)]
1170#[derive(Copy, Clone, Eq, PartialEq)]
1171pub struct Syscfg_SPEC;
1172impl crate::sealed::RegSpec for Syscfg_SPEC {
1173    type DataType = u16;
1174}
1175
1176#[doc = "System Configuration Control Register"]
1177pub type Syscfg = crate::RegValueT<Syscfg_SPEC>;
1178
1179impl Syscfg {
1180    #[doc = "Single End Receiver Enable"]
1181    #[inline(always)]
1182    pub fn cnen(
1183        self,
1184    ) -> crate::common::RegisterField<
1185        8,
1186        0x1,
1187        1,
1188        0,
1189        syscfg::Cnen,
1190        syscfg::Cnen,
1191        Syscfg_SPEC,
1192        crate::common::RW,
1193    > {
1194        crate::common::RegisterField::<
1195            8,
1196            0x1,
1197            1,
1198            0,
1199            syscfg::Cnen,
1200            syscfg::Cnen,
1201            Syscfg_SPEC,
1202            crate::common::RW,
1203        >::from_register(self, 0)
1204    }
1205
1206    #[doc = "High-Speed Operation Enable"]
1207    #[inline(always)]
1208    pub fn hse(
1209        self,
1210    ) -> crate::common::RegisterField<
1211        7,
1212        0x1,
1213        1,
1214        0,
1215        syscfg::Hse,
1216        syscfg::Hse,
1217        Syscfg_SPEC,
1218        crate::common::RW,
1219    > {
1220        crate::common::RegisterField::<
1221            7,
1222            0x1,
1223            1,
1224            0,
1225            syscfg::Hse,
1226            syscfg::Hse,
1227            Syscfg_SPEC,
1228            crate::common::RW,
1229        >::from_register(self, 0)
1230    }
1231
1232    #[doc = "Controller Function Select"]
1233    #[inline(always)]
1234    pub fn dcfm(
1235        self,
1236    ) -> crate::common::RegisterField<
1237        6,
1238        0x1,
1239        1,
1240        0,
1241        syscfg::Dcfm,
1242        syscfg::Dcfm,
1243        Syscfg_SPEC,
1244        crate::common::RW,
1245    > {
1246        crate::common::RegisterField::<
1247            6,
1248            0x1,
1249            1,
1250            0,
1251            syscfg::Dcfm,
1252            syscfg::Dcfm,
1253            Syscfg_SPEC,
1254            crate::common::RW,
1255        >::from_register(self, 0)
1256    }
1257
1258    #[doc = "D+/D- Line Resistor Control"]
1259    #[inline(always)]
1260    pub fn drpd(
1261        self,
1262    ) -> crate::common::RegisterField<
1263        5,
1264        0x1,
1265        1,
1266        0,
1267        syscfg::Drpd,
1268        syscfg::Drpd,
1269        Syscfg_SPEC,
1270        crate::common::RW,
1271    > {
1272        crate::common::RegisterField::<
1273            5,
1274            0x1,
1275            1,
1276            0,
1277            syscfg::Drpd,
1278            syscfg::Drpd,
1279            Syscfg_SPEC,
1280            crate::common::RW,
1281        >::from_register(self, 0)
1282    }
1283
1284    #[doc = "D+ Line Resistor Control"]
1285    #[inline(always)]
1286    pub fn dprpu(
1287        self,
1288    ) -> crate::common::RegisterField<
1289        4,
1290        0x1,
1291        1,
1292        0,
1293        syscfg::Dprpu,
1294        syscfg::Dprpu,
1295        Syscfg_SPEC,
1296        crate::common::RW,
1297    > {
1298        crate::common::RegisterField::<
1299            4,
1300            0x1,
1301            1,
1302            0,
1303            syscfg::Dprpu,
1304            syscfg::Dprpu,
1305            Syscfg_SPEC,
1306            crate::common::RW,
1307        >::from_register(self, 0)
1308    }
1309
1310    #[doc = "USB Operation Enable"]
1311    #[inline(always)]
1312    pub fn usbe(
1313        self,
1314    ) -> crate::common::RegisterField<
1315        0,
1316        0x1,
1317        1,
1318        0,
1319        syscfg::Usbe,
1320        syscfg::Usbe,
1321        Syscfg_SPEC,
1322        crate::common::RW,
1323    > {
1324        crate::common::RegisterField::<
1325            0,
1326            0x1,
1327            1,
1328            0,
1329            syscfg::Usbe,
1330            syscfg::Usbe,
1331            Syscfg_SPEC,
1332            crate::common::RW,
1333        >::from_register(self, 0)
1334    }
1335}
1336impl ::core::default::Default for Syscfg {
1337    #[inline(always)]
1338    fn default() -> Syscfg {
1339        <crate::RegValueT<Syscfg_SPEC> as RegisterValue<_>>::new(32)
1340    }
1341}
1342pub mod syscfg {
1343
1344    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1345    pub struct Cnen_SPEC;
1346    pub type Cnen = crate::EnumBitfieldStruct<u8, Cnen_SPEC>;
1347    impl Cnen {
1348        #[doc = "Single end receiver operation is disabled."]
1349        pub const _0: Self = Self::new(0);
1350
1351        #[doc = "Single end receiver operation is enabled."]
1352        pub const _1: Self = Self::new(1);
1353    }
1354    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1355    pub struct Hse_SPEC;
1356    pub type Hse = crate::EnumBitfieldStruct<u8, Hse_SPEC>;
1357    impl Hse {
1358        #[doc = "High-speed operation is disabled.(When the function controller function is selected: Full speed,   When the host controller function is selected: Full/low speed)"]
1359        pub const _0: Self = Self::new(0);
1360
1361        #[doc = "High-speed operation is enabled (the controller detects the communication speed)."]
1362        pub const _1: Self = Self::new(1);
1363    }
1364    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1365    pub struct Dcfm_SPEC;
1366    pub type Dcfm = crate::EnumBitfieldStruct<u8, Dcfm_SPEC>;
1367    impl Dcfm {
1368        #[doc = "Function controller function is selected."]
1369        pub const _0: Self = Self::new(0);
1370
1371        #[doc = "Host controller function is selected."]
1372        pub const _1: Self = Self::new(1);
1373    }
1374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1375    pub struct Drpd_SPEC;
1376    pub type Drpd = crate::EnumBitfieldStruct<u8, Drpd_SPEC>;
1377    impl Drpd {
1378        #[doc = "Pulling down the line is disabled."]
1379        pub const _0: Self = Self::new(0);
1380
1381        #[doc = "Pulling down the line is enabled."]
1382        pub const _1: Self = Self::new(1);
1383    }
1384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1385    pub struct Dprpu_SPEC;
1386    pub type Dprpu = crate::EnumBitfieldStruct<u8, Dprpu_SPEC>;
1387    impl Dprpu {
1388        #[doc = "Pulling up the line is disabled."]
1389        pub const _0: Self = Self::new(0);
1390
1391        #[doc = "Pulling up the line is enabled."]
1392        pub const _1: Self = Self::new(1);
1393    }
1394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1395    pub struct Usbe_SPEC;
1396    pub type Usbe = crate::EnumBitfieldStruct<u8, Usbe_SPEC>;
1397    impl Usbe {
1398        #[doc = "USB operation is disabled."]
1399        pub const _0: Self = Self::new(0);
1400
1401        #[doc = "USB operation is enabled."]
1402        pub const _1: Self = Self::new(1);
1403    }
1404}
1405#[doc(hidden)]
1406#[derive(Copy, Clone, Eq, PartialEq)]
1407pub struct Buswait_SPEC;
1408impl crate::sealed::RegSpec for Buswait_SPEC {
1409    type DataType = u16;
1410}
1411
1412#[doc = "CPU Bus Wait Register"]
1413pub type Buswait = crate::RegValueT<Buswait_SPEC>;
1414
1415impl Buswait {
1416    #[doc = "CPU Bus Access Wait Specification     BWAIT waits (BWAIT+2 access cycles)"]
1417    #[inline(always)]
1418    pub fn bwait(
1419        self,
1420    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, Buswait_SPEC, crate::common::RW> {
1421        crate::common::RegisterField::<0,0xf,1,0,u8,u8,Buswait_SPEC,crate::common::RW>::from_register(self,0)
1422    }
1423}
1424impl ::core::default::Default for Buswait {
1425    #[inline(always)]
1426    fn default() -> Buswait {
1427        <crate::RegValueT<Buswait_SPEC> as RegisterValue<_>>::new(15)
1428    }
1429}
1430
1431#[doc(hidden)]
1432#[derive(Copy, Clone, Eq, PartialEq)]
1433pub struct Syssts0_SPEC;
1434impl crate::sealed::RegSpec for Syssts0_SPEC {
1435    type DataType = u16;
1436}
1437
1438#[doc = "System Configuration Status Register"]
1439pub type Syssts0 = crate::RegValueT<Syssts0_SPEC>;
1440
1441impl Syssts0 {
1442    #[doc = "External USB1_OVRCURA/USB1_OVRCURB Input Pin MonitorThe OCVMON\\[1\\] bit indicates the status of the USBHS_OVRCURA pin. The OCVMON\\[0\\] bit indicates the status of the USBHS_OVRCURB pin."]
1443    #[inline(always)]
1444    pub fn ovcmon(
1445        self,
1446    ) -> crate::common::RegisterField<14, 0x3, 1, 0, u8, u8, Syssts0_SPEC, crate::common::R> {
1447        crate::common::RegisterField::<14,0x3,1,0,u8,u8,Syssts0_SPEC,crate::common::R>::from_register(self,0)
1448    }
1449
1450    #[doc = "Host Sequencer Status Monitor"]
1451    #[inline(always)]
1452    pub fn htact(
1453        self,
1454    ) -> crate::common::RegisterField<
1455        6,
1456        0x1,
1457        1,
1458        0,
1459        syssts0::Htact,
1460        syssts0::Htact,
1461        Syssts0_SPEC,
1462        crate::common::R,
1463    > {
1464        crate::common::RegisterField::<
1465            6,
1466            0x1,
1467            1,
1468            0,
1469            syssts0::Htact,
1470            syssts0::Htact,
1471            Syssts0_SPEC,
1472            crate::common::R,
1473        >::from_register(self, 0)
1474    }
1475
1476    #[doc = "SOF Active Monitor While Host Controller Function is Selected."]
1477    #[inline(always)]
1478    pub fn sofea(
1479        self,
1480    ) -> crate::common::RegisterField<
1481        5,
1482        0x1,
1483        1,
1484        0,
1485        syssts0::Sofea,
1486        syssts0::Sofea,
1487        Syssts0_SPEC,
1488        crate::common::R,
1489    > {
1490        crate::common::RegisterField::<
1491            5,
1492            0x1,
1493            1,
1494            0,
1495            syssts0::Sofea,
1496            syssts0::Sofea,
1497            Syssts0_SPEC,
1498            crate::common::R,
1499        >::from_register(self, 0)
1500    }
1501
1502    #[doc = "ID0 Pin Monitor"]
1503    #[inline(always)]
1504    pub fn idmon(
1505        self,
1506    ) -> crate::common::RegisterField<
1507        2,
1508        0x1,
1509        1,
1510        0,
1511        syssts0::Idmon,
1512        syssts0::Idmon,
1513        Syssts0_SPEC,
1514        crate::common::R,
1515    > {
1516        crate::common::RegisterField::<
1517            2,
1518            0x1,
1519            1,
1520            0,
1521            syssts0::Idmon,
1522            syssts0::Idmon,
1523            Syssts0_SPEC,
1524            crate::common::R,
1525        >::from_register(self, 0)
1526    }
1527
1528    #[doc = "USB Data Line Status Monitor"]
1529    #[inline(always)]
1530    pub fn lnst(
1531        self,
1532    ) -> crate::common::RegisterField<
1533        0,
1534        0x3,
1535        1,
1536        0,
1537        syssts0::Lnst,
1538        syssts0::Lnst,
1539        Syssts0_SPEC,
1540        crate::common::R,
1541    > {
1542        crate::common::RegisterField::<
1543            0,
1544            0x3,
1545            1,
1546            0,
1547            syssts0::Lnst,
1548            syssts0::Lnst,
1549            Syssts0_SPEC,
1550            crate::common::R,
1551        >::from_register(self, 0)
1552    }
1553}
1554impl ::core::default::Default for Syssts0 {
1555    #[inline(always)]
1556    fn default() -> Syssts0 {
1557        <crate::RegValueT<Syssts0_SPEC> as RegisterValue<_>>::new(0)
1558    }
1559}
1560pub mod syssts0 {
1561
1562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1563    pub struct Htact_SPEC;
1564    pub type Htact = crate::EnumBitfieldStruct<u8, Htact_SPEC>;
1565    impl Htact {
1566        #[doc = "Host sequencer is stopped."]
1567        pub const _0: Self = Self::new(0);
1568
1569        #[doc = "Host sequencer is operating."]
1570        pub const _1: Self = Self::new(1);
1571    }
1572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1573    pub struct Sofea_SPEC;
1574    pub type Sofea = crate::EnumBitfieldStruct<u8, Sofea_SPEC>;
1575    impl Sofea {
1576        #[doc = "SOF output is stopped."]
1577        pub const _0: Self = Self::new(0);
1578
1579        #[doc = "SOF output is operating."]
1580        pub const _1: Self = Self::new(1);
1581    }
1582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1583    pub struct Idmon_SPEC;
1584    pub type Idmon = crate::EnumBitfieldStruct<u8, Idmon_SPEC>;
1585    impl Idmon {
1586        #[doc = "ID0 = Low"]
1587        pub const _0: Self = Self::new(0);
1588
1589        #[doc = "ID0 = High"]
1590        pub const _1: Self = Self::new(1);
1591    }
1592    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1593    pub struct Lnst_SPEC;
1594    pub type Lnst = crate::EnumBitfieldStruct<u8, Lnst_SPEC>;
1595    impl Lnst {
1596        #[doc = "SE0 (During Low-Speed Operation:only when the host controller function is selected or During Full-Speed Operation) /Squelch (During Hi-Speed Operation or During Chirp Operation)"]
1597        pub const _00: Self = Self::new(0);
1598
1599        #[doc = "K-State (During Low-Speed Operation:only when the host controller function is selected) /J-State (During Full-Speed Operation) /Unsquelch (During Hi-Speed Operation) /Chirp J (During Chirp Operation)"]
1600        pub const _01: Self = Self::new(1);
1601
1602        #[doc = "J-State (During Low-Speed Operation:only when the host controller function is selected) /K-State (During Full-Speed Operation) /Invalid (During Hi-Speed Operation) /Chirp K (During Chirp Operation)"]
1603        pub const _10: Self = Self::new(2);
1604
1605        #[doc = "SE1 (During Low-Speed Operation:only when the host controller function is selected or During Full-Speed Operation) /Invalid (During Hi-Speed Operation or During Chirp Operation)"]
1606        pub const _11: Self = Self::new(3);
1607    }
1608}
1609#[doc(hidden)]
1610#[derive(Copy, Clone, Eq, PartialEq)]
1611pub struct Pllsta_SPEC;
1612impl crate::sealed::RegSpec for Pllsta_SPEC {
1613    type DataType = u16;
1614}
1615
1616#[doc = "PLL Status Register"]
1617pub type Pllsta = crate::RegValueT<Pllsta_SPEC>;
1618
1619impl Pllsta {
1620    #[doc = "PLL Lock Flag"]
1621    #[inline(always)]
1622    pub fn plllock(
1623        self,
1624    ) -> crate::common::RegisterField<
1625        0,
1626        0x1,
1627        1,
1628        0,
1629        pllsta::Plllock,
1630        pllsta::Plllock,
1631        Pllsta_SPEC,
1632        crate::common::R,
1633    > {
1634        crate::common::RegisterField::<
1635            0,
1636            0x1,
1637            1,
1638            0,
1639            pllsta::Plllock,
1640            pllsta::Plllock,
1641            Pllsta_SPEC,
1642            crate::common::R,
1643        >::from_register(self, 0)
1644    }
1645}
1646impl ::core::default::Default for Pllsta {
1647    #[inline(always)]
1648    fn default() -> Pllsta {
1649        <crate::RegValueT<Pllsta_SPEC> as RegisterValue<_>>::new(0)
1650    }
1651}
1652pub mod pllsta {
1653
1654    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1655    pub struct Plllock_SPEC;
1656    pub type Plllock = crate::EnumBitfieldStruct<u8, Plllock_SPEC>;
1657    impl Plllock {
1658        #[doc = "PLL is not locked."]
1659        pub const _0: Self = Self::new(0);
1660
1661        #[doc = "PLL is locked."]
1662        pub const _1: Self = Self::new(1);
1663    }
1664}
1665#[doc(hidden)]
1666#[derive(Copy, Clone, Eq, PartialEq)]
1667pub struct Dvstctr0_SPEC;
1668impl crate::sealed::RegSpec for Dvstctr0_SPEC {
1669    type DataType = u16;
1670}
1671
1672#[doc = "Device State Control Register 0"]
1673pub type Dvstctr0 = crate::RegValueT<Dvstctr0_SPEC>;
1674
1675impl Dvstctr0 {
1676    #[doc = "Host Negotiation Protocol (HNP) Control Use this bit when switching from device B to device A in OTGmode. If the HNPBTOA bit is 1, the internal function controlremains in the Suspend state until the HNP processing endseven if SYSCFG.DPRPU = 0 or SYSCFG.DCFM = 1 is set."]
1677    #[inline(always)]
1678    pub fn hnpbtoa(
1679        self,
1680    ) -> crate::common::RegisterFieldBool<11, 1, 0, Dvstctr0_SPEC, crate::common::RW> {
1681        crate::common::RegisterFieldBool::<11,1,0,Dvstctr0_SPEC,crate::common::RW>::from_register(self,0)
1682    }
1683
1684    #[doc = "USBHS_EXICEN Output Pin Control"]
1685    #[inline(always)]
1686    pub fn exicen(
1687        self,
1688    ) -> crate::common::RegisterField<
1689        10,
1690        0x1,
1691        1,
1692        0,
1693        dvstctr0::Exicen,
1694        dvstctr0::Exicen,
1695        Dvstctr0_SPEC,
1696        crate::common::RW,
1697    > {
1698        crate::common::RegisterField::<
1699            10,
1700            0x1,
1701            1,
1702            0,
1703            dvstctr0::Exicen,
1704            dvstctr0::Exicen,
1705            Dvstctr0_SPEC,
1706            crate::common::RW,
1707        >::from_register(self, 0)
1708    }
1709
1710    #[doc = "USBHS_VBUSEN Output Pin Control"]
1711    #[inline(always)]
1712    pub fn vbusen(
1713        self,
1714    ) -> crate::common::RegisterField<
1715        9,
1716        0x1,
1717        1,
1718        0,
1719        dvstctr0::Vbusen,
1720        dvstctr0::Vbusen,
1721        Dvstctr0_SPEC,
1722        crate::common::RW,
1723    > {
1724        crate::common::RegisterField::<
1725            9,
1726            0x1,
1727            1,
1728            0,
1729            dvstctr0::Vbusen,
1730            dvstctr0::Vbusen,
1731            Dvstctr0_SPEC,
1732            crate::common::RW,
1733        >::from_register(self, 0)
1734    }
1735
1736    #[doc = "Remote Wakeup Output for the Device Controller Operation"]
1737    #[inline(always)]
1738    pub fn wkup(
1739        self,
1740    ) -> crate::common::RegisterField<
1741        8,
1742        0x1,
1743        1,
1744        0,
1745        dvstctr0::Wkup,
1746        dvstctr0::Wkup,
1747        Dvstctr0_SPEC,
1748        crate::common::RW,
1749    > {
1750        crate::common::RegisterField::<
1751            8,
1752            0x1,
1753            1,
1754            0,
1755            dvstctr0::Wkup,
1756            dvstctr0::Wkup,
1757            Dvstctr0_SPEC,
1758            crate::common::RW,
1759        >::from_register(self, 0)
1760    }
1761
1762    #[doc = "Remote Wakeup Detection Enable for the Host Controller Operation"]
1763    #[inline(always)]
1764    pub fn rwupe(
1765        self,
1766    ) -> crate::common::RegisterField<
1767        7,
1768        0x1,
1769        1,
1770        0,
1771        dvstctr0::Rwupe,
1772        dvstctr0::Rwupe,
1773        Dvstctr0_SPEC,
1774        crate::common::RW,
1775    > {
1776        crate::common::RegisterField::<
1777            7,
1778            0x1,
1779            1,
1780            0,
1781            dvstctr0::Rwupe,
1782            dvstctr0::Rwupe,
1783            Dvstctr0_SPEC,
1784            crate::common::RW,
1785        >::from_register(self, 0)
1786    }
1787
1788    #[doc = "USB Bus Reset Output for the Host Controller Operation"]
1789    #[inline(always)]
1790    pub fn usbrst(
1791        self,
1792    ) -> crate::common::RegisterField<
1793        6,
1794        0x1,
1795        1,
1796        0,
1797        dvstctr0::Usbrst,
1798        dvstctr0::Usbrst,
1799        Dvstctr0_SPEC,
1800        crate::common::RW,
1801    > {
1802        crate::common::RegisterField::<
1803            6,
1804            0x1,
1805            1,
1806            0,
1807            dvstctr0::Usbrst,
1808            dvstctr0::Usbrst,
1809            Dvstctr0_SPEC,
1810            crate::common::RW,
1811        >::from_register(self, 0)
1812    }
1813
1814    #[doc = "Resume Signal Output for the Host Controller Operation"]
1815    #[inline(always)]
1816    pub fn resume(
1817        self,
1818    ) -> crate::common::RegisterField<
1819        5,
1820        0x1,
1821        1,
1822        0,
1823        dvstctr0::Resume,
1824        dvstctr0::Resume,
1825        Dvstctr0_SPEC,
1826        crate::common::RW,
1827    > {
1828        crate::common::RegisterField::<
1829            5,
1830            0x1,
1831            1,
1832            0,
1833            dvstctr0::Resume,
1834            dvstctr0::Resume,
1835            Dvstctr0_SPEC,
1836            crate::common::RW,
1837        >::from_register(self, 0)
1838    }
1839
1840    #[doc = "USB Bus Operation Enable for the Host Controller Operation"]
1841    #[inline(always)]
1842    pub fn uact(
1843        self,
1844    ) -> crate::common::RegisterField<
1845        4,
1846        0x1,
1847        1,
1848        0,
1849        dvstctr0::Uact,
1850        dvstctr0::Uact,
1851        Dvstctr0_SPEC,
1852        crate::common::RW,
1853    > {
1854        crate::common::RegisterField::<
1855            4,
1856            0x1,
1857            1,
1858            0,
1859            dvstctr0::Uact,
1860            dvstctr0::Uact,
1861            Dvstctr0_SPEC,
1862            crate::common::RW,
1863        >::from_register(self, 0)
1864    }
1865
1866    #[doc = "USB Bus Reset Status"]
1867    #[inline(always)]
1868    pub fn rhst(
1869        self,
1870    ) -> crate::common::RegisterField<
1871        0,
1872        0x7,
1873        1,
1874        0,
1875        dvstctr0::Rhst,
1876        dvstctr0::Rhst,
1877        Dvstctr0_SPEC,
1878        crate::common::R,
1879    > {
1880        crate::common::RegisterField::<
1881            0,
1882            0x7,
1883            1,
1884            0,
1885            dvstctr0::Rhst,
1886            dvstctr0::Rhst,
1887            Dvstctr0_SPEC,
1888            crate::common::R,
1889        >::from_register(self, 0)
1890    }
1891}
1892impl ::core::default::Default for Dvstctr0 {
1893    #[inline(always)]
1894    fn default() -> Dvstctr0 {
1895        <crate::RegValueT<Dvstctr0_SPEC> as RegisterValue<_>>::new(0)
1896    }
1897}
1898pub mod dvstctr0 {
1899
1900    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1901    pub struct Exicen_SPEC;
1902    pub type Exicen = crate::EnumBitfieldStruct<u8, Exicen_SPEC>;
1903    impl Exicen {
1904        #[doc = "Output low on external USBHS_EXICEN pin"]
1905        pub const _0: Self = Self::new(0);
1906
1907        #[doc = "Output high on external USBHS_EXICEN pin."]
1908        pub const _1: Self = Self::new(1);
1909    }
1910    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1911    pub struct Vbusen_SPEC;
1912    pub type Vbusen = crate::EnumBitfieldStruct<u8, Vbusen_SPEC>;
1913    impl Vbusen {
1914        #[doc = "Output low on external USBHS_VBUSEN pin"]
1915        pub const _0: Self = Self::new(0);
1916
1917        #[doc = "Output high on external USBHS_VBUSEN pin."]
1918        pub const _1: Self = Self::new(1);
1919    }
1920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1921    pub struct Wkup_SPEC;
1922    pub type Wkup = crate::EnumBitfieldStruct<u8, Wkup_SPEC>;
1923    impl Wkup {
1924        #[doc = "Do not output remote wakeup signal"]
1925        pub const _0: Self = Self::new(0);
1926
1927        #[doc = "Output remote wakeup signal."]
1928        pub const _1: Self = Self::new(1);
1929    }
1930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1931    pub struct Rwupe_SPEC;
1932    pub type Rwupe = crate::EnumBitfieldStruct<u8, Rwupe_SPEC>;
1933    impl Rwupe {
1934        #[doc = "Disable downstream port remote wakeup"]
1935        pub const _0: Self = Self::new(0);
1936
1937        #[doc = "Enable downstream port remote wakeup."]
1938        pub const _1: Self = Self::new(1);
1939    }
1940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1941    pub struct Usbrst_SPEC;
1942    pub type Usbrst = crate::EnumBitfieldStruct<u8, Usbrst_SPEC>;
1943    impl Usbrst {
1944        #[doc = "Do not output USB bus reset signal"]
1945        pub const _0: Self = Self::new(0);
1946
1947        #[doc = "Output USB bus reset signal."]
1948        pub const _1: Self = Self::new(1);
1949    }
1950    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1951    pub struct Resume_SPEC;
1952    pub type Resume = crate::EnumBitfieldStruct<u8, Resume_SPEC>;
1953    impl Resume {
1954        #[doc = "Do not output resume signal"]
1955        pub const _0: Self = Self::new(0);
1956
1957        #[doc = "Output resume signal."]
1958        pub const _1: Self = Self::new(1);
1959    }
1960    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1961    pub struct Uact_SPEC;
1962    pub type Uact = crate::EnumBitfieldStruct<u8, Uact_SPEC>;
1963    impl Uact {
1964        #[doc = "Disable downstream port (disable SOF or micro-SOF transmission)"]
1965        pub const _0: Self = Self::new(0);
1966
1967        #[doc = "Enable downstream port (enable SOF or micro-SOF transmission)."]
1968        pub const _1: Self = Self::new(1);
1969    }
1970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1971    pub struct Rhst_SPEC;
1972    pub type Rhst = crate::EnumBitfieldStruct<u8, Rhst_SPEC>;
1973    impl Rhst {
1974        #[doc = "Communication speed not determined"]
1975        pub const _000: Self = Self::new(0);
1976
1977        #[doc = "Low-speed connection(When the host controller function is selected) /USB bus reset in progress or low-speed connection(When the function controller function is selected)"]
1978        pub const _001: Self = Self::new(1);
1979
1980        #[doc = "Full-speed connection(When the host controller function is selected) /USB bus reset in progress or full-speed connection(When the function controller function is selected)"]
1981        pub const _010: Self = Self::new(2);
1982
1983        #[doc = "Setting prohibited"]
1984        pub const _011: Self = Self::new(3);
1985    }
1986}
1987#[doc(hidden)]
1988#[derive(Copy, Clone, Eq, PartialEq)]
1989pub struct Testmode_SPEC;
1990impl crate::sealed::RegSpec for Testmode_SPEC {
1991    type DataType = u16;
1992}
1993
1994#[doc = "USB Test Mode Register"]
1995pub type Testmode = crate::RegValueT<Testmode_SPEC>;
1996
1997impl Testmode {
1998    #[doc = "Test Mode"]
1999    #[inline(always)]
2000    pub fn utst(
2001        self,
2002    ) -> crate::common::RegisterField<
2003        0,
2004        0xf,
2005        1,
2006        0,
2007        testmode::Utst,
2008        testmode::Utst,
2009        Testmode_SPEC,
2010        crate::common::RW,
2011    > {
2012        crate::common::RegisterField::<
2013            0,
2014            0xf,
2015            1,
2016            0,
2017            testmode::Utst,
2018            testmode::Utst,
2019            Testmode_SPEC,
2020            crate::common::RW,
2021        >::from_register(self, 0)
2022    }
2023}
2024impl ::core::default::Default for Testmode {
2025    #[inline(always)]
2026    fn default() -> Testmode {
2027        <crate::RegValueT<Testmode_SPEC> as RegisterValue<_>>::new(0)
2028    }
2029}
2030pub mod testmode {
2031
2032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2033    pub struct Utst_SPEC;
2034    pub type Utst = crate::EnumBitfieldStruct<u8, Utst_SPEC>;
2035    impl Utst {
2036        #[doc = "Normal operation"]
2037        pub const _0000: Self = Self::new(0);
2038
2039        #[doc = "Test_J TestMode(When the Function Controller Function is Selected)"]
2040        pub const _0001: Self = Self::new(1);
2041
2042        #[doc = "Test_K TestMode(When the Function Controller Function is Selected)"]
2043        pub const _0010: Self = Self::new(2);
2044
2045        #[doc = "Test_SE0_NAK TestMode(When the Function Controller Function is Selected)"]
2046        pub const _0011: Self = Self::new(3);
2047
2048        #[doc = "Test_Packet TestMode(When the Function Controller Function is Selected)"]
2049        pub const _0100: Self = Self::new(4);
2050
2051        #[doc = "Reserved TestMode(When the Function Controller Function is Selected)"]
2052        pub const _0101: Self = Self::new(5);
2053
2054        #[doc = "Reserved TestMode(When the Function Controller Function is Selected)"]
2055        pub const _0110: Self = Self::new(6);
2056
2057        #[doc = "Reserved TestMode(When the Function Controller Function is Selected)"]
2058        pub const _0111: Self = Self::new(7);
2059
2060        #[doc = "Test_J TestMode(When the Host Controller Function is Selected)"]
2061        pub const _1001: Self = Self::new(9);
2062
2063        #[doc = "Test_K TestMode(When the Host Controller Function is Selected)"]
2064        pub const _1010: Self = Self::new(10);
2065
2066        #[doc = "Test_SE0_NAK TestMode(When the Host Controller Function is Selected)"]
2067        pub const _1011: Self = Self::new(11);
2068
2069        #[doc = "Test_Packet TestMode(When the Host Controller Function is Selected)"]
2070        pub const _1100: Self = Self::new(12);
2071
2072        #[doc = "Test_Force_EnableTestMode(When the Host Controller Function is Selected)"]
2073        pub const _1101: Self = Self::new(13);
2074
2075        #[doc = "Reserved TestMode(When the Host Controller Function is Selected)"]
2076        pub const _1110: Self = Self::new(14);
2077
2078        #[doc = "Reserved TestMode(When the Host Controller Function is Selected)"]
2079        pub const _1111: Self = Self::new(15);
2080    }
2081}
2082#[doc(hidden)]
2083#[derive(Copy, Clone, Eq, PartialEq)]
2084pub struct Cfifo_SPEC;
2085impl crate::sealed::RegSpec for Cfifo_SPEC {
2086    type DataType = u32;
2087}
2088
2089#[doc = "CFIFO Port Register"]
2090pub type Cfifo = crate::RegValueT<Cfifo_SPEC>;
2091
2092impl Cfifo {
2093    #[doc = "FIFO Port.Read receive data from the FIFO buffer or write transmit data to the FIFO buffer by accessing these bits."]
2094    #[inline(always)]
2095    pub fn fifoport(
2096        self,
2097    ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, Cfifo_SPEC, crate::common::RW>
2098    {
2099        crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,Cfifo_SPEC,crate::common::RW>::from_register(self,0)
2100    }
2101}
2102impl ::core::default::Default for Cfifo {
2103    #[inline(always)]
2104    fn default() -> Cfifo {
2105        <crate::RegValueT<Cfifo_SPEC> as RegisterValue<_>>::new(0)
2106    }
2107}
2108
2109#[doc(hidden)]
2110#[derive(Copy, Clone, Eq, PartialEq)]
2111pub struct Cfifol_SPEC;
2112impl crate::sealed::RegSpec for Cfifol_SPEC {
2113    type DataType = u16;
2114}
2115
2116#[doc = "CFIFO Port Register L"]
2117pub type Cfifol = crate::RegValueT<Cfifol_SPEC>;
2118
2119impl NoBitfieldReg<Cfifol_SPEC> for Cfifol {}
2120impl ::core::default::Default for Cfifol {
2121    #[inline(always)]
2122    fn default() -> Cfifol {
2123        <crate::RegValueT<Cfifol_SPEC> as RegisterValue<_>>::new(0)
2124    }
2125}
2126
2127#[doc(hidden)]
2128#[derive(Copy, Clone, Eq, PartialEq)]
2129pub struct Cfifoh_SPEC;
2130impl crate::sealed::RegSpec for Cfifoh_SPEC {
2131    type DataType = u16;
2132}
2133
2134#[doc = "CFIFO Port Register H"]
2135pub type Cfifoh = crate::RegValueT<Cfifoh_SPEC>;
2136
2137impl NoBitfieldReg<Cfifoh_SPEC> for Cfifoh {}
2138impl ::core::default::Default for Cfifoh {
2139    #[inline(always)]
2140    fn default() -> Cfifoh {
2141        <crate::RegValueT<Cfifoh_SPEC> as RegisterValue<_>>::new(0)
2142    }
2143}
2144
2145#[doc(hidden)]
2146#[derive(Copy, Clone, Eq, PartialEq)]
2147pub struct Cfifoll_SPEC;
2148impl crate::sealed::RegSpec for Cfifoll_SPEC {
2149    type DataType = u8;
2150}
2151
2152#[doc = "CFIFO Port Register LL"]
2153pub type Cfifoll = crate::RegValueT<Cfifoll_SPEC>;
2154
2155impl NoBitfieldReg<Cfifoll_SPEC> for Cfifoll {}
2156impl ::core::default::Default for Cfifoll {
2157    #[inline(always)]
2158    fn default() -> Cfifoll {
2159        <crate::RegValueT<Cfifoll_SPEC> as RegisterValue<_>>::new(0)
2160    }
2161}
2162
2163#[doc(hidden)]
2164#[derive(Copy, Clone, Eq, PartialEq)]
2165pub struct Cfifohh_SPEC;
2166impl crate::sealed::RegSpec for Cfifohh_SPEC {
2167    type DataType = u8;
2168}
2169
2170#[doc = "CFIFO Port Register HH"]
2171pub type Cfifohh = crate::RegValueT<Cfifohh_SPEC>;
2172
2173impl NoBitfieldReg<Cfifohh_SPEC> for Cfifohh {}
2174impl ::core::default::Default for Cfifohh {
2175    #[inline(always)]
2176    fn default() -> Cfifohh {
2177        <crate::RegValueT<Cfifohh_SPEC> as RegisterValue<_>>::new(0)
2178    }
2179}
2180
2181#[doc(hidden)]
2182#[derive(Copy, Clone, Eq, PartialEq)]
2183pub struct D0Fifo_SPEC;
2184impl crate::sealed::RegSpec for D0Fifo_SPEC {
2185    type DataType = u32;
2186}
2187
2188#[doc = "D0FIFO Port Register"]
2189pub type D0Fifo = crate::RegValueT<D0Fifo_SPEC>;
2190
2191impl D0Fifo {
2192    #[doc = "FIFO Port Read receive data from the FIFO buffer or write transmit data to the FIFO buffer by accessing these bits."]
2193    #[inline(always)]
2194    pub fn fifoport(
2195        self,
2196    ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, D0Fifo_SPEC, crate::common::RW>
2197    {
2198        crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,D0Fifo_SPEC,crate::common::RW>::from_register(self,0)
2199    }
2200}
2201impl ::core::default::Default for D0Fifo {
2202    #[inline(always)]
2203    fn default() -> D0Fifo {
2204        <crate::RegValueT<D0Fifo_SPEC> as RegisterValue<_>>::new(0)
2205    }
2206}
2207
2208#[doc(hidden)]
2209#[derive(Copy, Clone, Eq, PartialEq)]
2210pub struct D0Fifol_SPEC;
2211impl crate::sealed::RegSpec for D0Fifol_SPEC {
2212    type DataType = u16;
2213}
2214
2215#[doc = "D0FIFO Port Register L"]
2216pub type D0Fifol = crate::RegValueT<D0Fifol_SPEC>;
2217
2218impl NoBitfieldReg<D0Fifol_SPEC> for D0Fifol {}
2219impl ::core::default::Default for D0Fifol {
2220    #[inline(always)]
2221    fn default() -> D0Fifol {
2222        <crate::RegValueT<D0Fifol_SPEC> as RegisterValue<_>>::new(0)
2223    }
2224}
2225
2226#[doc(hidden)]
2227#[derive(Copy, Clone, Eq, PartialEq)]
2228pub struct D0Fifoh_SPEC;
2229impl crate::sealed::RegSpec for D0Fifoh_SPEC {
2230    type DataType = u16;
2231}
2232
2233#[doc = "D0FIFO Port Register H"]
2234pub type D0Fifoh = crate::RegValueT<D0Fifoh_SPEC>;
2235
2236impl NoBitfieldReg<D0Fifoh_SPEC> for D0Fifoh {}
2237impl ::core::default::Default for D0Fifoh {
2238    #[inline(always)]
2239    fn default() -> D0Fifoh {
2240        <crate::RegValueT<D0Fifoh_SPEC> as RegisterValue<_>>::new(0)
2241    }
2242}
2243
2244#[doc(hidden)]
2245#[derive(Copy, Clone, Eq, PartialEq)]
2246pub struct D0Fifoll_SPEC;
2247impl crate::sealed::RegSpec for D0Fifoll_SPEC {
2248    type DataType = u8;
2249}
2250
2251#[doc = "D0FIFO Port Register LL"]
2252pub type D0Fifoll = crate::RegValueT<D0Fifoll_SPEC>;
2253
2254impl NoBitfieldReg<D0Fifoll_SPEC> for D0Fifoll {}
2255impl ::core::default::Default for D0Fifoll {
2256    #[inline(always)]
2257    fn default() -> D0Fifoll {
2258        <crate::RegValueT<D0Fifoll_SPEC> as RegisterValue<_>>::new(0)
2259    }
2260}
2261
2262#[doc(hidden)]
2263#[derive(Copy, Clone, Eq, PartialEq)]
2264pub struct D0Fifohh_SPEC;
2265impl crate::sealed::RegSpec for D0Fifohh_SPEC {
2266    type DataType = u8;
2267}
2268
2269#[doc = "D0FIFO Port Register HH"]
2270pub type D0Fifohh = crate::RegValueT<D0Fifohh_SPEC>;
2271
2272impl NoBitfieldReg<D0Fifohh_SPEC> for D0Fifohh {}
2273impl ::core::default::Default for D0Fifohh {
2274    #[inline(always)]
2275    fn default() -> D0Fifohh {
2276        <crate::RegValueT<D0Fifohh_SPEC> as RegisterValue<_>>::new(0)
2277    }
2278}
2279
2280#[doc(hidden)]
2281#[derive(Copy, Clone, Eq, PartialEq)]
2282pub struct D1Fifo_SPEC;
2283impl crate::sealed::RegSpec for D1Fifo_SPEC {
2284    type DataType = u32;
2285}
2286
2287#[doc = "D1FIFO Port Register"]
2288pub type D1Fifo = crate::RegValueT<D1Fifo_SPEC>;
2289
2290impl D1Fifo {
2291    #[doc = "FIFO PortRead receive data from the FIFO buffer or write transmit data to the FIFO buffer by accessing these bits."]
2292    #[inline(always)]
2293    pub fn fifoport(
2294        self,
2295    ) -> crate::common::RegisterField<0, 0xffffffff, 1, 0, u32, u32, D1Fifo_SPEC, crate::common::RW>
2296    {
2297        crate::common::RegisterField::<0,0xffffffff,1,0,u32,u32,D1Fifo_SPEC,crate::common::RW>::from_register(self,0)
2298    }
2299}
2300impl ::core::default::Default for D1Fifo {
2301    #[inline(always)]
2302    fn default() -> D1Fifo {
2303        <crate::RegValueT<D1Fifo_SPEC> as RegisterValue<_>>::new(0)
2304    }
2305}
2306
2307#[doc(hidden)]
2308#[derive(Copy, Clone, Eq, PartialEq)]
2309pub struct D1Fifol_SPEC;
2310impl crate::sealed::RegSpec for D1Fifol_SPEC {
2311    type DataType = u16;
2312}
2313
2314#[doc = "D1FIFO Port Register L"]
2315pub type D1Fifol = crate::RegValueT<D1Fifol_SPEC>;
2316
2317impl NoBitfieldReg<D1Fifol_SPEC> for D1Fifol {}
2318impl ::core::default::Default for D1Fifol {
2319    #[inline(always)]
2320    fn default() -> D1Fifol {
2321        <crate::RegValueT<D1Fifol_SPEC> as RegisterValue<_>>::new(0)
2322    }
2323}
2324
2325#[doc(hidden)]
2326#[derive(Copy, Clone, Eq, PartialEq)]
2327pub struct D1Fifoh_SPEC;
2328impl crate::sealed::RegSpec for D1Fifoh_SPEC {
2329    type DataType = u16;
2330}
2331
2332#[doc = "D1FIFO Port Register H"]
2333pub type D1Fifoh = crate::RegValueT<D1Fifoh_SPEC>;
2334
2335impl NoBitfieldReg<D1Fifoh_SPEC> for D1Fifoh {}
2336impl ::core::default::Default for D1Fifoh {
2337    #[inline(always)]
2338    fn default() -> D1Fifoh {
2339        <crate::RegValueT<D1Fifoh_SPEC> as RegisterValue<_>>::new(0)
2340    }
2341}
2342
2343#[doc(hidden)]
2344#[derive(Copy, Clone, Eq, PartialEq)]
2345pub struct D1Fifoll_SPEC;
2346impl crate::sealed::RegSpec for D1Fifoll_SPEC {
2347    type DataType = u8;
2348}
2349
2350#[doc = "D1FIFO Port Register LL"]
2351pub type D1Fifoll = crate::RegValueT<D1Fifoll_SPEC>;
2352
2353impl NoBitfieldReg<D1Fifoll_SPEC> for D1Fifoll {}
2354impl ::core::default::Default for D1Fifoll {
2355    #[inline(always)]
2356    fn default() -> D1Fifoll {
2357        <crate::RegValueT<D1Fifoll_SPEC> as RegisterValue<_>>::new(0)
2358    }
2359}
2360
2361#[doc(hidden)]
2362#[derive(Copy, Clone, Eq, PartialEq)]
2363pub struct D1Fifohh_SPEC;
2364impl crate::sealed::RegSpec for D1Fifohh_SPEC {
2365    type DataType = u8;
2366}
2367
2368#[doc = "D1FIFO Port Register HH"]
2369pub type D1Fifohh = crate::RegValueT<D1Fifohh_SPEC>;
2370
2371impl NoBitfieldReg<D1Fifohh_SPEC> for D1Fifohh {}
2372impl ::core::default::Default for D1Fifohh {
2373    #[inline(always)]
2374    fn default() -> D1Fifohh {
2375        <crate::RegValueT<D1Fifohh_SPEC> as RegisterValue<_>>::new(0)
2376    }
2377}
2378
2379#[doc(hidden)]
2380#[derive(Copy, Clone, Eq, PartialEq)]
2381pub struct Cfifosel_SPEC;
2382impl crate::sealed::RegSpec for Cfifosel_SPEC {
2383    type DataType = u16;
2384}
2385
2386#[doc = "CFIFO Port Select Register"]
2387pub type Cfifosel = crate::RegValueT<Cfifosel_SPEC>;
2388
2389impl Cfifosel {
2390    #[doc = "Read Count Mode"]
2391    #[inline(always)]
2392    pub fn rcnt(
2393        self,
2394    ) -> crate::common::RegisterField<
2395        15,
2396        0x1,
2397        1,
2398        0,
2399        cfifosel::Rcnt,
2400        cfifosel::Rcnt,
2401        Cfifosel_SPEC,
2402        crate::common::RW,
2403    > {
2404        crate::common::RegisterField::<
2405            15,
2406            0x1,
2407            1,
2408            0,
2409            cfifosel::Rcnt,
2410            cfifosel::Rcnt,
2411            Cfifosel_SPEC,
2412            crate::common::RW,
2413        >::from_register(self, 0)
2414    }
2415
2416    #[doc = "Buffer Pointer Rewind"]
2417    #[inline(always)]
2418    pub fn rew(
2419        self,
2420    ) -> crate::common::RegisterField<
2421        14,
2422        0x1,
2423        1,
2424        0,
2425        cfifosel::Rew,
2426        cfifosel::Rew,
2427        Cfifosel_SPEC,
2428        crate::common::W,
2429    > {
2430        crate::common::RegisterField::<
2431            14,
2432            0x1,
2433            1,
2434            0,
2435            cfifosel::Rew,
2436            cfifosel::Rew,
2437            Cfifosel_SPEC,
2438            crate::common::W,
2439        >::from_register(self, 0)
2440    }
2441
2442    #[doc = "CFIFO Port Access Bit Width"]
2443    #[inline(always)]
2444    pub fn mbw(
2445        self,
2446    ) -> crate::common::RegisterField<
2447        10,
2448        0x3,
2449        1,
2450        0,
2451        cfifosel::Mbw,
2452        cfifosel::Mbw,
2453        Cfifosel_SPEC,
2454        crate::common::RW,
2455    > {
2456        crate::common::RegisterField::<
2457            10,
2458            0x3,
2459            1,
2460            0,
2461            cfifosel::Mbw,
2462            cfifosel::Mbw,
2463            Cfifosel_SPEC,
2464            crate::common::RW,
2465        >::from_register(self, 0)
2466    }
2467
2468    #[doc = "FIFO Port Endian Control"]
2469    #[inline(always)]
2470    pub fn bigend(
2471        self,
2472    ) -> crate::common::RegisterField<
2473        8,
2474        0x1,
2475        1,
2476        0,
2477        cfifosel::Bigend,
2478        cfifosel::Bigend,
2479        Cfifosel_SPEC,
2480        crate::common::RW,
2481    > {
2482        crate::common::RegisterField::<
2483            8,
2484            0x1,
2485            1,
2486            0,
2487            cfifosel::Bigend,
2488            cfifosel::Bigend,
2489            Cfifosel_SPEC,
2490            crate::common::RW,
2491        >::from_register(self, 0)
2492    }
2493
2494    #[doc = "FIFO Port Access Direction when DCP is Selected"]
2495    #[inline(always)]
2496    pub fn isel(
2497        self,
2498    ) -> crate::common::RegisterField<
2499        5,
2500        0x1,
2501        1,
2502        0,
2503        cfifosel::Isel,
2504        cfifosel::Isel,
2505        Cfifosel_SPEC,
2506        crate::common::RW,
2507    > {
2508        crate::common::RegisterField::<
2509            5,
2510            0x1,
2511            1,
2512            0,
2513            cfifosel::Isel,
2514            cfifosel::Isel,
2515            Cfifosel_SPEC,
2516            crate::common::RW,
2517        >::from_register(self, 0)
2518    }
2519
2520    #[doc = "FIFO Port Access Pipe Specification"]
2521    #[inline(always)]
2522    pub fn curpipe(
2523        self,
2524    ) -> crate::common::RegisterField<
2525        0,
2526        0xf,
2527        1,
2528        0,
2529        cfifosel::Curpipe,
2530        cfifosel::Curpipe,
2531        Cfifosel_SPEC,
2532        crate::common::RW,
2533    > {
2534        crate::common::RegisterField::<
2535            0,
2536            0xf,
2537            1,
2538            0,
2539            cfifosel::Curpipe,
2540            cfifosel::Curpipe,
2541            Cfifosel_SPEC,
2542            crate::common::RW,
2543        >::from_register(self, 0)
2544    }
2545}
2546impl ::core::default::Default for Cfifosel {
2547    #[inline(always)]
2548    fn default() -> Cfifosel {
2549        <crate::RegValueT<Cfifosel_SPEC> as RegisterValue<_>>::new(0)
2550    }
2551}
2552pub mod cfifosel {
2553
2554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2555    pub struct Rcnt_SPEC;
2556    pub type Rcnt = crate::EnumBitfieldStruct<u8, Rcnt_SPEC>;
2557    impl Rcnt {
2558        #[doc = "Clear DTLN\\[11:0\\] flags in the FIFO port control register to 000h when all receive data is read from CFIFO"]
2559        pub const _0: Self = Self::new(0);
2560
2561        #[doc = "Decrement DTLN\\[11:0\\] flags each time receive data is read from CFIFO."]
2562        pub const _1: Self = Self::new(1);
2563    }
2564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2565    pub struct Rew_SPEC;
2566    pub type Rew = crate::EnumBitfieldStruct<u8, Rew_SPEC>;
2567    impl Rew {
2568        #[doc = "Do not rewind buffer pointer (Writing 0 has no effect.)"]
2569        pub const _0: Self = Self::new(0);
2570
2571        #[doc = "Rewind buffer pointer."]
2572        pub const _1: Self = Self::new(1);
2573    }
2574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2575    pub struct Mbw_SPEC;
2576    pub type Mbw = crate::EnumBitfieldStruct<u8, Mbw_SPEC>;
2577    impl Mbw {
2578        #[doc = "8-bit width"]
2579        pub const _00: Self = Self::new(0);
2580
2581        #[doc = "16-bit width"]
2582        pub const _01: Self = Self::new(1);
2583
2584        #[doc = "32-bit width"]
2585        pub const _10: Self = Self::new(2);
2586
2587        #[doc = "Setting prohibited"]
2588        pub const _11: Self = Self::new(3);
2589    }
2590    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2591    pub struct Bigend_SPEC;
2592    pub type Bigend = crate::EnumBitfieldStruct<u8, Bigend_SPEC>;
2593    impl Bigend {
2594        #[doc = "Little endian"]
2595        pub const _0: Self = Self::new(0);
2596
2597        #[doc = "Big endian"]
2598        pub const _1: Self = Self::new(1);
2599    }
2600    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2601    pub struct Isel_SPEC;
2602    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
2603    impl Isel {
2604        #[doc = "Select reading from the FIFO buffer"]
2605        pub const _0: Self = Self::new(0);
2606
2607        #[doc = "Select writing to the FIFO buffer."]
2608        pub const _1: Self = Self::new(1);
2609    }
2610    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2611    pub struct Curpipe_SPEC;
2612    pub type Curpipe = crate::EnumBitfieldStruct<u8, Curpipe_SPEC>;
2613    impl Curpipe {
2614        #[doc = "DCP"]
2615        pub const _0000: Self = Self::new(0);
2616
2617        #[doc = "PIPE1"]
2618        pub const _0001: Self = Self::new(1);
2619
2620        #[doc = "PIPE2"]
2621        pub const _0010: Self = Self::new(2);
2622
2623        #[doc = "PIPE3"]
2624        pub const _0011: Self = Self::new(3);
2625
2626        #[doc = "PIPE4"]
2627        pub const _0100: Self = Self::new(4);
2628
2629        #[doc = "PIPE5"]
2630        pub const _0101: Self = Self::new(5);
2631
2632        #[doc = "PIPE6"]
2633        pub const _0110: Self = Self::new(6);
2634
2635        #[doc = "PIPE7"]
2636        pub const _0111: Self = Self::new(7);
2637
2638        #[doc = "PIPE8"]
2639        pub const _1000: Self = Self::new(8);
2640
2641        #[doc = "PIPE9"]
2642        pub const _1001: Self = Self::new(9);
2643    }
2644}
2645#[doc(hidden)]
2646#[derive(Copy, Clone, Eq, PartialEq)]
2647pub struct D0Fifosel_SPEC;
2648impl crate::sealed::RegSpec for D0Fifosel_SPEC {
2649    type DataType = u16;
2650}
2651
2652#[doc = "D0FIFO Port Select Register"]
2653pub type D0Fifosel = crate::RegValueT<D0Fifosel_SPEC>;
2654
2655impl D0Fifosel {
2656    #[doc = "Read Count Mode"]
2657    #[inline(always)]
2658    pub fn rcnt(
2659        self,
2660    ) -> crate::common::RegisterField<
2661        15,
2662        0x1,
2663        1,
2664        0,
2665        d0fifosel::Rcnt,
2666        d0fifosel::Rcnt,
2667        D0Fifosel_SPEC,
2668        crate::common::RW,
2669    > {
2670        crate::common::RegisterField::<
2671            15,
2672            0x1,
2673            1,
2674            0,
2675            d0fifosel::Rcnt,
2676            d0fifosel::Rcnt,
2677            D0Fifosel_SPEC,
2678            crate::common::RW,
2679        >::from_register(self, 0)
2680    }
2681
2682    #[doc = "Buffer Pointer Rewind"]
2683    #[inline(always)]
2684    pub fn rew(
2685        self,
2686    ) -> crate::common::RegisterField<
2687        14,
2688        0x1,
2689        1,
2690        0,
2691        d0fifosel::Rew,
2692        d0fifosel::Rew,
2693        D0Fifosel_SPEC,
2694        crate::common::W,
2695    > {
2696        crate::common::RegisterField::<
2697            14,
2698            0x1,
2699            1,
2700            0,
2701            d0fifosel::Rew,
2702            d0fifosel::Rew,
2703            D0Fifosel_SPEC,
2704            crate::common::W,
2705        >::from_register(self, 0)
2706    }
2707
2708    #[doc = "Auto Buffer Memory Clear Mode Accessed after Specified Pipe Data is Read"]
2709    #[inline(always)]
2710    pub fn dclrm(
2711        self,
2712    ) -> crate::common::RegisterField<
2713        13,
2714        0x1,
2715        1,
2716        0,
2717        d0fifosel::Dclrm,
2718        d0fifosel::Dclrm,
2719        D0Fifosel_SPEC,
2720        crate::common::RW,
2721    > {
2722        crate::common::RegisterField::<
2723            13,
2724            0x1,
2725            1,
2726            0,
2727            d0fifosel::Dclrm,
2728            d0fifosel::Dclrm,
2729            D0Fifosel_SPEC,
2730            crate::common::RW,
2731        >::from_register(self, 0)
2732    }
2733
2734    #[doc = "UCL_Dx_DREQ Signal Output Enable"]
2735    #[inline(always)]
2736    pub fn dreqe(
2737        self,
2738    ) -> crate::common::RegisterField<
2739        12,
2740        0x1,
2741        1,
2742        0,
2743        d0fifosel::Dreqe,
2744        d0fifosel::Dreqe,
2745        D0Fifosel_SPEC,
2746        crate::common::RW,
2747    > {
2748        crate::common::RegisterField::<
2749            12,
2750            0x1,
2751            1,
2752            0,
2753            d0fifosel::Dreqe,
2754            d0fifosel::Dreqe,
2755            D0Fifosel_SPEC,
2756            crate::common::RW,
2757        >::from_register(self, 0)
2758    }
2759
2760    #[doc = "FIFO Port Access Bit Width"]
2761    #[inline(always)]
2762    pub fn mbw(
2763        self,
2764    ) -> crate::common::RegisterField<
2765        10,
2766        0x3,
2767        1,
2768        0,
2769        d0fifosel::Mbw,
2770        d0fifosel::Mbw,
2771        D0Fifosel_SPEC,
2772        crate::common::RW,
2773    > {
2774        crate::common::RegisterField::<
2775            10,
2776            0x3,
2777            1,
2778            0,
2779            d0fifosel::Mbw,
2780            d0fifosel::Mbw,
2781            D0Fifosel_SPEC,
2782            crate::common::RW,
2783        >::from_register(self, 0)
2784    }
2785
2786    #[doc = "FIFO Port Endian Control"]
2787    #[inline(always)]
2788    pub fn bigend(
2789        self,
2790    ) -> crate::common::RegisterField<
2791        8,
2792        0x1,
2793        1,
2794        0,
2795        d0fifosel::Bigend,
2796        d0fifosel::Bigend,
2797        D0Fifosel_SPEC,
2798        crate::common::RW,
2799    > {
2800        crate::common::RegisterField::<
2801            8,
2802            0x1,
2803            1,
2804            0,
2805            d0fifosel::Bigend,
2806            d0fifosel::Bigend,
2807            D0Fifosel_SPEC,
2808            crate::common::RW,
2809        >::from_register(self, 0)
2810    }
2811
2812    #[doc = "FIFO Port Access Pipe Specification"]
2813    #[inline(always)]
2814    pub fn curpipe(
2815        self,
2816    ) -> crate::common::RegisterField<
2817        0,
2818        0xf,
2819        1,
2820        0,
2821        d0fifosel::Curpipe,
2822        d0fifosel::Curpipe,
2823        D0Fifosel_SPEC,
2824        crate::common::RW,
2825    > {
2826        crate::common::RegisterField::<
2827            0,
2828            0xf,
2829            1,
2830            0,
2831            d0fifosel::Curpipe,
2832            d0fifosel::Curpipe,
2833            D0Fifosel_SPEC,
2834            crate::common::RW,
2835        >::from_register(self, 0)
2836    }
2837}
2838impl ::core::default::Default for D0Fifosel {
2839    #[inline(always)]
2840    fn default() -> D0Fifosel {
2841        <crate::RegValueT<D0Fifosel_SPEC> as RegisterValue<_>>::new(0)
2842    }
2843}
2844pub mod d0fifosel {
2845
2846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2847    pub struct Rcnt_SPEC;
2848    pub type Rcnt = crate::EnumBitfieldStruct<u8, Rcnt_SPEC>;
2849    impl Rcnt {
2850        #[doc = "The DTLN bits are cleared when all of the receive data has been read from the CFIFO"]
2851        pub const _0: Self = Self::new(0);
2852
2853        #[doc = "The DTLN bits are decremented each time the receive data is read from the CFIFO"]
2854        pub const _1: Self = Self::new(1);
2855    }
2856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2857    pub struct Rew_SPEC;
2858    pub type Rew = crate::EnumBitfieldStruct<u8, Rew_SPEC>;
2859    impl Rew {
2860        #[doc = "The buffer pointer is not rewound"]
2861        pub const _0: Self = Self::new(0);
2862
2863        #[doc = "The buffer pointer is rewound"]
2864        pub const _1: Self = Self::new(1);
2865    }
2866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2867    pub struct Dclrm_SPEC;
2868    pub type Dclrm = crate::EnumBitfieldStruct<u8, Dclrm_SPEC>;
2869    impl Dclrm {
2870        #[doc = "Auto buffer clear mode is disabled"]
2871        pub const _0: Self = Self::new(0);
2872
2873        #[doc = "Auto buffer clear mode is enabled"]
2874        pub const _1: Self = Self::new(1);
2875    }
2876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2877    pub struct Dreqe_SPEC;
2878    pub type Dreqe = crate::EnumBitfieldStruct<u8, Dreqe_SPEC>;
2879    impl Dreqe {
2880        #[doc = "Disables the output"]
2881        pub const _0: Self = Self::new(0);
2882
2883        #[doc = "Enables the output"]
2884        pub const _1: Self = Self::new(1);
2885    }
2886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2887    pub struct Mbw_SPEC;
2888    pub type Mbw = crate::EnumBitfieldStruct<u8, Mbw_SPEC>;
2889    impl Mbw {
2890        #[doc = "8-bit width"]
2891        pub const _00: Self = Self::new(0);
2892
2893        #[doc = "16-bit width"]
2894        pub const _01: Self = Self::new(1);
2895
2896        #[doc = "32-bit width"]
2897        pub const _10: Self = Self::new(2);
2898
2899        #[doc = "Setting prohibited"]
2900        pub const _11: Self = Self::new(3);
2901    }
2902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2903    pub struct Bigend_SPEC;
2904    pub type Bigend = crate::EnumBitfieldStruct<u8, Bigend_SPEC>;
2905    impl Bigend {
2906        #[doc = "Little endian"]
2907        pub const _0: Self = Self::new(0);
2908
2909        #[doc = "Big endian"]
2910        pub const _1: Self = Self::new(1);
2911    }
2912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2913    pub struct Curpipe_SPEC;
2914    pub type Curpipe = crate::EnumBitfieldStruct<u8, Curpipe_SPEC>;
2915    impl Curpipe {
2916        #[doc = "No pipe specified"]
2917        pub const _0000: Self = Self::new(0);
2918
2919        #[doc = "Pipe1"]
2920        pub const _0001: Self = Self::new(1);
2921
2922        #[doc = "Pipe 2"]
2923        pub const _0010: Self = Self::new(2);
2924
2925        #[doc = "Pipe 3"]
2926        pub const _0011: Self = Self::new(3);
2927
2928        #[doc = "Pipe 4"]
2929        pub const _0100: Self = Self::new(4);
2930
2931        #[doc = "Pipe 5"]
2932        pub const _0101: Self = Self::new(5);
2933
2934        #[doc = "Pipe 6"]
2935        pub const _0110: Self = Self::new(6);
2936
2937        #[doc = "Pipe 7"]
2938        pub const _0111: Self = Self::new(7);
2939
2940        #[doc = "Pipe 8"]
2941        pub const _1000: Self = Self::new(8);
2942
2943        #[doc = "Pipe 9"]
2944        pub const _1001: Self = Self::new(9);
2945    }
2946}
2947#[doc(hidden)]
2948#[derive(Copy, Clone, Eq, PartialEq)]
2949pub struct D1Fifosel_SPEC;
2950impl crate::sealed::RegSpec for D1Fifosel_SPEC {
2951    type DataType = u16;
2952}
2953
2954#[doc = "D1FIFO Port Select Register"]
2955pub type D1Fifosel = crate::RegValueT<D1Fifosel_SPEC>;
2956
2957impl D1Fifosel {
2958    #[doc = "Read Count Mode"]
2959    #[inline(always)]
2960    pub fn rcnt(
2961        self,
2962    ) -> crate::common::RegisterField<
2963        15,
2964        0x1,
2965        1,
2966        0,
2967        d1fifosel::Rcnt,
2968        d1fifosel::Rcnt,
2969        D1Fifosel_SPEC,
2970        crate::common::RW,
2971    > {
2972        crate::common::RegisterField::<
2973            15,
2974            0x1,
2975            1,
2976            0,
2977            d1fifosel::Rcnt,
2978            d1fifosel::Rcnt,
2979            D1Fifosel_SPEC,
2980            crate::common::RW,
2981        >::from_register(self, 0)
2982    }
2983
2984    #[doc = "Buffer Pointer Rewind"]
2985    #[inline(always)]
2986    pub fn rew(
2987        self,
2988    ) -> crate::common::RegisterField<
2989        14,
2990        0x1,
2991        1,
2992        0,
2993        d1fifosel::Rew,
2994        d1fifosel::Rew,
2995        D1Fifosel_SPEC,
2996        crate::common::W,
2997    > {
2998        crate::common::RegisterField::<
2999            14,
3000            0x1,
3001            1,
3002            0,
3003            d1fifosel::Rew,
3004            d1fifosel::Rew,
3005            D1Fifosel_SPEC,
3006            crate::common::W,
3007        >::from_register(self, 0)
3008    }
3009
3010    #[doc = "Auto Buffer Memory Clear Mode Accessed after Specified Pipe Data is Read"]
3011    #[inline(always)]
3012    pub fn dclrm(
3013        self,
3014    ) -> crate::common::RegisterField<
3015        13,
3016        0x1,
3017        1,
3018        0,
3019        d1fifosel::Dclrm,
3020        d1fifosel::Dclrm,
3021        D1Fifosel_SPEC,
3022        crate::common::RW,
3023    > {
3024        crate::common::RegisterField::<
3025            13,
3026            0x1,
3027            1,
3028            0,
3029            d1fifosel::Dclrm,
3030            d1fifosel::Dclrm,
3031            D1Fifosel_SPEC,
3032            crate::common::RW,
3033        >::from_register(self, 0)
3034    }
3035
3036    #[doc = "UCL_Dx_DREQ Signal Output Enable"]
3037    #[inline(always)]
3038    pub fn dreqe(
3039        self,
3040    ) -> crate::common::RegisterField<
3041        12,
3042        0x1,
3043        1,
3044        0,
3045        d1fifosel::Dreqe,
3046        d1fifosel::Dreqe,
3047        D1Fifosel_SPEC,
3048        crate::common::RW,
3049    > {
3050        crate::common::RegisterField::<
3051            12,
3052            0x1,
3053            1,
3054            0,
3055            d1fifosel::Dreqe,
3056            d1fifosel::Dreqe,
3057            D1Fifosel_SPEC,
3058            crate::common::RW,
3059        >::from_register(self, 0)
3060    }
3061
3062    #[doc = "FIFO Port Access Bit Width"]
3063    #[inline(always)]
3064    pub fn mbw(
3065        self,
3066    ) -> crate::common::RegisterField<
3067        10,
3068        0x3,
3069        1,
3070        0,
3071        d1fifosel::Mbw,
3072        d1fifosel::Mbw,
3073        D1Fifosel_SPEC,
3074        crate::common::RW,
3075    > {
3076        crate::common::RegisterField::<
3077            10,
3078            0x3,
3079            1,
3080            0,
3081            d1fifosel::Mbw,
3082            d1fifosel::Mbw,
3083            D1Fifosel_SPEC,
3084            crate::common::RW,
3085        >::from_register(self, 0)
3086    }
3087
3088    #[doc = "FIFO Port Endian Control"]
3089    #[inline(always)]
3090    pub fn bigend(
3091        self,
3092    ) -> crate::common::RegisterField<
3093        8,
3094        0x1,
3095        1,
3096        0,
3097        d1fifosel::Bigend,
3098        d1fifosel::Bigend,
3099        D1Fifosel_SPEC,
3100        crate::common::RW,
3101    > {
3102        crate::common::RegisterField::<
3103            8,
3104            0x1,
3105            1,
3106            0,
3107            d1fifosel::Bigend,
3108            d1fifosel::Bigend,
3109            D1Fifosel_SPEC,
3110            crate::common::RW,
3111        >::from_register(self, 0)
3112    }
3113
3114    #[doc = "FIFO Port Access Pipe Specification"]
3115    #[inline(always)]
3116    pub fn curpipe(
3117        self,
3118    ) -> crate::common::RegisterField<
3119        0,
3120        0xf,
3121        1,
3122        0,
3123        d1fifosel::Curpipe,
3124        d1fifosel::Curpipe,
3125        D1Fifosel_SPEC,
3126        crate::common::RW,
3127    > {
3128        crate::common::RegisterField::<
3129            0,
3130            0xf,
3131            1,
3132            0,
3133            d1fifosel::Curpipe,
3134            d1fifosel::Curpipe,
3135            D1Fifosel_SPEC,
3136            crate::common::RW,
3137        >::from_register(self, 0)
3138    }
3139}
3140impl ::core::default::Default for D1Fifosel {
3141    #[inline(always)]
3142    fn default() -> D1Fifosel {
3143        <crate::RegValueT<D1Fifosel_SPEC> as RegisterValue<_>>::new(0)
3144    }
3145}
3146pub mod d1fifosel {
3147
3148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3149    pub struct Rcnt_SPEC;
3150    pub type Rcnt = crate::EnumBitfieldStruct<u8, Rcnt_SPEC>;
3151    impl Rcnt {
3152        #[doc = "The DTLN bits are cleared when all of the receive data has been read from the CFIFO"]
3153        pub const _0: Self = Self::new(0);
3154
3155        #[doc = "The DTLN bits are decremented each time the receive data is read from the CFIFO"]
3156        pub const _1: Self = Self::new(1);
3157    }
3158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3159    pub struct Rew_SPEC;
3160    pub type Rew = crate::EnumBitfieldStruct<u8, Rew_SPEC>;
3161    impl Rew {
3162        #[doc = "The buffer pointer is not rewound"]
3163        pub const _0: Self = Self::new(0);
3164
3165        #[doc = "The buffer pointer is rewound"]
3166        pub const _1: Self = Self::new(1);
3167    }
3168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3169    pub struct Dclrm_SPEC;
3170    pub type Dclrm = crate::EnumBitfieldStruct<u8, Dclrm_SPEC>;
3171    impl Dclrm {
3172        #[doc = "Auto buffer clear mode is disabled"]
3173        pub const _0: Self = Self::new(0);
3174
3175        #[doc = "Auto buffer clear mode is enabled"]
3176        pub const _1: Self = Self::new(1);
3177    }
3178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3179    pub struct Dreqe_SPEC;
3180    pub type Dreqe = crate::EnumBitfieldStruct<u8, Dreqe_SPEC>;
3181    impl Dreqe {
3182        #[doc = "Disables the output"]
3183        pub const _0: Self = Self::new(0);
3184
3185        #[doc = "Enables the output"]
3186        pub const _1: Self = Self::new(1);
3187    }
3188    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3189    pub struct Mbw_SPEC;
3190    pub type Mbw = crate::EnumBitfieldStruct<u8, Mbw_SPEC>;
3191    impl Mbw {
3192        #[doc = "8-bit width"]
3193        pub const _00: Self = Self::new(0);
3194
3195        #[doc = "16-bit width"]
3196        pub const _01: Self = Self::new(1);
3197
3198        #[doc = "32-bit width"]
3199        pub const _10: Self = Self::new(2);
3200
3201        #[doc = "Setting prohibited"]
3202        pub const _11: Self = Self::new(3);
3203    }
3204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3205    pub struct Bigend_SPEC;
3206    pub type Bigend = crate::EnumBitfieldStruct<u8, Bigend_SPEC>;
3207    impl Bigend {
3208        #[doc = "Little endian"]
3209        pub const _0: Self = Self::new(0);
3210
3211        #[doc = "Big endian"]
3212        pub const _1: Self = Self::new(1);
3213    }
3214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3215    pub struct Curpipe_SPEC;
3216    pub type Curpipe = crate::EnumBitfieldStruct<u8, Curpipe_SPEC>;
3217    impl Curpipe {
3218        #[doc = "No pipe specified"]
3219        pub const _0000: Self = Self::new(0);
3220
3221        #[doc = "Pipe 1"]
3222        pub const _0001: Self = Self::new(1);
3223
3224        #[doc = "Pipe 2"]
3225        pub const _0010: Self = Self::new(2);
3226
3227        #[doc = "Pipe 3"]
3228        pub const _0011: Self = Self::new(3);
3229
3230        #[doc = "Pipe 4"]
3231        pub const _0100: Self = Self::new(4);
3232
3233        #[doc = "Pipe 5"]
3234        pub const _0101: Self = Self::new(5);
3235
3236        #[doc = "Pipe 6"]
3237        pub const _0110: Self = Self::new(6);
3238
3239        #[doc = "Pipe 7"]
3240        pub const _0111: Self = Self::new(7);
3241
3242        #[doc = "Pipe 8"]
3243        pub const _1000: Self = Self::new(8);
3244
3245        #[doc = "Pipe 9"]
3246        pub const _1001: Self = Self::new(9);
3247    }
3248}
3249#[doc(hidden)]
3250#[derive(Copy, Clone, Eq, PartialEq)]
3251pub struct Cfifoctr_SPEC;
3252impl crate::sealed::RegSpec for Cfifoctr_SPEC {
3253    type DataType = u16;
3254}
3255
3256#[doc = "CFIFO Port Control Register"]
3257pub type Cfifoctr = crate::RegValueT<Cfifoctr_SPEC>;
3258
3259impl Cfifoctr {
3260    #[doc = "Buffer Memory Valid Flag"]
3261    #[inline(always)]
3262    pub fn bval(
3263        self,
3264    ) -> crate::common::RegisterField<
3265        15,
3266        0x1,
3267        1,
3268        0,
3269        cfifoctr::Bval,
3270        cfifoctr::Bval,
3271        Cfifoctr_SPEC,
3272        crate::common::RW,
3273    > {
3274        crate::common::RegisterField::<
3275            15,
3276            0x1,
3277            1,
3278            0,
3279            cfifoctr::Bval,
3280            cfifoctr::Bval,
3281            Cfifoctr_SPEC,
3282            crate::common::RW,
3283        >::from_register(self, 0)
3284    }
3285
3286    #[doc = "CPU Buffer Clear"]
3287    #[inline(always)]
3288    pub fn bclr(
3289        self,
3290    ) -> crate::common::RegisterField<
3291        14,
3292        0x1,
3293        1,
3294        0,
3295        cfifoctr::Bclr,
3296        cfifoctr::Bclr,
3297        Cfifoctr_SPEC,
3298        crate::common::W,
3299    > {
3300        crate::common::RegisterField::<
3301            14,
3302            0x1,
3303            1,
3304            0,
3305            cfifoctr::Bclr,
3306            cfifoctr::Bclr,
3307            Cfifoctr_SPEC,
3308            crate::common::W,
3309        >::from_register(self, 0)
3310    }
3311
3312    #[doc = "FIFO Port ReadyIndicates whether the FIFO port can be accessed."]
3313    #[inline(always)]
3314    pub fn frdy(
3315        self,
3316    ) -> crate::common::RegisterField<
3317        13,
3318        0x1,
3319        1,
3320        0,
3321        cfifoctr::Frdy,
3322        cfifoctr::Frdy,
3323        Cfifoctr_SPEC,
3324        crate::common::R,
3325    > {
3326        crate::common::RegisterField::<
3327            13,
3328            0x1,
3329            1,
3330            0,
3331            cfifoctr::Frdy,
3332            cfifoctr::Frdy,
3333            Cfifoctr_SPEC,
3334            crate::common::R,
3335        >::from_register(self, 0)
3336    }
3337
3338    #[doc = "Receive Data Length.Indicates the length of the receive data."]
3339    #[inline(always)]
3340    pub fn dtln(
3341        self,
3342    ) -> crate::common::RegisterField<0, 0xfff, 1, 0, u16, u16, Cfifoctr_SPEC, crate::common::R>
3343    {
3344        crate::common::RegisterField::<0,0xfff,1,0,u16,u16,Cfifoctr_SPEC,crate::common::R>::from_register(self,0)
3345    }
3346}
3347impl ::core::default::Default for Cfifoctr {
3348    #[inline(always)]
3349    fn default() -> Cfifoctr {
3350        <crate::RegValueT<Cfifoctr_SPEC> as RegisterValue<_>>::new(0)
3351    }
3352}
3353pub mod cfifoctr {
3354
3355    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3356    pub struct Bval_SPEC;
3357    pub type Bval = crate::EnumBitfieldStruct<u8, Bval_SPEC>;
3358    impl Bval {
3359        #[doc = "Invalid"]
3360        pub const _0: Self = Self::new(0);
3361
3362        #[doc = "Writing ended"]
3363        pub const _1: Self = Self::new(1);
3364    }
3365    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3366    pub struct Bclr_SPEC;
3367    pub type Bclr = crate::EnumBitfieldStruct<u8, Bclr_SPEC>;
3368    impl Bclr {
3369        #[doc = "No operation"]
3370        pub const _0: Self = Self::new(0);
3371
3372        #[doc = "Clear FIFO buffer on the CPU side."]
3373        pub const _1: Self = Self::new(1);
3374    }
3375    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3376    pub struct Frdy_SPEC;
3377    pub type Frdy = crate::EnumBitfieldStruct<u8, Frdy_SPEC>;
3378    impl Frdy {
3379        #[doc = "FIFO port access is disabled"]
3380        pub const _0: Self = Self::new(0);
3381
3382        #[doc = "FIFO port access is enabled"]
3383        pub const _1: Self = Self::new(1);
3384    }
3385}
3386#[doc(hidden)]
3387#[derive(Copy, Clone, Eq, PartialEq)]
3388pub struct D0Fifoctr_SPEC;
3389impl crate::sealed::RegSpec for D0Fifoctr_SPEC {
3390    type DataType = u16;
3391}
3392
3393#[doc = "D0FIFO Port Control Register"]
3394pub type D0Fifoctr = crate::RegValueT<D0Fifoctr_SPEC>;
3395
3396impl D0Fifoctr {
3397    #[doc = "Buffer Memory Valid Flag"]
3398    #[inline(always)]
3399    pub fn bval(
3400        self,
3401    ) -> crate::common::RegisterField<
3402        15,
3403        0x1,
3404        1,
3405        0,
3406        d0fifoctr::Bval,
3407        d0fifoctr::Bval,
3408        D0Fifoctr_SPEC,
3409        crate::common::RW,
3410    > {
3411        crate::common::RegisterField::<
3412            15,
3413            0x1,
3414            1,
3415            0,
3416            d0fifoctr::Bval,
3417            d0fifoctr::Bval,
3418            D0Fifoctr_SPEC,
3419            crate::common::RW,
3420        >::from_register(self, 0)
3421    }
3422
3423    #[doc = "CPU Buffer Clear"]
3424    #[inline(always)]
3425    pub fn bclr(
3426        self,
3427    ) -> crate::common::RegisterField<
3428        14,
3429        0x1,
3430        1,
3431        0,
3432        d0fifoctr::Bclr,
3433        d0fifoctr::Bclr,
3434        D0Fifoctr_SPEC,
3435        crate::common::W,
3436    > {
3437        crate::common::RegisterField::<
3438            14,
3439            0x1,
3440            1,
3441            0,
3442            d0fifoctr::Bclr,
3443            d0fifoctr::Bclr,
3444            D0Fifoctr_SPEC,
3445            crate::common::W,
3446        >::from_register(self, 0)
3447    }
3448
3449    #[doc = "FIFO Port ReadyIndicates whether the FIFO port can be accessed."]
3450    #[inline(always)]
3451    pub fn frdy(
3452        self,
3453    ) -> crate::common::RegisterField<
3454        13,
3455        0x1,
3456        1,
3457        0,
3458        d0fifoctr::Frdy,
3459        d0fifoctr::Frdy,
3460        D0Fifoctr_SPEC,
3461        crate::common::R,
3462    > {
3463        crate::common::RegisterField::<
3464            13,
3465            0x1,
3466            1,
3467            0,
3468            d0fifoctr::Frdy,
3469            d0fifoctr::Frdy,
3470            D0Fifoctr_SPEC,
3471            crate::common::R,
3472        >::from_register(self, 0)
3473    }
3474
3475    #[doc = "Receive Data Length.Indicates the length of the receive data."]
3476    #[inline(always)]
3477    pub fn dtln(
3478        self,
3479    ) -> crate::common::RegisterField<0, 0xfff, 1, 0, u16, u16, D0Fifoctr_SPEC, crate::common::R>
3480    {
3481        crate::common::RegisterField::<0,0xfff,1,0,u16,u16,D0Fifoctr_SPEC,crate::common::R>::from_register(self,0)
3482    }
3483}
3484impl ::core::default::Default for D0Fifoctr {
3485    #[inline(always)]
3486    fn default() -> D0Fifoctr {
3487        <crate::RegValueT<D0Fifoctr_SPEC> as RegisterValue<_>>::new(0)
3488    }
3489}
3490pub mod d0fifoctr {
3491
3492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3493    pub struct Bval_SPEC;
3494    pub type Bval = crate::EnumBitfieldStruct<u8, Bval_SPEC>;
3495    impl Bval {
3496        #[doc = "Invalid"]
3497        pub const _0: Self = Self::new(0);
3498
3499        #[doc = "Writing ended"]
3500        pub const _1: Self = Self::new(1);
3501    }
3502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3503    pub struct Bclr_SPEC;
3504    pub type Bclr = crate::EnumBitfieldStruct<u8, Bclr_SPEC>;
3505    impl Bclr {
3506        #[doc = "No operation"]
3507        pub const _0: Self = Self::new(0);
3508
3509        #[doc = "Clear FIFO buffer on the CPU side."]
3510        pub const _1: Self = Self::new(1);
3511    }
3512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3513    pub struct Frdy_SPEC;
3514    pub type Frdy = crate::EnumBitfieldStruct<u8, Frdy_SPEC>;
3515    impl Frdy {
3516        #[doc = "FIFO port access is disabled"]
3517        pub const _0: Self = Self::new(0);
3518
3519        #[doc = "FIFO port access is enabled"]
3520        pub const _1: Self = Self::new(1);
3521    }
3522}
3523#[doc(hidden)]
3524#[derive(Copy, Clone, Eq, PartialEq)]
3525pub struct D1Fifoctr_SPEC;
3526impl crate::sealed::RegSpec for D1Fifoctr_SPEC {
3527    type DataType = u16;
3528}
3529
3530#[doc = "D1FIFO Port Control Register"]
3531pub type D1Fifoctr = crate::RegValueT<D1Fifoctr_SPEC>;
3532
3533impl D1Fifoctr {
3534    #[doc = "Buffer Memory Valid Flag"]
3535    #[inline(always)]
3536    pub fn bval(
3537        self,
3538    ) -> crate::common::RegisterField<
3539        15,
3540        0x1,
3541        1,
3542        0,
3543        d1fifoctr::Bval,
3544        d1fifoctr::Bval,
3545        D1Fifoctr_SPEC,
3546        crate::common::RW,
3547    > {
3548        crate::common::RegisterField::<
3549            15,
3550            0x1,
3551            1,
3552            0,
3553            d1fifoctr::Bval,
3554            d1fifoctr::Bval,
3555            D1Fifoctr_SPEC,
3556            crate::common::RW,
3557        >::from_register(self, 0)
3558    }
3559
3560    #[doc = "CPU Buffer Clear"]
3561    #[inline(always)]
3562    pub fn bclr(
3563        self,
3564    ) -> crate::common::RegisterField<
3565        14,
3566        0x1,
3567        1,
3568        0,
3569        d1fifoctr::Bclr,
3570        d1fifoctr::Bclr,
3571        D1Fifoctr_SPEC,
3572        crate::common::W,
3573    > {
3574        crate::common::RegisterField::<
3575            14,
3576            0x1,
3577            1,
3578            0,
3579            d1fifoctr::Bclr,
3580            d1fifoctr::Bclr,
3581            D1Fifoctr_SPEC,
3582            crate::common::W,
3583        >::from_register(self, 0)
3584    }
3585
3586    #[doc = "FIFO Port ReadyIndicates whether the FIFO port can be accessed."]
3587    #[inline(always)]
3588    pub fn frdy(
3589        self,
3590    ) -> crate::common::RegisterField<
3591        13,
3592        0x1,
3593        1,
3594        0,
3595        d1fifoctr::Frdy,
3596        d1fifoctr::Frdy,
3597        D1Fifoctr_SPEC,
3598        crate::common::R,
3599    > {
3600        crate::common::RegisterField::<
3601            13,
3602            0x1,
3603            1,
3604            0,
3605            d1fifoctr::Frdy,
3606            d1fifoctr::Frdy,
3607            D1Fifoctr_SPEC,
3608            crate::common::R,
3609        >::from_register(self, 0)
3610    }
3611
3612    #[doc = "Receive Data Length.Indicates the length of the receive data."]
3613    #[inline(always)]
3614    pub fn dtln(
3615        self,
3616    ) -> crate::common::RegisterField<0, 0xfff, 1, 0, u16, u16, D1Fifoctr_SPEC, crate::common::R>
3617    {
3618        crate::common::RegisterField::<0,0xfff,1,0,u16,u16,D1Fifoctr_SPEC,crate::common::R>::from_register(self,0)
3619    }
3620}
3621impl ::core::default::Default for D1Fifoctr {
3622    #[inline(always)]
3623    fn default() -> D1Fifoctr {
3624        <crate::RegValueT<D1Fifoctr_SPEC> as RegisterValue<_>>::new(0)
3625    }
3626}
3627pub mod d1fifoctr {
3628
3629    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3630    pub struct Bval_SPEC;
3631    pub type Bval = crate::EnumBitfieldStruct<u8, Bval_SPEC>;
3632    impl Bval {
3633        #[doc = "Invalid"]
3634        pub const _0: Self = Self::new(0);
3635
3636        #[doc = "Writing ended"]
3637        pub const _1: Self = Self::new(1);
3638    }
3639    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3640    pub struct Bclr_SPEC;
3641    pub type Bclr = crate::EnumBitfieldStruct<u8, Bclr_SPEC>;
3642    impl Bclr {
3643        #[doc = "No operation"]
3644        pub const _0: Self = Self::new(0);
3645
3646        #[doc = "Clear FIFO buffer on the CPU side."]
3647        pub const _1: Self = Self::new(1);
3648    }
3649    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3650    pub struct Frdy_SPEC;
3651    pub type Frdy = crate::EnumBitfieldStruct<u8, Frdy_SPEC>;
3652    impl Frdy {
3653        #[doc = "FIFO port access is disabled"]
3654        pub const _0: Self = Self::new(0);
3655
3656        #[doc = "FIFO port access is enabled"]
3657        pub const _1: Self = Self::new(1);
3658    }
3659}
3660#[doc(hidden)]
3661#[derive(Copy, Clone, Eq, PartialEq)]
3662pub struct Intenb0_SPEC;
3663impl crate::sealed::RegSpec for Intenb0_SPEC {
3664    type DataType = u16;
3665}
3666
3667#[doc = "Interrupt Enable Register 0"]
3668pub type Intenb0 = crate::RegValueT<Intenb0_SPEC>;
3669
3670impl Intenb0 {
3671    #[doc = "VBUS Interrupt Enable"]
3672    #[inline(always)]
3673    pub fn vbse(
3674        self,
3675    ) -> crate::common::RegisterField<
3676        15,
3677        0x1,
3678        1,
3679        0,
3680        intenb0::Vbse,
3681        intenb0::Vbse,
3682        Intenb0_SPEC,
3683        crate::common::RW,
3684    > {
3685        crate::common::RegisterField::<
3686            15,
3687            0x1,
3688            1,
3689            0,
3690            intenb0::Vbse,
3691            intenb0::Vbse,
3692            Intenb0_SPEC,
3693            crate::common::RW,
3694        >::from_register(self, 0)
3695    }
3696
3697    #[doc = "Resume Interrupt Enable"]
3698    #[inline(always)]
3699    pub fn rsme(
3700        self,
3701    ) -> crate::common::RegisterField<
3702        14,
3703        0x1,
3704        1,
3705        0,
3706        intenb0::Rsme,
3707        intenb0::Rsme,
3708        Intenb0_SPEC,
3709        crate::common::RW,
3710    > {
3711        crate::common::RegisterField::<
3712            14,
3713            0x1,
3714            1,
3715            0,
3716            intenb0::Rsme,
3717            intenb0::Rsme,
3718            Intenb0_SPEC,
3719            crate::common::RW,
3720        >::from_register(self, 0)
3721    }
3722
3723    #[doc = "Frame Number Update Interrupt Enable"]
3724    #[inline(always)]
3725    pub fn sofe(
3726        self,
3727    ) -> crate::common::RegisterField<
3728        13,
3729        0x1,
3730        1,
3731        0,
3732        intenb0::Sofe,
3733        intenb0::Sofe,
3734        Intenb0_SPEC,
3735        crate::common::RW,
3736    > {
3737        crate::common::RegisterField::<
3738            13,
3739            0x1,
3740            1,
3741            0,
3742            intenb0::Sofe,
3743            intenb0::Sofe,
3744            Intenb0_SPEC,
3745            crate::common::RW,
3746        >::from_register(self, 0)
3747    }
3748
3749    #[doc = "Device State Transition Interrupt Enable"]
3750    #[inline(always)]
3751    pub fn dvse(
3752        self,
3753    ) -> crate::common::RegisterField<
3754        12,
3755        0x1,
3756        1,
3757        0,
3758        intenb0::Dvse,
3759        intenb0::Dvse,
3760        Intenb0_SPEC,
3761        crate::common::RW,
3762    > {
3763        crate::common::RegisterField::<
3764            12,
3765            0x1,
3766            1,
3767            0,
3768            intenb0::Dvse,
3769            intenb0::Dvse,
3770            Intenb0_SPEC,
3771            crate::common::RW,
3772        >::from_register(self, 0)
3773    }
3774
3775    #[doc = "Control Transfer Stage Transition Interrupt Enable"]
3776    #[inline(always)]
3777    pub fn ctre(
3778        self,
3779    ) -> crate::common::RegisterField<
3780        11,
3781        0x1,
3782        1,
3783        0,
3784        intenb0::Ctre,
3785        intenb0::Ctre,
3786        Intenb0_SPEC,
3787        crate::common::RW,
3788    > {
3789        crate::common::RegisterField::<
3790            11,
3791            0x1,
3792            1,
3793            0,
3794            intenb0::Ctre,
3795            intenb0::Ctre,
3796            Intenb0_SPEC,
3797            crate::common::RW,
3798        >::from_register(self, 0)
3799    }
3800
3801    #[doc = "Buffer Empty Interrupt Enable"]
3802    #[inline(always)]
3803    pub fn bempe(
3804        self,
3805    ) -> crate::common::RegisterField<
3806        10,
3807        0x1,
3808        1,
3809        0,
3810        intenb0::Bempe,
3811        intenb0::Bempe,
3812        Intenb0_SPEC,
3813        crate::common::RW,
3814    > {
3815        crate::common::RegisterField::<
3816            10,
3817            0x1,
3818            1,
3819            0,
3820            intenb0::Bempe,
3821            intenb0::Bempe,
3822            Intenb0_SPEC,
3823            crate::common::RW,
3824        >::from_register(self, 0)
3825    }
3826
3827    #[doc = "Buffer Not Ready Response Interrupt Enable"]
3828    #[inline(always)]
3829    pub fn nrdye(
3830        self,
3831    ) -> crate::common::RegisterField<
3832        9,
3833        0x1,
3834        1,
3835        0,
3836        intenb0::Nrdye,
3837        intenb0::Nrdye,
3838        Intenb0_SPEC,
3839        crate::common::RW,
3840    > {
3841        crate::common::RegisterField::<
3842            9,
3843            0x1,
3844            1,
3845            0,
3846            intenb0::Nrdye,
3847            intenb0::Nrdye,
3848            Intenb0_SPEC,
3849            crate::common::RW,
3850        >::from_register(self, 0)
3851    }
3852
3853    #[doc = "Buffer Ready Interrupt Enable"]
3854    #[inline(always)]
3855    pub fn brdye(
3856        self,
3857    ) -> crate::common::RegisterField<
3858        8,
3859        0x1,
3860        1,
3861        0,
3862        intenb0::Brdye,
3863        intenb0::Brdye,
3864        Intenb0_SPEC,
3865        crate::common::RW,
3866    > {
3867        crate::common::RegisterField::<
3868            8,
3869            0x1,
3870            1,
3871            0,
3872            intenb0::Brdye,
3873            intenb0::Brdye,
3874            Intenb0_SPEC,
3875            crate::common::RW,
3876        >::from_register(self, 0)
3877    }
3878}
3879impl ::core::default::Default for Intenb0 {
3880    #[inline(always)]
3881    fn default() -> Intenb0 {
3882        <crate::RegValueT<Intenb0_SPEC> as RegisterValue<_>>::new(0)
3883    }
3884}
3885pub mod intenb0 {
3886
3887    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3888    pub struct Vbse_SPEC;
3889    pub type Vbse = crate::EnumBitfieldStruct<u8, Vbse_SPEC>;
3890    impl Vbse {
3891        #[doc = "Interrupt output disabled"]
3892        pub const _0: Self = Self::new(0);
3893
3894        #[doc = "Interrupt output enabled"]
3895        pub const _1: Self = Self::new(1);
3896    }
3897    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3898    pub struct Rsme_SPEC;
3899    pub type Rsme = crate::EnumBitfieldStruct<u8, Rsme_SPEC>;
3900    impl Rsme {
3901        #[doc = "Interrupt output disabled"]
3902        pub const _0: Self = Self::new(0);
3903
3904        #[doc = "Interrupt output enabled"]
3905        pub const _1: Self = Self::new(1);
3906    }
3907    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3908    pub struct Sofe_SPEC;
3909    pub type Sofe = crate::EnumBitfieldStruct<u8, Sofe_SPEC>;
3910    impl Sofe {
3911        #[doc = "Interrupt output disabled"]
3912        pub const _0: Self = Self::new(0);
3913
3914        #[doc = "Interrupt output enabled"]
3915        pub const _1: Self = Self::new(1);
3916    }
3917    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3918    pub struct Dvse_SPEC;
3919    pub type Dvse = crate::EnumBitfieldStruct<u8, Dvse_SPEC>;
3920    impl Dvse {
3921        #[doc = "Interrupt output disabled"]
3922        pub const _0: Self = Self::new(0);
3923
3924        #[doc = "Interrupt output enabled"]
3925        pub const _1: Self = Self::new(1);
3926    }
3927    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3928    pub struct Ctre_SPEC;
3929    pub type Ctre = crate::EnumBitfieldStruct<u8, Ctre_SPEC>;
3930    impl Ctre {
3931        #[doc = "Interrupt output disabled"]
3932        pub const _0: Self = Self::new(0);
3933
3934        #[doc = "Interrupt output enabled"]
3935        pub const _1: Self = Self::new(1);
3936    }
3937    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3938    pub struct Bempe_SPEC;
3939    pub type Bempe = crate::EnumBitfieldStruct<u8, Bempe_SPEC>;
3940    impl Bempe {
3941        #[doc = "Interrupt output disabled"]
3942        pub const _0: Self = Self::new(0);
3943
3944        #[doc = "Interrupt output enabled"]
3945        pub const _1: Self = Self::new(1);
3946    }
3947    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3948    pub struct Nrdye_SPEC;
3949    pub type Nrdye = crate::EnumBitfieldStruct<u8, Nrdye_SPEC>;
3950    impl Nrdye {
3951        #[doc = "Interrupt output disabled"]
3952        pub const _0: Self = Self::new(0);
3953
3954        #[doc = "Interrupt output enabled"]
3955        pub const _1: Self = Self::new(1);
3956    }
3957    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3958    pub struct Brdye_SPEC;
3959    pub type Brdye = crate::EnumBitfieldStruct<u8, Brdye_SPEC>;
3960    impl Brdye {
3961        #[doc = "Interrupt output disabled"]
3962        pub const _0: Self = Self::new(0);
3963
3964        #[doc = "Interrupt output enabled"]
3965        pub const _1: Self = Self::new(1);
3966    }
3967}
3968#[doc(hidden)]
3969#[derive(Copy, Clone, Eq, PartialEq)]
3970pub struct Intenb1_SPEC;
3971impl crate::sealed::RegSpec for Intenb1_SPEC {
3972    type DataType = u16;
3973}
3974
3975#[doc = "Interrupt Enable Register 1"]
3976pub type Intenb1 = crate::RegValueT<Intenb1_SPEC>;
3977
3978impl Intenb1 {
3979    #[doc = "OVRCRE Interrupt Enable"]
3980    #[inline(always)]
3981    pub fn ovrcre(
3982        self,
3983    ) -> crate::common::RegisterField<
3984        15,
3985        0x1,
3986        1,
3987        0,
3988        intenb1::Ovrcre,
3989        intenb1::Ovrcre,
3990        Intenb1_SPEC,
3991        crate::common::RW,
3992    > {
3993        crate::common::RegisterField::<
3994            15,
3995            0x1,
3996            1,
3997            0,
3998            intenb1::Ovrcre,
3999            intenb1::Ovrcre,
4000            Intenb1_SPEC,
4001            crate::common::RW,
4002        >::from_register(self, 0)
4003    }
4004
4005    #[doc = "USB Bus Change Interrupt Enable"]
4006    #[inline(always)]
4007    pub fn bchge(
4008        self,
4009    ) -> crate::common::RegisterField<
4010        14,
4011        0x1,
4012        1,
4013        0,
4014        intenb1::Bchge,
4015        intenb1::Bchge,
4016        Intenb1_SPEC,
4017        crate::common::RW,
4018    > {
4019        crate::common::RegisterField::<
4020            14,
4021            0x1,
4022            1,
4023            0,
4024            intenb1::Bchge,
4025            intenb1::Bchge,
4026            Intenb1_SPEC,
4027            crate::common::RW,
4028        >::from_register(self, 0)
4029    }
4030
4031    #[doc = "Disconnection Detection Interrupt Enable"]
4032    #[inline(always)]
4033    pub fn dtche(
4034        self,
4035    ) -> crate::common::RegisterField<
4036        12,
4037        0x1,
4038        1,
4039        0,
4040        intenb1::Dtche,
4041        intenb1::Dtche,
4042        Intenb1_SPEC,
4043        crate::common::RW,
4044    > {
4045        crate::common::RegisterField::<
4046            12,
4047            0x1,
4048            1,
4049            0,
4050            intenb1::Dtche,
4051            intenb1::Dtche,
4052            Intenb1_SPEC,
4053            crate::common::RW,
4054        >::from_register(self, 0)
4055    }
4056
4057    #[doc = "Connection Detection Interrupt Enable"]
4058    #[inline(always)]
4059    pub fn attche(
4060        self,
4061    ) -> crate::common::RegisterField<
4062        11,
4063        0x1,
4064        1,
4065        0,
4066        intenb1::Attche,
4067        intenb1::Attche,
4068        Intenb1_SPEC,
4069        crate::common::RW,
4070    > {
4071        crate::common::RegisterField::<
4072            11,
4073            0x1,
4074            1,
4075            0,
4076            intenb1::Attche,
4077            intenb1::Attche,
4078            Intenb1_SPEC,
4079            crate::common::RW,
4080        >::from_register(self, 0)
4081    }
4082
4083    #[doc = "L1 Resume End Interrupt Enable"]
4084    #[inline(always)]
4085    pub fn l1rsmende(
4086        self,
4087    ) -> crate::common::RegisterField<
4088        9,
4089        0x1,
4090        1,
4091        0,
4092        intenb1::L1Rsmende,
4093        intenb1::L1Rsmende,
4094        Intenb1_SPEC,
4095        crate::common::RW,
4096    > {
4097        crate::common::RegisterField::<
4098            9,
4099            0x1,
4100            1,
4101            0,
4102            intenb1::L1Rsmende,
4103            intenb1::L1Rsmende,
4104            Intenb1_SPEC,
4105            crate::common::RW,
4106        >::from_register(self, 0)
4107    }
4108
4109    #[doc = "LPM Transaction End Interrupt Enable"]
4110    #[inline(always)]
4111    pub fn lpmende(
4112        self,
4113    ) -> crate::common::RegisterField<
4114        8,
4115        0x1,
4116        1,
4117        0,
4118        intenb1::Lpmende,
4119        intenb1::Lpmende,
4120        Intenb1_SPEC,
4121        crate::common::RW,
4122    > {
4123        crate::common::RegisterField::<
4124            8,
4125            0x1,
4126            1,
4127            0,
4128            intenb1::Lpmende,
4129            intenb1::Lpmende,
4130            Intenb1_SPEC,
4131            crate::common::RW,
4132        >::from_register(self, 0)
4133    }
4134
4135    #[doc = "EOF Error Detection Interrupt Enable"]
4136    #[inline(always)]
4137    pub fn eoferre(
4138        self,
4139    ) -> crate::common::RegisterField<
4140        6,
4141        0x1,
4142        1,
4143        0,
4144        intenb1::Eoferre,
4145        intenb1::Eoferre,
4146        Intenb1_SPEC,
4147        crate::common::RW,
4148    > {
4149        crate::common::RegisterField::<
4150            6,
4151            0x1,
4152            1,
4153            0,
4154            intenb1::Eoferre,
4155            intenb1::Eoferre,
4156            Intenb1_SPEC,
4157            crate::common::RW,
4158        >::from_register(self, 0)
4159    }
4160
4161    #[doc = "Setup Transaction Error Interrupt Enable"]
4162    #[inline(always)]
4163    pub fn signe(
4164        self,
4165    ) -> crate::common::RegisterField<
4166        5,
4167        0x1,
4168        1,
4169        0,
4170        intenb1::Signe,
4171        intenb1::Signe,
4172        Intenb1_SPEC,
4173        crate::common::RW,
4174    > {
4175        crate::common::RegisterField::<
4176            5,
4177            0x1,
4178            1,
4179            0,
4180            intenb1::Signe,
4181            intenb1::Signe,
4182            Intenb1_SPEC,
4183            crate::common::RW,
4184        >::from_register(self, 0)
4185    }
4186
4187    #[doc = "Setup Transaction Normal Response Interrupt Enable"]
4188    #[inline(always)]
4189    pub fn sacke(
4190        self,
4191    ) -> crate::common::RegisterField<
4192        4,
4193        0x1,
4194        1,
4195        0,
4196        intenb1::Sacke,
4197        intenb1::Sacke,
4198        Intenb1_SPEC,
4199        crate::common::RW,
4200    > {
4201        crate::common::RegisterField::<
4202            4,
4203            0x1,
4204            1,
4205            0,
4206            intenb1::Sacke,
4207            intenb1::Sacke,
4208            Intenb1_SPEC,
4209            crate::common::RW,
4210        >::from_register(self, 0)
4211    }
4212
4213    #[doc = "PDDETINT Detection Interrupt Enable"]
4214    #[inline(always)]
4215    pub fn pddetinte(
4216        self,
4217    ) -> crate::common::RegisterField<
4218        0,
4219        0x1,
4220        1,
4221        0,
4222        intenb1::Pddetinte,
4223        intenb1::Pddetinte,
4224        Intenb1_SPEC,
4225        crate::common::RW,
4226    > {
4227        crate::common::RegisterField::<
4228            0,
4229            0x1,
4230            1,
4231            0,
4232            intenb1::Pddetinte,
4233            intenb1::Pddetinte,
4234            Intenb1_SPEC,
4235            crate::common::RW,
4236        >::from_register(self, 0)
4237    }
4238}
4239impl ::core::default::Default for Intenb1 {
4240    #[inline(always)]
4241    fn default() -> Intenb1 {
4242        <crate::RegValueT<Intenb1_SPEC> as RegisterValue<_>>::new(0)
4243    }
4244}
4245pub mod intenb1 {
4246
4247    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4248    pub struct Ovrcre_SPEC;
4249    pub type Ovrcre = crate::EnumBitfieldStruct<u8, Ovrcre_SPEC>;
4250    impl Ovrcre {
4251        #[doc = "Interrupt output disabled"]
4252        pub const _0: Self = Self::new(0);
4253
4254        #[doc = "Interrupt output enabled"]
4255        pub const _1: Self = Self::new(1);
4256    }
4257    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4258    pub struct Bchge_SPEC;
4259    pub type Bchge = crate::EnumBitfieldStruct<u8, Bchge_SPEC>;
4260    impl Bchge {
4261        #[doc = "Interrupt output disabled"]
4262        pub const _0: Self = Self::new(0);
4263
4264        #[doc = "Interrupt output enabled"]
4265        pub const _1: Self = Self::new(1);
4266    }
4267    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4268    pub struct Dtche_SPEC;
4269    pub type Dtche = crate::EnumBitfieldStruct<u8, Dtche_SPEC>;
4270    impl Dtche {
4271        #[doc = "Interrupt output disabled"]
4272        pub const _0: Self = Self::new(0);
4273
4274        #[doc = "Interrupt output enabled"]
4275        pub const _1: Self = Self::new(1);
4276    }
4277    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4278    pub struct Attche_SPEC;
4279    pub type Attche = crate::EnumBitfieldStruct<u8, Attche_SPEC>;
4280    impl Attche {
4281        #[doc = "Interrupt output disabled"]
4282        pub const _0: Self = Self::new(0);
4283
4284        #[doc = "Interrupt output enabled"]
4285        pub const _1: Self = Self::new(1);
4286    }
4287    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4288    pub struct L1Rsmende_SPEC;
4289    pub type L1Rsmende = crate::EnumBitfieldStruct<u8, L1Rsmende_SPEC>;
4290    impl L1Rsmende {
4291        #[doc = "Interrupt output disabled"]
4292        pub const _0: Self = Self::new(0);
4293
4294        #[doc = "Interrupt output enabled"]
4295        pub const _1: Self = Self::new(1);
4296    }
4297    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4298    pub struct Lpmende_SPEC;
4299    pub type Lpmende = crate::EnumBitfieldStruct<u8, Lpmende_SPEC>;
4300    impl Lpmende {
4301        #[doc = "Interrupt output disabled"]
4302        pub const _0: Self = Self::new(0);
4303
4304        #[doc = "Interrupt output enabled"]
4305        pub const _1: Self = Self::new(1);
4306    }
4307    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4308    pub struct Eoferre_SPEC;
4309    pub type Eoferre = crate::EnumBitfieldStruct<u8, Eoferre_SPEC>;
4310    impl Eoferre {
4311        #[doc = "Interrupt output disabled"]
4312        pub const _0: Self = Self::new(0);
4313
4314        #[doc = "Interrupt output enabled"]
4315        pub const _1: Self = Self::new(1);
4316    }
4317    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4318    pub struct Signe_SPEC;
4319    pub type Signe = crate::EnumBitfieldStruct<u8, Signe_SPEC>;
4320    impl Signe {
4321        #[doc = "Interrupt output disabled"]
4322        pub const _0: Self = Self::new(0);
4323
4324        #[doc = "Interrupt output enabled"]
4325        pub const _1: Self = Self::new(1);
4326    }
4327    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4328    pub struct Sacke_SPEC;
4329    pub type Sacke = crate::EnumBitfieldStruct<u8, Sacke_SPEC>;
4330    impl Sacke {
4331        #[doc = "Interrupt output disabled"]
4332        pub const _0: Self = Self::new(0);
4333
4334        #[doc = "Interrupt output enabled"]
4335        pub const _1: Self = Self::new(1);
4336    }
4337    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4338    pub struct Pddetinte_SPEC;
4339    pub type Pddetinte = crate::EnumBitfieldStruct<u8, Pddetinte_SPEC>;
4340    impl Pddetinte {
4341        #[doc = "Interrupt output disabled"]
4342        pub const _0: Self = Self::new(0);
4343
4344        #[doc = "Interrupt output enabled"]
4345        pub const _1: Self = Self::new(1);
4346    }
4347}
4348#[doc(hidden)]
4349#[derive(Copy, Clone, Eq, PartialEq)]
4350pub struct Brdyenb_SPEC;
4351impl crate::sealed::RegSpec for Brdyenb_SPEC {
4352    type DataType = u16;
4353}
4354
4355#[doc = "BRDY Interrupt Enable Register"]
4356pub type Brdyenb = crate::RegValueT<Brdyenb_SPEC>;
4357
4358impl Brdyenb {
4359    #[doc = "BRDY Interrupt Enable for Each Pipe"]
4360    #[inline(always)]
4361    pub fn pipebrdye(
4362        self,
4363    ) -> crate::common::RegisterField<
4364        0,
4365        0x3ff,
4366        1,
4367        0,
4368        brdyenb::Pipebrdye,
4369        brdyenb::Pipebrdye,
4370        Brdyenb_SPEC,
4371        crate::common::RW,
4372    > {
4373        crate::common::RegisterField::<
4374            0,
4375            0x3ff,
4376            1,
4377            0,
4378            brdyenb::Pipebrdye,
4379            brdyenb::Pipebrdye,
4380            Brdyenb_SPEC,
4381            crate::common::RW,
4382        >::from_register(self, 0)
4383    }
4384}
4385impl ::core::default::Default for Brdyenb {
4386    #[inline(always)]
4387    fn default() -> Brdyenb {
4388        <crate::RegValueT<Brdyenb_SPEC> as RegisterValue<_>>::new(0)
4389    }
4390}
4391pub mod brdyenb {
4392
4393    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4394    pub struct Pipebrdye_SPEC;
4395    pub type Pipebrdye = crate::EnumBitfieldStruct<u8, Pipebrdye_SPEC>;
4396    impl Pipebrdye {
4397        #[doc = "Interrupt output disabled"]
4398        pub const _0: Self = Self::new(0);
4399
4400        #[doc = "Interrupt output enabled"]
4401        pub const _1: Self = Self::new(1);
4402    }
4403}
4404#[doc(hidden)]
4405#[derive(Copy, Clone, Eq, PartialEq)]
4406pub struct Nrdyenb_SPEC;
4407impl crate::sealed::RegSpec for Nrdyenb_SPEC {
4408    type DataType = u16;
4409}
4410
4411#[doc = "NRDY Interrupt Enable Register"]
4412pub type Nrdyenb = crate::RegValueT<Nrdyenb_SPEC>;
4413
4414impl Nrdyenb {
4415    #[doc = "NRDY Interrupt Enable for Each Pipe"]
4416    #[inline(always)]
4417    pub fn pipenrdye(
4418        self,
4419    ) -> crate::common::RegisterField<
4420        0,
4421        0x3ff,
4422        1,
4423        0,
4424        nrdyenb::Pipenrdye,
4425        nrdyenb::Pipenrdye,
4426        Nrdyenb_SPEC,
4427        crate::common::RW,
4428    > {
4429        crate::common::RegisterField::<
4430            0,
4431            0x3ff,
4432            1,
4433            0,
4434            nrdyenb::Pipenrdye,
4435            nrdyenb::Pipenrdye,
4436            Nrdyenb_SPEC,
4437            crate::common::RW,
4438        >::from_register(self, 0)
4439    }
4440}
4441impl ::core::default::Default for Nrdyenb {
4442    #[inline(always)]
4443    fn default() -> Nrdyenb {
4444        <crate::RegValueT<Nrdyenb_SPEC> as RegisterValue<_>>::new(0)
4445    }
4446}
4447pub mod nrdyenb {
4448
4449    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4450    pub struct Pipenrdye_SPEC;
4451    pub type Pipenrdye = crate::EnumBitfieldStruct<u8, Pipenrdye_SPEC>;
4452    impl Pipenrdye {
4453        #[doc = "Interrupt output disabled"]
4454        pub const _0: Self = Self::new(0);
4455
4456        #[doc = "Interrupt output enabled"]
4457        pub const _1: Self = Self::new(1);
4458    }
4459}
4460#[doc(hidden)]
4461#[derive(Copy, Clone, Eq, PartialEq)]
4462pub struct Bempenb_SPEC;
4463impl crate::sealed::RegSpec for Bempenb_SPEC {
4464    type DataType = u16;
4465}
4466
4467#[doc = "BEMP Interrupt Enable Register"]
4468pub type Bempenb = crate::RegValueT<Bempenb_SPEC>;
4469
4470impl Bempenb {
4471    #[doc = "BEMP Interrupt Enable for Each Pipe"]
4472    #[inline(always)]
4473    pub fn pipebempe(
4474        self,
4475    ) -> crate::common::RegisterField<
4476        0,
4477        0x3ff,
4478        1,
4479        0,
4480        bempenb::Pipebempe,
4481        bempenb::Pipebempe,
4482        Bempenb_SPEC,
4483        crate::common::RW,
4484    > {
4485        crate::common::RegisterField::<
4486            0,
4487            0x3ff,
4488            1,
4489            0,
4490            bempenb::Pipebempe,
4491            bempenb::Pipebempe,
4492            Bempenb_SPEC,
4493            crate::common::RW,
4494        >::from_register(self, 0)
4495    }
4496}
4497impl ::core::default::Default for Bempenb {
4498    #[inline(always)]
4499    fn default() -> Bempenb {
4500        <crate::RegValueT<Bempenb_SPEC> as RegisterValue<_>>::new(0)
4501    }
4502}
4503pub mod bempenb {
4504
4505    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4506    pub struct Pipebempe_SPEC;
4507    pub type Pipebempe = crate::EnumBitfieldStruct<u8, Pipebempe_SPEC>;
4508    impl Pipebempe {
4509        #[doc = "Interrupt output disabled"]
4510        pub const _0: Self = Self::new(0);
4511
4512        #[doc = "Interrupt output enabled"]
4513        pub const _1: Self = Self::new(1);
4514    }
4515}
4516#[doc(hidden)]
4517#[derive(Copy, Clone, Eq, PartialEq)]
4518pub struct Sofcfg_SPEC;
4519impl crate::sealed::RegSpec for Sofcfg_SPEC {
4520    type DataType = u16;
4521}
4522
4523#[doc = "SOF Pin Configuration Register"]
4524pub type Sofcfg = crate::RegValueT<Sofcfg_SPEC>;
4525
4526impl Sofcfg {
4527    #[doc = "Transaction-Enabled Time Select.The transfer efficiency can be improved by setting this bit to 1 if no low-speed device is connected directly or via FS-HUB to the USB port."]
4528    #[inline(always)]
4529    pub fn trnensel(
4530        self,
4531    ) -> crate::common::RegisterField<
4532        8,
4533        0x1,
4534        1,
4535        0,
4536        sofcfg::Trnensel,
4537        sofcfg::Trnensel,
4538        Sofcfg_SPEC,
4539        crate::common::RW,
4540    > {
4541        crate::common::RegisterField::<
4542            8,
4543            0x1,
4544            1,
4545            0,
4546            sofcfg::Trnensel,
4547            sofcfg::Trnensel,
4548            Sofcfg_SPEC,
4549            crate::common::RW,
4550        >::from_register(self, 0)
4551    }
4552
4553    #[doc = "PIPEBRDY Interrupt Status Clear Timing.This bit can be set only in the initial setting (before communications).The setting cannot be changed once communication starts."]
4554    #[inline(always)]
4555    pub fn brdym(
4556        self,
4557    ) -> crate::common::RegisterField<
4558        6,
4559        0x1,
4560        1,
4561        0,
4562        sofcfg::Brdym,
4563        sofcfg::Brdym,
4564        Sofcfg_SPEC,
4565        crate::common::RW,
4566    > {
4567        crate::common::RegisterField::<
4568            6,
4569            0x1,
4570            1,
4571            0,
4572            sofcfg::Brdym,
4573            sofcfg::Brdym,
4574            Sofcfg_SPEC,
4575            crate::common::RW,
4576        >::from_register(self, 0)
4577    }
4578
4579    #[doc = "Interrupt Output Sense Select"]
4580    #[inline(always)]
4581    pub fn intl(
4582        self,
4583    ) -> crate::common::RegisterField<
4584        5,
4585        0x1,
4586        1,
4587        0,
4588        sofcfg::Intl,
4589        sofcfg::Intl,
4590        Sofcfg_SPEC,
4591        crate::common::RW,
4592    > {
4593        crate::common::RegisterField::<
4594            5,
4595            0x1,
4596            1,
4597            0,
4598            sofcfg::Intl,
4599            sofcfg::Intl,
4600            Sofcfg_SPEC,
4601            crate::common::RW,
4602        >::from_register(self, 0)
4603    }
4604
4605    #[doc = "Interrupt Edge Processing Status Monitor"]
4606    #[inline(always)]
4607    pub fn edgests(
4608        self,
4609    ) -> crate::common::RegisterField<
4610        4,
4611        0x1,
4612        1,
4613        0,
4614        sofcfg::Edgests,
4615        sofcfg::Edgests,
4616        Sofcfg_SPEC,
4617        crate::common::R,
4618    > {
4619        crate::common::RegisterField::<
4620            4,
4621            0x1,
4622            1,
4623            0,
4624            sofcfg::Edgests,
4625            sofcfg::Edgests,
4626            Sofcfg_SPEC,
4627            crate::common::R,
4628        >::from_register(self, 0)
4629    }
4630}
4631impl ::core::default::Default for Sofcfg {
4632    #[inline(always)]
4633    fn default() -> Sofcfg {
4634        <crate::RegValueT<Sofcfg_SPEC> as RegisterValue<_>>::new(0)
4635    }
4636}
4637pub mod sofcfg {
4638
4639    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4640    pub struct Trnensel_SPEC;
4641    pub type Trnensel = crate::EnumBitfieldStruct<u8, Trnensel_SPEC>;
4642    impl Trnensel {
4643        #[doc = "For non-low-speed communication"]
4644        pub const _0: Self = Self::new(0);
4645
4646        #[doc = "For low-speed communication"]
4647        pub const _1: Self = Self::new(1);
4648    }
4649    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4650    pub struct Brdym_SPEC;
4651    pub type Brdym = crate::EnumBitfieldStruct<u8, Brdym_SPEC>;
4652    impl Brdym {
4653        #[doc = "Software clears the status."]
4654        pub const _0: Self = Self::new(0);
4655
4656        #[doc = "Hardware clears the status when data has been read from the FIFO buffer or data has been written to the FIFO buffer."]
4657        pub const _1: Self = Self::new(1);
4658    }
4659    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4660    pub struct Intl_SPEC;
4661    pub type Intl = crate::EnumBitfieldStruct<u8, Intl_SPEC>;
4662    impl Intl {
4663        #[doc = "Edge sense"]
4664        pub const _0: Self = Self::new(0);
4665
4666        #[doc = "Level sense"]
4667        pub const _1: Self = Self::new(1);
4668    }
4669    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4670    pub struct Edgests_SPEC;
4671    pub type Edgests = crate::EnumBitfieldStruct<u8, Edgests_SPEC>;
4672    impl Edgests {
4673        #[doc = "Interrupt edge processing is not run"]
4674        pub const _0: Self = Self::new(0);
4675
4676        #[doc = "Interrupt edge processing is running"]
4677        pub const _1: Self = Self::new(1);
4678    }
4679}
4680#[doc(hidden)]
4681#[derive(Copy, Clone, Eq, PartialEq)]
4682pub struct Physet_SPEC;
4683impl crate::sealed::RegSpec for Physet_SPEC {
4684    type DataType = u16;
4685}
4686
4687#[doc = "PHY Setting Register"]
4688pub type Physet = crate::RegValueT<Physet_SPEC>;
4689
4690impl Physet {
4691    #[doc = "CL-Only Mode"]
4692    #[inline(always)]
4693    pub fn hseb(
4694        self,
4695    ) -> crate::common::RegisterField<
4696        15,
4697        0x1,
4698        1,
4699        0,
4700        physet::Hseb,
4701        physet::Hseb,
4702        Physet_SPEC,
4703        crate::common::RW,
4704    > {
4705        crate::common::RegisterField::<
4706            15,
4707            0x1,
4708            1,
4709            0,
4710            physet::Hseb,
4711            physet::Hseb,
4712            Physet_SPEC,
4713            crate::common::RW,
4714        >::from_register(self, 0)
4715    }
4716
4717    #[doc = "Forcibly Start Terminating Resistance Adjustment"]
4718    #[inline(always)]
4719    pub fn repstart(
4720        self,
4721    ) -> crate::common::RegisterField<
4722        11,
4723        0x1,
4724        1,
4725        0,
4726        physet::Repstart,
4727        physet::Repstart,
4728        Physet_SPEC,
4729        crate::common::RW,
4730    > {
4731        crate::common::RegisterField::<
4732            11,
4733            0x1,
4734            1,
4735            0,
4736            physet::Repstart,
4737            physet::Repstart,
4738            Physet_SPEC,
4739            crate::common::RW,
4740        >::from_register(self, 0)
4741    }
4742
4743    #[doc = "Terminating Resistance Adjustment Cycle"]
4744    #[inline(always)]
4745    pub fn repsel(
4746        self,
4747    ) -> crate::common::RegisterField<
4748        8,
4749        0x3,
4750        1,
4751        0,
4752        physet::Repsel,
4753        physet::Repsel,
4754        Physet_SPEC,
4755        crate::common::RW,
4756    > {
4757        crate::common::RegisterField::<
4758            8,
4759            0x3,
4760            1,
4761            0,
4762            physet::Repsel,
4763            physet::Repsel,
4764            Physet_SPEC,
4765            crate::common::RW,
4766        >::from_register(self, 0)
4767    }
4768
4769    #[doc = "Input System Clock Frequency"]
4770    #[inline(always)]
4771    pub fn clksel(
4772        self,
4773    ) -> crate::common::RegisterField<
4774        4,
4775        0x3,
4776        1,
4777        0,
4778        physet::Clksel,
4779        physet::Clksel,
4780        Physet_SPEC,
4781        crate::common::RW,
4782    > {
4783        crate::common::RegisterField::<
4784            4,
4785            0x3,
4786            1,
4787            0,
4788            physet::Clksel,
4789            physet::Clksel,
4790            Physet_SPEC,
4791            crate::common::RW,
4792        >::from_register(self, 0)
4793    }
4794
4795    #[doc = "Charging Downstream Port Enable"]
4796    #[inline(always)]
4797    pub fn cdpen(
4798        self,
4799    ) -> crate::common::RegisterField<
4800        3,
4801        0x1,
4802        1,
4803        0,
4804        physet::Cdpen,
4805        physet::Cdpen,
4806        Physet_SPEC,
4807        crate::common::RW,
4808    > {
4809        crate::common::RegisterField::<
4810            3,
4811            0x1,
4812            1,
4813            0,
4814            physet::Cdpen,
4815            physet::Cdpen,
4816            Physet_SPEC,
4817            crate::common::RW,
4818        >::from_register(self, 0)
4819    }
4820
4821    #[doc = "PLL Reset Control"]
4822    #[inline(always)]
4823    pub fn pllreset(
4824        self,
4825    ) -> crate::common::RegisterField<
4826        1,
4827        0x1,
4828        1,
4829        0,
4830        physet::Pllreset,
4831        physet::Pllreset,
4832        Physet_SPEC,
4833        crate::common::RW,
4834    > {
4835        crate::common::RegisterField::<
4836            1,
4837            0x1,
4838            1,
4839            0,
4840            physet::Pllreset,
4841            physet::Pllreset,
4842            Physet_SPEC,
4843            crate::common::RW,
4844        >::from_register(self, 0)
4845    }
4846
4847    #[doc = "Power-Down Control"]
4848    #[inline(always)]
4849    pub fn dirpd(
4850        self,
4851    ) -> crate::common::RegisterField<
4852        0,
4853        0x1,
4854        1,
4855        0,
4856        physet::Dirpd,
4857        physet::Dirpd,
4858        Physet_SPEC,
4859        crate::common::RW,
4860    > {
4861        crate::common::RegisterField::<
4862            0,
4863            0x1,
4864            1,
4865            0,
4866            physet::Dirpd,
4867            physet::Dirpd,
4868            Physet_SPEC,
4869            crate::common::RW,
4870        >::from_register(self, 0)
4871    }
4872}
4873impl ::core::default::Default for Physet {
4874    #[inline(always)]
4875    fn default() -> Physet {
4876        <crate::RegValueT<Physet_SPEC> as RegisterValue<_>>::new(51)
4877    }
4878}
4879pub mod physet {
4880
4881    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4882    pub struct Hseb_SPEC;
4883    pub type Hseb = crate::EnumBitfieldStruct<u8, Hseb_SPEC>;
4884    impl Hseb {
4885        #[doc = "CL-only mode is not activated."]
4886        pub const _0: Self = Self::new(0);
4887
4888        #[doc = "CL-only mode is activated."]
4889        pub const _1: Self = Self::new(1);
4890    }
4891    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4892    pub struct Repstart_SPEC;
4893    pub type Repstart = crate::EnumBitfieldStruct<u8, Repstart_SPEC>;
4894    impl Repstart {
4895        #[doc = "Terminating resistance adjustment is forcibly started"]
4896        pub const _0: Self = Self::new(0);
4897
4898        #[doc = "Terminating resistance adjustment is not forcibly started"]
4899        pub const _1: Self = Self::new(1);
4900    }
4901    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4902    pub struct Repsel_SPEC;
4903    pub type Repsel = crate::EnumBitfieldStruct<u8, Repsel_SPEC>;
4904    impl Repsel {
4905        #[doc = "No cycle is set."]
4906        pub const _00: Self = Self::new(0);
4907
4908        #[doc = "Adjust terminating resistance at 16-second intervals."]
4909        pub const _01: Self = Self::new(1);
4910
4911        #[doc = "Adjust terminating resistance at 64-second intervals."]
4912        pub const _10: Self = Self::new(2);
4913
4914        #[doc = "Adjust terminating resistance at 128-second intervals."]
4915        pub const _11: Self = Self::new(3);
4916    }
4917    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4918    pub struct Clksel_SPEC;
4919    pub type Clksel = crate::EnumBitfieldStruct<u8, Clksel_SPEC>;
4920    impl Clksel {
4921        #[doc = "Setting Prohibited"]
4922        pub const _00: Self = Self::new(0);
4923
4924        #[doc = "12 MHz"]
4925        pub const _01: Self = Self::new(1);
4926
4927        #[doc = "20 MHz"]
4928        pub const _10: Self = Self::new(2);
4929
4930        #[doc = "24 MHz"]
4931        pub const _11: Self = Self::new(3);
4932    }
4933    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4934    pub struct Cdpen_SPEC;
4935    pub type Cdpen = crate::EnumBitfieldStruct<u8, Cdpen_SPEC>;
4936    impl Cdpen {
4937        #[doc = "Disable charging downstream port"]
4938        pub const _0: Self = Self::new(0);
4939
4940        #[doc = "Enable charging downstream port"]
4941        pub const _1: Self = Self::new(1);
4942    }
4943    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4944    pub struct Pllreset_SPEC;
4945    pub type Pllreset = crate::EnumBitfieldStruct<u8, Pllreset_SPEC>;
4946    impl Pllreset {
4947        #[doc = "Disable PLL reset control for UTMI_PHY"]
4948        pub const _0: Self = Self::new(0);
4949
4950        #[doc = "Enable PLL reset control for UTMI_PHY"]
4951        pub const _1: Self = Self::new(1);
4952    }
4953    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4954    pub struct Dirpd_SPEC;
4955    pub type Dirpd = crate::EnumBitfieldStruct<u8, Dirpd_SPEC>;
4956    impl Dirpd {
4957        #[doc = "Does not enter low-power consumption mode"]
4958        pub const _0: Self = Self::new(0);
4959
4960        #[doc = "Enter low-power consumption mode"]
4961        pub const _1: Self = Self::new(1);
4962    }
4963}
4964#[doc(hidden)]
4965#[derive(Copy, Clone, Eq, PartialEq)]
4966pub struct Intsts0_SPEC;
4967impl crate::sealed::RegSpec for Intsts0_SPEC {
4968    type DataType = u16;
4969}
4970
4971#[doc = "Interrupt Status Register 0"]
4972pub type Intsts0 = crate::RegValueT<Intsts0_SPEC>;
4973
4974impl Intsts0 {
4975    #[doc = "VBUS Interrupt Status"]
4976    #[inline(always)]
4977    pub fn vbint(
4978        self,
4979    ) -> crate::common::RegisterField<
4980        15,
4981        0x1,
4982        1,
4983        0,
4984        intsts0::Vbint,
4985        intsts0::Vbint,
4986        Intsts0_SPEC,
4987        crate::common::RW,
4988    > {
4989        crate::common::RegisterField::<
4990            15,
4991            0x1,
4992            1,
4993            0,
4994            intsts0::Vbint,
4995            intsts0::Vbint,
4996            Intsts0_SPEC,
4997            crate::common::RW,
4998        >::from_register(self, 0)
4999    }
5000
5001    #[doc = "Resume Interrupt Status"]
5002    #[inline(always)]
5003    pub fn resm(
5004        self,
5005    ) -> crate::common::RegisterField<
5006        14,
5007        0x1,
5008        1,
5009        0,
5010        intsts0::Resm,
5011        intsts0::Resm,
5012        Intsts0_SPEC,
5013        crate::common::RW,
5014    > {
5015        crate::common::RegisterField::<
5016            14,
5017            0x1,
5018            1,
5019            0,
5020            intsts0::Resm,
5021            intsts0::Resm,
5022            Intsts0_SPEC,
5023            crate::common::RW,
5024        >::from_register(self, 0)
5025    }
5026
5027    #[doc = "Frame Number Refresh Interrupt Status"]
5028    #[inline(always)]
5029    pub fn sofr(
5030        self,
5031    ) -> crate::common::RegisterField<
5032        13,
5033        0x1,
5034        1,
5035        0,
5036        intsts0::Sofr,
5037        intsts0::Sofr,
5038        Intsts0_SPEC,
5039        crate::common::RW,
5040    > {
5041        crate::common::RegisterField::<
5042            13,
5043            0x1,
5044            1,
5045            0,
5046            intsts0::Sofr,
5047            intsts0::Sofr,
5048            Intsts0_SPEC,
5049            crate::common::RW,
5050        >::from_register(self, 0)
5051    }
5052
5053    #[doc = "Device State Transition Interrupt Status"]
5054    #[inline(always)]
5055    pub fn dvst(
5056        self,
5057    ) -> crate::common::RegisterField<
5058        12,
5059        0x1,
5060        1,
5061        0,
5062        intsts0::Dvst,
5063        intsts0::Dvst,
5064        Intsts0_SPEC,
5065        crate::common::RW,
5066    > {
5067        crate::common::RegisterField::<
5068            12,
5069            0x1,
5070            1,
5071            0,
5072            intsts0::Dvst,
5073            intsts0::Dvst,
5074            Intsts0_SPEC,
5075            crate::common::RW,
5076        >::from_register(self, 0)
5077    }
5078
5079    #[doc = "Control Transfer Stage Transition Interrupt Status"]
5080    #[inline(always)]
5081    pub fn ctrt(
5082        self,
5083    ) -> crate::common::RegisterField<
5084        11,
5085        0x1,
5086        1,
5087        0,
5088        intsts0::Ctrt,
5089        intsts0::Ctrt,
5090        Intsts0_SPEC,
5091        crate::common::RW,
5092    > {
5093        crate::common::RegisterField::<
5094            11,
5095            0x1,
5096            1,
5097            0,
5098            intsts0::Ctrt,
5099            intsts0::Ctrt,
5100            Intsts0_SPEC,
5101            crate::common::RW,
5102        >::from_register(self, 0)
5103    }
5104
5105    #[doc = "Buffer Empty Interrupt Status"]
5106    #[inline(always)]
5107    pub fn bemp(
5108        self,
5109    ) -> crate::common::RegisterField<
5110        10,
5111        0x1,
5112        1,
5113        0,
5114        intsts0::Bemp,
5115        intsts0::Bemp,
5116        Intsts0_SPEC,
5117        crate::common::R,
5118    > {
5119        crate::common::RegisterField::<
5120            10,
5121            0x1,
5122            1,
5123            0,
5124            intsts0::Bemp,
5125            intsts0::Bemp,
5126            Intsts0_SPEC,
5127            crate::common::R,
5128        >::from_register(self, 0)
5129    }
5130
5131    #[doc = "Buffer Not Ready Interrupt Status"]
5132    #[inline(always)]
5133    pub fn nrdy(
5134        self,
5135    ) -> crate::common::RegisterField<
5136        9,
5137        0x1,
5138        1,
5139        0,
5140        intsts0::Nrdy,
5141        intsts0::Nrdy,
5142        Intsts0_SPEC,
5143        crate::common::R,
5144    > {
5145        crate::common::RegisterField::<
5146            9,
5147            0x1,
5148            1,
5149            0,
5150            intsts0::Nrdy,
5151            intsts0::Nrdy,
5152            Intsts0_SPEC,
5153            crate::common::R,
5154        >::from_register(self, 0)
5155    }
5156
5157    #[doc = "Buffer Ready Interrupt Status"]
5158    #[inline(always)]
5159    pub fn brdy(
5160        self,
5161    ) -> crate::common::RegisterField<
5162        8,
5163        0x1,
5164        1,
5165        0,
5166        intsts0::Brdy,
5167        intsts0::Brdy,
5168        Intsts0_SPEC,
5169        crate::common::R,
5170    > {
5171        crate::common::RegisterField::<
5172            8,
5173            0x1,
5174            1,
5175            0,
5176            intsts0::Brdy,
5177            intsts0::Brdy,
5178            Intsts0_SPEC,
5179            crate::common::R,
5180        >::from_register(self, 0)
5181    }
5182
5183    #[doc = "VBUS Input Status"]
5184    #[inline(always)]
5185    pub fn vbsts(
5186        self,
5187    ) -> crate::common::RegisterField<
5188        7,
5189        0x1,
5190        1,
5191        0,
5192        intsts0::Vbsts,
5193        intsts0::Vbsts,
5194        Intsts0_SPEC,
5195        crate::common::R,
5196    > {
5197        crate::common::RegisterField::<
5198            7,
5199            0x1,
5200            1,
5201            0,
5202            intsts0::Vbsts,
5203            intsts0::Vbsts,
5204            Intsts0_SPEC,
5205            crate::common::R,
5206        >::from_register(self, 0)
5207    }
5208
5209    #[doc = "Device State"]
5210    #[inline(always)]
5211    pub fn dvsq(
5212        self,
5213    ) -> crate::common::RegisterField<
5214        4,
5215        0x7,
5216        1,
5217        0,
5218        intsts0::Dvsq,
5219        intsts0::Dvsq,
5220        Intsts0_SPEC,
5221        crate::common::R,
5222    > {
5223        crate::common::RegisterField::<
5224            4,
5225            0x7,
5226            1,
5227            0,
5228            intsts0::Dvsq,
5229            intsts0::Dvsq,
5230            Intsts0_SPEC,
5231            crate::common::R,
5232        >::from_register(self, 0)
5233    }
5234
5235    #[doc = "USB Request Reception"]
5236    #[inline(always)]
5237    pub fn valid(
5238        self,
5239    ) -> crate::common::RegisterField<
5240        3,
5241        0x1,
5242        1,
5243        0,
5244        intsts0::Valid,
5245        intsts0::Valid,
5246        Intsts0_SPEC,
5247        crate::common::RW,
5248    > {
5249        crate::common::RegisterField::<
5250            3,
5251            0x1,
5252            1,
5253            0,
5254            intsts0::Valid,
5255            intsts0::Valid,
5256            Intsts0_SPEC,
5257            crate::common::RW,
5258        >::from_register(self, 0)
5259    }
5260
5261    #[doc = "Control Transfer Stage"]
5262    #[inline(always)]
5263    pub fn ctsq(
5264        self,
5265    ) -> crate::common::RegisterField<
5266        0,
5267        0x7,
5268        1,
5269        0,
5270        intsts0::Ctsq,
5271        intsts0::Ctsq,
5272        Intsts0_SPEC,
5273        crate::common::R,
5274    > {
5275        crate::common::RegisterField::<
5276            0,
5277            0x7,
5278            1,
5279            0,
5280            intsts0::Ctsq,
5281            intsts0::Ctsq,
5282            Intsts0_SPEC,
5283            crate::common::R,
5284        >::from_register(self, 0)
5285    }
5286}
5287impl ::core::default::Default for Intsts0 {
5288    #[inline(always)]
5289    fn default() -> Intsts0 {
5290        <crate::RegValueT<Intsts0_SPEC> as RegisterValue<_>>::new(0)
5291    }
5292}
5293pub mod intsts0 {
5294
5295    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5296    pub struct Vbint_SPEC;
5297    pub type Vbint = crate::EnumBitfieldStruct<u8, Vbint_SPEC>;
5298    impl Vbint {
5299        #[doc = "VBUS interrupt is not generated on detecting a change in the USBHS_VBUS pin."]
5300        pub const _0: Self = Self::new(0);
5301
5302        #[doc = "VBUS interrupt is generated on detecting a change in the USBHS_VBUS pin."]
5303        pub const _1: Self = Self::new(1);
5304    }
5305    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5306    pub struct Resm_SPEC;
5307    pub type Resm = crate::EnumBitfieldStruct<u8, Resm_SPEC>;
5308    impl Resm {
5309        #[doc = "Resume interrupts are not generated"]
5310        pub const _0: Self = Self::new(0);
5311
5312        #[doc = "Resume interrupts are generated"]
5313        pub const _1: Self = Self::new(1);
5314    }
5315    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5316    pub struct Sofr_SPEC;
5317    pub type Sofr = crate::EnumBitfieldStruct<u8, Sofr_SPEC>;
5318    impl Sofr {
5319        #[doc = "SOF interrupts are not generated"]
5320        pub const _0: Self = Self::new(0);
5321
5322        #[doc = "SOF interrupts are generated"]
5323        pub const _1: Self = Self::new(1);
5324    }
5325    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5326    pub struct Dvst_SPEC;
5327    pub type Dvst = crate::EnumBitfieldStruct<u8, Dvst_SPEC>;
5328    impl Dvst {
5329        #[doc = "Device state transition interrupts are not generated"]
5330        pub const _0: Self = Self::new(0);
5331
5332        #[doc = "Device state transition interrupts are generated"]
5333        pub const _1: Self = Self::new(1);
5334    }
5335    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5336    pub struct Ctrt_SPEC;
5337    pub type Ctrt = crate::EnumBitfieldStruct<u8, Ctrt_SPEC>;
5338    impl Ctrt {
5339        #[doc = "Control transfer stage transition interrupts are not generated"]
5340        pub const _0: Self = Self::new(0);
5341
5342        #[doc = "Control transfer stage transition interrupts are generated"]
5343        pub const _1: Self = Self::new(1);
5344    }
5345    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5346    pub struct Bemp_SPEC;
5347    pub type Bemp = crate::EnumBitfieldStruct<u8, Bemp_SPEC>;
5348    impl Bemp {
5349        #[doc = "BEMP interrupts are not generated"]
5350        pub const _0: Self = Self::new(0);
5351
5352        #[doc = "BEMP interrupts are not generated"]
5353        pub const _1: Self = Self::new(1);
5354    }
5355    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5356    pub struct Nrdy_SPEC;
5357    pub type Nrdy = crate::EnumBitfieldStruct<u8, Nrdy_SPEC>;
5358    impl Nrdy {
5359        #[doc = "NRDY interrupts are not generated"]
5360        pub const _0: Self = Self::new(0);
5361
5362        #[doc = "NRDY interrupts are generated"]
5363        pub const _1: Self = Self::new(1);
5364    }
5365    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5366    pub struct Brdy_SPEC;
5367    pub type Brdy = crate::EnumBitfieldStruct<u8, Brdy_SPEC>;
5368    impl Brdy {
5369        #[doc = "BRDY interrupts are not generated"]
5370        pub const _0: Self = Self::new(0);
5371
5372        #[doc = "BRDY interrupts are generated"]
5373        pub const _1: Self = Self::new(1);
5374    }
5375    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5376    pub struct Vbsts_SPEC;
5377    pub type Vbsts = crate::EnumBitfieldStruct<u8, Vbsts_SPEC>;
5378    impl Vbsts {
5379        #[doc = "The USBHS_VBUS pin is low"]
5380        pub const _0: Self = Self::new(0);
5381
5382        #[doc = "The USBHS_VBUS pin is high"]
5383        pub const _1: Self = Self::new(1);
5384    }
5385    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5386    pub struct Dvsq_SPEC;
5387    pub type Dvsq = crate::EnumBitfieldStruct<u8, Dvsq_SPEC>;
5388    impl Dvsq {
5389        #[doc = "Powered state"]
5390        pub const _000: Self = Self::new(0);
5391
5392        #[doc = "Default state"]
5393        pub const _001: Self = Self::new(1);
5394
5395        #[doc = "Address state"]
5396        pub const _010: Self = Self::new(2);
5397
5398        #[doc = "Configured state"]
5399        pub const _011: Self = Self::new(3);
5400    }
5401    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5402    pub struct Valid_SPEC;
5403    pub type Valid = crate::EnumBitfieldStruct<u8, Valid_SPEC>;
5404    impl Valid {
5405        #[doc = "Not detected"]
5406        pub const _0: Self = Self::new(0);
5407
5408        #[doc = "Setup packet reception"]
5409        pub const _1: Self = Self::new(1);
5410    }
5411    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5412    pub struct Ctsq_SPEC;
5413    pub type Ctsq = crate::EnumBitfieldStruct<u8, Ctsq_SPEC>;
5414    impl Ctsq {
5415        #[doc = "Idle or setup stage"]
5416        pub const _000: Self = Self::new(0);
5417
5418        #[doc = "Control read data stage"]
5419        pub const _001: Self = Self::new(1);
5420
5421        #[doc = "Control read status stage"]
5422        pub const _010: Self = Self::new(2);
5423
5424        #[doc = "Control write data stage"]
5425        pub const _011: Self = Self::new(3);
5426
5427        #[doc = "Control write status stage"]
5428        pub const _100: Self = Self::new(4);
5429
5430        #[doc = "Control write (no data) status stage"]
5431        pub const _101: Self = Self::new(5);
5432
5433        #[doc = "Control transfer sequence error"]
5434        pub const _110: Self = Self::new(6);
5435
5436        #[doc = "Setting prohibited"]
5437        pub const _111: Self = Self::new(7);
5438    }
5439}
5440#[doc(hidden)]
5441#[derive(Copy, Clone, Eq, PartialEq)]
5442pub struct Intsts1_SPEC;
5443impl crate::sealed::RegSpec for Intsts1_SPEC {
5444    type DataType = u16;
5445}
5446
5447#[doc = "Interrupt Status Register 1"]
5448pub type Intsts1 = crate::RegValueT<Intsts1_SPEC>;
5449
5450impl Intsts1 {
5451    #[doc = "Overcurrent Interrupt Status"]
5452    #[inline(always)]
5453    pub fn ovrcr(
5454        self,
5455    ) -> crate::common::RegisterField<
5456        15,
5457        0x1,
5458        1,
5459        0,
5460        intsts1::Ovrcr,
5461        intsts1::Ovrcr,
5462        Intsts1_SPEC,
5463        crate::common::RW,
5464    > {
5465        crate::common::RegisterField::<
5466            15,
5467            0x1,
5468            1,
5469            0,
5470            intsts1::Ovrcr,
5471            intsts1::Ovrcr,
5472            Intsts1_SPEC,
5473            crate::common::RW,
5474        >::from_register(self, 0)
5475    }
5476
5477    #[doc = "USB Bus Change Interrupt Status"]
5478    #[inline(always)]
5479    pub fn bchg(
5480        self,
5481    ) -> crate::common::RegisterField<
5482        14,
5483        0x1,
5484        1,
5485        0,
5486        intsts1::Bchg,
5487        intsts1::Bchg,
5488        Intsts1_SPEC,
5489        crate::common::RW,
5490    > {
5491        crate::common::RegisterField::<
5492            14,
5493            0x1,
5494            1,
5495            0,
5496            intsts1::Bchg,
5497            intsts1::Bchg,
5498            Intsts1_SPEC,
5499            crate::common::RW,
5500        >::from_register(self, 0)
5501    }
5502
5503    #[doc = "USB Disconnection Detection Interrupt Status"]
5504    #[inline(always)]
5505    pub fn dtch(
5506        self,
5507    ) -> crate::common::RegisterField<
5508        12,
5509        0x1,
5510        1,
5511        0,
5512        intsts1::Dtch,
5513        intsts1::Dtch,
5514        Intsts1_SPEC,
5515        crate::common::RW,
5516    > {
5517        crate::common::RegisterField::<
5518            12,
5519            0x1,
5520            1,
5521            0,
5522            intsts1::Dtch,
5523            intsts1::Dtch,
5524            Intsts1_SPEC,
5525            crate::common::RW,
5526        >::from_register(self, 0)
5527    }
5528
5529    #[doc = "USB Connection Detection Interrupt Status"]
5530    #[inline(always)]
5531    pub fn attch(
5532        self,
5533    ) -> crate::common::RegisterField<
5534        11,
5535        0x1,
5536        1,
5537        0,
5538        intsts1::Attch,
5539        intsts1::Attch,
5540        Intsts1_SPEC,
5541        crate::common::RW,
5542    > {
5543        crate::common::RegisterField::<
5544            11,
5545            0x1,
5546            1,
5547            0,
5548            intsts1::Attch,
5549            intsts1::Attch,
5550            Intsts1_SPEC,
5551            crate::common::RW,
5552        >::from_register(self, 0)
5553    }
5554
5555    #[doc = "L1 Resume End Interrupt Status"]
5556    #[inline(always)]
5557    pub fn l1rsmend(
5558        self,
5559    ) -> crate::common::RegisterField<
5560        9,
5561        0x1,
5562        1,
5563        0,
5564        intsts1::L1Rsmend,
5565        intsts1::L1Rsmend,
5566        Intsts1_SPEC,
5567        crate::common::RW,
5568    > {
5569        crate::common::RegisterField::<
5570            9,
5571            0x1,
5572            1,
5573            0,
5574            intsts1::L1Rsmend,
5575            intsts1::L1Rsmend,
5576            Intsts1_SPEC,
5577            crate::common::RW,
5578        >::from_register(self, 0)
5579    }
5580
5581    #[doc = "LPM Transaction End Interrupt Status"]
5582    #[inline(always)]
5583    pub fn lpmend(
5584        self,
5585    ) -> crate::common::RegisterField<
5586        8,
5587        0x1,
5588        1,
5589        0,
5590        intsts1::Lpmend,
5591        intsts1::Lpmend,
5592        Intsts1_SPEC,
5593        crate::common::RW,
5594    > {
5595        crate::common::RegisterField::<
5596            8,
5597            0x1,
5598            1,
5599            0,
5600            intsts1::Lpmend,
5601            intsts1::Lpmend,
5602            Intsts1_SPEC,
5603            crate::common::RW,
5604        >::from_register(self, 0)
5605    }
5606
5607    #[doc = "EOF Error Detection Interrupt Status"]
5608    #[inline(always)]
5609    pub fn eoferr(
5610        self,
5611    ) -> crate::common::RegisterField<
5612        6,
5613        0x1,
5614        1,
5615        0,
5616        intsts1::Eoferr,
5617        intsts1::Eoferr,
5618        Intsts1_SPEC,
5619        crate::common::RW,
5620    > {
5621        crate::common::RegisterField::<
5622            6,
5623            0x1,
5624            1,
5625            0,
5626            intsts1::Eoferr,
5627            intsts1::Eoferr,
5628            Intsts1_SPEC,
5629            crate::common::RW,
5630        >::from_register(self, 0)
5631    }
5632
5633    #[doc = "Setup Transaction Error Interrupt Status"]
5634    #[inline(always)]
5635    pub fn sign(
5636        self,
5637    ) -> crate::common::RegisterField<
5638        5,
5639        0x1,
5640        1,
5641        0,
5642        intsts1::Sign,
5643        intsts1::Sign,
5644        Intsts1_SPEC,
5645        crate::common::RW,
5646    > {
5647        crate::common::RegisterField::<
5648            5,
5649            0x1,
5650            1,
5651            0,
5652            intsts1::Sign,
5653            intsts1::Sign,
5654            Intsts1_SPEC,
5655            crate::common::RW,
5656        >::from_register(self, 0)
5657    }
5658
5659    #[doc = "Setup Transaction Normal Response Interrupt Status"]
5660    #[inline(always)]
5661    pub fn sack(
5662        self,
5663    ) -> crate::common::RegisterField<
5664        4,
5665        0x1,
5666        1,
5667        0,
5668        intsts1::Sack,
5669        intsts1::Sack,
5670        Intsts1_SPEC,
5671        crate::common::RW,
5672    > {
5673        crate::common::RegisterField::<
5674            4,
5675            0x1,
5676            1,
5677            0,
5678            intsts1::Sack,
5679            intsts1::Sack,
5680            Intsts1_SPEC,
5681            crate::common::RW,
5682        >::from_register(self, 0)
5683    }
5684
5685    #[doc = "PDDET Detection Interrupt Status"]
5686    #[inline(always)]
5687    pub fn pddetint(
5688        self,
5689    ) -> crate::common::RegisterField<
5690        0,
5691        0x1,
5692        1,
5693        0,
5694        intsts1::Pddetint,
5695        intsts1::Pddetint,
5696        Intsts1_SPEC,
5697        crate::common::RW,
5698    > {
5699        crate::common::RegisterField::<
5700            0,
5701            0x1,
5702            1,
5703            0,
5704            intsts1::Pddetint,
5705            intsts1::Pddetint,
5706            Intsts1_SPEC,
5707            crate::common::RW,
5708        >::from_register(self, 0)
5709    }
5710}
5711impl ::core::default::Default for Intsts1 {
5712    #[inline(always)]
5713    fn default() -> Intsts1 {
5714        <crate::RegValueT<Intsts1_SPEC> as RegisterValue<_>>::new(0)
5715    }
5716}
5717pub mod intsts1 {
5718
5719    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5720    pub struct Ovrcr_SPEC;
5721    pub type Ovrcr = crate::EnumBitfieldStruct<u8, Ovrcr_SPEC>;
5722    impl Ovrcr {
5723        #[doc = "OVRCR interrupts are not generated"]
5724        pub const _0: Self = Self::new(0);
5725
5726        #[doc = "OVRCR interrupts are generated"]
5727        pub const _1: Self = Self::new(1);
5728    }
5729    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5730    pub struct Bchg_SPEC;
5731    pub type Bchg = crate::EnumBitfieldStruct<u8, Bchg_SPEC>;
5732    impl Bchg {
5733        #[doc = "BCHG interrupts are not generated"]
5734        pub const _0: Self = Self::new(0);
5735
5736        #[doc = "BCHG interrupts are generated"]
5737        pub const _1: Self = Self::new(1);
5738    }
5739    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5740    pub struct Dtch_SPEC;
5741    pub type Dtch = crate::EnumBitfieldStruct<u8, Dtch_SPEC>;
5742    impl Dtch {
5743        #[doc = "DTCH interrupts are not generated"]
5744        pub const _0: Self = Self::new(0);
5745
5746        #[doc = "DTCH interrupts are generated"]
5747        pub const _1: Self = Self::new(1);
5748    }
5749    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5750    pub struct Attch_SPEC;
5751    pub type Attch = crate::EnumBitfieldStruct<u8, Attch_SPEC>;
5752    impl Attch {
5753        #[doc = "ATTCH interrupts are not generated"]
5754        pub const _0: Self = Self::new(0);
5755
5756        #[doc = "ATTCH interrupts are generated"]
5757        pub const _1: Self = Self::new(1);
5758    }
5759    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5760    pub struct L1Rsmend_SPEC;
5761    pub type L1Rsmend = crate::EnumBitfieldStruct<u8, L1Rsmend_SPEC>;
5762    impl L1Rsmend {
5763        #[doc = "L1RSMEND interrupts are not generated"]
5764        pub const _0: Self = Self::new(0);
5765
5766        #[doc = "L1RSMEND interrupts are generated"]
5767        pub const _1: Self = Self::new(1);
5768    }
5769    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5770    pub struct Lpmend_SPEC;
5771    pub type Lpmend = crate::EnumBitfieldStruct<u8, Lpmend_SPEC>;
5772    impl Lpmend {
5773        #[doc = "LPMEND interrupts are not generated"]
5774        pub const _0: Self = Self::new(0);
5775
5776        #[doc = "LPMEND interrupts are generated"]
5777        pub const _1: Self = Self::new(1);
5778    }
5779    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5780    pub struct Eoferr_SPEC;
5781    pub type Eoferr = crate::EnumBitfieldStruct<u8, Eoferr_SPEC>;
5782    impl Eoferr {
5783        #[doc = "EOFERR interrupts are not generated"]
5784        pub const _0: Self = Self::new(0);
5785
5786        #[doc = "EOFERR interrupts are generated"]
5787        pub const _1: Self = Self::new(1);
5788    }
5789    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5790    pub struct Sign_SPEC;
5791    pub type Sign = crate::EnumBitfieldStruct<u8, Sign_SPEC>;
5792    impl Sign {
5793        #[doc = "SIGN interrupts are not generated"]
5794        pub const _0: Self = Self::new(0);
5795
5796        #[doc = "SIGN interrupts are generated"]
5797        pub const _1: Self = Self::new(1);
5798    }
5799    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5800    pub struct Sack_SPEC;
5801    pub type Sack = crate::EnumBitfieldStruct<u8, Sack_SPEC>;
5802    impl Sack {
5803        #[doc = "SACK interrupts are not generated"]
5804        pub const _0: Self = Self::new(0);
5805
5806        #[doc = "SACK interrupts are generated"]
5807        pub const _1: Self = Self::new(1);
5808    }
5809    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5810    pub struct Pddetint_SPEC;
5811    pub type Pddetint = crate::EnumBitfieldStruct<u8, Pddetint_SPEC>;
5812    impl Pddetint {
5813        #[doc = "PDDET interrupts are not generated"]
5814        pub const _0: Self = Self::new(0);
5815
5816        #[doc = "PDDET interrupts are generated"]
5817        pub const _1: Self = Self::new(1);
5818    }
5819}
5820#[doc(hidden)]
5821#[derive(Copy, Clone, Eq, PartialEq)]
5822pub struct Brdysts_SPEC;
5823impl crate::sealed::RegSpec for Brdysts_SPEC {
5824    type DataType = u16;
5825}
5826
5827#[doc = "BRDY Interrupt Status Register"]
5828pub type Brdysts = crate::RegValueT<Brdysts_SPEC>;
5829
5830impl Brdysts {
5831    #[doc = "BRDY Interrupt Status for Each Pipe"]
5832    #[inline(always)]
5833    pub fn pipebrdy(
5834        self,
5835    ) -> crate::common::RegisterField<
5836        0,
5837        0x3ff,
5838        1,
5839        0,
5840        brdysts::Pipebrdy,
5841        brdysts::Pipebrdy,
5842        Brdysts_SPEC,
5843        crate::common::RW,
5844    > {
5845        crate::common::RegisterField::<
5846            0,
5847            0x3ff,
5848            1,
5849            0,
5850            brdysts::Pipebrdy,
5851            brdysts::Pipebrdy,
5852            Brdysts_SPEC,
5853            crate::common::RW,
5854        >::from_register(self, 0)
5855    }
5856}
5857impl ::core::default::Default for Brdysts {
5858    #[inline(always)]
5859    fn default() -> Brdysts {
5860        <crate::RegValueT<Brdysts_SPEC> as RegisterValue<_>>::new(0)
5861    }
5862}
5863pub mod brdysts {
5864
5865    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5866    pub struct Pipebrdy_SPEC;
5867    pub type Pipebrdy = crate::EnumBitfieldStruct<u8, Pipebrdy_SPEC>;
5868    impl Pipebrdy {
5869        #[doc = "Interrupts are not generated"]
5870        pub const _0: Self = Self::new(0);
5871
5872        #[doc = "Interrupts are generated"]
5873        pub const _1: Self = Self::new(1);
5874    }
5875}
5876#[doc(hidden)]
5877#[derive(Copy, Clone, Eq, PartialEq)]
5878pub struct Nrdysts_SPEC;
5879impl crate::sealed::RegSpec for Nrdysts_SPEC {
5880    type DataType = u16;
5881}
5882
5883#[doc = "NRDY Interrupt Status Register"]
5884pub type Nrdysts = crate::RegValueT<Nrdysts_SPEC>;
5885
5886impl Nrdysts {
5887    #[doc = "NRDY Interrupt Status for Each Pipe"]
5888    #[inline(always)]
5889    pub fn pipenrdy(
5890        self,
5891    ) -> crate::common::RegisterField<
5892        0,
5893        0x3ff,
5894        1,
5895        0,
5896        nrdysts::Pipenrdy,
5897        nrdysts::Pipenrdy,
5898        Nrdysts_SPEC,
5899        crate::common::RW,
5900    > {
5901        crate::common::RegisterField::<
5902            0,
5903            0x3ff,
5904            1,
5905            0,
5906            nrdysts::Pipenrdy,
5907            nrdysts::Pipenrdy,
5908            Nrdysts_SPEC,
5909            crate::common::RW,
5910        >::from_register(self, 0)
5911    }
5912}
5913impl ::core::default::Default for Nrdysts {
5914    #[inline(always)]
5915    fn default() -> Nrdysts {
5916        <crate::RegValueT<Nrdysts_SPEC> as RegisterValue<_>>::new(0)
5917    }
5918}
5919pub mod nrdysts {
5920
5921    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5922    pub struct Pipenrdy_SPEC;
5923    pub type Pipenrdy = crate::EnumBitfieldStruct<u8, Pipenrdy_SPEC>;
5924    impl Pipenrdy {
5925        #[doc = "Interrupts are not generated"]
5926        pub const _0: Self = Self::new(0);
5927
5928        #[doc = "Interrupts are generated"]
5929        pub const _1: Self = Self::new(1);
5930    }
5931}
5932#[doc(hidden)]
5933#[derive(Copy, Clone, Eq, PartialEq)]
5934pub struct Bempsts_SPEC;
5935impl crate::sealed::RegSpec for Bempsts_SPEC {
5936    type DataType = u16;
5937}
5938
5939#[doc = "BEMP Interrupt Status Register"]
5940pub type Bempsts = crate::RegValueT<Bempsts_SPEC>;
5941
5942impl Bempsts {
5943    #[doc = "BEMP Interrupt Status for Each Pipe"]
5944    #[inline(always)]
5945    pub fn pipebemp(
5946        self,
5947    ) -> crate::common::RegisterField<
5948        0,
5949        0x3ff,
5950        1,
5951        0,
5952        bempsts::Pipebemp,
5953        bempsts::Pipebemp,
5954        Bempsts_SPEC,
5955        crate::common::RW,
5956    > {
5957        crate::common::RegisterField::<
5958            0,
5959            0x3ff,
5960            1,
5961            0,
5962            bempsts::Pipebemp,
5963            bempsts::Pipebemp,
5964            Bempsts_SPEC,
5965            crate::common::RW,
5966        >::from_register(self, 0)
5967    }
5968}
5969impl ::core::default::Default for Bempsts {
5970    #[inline(always)]
5971    fn default() -> Bempsts {
5972        <crate::RegValueT<Bempsts_SPEC> as RegisterValue<_>>::new(0)
5973    }
5974}
5975pub mod bempsts {
5976
5977    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5978    pub struct Pipebemp_SPEC;
5979    pub type Pipebemp = crate::EnumBitfieldStruct<u8, Pipebemp_SPEC>;
5980    impl Pipebemp {
5981        #[doc = "Interrupts are not generated"]
5982        pub const _0: Self = Self::new(0);
5983
5984        #[doc = "Interrupts are generated"]
5985        pub const _1: Self = Self::new(1);
5986    }
5987}
5988#[doc(hidden)]
5989#[derive(Copy, Clone, Eq, PartialEq)]
5990pub struct Frmnum_SPEC;
5991impl crate::sealed::RegSpec for Frmnum_SPEC {
5992    type DataType = u16;
5993}
5994
5995#[doc = "Frame Number Register"]
5996pub type Frmnum = crate::RegValueT<Frmnum_SPEC>;
5997
5998impl Frmnum {
5999    #[doc = "Overrun/Underrun Detection Status"]
6000    #[inline(always)]
6001    pub fn ovrn(
6002        self,
6003    ) -> crate::common::RegisterField<
6004        15,
6005        0x1,
6006        1,
6007        0,
6008        frmnum::Ovrn,
6009        frmnum::Ovrn,
6010        Frmnum_SPEC,
6011        crate::common::RW,
6012    > {
6013        crate::common::RegisterField::<
6014            15,
6015            0x1,
6016            1,
6017            0,
6018            frmnum::Ovrn,
6019            frmnum::Ovrn,
6020            Frmnum_SPEC,
6021            crate::common::RW,
6022        >::from_register(self, 0)
6023    }
6024
6025    #[doc = "CRC Error Detection Status"]
6026    #[inline(always)]
6027    pub fn crce(
6028        self,
6029    ) -> crate::common::RegisterField<
6030        14,
6031        0x1,
6032        1,
6033        0,
6034        frmnum::Crce,
6035        frmnum::Crce,
6036        Frmnum_SPEC,
6037        crate::common::RW,
6038    > {
6039        crate::common::RegisterField::<
6040            14,
6041            0x1,
6042            1,
6043            0,
6044            frmnum::Crce,
6045            frmnum::Crce,
6046            Frmnum_SPEC,
6047            crate::common::RW,
6048        >::from_register(self, 0)
6049    }
6050
6051    #[doc = "Frame Number.Indicate the latest frame number."]
6052    #[inline(always)]
6053    pub fn frnm(
6054        self,
6055    ) -> crate::common::RegisterField<0, 0x7ff, 1, 0, u16, u16, Frmnum_SPEC, crate::common::R> {
6056        crate::common::RegisterField::<0,0x7ff,1,0,u16,u16,Frmnum_SPEC,crate::common::R>::from_register(self,0)
6057    }
6058}
6059impl ::core::default::Default for Frmnum {
6060    #[inline(always)]
6061    fn default() -> Frmnum {
6062        <crate::RegValueT<Frmnum_SPEC> as RegisterValue<_>>::new(0)
6063    }
6064}
6065pub mod frmnum {
6066
6067    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6068    pub struct Ovrn_SPEC;
6069    pub type Ovrn = crate::EnumBitfieldStruct<u8, Ovrn_SPEC>;
6070    impl Ovrn {
6071        #[doc = "No error"]
6072        pub const _0: Self = Self::new(0);
6073
6074        #[doc = "An error occurred"]
6075        pub const _1: Self = Self::new(1);
6076    }
6077    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6078    pub struct Crce_SPEC;
6079    pub type Crce = crate::EnumBitfieldStruct<u8, Crce_SPEC>;
6080    impl Crce {
6081        #[doc = "No error"]
6082        pub const _0: Self = Self::new(0);
6083
6084        #[doc = "An error occurred"]
6085        pub const _1: Self = Self::new(1);
6086    }
6087}
6088#[doc(hidden)]
6089#[derive(Copy, Clone, Eq, PartialEq)]
6090pub struct Ufrmnum_SPEC;
6091impl crate::sealed::RegSpec for Ufrmnum_SPEC {
6092    type DataType = u16;
6093}
6094
6095#[doc = "uFrame Number Register"]
6096pub type Ufrmnum = crate::RegValueT<Ufrmnum_SPEC>;
6097
6098impl Ufrmnum {
6099    #[doc = "Device State Change"]
6100    #[inline(always)]
6101    pub fn dvchg(
6102        self,
6103    ) -> crate::common::RegisterField<
6104        15,
6105        0x1,
6106        1,
6107        0,
6108        ufrmnum::Dvchg,
6109        ufrmnum::Dvchg,
6110        Ufrmnum_SPEC,
6111        crate::common::RW,
6112    > {
6113        crate::common::RegisterField::<
6114            15,
6115            0x1,
6116            1,
6117            0,
6118            ufrmnum::Dvchg,
6119            ufrmnum::Dvchg,
6120            Ufrmnum_SPEC,
6121            crate::common::RW,
6122        >::from_register(self, 0)
6123    }
6124
6125    #[doc = "MicroframeIndicate the microframe number."]
6126    #[inline(always)]
6127    pub fn ufrnm(
6128        self,
6129    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, Ufrmnum_SPEC, crate::common::R> {
6130        crate::common::RegisterField::<0,0x7,1,0,u8,u8,Ufrmnum_SPEC,crate::common::R>::from_register(self,0)
6131    }
6132}
6133impl ::core::default::Default for Ufrmnum {
6134    #[inline(always)]
6135    fn default() -> Ufrmnum {
6136        <crate::RegValueT<Ufrmnum_SPEC> as RegisterValue<_>>::new(0)
6137    }
6138}
6139pub mod ufrmnum {
6140
6141    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6142    pub struct Dvchg_SPEC;
6143    pub type Dvchg = crate::EnumBitfieldStruct<u8, Dvchg_SPEC>;
6144    impl Dvchg {
6145        #[doc = "Disables the writing to the USBADDR.STSRECOV0\\[2:0\\] bits and USBADDR.USBADDR\\[6:0\\]."]
6146        pub const _0: Self = Self::new(0);
6147
6148        #[doc = "Enables the writing to the USBADDR.STSRECOV0\\[2:0\\] bits and USBADDR.USBADDR\\[6:0\\]."]
6149        pub const _1: Self = Self::new(1);
6150    }
6151}
6152#[doc(hidden)]
6153#[derive(Copy, Clone, Eq, PartialEq)]
6154pub struct Usbaddr_SPEC;
6155impl crate::sealed::RegSpec for Usbaddr_SPEC {
6156    type DataType = u16;
6157}
6158
6159#[doc = "USB Address Register"]
6160pub type Usbaddr = crate::RegValueT<Usbaddr_SPEC>;
6161
6162impl Usbaddr {
6163    #[doc = "Status Recovery"]
6164    #[inline(always)]
6165    pub fn stsrecov0(
6166        self,
6167    ) -> crate::common::RegisterField<
6168        8,
6169        0x7,
6170        1,
6171        0,
6172        usbaddr::Stsrecov0,
6173        usbaddr::Stsrecov0,
6174        Usbaddr_SPEC,
6175        crate::common::RW,
6176    > {
6177        crate::common::RegisterField::<
6178            8,
6179            0x7,
6180            1,
6181            0,
6182            usbaddr::Stsrecov0,
6183            usbaddr::Stsrecov0,
6184            Usbaddr_SPEC,
6185            crate::common::RW,
6186        >::from_register(self, 0)
6187    }
6188
6189    #[doc = "USB Address In device controller mode, these flags indicate the USB address assigned by the host when the USBHS processed the SET_ADDRESS request successfully."]
6190    #[inline(always)]
6191    pub fn usbaddr(
6192        self,
6193    ) -> crate::common::RegisterField<0, 0x7f, 1, 0, u8, u8, Usbaddr_SPEC, crate::common::R> {
6194        crate::common::RegisterField::<0,0x7f,1,0,u8,u8,Usbaddr_SPEC,crate::common::R>::from_register(self,0)
6195    }
6196}
6197impl ::core::default::Default for Usbaddr {
6198    #[inline(always)]
6199    fn default() -> Usbaddr {
6200        <crate::RegValueT<Usbaddr_SPEC> as RegisterValue<_>>::new(0)
6201    }
6202}
6203pub mod usbaddr {
6204
6205    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6206    pub struct Stsrecov0_SPEC;
6207    pub type Stsrecov0 = crate::EnumBitfieldStruct<u8, Stsrecov0_SPEC>;
6208    impl Stsrecov0 {
6209        #[doc = "Return to the full-speed state(bits DVSTCTR0.RHST\\[2:0\\] = 010b), bits INTSTS0.DVSQ\\[2:0\\] = 001b (Default state)(function controller selected)"]
6210        pub const _001: Self = Self::new(1);
6211
6212        #[doc = "Return to the full-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 010b), bits INTSTS0.DVSQ\\[2:0\\] = 010b (Address state)(function controller selected)/ Return to the low-speed state (bitsDVSTCTR0.RHST\\[2:0\\] = 001b)(host controller is selected)"]
6213        pub const _010: Self = Self::new(2);
6214
6215        #[doc = "Return to the full-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 010b), bits INTSTS0.DVSQ\\[2:0\\] = 011b (Configured state)(function controller selected)"]
6216        pub const _011: Self = Self::new(3);
6217
6218        #[doc = "Return to the full-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 010b)(host controller selected)"]
6219        pub const _100: Self = Self::new(4);
6220
6221        #[doc = "Return to the high-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 011b), bits INTSTS0.DVSQ\\[2:0\\] = 001b (Default state)(function controller selected)"]
6222        pub const _101: Self = Self::new(5);
6223
6224        #[doc = "Return to the high-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 011b), bits INTSTS0.DVSQ\\[2:0\\] = 010b (Address state)(function controller selected)/ Return to the high-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 011b)(host controller selected)"]
6225        pub const _110: Self = Self::new(6);
6226
6227        #[doc = "Return to the high-speed state (bits DVSTCTR0.RHST\\[2:0\\] = 011b), bits INTSTS0.DVSQ\\[2:0\\] = 011b (Configured state)(function controller selected)"]
6228        pub const _111: Self = Self::new(7);
6229    }
6230}
6231#[doc(hidden)]
6232#[derive(Copy, Clone, Eq, PartialEq)]
6233pub struct Usbreq_SPEC;
6234impl crate::sealed::RegSpec for Usbreq_SPEC {
6235    type DataType = u16;
6236}
6237
6238#[doc = "USB Request Type Register"]
6239pub type Usbreq = crate::RegValueT<Usbreq_SPEC>;
6240
6241impl Usbreq {
6242    #[doc = "USB request bRequest value     Finction controller selected : read-only     Host controller selected : read-write"]
6243    #[inline(always)]
6244    pub fn brequest(
6245        self,
6246    ) -> crate::common::RegisterField<8, 0xff, 1, 0, u8, u8, Usbreq_SPEC, crate::common::RW> {
6247        crate::common::RegisterField::<8,0xff,1,0,u8,u8,Usbreq_SPEC,crate::common::RW>::from_register(self,0)
6248    }
6249
6250    #[doc = "USB request bmRequestType value     Finction controller selected : read-only     Host controller selected : read-write"]
6251    #[inline(always)]
6252    pub fn bmrequesttype(
6253        self,
6254    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Usbreq_SPEC, crate::common::RW> {
6255        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Usbreq_SPEC,crate::common::RW>::from_register(self,0)
6256    }
6257}
6258impl ::core::default::Default for Usbreq {
6259    #[inline(always)]
6260    fn default() -> Usbreq {
6261        <crate::RegValueT<Usbreq_SPEC> as RegisterValue<_>>::new(0)
6262    }
6263}
6264
6265#[doc(hidden)]
6266#[derive(Copy, Clone, Eq, PartialEq)]
6267pub struct Usbval_SPEC;
6268impl crate::sealed::RegSpec for Usbval_SPEC {
6269    type DataType = u16;
6270}
6271
6272#[doc = "USB Request Value Register"]
6273pub type Usbval = crate::RegValueT<Usbval_SPEC>;
6274
6275impl Usbval {
6276    #[doc = "Value of USB request wValue     Finction controller selected : read-only     Host controller selected : read-write"]
6277    #[inline(always)]
6278    pub fn wvalue(
6279        self,
6280    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Usbval_SPEC, crate::common::RW>
6281    {
6282        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Usbval_SPEC,crate::common::RW>::from_register(self,0)
6283    }
6284}
6285impl ::core::default::Default for Usbval {
6286    #[inline(always)]
6287    fn default() -> Usbval {
6288        <crate::RegValueT<Usbval_SPEC> as RegisterValue<_>>::new(0)
6289    }
6290}
6291
6292#[doc(hidden)]
6293#[derive(Copy, Clone, Eq, PartialEq)]
6294pub struct Usbindx_SPEC;
6295impl crate::sealed::RegSpec for Usbindx_SPEC {
6296    type DataType = u16;
6297}
6298
6299#[doc = "USB Request Index Register"]
6300pub type Usbindx = crate::RegValueT<Usbindx_SPEC>;
6301
6302impl Usbindx {
6303    #[doc = "Value of USB request wIndex     Finction controller selected : read-only     Host controller selected : read-write"]
6304    #[inline(always)]
6305    pub fn windex(
6306        self,
6307    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Usbindx_SPEC, crate::common::RW>
6308    {
6309        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Usbindx_SPEC,crate::common::RW>::from_register(self,0)
6310    }
6311}
6312impl ::core::default::Default for Usbindx {
6313    #[inline(always)]
6314    fn default() -> Usbindx {
6315        <crate::RegValueT<Usbindx_SPEC> as RegisterValue<_>>::new(0)
6316    }
6317}
6318
6319#[doc(hidden)]
6320#[derive(Copy, Clone, Eq, PartialEq)]
6321pub struct Usbleng_SPEC;
6322impl crate::sealed::RegSpec for Usbleng_SPEC {
6323    type DataType = u16;
6324}
6325
6326#[doc = "USB Request Length Register"]
6327pub type Usbleng = crate::RegValueT<Usbleng_SPEC>;
6328
6329impl Usbleng {
6330    #[doc = "Value of USB request wLength     Finction controller selected : read-only     Host controller selected : read-write"]
6331    #[inline(always)]
6332    pub fn wlength(
6333        self,
6334    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Usbleng_SPEC, crate::common::RW>
6335    {
6336        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Usbleng_SPEC,crate::common::RW>::from_register(self,0)
6337    }
6338}
6339impl ::core::default::Default for Usbleng {
6340    #[inline(always)]
6341    fn default() -> Usbleng {
6342        <crate::RegValueT<Usbleng_SPEC> as RegisterValue<_>>::new(0)
6343    }
6344}
6345
6346#[doc(hidden)]
6347#[derive(Copy, Clone, Eq, PartialEq)]
6348pub struct Dcpcfg_SPEC;
6349impl crate::sealed::RegSpec for Dcpcfg_SPEC {
6350    type DataType = u16;
6351}
6352
6353#[doc = "DCP Configuration Register"]
6354pub type Dcpcfg = crate::RegValueT<Dcpcfg_SPEC>;
6355
6356impl Dcpcfg {
6357    #[doc = "Continuous Transfer Mode"]
6358    #[inline(always)]
6359    pub fn cntmd(
6360        self,
6361    ) -> crate::common::RegisterField<
6362        8,
6363        0x1,
6364        1,
6365        0,
6366        dcpcfg::Cntmd,
6367        dcpcfg::Cntmd,
6368        Dcpcfg_SPEC,
6369        crate::common::RW,
6370    > {
6371        crate::common::RegisterField::<
6372            8,
6373            0x1,
6374            1,
6375            0,
6376            dcpcfg::Cntmd,
6377            dcpcfg::Cntmd,
6378            Dcpcfg_SPEC,
6379            crate::common::RW,
6380        >::from_register(self, 0)
6381    }
6382
6383    #[doc = "Pipe Blocking on End of Transfer"]
6384    #[inline(always)]
6385    pub fn shtnak(
6386        self,
6387    ) -> crate::common::RegisterField<
6388        7,
6389        0x1,
6390        1,
6391        0,
6392        dcpcfg::Shtnak,
6393        dcpcfg::Shtnak,
6394        Dcpcfg_SPEC,
6395        crate::common::RW,
6396    > {
6397        crate::common::RegisterField::<
6398            7,
6399            0x1,
6400            1,
6401            0,
6402            dcpcfg::Shtnak,
6403            dcpcfg::Shtnak,
6404            Dcpcfg_SPEC,
6405            crate::common::RW,
6406        >::from_register(self, 0)
6407    }
6408
6409    #[doc = "Transfer Direction"]
6410    #[inline(always)]
6411    pub fn dir(
6412        self,
6413    ) -> crate::common::RegisterField<
6414        4,
6415        0x1,
6416        1,
6417        0,
6418        dcpcfg::Dir,
6419        dcpcfg::Dir,
6420        Dcpcfg_SPEC,
6421        crate::common::RW,
6422    > {
6423        crate::common::RegisterField::<
6424            4,
6425            0x1,
6426            1,
6427            0,
6428            dcpcfg::Dir,
6429            dcpcfg::Dir,
6430            Dcpcfg_SPEC,
6431            crate::common::RW,
6432        >::from_register(self, 0)
6433    }
6434}
6435impl ::core::default::Default for Dcpcfg {
6436    #[inline(always)]
6437    fn default() -> Dcpcfg {
6438        <crate::RegValueT<Dcpcfg_SPEC> as RegisterValue<_>>::new(0)
6439    }
6440}
6441pub mod dcpcfg {
6442
6443    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6444    pub struct Cntmd_SPEC;
6445    pub type Cntmd = crate::EnumBitfieldStruct<u8, Cntmd_SPEC>;
6446    impl Cntmd {
6447        #[doc = "Non-continuous transfer mode"]
6448        pub const _0: Self = Self::new(0);
6449
6450        #[doc = "Continuous transfer mode"]
6451        pub const _1: Self = Self::new(1);
6452    }
6453    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6454    pub struct Shtnak_SPEC;
6455    pub type Shtnak = crate::EnumBitfieldStruct<u8, Shtnak_SPEC>;
6456    impl Shtnak {
6457        #[doc = "The pipe remains open after transfer ends."]
6458        pub const _0: Self = Self::new(0);
6459
6460        #[doc = "The pipe is blocked after transfer ends."]
6461        pub const _1: Self = Self::new(1);
6462    }
6463    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6464    pub struct Dir_SPEC;
6465    pub type Dir = crate::EnumBitfieldStruct<u8, Dir_SPEC>;
6466    impl Dir {
6467        #[doc = "Data receiving direction"]
6468        pub const _0: Self = Self::new(0);
6469
6470        #[doc = "Data transmitting direction"]
6471        pub const _1: Self = Self::new(1);
6472    }
6473}
6474#[doc(hidden)]
6475#[derive(Copy, Clone, Eq, PartialEq)]
6476pub struct Dcpmaxp_SPEC;
6477impl crate::sealed::RegSpec for Dcpmaxp_SPEC {
6478    type DataType = u16;
6479}
6480
6481#[doc = "DCP Maximum Packet Size Register"]
6482pub type Dcpmaxp = crate::RegValueT<Dcpmaxp_SPEC>;
6483
6484impl Dcpmaxp {
6485    #[doc = "Device SelectThese bits specify the address of the destination function device for control transfer when the host controller function is selected."]
6486    #[inline(always)]
6487    pub fn devsel(
6488        self,
6489    ) -> crate::common::RegisterField<
6490        12,
6491        0xf,
6492        1,
6493        0,
6494        dcpmaxp::Devsel,
6495        dcpmaxp::Devsel,
6496        Dcpmaxp_SPEC,
6497        crate::common::RW,
6498    > {
6499        crate::common::RegisterField::<
6500            12,
6501            0xf,
6502            1,
6503            0,
6504            dcpmaxp::Devsel,
6505            dcpmaxp::Devsel,
6506            Dcpmaxp_SPEC,
6507            crate::common::RW,
6508        >::from_register(self, 0)
6509    }
6510
6511    #[doc = "Maximum Packet SizeThese bits specify the maximum data payload (maximum packet size) for the DCP."]
6512    #[inline(always)]
6513    pub fn mxps(
6514        self,
6515    ) -> crate::common::RegisterField<0, 0x7f, 1, 0, u8, u8, Dcpmaxp_SPEC, crate::common::RW> {
6516        crate::common::RegisterField::<0,0x7f,1,0,u8,u8,Dcpmaxp_SPEC,crate::common::RW>::from_register(self,0)
6517    }
6518}
6519impl ::core::default::Default for Dcpmaxp {
6520    #[inline(always)]
6521    fn default() -> Dcpmaxp {
6522        <crate::RegValueT<Dcpmaxp_SPEC> as RegisterValue<_>>::new(64)
6523    }
6524}
6525pub mod dcpmaxp {
6526
6527    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6528    pub struct Devsel_SPEC;
6529    pub type Devsel = crate::EnumBitfieldStruct<u8, Devsel_SPEC>;
6530    impl Devsel {
6531        #[doc = "Address 0000"]
6532        pub const _0000: Self = Self::new(0);
6533
6534        #[doc = "Address 0001"]
6535        pub const _0001: Self = Self::new(1);
6536
6537        #[doc = "Address 0010"]
6538        pub const _0010: Self = Self::new(2);
6539
6540        #[doc = "Address 0011"]
6541        pub const _0011: Self = Self::new(3);
6542
6543        #[doc = "Address 0100"]
6544        pub const _0100: Self = Self::new(4);
6545
6546        #[doc = "Address 0101"]
6547        pub const _0101: Self = Self::new(5);
6548    }
6549}
6550#[doc(hidden)]
6551#[derive(Copy, Clone, Eq, PartialEq)]
6552pub struct Dcpctr_SPEC;
6553impl crate::sealed::RegSpec for Dcpctr_SPEC {
6554    type DataType = u16;
6555}
6556
6557#[doc = "DCP Control Register"]
6558pub type Dcpctr = crate::RegValueT<Dcpctr_SPEC>;
6559
6560impl Dcpctr {
6561    #[doc = "Buffer Status"]
6562    #[inline(always)]
6563    pub fn bsts(
6564        self,
6565    ) -> crate::common::RegisterField<
6566        15,
6567        0x1,
6568        1,
6569        0,
6570        dcpctr::Bsts,
6571        dcpctr::Bsts,
6572        Dcpctr_SPEC,
6573        crate::common::R,
6574    > {
6575        crate::common::RegisterField::<
6576            15,
6577            0x1,
6578            1,
6579            0,
6580            dcpctr::Bsts,
6581            dcpctr::Bsts,
6582            Dcpctr_SPEC,
6583            crate::common::R,
6584        >::from_register(self, 0)
6585    }
6586
6587    #[doc = "SETUP Token Transmission"]
6588    #[inline(always)]
6589    pub fn sureq(
6590        self,
6591    ) -> crate::common::RegisterField<
6592        14,
6593        0x1,
6594        1,
6595        0,
6596        dcpctr::Sureq,
6597        dcpctr::Sureq,
6598        Dcpctr_SPEC,
6599        crate::common::RW,
6600    > {
6601        crate::common::RegisterField::<
6602            14,
6603            0x1,
6604            1,
6605            0,
6606            dcpctr::Sureq,
6607            dcpctr::Sureq,
6608            Dcpctr_SPEC,
6609            crate::common::RW,
6610        >::from_register(self, 0)
6611    }
6612
6613    #[doc = "Split Transaction CSPLIT Status Clear"]
6614    #[inline(always)]
6615    pub fn csclr(
6616        self,
6617    ) -> crate::common::RegisterField<
6618        13,
6619        0x1,
6620        1,
6621        0,
6622        dcpctr::Csclr,
6623        dcpctr::Csclr,
6624        Dcpctr_SPEC,
6625        crate::common::RW,
6626    > {
6627        crate::common::RegisterField::<
6628            13,
6629            0x1,
6630            1,
6631            0,
6632            dcpctr::Csclr,
6633            dcpctr::Csclr,
6634            Dcpctr_SPEC,
6635            crate::common::RW,
6636        >::from_register(self, 0)
6637    }
6638
6639    #[doc = "Split Transaction COMPLETE SPLIT(CSPLIT) Status"]
6640    #[inline(always)]
6641    pub fn cssts(
6642        self,
6643    ) -> crate::common::RegisterField<
6644        12,
6645        0x1,
6646        1,
6647        0,
6648        dcpctr::Cssts,
6649        dcpctr::Cssts,
6650        Dcpctr_SPEC,
6651        crate::common::R,
6652    > {
6653        crate::common::RegisterField::<
6654            12,
6655            0x1,
6656            1,
6657            0,
6658            dcpctr::Cssts,
6659            dcpctr::Cssts,
6660            Dcpctr_SPEC,
6661            crate::common::R,
6662        >::from_register(self, 0)
6663    }
6664
6665    #[doc = "SUREQ Bit Clear"]
6666    #[inline(always)]
6667    pub fn sureqclr(
6668        self,
6669    ) -> crate::common::RegisterField<
6670        11,
6671        0x1,
6672        1,
6673        0,
6674        dcpctr::Sureqclr,
6675        dcpctr::Sureqclr,
6676        Dcpctr_SPEC,
6677        crate::common::RW,
6678    > {
6679        crate::common::RegisterField::<
6680            11,
6681            0x1,
6682            1,
6683            0,
6684            dcpctr::Sureqclr,
6685            dcpctr::Sureqclr,
6686            Dcpctr_SPEC,
6687            crate::common::RW,
6688        >::from_register(self, 0)
6689    }
6690
6691    #[doc = "Toggle Bit Clear"]
6692    #[inline(always)]
6693    pub fn sqclr(
6694        self,
6695    ) -> crate::common::RegisterField<
6696        8,
6697        0x1,
6698        1,
6699        0,
6700        dcpctr::Sqclr,
6701        dcpctr::Sqclr,
6702        Dcpctr_SPEC,
6703        crate::common::RW,
6704    > {
6705        crate::common::RegisterField::<
6706            8,
6707            0x1,
6708            1,
6709            0,
6710            dcpctr::Sqclr,
6711            dcpctr::Sqclr,
6712            Dcpctr_SPEC,
6713            crate::common::RW,
6714        >::from_register(self, 0)
6715    }
6716
6717    #[doc = "Toggle Bit Set"]
6718    #[inline(always)]
6719    pub fn sqset(
6720        self,
6721    ) -> crate::common::RegisterField<
6722        7,
6723        0x1,
6724        1,
6725        0,
6726        dcpctr::Sqset,
6727        dcpctr::Sqset,
6728        Dcpctr_SPEC,
6729        crate::common::RW,
6730    > {
6731        crate::common::RegisterField::<
6732            7,
6733            0x1,
6734            1,
6735            0,
6736            dcpctr::Sqset,
6737            dcpctr::Sqset,
6738            Dcpctr_SPEC,
6739            crate::common::RW,
6740        >::from_register(self, 0)
6741    }
6742
6743    #[doc = "Sequence Toggle Bit Monitor"]
6744    #[inline(always)]
6745    pub fn sqmon(
6746        self,
6747    ) -> crate::common::RegisterField<
6748        6,
6749        0x1,
6750        1,
6751        0,
6752        dcpctr::Sqmon,
6753        dcpctr::Sqmon,
6754        Dcpctr_SPEC,
6755        crate::common::R,
6756    > {
6757        crate::common::RegisterField::<
6758            6,
6759            0x1,
6760            1,
6761            0,
6762            dcpctr::Sqmon,
6763            dcpctr::Sqmon,
6764            Dcpctr_SPEC,
6765            crate::common::R,
6766        >::from_register(self, 0)
6767    }
6768
6769    #[doc = "Pipe Busy"]
6770    #[inline(always)]
6771    pub fn pbusy(
6772        self,
6773    ) -> crate::common::RegisterField<
6774        5,
6775        0x1,
6776        1,
6777        0,
6778        dcpctr::Pbusy,
6779        dcpctr::Pbusy,
6780        Dcpctr_SPEC,
6781        crate::common::R,
6782    > {
6783        crate::common::RegisterField::<
6784            5,
6785            0x1,
6786            1,
6787            0,
6788            dcpctr::Pbusy,
6789            dcpctr::Pbusy,
6790            Dcpctr_SPEC,
6791            crate::common::R,
6792        >::from_register(self, 0)
6793    }
6794
6795    #[doc = "PING Token Issue Enable"]
6796    #[inline(always)]
6797    pub fn pinge(
6798        self,
6799    ) -> crate::common::RegisterField<
6800        4,
6801        0x1,
6802        1,
6803        0,
6804        dcpctr::Pinge,
6805        dcpctr::Pinge,
6806        Dcpctr_SPEC,
6807        crate::common::RW,
6808    > {
6809        crate::common::RegisterField::<
6810            4,
6811            0x1,
6812            1,
6813            0,
6814            dcpctr::Pinge,
6815            dcpctr::Pinge,
6816            Dcpctr_SPEC,
6817            crate::common::RW,
6818        >::from_register(self, 0)
6819    }
6820
6821    #[doc = "Control Transfer End Enable"]
6822    #[inline(always)]
6823    pub fn ccpl(
6824        self,
6825    ) -> crate::common::RegisterField<
6826        2,
6827        0x1,
6828        1,
6829        0,
6830        dcpctr::Ccpl,
6831        dcpctr::Ccpl,
6832        Dcpctr_SPEC,
6833        crate::common::RW,
6834    > {
6835        crate::common::RegisterField::<
6836            2,
6837            0x1,
6838            1,
6839            0,
6840            dcpctr::Ccpl,
6841            dcpctr::Ccpl,
6842            Dcpctr_SPEC,
6843            crate::common::RW,
6844        >::from_register(self, 0)
6845    }
6846
6847    #[doc = "Response PID"]
6848    #[inline(always)]
6849    pub fn pid(
6850        self,
6851    ) -> crate::common::RegisterField<
6852        0,
6853        0x3,
6854        1,
6855        0,
6856        dcpctr::Pid,
6857        dcpctr::Pid,
6858        Dcpctr_SPEC,
6859        crate::common::RW,
6860    > {
6861        crate::common::RegisterField::<
6862            0,
6863            0x3,
6864            1,
6865            0,
6866            dcpctr::Pid,
6867            dcpctr::Pid,
6868            Dcpctr_SPEC,
6869            crate::common::RW,
6870        >::from_register(self, 0)
6871    }
6872}
6873impl ::core::default::Default for Dcpctr {
6874    #[inline(always)]
6875    fn default() -> Dcpctr {
6876        <crate::RegValueT<Dcpctr_SPEC> as RegisterValue<_>>::new(64)
6877    }
6878}
6879pub mod dcpctr {
6880
6881    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6882    pub struct Bsts_SPEC;
6883    pub type Bsts = crate::EnumBitfieldStruct<u8, Bsts_SPEC>;
6884    impl Bsts {
6885        #[doc = "Buffer access is disabled."]
6886        pub const _0: Self = Self::new(0);
6887
6888        #[doc = "Buffer access is enabled."]
6889        pub const _1: Self = Self::new(1);
6890    }
6891    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6892    pub struct Sureq_SPEC;
6893    pub type Sureq = crate::EnumBitfieldStruct<u8, Sureq_SPEC>;
6894    impl Sureq {
6895        #[doc = "Writing is ignored."]
6896        pub const _0: Self = Self::new(0);
6897
6898        #[doc = "Transmits the setup packet."]
6899        pub const _1: Self = Self::new(1);
6900    }
6901    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6902    pub struct Csclr_SPEC;
6903    pub type Csclr = crate::EnumBitfieldStruct<u8, Csclr_SPEC>;
6904    impl Csclr {
6905        #[doc = "Writing is ignored."]
6906        pub const _0: Self = Self::new(0);
6907
6908        #[doc = "Clears the CSSTS bit to 0."]
6909        pub const _1: Self = Self::new(1);
6910    }
6911    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6912    pub struct Cssts_SPEC;
6913    pub type Cssts = crate::EnumBitfieldStruct<u8, Cssts_SPEC>;
6914    impl Cssts {
6915        #[doc = "START-SPLIT(SSPLIT) transaction processing is in progress or processing for devices that do not use Split Transaction is in progress."]
6916        pub const _0: Self = Self::new(0);
6917
6918        #[doc = "The CSPLIT transaction processing is in progress."]
6919        pub const _1: Self = Self::new(1);
6920    }
6921    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6922    pub struct Sureqclr_SPEC;
6923    pub type Sureqclr = crate::EnumBitfieldStruct<u8, Sureqclr_SPEC>;
6924    impl Sureqclr {
6925        #[doc = "Writing is ignored."]
6926        pub const _0: Self = Self::new(0);
6927
6928        #[doc = "Clears the SUREQ bit to 0."]
6929        pub const _1: Self = Self::new(1);
6930    }
6931    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6932    pub struct Sqclr_SPEC;
6933    pub type Sqclr = crate::EnumBitfieldStruct<u8, Sqclr_SPEC>;
6934    impl Sqclr {
6935        #[doc = "Writing is ignored."]
6936        pub const _0: Self = Self::new(0);
6937
6938        #[doc = "Specifies DATA0."]
6939        pub const _1: Self = Self::new(1);
6940    }
6941    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6942    pub struct Sqset_SPEC;
6943    pub type Sqset = crate::EnumBitfieldStruct<u8, Sqset_SPEC>;
6944    impl Sqset {
6945        #[doc = "Writing is ignored."]
6946        pub const _0: Self = Self::new(0);
6947
6948        #[doc = "Specifies DATA1."]
6949        pub const _1: Self = Self::new(1);
6950    }
6951    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6952    pub struct Sqmon_SPEC;
6953    pub type Sqmon = crate::EnumBitfieldStruct<u8, Sqmon_SPEC>;
6954    impl Sqmon {
6955        #[doc = "DATA0"]
6956        pub const _0: Self = Self::new(0);
6957
6958        #[doc = "DATA1"]
6959        pub const _1: Self = Self::new(1);
6960    }
6961    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6962    pub struct Pbusy_SPEC;
6963    pub type Pbusy = crate::EnumBitfieldStruct<u8, Pbusy_SPEC>;
6964    impl Pbusy {
6965        #[doc = "The relevant pipe is not used for the USB bus."]
6966        pub const _0: Self = Self::new(0);
6967
6968        #[doc = "The relevant pipe is in use for the USB bus."]
6969        pub const _1: Self = Self::new(1);
6970    }
6971    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6972    pub struct Pinge_SPEC;
6973    pub type Pinge = crate::EnumBitfieldStruct<u8, Pinge_SPEC>;
6974    impl Pinge {
6975        #[doc = "Issuing PING token is disabled."]
6976        pub const _0: Self = Self::new(0);
6977
6978        #[doc = "Normal PING operation"]
6979        pub const _1: Self = Self::new(1);
6980    }
6981    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6982    pub struct Ccpl_SPEC;
6983    pub type Ccpl = crate::EnumBitfieldStruct<u8, Ccpl_SPEC>;
6984    impl Ccpl {
6985        #[doc = "Completion of control transfer is disabled."]
6986        pub const _0: Self = Self::new(0);
6987
6988        #[doc = "Completion of control transfer is enabled."]
6989        pub const _1: Self = Self::new(1);
6990    }
6991    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6992    pub struct Pid_SPEC;
6993    pub type Pid = crate::EnumBitfieldStruct<u8, Pid_SPEC>;
6994    impl Pid {
6995        #[doc = "NAK response"]
6996        pub const _00: Self = Self::new(0);
6997
6998        #[doc = "BUF response (depending on buffer state)"]
6999        pub const _01: Self = Self::new(1);
7000
7001        #[doc = "STALL response"]
7002        pub const _10: Self = Self::new(2);
7003
7004        #[doc = "STALL response"]
7005        pub const _11: Self = Self::new(3);
7006    }
7007}
7008#[doc(hidden)]
7009#[derive(Copy, Clone, Eq, PartialEq)]
7010pub struct Pipesel_SPEC;
7011impl crate::sealed::RegSpec for Pipesel_SPEC {
7012    type DataType = u16;
7013}
7014
7015#[doc = "Pipe Window Select Register"]
7016pub type Pipesel = crate::RegValueT<Pipesel_SPEC>;
7017
7018impl Pipesel {
7019    #[doc = "Pipe Window SelectThese bits specify the pipe for registers at addresses 68H to 6EH."]
7020    #[inline(always)]
7021    pub fn pipesel(
7022        self,
7023    ) -> crate::common::RegisterField<
7024        0,
7025        0xf,
7026        1,
7027        0,
7028        pipesel::Pipesel,
7029        pipesel::Pipesel,
7030        Pipesel_SPEC,
7031        crate::common::RW,
7032    > {
7033        crate::common::RegisterField::<
7034            0,
7035            0xf,
7036            1,
7037            0,
7038            pipesel::Pipesel,
7039            pipesel::Pipesel,
7040            Pipesel_SPEC,
7041            crate::common::RW,
7042        >::from_register(self, 0)
7043    }
7044}
7045impl ::core::default::Default for Pipesel {
7046    #[inline(always)]
7047    fn default() -> Pipesel {
7048        <crate::RegValueT<Pipesel_SPEC> as RegisterValue<_>>::new(0)
7049    }
7050}
7051pub mod pipesel {
7052
7053    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7054    pub struct Pipesel_SPEC;
7055    pub type Pipesel = crate::EnumBitfieldStruct<u8, Pipesel_SPEC>;
7056    impl Pipesel {
7057        #[doc = "No pipe selected"]
7058        pub const _0000: Self = Self::new(0);
7059
7060        #[doc = "PIPE1"]
7061        pub const _0001: Self = Self::new(1);
7062
7063        #[doc = "PIPE2"]
7064        pub const _0010: Self = Self::new(2);
7065
7066        #[doc = "PIPE3"]
7067        pub const _0011: Self = Self::new(3);
7068
7069        #[doc = "PIPE4"]
7070        pub const _0100: Self = Self::new(4);
7071
7072        #[doc = "PIPE5"]
7073        pub const _0101: Self = Self::new(5);
7074
7075        #[doc = "PIPE6"]
7076        pub const _0110: Self = Self::new(6);
7077
7078        #[doc = "PIPE7"]
7079        pub const _0111: Self = Self::new(7);
7080
7081        #[doc = "PIPE8"]
7082        pub const _1000: Self = Self::new(8);
7083
7084        #[doc = "PIPE9"]
7085        pub const _1001: Self = Self::new(9);
7086    }
7087}
7088#[doc(hidden)]
7089#[derive(Copy, Clone, Eq, PartialEq)]
7090pub struct Pipecfg_SPEC;
7091impl crate::sealed::RegSpec for Pipecfg_SPEC {
7092    type DataType = u16;
7093}
7094
7095#[doc = "Pipe Configuration Register"]
7096pub type Pipecfg = crate::RegValueT<Pipecfg_SPEC>;
7097
7098impl Pipecfg {
7099    #[doc = "Transfer Type"]
7100    #[inline(always)]
7101    pub fn r#type(
7102        self,
7103    ) -> crate::common::RegisterField<
7104        14,
7105        0x3,
7106        1,
7107        0,
7108        pipecfg::Type,
7109        pipecfg::Type,
7110        Pipecfg_SPEC,
7111        crate::common::RW,
7112    > {
7113        crate::common::RegisterField::<
7114            14,
7115            0x3,
7116            1,
7117            0,
7118            pipecfg::Type,
7119            pipecfg::Type,
7120            Pipecfg_SPEC,
7121            crate::common::RW,
7122        >::from_register(self, 0)
7123    }
7124
7125    #[doc = "BRDY Interrupt Operation Specification"]
7126    #[inline(always)]
7127    pub fn bfre(
7128        self,
7129    ) -> crate::common::RegisterField<
7130        10,
7131        0x1,
7132        1,
7133        0,
7134        pipecfg::Bfre,
7135        pipecfg::Bfre,
7136        Pipecfg_SPEC,
7137        crate::common::RW,
7138    > {
7139        crate::common::RegisterField::<
7140            10,
7141            0x1,
7142            1,
7143            0,
7144            pipecfg::Bfre,
7145            pipecfg::Bfre,
7146            Pipecfg_SPEC,
7147            crate::common::RW,
7148        >::from_register(self, 0)
7149    }
7150
7151    #[doc = "Double Buffer Mode"]
7152    #[inline(always)]
7153    pub fn dblb(
7154        self,
7155    ) -> crate::common::RegisterField<
7156        9,
7157        0x1,
7158        1,
7159        0,
7160        pipecfg::Dblb,
7161        pipecfg::Dblb,
7162        Pipecfg_SPEC,
7163        crate::common::RW,
7164    > {
7165        crate::common::RegisterField::<
7166            9,
7167            0x1,
7168            1,
7169            0,
7170            pipecfg::Dblb,
7171            pipecfg::Dblb,
7172            Pipecfg_SPEC,
7173            crate::common::RW,
7174        >::from_register(self, 0)
7175    }
7176
7177    #[doc = "Continuous Transfer Mode"]
7178    #[inline(always)]
7179    pub fn cntmd(
7180        self,
7181    ) -> crate::common::RegisterField<
7182        8,
7183        0x1,
7184        1,
7185        0,
7186        pipecfg::Cntmd,
7187        pipecfg::Cntmd,
7188        Pipecfg_SPEC,
7189        crate::common::RW,
7190    > {
7191        crate::common::RegisterField::<
7192            8,
7193            0x1,
7194            1,
7195            0,
7196            pipecfg::Cntmd,
7197            pipecfg::Cntmd,
7198            Pipecfg_SPEC,
7199            crate::common::RW,
7200        >::from_register(self, 0)
7201    }
7202
7203    #[doc = "Pipe Disabled at End of Transfer"]
7204    #[inline(always)]
7205    pub fn shtnak(
7206        self,
7207    ) -> crate::common::RegisterField<
7208        7,
7209        0x1,
7210        1,
7211        0,
7212        pipecfg::Shtnak,
7213        pipecfg::Shtnak,
7214        Pipecfg_SPEC,
7215        crate::common::RW,
7216    > {
7217        crate::common::RegisterField::<
7218            7,
7219            0x1,
7220            1,
7221            0,
7222            pipecfg::Shtnak,
7223            pipecfg::Shtnak,
7224            Pipecfg_SPEC,
7225            crate::common::RW,
7226        >::from_register(self, 0)
7227    }
7228
7229    #[doc = "Transfer Direction"]
7230    #[inline(always)]
7231    pub fn dir(
7232        self,
7233    ) -> crate::common::RegisterField<
7234        4,
7235        0x1,
7236        1,
7237        0,
7238        pipecfg::Dir,
7239        pipecfg::Dir,
7240        Pipecfg_SPEC,
7241        crate::common::RW,
7242    > {
7243        crate::common::RegisterField::<
7244            4,
7245            0x1,
7246            1,
7247            0,
7248            pipecfg::Dir,
7249            pipecfg::Dir,
7250            Pipecfg_SPEC,
7251            crate::common::RW,
7252        >::from_register(self, 0)
7253    }
7254
7255    #[doc = "Endpoint Number"]
7256    #[inline(always)]
7257    pub fn epnum(
7258        self,
7259    ) -> crate::common::RegisterField<
7260        0,
7261        0xf,
7262        1,
7263        0,
7264        pipecfg::Epnum,
7265        pipecfg::Epnum,
7266        Pipecfg_SPEC,
7267        crate::common::RW,
7268    > {
7269        crate::common::RegisterField::<
7270            0,
7271            0xf,
7272            1,
7273            0,
7274            pipecfg::Epnum,
7275            pipecfg::Epnum,
7276            Pipecfg_SPEC,
7277            crate::common::RW,
7278        >::from_register(self, 0)
7279    }
7280}
7281impl ::core::default::Default for Pipecfg {
7282    #[inline(always)]
7283    fn default() -> Pipecfg {
7284        <crate::RegValueT<Pipecfg_SPEC> as RegisterValue<_>>::new(0)
7285    }
7286}
7287pub mod pipecfg {
7288
7289    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7290    pub struct Type_SPEC;
7291    pub type Type = crate::EnumBitfieldStruct<u8, Type_SPEC>;
7292    impl Type {
7293        #[doc = "Pipe not used"]
7294        pub const _00: Self = Self::new(0);
7295
7296        #[doc = "Bulk transfer"]
7297        pub const _01: Self = Self::new(1);
7298
7299        #[doc = "Interrupt transfer"]
7300        pub const _10: Self = Self::new(2);
7301
7302        #[doc = "Isochronous transfer"]
7303        pub const _11: Self = Self::new(3);
7304    }
7305    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7306    pub struct Bfre_SPEC;
7307    pub type Bfre = crate::EnumBitfieldStruct<u8, Bfre_SPEC>;
7308    impl Bfre {
7309        #[doc = "BRDY interrupt upon transmitting or receiving data"]
7310        pub const _0: Self = Self::new(0);
7311
7312        #[doc = "BRDY interrupt upon completion of reading data"]
7313        pub const _1: Self = Self::new(1);
7314    }
7315    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7316    pub struct Dblb_SPEC;
7317    pub type Dblb = crate::EnumBitfieldStruct<u8, Dblb_SPEC>;
7318    impl Dblb {
7319        #[doc = "Single buffer"]
7320        pub const _0: Self = Self::new(0);
7321
7322        #[doc = "Double buffer"]
7323        pub const _1: Self = Self::new(1);
7324    }
7325    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7326    pub struct Cntmd_SPEC;
7327    pub type Cntmd = crate::EnumBitfieldStruct<u8, Cntmd_SPEC>;
7328    impl Cntmd {
7329        #[doc = "Discontinuous transfer mode"]
7330        pub const _0: Self = Self::new(0);
7331
7332        #[doc = "Continuous transfer mode"]
7333        pub const _1: Self = Self::new(1);
7334    }
7335    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7336    pub struct Shtnak_SPEC;
7337    pub type Shtnak = crate::EnumBitfieldStruct<u8, Shtnak_SPEC>;
7338    impl Shtnak {
7339        #[doc = "The pipe is continued at the end of transfer."]
7340        pub const _0: Self = Self::new(0);
7341
7342        #[doc = "The pipe is disabled at the end of transfer."]
7343        pub const _1: Self = Self::new(1);
7344    }
7345    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7346    pub struct Dir_SPEC;
7347    pub type Dir = crate::EnumBitfieldStruct<u8, Dir_SPEC>;
7348    impl Dir {
7349        #[doc = "Receiving direction"]
7350        pub const _0: Self = Self::new(0);
7351
7352        #[doc = "Transmitting direction"]
7353        pub const _1: Self = Self::new(1);
7354    }
7355    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7356    pub struct Epnum_SPEC;
7357    pub type Epnum = crate::EnumBitfieldStruct<u8, Epnum_SPEC>;
7358    impl Epnum {
7359        #[doc = "the selected pipe is not used"]
7360        pub const _000: Self = Self::new(0);
7361    }
7362}
7363#[doc(hidden)]
7364#[derive(Copy, Clone, Eq, PartialEq)]
7365pub struct Pipebuf_SPEC;
7366impl crate::sealed::RegSpec for Pipebuf_SPEC {
7367    type DataType = u16;
7368}
7369
7370#[doc = "Pipe Buffer Register"]
7371pub type Pipebuf = crate::RegValueT<Pipebuf_SPEC>;
7372
7373impl Pipebuf {
7374    #[doc = "Buffer Size    00h: 64 bytes    01h: 128 bytes      :    1Fh: 2 Kbytes"]
7375    #[inline(always)]
7376    pub fn bufsize(
7377        self,
7378    ) -> crate::common::RegisterField<10, 0x1f, 1, 0, u8, u8, Pipebuf_SPEC, crate::common::RW> {
7379        crate::common::RegisterField::<10,0x1f,1,0,u8,u8,Pipebuf_SPEC,crate::common::RW>::from_register(self,0)
7380    }
7381
7382    #[doc = "Buffer NumberThese bits specify the FIFO buffer number of the selected pipe (04h to 87h)."]
7383    #[inline(always)]
7384    pub fn bufnmb(
7385        self,
7386    ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, Pipebuf_SPEC, crate::common::RW> {
7387        crate::common::RegisterField::<0,0xff,1,0,u8,u8,Pipebuf_SPEC,crate::common::RW>::from_register(self,0)
7388    }
7389}
7390impl ::core::default::Default for Pipebuf {
7391    #[inline(always)]
7392    fn default() -> Pipebuf {
7393        <crate::RegValueT<Pipebuf_SPEC> as RegisterValue<_>>::new(0)
7394    }
7395}
7396
7397#[doc(hidden)]
7398#[derive(Copy, Clone, Eq, PartialEq)]
7399pub struct Pipemaxp_SPEC;
7400impl crate::sealed::RegSpec for Pipemaxp_SPEC {
7401    type DataType = u16;
7402}
7403
7404#[doc = "Pipe Maximum Packet Size Register"]
7405pub type Pipemaxp = crate::RegValueT<Pipemaxp_SPEC>;
7406
7407impl Pipemaxp {
7408    #[doc = "Device SelectThese bits specify the address of the peripheral device when the host controller function is selected."]
7409    #[inline(always)]
7410    pub fn devsel(
7411        self,
7412    ) -> crate::common::RegisterField<12, 0xf, 1, 0, u8, u8, Pipemaxp_SPEC, crate::common::RW> {
7413        crate::common::RegisterField::<12,0xf,1,0,u8,u8,Pipemaxp_SPEC,crate::common::RW>::from_register(self,0)
7414    }
7415
7416    #[doc = "Maximum Packet SizeThese bits specify the maximum data payload (maximum packet size) for the selected pipe.A size of 1h to 40h bytes can be set for PIPE6 to PIPE9."]
7417    #[inline(always)]
7418    pub fn mxps(
7419        self,
7420    ) -> crate::common::RegisterField<0, 0x7ff, 1, 0, u16, u16, Pipemaxp_SPEC, crate::common::RW>
7421    {
7422        crate::common::RegisterField::<0,0x7ff,1,0,u16,u16,Pipemaxp_SPEC,crate::common::RW>::from_register(self,0)
7423    }
7424}
7425impl ::core::default::Default for Pipemaxp {
7426    #[inline(always)]
7427    fn default() -> Pipemaxp {
7428        <crate::RegValueT<Pipemaxp_SPEC> as RegisterValue<_>>::new(0)
7429    }
7430}
7431
7432#[doc(hidden)]
7433#[derive(Copy, Clone, Eq, PartialEq)]
7434pub struct Pipeperi_SPEC;
7435impl crate::sealed::RegSpec for Pipeperi_SPEC {
7436    type DataType = u16;
7437}
7438
7439#[doc = "Pipe Cycle Control Register"]
7440pub type Pipeperi = crate::RegValueT<Pipeperi_SPEC>;
7441
7442impl Pipeperi {
7443    #[doc = "Isochronous IN Buffer Flush"]
7444    #[inline(always)]
7445    pub fn ifis(
7446        self,
7447    ) -> crate::common::RegisterField<
7448        12,
7449        0x1,
7450        1,
7451        0,
7452        pipeperi::Ifis,
7453        pipeperi::Ifis,
7454        Pipeperi_SPEC,
7455        crate::common::RW,
7456    > {
7457        crate::common::RegisterField::<
7458            12,
7459            0x1,
7460            1,
7461            0,
7462            pipeperi::Ifis,
7463            pipeperi::Ifis,
7464            Pipeperi_SPEC,
7465            crate::common::RW,
7466        >::from_register(self, 0)
7467    }
7468
7469    #[doc = "Interval Error Detection IntervalThese bits specify the transfer interval timing for the selected pipe as n-th power of 2 of the frame timing."]
7470    #[inline(always)]
7471    pub fn iitv(
7472        self,
7473    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, Pipeperi_SPEC, crate::common::RW> {
7474        crate::common::RegisterField::<0,0x7,1,0,u8,u8,Pipeperi_SPEC,crate::common::RW>::from_register(self,0)
7475    }
7476}
7477impl ::core::default::Default for Pipeperi {
7478    #[inline(always)]
7479    fn default() -> Pipeperi {
7480        <crate::RegValueT<Pipeperi_SPEC> as RegisterValue<_>>::new(0)
7481    }
7482}
7483pub mod pipeperi {
7484
7485    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7486    pub struct Ifis_SPEC;
7487    pub type Ifis = crate::EnumBitfieldStruct<u8, Ifis_SPEC>;
7488    impl Ifis {
7489        #[doc = "The buffer is not flushed."]
7490        pub const _0: Self = Self::new(0);
7491
7492        #[doc = "The buffer is flushed."]
7493        pub const _1: Self = Self::new(1);
7494    }
7495}
7496#[doc(hidden)]
7497#[derive(Copy, Clone, Eq, PartialEq)]
7498pub struct Pipectr_SPEC;
7499impl crate::sealed::RegSpec for Pipectr_SPEC {
7500    type DataType = u16;
7501}
7502
7503#[doc = "PIPE Control Register"]
7504pub type Pipectr = crate::RegValueT<Pipectr_SPEC>;
7505
7506impl Pipectr {
7507    #[doc = "Buffer StatusThis bit indicates the FIFO buffer status for the relevant pipe."]
7508    #[inline(always)]
7509    pub fn bsts(
7510        self,
7511    ) -> crate::common::RegisterField<
7512        15,
7513        0x1,
7514        1,
7515        0,
7516        pipectr::Bsts,
7517        pipectr::Bsts,
7518        Pipectr_SPEC,
7519        crate::common::R,
7520    > {
7521        crate::common::RegisterField::<
7522            15,
7523            0x1,
7524            1,
7525            0,
7526            pipectr::Bsts,
7527            pipectr::Bsts,
7528            Pipectr_SPEC,
7529            crate::common::R,
7530        >::from_register(self, 0)
7531    }
7532
7533    #[doc = "Transmit Buffer MonitorThis bit indicates the FIFO buffer status for the relevant pipe in the transmitting direction."]
7534    #[inline(always)]
7535    pub fn inbufm(
7536        self,
7537    ) -> crate::common::RegisterField<
7538        14,
7539        0x1,
7540        1,
7541        0,
7542        pipectr::Inbufm,
7543        pipectr::Inbufm,
7544        Pipectr_SPEC,
7545        crate::common::R,
7546    > {
7547        crate::common::RegisterField::<
7548            14,
7549            0x1,
7550            1,
7551            0,
7552            pipectr::Inbufm,
7553            pipectr::Inbufm,
7554            Pipectr_SPEC,
7555            crate::common::R,
7556        >::from_register(self, 0)
7557    }
7558
7559    #[doc = "CSPLIT Status ClearSet this bit to 1 when clearing the CSSTS bit of the relevant pipe"]
7560    #[inline(always)]
7561    pub fn csclr(
7562        self,
7563    ) -> crate::common::RegisterField<
7564        13,
7565        0x1,
7566        1,
7567        0,
7568        pipectr::Csclr,
7569        pipectr::Csclr,
7570        Pipectr_SPEC,
7571        crate::common::RW,
7572    > {
7573        crate::common::RegisterField::<
7574            13,
7575            0x1,
7576            1,
7577            0,
7578            pipectr::Csclr,
7579            pipectr::Csclr,
7580            Pipectr_SPEC,
7581            crate::common::RW,
7582        >::from_register(self, 0)
7583    }
7584
7585    #[doc = "CSSTS StatusThis bit indicates the CSPLIT status of Split Transaction of the relevant pipe"]
7586    #[inline(always)]
7587    pub fn cssts(
7588        self,
7589    ) -> crate::common::RegisterField<
7590        12,
7591        0x1,
7592        1,
7593        0,
7594        pipectr::Cssts,
7595        pipectr::Cssts,
7596        Pipectr_SPEC,
7597        crate::common::R,
7598    > {
7599        crate::common::RegisterField::<
7600            12,
7601            0x1,
7602            1,
7603            0,
7604            pipectr::Cssts,
7605            pipectr::Cssts,
7606            Pipectr_SPEC,
7607            crate::common::R,
7608        >::from_register(self, 0)
7609    }
7610
7611    #[doc = "Auto Response ModeThis bit enables or disables auto response mode for the relevant pipe."]
7612    #[inline(always)]
7613    pub fn atrepm(
7614        self,
7615    ) -> crate::common::RegisterField<
7616        10,
7617        0x1,
7618        1,
7619        0,
7620        pipectr::Atrepm,
7621        pipectr::Atrepm,
7622        Pipectr_SPEC,
7623        crate::common::RW,
7624    > {
7625        crate::common::RegisterField::<
7626            10,
7627            0x1,
7628            1,
7629            0,
7630            pipectr::Atrepm,
7631            pipectr::Atrepm,
7632            Pipectr_SPEC,
7633            crate::common::RW,
7634        >::from_register(self, 0)
7635    }
7636
7637    #[doc = "Auto Buffer Clear ModeThis bit enables or disables auto buffer clear mode for the relevant pipe"]
7638    #[inline(always)]
7639    pub fn aclrm(
7640        self,
7641    ) -> crate::common::RegisterField<
7642        9,
7643        0x1,
7644        1,
7645        0,
7646        pipectr::Aclrm,
7647        pipectr::Aclrm,
7648        Pipectr_SPEC,
7649        crate::common::RW,
7650    > {
7651        crate::common::RegisterField::<
7652            9,
7653            0x1,
7654            1,
7655            0,
7656            pipectr::Aclrm,
7657            pipectr::Aclrm,
7658            Pipectr_SPEC,
7659            crate::common::RW,
7660        >::from_register(self, 0)
7661    }
7662
7663    #[doc = "Toggle Bit ClearThis bit is set to 1 when the expected value of the sequence toggle bit for the next transaction of the relevant pipe is cleared to DATA0"]
7664    #[inline(always)]
7665    pub fn sqclr(
7666        self,
7667    ) -> crate::common::RegisterField<
7668        8,
7669        0x1,
7670        1,
7671        0,
7672        pipectr::Sqclr,
7673        pipectr::Sqclr,
7674        Pipectr_SPEC,
7675        crate::common::RW,
7676    > {
7677        crate::common::RegisterField::<
7678            8,
7679            0x1,
7680            1,
7681            0,
7682            pipectr::Sqclr,
7683            pipectr::Sqclr,
7684            Pipectr_SPEC,
7685            crate::common::RW,
7686        >::from_register(self, 0)
7687    }
7688
7689    #[doc = "Toggle Bit SetThis bit is set to 1 when the expected value of the sequence toggle bit for the next transaction of the relevant pipe is set for DATA1"]
7690    #[inline(always)]
7691    pub fn sqset(
7692        self,
7693    ) -> crate::common::RegisterField<
7694        7,
7695        0x1,
7696        1,
7697        0,
7698        pipectr::Sqset,
7699        pipectr::Sqset,
7700        Pipectr_SPEC,
7701        crate::common::RW,
7702    > {
7703        crate::common::RegisterField::<
7704            7,
7705            0x1,
7706            1,
7707            0,
7708            pipectr::Sqset,
7709            pipectr::Sqset,
7710            Pipectr_SPEC,
7711            crate::common::RW,
7712        >::from_register(self, 0)
7713    }
7714
7715    #[doc = "Toggle Bit ConfirmationThis bit indicates the expected value of the sequence toggle bit for the next transaction of the relevant pipe"]
7716    #[inline(always)]
7717    pub fn sqmon(
7718        self,
7719    ) -> crate::common::RegisterField<
7720        6,
7721        0x1,
7722        1,
7723        0,
7724        pipectr::Sqmon,
7725        pipectr::Sqmon,
7726        Pipectr_SPEC,
7727        crate::common::R,
7728    > {
7729        crate::common::RegisterField::<
7730            6,
7731            0x1,
7732            1,
7733            0,
7734            pipectr::Sqmon,
7735            pipectr::Sqmon,
7736            Pipectr_SPEC,
7737            crate::common::R,
7738        >::from_register(self, 0)
7739    }
7740
7741    #[doc = "Pipe BusyThis bit indicates whether the relevant pipe is being used for the USB bus"]
7742    #[inline(always)]
7743    pub fn pbusy(
7744        self,
7745    ) -> crate::common::RegisterField<
7746        5,
7747        0x1,
7748        1,
7749        0,
7750        pipectr::Pbusy,
7751        pipectr::Pbusy,
7752        Pipectr_SPEC,
7753        crate::common::R,
7754    > {
7755        crate::common::RegisterField::<
7756            5,
7757            0x1,
7758            1,
7759            0,
7760            pipectr::Pbusy,
7761            pipectr::Pbusy,
7762            Pipectr_SPEC,
7763            crate::common::R,
7764        >::from_register(self, 0)
7765    }
7766
7767    #[doc = "Response PIDThese bits specify the response type for the next transaction of the relevant pipe."]
7768    #[inline(always)]
7769    pub fn pid(
7770        self,
7771    ) -> crate::common::RegisterField<
7772        0,
7773        0x3,
7774        1,
7775        0,
7776        pipectr::Pid,
7777        pipectr::Pid,
7778        Pipectr_SPEC,
7779        crate::common::RW,
7780    > {
7781        crate::common::RegisterField::<
7782            0,
7783            0x3,
7784            1,
7785            0,
7786            pipectr::Pid,
7787            pipectr::Pid,
7788            Pipectr_SPEC,
7789            crate::common::RW,
7790        >::from_register(self, 0)
7791    }
7792}
7793impl ::core::default::Default for Pipectr {
7794    #[inline(always)]
7795    fn default() -> Pipectr {
7796        <crate::RegValueT<Pipectr_SPEC> as RegisterValue<_>>::new(0)
7797    }
7798}
7799pub mod pipectr {
7800
7801    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7802    pub struct Bsts_SPEC;
7803    pub type Bsts = crate::EnumBitfieldStruct<u8, Bsts_SPEC>;
7804    impl Bsts {
7805        #[doc = "Buffer access is disabled."]
7806        pub const _0: Self = Self::new(0);
7807
7808        #[doc = "Buffer access is enabled."]
7809        pub const _1: Self = Self::new(1);
7810    }
7811    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7812    pub struct Inbufm_SPEC;
7813    pub type Inbufm = crate::EnumBitfieldStruct<u8, Inbufm_SPEC>;
7814    impl Inbufm {
7815        #[doc = "No transmittable data is present in the FIFO buffer."]
7816        pub const _0: Self = Self::new(0);
7817
7818        #[doc = "Transmittable data is present in the FIFO buffer."]
7819        pub const _1: Self = Self::new(1);
7820    }
7821    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7822    pub struct Csclr_SPEC;
7823    pub type Csclr = crate::EnumBitfieldStruct<u8, Csclr_SPEC>;
7824    impl Csclr {
7825        #[doc = "Writing is disabled."]
7826        pub const _0: Self = Self::new(0);
7827
7828        #[doc = "The CSSTS bit is cleared."]
7829        pub const _1: Self = Self::new(1);
7830    }
7831    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7832    pub struct Cssts_SPEC;
7833    pub type Cssts = crate::EnumBitfieldStruct<u8, Cssts_SPEC>;
7834    impl Cssts {
7835        #[doc = "SSplit Transaction processing is in progress or transfer without Split Transaction is in progress."]
7836        pub const _0: Self = Self::new(0);
7837
7838        #[doc = "CSplit Transaction processing is in progress."]
7839        pub const _1: Self = Self::new(1);
7840    }
7841    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7842    pub struct Atrepm_SPEC;
7843    pub type Atrepm = crate::EnumBitfieldStruct<u8, Atrepm_SPEC>;
7844    impl Atrepm {
7845        #[doc = "Auto response mode is disabled."]
7846        pub const _0: Self = Self::new(0);
7847
7848        #[doc = "Auto response mode is enabled (Transmission: zero-length packet response, Reception: NAK response and NRDY interrupt)"]
7849        pub const _1: Self = Self::new(1);
7850    }
7851    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7852    pub struct Aclrm_SPEC;
7853    pub type Aclrm = crate::EnumBitfieldStruct<u8, Aclrm_SPEC>;
7854    impl Aclrm {
7855        #[doc = "Disabled"]
7856        pub const _0: Self = Self::new(0);
7857
7858        #[doc = "Enabled (all buffers are initialized)"]
7859        pub const _1: Self = Self::new(1);
7860    }
7861    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7862    pub struct Sqclr_SPEC;
7863    pub type Sqclr = crate::EnumBitfieldStruct<u8, Sqclr_SPEC>;
7864    impl Sqclr {
7865        #[doc = "Writing is ignored."]
7866        pub const _0: Self = Self::new(0);
7867
7868        #[doc = "Specifies DATA0."]
7869        pub const _1: Self = Self::new(1);
7870    }
7871    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7872    pub struct Sqset_SPEC;
7873    pub type Sqset = crate::EnumBitfieldStruct<u8, Sqset_SPEC>;
7874    impl Sqset {
7875        #[doc = "Writing is ignored."]
7876        pub const _0: Self = Self::new(0);
7877
7878        #[doc = "Specifies DATA1."]
7879        pub const _1: Self = Self::new(1);
7880    }
7881    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7882    pub struct Sqmon_SPEC;
7883    pub type Sqmon = crate::EnumBitfieldStruct<u8, Sqmon_SPEC>;
7884    impl Sqmon {
7885        #[doc = "DATA0"]
7886        pub const _0: Self = Self::new(0);
7887
7888        #[doc = "DATA1"]
7889        pub const _1: Self = Self::new(1);
7890    }
7891    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7892    pub struct Pbusy_SPEC;
7893    pub type Pbusy = crate::EnumBitfieldStruct<u8, Pbusy_SPEC>;
7894    impl Pbusy {
7895        #[doc = "The relevant pipe is not used for the USB bus."]
7896        pub const _0: Self = Self::new(0);
7897
7898        #[doc = "The relevant pipe is in use for the USB bus."]
7899        pub const _1: Self = Self::new(1);
7900    }
7901    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7902    pub struct Pid_SPEC;
7903    pub type Pid = crate::EnumBitfieldStruct<u8, Pid_SPEC>;
7904    impl Pid {
7905        #[doc = "NAK response"]
7906        pub const _00: Self = Self::new(0);
7907
7908        #[doc = "BUF response (depending on buffer state)"]
7909        pub const _01: Self = Self::new(1);
7910
7911        #[doc = "STALL response"]
7912        pub const _10: Self = Self::new(2);
7913
7914        #[doc = "STALL response"]
7915        pub const _11: Self = Self::new(3);
7916    }
7917}
7918#[doc(hidden)]
7919#[derive(Copy, Clone, Eq, PartialEq)]
7920pub struct Pipetre_SPEC;
7921impl crate::sealed::RegSpec for Pipetre_SPEC {
7922    type DataType = u16;
7923}
7924
7925#[doc = "PIPE Transaction Counter Enable Register"]
7926pub type Pipetre = crate::RegValueT<Pipetre_SPEC>;
7927
7928impl Pipetre {
7929    #[doc = "Transaction Counter EnableEnables or disables the transaction counter function."]
7930    #[inline(always)]
7931    pub fn trenb(
7932        self,
7933    ) -> crate::common::RegisterField<
7934        9,
7935        0x1,
7936        1,
7937        0,
7938        pipetre::Trenb,
7939        pipetre::Trenb,
7940        Pipetre_SPEC,
7941        crate::common::RW,
7942    > {
7943        crate::common::RegisterField::<
7944            9,
7945            0x1,
7946            1,
7947            0,
7948            pipetre::Trenb,
7949            pipetre::Trenb,
7950            Pipetre_SPEC,
7951            crate::common::RW,
7952        >::from_register(self, 0)
7953    }
7954
7955    #[doc = "Transaction Counter ClearSetting this bit to 1 allows clearing the transaction counter to 0."]
7956    #[inline(always)]
7957    pub fn trclr(
7958        self,
7959    ) -> crate::common::RegisterField<
7960        8,
7961        0x1,
7962        1,
7963        0,
7964        pipetre::Trclr,
7965        pipetre::Trclr,
7966        Pipetre_SPEC,
7967        crate::common::RW,
7968    > {
7969        crate::common::RegisterField::<
7970            8,
7971            0x1,
7972            1,
7973            0,
7974            pipetre::Trclr,
7975            pipetre::Trclr,
7976            Pipetre_SPEC,
7977            crate::common::RW,
7978        >::from_register(self, 0)
7979    }
7980}
7981impl ::core::default::Default for Pipetre {
7982    #[inline(always)]
7983    fn default() -> Pipetre {
7984        <crate::RegValueT<Pipetre_SPEC> as RegisterValue<_>>::new(0)
7985    }
7986}
7987pub mod pipetre {
7988
7989    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7990    pub struct Trenb_SPEC;
7991    pub type Trenb = crate::EnumBitfieldStruct<u8, Trenb_SPEC>;
7992    impl Trenb {
7993        #[doc = "The transaction counter function is disabled."]
7994        pub const _0: Self = Self::new(0);
7995
7996        #[doc = "The transaction counter function is enabled."]
7997        pub const _1: Self = Self::new(1);
7998    }
7999    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8000    pub struct Trclr_SPEC;
8001    pub type Trclr = crate::EnumBitfieldStruct<u8, Trclr_SPEC>;
8002    impl Trclr {
8003        #[doc = "Invalid"]
8004        pub const _0: Self = Self::new(0);
8005
8006        #[doc = "The current counter value is cleared."]
8007        pub const _1: Self = Self::new(1);
8008    }
8009}
8010#[doc(hidden)]
8011#[derive(Copy, Clone, Eq, PartialEq)]
8012pub struct Pipetrn_SPEC;
8013impl crate::sealed::RegSpec for Pipetrn_SPEC {
8014    type DataType = u16;
8015}
8016
8017#[doc = "PIPE Transaction Counter Register"]
8018pub type Pipetrn = crate::RegValueT<Pipetrn_SPEC>;
8019
8020impl Pipetrn {
8021    #[doc = "Transaction CounterWhen writing to: Specify the number of total packets (number of transactions) to be received by the relevant PIPE.When read from: When TRENB = 0: Indicate the specified number of transactions.When TRENB = 1: Indicate the number of currently counted transactions."]
8022    #[inline(always)]
8023    pub fn trncnt(
8024        self,
8025    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, Pipetrn_SPEC, crate::common::RW>
8026    {
8027        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,Pipetrn_SPEC,crate::common::RW>::from_register(self,0)
8028    }
8029}
8030impl ::core::default::Default for Pipetrn {
8031    #[inline(always)]
8032    fn default() -> Pipetrn {
8033        <crate::RegValueT<Pipetrn_SPEC> as RegisterValue<_>>::new(0)
8034    }
8035}
8036
8037#[doc(hidden)]
8038#[derive(Copy, Clone, Eq, PartialEq)]
8039pub struct Devadd_SPEC;
8040impl crate::sealed::RegSpec for Devadd_SPEC {
8041    type DataType = u16;
8042}
8043
8044#[doc = "Device Address Configuration Register"]
8045pub type Devadd = crate::RegValueT<Devadd_SPEC>;
8046
8047impl Devadd {
8048    #[doc = "Communication Target Connecting Hub Register"]
8049    #[inline(always)]
8050    pub fn upphub(
8051        self,
8052    ) -> crate::common::RegisterField<
8053        11,
8054        0xf,
8055        1,
8056        0,
8057        devadd::Upphub,
8058        devadd::Upphub,
8059        Devadd_SPEC,
8060        crate::common::RW,
8061    > {
8062        crate::common::RegisterField::<
8063            11,
8064            0xf,
8065            1,
8066            0,
8067            devadd::Upphub,
8068            devadd::Upphub,
8069            Devadd_SPEC,
8070            crate::common::RW,
8071        >::from_register(self, 0)
8072    }
8073
8074    #[doc = "Communication Target Connecting Hub Port"]
8075    #[inline(always)]
8076    pub fn hubport(
8077        self,
8078    ) -> crate::common::RegisterField<
8079        8,
8080        0x7,
8081        1,
8082        0,
8083        devadd::Hubport,
8084        devadd::Hubport,
8085        Devadd_SPEC,
8086        crate::common::RW,
8087    > {
8088        crate::common::RegisterField::<
8089            8,
8090            0x7,
8091            1,
8092            0,
8093            devadd::Hubport,
8094            devadd::Hubport,
8095            Devadd_SPEC,
8096            crate::common::RW,
8097        >::from_register(self, 0)
8098    }
8099
8100    #[doc = "Transfer Speed of Communication Target Device"]
8101    #[inline(always)]
8102    pub fn usbspd(
8103        self,
8104    ) -> crate::common::RegisterField<
8105        6,
8106        0x3,
8107        1,
8108        0,
8109        devadd::Usbspd,
8110        devadd::Usbspd,
8111        Devadd_SPEC,
8112        crate::common::RW,
8113    > {
8114        crate::common::RegisterField::<
8115            6,
8116            0x3,
8117            1,
8118            0,
8119            devadd::Usbspd,
8120            devadd::Usbspd,
8121            Devadd_SPEC,
8122            crate::common::RW,
8123        >::from_register(self, 0)
8124    }
8125}
8126impl ::core::default::Default for Devadd {
8127    #[inline(always)]
8128    fn default() -> Devadd {
8129        <crate::RegValueT<Devadd_SPEC> as RegisterValue<_>>::new(0)
8130    }
8131}
8132pub mod devadd {
8133
8134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8135    pub struct Upphub_SPEC;
8136    pub type Upphub = crate::EnumBitfieldStruct<u8, Upphub_SPEC>;
8137    impl Upphub {
8138        #[doc = "Directly connected to the port of the USBHS."]
8139        pub const _0000: Self = Self::new(0);
8140    }
8141    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8142    pub struct Hubport_SPEC;
8143    pub type Hubport = crate::EnumBitfieldStruct<u8, Hubport_SPEC>;
8144    impl Hubport {
8145        #[doc = "Directly connected to the port of the USBHS."]
8146        pub const _000: Self = Self::new(0);
8147    }
8148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8149    pub struct Usbspd_SPEC;
8150    pub type Usbspd = crate::EnumBitfieldStruct<u8, Usbspd_SPEC>;
8151    impl Usbspd {
8152        #[doc = "DEVADDx is not used."]
8153        pub const _00: Self = Self::new(0);
8154
8155        #[doc = "Low speed"]
8156        pub const _01: Self = Self::new(1);
8157
8158        #[doc = "Full speed"]
8159        pub const _10: Self = Self::new(2);
8160
8161        #[doc = "High speed"]
8162        pub const _11: Self = Self::new(3);
8163    }
8164}
8165#[doc(hidden)]
8166#[derive(Copy, Clone, Eq, PartialEq)]
8167pub struct Devadda_SPEC;
8168impl crate::sealed::RegSpec for Devadda_SPEC {
8169    type DataType = u16;
8170}
8171
8172#[doc = "Device Address Configuration Register A"]
8173pub type Devadda = crate::RegValueT<Devadda_SPEC>;
8174
8175impl Devadda {
8176    #[doc = "Communication Target Connecting Hub Register"]
8177    #[inline(always)]
8178    pub fn upphub(
8179        self,
8180    ) -> crate::common::RegisterField<
8181        11,
8182        0xf,
8183        1,
8184        0,
8185        devadda::Upphub,
8186        devadda::Upphub,
8187        Devadda_SPEC,
8188        crate::common::RW,
8189    > {
8190        crate::common::RegisterField::<
8191            11,
8192            0xf,
8193            1,
8194            0,
8195            devadda::Upphub,
8196            devadda::Upphub,
8197            Devadda_SPEC,
8198            crate::common::RW,
8199        >::from_register(self, 0)
8200    }
8201
8202    #[doc = "Communication Target Connecting Hub Port"]
8203    #[inline(always)]
8204    pub fn hubport(
8205        self,
8206    ) -> crate::common::RegisterField<
8207        8,
8208        0x7,
8209        1,
8210        0,
8211        devadda::Hubport,
8212        devadda::Hubport,
8213        Devadda_SPEC,
8214        crate::common::RW,
8215    > {
8216        crate::common::RegisterField::<
8217            8,
8218            0x7,
8219            1,
8220            0,
8221            devadda::Hubport,
8222            devadda::Hubport,
8223            Devadda_SPEC,
8224            crate::common::RW,
8225        >::from_register(self, 0)
8226    }
8227
8228    #[doc = "Transfer Speed of Communication Target Device"]
8229    #[inline(always)]
8230    pub fn usbspd(
8231        self,
8232    ) -> crate::common::RegisterField<
8233        6,
8234        0x3,
8235        1,
8236        0,
8237        devadda::Usbspd,
8238        devadda::Usbspd,
8239        Devadda_SPEC,
8240        crate::common::RW,
8241    > {
8242        crate::common::RegisterField::<
8243            6,
8244            0x3,
8245            1,
8246            0,
8247            devadda::Usbspd,
8248            devadda::Usbspd,
8249            Devadda_SPEC,
8250            crate::common::RW,
8251        >::from_register(self, 0)
8252    }
8253}
8254impl ::core::default::Default for Devadda {
8255    #[inline(always)]
8256    fn default() -> Devadda {
8257        <crate::RegValueT<Devadda_SPEC> as RegisterValue<_>>::new(0)
8258    }
8259}
8260pub mod devadda {
8261
8262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8263    pub struct Upphub_SPEC;
8264    pub type Upphub = crate::EnumBitfieldStruct<u8, Upphub_SPEC>;
8265    impl Upphub {
8266        #[doc = "Directly connected to the port of the USBHS."]
8267        pub const _0000: Self = Self::new(0);
8268    }
8269    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8270    pub struct Hubport_SPEC;
8271    pub type Hubport = crate::EnumBitfieldStruct<u8, Hubport_SPEC>;
8272    impl Hubport {
8273        #[doc = "Directly connected to the port of the USBHS."]
8274        pub const _000: Self = Self::new(0);
8275    }
8276    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8277    pub struct Usbspd_SPEC;
8278    pub type Usbspd = crate::EnumBitfieldStruct<u8, Usbspd_SPEC>;
8279    impl Usbspd {
8280        #[doc = "DEVADDA is not used."]
8281        pub const _00: Self = Self::new(0);
8282
8283        #[doc = "Low speed"]
8284        pub const _01: Self = Self::new(1);
8285
8286        #[doc = "Full speed"]
8287        pub const _10: Self = Self::new(2);
8288
8289        #[doc = "High speed"]
8290        pub const _11: Self = Self::new(3);
8291    }
8292}
8293#[doc(hidden)]
8294#[derive(Copy, Clone, Eq, PartialEq)]
8295pub struct Lpctrl_SPEC;
8296impl crate::sealed::RegSpec for Lpctrl_SPEC {
8297    type DataType = u16;
8298}
8299
8300#[doc = "Low Power Control Register"]
8301pub type Lpctrl = crate::RegValueT<Lpctrl_SPEC>;
8302
8303impl Lpctrl {
8304    #[doc = "Resume Return Mode Setting"]
8305    #[inline(always)]
8306    pub fn hwupm(
8307        self,
8308    ) -> crate::common::RegisterField<
8309        7,
8310        0x1,
8311        1,
8312        0,
8313        lpctrl::Hwupm,
8314        lpctrl::Hwupm,
8315        Lpctrl_SPEC,
8316        crate::common::RW,
8317    > {
8318        crate::common::RegisterField::<
8319            7,
8320            0x1,
8321            1,
8322            0,
8323            lpctrl::Hwupm,
8324            lpctrl::Hwupm,
8325            Lpctrl_SPEC,
8326            crate::common::RW,
8327        >::from_register(self, 0)
8328    }
8329}
8330impl ::core::default::Default for Lpctrl {
8331    #[inline(always)]
8332    fn default() -> Lpctrl {
8333        <crate::RegValueT<Lpctrl_SPEC> as RegisterValue<_>>::new(0)
8334    }
8335}
8336pub mod lpctrl {
8337
8338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8339    pub struct Hwupm_SPEC;
8340    pub type Hwupm = crate::EnumBitfieldStruct<u8, Hwupm_SPEC>;
8341    impl Hwupm {
8342        #[doc = "Hardware does not recover while CPU clock inactive"]
8343        pub const _0: Self = Self::new(0);
8344
8345        #[doc = "Hardware recovers while CPU clock inactive."]
8346        pub const _1: Self = Self::new(1);
8347    }
8348}
8349#[doc(hidden)]
8350#[derive(Copy, Clone, Eq, PartialEq)]
8351pub struct Lpsts_SPEC;
8352impl crate::sealed::RegSpec for Lpsts_SPEC {
8353    type DataType = u16;
8354}
8355
8356#[doc = "Low Power Status Register"]
8357pub type Lpsts = crate::RegValueT<Lpsts_SPEC>;
8358
8359impl Lpsts {
8360    #[doc = "UTMI SuspendM Control"]
8361    #[inline(always)]
8362    pub fn suspendm(
8363        self,
8364    ) -> crate::common::RegisterField<
8365        14,
8366        0x1,
8367        1,
8368        0,
8369        lpsts::Suspendm,
8370        lpsts::Suspendm,
8371        Lpsts_SPEC,
8372        crate::common::RW,
8373    > {
8374        crate::common::RegisterField::<
8375            14,
8376            0x1,
8377            1,
8378            0,
8379            lpsts::Suspendm,
8380            lpsts::Suspendm,
8381            Lpsts_SPEC,
8382            crate::common::RW,
8383        >::from_register(self, 0)
8384    }
8385}
8386impl ::core::default::Default for Lpsts {
8387    #[inline(always)]
8388    fn default() -> Lpsts {
8389        <crate::RegValueT<Lpsts_SPEC> as RegisterValue<_>>::new(0)
8390    }
8391}
8392pub mod lpsts {
8393
8394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8395    pub struct Suspendm_SPEC;
8396    pub type Suspendm = crate::EnumBitfieldStruct<u8, Suspendm_SPEC>;
8397    impl Suspendm {
8398        #[doc = "UTMI suspension mode"]
8399        pub const _0: Self = Self::new(0);
8400
8401        #[doc = "UTMI normal mode"]
8402        pub const _1: Self = Self::new(1);
8403    }
8404}
8405#[doc(hidden)]
8406#[derive(Copy, Clone, Eq, PartialEq)]
8407pub struct Bcctrl_SPEC;
8408impl crate::sealed::RegSpec for Bcctrl_SPEC {
8409    type DataType = u16;
8410}
8411
8412#[doc = "Battery Charging Control Register"]
8413pub type Bcctrl = crate::RegValueT<Bcctrl_SPEC>;
8414
8415impl Bcctrl {
8416    #[doc = "PDDET Status"]
8417    #[inline(always)]
8418    pub fn pddetsts(
8419        self,
8420    ) -> crate::common::RegisterField<
8421        9,
8422        0x1,
8423        1,
8424        0,
8425        bcctrl::Pddetsts,
8426        bcctrl::Pddetsts,
8427        Bcctrl_SPEC,
8428        crate::common::R,
8429    > {
8430        crate::common::RegisterField::<
8431            9,
8432            0x1,
8433            1,
8434            0,
8435            bcctrl::Pddetsts,
8436            bcctrl::Pddetsts,
8437            Bcctrl_SPEC,
8438            crate::common::R,
8439        >::from_register(self, 0)
8440    }
8441
8442    #[doc = "CHGDET Status"]
8443    #[inline(always)]
8444    pub fn chgdetsts(
8445        self,
8446    ) -> crate::common::RegisterField<
8447        8,
8448        0x1,
8449        1,
8450        0,
8451        bcctrl::Chgdetsts,
8452        bcctrl::Chgdetsts,
8453        Bcctrl_SPEC,
8454        crate::common::R,
8455    > {
8456        crate::common::RegisterField::<
8457            8,
8458            0x1,
8459            1,
8460            0,
8461            bcctrl::Chgdetsts,
8462            bcctrl::Chgdetsts,
8463            Bcctrl_SPEC,
8464            crate::common::R,
8465        >::from_register(self, 0)
8466    }
8467
8468    #[doc = "DCP Mode Control"]
8469    #[inline(always)]
8470    pub fn dcpmode(
8471        self,
8472    ) -> crate::common::RegisterField<
8473        5,
8474        0x1,
8475        1,
8476        0,
8477        bcctrl::Dcpmode,
8478        bcctrl::Dcpmode,
8479        Bcctrl_SPEC,
8480        crate::common::RW,
8481    > {
8482        crate::common::RegisterField::<
8483            5,
8484            0x1,
8485            1,
8486            0,
8487            bcctrl::Dcpmode,
8488            bcctrl::Dcpmode,
8489            Bcctrl_SPEC,
8490            crate::common::RW,
8491        >::from_register(self, 0)
8492    }
8493
8494    #[doc = "VDMSRC Control"]
8495    #[inline(always)]
8496    pub fn vdmsrce(
8497        self,
8498    ) -> crate::common::RegisterField<
8499        4,
8500        0x1,
8501        1,
8502        0,
8503        bcctrl::Vdmsrce,
8504        bcctrl::Vdmsrce,
8505        Bcctrl_SPEC,
8506        crate::common::RW,
8507    > {
8508        crate::common::RegisterField::<
8509            4,
8510            0x1,
8511            1,
8512            0,
8513            bcctrl::Vdmsrce,
8514            bcctrl::Vdmsrce,
8515            Bcctrl_SPEC,
8516            crate::common::RW,
8517        >::from_register(self, 0)
8518    }
8519
8520    #[doc = "IDPSINK Control"]
8521    #[inline(always)]
8522    pub fn idpsinke(
8523        self,
8524    ) -> crate::common::RegisterField<
8525        3,
8526        0x1,
8527        1,
8528        0,
8529        bcctrl::Idpsinke,
8530        bcctrl::Idpsinke,
8531        Bcctrl_SPEC,
8532        crate::common::RW,
8533    > {
8534        crate::common::RegisterField::<
8535            3,
8536            0x1,
8537            1,
8538            0,
8539            bcctrl::Idpsinke,
8540            bcctrl::Idpsinke,
8541            Bcctrl_SPEC,
8542            crate::common::RW,
8543        >::from_register(self, 0)
8544    }
8545
8546    #[doc = "VDPSRC Control"]
8547    #[inline(always)]
8548    pub fn vdpsrce(
8549        self,
8550    ) -> crate::common::RegisterField<
8551        2,
8552        0x1,
8553        1,
8554        0,
8555        bcctrl::Vdpsrce,
8556        bcctrl::Vdpsrce,
8557        Bcctrl_SPEC,
8558        crate::common::RW,
8559    > {
8560        crate::common::RegisterField::<
8561            2,
8562            0x1,
8563            1,
8564            0,
8565            bcctrl::Vdpsrce,
8566            bcctrl::Vdpsrce,
8567            Bcctrl_SPEC,
8568            crate::common::RW,
8569        >::from_register(self, 0)
8570    }
8571
8572    #[doc = "IDMSINK Control"]
8573    #[inline(always)]
8574    pub fn idmsinke(
8575        self,
8576    ) -> crate::common::RegisterField<
8577        1,
8578        0x1,
8579        1,
8580        0,
8581        bcctrl::Idmsinke,
8582        bcctrl::Idmsinke,
8583        Bcctrl_SPEC,
8584        crate::common::RW,
8585    > {
8586        crate::common::RegisterField::<
8587            1,
8588            0x1,
8589            1,
8590            0,
8591            bcctrl::Idmsinke,
8592            bcctrl::Idmsinke,
8593            Bcctrl_SPEC,
8594            crate::common::RW,
8595        >::from_register(self, 0)
8596    }
8597
8598    #[doc = "IDPSRC Control"]
8599    #[inline(always)]
8600    pub fn idpsrce(
8601        self,
8602    ) -> crate::common::RegisterField<
8603        0,
8604        0x1,
8605        1,
8606        0,
8607        bcctrl::Idpsrce,
8608        bcctrl::Idpsrce,
8609        Bcctrl_SPEC,
8610        crate::common::RW,
8611    > {
8612        crate::common::RegisterField::<
8613            0,
8614            0x1,
8615            1,
8616            0,
8617            bcctrl::Idpsrce,
8618            bcctrl::Idpsrce,
8619            Bcctrl_SPEC,
8620            crate::common::RW,
8621        >::from_register(self, 0)
8622    }
8623}
8624impl ::core::default::Default for Bcctrl {
8625    #[inline(always)]
8626    fn default() -> Bcctrl {
8627        <crate::RegValueT<Bcctrl_SPEC> as RegisterValue<_>>::new(0)
8628    }
8629}
8630pub mod bcctrl {
8631
8632    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8633    pub struct Pddetsts_SPEC;
8634    pub type Pddetsts = crate::EnumBitfieldStruct<u8, Pddetsts_SPEC>;
8635    impl Pddetsts {
8636        #[doc = "The PDDET pin is at low level."]
8637        pub const _0: Self = Self::new(0);
8638
8639        #[doc = "The PDDET pin is at high level."]
8640        pub const _1: Self = Self::new(1);
8641    }
8642    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8643    pub struct Chgdetsts_SPEC;
8644    pub type Chgdetsts = crate::EnumBitfieldStruct<u8, Chgdetsts_SPEC>;
8645    impl Chgdetsts {
8646        #[doc = "The CHGDET pin is at low level."]
8647        pub const _0: Self = Self::new(0);
8648
8649        #[doc = "The CHGDET pin is at high level."]
8650        pub const _1: Self = Self::new(1);
8651    }
8652    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8653    pub struct Dcpmode_SPEC;
8654    pub type Dcpmode = crate::EnumBitfieldStruct<u8, Dcpmode_SPEC>;
8655    impl Dcpmode {
8656        #[doc = "The RDCP_DAT resistor is disabled"]
8657        pub const _0: Self = Self::new(0);
8658
8659        #[doc = "The RDCP_DAT resistor is enabled."]
8660        pub const _1: Self = Self::new(1);
8661    }
8662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8663    pub struct Vdmsrce_SPEC;
8664    pub type Vdmsrce = crate::EnumBitfieldStruct<u8, Vdmsrce_SPEC>;
8665    impl Vdmsrce {
8666        #[doc = "The VDM_SRC circuit is disabled. (Initial value)"]
8667        pub const _0: Self = Self::new(0);
8668
8669        #[doc = "The VDM_SRC circuit is enabled."]
8670        pub const _1: Self = Self::new(1);
8671    }
8672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8673    pub struct Idpsinke_SPEC;
8674    pub type Idpsinke = crate::EnumBitfieldStruct<u8, Idpsinke_SPEC>;
8675    impl Idpsinke {
8676        #[doc = "The IDP_SINK circuit is disabled. (Initial value)"]
8677        pub const _0: Self = Self::new(0);
8678
8679        #[doc = "The IDP_SINK circuit is enabled."]
8680        pub const _1: Self = Self::new(1);
8681    }
8682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8683    pub struct Vdpsrce_SPEC;
8684    pub type Vdpsrce = crate::EnumBitfieldStruct<u8, Vdpsrce_SPEC>;
8685    impl Vdpsrce {
8686        #[doc = "The VDP_SRC circuit is disabled. (Initial value)"]
8687        pub const _0: Self = Self::new(0);
8688
8689        #[doc = "The VDP_SRC circuit is enabled."]
8690        pub const _1: Self = Self::new(1);
8691    }
8692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8693    pub struct Idmsinke_SPEC;
8694    pub type Idmsinke = crate::EnumBitfieldStruct<u8, Idmsinke_SPEC>;
8695    impl Idmsinke {
8696        #[doc = "The IDM_SINK circuit is disabled. (Initial value)"]
8697        pub const _0: Self = Self::new(0);
8698
8699        #[doc = "The IDM_SINK circuit is enabled."]
8700        pub const _1: Self = Self::new(1);
8701    }
8702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8703    pub struct Idpsrce_SPEC;
8704    pub type Idpsrce = crate::EnumBitfieldStruct<u8, Idpsrce_SPEC>;
8705    impl Idpsrce {
8706        #[doc = "The IDP_SRC circuit is disabled. (Initial value)"]
8707        pub const _0: Self = Self::new(0);
8708
8709        #[doc = "The IDP_SRC circuit is enabled."]
8710        pub const _1: Self = Self::new(1);
8711    }
8712}
8713#[doc(hidden)]
8714#[derive(Copy, Clone, Eq, PartialEq)]
8715pub struct Pl1Ctrl1_SPEC;
8716impl crate::sealed::RegSpec for Pl1Ctrl1_SPEC {
8717    type DataType = u16;
8718}
8719
8720#[doc = "Function L1 Control Register 1"]
8721pub type Pl1Ctrl1 = crate::RegValueT<Pl1Ctrl1_SPEC>;
8722
8723impl Pl1Ctrl1 {
8724    #[doc = "PHY Control Mode at L1 Return"]
8725    #[inline(always)]
8726    pub fn l1extmd(
8727        self,
8728    ) -> crate::common::RegisterField<
8729        14,
8730        0x1,
8731        1,
8732        0,
8733        pl1ctrl1::L1Extmd,
8734        pl1ctrl1::L1Extmd,
8735        Pl1Ctrl1_SPEC,
8736        crate::common::RW,
8737    > {
8738        crate::common::RegisterField::<
8739            14,
8740            0x1,
8741            1,
8742            0,
8743            pl1ctrl1::L1Extmd,
8744            pl1ctrl1::L1Extmd,
8745            Pl1Ctrl1_SPEC,
8746            crate::common::RW,
8747        >::from_register(self, 0)
8748    }
8749
8750    #[doc = "L1 Response Negotiation Threshold ValueHIRD threshold value used for L1NEGOMD.The format is the same as the HIRD field in HL1CTRL."]
8751    #[inline(always)]
8752    pub fn hirdthr(
8753        self,
8754    ) -> crate::common::RegisterField<8, 0xf, 1, 0, u8, u8, Pl1Ctrl1_SPEC, crate::common::RW> {
8755        crate::common::RegisterField::<8,0xf,1,0,u8,u8,Pl1Ctrl1_SPEC,crate::common::RW>::from_register(self,0)
8756    }
8757
8758    #[doc = "DVSQ Extension.DVSQ\\[3\\] is Mirror of DVSQ\\[2:0\\] in INTSTS0.Indicates the L1 state together with the device state bits DVSQ\\[2:0\\]."]
8759    #[inline(always)]
8760    pub fn dvsq(
8761        self,
8762    ) -> crate::common::RegisterField<
8763        4,
8764        0xf,
8765        1,
8766        0,
8767        pl1ctrl1::Dvsq,
8768        pl1ctrl1::Dvsq,
8769        Pl1Ctrl1_SPEC,
8770        crate::common::R,
8771    > {
8772        crate::common::RegisterField::<
8773            4,
8774            0xf,
8775            1,
8776            0,
8777            pl1ctrl1::Dvsq,
8778            pl1ctrl1::Dvsq,
8779            Pl1Ctrl1_SPEC,
8780            crate::common::R,
8781        >::from_register(self, 0)
8782    }
8783
8784    #[doc = "L1 Response Negotiation Control.NOTE: This bit is valid only when the L1RESPMD\\[1:0\\] value is 2\'b11."]
8785    #[inline(always)]
8786    pub fn l1negomd(
8787        self,
8788    ) -> crate::common::RegisterField<
8789        3,
8790        0x1,
8791        1,
8792        0,
8793        pl1ctrl1::L1Negomd,
8794        pl1ctrl1::L1Negomd,
8795        Pl1Ctrl1_SPEC,
8796        crate::common::RW,
8797    > {
8798        crate::common::RegisterField::<
8799            3,
8800            0x1,
8801            1,
8802            0,
8803            pl1ctrl1::L1Negomd,
8804            pl1ctrl1::L1Negomd,
8805            Pl1Ctrl1_SPEC,
8806            crate::common::RW,
8807        >::from_register(self, 0)
8808    }
8809
8810    #[doc = "L1 Response Mode"]
8811    #[inline(always)]
8812    pub fn l1respmd(
8813        self,
8814    ) -> crate::common::RegisterField<
8815        1,
8816        0x3,
8817        1,
8818        0,
8819        pl1ctrl1::L1Respmd,
8820        pl1ctrl1::L1Respmd,
8821        Pl1Ctrl1_SPEC,
8822        crate::common::RW,
8823    > {
8824        crate::common::RegisterField::<
8825            1,
8826            0x3,
8827            1,
8828            0,
8829            pl1ctrl1::L1Respmd,
8830            pl1ctrl1::L1Respmd,
8831            Pl1Ctrl1_SPEC,
8832            crate::common::RW,
8833        >::from_register(self, 0)
8834    }
8835
8836    #[doc = "L1 Response Enable"]
8837    #[inline(always)]
8838    pub fn l1respen(
8839        self,
8840    ) -> crate::common::RegisterField<
8841        0,
8842        0x1,
8843        1,
8844        0,
8845        pl1ctrl1::L1Respen,
8846        pl1ctrl1::L1Respen,
8847        Pl1Ctrl1_SPEC,
8848        crate::common::RW,
8849    > {
8850        crate::common::RegisterField::<
8851            0,
8852            0x1,
8853            1,
8854            0,
8855            pl1ctrl1::L1Respen,
8856            pl1ctrl1::L1Respen,
8857            Pl1Ctrl1_SPEC,
8858            crate::common::RW,
8859        >::from_register(self, 0)
8860    }
8861}
8862impl ::core::default::Default for Pl1Ctrl1 {
8863    #[inline(always)]
8864    fn default() -> Pl1Ctrl1 {
8865        <crate::RegValueT<Pl1Ctrl1_SPEC> as RegisterValue<_>>::new(0)
8866    }
8867}
8868pub mod pl1ctrl1 {
8869
8870    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8871    pub struct L1Extmd_SPEC;
8872    pub type L1Extmd = crate::EnumBitfieldStruct<u8, L1Extmd_SPEC>;
8873    impl L1Extmd {
8874        #[doc = "SUSPENDM is not set by hardware when Host K is received."]
8875        pub const _0: Self = Self::new(0);
8876
8877        #[doc = "SUSPENDM is set by hardware when Host K is received."]
8878        pub const _1: Self = Self::new(1);
8879    }
8880    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8881    pub struct Dvsq_SPEC;
8882    pub type Dvsq = crate::EnumBitfieldStruct<u8, Dvsq_SPEC>;
8883    impl Dvsq {
8884        #[doc = "Powered state"]
8885        pub const _0000: Self = Self::new(0);
8886
8887        #[doc = "Default state"]
8888        pub const _0001: Self = Self::new(1);
8889
8890        #[doc = "Address state"]
8891        pub const _0010: Self = Self::new(2);
8892
8893        #[doc = "Configured state"]
8894        pub const _0011: Self = Self::new(3);
8895
8896        #[doc = "Suspended state"]
8897        pub const _0100: Self = Self::new(4);
8898
8899        #[doc = "Suspended state"]
8900        pub const _0101: Self = Self::new(5);
8901
8902        #[doc = "Suspended state"]
8903        pub const _0110: Self = Self::new(6);
8904
8905        #[doc = "Suspended state"]
8906        pub const _0111: Self = Self::new(7);
8907
8908        #[doc = "L1 state"]
8909        pub const _1000: Self = Self::new(8);
8910
8911        #[doc = "L1 state"]
8912        pub const _1001: Self = Self::new(9);
8913
8914        #[doc = "L1 state"]
8915        pub const _1010: Self = Self::new(10);
8916
8917        #[doc = "L1 state"]
8918        pub const _1011: Self = Self::new(11);
8919    }
8920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8921    pub struct L1Negomd_SPEC;
8922    pub type L1Negomd = crate::EnumBitfieldStruct<u8, L1Negomd_SPEC>;
8923    impl L1Negomd {
8924        #[doc = "When receive HIRD is larger than HIRDTHR\\[3:0\\], ACK response is returned. In other cases (including HIRD = HIRDTHR\\[3:0\\]), NYET response is returned."]
8925        pub const _0: Self = Self::new(0);
8926
8927        #[doc = "When receive HIRD is smaller than HIRDTHR\\[3:0\\], ACK response is returned. In other cases (including HIRD = HIRDTHR\\[3:0\\]), NYET response is returned."]
8928        pub const _1: Self = Self::new(1);
8929    }
8930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8931    pub struct L1Respmd_SPEC;
8932    pub type L1Respmd = crate::EnumBitfieldStruct<u8, L1Respmd_SPEC>;
8933    impl L1Respmd {
8934        #[doc = "NYET"]
8935        pub const _00: Self = Self::new(0);
8936
8937        #[doc = "ACK"]
8938        pub const _01: Self = Self::new(1);
8939
8940        #[doc = "STALL"]
8941        pub const _10: Self = Self::new(2);
8942
8943        #[doc = "According to the L1NEGOMD bit"]
8944        pub const _11: Self = Self::new(3);
8945    }
8946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8947    pub struct L1Respen_SPEC;
8948    pub type L1Respen = crate::EnumBitfieldStruct<u8, L1Respen_SPEC>;
8949    impl L1Respen {
8950        #[doc = "LPM is not supported."]
8951        pub const _0: Self = Self::new(0);
8952
8953        #[doc = "LPM is supported."]
8954        pub const _1: Self = Self::new(1);
8955    }
8956}
8957#[doc(hidden)]
8958#[derive(Copy, Clone, Eq, PartialEq)]
8959pub struct Pl1Ctrl2_SPEC;
8960impl crate::sealed::RegSpec for Pl1Ctrl2_SPEC {
8961    type DataType = u16;
8962}
8963
8964#[doc = "Function L1 Control Register 2"]
8965pub type Pl1Ctrl2 = crate::RegValueT<Pl1Ctrl2_SPEC>;
8966
8967impl Pl1Ctrl2 {
8968    #[doc = "RWE Value Monitor"]
8969    #[inline(always)]
8970    pub fn rwemon(
8971        self,
8972    ) -> crate::common::RegisterField<
8973        12,
8974        0x1,
8975        1,
8976        0,
8977        pl1ctrl2::Rwemon,
8978        pl1ctrl2::Rwemon,
8979        Pl1Ctrl2_SPEC,
8980        crate::common::RW,
8981    > {
8982        crate::common::RegisterField::<
8983            12,
8984            0x1,
8985            1,
8986            0,
8987            pl1ctrl2::Rwemon,
8988            pl1ctrl2::Rwemon,
8989            Pl1Ctrl2_SPEC,
8990            crate::common::RW,
8991        >::from_register(self, 0)
8992    }
8993
8994    #[doc = "HIRD Value Monitor"]
8995    #[inline(always)]
8996    pub fn hirdmon(
8997        self,
8998    ) -> crate::common::RegisterField<
8999        8,
9000        0xf,
9001        1,
9002        0,
9003        pl1ctrl2::Hirdmon,
9004        pl1ctrl2::Hirdmon,
9005        Pl1Ctrl2_SPEC,
9006        crate::common::RW,
9007    > {
9008        crate::common::RegisterField::<
9009            8,
9010            0xf,
9011            1,
9012            0,
9013            pl1ctrl2::Hirdmon,
9014            pl1ctrl2::Hirdmon,
9015            Pl1Ctrl2_SPEC,
9016            crate::common::RW,
9017        >::from_register(self, 0)
9018    }
9019}
9020impl ::core::default::Default for Pl1Ctrl2 {
9021    #[inline(always)]
9022    fn default() -> Pl1Ctrl2 {
9023        <crate::RegValueT<Pl1Ctrl2_SPEC> as RegisterValue<_>>::new(0)
9024    }
9025}
9026pub mod pl1ctrl2 {
9027
9028    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9029    pub struct Rwemon_SPEC;
9030    pub type Rwemon = crate::EnumBitfieldStruct<u8, Rwemon_SPEC>;
9031    impl Rwemon {
9032        #[doc = "The RWE bit value of the LPM token received last is reflected."]
9033        pub const _0: Self = Self::new(0);
9034
9035        #[doc = "The RWE bit value of the LPM token received last is reflected."]
9036        pub const _1: Self = Self::new(1);
9037    }
9038    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9039    pub struct Hirdmon_SPEC;
9040    pub type Hirdmon = crate::EnumBitfieldStruct<u8, Hirdmon_SPEC>;
9041    impl Hirdmon {
9042        #[doc = "The HIRD field value of the LPM token received last is reflected."]
9043        pub const _0: Self = Self::new(0);
9044
9045        #[doc = "The HIRD field value of the LPM token received last is reflected."]
9046        pub const _1: Self = Self::new(1);
9047    }
9048}
9049#[doc(hidden)]
9050#[derive(Copy, Clone, Eq, PartialEq)]
9051pub struct Hl1Ctrl1_SPEC;
9052impl crate::sealed::RegSpec for Hl1Ctrl1_SPEC {
9053    type DataType = u16;
9054}
9055
9056#[doc = "Host L1 Control Register 1"]
9057pub type Hl1Ctrl1 = crate::RegValueT<Hl1Ctrl1_SPEC>;
9058
9059impl Hl1Ctrl1 {
9060    #[doc = "L1 Request Completion Status"]
9061    #[inline(always)]
9062    pub fn l1status(
9063        self,
9064    ) -> crate::common::RegisterField<
9065        1,
9066        0x3,
9067        1,
9068        0,
9069        hl1ctrl1::L1Status,
9070        hl1ctrl1::L1Status,
9071        Hl1Ctrl1_SPEC,
9072        crate::common::R,
9073    > {
9074        crate::common::RegisterField::<
9075            1,
9076            0x3,
9077            1,
9078            0,
9079            hl1ctrl1::L1Status,
9080            hl1ctrl1::L1Status,
9081            Hl1Ctrl1_SPEC,
9082            crate::common::R,
9083        >::from_register(self, 0)
9084    }
9085
9086    #[doc = "L1 Transition Request"]
9087    #[inline(always)]
9088    pub fn l1req(
9089        self,
9090    ) -> crate::common::RegisterField<
9091        0,
9092        0x1,
9093        1,
9094        0,
9095        hl1ctrl1::L1Req,
9096        hl1ctrl1::L1Req,
9097        Hl1Ctrl1_SPEC,
9098        crate::common::RW,
9099    > {
9100        crate::common::RegisterField::<
9101            0,
9102            0x1,
9103            1,
9104            0,
9105            hl1ctrl1::L1Req,
9106            hl1ctrl1::L1Req,
9107            Hl1Ctrl1_SPEC,
9108            crate::common::RW,
9109        >::from_register(self, 0)
9110    }
9111}
9112impl ::core::default::Default for Hl1Ctrl1 {
9113    #[inline(always)]
9114    fn default() -> Hl1Ctrl1 {
9115        <crate::RegValueT<Hl1Ctrl1_SPEC> as RegisterValue<_>>::new(0)
9116    }
9117}
9118pub mod hl1ctrl1 {
9119
9120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9121    pub struct L1Status_SPEC;
9122    pub type L1Status = crate::EnumBitfieldStruct<u8, L1Status_SPEC>;
9123    impl L1Status {
9124        #[doc = "ACK received"]
9125        pub const _00: Self = Self::new(0);
9126
9127        #[doc = "NYET received"]
9128        pub const _01: Self = Self::new(1);
9129
9130        #[doc = "STALL received"]
9131        pub const _10: Self = Self::new(2);
9132
9133        #[doc = "Transaction error"]
9134        pub const _11: Self = Self::new(3);
9135    }
9136    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9137    pub struct L1Req_SPEC;
9138    pub type L1Req = crate::EnumBitfieldStruct<u8, L1Req_SPEC>;
9139    impl L1Req {
9140        #[doc = "This bit is cleared to 0 by hardware when the LPM transaction is completed."]
9141        pub const _0: Self = Self::new(0);
9142
9143        #[doc = "Set this bit to 1 when requesting a transition to the L1 state."]
9144        pub const _1: Self = Self::new(1);
9145    }
9146}
9147#[doc(hidden)]
9148#[derive(Copy, Clone, Eq, PartialEq)]
9149pub struct Hl1Ctrl2_SPEC;
9150impl crate::sealed::RegSpec for Hl1Ctrl2_SPEC {
9151    type DataType = u16;
9152}
9153
9154#[doc = "Host L1 Control Register 2"]
9155pub type Hl1Ctrl2 = crate::RegValueT<Hl1Ctrl2_SPEC>;
9156
9157impl Hl1Ctrl2 {
9158    #[doc = "BESL & Alternate HIRDThis bit selects the K-State drive period at the time of L1 Resume."]
9159    #[inline(always)]
9160    pub fn besl(
9161        self,
9162    ) -> crate::common::RegisterFieldBool<15, 1, 0, Hl1Ctrl2_SPEC, crate::common::RW> {
9163        crate::common::RegisterFieldBool::<15,1,0,Hl1Ctrl2_SPEC,crate::common::RW>::from_register(self,0)
9164    }
9165
9166    #[doc = "LPM Token L1 RemoteWake EnableThese bits specify the value to be set in the RWE field of LPM token."]
9167    #[inline(always)]
9168    pub fn l1rwe(
9169        self,
9170    ) -> crate::common::RegisterFieldBool<12, 1, 0, Hl1Ctrl2_SPEC, crate::common::RW> {
9171        crate::common::RegisterFieldBool::<12,1,0,Hl1Ctrl2_SPEC,crate::common::RW>::from_register(self,0)
9172    }
9173
9174    #[doc = "LPM Token HIRD"]
9175    #[inline(always)]
9176    pub fn hird(
9177        self,
9178    ) -> crate::common::RegisterField<
9179        8,
9180        0xf,
9181        1,
9182        0,
9183        hl1ctrl2::Hird,
9184        hl1ctrl2::Hird,
9185        Hl1Ctrl2_SPEC,
9186        crate::common::RW,
9187    > {
9188        crate::common::RegisterField::<
9189            8,
9190            0xf,
9191            1,
9192            0,
9193            hl1ctrl2::Hird,
9194            hl1ctrl2::Hird,
9195            Hl1Ctrl2_SPEC,
9196            crate::common::RW,
9197        >::from_register(self, 0)
9198    }
9199
9200    #[doc = "LPM Token DeviceAddressThese bits specify the value to be set in the ADDR field of LPM token."]
9201    #[inline(always)]
9202    pub fn l1addr(
9203        self,
9204    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, Hl1Ctrl2_SPEC, crate::common::RW> {
9205        crate::common::RegisterField::<0,0xf,1,0,u8,u8,Hl1Ctrl2_SPEC,crate::common::RW>::from_register(self,0)
9206    }
9207}
9208impl ::core::default::Default for Hl1Ctrl2 {
9209    #[inline(always)]
9210    fn default() -> Hl1Ctrl2 {
9211        <crate::RegValueT<Hl1Ctrl2_SPEC> as RegisterValue<_>>::new(0)
9212    }
9213}
9214pub mod hl1ctrl2 {
9215
9216    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9217    pub struct Hird_SPEC;
9218    pub type Hird = crate::EnumBitfieldStruct<u8, Hird_SPEC>;
9219    impl Hird {
9220        #[doc = "50 us(Setting prohibited(BESL = 0)) / 75 us(BESL = 1)"]
9221        pub const _0000: Self = Self::new(0);
9222
9223        #[doc = "125 us(BESL = 0) / 100 us(BESL = 1)"]
9224        pub const _0001: Self = Self::new(1);
9225
9226        #[doc = "200 us(BESL = 0) / 150 us(BESL = 1)"]
9227        pub const _0010: Self = Self::new(2);
9228
9229        #[doc = "275 us(BESL = 0) / 250 us(BESL = 1)"]
9230        pub const _0011: Self = Self::new(3);
9231
9232        #[doc = "350 us(BESL = 0) / 350 us(BESL = 1)"]
9233        pub const _0100: Self = Self::new(4);
9234
9235        #[doc = "425 us(BESL = 0) / 450 us(BESL = 1)"]
9236        pub const _0101: Self = Self::new(5);
9237
9238        #[doc = "500 us(BESL = 0) / 950 us(BESL = 1)"]
9239        pub const _0110: Self = Self::new(6);
9240
9241        #[doc = "575 us(BESL = 0) / 1950 us(BESL = 1)"]
9242        pub const _0111: Self = Self::new(7);
9243
9244        #[doc = "650 us(BESL = 0) / 2950 us(BESL = 1)"]
9245        pub const _1000: Self = Self::new(8);
9246
9247        #[doc = "725 us(BESL = 0) / 3950 us(BESL = 1)"]
9248        pub const _1001: Self = Self::new(9);
9249
9250        #[doc = "800 us(BESL = 0) / 4950 us(BESL = 1)"]
9251        pub const _1010: Self = Self::new(10);
9252
9253        #[doc = "875 us(BESL = 0) / 5950 us(BESL = 1)"]
9254        pub const _1011: Self = Self::new(11);
9255
9256        #[doc = "950 us(BESL = 0) / 6950 us(BESL = 1)"]
9257        pub const _1100: Self = Self::new(12);
9258
9259        #[doc = "1025 us(Setting prohibited(BESL = 0)) / 7950 us(BESL = 1)"]
9260        pub const _1101: Self = Self::new(13);
9261
9262        #[doc = "1100 us(Setting prohibited(BESL = 0)) / 8950 us(BESL = 1)"]
9263        pub const _1110: Self = Self::new(14);
9264
9265        #[doc = "1175 us(Setting prohibited(BESL = 0)) / 9950 us(BESL = 1)"]
9266        pub const _1111: Self = Self::new(15);
9267    }
9268}
9269#[doc(hidden)]
9270#[derive(Copy, Clone, Eq, PartialEq)]
9271pub struct Dpusr0R_SPEC;
9272impl crate::sealed::RegSpec for Dpusr0R_SPEC {
9273    type DataType = u32;
9274}
9275
9276#[doc = "Deep Standby USB Transceiver Control/Pin Monitor Register"]
9277pub type Dpusr0R = crate::RegValueT<Dpusr0R_SPEC>;
9278
9279impl Dpusr0R {
9280    #[doc = "VBUS InputIndicates VBUS input signal on the HS side of USB port."]
9281    #[inline(always)]
9282    pub fn dvbstshm(
9283        self,
9284    ) -> crate::common::RegisterFieldBool<23, 1, 0, Dpusr0R_SPEC, crate::common::R> {
9285        crate::common::RegisterFieldBool::<23, 1, 0, Dpusr0R_SPEC, crate::common::R>::from_register(
9286            self, 0,
9287        )
9288    }
9289
9290    #[doc = "OVRCURB InputIndicates OVRCURB input signal on the HS side of USB port."]
9291    #[inline(always)]
9292    pub fn dovcbhm(
9293        self,
9294    ) -> crate::common::RegisterFieldBool<21, 1, 0, Dpusr0R_SPEC, crate::common::R> {
9295        crate::common::RegisterFieldBool::<21, 1, 0, Dpusr0R_SPEC, crate::common::R>::from_register(
9296            self, 0,
9297        )
9298    }
9299
9300    #[doc = "OVRCURA InputIndicates OVRCURA input signal on the HS side of USB port."]
9301    #[inline(always)]
9302    pub fn dovcahm(
9303        self,
9304    ) -> crate::common::RegisterFieldBool<20, 1, 0, Dpusr0R_SPEC, crate::common::R> {
9305        crate::common::RegisterFieldBool::<20, 1, 0, Dpusr0R_SPEC, crate::common::R>::from_register(
9306            self, 0,
9307        )
9308    }
9309}
9310impl ::core::default::Default for Dpusr0R {
9311    #[inline(always)]
9312    fn default() -> Dpusr0R {
9313        <crate::RegValueT<Dpusr0R_SPEC> as RegisterValue<_>>::new(0)
9314    }
9315}
9316
9317#[doc(hidden)]
9318#[derive(Copy, Clone, Eq, PartialEq)]
9319pub struct Dpusr1R_SPEC;
9320impl crate::sealed::RegSpec for Dpusr1R_SPEC {
9321    type DataType = u32;
9322}
9323
9324#[doc = "Deep Standby USB Suspend/Resume Interrupt Register"]
9325pub type Dpusr1R = crate::RegValueT<Dpusr1R_SPEC>;
9326
9327impl Dpusr1R {
9328    #[doc = "Indication of Return from VBUS Interrupt Source"]
9329    #[inline(always)]
9330    pub fn dvbstsh(
9331        self,
9332    ) -> crate::common::RegisterField<
9333        23,
9334        0x1,
9335        1,
9336        0,
9337        dpusr1r::Dvbstsh,
9338        dpusr1r::Dvbstsh,
9339        Dpusr1R_SPEC,
9340        crate::common::R,
9341    > {
9342        crate::common::RegisterField::<
9343            23,
9344            0x1,
9345            1,
9346            0,
9347            dpusr1r::Dvbstsh,
9348            dpusr1r::Dvbstsh,
9349            Dpusr1R_SPEC,
9350            crate::common::R,
9351        >::from_register(self, 0)
9352    }
9353
9354    #[doc = "Indication of Return from OVRCURB Interrupt Source"]
9355    #[inline(always)]
9356    pub fn dovcbh(
9357        self,
9358    ) -> crate::common::RegisterField<
9359        21,
9360        0x1,
9361        1,
9362        0,
9363        dpusr1r::Dovcbh,
9364        dpusr1r::Dovcbh,
9365        Dpusr1R_SPEC,
9366        crate::common::R,
9367    > {
9368        crate::common::RegisterField::<
9369            21,
9370            0x1,
9371            1,
9372            0,
9373            dpusr1r::Dovcbh,
9374            dpusr1r::Dovcbh,
9375            Dpusr1R_SPEC,
9376            crate::common::R,
9377        >::from_register(self, 0)
9378    }
9379
9380    #[doc = "Indication of Return from OVRCURA Interrupt Source"]
9381    #[inline(always)]
9382    pub fn dovcah(
9383        self,
9384    ) -> crate::common::RegisterField<
9385        20,
9386        0x1,
9387        1,
9388        0,
9389        dpusr1r::Dovcah,
9390        dpusr1r::Dovcah,
9391        Dpusr1R_SPEC,
9392        crate::common::R,
9393    > {
9394        crate::common::RegisterField::<
9395            20,
9396            0x1,
9397            1,
9398            0,
9399            dpusr1r::Dovcah,
9400            dpusr1r::Dovcah,
9401            Dpusr1R_SPEC,
9402            crate::common::R,
9403        >::from_register(self, 0)
9404    }
9405
9406    #[doc = "VBUS Interrupt Enable/Clear"]
9407    #[inline(always)]
9408    pub fn dvbstshe(
9409        self,
9410    ) -> crate::common::RegisterField<
9411        7,
9412        0x1,
9413        1,
9414        0,
9415        dpusr1r::Dvbstshe,
9416        dpusr1r::Dvbstshe,
9417        Dpusr1R_SPEC,
9418        crate::common::RW,
9419    > {
9420        crate::common::RegisterField::<
9421            7,
9422            0x1,
9423            1,
9424            0,
9425            dpusr1r::Dvbstshe,
9426            dpusr1r::Dvbstshe,
9427            Dpusr1R_SPEC,
9428            crate::common::RW,
9429        >::from_register(self, 0)
9430    }
9431
9432    #[doc = "OVRCURB Interrupt Enable Clear"]
9433    #[inline(always)]
9434    pub fn dovcbhe(
9435        self,
9436    ) -> crate::common::RegisterField<
9437        5,
9438        0x1,
9439        1,
9440        0,
9441        dpusr1r::Dovcbhe,
9442        dpusr1r::Dovcbhe,
9443        Dpusr1R_SPEC,
9444        crate::common::RW,
9445    > {
9446        crate::common::RegisterField::<
9447            5,
9448            0x1,
9449            1,
9450            0,
9451            dpusr1r::Dovcbhe,
9452            dpusr1r::Dovcbhe,
9453            Dpusr1R_SPEC,
9454            crate::common::RW,
9455        >::from_register(self, 0)
9456    }
9457
9458    #[doc = "OVRCURA Interrupt Enable Clear"]
9459    #[inline(always)]
9460    pub fn dovcahe(
9461        self,
9462    ) -> crate::common::RegisterField<
9463        4,
9464        0x1,
9465        1,
9466        0,
9467        dpusr1r::Dovcahe,
9468        dpusr1r::Dovcahe,
9469        Dpusr1R_SPEC,
9470        crate::common::RW,
9471    > {
9472        crate::common::RegisterField::<
9473            4,
9474            0x1,
9475            1,
9476            0,
9477            dpusr1r::Dovcahe,
9478            dpusr1r::Dovcahe,
9479            Dpusr1R_SPEC,
9480            crate::common::RW,
9481        >::from_register(self, 0)
9482    }
9483}
9484impl ::core::default::Default for Dpusr1R {
9485    #[inline(always)]
9486    fn default() -> Dpusr1R {
9487        <crate::RegValueT<Dpusr1R_SPEC> as RegisterValue<_>>::new(0)
9488    }
9489}
9490pub mod dpusr1r {
9491
9492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9493    pub struct Dvbstsh_SPEC;
9494    pub type Dvbstsh = crate::EnumBitfieldStruct<u8, Dvbstsh_SPEC>;
9495    impl Dvbstsh {
9496        #[doc = "Indicates deep software standby mode"]
9497        pub const _0: Self = Self::new(0);
9498
9499        #[doc = "Indicates return from deep software standby mode"]
9500        pub const _1: Self = Self::new(1);
9501    }
9502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9503    pub struct Dovcbh_SPEC;
9504    pub type Dovcbh = crate::EnumBitfieldStruct<u8, Dovcbh_SPEC>;
9505    impl Dovcbh {
9506        #[doc = "Indicates deep software standby mode"]
9507        pub const _0: Self = Self::new(0);
9508
9509        #[doc = "Indicates return from deep software standby mode"]
9510        pub const _1: Self = Self::new(1);
9511    }
9512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9513    pub struct Dovcah_SPEC;
9514    pub type Dovcah = crate::EnumBitfieldStruct<u8, Dovcah_SPEC>;
9515    impl Dovcah {
9516        #[doc = "Indicates deep software standby mode"]
9517        pub const _0: Self = Self::new(0);
9518
9519        #[doc = "Indicates return from deep software standby mode"]
9520        pub const _1: Self = Self::new(1);
9521    }
9522    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9523    pub struct Dvbstshe_SPEC;
9524    pub type Dvbstshe = crate::EnumBitfieldStruct<u8, Dvbstshe_SPEC>;
9525    impl Dvbstshe {
9526        #[doc = "Disables return from deep software standby mode"]
9527        pub const _0: Self = Self::new(0);
9528
9529        #[doc = "Enables return from deep software standby mode"]
9530        pub const _1: Self = Self::new(1);
9531    }
9532    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9533    pub struct Dovcbhe_SPEC;
9534    pub type Dovcbhe = crate::EnumBitfieldStruct<u8, Dovcbhe_SPEC>;
9535    impl Dovcbhe {
9536        #[doc = "Disables return from deep software standby mode"]
9537        pub const _0: Self = Self::new(0);
9538
9539        #[doc = "Enables return from deep software standby mode"]
9540        pub const _1: Self = Self::new(1);
9541    }
9542    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9543    pub struct Dovcahe_SPEC;
9544    pub type Dovcahe = crate::EnumBitfieldStruct<u8, Dovcahe_SPEC>;
9545    impl Dovcahe {
9546        #[doc = "Disables return from deep software standby mode"]
9547        pub const _0: Self = Self::new(0);
9548
9549        #[doc = "Enables return from deep software standby mode"]
9550        pub const _1: Self = Self::new(1);
9551    }
9552}
9553#[doc(hidden)]
9554#[derive(Copy, Clone, Eq, PartialEq)]
9555pub struct Dpusr2R_SPEC;
9556impl crate::sealed::RegSpec for Dpusr2R_SPEC {
9557    type DataType = u16;
9558}
9559
9560#[doc = "Deep Standby USB Suspend/Resume Interrupt Register"]
9561pub type Dpusr2R = crate::RegValueT<Dpusr2R_SPEC>;
9562
9563impl Dpusr2R {
9564    #[doc = "DM Interrupt Enable Clear"]
9565    #[inline(always)]
9566    pub fn dminte(
9567        self,
9568    ) -> crate::common::RegisterField<
9569        9,
9570        0x1,
9571        1,
9572        0,
9573        dpusr2r::Dminte,
9574        dpusr2r::Dminte,
9575        Dpusr2R_SPEC,
9576        crate::common::RW,
9577    > {
9578        crate::common::RegisterField::<
9579            9,
9580            0x1,
9581            1,
9582            0,
9583            dpusr2r::Dminte,
9584            dpusr2r::Dminte,
9585            Dpusr2R_SPEC,
9586            crate::common::RW,
9587        >::from_register(self, 0)
9588    }
9589
9590    #[doc = "DP Interrupt Enable Clear"]
9591    #[inline(always)]
9592    pub fn dpinte(
9593        self,
9594    ) -> crate::common::RegisterField<
9595        8,
9596        0x1,
9597        1,
9598        0,
9599        dpusr2r::Dpinte,
9600        dpusr2r::Dpinte,
9601        Dpusr2R_SPEC,
9602        crate::common::RW,
9603    > {
9604        crate::common::RegisterField::<
9605            8,
9606            0x1,
9607            1,
9608            0,
9609            dpusr2r::Dpinte,
9610            dpusr2r::Dpinte,
9611            Dpusr2R_SPEC,
9612            crate::common::RW,
9613        >::from_register(self, 0)
9614    }
9615
9616    #[doc = "DM InputIndicates DM input signal on the HS side of USB port."]
9617    #[inline(always)]
9618    pub fn dmval(
9619        self,
9620    ) -> crate::common::RegisterFieldBool<5, 1, 0, Dpusr2R_SPEC, crate::common::R> {
9621        crate::common::RegisterFieldBool::<5, 1, 0, Dpusr2R_SPEC, crate::common::R>::from_register(
9622            self, 0,
9623        )
9624    }
9625
9626    #[doc = "DP InputIndicates DP input signal on the HS side of USB port."]
9627    #[inline(always)]
9628    pub fn dpval(
9629        self,
9630    ) -> crate::common::RegisterFieldBool<4, 1, 0, Dpusr2R_SPEC, crate::common::R> {
9631        crate::common::RegisterFieldBool::<4, 1, 0, Dpusr2R_SPEC, crate::common::R>::from_register(
9632            self, 0,
9633        )
9634    }
9635
9636    #[doc = "Indication of Return from DM Interrupt Source"]
9637    #[inline(always)]
9638    pub fn dmint(
9639        self,
9640    ) -> crate::common::RegisterField<
9641        1,
9642        0x1,
9643        1,
9644        0,
9645        dpusr2r::Dmint,
9646        dpusr2r::Dmint,
9647        Dpusr2R_SPEC,
9648        crate::common::R,
9649    > {
9650        crate::common::RegisterField::<
9651            1,
9652            0x1,
9653            1,
9654            0,
9655            dpusr2r::Dmint,
9656            dpusr2r::Dmint,
9657            Dpusr2R_SPEC,
9658            crate::common::R,
9659        >::from_register(self, 0)
9660    }
9661
9662    #[doc = "Indication of Return from DP Interrupt Source"]
9663    #[inline(always)]
9664    pub fn dpint(
9665        self,
9666    ) -> crate::common::RegisterField<
9667        0,
9668        0x1,
9669        1,
9670        0,
9671        dpusr2r::Dpint,
9672        dpusr2r::Dpint,
9673        Dpusr2R_SPEC,
9674        crate::common::R,
9675    > {
9676        crate::common::RegisterField::<
9677            0,
9678            0x1,
9679            1,
9680            0,
9681            dpusr2r::Dpint,
9682            dpusr2r::Dpint,
9683            Dpusr2R_SPEC,
9684            crate::common::R,
9685        >::from_register(self, 0)
9686    }
9687}
9688impl ::core::default::Default for Dpusr2R {
9689    #[inline(always)]
9690    fn default() -> Dpusr2R {
9691        <crate::RegValueT<Dpusr2R_SPEC> as RegisterValue<_>>::new(0)
9692    }
9693}
9694pub mod dpusr2r {
9695
9696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9697    pub struct Dminte_SPEC;
9698    pub type Dminte = crate::EnumBitfieldStruct<u8, Dminte_SPEC>;
9699    impl Dminte {
9700        #[doc = "Disables return from deep software standby mode"]
9701        pub const _0: Self = Self::new(0);
9702
9703        #[doc = "Enables return from deep software standby mode"]
9704        pub const _1: Self = Self::new(1);
9705    }
9706    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9707    pub struct Dpinte_SPEC;
9708    pub type Dpinte = crate::EnumBitfieldStruct<u8, Dpinte_SPEC>;
9709    impl Dpinte {
9710        #[doc = "Disables return from deep software standby mode"]
9711        pub const _0: Self = Self::new(0);
9712
9713        #[doc = "Enables return from deep software standby mode"]
9714        pub const _1: Self = Self::new(1);
9715    }
9716    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9717    pub struct Dmint_SPEC;
9718    pub type Dmint = crate::EnumBitfieldStruct<u8, Dmint_SPEC>;
9719    impl Dmint {
9720        #[doc = "Indicates deep software standby mode"]
9721        pub const _0: Self = Self::new(0);
9722
9723        #[doc = "Indicates return from deep software standby mode"]
9724        pub const _1: Self = Self::new(1);
9725    }
9726    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9727    pub struct Dpint_SPEC;
9728    pub type Dpint = crate::EnumBitfieldStruct<u8, Dpint_SPEC>;
9729    impl Dpint {
9730        #[doc = "Indicates deep software standby mode"]
9731        pub const _0: Self = Self::new(0);
9732
9733        #[doc = "Indicates return from deep software standby mode"]
9734        pub const _1: Self = Self::new(1);
9735    }
9736}
9737#[doc(hidden)]
9738#[derive(Copy, Clone, Eq, PartialEq)]
9739pub struct Dpusrcr_SPEC;
9740impl crate::sealed::RegSpec for Dpusrcr_SPEC {
9741    type DataType = u16;
9742}
9743
9744#[doc = "Deep Standby USB Suspend/Resume Command Register"]
9745pub type Dpusrcr = crate::RegValueT<Dpusrcr_SPEC>;
9746
9747impl Dpusrcr {
9748    #[doc = "USB Transceiver Control Fix for PLL"]
9749    #[inline(always)]
9750    pub fn fixphypd(
9751        self,
9752    ) -> crate::common::RegisterField<
9753        1,
9754        0x1,
9755        1,
9756        0,
9757        dpusrcr::Fixphypd,
9758        dpusrcr::Fixphypd,
9759        Dpusrcr_SPEC,
9760        crate::common::RW,
9761    > {
9762        crate::common::RegisterField::<
9763            1,
9764            0x1,
9765            1,
9766            0,
9767            dpusrcr::Fixphypd,
9768            dpusrcr::Fixphypd,
9769            Dpusrcr_SPEC,
9770            crate::common::RW,
9771        >::from_register(self, 0)
9772    }
9773
9774    #[doc = "USB Transceiver Control Fix"]
9775    #[inline(always)]
9776    pub fn fixphy(
9777        self,
9778    ) -> crate::common::RegisterField<
9779        0,
9780        0x1,
9781        1,
9782        0,
9783        dpusrcr::Fixphy,
9784        dpusrcr::Fixphy,
9785        Dpusrcr_SPEC,
9786        crate::common::RW,
9787    > {
9788        crate::common::RegisterField::<
9789            0,
9790            0x1,
9791            1,
9792            0,
9793            dpusrcr::Fixphy,
9794            dpusrcr::Fixphy,
9795            Dpusrcr_SPEC,
9796            crate::common::RW,
9797        >::from_register(self, 0)
9798    }
9799}
9800impl ::core::default::Default for Dpusrcr {
9801    #[inline(always)]
9802    fn default() -> Dpusrcr {
9803        <crate::RegValueT<Dpusrcr_SPEC> as RegisterValue<_>>::new(0)
9804    }
9805}
9806pub mod dpusrcr {
9807
9808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9809    pub struct Fixphypd_SPEC;
9810    pub type Fixphypd = crate::EnumBitfieldStruct<u8, Fixphypd_SPEC>;
9811    impl Fixphypd {
9812        #[doc = "Normal mode"]
9813        pub const _0: Self = Self::new(0);
9814
9815        #[doc = "Go to/Return from deep software standby mode"]
9816        pub const _1: Self = Self::new(1);
9817    }
9818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9819    pub struct Fixphy_SPEC;
9820    pub type Fixphy = crate::EnumBitfieldStruct<u8, Fixphy_SPEC>;
9821    impl Fixphy {
9822        #[doc = "Normal mode"]
9823        pub const _0: Self = Self::new(0);
9824
9825        #[doc = "Go to/Return from deep software standby mode"]
9826        pub const _1: Self = Self::new(1);
9827    }
9828}