1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5 gotgctl: GOTGCTL,
6 gotgint: GOTGINT,
7 gahbcfg: GAHBCFG,
8 gusbcfg: GUSBCFG,
9 grstctl: GRSTCTL,
10 gintsts: GINTSTS,
11 gintmsk: GINTMSK,
12 grxstsr: GRXSTSR,
13 grxstsp: GRXSTSP,
14 grxfsiz: GRXFSIZ,
15 gnptxfsiz: GNPTXFSIZ,
16 gnptxsts: GNPTXSTS,
17 _reserved12: [u8; 0x10],
18 gsnpsid: GSNPSID,
19 ghwcfg1: GHWCFG1,
20 ghwcfg2: GHWCFG2,
21 ghwcfg3: GHWCFG3,
22 ghwcfg4: GHWCFG4,
23 _reserved17: [u8; 0x08],
24 gdfifocfg: GDFIFOCFG,
25 _reserved18: [u8; 0xa0],
26 hptxfsiz: HPTXFSIZ,
27 dieptxf: [DIEPTXF; 4],
28 _reserved20: [u8; 0x02ec],
29 hcfg: HCFG,
30 hfir: HFIR,
31 hfnum: HFNUM,
32 _reserved23: [u8; 0x04],
33 hptxsts: HPTXSTS,
34 haint: HAINT,
35 haintmsk: HAINTMSK,
36 hflbaddr: HFLBADDR,
37 _reserved27: [u8; 0x20],
38 hprt: HPRT,
39 _reserved28: [u8; 0xbc],
40 hc: [HC; 8],
41 _reserved29: [u8; 0x0200],
42 dcfg: DCFG,
43 dctl: DCTL,
44 dsts: DSTS,
45 _reserved32: [u8; 0x04],
46 diepmsk: DIEPMSK,
47 doepmsk: DOEPMSK,
48 daint: DAINT,
49 daintmsk: DAINTMSK,
50 _reserved36: [u8; 0x08],
51 dvbusdis: DVBUSDIS,
52 dvbuspulse: DVBUSPULSE,
53 dthrctl: DTHRCTL,
54 diepempmsk: DIEPEMPMSK,
55 _reserved40: [u8; 0xc8],
56 in_ep0: IN_EP0,
57 in_ep: [IN_EP; 6],
58 _reserved42: [u8; 0x0120],
59 out_ep0: OUT_EP0,
60 out_ep: [OUT_EP; 6],
61 _reserved44: [u8; 0x0220],
62 pcgcctl: PCGCCTL,
63 _reserved45: [u8; 0x01fc],
64 fifo: (),
65}
66impl RegisterBlock {
67 #[doc = "0x00 - "]
68 #[inline(always)]
69 pub const fn gotgctl(&self) -> &GOTGCTL {
70 &self.gotgctl
71 }
72 #[doc = "0x04 - "]
73 #[inline(always)]
74 pub const fn gotgint(&self) -> &GOTGINT {
75 &self.gotgint
76 }
77 #[doc = "0x08 - "]
78 #[inline(always)]
79 pub const fn gahbcfg(&self) -> &GAHBCFG {
80 &self.gahbcfg
81 }
82 #[doc = "0x0c - "]
83 #[inline(always)]
84 pub const fn gusbcfg(&self) -> &GUSBCFG {
85 &self.gusbcfg
86 }
87 #[doc = "0x10 - "]
88 #[inline(always)]
89 pub const fn grstctl(&self) -> &GRSTCTL {
90 &self.grstctl
91 }
92 #[doc = "0x14 - "]
93 #[inline(always)]
94 pub const fn gintsts(&self) -> &GINTSTS {
95 &self.gintsts
96 }
97 #[doc = "0x18 - "]
98 #[inline(always)]
99 pub const fn gintmsk(&self) -> &GINTMSK {
100 &self.gintmsk
101 }
102 #[doc = "0x1c - "]
103 #[inline(always)]
104 pub const fn grxstsr(&self) -> &GRXSTSR {
105 &self.grxstsr
106 }
107 #[doc = "0x20 - "]
108 #[inline(always)]
109 pub const fn grxstsp(&self) -> &GRXSTSP {
110 &self.grxstsp
111 }
112 #[doc = "0x24 - "]
113 #[inline(always)]
114 pub const fn grxfsiz(&self) -> &GRXFSIZ {
115 &self.grxfsiz
116 }
117 #[doc = "0x28 - "]
118 #[inline(always)]
119 pub const fn gnptxfsiz(&self) -> &GNPTXFSIZ {
120 &self.gnptxfsiz
121 }
122 #[doc = "0x2c - "]
123 #[inline(always)]
124 pub const fn gnptxsts(&self) -> &GNPTXSTS {
125 &self.gnptxsts
126 }
127 #[doc = "0x40 - "]
128 #[inline(always)]
129 pub const fn gsnpsid(&self) -> &GSNPSID {
130 &self.gsnpsid
131 }
132 #[doc = "0x44 - "]
133 #[inline(always)]
134 pub const fn ghwcfg1(&self) -> &GHWCFG1 {
135 &self.ghwcfg1
136 }
137 #[doc = "0x48 - "]
138 #[inline(always)]
139 pub const fn ghwcfg2(&self) -> &GHWCFG2 {
140 &self.ghwcfg2
141 }
142 #[doc = "0x4c - "]
143 #[inline(always)]
144 pub const fn ghwcfg3(&self) -> &GHWCFG3 {
145 &self.ghwcfg3
146 }
147 #[doc = "0x50 - "]
148 #[inline(always)]
149 pub const fn ghwcfg4(&self) -> &GHWCFG4 {
150 &self.ghwcfg4
151 }
152 #[doc = "0x5c - "]
153 #[inline(always)]
154 pub const fn gdfifocfg(&self) -> &GDFIFOCFG {
155 &self.gdfifocfg
156 }
157 #[doc = "0x100 - "]
158 #[inline(always)]
159 pub const fn hptxfsiz(&self) -> &HPTXFSIZ {
160 &self.hptxfsiz
161 }
162 #[doc = "0x104..0x114 - "]
163 #[doc = ""]
164 #[doc = "<div class=\"warning\">`n` is the index of register in the array. `n == 0` corresponds to `DIEPTXF1` register.</div>"]
165 #[inline(always)]
166 pub const fn dieptxf(&self, n: usize) -> &DIEPTXF {
167 &self.dieptxf[n]
168 }
169 #[doc = "Iterator for array of:"]
170 #[doc = "0x104..0x114 - "]
171 #[inline(always)]
172 pub fn dieptxf_iter(&self) -> impl Iterator<Item = &DIEPTXF> {
173 self.dieptxf.iter()
174 }
175 #[doc = "0x104 - DIEPTXF1"]
176 #[inline(always)]
177 pub const fn dieptxf1(&self) -> &DIEPTXF {
178 self.dieptxf(0)
179 }
180 #[doc = "0x108 - DIEPTXF2"]
181 #[inline(always)]
182 pub const fn dieptxf2(&self) -> &DIEPTXF {
183 self.dieptxf(1)
184 }
185 #[doc = "0x10c - DIEPTXF3"]
186 #[inline(always)]
187 pub const fn dieptxf3(&self) -> &DIEPTXF {
188 self.dieptxf(2)
189 }
190 #[doc = "0x110 - DIEPTXF4"]
191 #[inline(always)]
192 pub const fn dieptxf4(&self) -> &DIEPTXF {
193 self.dieptxf(3)
194 }
195 #[doc = "0x400 - "]
196 #[inline(always)]
197 pub const fn hcfg(&self) -> &HCFG {
198 &self.hcfg
199 }
200 #[doc = "0x404 - "]
201 #[inline(always)]
202 pub const fn hfir(&self) -> &HFIR {
203 &self.hfir
204 }
205 #[doc = "0x408 - "]
206 #[inline(always)]
207 pub const fn hfnum(&self) -> &HFNUM {
208 &self.hfnum
209 }
210 #[doc = "0x410 - "]
211 #[inline(always)]
212 pub const fn hptxsts(&self) -> &HPTXSTS {
213 &self.hptxsts
214 }
215 #[doc = "0x414 - "]
216 #[inline(always)]
217 pub const fn haint(&self) -> &HAINT {
218 &self.haint
219 }
220 #[doc = "0x418 - "]
221 #[inline(always)]
222 pub const fn haintmsk(&self) -> &HAINTMSK {
223 &self.haintmsk
224 }
225 #[doc = "0x41c - "]
226 #[inline(always)]
227 pub const fn hflbaddr(&self) -> &HFLBADDR {
228 &self.hflbaddr
229 }
230 #[doc = "0x440 - "]
231 #[inline(always)]
232 pub const fn hprt(&self) -> &HPRT {
233 &self.hprt
234 }
235 #[doc = "0x500..0x600 - Cluster HC%s, containing HCCHAR?, HCINT?, HCINTMSK?, HCTSIZ?, HCDMA?, HCDMAB?"]
236 #[inline(always)]
237 pub const fn hc(&self, n: usize) -> &HC {
238 &self.hc[n]
239 }
240 #[doc = "Iterator for array of:"]
241 #[doc = "0x500..0x600 - Cluster HC%s, containing HCCHAR?, HCINT?, HCINTMSK?, HCTSIZ?, HCDMA?, HCDMAB?"]
242 #[inline(always)]
243 pub fn hc_iter(&self) -> impl Iterator<Item = &HC> {
244 self.hc.iter()
245 }
246 #[doc = "0x800 - "]
247 #[inline(always)]
248 pub const fn dcfg(&self) -> &DCFG {
249 &self.dcfg
250 }
251 #[doc = "0x804 - "]
252 #[inline(always)]
253 pub const fn dctl(&self) -> &DCTL {
254 &self.dctl
255 }
256 #[doc = "0x808 - "]
257 #[inline(always)]
258 pub const fn dsts(&self) -> &DSTS {
259 &self.dsts
260 }
261 #[doc = "0x810 - "]
262 #[inline(always)]
263 pub const fn diepmsk(&self) -> &DIEPMSK {
264 &self.diepmsk
265 }
266 #[doc = "0x814 - "]
267 #[inline(always)]
268 pub const fn doepmsk(&self) -> &DOEPMSK {
269 &self.doepmsk
270 }
271 #[doc = "0x818 - "]
272 #[inline(always)]
273 pub const fn daint(&self) -> &DAINT {
274 &self.daint
275 }
276 #[doc = "0x81c - "]
277 #[inline(always)]
278 pub const fn daintmsk(&self) -> &DAINTMSK {
279 &self.daintmsk
280 }
281 #[doc = "0x828 - "]
282 #[inline(always)]
283 pub const fn dvbusdis(&self) -> &DVBUSDIS {
284 &self.dvbusdis
285 }
286 #[doc = "0x82c - "]
287 #[inline(always)]
288 pub const fn dvbuspulse(&self) -> &DVBUSPULSE {
289 &self.dvbuspulse
290 }
291 #[doc = "0x830 - "]
292 #[inline(always)]
293 pub const fn dthrctl(&self) -> &DTHRCTL {
294 &self.dthrctl
295 }
296 #[doc = "0x834 - "]
297 #[inline(always)]
298 pub const fn diepempmsk(&self) -> &DIEPEMPMSK {
299 &self.diepempmsk
300 }
301 #[doc = "0x900..0x920 - Device IN endpoint 0"]
302 #[inline(always)]
303 pub const fn in_ep0(&self) -> &IN_EP0 {
304 &self.in_ep0
305 }
306 #[doc = "0x920..0x9e0 - Device IN endpoints 1-6"]
307 #[doc = ""]
308 #[doc = "<div class=\"warning\">`n` is the index of cluster in the array. `n == 0` corresponds to `IN_EP1` cluster.</div>"]
309 #[inline(always)]
310 pub const fn in_ep(&self, n: usize) -> &IN_EP {
311 &self.in_ep[n]
312 }
313 #[doc = "Iterator for array of:"]
314 #[doc = "0x920..0x9e0 - Device IN endpoints 1-6"]
315 #[inline(always)]
316 pub fn in_ep_iter(&self) -> impl Iterator<Item = &IN_EP> {
317 self.in_ep.iter()
318 }
319 #[doc = "0x920..0x940 - Device IN endpoints 1-6"]
320 #[inline(always)]
321 pub const fn in_ep1(&self) -> &IN_EP {
322 self.in_ep(0)
323 }
324 #[doc = "0x940..0x960 - Device IN endpoints 1-6"]
325 #[inline(always)]
326 pub const fn in_ep2(&self) -> &IN_EP {
327 self.in_ep(1)
328 }
329 #[doc = "0x960..0x980 - Device IN endpoints 1-6"]
330 #[inline(always)]
331 pub const fn in_ep3(&self) -> &IN_EP {
332 self.in_ep(2)
333 }
334 #[doc = "0x980..0x9a0 - Device IN endpoints 1-6"]
335 #[inline(always)]
336 pub const fn in_ep4(&self) -> &IN_EP {
337 self.in_ep(3)
338 }
339 #[doc = "0x9a0..0x9c0 - Device IN endpoints 1-6"]
340 #[inline(always)]
341 pub const fn in_ep5(&self) -> &IN_EP {
342 self.in_ep(4)
343 }
344 #[doc = "0x9c0..0x9e0 - Device IN endpoints 1-6"]
345 #[inline(always)]
346 pub const fn in_ep6(&self) -> &IN_EP {
347 self.in_ep(5)
348 }
349 #[doc = "0xb00..0xb20 - Device OUT endpoint 0"]
350 #[inline(always)]
351 pub const fn out_ep0(&self) -> &OUT_EP0 {
352 &self.out_ep0
353 }
354 #[doc = "0xb20..0xbe0 - Device OUT endpoints 1-6"]
355 #[doc = ""]
356 #[doc = "<div class=\"warning\">`n` is the index of cluster in the array. `n == 0` corresponds to `OUT_EP1` cluster.</div>"]
357 #[inline(always)]
358 pub const fn out_ep(&self, n: usize) -> &OUT_EP {
359 &self.out_ep[n]
360 }
361 #[doc = "Iterator for array of:"]
362 #[doc = "0xb20..0xbe0 - Device OUT endpoints 1-6"]
363 #[inline(always)]
364 pub fn out_ep_iter(&self) -> impl Iterator<Item = &OUT_EP> {
365 self.out_ep.iter()
366 }
367 #[doc = "0xb20..0xb40 - Device OUT endpoints 1-6"]
368 #[inline(always)]
369 pub const fn out_ep1(&self) -> &OUT_EP {
370 self.out_ep(0)
371 }
372 #[doc = "0xb40..0xb60 - Device OUT endpoints 1-6"]
373 #[inline(always)]
374 pub const fn out_ep2(&self) -> &OUT_EP {
375 self.out_ep(1)
376 }
377 #[doc = "0xb60..0xb80 - Device OUT endpoints 1-6"]
378 #[inline(always)]
379 pub const fn out_ep3(&self) -> &OUT_EP {
380 self.out_ep(2)
381 }
382 #[doc = "0xb80..0xba0 - Device OUT endpoints 1-6"]
383 #[inline(always)]
384 pub const fn out_ep4(&self) -> &OUT_EP {
385 self.out_ep(3)
386 }
387 #[doc = "0xba0..0xbc0 - Device OUT endpoints 1-6"]
388 #[inline(always)]
389 pub const fn out_ep5(&self) -> &OUT_EP {
390 self.out_ep(4)
391 }
392 #[doc = "0xbc0..0xbe0 - Device OUT endpoints 1-6"]
393 #[inline(always)]
394 pub const fn out_ep6(&self) -> &OUT_EP {
395 self.out_ep(5)
396 }
397 #[doc = "0xe00 - "]
398 #[inline(always)]
399 pub const fn pcgcctl(&self) -> &PCGCCTL {
400 &self.pcgcctl
401 }
402 #[doc = "0x1000..0x1040 - Read and write data to the USB FIFOs through this register."]
403 #[inline(always)]
404 pub const fn fifo(&self, n: usize) -> &FIFO {
405 #[allow(clippy::no_effect)]
406 [(); 16][n];
407 unsafe {
408 &*core::ptr::from_ref(self)
409 .cast::<u8>()
410 .add(4096)
411 .add(4096 * n)
412 .cast()
413 }
414 }
415 #[doc = "Iterator for array of:"]
416 #[doc = "0x1000..0x1040 - Read and write data to the USB FIFOs through this register."]
417 #[inline(always)]
418 pub fn fifo_iter(&self) -> impl Iterator<Item = &FIFO> {
419 (0..16).map(move |n| unsafe {
420 &*core::ptr::from_ref(self)
421 .cast::<u8>()
422 .add(4096)
423 .add(4096 * n)
424 .cast()
425 })
426 }
427}
428#[doc = "GOTGCTL (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gotgctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gotgctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gotgctl`] module"]
429pub type GOTGCTL = crate::Reg<gotgctl::GOTGCTL_SPEC>;
430#[doc = ""]
431pub mod gotgctl;
432#[doc = "GOTGINT (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gotgint::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gotgint::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gotgint`] module"]
433pub type GOTGINT = crate::Reg<gotgint::GOTGINT_SPEC>;
434#[doc = ""]
435pub mod gotgint;
436#[doc = "GAHBCFG (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gahbcfg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gahbcfg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gahbcfg`] module"]
437pub type GAHBCFG = crate::Reg<gahbcfg::GAHBCFG_SPEC>;
438#[doc = ""]
439pub mod gahbcfg;
440#[doc = "GUSBCFG (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gusbcfg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gusbcfg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gusbcfg`] module"]
441pub type GUSBCFG = crate::Reg<gusbcfg::GUSBCFG_SPEC>;
442#[doc = ""]
443pub mod gusbcfg;
444#[doc = "GRSTCTL (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`grstctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`grstctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@grstctl`] module"]
445pub type GRSTCTL = crate::Reg<grstctl::GRSTCTL_SPEC>;
446#[doc = ""]
447pub mod grstctl;
448#[doc = "GINTSTS (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gintsts::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gintsts::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gintsts`] module"]
449pub type GINTSTS = crate::Reg<gintsts::GINTSTS_SPEC>;
450#[doc = ""]
451pub mod gintsts;
452#[doc = "GINTMSK (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gintmsk::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gintmsk::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gintmsk`] module"]
453pub type GINTMSK = crate::Reg<gintmsk::GINTMSK_SPEC>;
454#[doc = ""]
455pub mod gintmsk;
456#[doc = "GRXSTSR (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`grxstsr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@grxstsr`] module"]
457pub type GRXSTSR = crate::Reg<grxstsr::GRXSTSR_SPEC>;
458#[doc = ""]
459pub mod grxstsr;
460#[doc = "GRXSTSP (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`grxstsp::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@grxstsp`] module"]
461pub type GRXSTSP = crate::Reg<grxstsp::GRXSTSP_SPEC>;
462#[doc = ""]
463pub mod grxstsp;
464#[doc = "GRXFSIZ (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`grxfsiz::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`grxfsiz::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@grxfsiz`] module"]
465pub type GRXFSIZ = crate::Reg<grxfsiz::GRXFSIZ_SPEC>;
466#[doc = ""]
467pub mod grxfsiz;
468#[doc = "GNPTXFSIZ (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gnptxfsiz::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gnptxfsiz::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gnptxfsiz`] module"]
469pub type GNPTXFSIZ = crate::Reg<gnptxfsiz::GNPTXFSIZ_SPEC>;
470#[doc = ""]
471pub mod gnptxfsiz;
472#[doc = "GNPTXSTS (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gnptxsts::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gnptxsts`] module"]
473pub type GNPTXSTS = crate::Reg<gnptxsts::GNPTXSTS_SPEC>;
474#[doc = ""]
475pub mod gnptxsts;
476#[doc = "GSNPSID (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gsnpsid::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gsnpsid`] module"]
477pub type GSNPSID = crate::Reg<gsnpsid::GSNPSID_SPEC>;
478#[doc = ""]
479pub mod gsnpsid;
480#[doc = "GHWCFG1 (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`ghwcfg1::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ghwcfg1`] module"]
481pub type GHWCFG1 = crate::Reg<ghwcfg1::GHWCFG1_SPEC>;
482#[doc = ""]
483pub mod ghwcfg1;
484#[doc = "GHWCFG2 (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`ghwcfg2::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ghwcfg2`] module"]
485pub type GHWCFG2 = crate::Reg<ghwcfg2::GHWCFG2_SPEC>;
486#[doc = ""]
487pub mod ghwcfg2;
488#[doc = "GHWCFG3 (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`ghwcfg3::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ghwcfg3`] module"]
489pub type GHWCFG3 = crate::Reg<ghwcfg3::GHWCFG3_SPEC>;
490#[doc = ""]
491pub mod ghwcfg3;
492#[doc = "GHWCFG4 (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`ghwcfg4::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ghwcfg4`] module"]
493pub type GHWCFG4 = crate::Reg<ghwcfg4::GHWCFG4_SPEC>;
494#[doc = ""]
495pub mod ghwcfg4;
496#[doc = "GDFIFOCFG (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`gdfifocfg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gdfifocfg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gdfifocfg`] module"]
497pub type GDFIFOCFG = crate::Reg<gdfifocfg::GDFIFOCFG_SPEC>;
498#[doc = ""]
499pub mod gdfifocfg;
500#[doc = "HPTXFSIZ (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hptxfsiz::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hptxfsiz::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hptxfsiz`] module"]
501pub type HPTXFSIZ = crate::Reg<hptxfsiz::HPTXFSIZ_SPEC>;
502#[doc = ""]
503pub mod hptxfsiz;
504#[doc = "DIEPTXF (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dieptxf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dieptxf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dieptxf`] module"]
505pub type DIEPTXF = crate::Reg<dieptxf::DIEPTXF_SPEC>;
506#[doc = ""]
507pub mod dieptxf;
508#[doc = "HCFG (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hcfg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hcfg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hcfg`] module"]
509pub type HCFG = crate::Reg<hcfg::HCFG_SPEC>;
510#[doc = ""]
511pub mod hcfg;
512#[doc = "HFIR (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hfir::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hfir::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hfir`] module"]
513pub type HFIR = crate::Reg<hfir::HFIR_SPEC>;
514#[doc = ""]
515pub mod hfir;
516#[doc = "HFNUM (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hfnum::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hfnum`] module"]
517pub type HFNUM = crate::Reg<hfnum::HFNUM_SPEC>;
518#[doc = ""]
519pub mod hfnum;
520#[doc = "HPTXSTS (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hptxsts::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hptxsts`] module"]
521pub type HPTXSTS = crate::Reg<hptxsts::HPTXSTS_SPEC>;
522#[doc = ""]
523pub mod hptxsts;
524#[doc = "HAINT (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`haint::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@haint`] module"]
525pub type HAINT = crate::Reg<haint::HAINT_SPEC>;
526#[doc = ""]
527pub mod haint;
528#[doc = "HAINTMSK (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`haintmsk::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`haintmsk::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@haintmsk`] module"]
529pub type HAINTMSK = crate::Reg<haintmsk::HAINTMSK_SPEC>;
530#[doc = ""]
531pub mod haintmsk;
532#[doc = "HFLBADDR (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hflbaddr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hflbaddr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hflbaddr`] module"]
533pub type HFLBADDR = crate::Reg<hflbaddr::HFLBADDR_SPEC>;
534#[doc = ""]
535pub mod hflbaddr;
536#[doc = "HPRT (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`hprt::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`hprt::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@hprt`] module"]
537pub type HPRT = crate::Reg<hprt::HPRT_SPEC>;
538#[doc = ""]
539pub mod hprt;
540#[doc = "Cluster HC%s, containing HCCHAR?, HCINT?, HCINTMSK?, HCTSIZ?, HCDMA?, HCDMAB?"]
541pub use self::hc::HC;
542#[doc = r"Cluster"]
543#[doc = "Cluster HC%s, containing HCCHAR?, HCINT?, HCINTMSK?, HCTSIZ?, HCDMA?, HCDMAB?"]
544pub mod hc;
545#[doc = "DCFG (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dcfg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dcfg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dcfg`] module"]
546pub type DCFG = crate::Reg<dcfg::DCFG_SPEC>;
547#[doc = ""]
548pub mod dcfg;
549#[doc = "DCTL (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dctl`] module"]
550pub type DCTL = crate::Reg<dctl::DCTL_SPEC>;
551#[doc = ""]
552pub mod dctl;
553#[doc = "DSTS (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dsts::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dsts`] module"]
554pub type DSTS = crate::Reg<dsts::DSTS_SPEC>;
555#[doc = ""]
556pub mod dsts;
557#[doc = "DIEPMSK (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`diepmsk::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`diepmsk::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@diepmsk`] module"]
558pub type DIEPMSK = crate::Reg<diepmsk::DIEPMSK_SPEC>;
559#[doc = ""]
560pub mod diepmsk;
561#[doc = "DOEPMSK (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`doepmsk::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`doepmsk::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@doepmsk`] module"]
562pub type DOEPMSK = crate::Reg<doepmsk::DOEPMSK_SPEC>;
563#[doc = ""]
564pub mod doepmsk;
565#[doc = "DAINT (r) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`daint::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@daint`] module"]
566pub type DAINT = crate::Reg<daint::DAINT_SPEC>;
567#[doc = ""]
568pub mod daint;
569#[doc = "DAINTMSK (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`daintmsk::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`daintmsk::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@daintmsk`] module"]
570pub type DAINTMSK = crate::Reg<daintmsk::DAINTMSK_SPEC>;
571#[doc = ""]
572pub mod daintmsk;
573#[doc = "DVBUSDIS (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dvbusdis::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dvbusdis::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dvbusdis`] module"]
574pub type DVBUSDIS = crate::Reg<dvbusdis::DVBUSDIS_SPEC>;
575#[doc = ""]
576pub mod dvbusdis;
577#[doc = "DVBUSPULSE (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dvbuspulse::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dvbuspulse::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dvbuspulse`] module"]
578pub type DVBUSPULSE = crate::Reg<dvbuspulse::DVBUSPULSE_SPEC>;
579#[doc = ""]
580pub mod dvbuspulse;
581#[doc = "DTHRCTL (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`dthrctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dthrctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dthrctl`] module"]
582pub type DTHRCTL = crate::Reg<dthrctl::DTHRCTL_SPEC>;
583#[doc = ""]
584pub mod dthrctl;
585#[doc = "DIEPEMPMSK (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`diepempmsk::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`diepempmsk::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@diepempmsk`] module"]
586pub type DIEPEMPMSK = crate::Reg<diepempmsk::DIEPEMPMSK_SPEC>;
587#[doc = ""]
588pub mod diepempmsk;
589#[doc = "Device IN endpoint 0"]
590pub use self::in_ep0::IN_EP0;
591#[doc = r"Cluster"]
592#[doc = "Device IN endpoint 0"]
593pub mod in_ep0;
594#[doc = "Device IN endpoints 1-6"]
595pub use self::in_ep::IN_EP;
596#[doc = r"Cluster"]
597#[doc = "Device IN endpoints 1-6"]
598pub mod in_ep;
599#[doc = "Device OUT endpoint 0"]
600pub use self::out_ep0::OUT_EP0;
601#[doc = r"Cluster"]
602#[doc = "Device OUT endpoint 0"]
603pub mod out_ep0;
604#[doc = "Device OUT endpoints 1-6"]
605pub use self::out_ep::OUT_EP;
606#[doc = r"Cluster"]
607#[doc = "Device OUT endpoints 1-6"]
608pub mod out_ep;
609#[doc = "PCGCCTL (rw) register accessor: \n\nYou can [`read`](crate::Reg::read) this register and get [`pcgcctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pcgcctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pcgcctl`] module"]
610pub type PCGCCTL = crate::Reg<pcgcctl::PCGCCTL_SPEC>;
611#[doc = ""]
612pub mod pcgcctl;
613#[doc = "FIFO (rw) register accessor: Read and write data to the USB FIFOs through this register.\n\nYou can [`read`](crate::Reg::read) this register and get [`fifo::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`fifo::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fifo`] module"]
614pub type FIFO = crate::Reg<fifo::FIFO_SPEC>;
615#[doc = "Read and write data to the USB FIFOs through this register."]
616pub mod fifo;