1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 _reserved0: [u8; 0x04],
5 #[doc = "0x04..0x24 - Description collection: Captures the EPIN\\[n\\].PTR and EPIN\\[n\\].MAXCNT registers values, and enables endpoint IN n to respond to traffic from host"]
6 pub tasks_startepin: [TASKS_STARTEPIN; 8],
7 #[doc = "0x24 - Captures the ISOIN.PTR and ISOIN.MAXCNT registers values, and enables sending data on ISO endpoint"]
8 pub tasks_startisoin: TASKS_STARTISOIN,
9 #[doc = "0x28..0x48 - Description collection: Captures the EPOUT\\[n\\].PTR and EPOUT\\[n\\].MAXCNT registers values, and enables endpoint n to respond to traffic from host"]
10 pub tasks_startepout: [TASKS_STARTEPOUT; 8],
11 #[doc = "0x48 - Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers values, and enables receiving of data on ISO endpoint"]
12 pub tasks_startisoout: TASKS_STARTISOOUT,
13 #[doc = "0x4c - Allows OUT data stage on control endpoint 0"]
14 pub tasks_ep0rcvout: TASKS_EP0RCVOUT,
15 #[doc = "0x50 - Allows status stage on control endpoint 0"]
16 pub tasks_ep0status: TASKS_EP0STATUS,
17 #[doc = "0x54 - Stalls data and status stage on control endpoint 0"]
18 pub tasks_ep0stall: TASKS_EP0STALL,
19 #[doc = "0x58 - Forces D+ and D- lines into the state defined in the DPDMVALUE register"]
20 pub tasks_dpdmdrive: TASKS_DPDMDRIVE,
21 #[doc = "0x5c - Stops forcing D+ and D- lines into any state (USB engine takes control)"]
22 pub tasks_dpdmnodrive: TASKS_DPDMNODRIVE,
23 _reserved9: [u8; 0x24],
24 #[doc = "0x84..0xa4 - Description collection: Subscribe configuration for task STARTEPIN\\[n\\]"]
25 pub subscribe_startepin: [SUBSCRIBE_STARTEPIN; 8],
26 #[doc = "0xa4 - Subscribe configuration for task STARTISOIN"]
27 pub subscribe_startisoin: SUBSCRIBE_STARTISOIN,
28 #[doc = "0xa8..0xc8 - Description collection: Subscribe configuration for task STARTEPOUT\\[n\\]"]
29 pub subscribe_startepout: [SUBSCRIBE_STARTEPOUT; 8],
30 #[doc = "0xc8 - Subscribe configuration for task STARTISOOUT"]
31 pub subscribe_startisoout: SUBSCRIBE_STARTISOOUT,
32 #[doc = "0xcc - Subscribe configuration for task EP0RCVOUT"]
33 pub subscribe_ep0rcvout: SUBSCRIBE_EP0RCVOUT,
34 #[doc = "0xd0 - Subscribe configuration for task EP0STATUS"]
35 pub subscribe_ep0status: SUBSCRIBE_EP0STATUS,
36 #[doc = "0xd4 - Subscribe configuration for task EP0STALL"]
37 pub subscribe_ep0stall: SUBSCRIBE_EP0STALL,
38 #[doc = "0xd8 - Subscribe configuration for task DPDMDRIVE"]
39 pub subscribe_dpdmdrive: SUBSCRIBE_DPDMDRIVE,
40 #[doc = "0xdc - Subscribe configuration for task DPDMNODRIVE"]
41 pub subscribe_dpdmnodrive: SUBSCRIBE_DPDMNODRIVE,
42 _reserved18: [u8; 0x20],
43 #[doc = "0x100 - Signals that a USB reset condition has been detected on USB lines"]
44 pub events_usbreset: EVENTS_USBRESET,
45 #[doc = "0x104 - Confirms that the EPIN\\[n\\].PTR and EPIN\\[n\\].MAXCNT, or EPOUT\\[n\\].PTR and EPOUT\\[n\\].MAXCNT registers have been captured on all endpoints reported in the EPSTATUS register"]
46 pub events_started: EVENTS_STARTED,
47 #[doc = "0x108..0x128 - Description collection: The whole EPIN\\[n\\]
48buffer has been consumed. The buffer can be accessed safely by software."]
49 pub events_endepin: [EVENTS_ENDEPIN; 8],
50 #[doc = "0x128 - An acknowledged data transfer has taken place on the control endpoint"]
51 pub events_ep0datadone: EVENTS_EP0DATADONE,
52 #[doc = "0x12c - The whole ISOIN buffer has been consumed. The buffer can be accessed safely by software."]
53 pub events_endisoin: EVENTS_ENDISOIN,
54 #[doc = "0x130..0x150 - Description collection: The whole EPOUT\\[n\\]
55buffer has been consumed. The buffer can be accessed safely by software."]
56 pub events_endepout: [EVENTS_ENDEPOUT; 8],
57 #[doc = "0x150 - The whole ISOOUT buffer has been consumed. The buffer can be accessed safely by software."]
58 pub events_endisoout: EVENTS_ENDISOOUT,
59 #[doc = "0x154 - Signals that a SOF (start of frame) condition has been detected on USB lines"]
60 pub events_sof: EVENTS_SOF,
61 #[doc = "0x158 - An event or an error not covered by specific events has occurred. Check EVENTCAUSE register to find the cause."]
62 pub events_usbevent: EVENTS_USBEVENT,
63 #[doc = "0x15c - A valid SETUP token has been received (and acknowledged) on the control endpoint"]
64 pub events_ep0setup: EVENTS_EP0SETUP,
65 #[doc = "0x160 - A data transfer has occurred on a data endpoint, indicated by the EPDATASTATUS register"]
66 pub events_epdata: EVENTS_EPDATA,
67 _reserved29: [u8; 0x1c],
68 #[doc = "0x180 - Publish configuration for event USBRESET"]
69 pub publish_usbreset: PUBLISH_USBRESET,
70 #[doc = "0x184 - Publish configuration for event STARTED"]
71 pub publish_started: PUBLISH_STARTED,
72 #[doc = "0x188..0x1a8 - Description collection: Publish configuration for event ENDEPIN\\[n\\]"]
73 pub publish_endepin: [PUBLISH_ENDEPIN; 8],
74 #[doc = "0x1a8 - Publish configuration for event EP0DATADONE"]
75 pub publish_ep0datadone: PUBLISH_EP0DATADONE,
76 #[doc = "0x1ac - Publish configuration for event ENDISOIN"]
77 pub publish_endisoin: PUBLISH_ENDISOIN,
78 #[doc = "0x1b0..0x1d0 - Description collection: Publish configuration for event ENDEPOUT\\[n\\]"]
79 pub publish_endepout: [PUBLISH_ENDEPOUT; 8],
80 #[doc = "0x1d0 - Publish configuration for event ENDISOOUT"]
81 pub publish_endisoout: PUBLISH_ENDISOOUT,
82 #[doc = "0x1d4 - Publish configuration for event SOF"]
83 pub publish_sof: PUBLISH_SOF,
84 #[doc = "0x1d8 - Publish configuration for event USBEVENT"]
85 pub publish_usbevent: PUBLISH_USBEVENT,
86 #[doc = "0x1dc - Publish configuration for event EP0SETUP"]
87 pub publish_ep0setup: PUBLISH_EP0SETUP,
88 #[doc = "0x1e0 - Publish configuration for event EPDATA"]
89 pub publish_epdata: PUBLISH_EPDATA,
90 _reserved40: [u8; 0x1c],
91 #[doc = "0x200 - Shortcuts between local events and tasks"]
92 pub shorts: SHORTS,
93 _reserved41: [u8; 0xfc],
94 #[doc = "0x300 - Enable or disable interrupt"]
95 pub inten: INTEN,
96 #[doc = "0x304 - Enable interrupt"]
97 pub intenset: INTENSET,
98 #[doc = "0x308 - Disable interrupt"]
99 pub intenclr: INTENCLR,
100 _reserved44: [u8; 0xf4],
101 #[doc = "0x400 - Details on what caused the USBEVENT event"]
102 pub eventcause: EVENTCAUSE,
103 _reserved45: [u8; 0x1c],
104 #[doc = "0x420..0x464 - Unspecified"]
105 pub halted: HALTED,
106 _reserved46: [u8; 0x04],
107 #[doc = "0x468 - Provides information on which endpoint's EasyDMA registers have been captured"]
108 pub epstatus: EPSTATUS,
109 #[doc = "0x46c - Provides information on which endpoint(s) an acknowledged data transfer has occurred (EPDATA event)"]
110 pub epdatastatus: EPDATASTATUS,
111 #[doc = "0x470 - Device USB address"]
112 pub usbaddr: USBADDR,
113 _reserved49: [u8; 0x0c],
114 #[doc = "0x480 - SETUP data, byte 0, bmRequestType"]
115 pub bmrequesttype: BMREQUESTTYPE,
116 #[doc = "0x484 - SETUP data, byte 1, bRequest"]
117 pub brequest: BREQUEST,
118 #[doc = "0x488 - SETUP data, byte 2, LSB of wValue"]
119 pub wvaluel: WVALUEL,
120 #[doc = "0x48c - SETUP data, byte 3, MSB of wValue"]
121 pub wvalueh: WVALUEH,
122 #[doc = "0x490 - SETUP data, byte 4, LSB of wIndex"]
123 pub windexl: WINDEXL,
124 #[doc = "0x494 - SETUP data, byte 5, MSB of wIndex"]
125 pub windexh: WINDEXH,
126 #[doc = "0x498 - SETUP data, byte 6, LSB of wLength"]
127 pub wlengthl: WLENGTHL,
128 #[doc = "0x49c - SETUP data, byte 7, MSB of wLength"]
129 pub wlengthh: WLENGTHH,
130 #[doc = "0x4a0..0x4c4 - Unspecified"]
131 pub size: SIZE,
132 _reserved58: [u8; 0x3c],
133 #[doc = "0x500 - Enable USB"]
134 pub enable: ENABLE,
135 #[doc = "0x504 - Control of the USB pull-up"]
136 pub usbpullup: USBPULLUP,
137 #[doc = "0x508 - State D+ and D- lines will be forced into by the DPDMDRIVE task. The DPDMNODRIVE task reverts the control of the lines to MAC IP (no forcing)."]
138 pub dpdmvalue: DPDMVALUE,
139 #[doc = "0x50c - Data toggle control and status"]
140 pub dtoggle: DTOGGLE,
141 #[doc = "0x510 - Endpoint IN enable"]
142 pub epinen: EPINEN,
143 #[doc = "0x514 - Endpoint OUT enable"]
144 pub epouten: EPOUTEN,
145 #[doc = "0x518 - STALL endpoints"]
146 pub epstall: EPSTALL,
147 #[doc = "0x51c - Controls the split of ISO buffers"]
148 pub isosplit: ISOSPLIT,
149 #[doc = "0x520 - Returns the current value of the start of frame counter"]
150 pub framecntr: FRAMECNTR,
151 _reserved67: [u8; 0x08],
152 #[doc = "0x52c - Controls USBD peripheral low power mode during USB suspend"]
153 pub lowpower: LOWPOWER,
154 #[doc = "0x530 - Controls the response of the ISO IN endpoint to an IN token when no data is ready to be sent"]
155 pub isoinconfig: ISOINCONFIG,
156 _reserved69: [u8; 0xcc],
157 #[doc = "0x600..0x60c - Unspecified"]
158 pub epin0: EPIN,
159 _reserved70: [u8; 0x08],
160 #[doc = "0x614..0x620 - Unspecified"]
161 pub epin1: EPIN,
162 _reserved71: [u8; 0x08],
163 #[doc = "0x628..0x634 - Unspecified"]
164 pub epin2: EPIN,
165 _reserved72: [u8; 0x08],
166 #[doc = "0x63c..0x648 - Unspecified"]
167 pub epin3: EPIN,
168 _reserved73: [u8; 0x08],
169 #[doc = "0x650..0x65c - Unspecified"]
170 pub epin4: EPIN,
171 _reserved74: [u8; 0x08],
172 #[doc = "0x664..0x670 - Unspecified"]
173 pub epin5: EPIN,
174 _reserved75: [u8; 0x08],
175 #[doc = "0x678..0x684 - Unspecified"]
176 pub epin6: EPIN,
177 _reserved76: [u8; 0x08],
178 #[doc = "0x68c..0x698 - Unspecified"]
179 pub epin7: EPIN,
180 _reserved77: [u8; 0x08],
181 #[doc = "0x6a0..0x6ac - Unspecified"]
182 pub isoin: ISOIN,
183 _reserved78: [u8; 0x54],
184 #[doc = "0x700..0x70c - Unspecified"]
185 pub epout0: EPOUT,
186 _reserved79: [u8; 0x08],
187 #[doc = "0x714..0x720 - Unspecified"]
188 pub epout1: EPOUT,
189 _reserved80: [u8; 0x08],
190 #[doc = "0x728..0x734 - Unspecified"]
191 pub epout2: EPOUT,
192 _reserved81: [u8; 0x08],
193 #[doc = "0x73c..0x748 - Unspecified"]
194 pub epout3: EPOUT,
195 _reserved82: [u8; 0x08],
196 #[doc = "0x750..0x75c - Unspecified"]
197 pub epout4: EPOUT,
198 _reserved83: [u8; 0x08],
199 #[doc = "0x764..0x770 - Unspecified"]
200 pub epout5: EPOUT,
201 _reserved84: [u8; 0x08],
202 #[doc = "0x778..0x784 - Unspecified"]
203 pub epout6: EPOUT,
204 _reserved85: [u8; 0x08],
205 #[doc = "0x78c..0x798 - Unspecified"]
206 pub epout7: EPOUT,
207 _reserved86: [u8; 0x08],
208 #[doc = "0x7a0..0x7ac - Unspecified"]
209 pub isoout: ISOOUT,
210}
211#[doc = "TASKS_STARTEPIN (w) register accessor: an alias for `Reg<TASKS_STARTEPIN_SPEC>`"]
212pub type TASKS_STARTEPIN = crate::Reg<tasks_startepin::TASKS_STARTEPIN_SPEC>;
213#[doc = "Description collection: Captures the EPIN\\[n\\].PTR and EPIN\\[n\\].MAXCNT registers values, and enables endpoint IN n to respond to traffic from host"]
214pub mod tasks_startepin;
215#[doc = "TASKS_STARTISOIN (w) register accessor: an alias for `Reg<TASKS_STARTISOIN_SPEC>`"]
216pub type TASKS_STARTISOIN = crate::Reg<tasks_startisoin::TASKS_STARTISOIN_SPEC>;
217#[doc = "Captures the ISOIN.PTR and ISOIN.MAXCNT registers values, and enables sending data on ISO endpoint"]
218pub mod tasks_startisoin;
219#[doc = "TASKS_STARTEPOUT (w) register accessor: an alias for `Reg<TASKS_STARTEPOUT_SPEC>`"]
220pub type TASKS_STARTEPOUT = crate::Reg<tasks_startepout::TASKS_STARTEPOUT_SPEC>;
221#[doc = "Description collection: Captures the EPOUT\\[n\\].PTR and EPOUT\\[n\\].MAXCNT registers values, and enables endpoint n to respond to traffic from host"]
222pub mod tasks_startepout;
223#[doc = "TASKS_STARTISOOUT (w) register accessor: an alias for `Reg<TASKS_STARTISOOUT_SPEC>`"]
224pub type TASKS_STARTISOOUT = crate::Reg<tasks_startisoout::TASKS_STARTISOOUT_SPEC>;
225#[doc = "Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers values, and enables receiving of data on ISO endpoint"]
226pub mod tasks_startisoout;
227#[doc = "TASKS_EP0RCVOUT (w) register accessor: an alias for `Reg<TASKS_EP0RCVOUT_SPEC>`"]
228pub type TASKS_EP0RCVOUT = crate::Reg<tasks_ep0rcvout::TASKS_EP0RCVOUT_SPEC>;
229#[doc = "Allows OUT data stage on control endpoint 0"]
230pub mod tasks_ep0rcvout;
231#[doc = "TASKS_EP0STATUS (w) register accessor: an alias for `Reg<TASKS_EP0STATUS_SPEC>`"]
232pub type TASKS_EP0STATUS = crate::Reg<tasks_ep0status::TASKS_EP0STATUS_SPEC>;
233#[doc = "Allows status stage on control endpoint 0"]
234pub mod tasks_ep0status;
235#[doc = "TASKS_EP0STALL (w) register accessor: an alias for `Reg<TASKS_EP0STALL_SPEC>`"]
236pub type TASKS_EP0STALL = crate::Reg<tasks_ep0stall::TASKS_EP0STALL_SPEC>;
237#[doc = "Stalls data and status stage on control endpoint 0"]
238pub mod tasks_ep0stall;
239#[doc = "TASKS_DPDMDRIVE (w) register accessor: an alias for `Reg<TASKS_DPDMDRIVE_SPEC>`"]
240pub type TASKS_DPDMDRIVE = crate::Reg<tasks_dpdmdrive::TASKS_DPDMDRIVE_SPEC>;
241#[doc = "Forces D+ and D- lines into the state defined in the DPDMVALUE register"]
242pub mod tasks_dpdmdrive;
243#[doc = "TASKS_DPDMNODRIVE (w) register accessor: an alias for `Reg<TASKS_DPDMNODRIVE_SPEC>`"]
244pub type TASKS_DPDMNODRIVE = crate::Reg<tasks_dpdmnodrive::TASKS_DPDMNODRIVE_SPEC>;
245#[doc = "Stops forcing D+ and D- lines into any state (USB engine takes control)"]
246pub mod tasks_dpdmnodrive;
247#[doc = "SUBSCRIBE_STARTEPIN (rw) register accessor: an alias for `Reg<SUBSCRIBE_STARTEPIN_SPEC>`"]
248pub type SUBSCRIBE_STARTEPIN = crate::Reg<subscribe_startepin::SUBSCRIBE_STARTEPIN_SPEC>;
249#[doc = "Description collection: Subscribe configuration for task STARTEPIN\\[n\\]"]
250pub mod subscribe_startepin;
251#[doc = "SUBSCRIBE_STARTISOIN (rw) register accessor: an alias for `Reg<SUBSCRIBE_STARTISOIN_SPEC>`"]
252pub type SUBSCRIBE_STARTISOIN = crate::Reg<subscribe_startisoin::SUBSCRIBE_STARTISOIN_SPEC>;
253#[doc = "Subscribe configuration for task STARTISOIN"]
254pub mod subscribe_startisoin;
255#[doc = "SUBSCRIBE_STARTEPOUT (rw) register accessor: an alias for `Reg<SUBSCRIBE_STARTEPOUT_SPEC>`"]
256pub type SUBSCRIBE_STARTEPOUT = crate::Reg<subscribe_startepout::SUBSCRIBE_STARTEPOUT_SPEC>;
257#[doc = "Description collection: Subscribe configuration for task STARTEPOUT\\[n\\]"]
258pub mod subscribe_startepout;
259#[doc = "SUBSCRIBE_STARTISOOUT (rw) register accessor: an alias for `Reg<SUBSCRIBE_STARTISOOUT_SPEC>`"]
260pub type SUBSCRIBE_STARTISOOUT = crate::Reg<subscribe_startisoout::SUBSCRIBE_STARTISOOUT_SPEC>;
261#[doc = "Subscribe configuration for task STARTISOOUT"]
262pub mod subscribe_startisoout;
263#[doc = "SUBSCRIBE_EP0RCVOUT (rw) register accessor: an alias for `Reg<SUBSCRIBE_EP0RCVOUT_SPEC>`"]
264pub type SUBSCRIBE_EP0RCVOUT = crate::Reg<subscribe_ep0rcvout::SUBSCRIBE_EP0RCVOUT_SPEC>;
265#[doc = "Subscribe configuration for task EP0RCVOUT"]
266pub mod subscribe_ep0rcvout;
267#[doc = "SUBSCRIBE_EP0STATUS (rw) register accessor: an alias for `Reg<SUBSCRIBE_EP0STATUS_SPEC>`"]
268pub type SUBSCRIBE_EP0STATUS = crate::Reg<subscribe_ep0status::SUBSCRIBE_EP0STATUS_SPEC>;
269#[doc = "Subscribe configuration for task EP0STATUS"]
270pub mod subscribe_ep0status;
271#[doc = "SUBSCRIBE_EP0STALL (rw) register accessor: an alias for `Reg<SUBSCRIBE_EP0STALL_SPEC>`"]
272pub type SUBSCRIBE_EP0STALL = crate::Reg<subscribe_ep0stall::SUBSCRIBE_EP0STALL_SPEC>;
273#[doc = "Subscribe configuration for task EP0STALL"]
274pub mod subscribe_ep0stall;
275#[doc = "SUBSCRIBE_DPDMDRIVE (rw) register accessor: an alias for `Reg<SUBSCRIBE_DPDMDRIVE_SPEC>`"]
276pub type SUBSCRIBE_DPDMDRIVE = crate::Reg<subscribe_dpdmdrive::SUBSCRIBE_DPDMDRIVE_SPEC>;
277#[doc = "Subscribe configuration for task DPDMDRIVE"]
278pub mod subscribe_dpdmdrive;
279#[doc = "SUBSCRIBE_DPDMNODRIVE (rw) register accessor: an alias for `Reg<SUBSCRIBE_DPDMNODRIVE_SPEC>`"]
280pub type SUBSCRIBE_DPDMNODRIVE = crate::Reg<subscribe_dpdmnodrive::SUBSCRIBE_DPDMNODRIVE_SPEC>;
281#[doc = "Subscribe configuration for task DPDMNODRIVE"]
282pub mod subscribe_dpdmnodrive;
283#[doc = "EVENTS_USBRESET (rw) register accessor: an alias for `Reg<EVENTS_USBRESET_SPEC>`"]
284pub type EVENTS_USBRESET = crate::Reg<events_usbreset::EVENTS_USBRESET_SPEC>;
285#[doc = "Signals that a USB reset condition has been detected on USB lines"]
286pub mod events_usbreset;
287#[doc = "EVENTS_STARTED (rw) register accessor: an alias for `Reg<EVENTS_STARTED_SPEC>`"]
288pub type EVENTS_STARTED = crate::Reg<events_started::EVENTS_STARTED_SPEC>;
289#[doc = "Confirms that the EPIN\\[n\\].PTR and EPIN\\[n\\].MAXCNT, or EPOUT\\[n\\].PTR and EPOUT\\[n\\].MAXCNT registers have been captured on all endpoints reported in the EPSTATUS register"]
290pub mod events_started;
291#[doc = "EVENTS_ENDEPIN (rw) register accessor: an alias for `Reg<EVENTS_ENDEPIN_SPEC>`"]
292pub type EVENTS_ENDEPIN = crate::Reg<events_endepin::EVENTS_ENDEPIN_SPEC>;
293#[doc = "Description collection: The whole EPIN\\[n\\]
294buffer has been consumed. The buffer can be accessed safely by software."]
295pub mod events_endepin;
296#[doc = "EVENTS_EP0DATADONE (rw) register accessor: an alias for `Reg<EVENTS_EP0DATADONE_SPEC>`"]
297pub type EVENTS_EP0DATADONE = crate::Reg<events_ep0datadone::EVENTS_EP0DATADONE_SPEC>;
298#[doc = "An acknowledged data transfer has taken place on the control endpoint"]
299pub mod events_ep0datadone;
300#[doc = "EVENTS_ENDISOIN (rw) register accessor: an alias for `Reg<EVENTS_ENDISOIN_SPEC>`"]
301pub type EVENTS_ENDISOIN = crate::Reg<events_endisoin::EVENTS_ENDISOIN_SPEC>;
302#[doc = "The whole ISOIN buffer has been consumed. The buffer can be accessed safely by software."]
303pub mod events_endisoin;
304#[doc = "EVENTS_ENDEPOUT (rw) register accessor: an alias for `Reg<EVENTS_ENDEPOUT_SPEC>`"]
305pub type EVENTS_ENDEPOUT = crate::Reg<events_endepout::EVENTS_ENDEPOUT_SPEC>;
306#[doc = "Description collection: The whole EPOUT\\[n\\]
307buffer has been consumed. The buffer can be accessed safely by software."]
308pub mod events_endepout;
309#[doc = "EVENTS_ENDISOOUT (rw) register accessor: an alias for `Reg<EVENTS_ENDISOOUT_SPEC>`"]
310pub type EVENTS_ENDISOOUT = crate::Reg<events_endisoout::EVENTS_ENDISOOUT_SPEC>;
311#[doc = "The whole ISOOUT buffer has been consumed. The buffer can be accessed safely by software."]
312pub mod events_endisoout;
313#[doc = "EVENTS_SOF (rw) register accessor: an alias for `Reg<EVENTS_SOF_SPEC>`"]
314pub type EVENTS_SOF = crate::Reg<events_sof::EVENTS_SOF_SPEC>;
315#[doc = "Signals that a SOF (start of frame) condition has been detected on USB lines"]
316pub mod events_sof;
317#[doc = "EVENTS_USBEVENT (rw) register accessor: an alias for `Reg<EVENTS_USBEVENT_SPEC>`"]
318pub type EVENTS_USBEVENT = crate::Reg<events_usbevent::EVENTS_USBEVENT_SPEC>;
319#[doc = "An event or an error not covered by specific events has occurred. Check EVENTCAUSE register to find the cause."]
320pub mod events_usbevent;
321#[doc = "EVENTS_EP0SETUP (rw) register accessor: an alias for `Reg<EVENTS_EP0SETUP_SPEC>`"]
322pub type EVENTS_EP0SETUP = crate::Reg<events_ep0setup::EVENTS_EP0SETUP_SPEC>;
323#[doc = "A valid SETUP token has been received (and acknowledged) on the control endpoint"]
324pub mod events_ep0setup;
325#[doc = "EVENTS_EPDATA (rw) register accessor: an alias for `Reg<EVENTS_EPDATA_SPEC>`"]
326pub type EVENTS_EPDATA = crate::Reg<events_epdata::EVENTS_EPDATA_SPEC>;
327#[doc = "A data transfer has occurred on a data endpoint, indicated by the EPDATASTATUS register"]
328pub mod events_epdata;
329#[doc = "PUBLISH_USBRESET (rw) register accessor: an alias for `Reg<PUBLISH_USBRESET_SPEC>`"]
330pub type PUBLISH_USBRESET = crate::Reg<publish_usbreset::PUBLISH_USBRESET_SPEC>;
331#[doc = "Publish configuration for event USBRESET"]
332pub mod publish_usbreset;
333#[doc = "PUBLISH_STARTED (rw) register accessor: an alias for `Reg<PUBLISH_STARTED_SPEC>`"]
334pub type PUBLISH_STARTED = crate::Reg<publish_started::PUBLISH_STARTED_SPEC>;
335#[doc = "Publish configuration for event STARTED"]
336pub mod publish_started;
337#[doc = "PUBLISH_ENDEPIN (rw) register accessor: an alias for `Reg<PUBLISH_ENDEPIN_SPEC>`"]
338pub type PUBLISH_ENDEPIN = crate::Reg<publish_endepin::PUBLISH_ENDEPIN_SPEC>;
339#[doc = "Description collection: Publish configuration for event ENDEPIN\\[n\\]"]
340pub mod publish_endepin;
341#[doc = "PUBLISH_EP0DATADONE (rw) register accessor: an alias for `Reg<PUBLISH_EP0DATADONE_SPEC>`"]
342pub type PUBLISH_EP0DATADONE = crate::Reg<publish_ep0datadone::PUBLISH_EP0DATADONE_SPEC>;
343#[doc = "Publish configuration for event EP0DATADONE"]
344pub mod publish_ep0datadone;
345#[doc = "PUBLISH_ENDISOIN (rw) register accessor: an alias for `Reg<PUBLISH_ENDISOIN_SPEC>`"]
346pub type PUBLISH_ENDISOIN = crate::Reg<publish_endisoin::PUBLISH_ENDISOIN_SPEC>;
347#[doc = "Publish configuration for event ENDISOIN"]
348pub mod publish_endisoin;
349#[doc = "PUBLISH_ENDEPOUT (rw) register accessor: an alias for `Reg<PUBLISH_ENDEPOUT_SPEC>`"]
350pub type PUBLISH_ENDEPOUT = crate::Reg<publish_endepout::PUBLISH_ENDEPOUT_SPEC>;
351#[doc = "Description collection: Publish configuration for event ENDEPOUT\\[n\\]"]
352pub mod publish_endepout;
353#[doc = "PUBLISH_ENDISOOUT (rw) register accessor: an alias for `Reg<PUBLISH_ENDISOOUT_SPEC>`"]
354pub type PUBLISH_ENDISOOUT = crate::Reg<publish_endisoout::PUBLISH_ENDISOOUT_SPEC>;
355#[doc = "Publish configuration for event ENDISOOUT"]
356pub mod publish_endisoout;
357#[doc = "PUBLISH_SOF (rw) register accessor: an alias for `Reg<PUBLISH_SOF_SPEC>`"]
358pub type PUBLISH_SOF = crate::Reg<publish_sof::PUBLISH_SOF_SPEC>;
359#[doc = "Publish configuration for event SOF"]
360pub mod publish_sof;
361#[doc = "PUBLISH_USBEVENT (rw) register accessor: an alias for `Reg<PUBLISH_USBEVENT_SPEC>`"]
362pub type PUBLISH_USBEVENT = crate::Reg<publish_usbevent::PUBLISH_USBEVENT_SPEC>;
363#[doc = "Publish configuration for event USBEVENT"]
364pub mod publish_usbevent;
365#[doc = "PUBLISH_EP0SETUP (rw) register accessor: an alias for `Reg<PUBLISH_EP0SETUP_SPEC>`"]
366pub type PUBLISH_EP0SETUP = crate::Reg<publish_ep0setup::PUBLISH_EP0SETUP_SPEC>;
367#[doc = "Publish configuration for event EP0SETUP"]
368pub mod publish_ep0setup;
369#[doc = "PUBLISH_EPDATA (rw) register accessor: an alias for `Reg<PUBLISH_EPDATA_SPEC>`"]
370pub type PUBLISH_EPDATA = crate::Reg<publish_epdata::PUBLISH_EPDATA_SPEC>;
371#[doc = "Publish configuration for event EPDATA"]
372pub mod publish_epdata;
373#[doc = "SHORTS (rw) register accessor: an alias for `Reg<SHORTS_SPEC>`"]
374pub type SHORTS = crate::Reg<shorts::SHORTS_SPEC>;
375#[doc = "Shortcuts between local events and tasks"]
376pub mod shorts;
377#[doc = "INTEN (rw) register accessor: an alias for `Reg<INTEN_SPEC>`"]
378pub type INTEN = crate::Reg<inten::INTEN_SPEC>;
379#[doc = "Enable or disable interrupt"]
380pub mod inten;
381#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
382pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
383#[doc = "Enable interrupt"]
384pub mod intenset;
385#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
386pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
387#[doc = "Disable interrupt"]
388pub mod intenclr;
389#[doc = "EVENTCAUSE (rw) register accessor: an alias for `Reg<EVENTCAUSE_SPEC>`"]
390pub type EVENTCAUSE = crate::Reg<eventcause::EVENTCAUSE_SPEC>;
391#[doc = "Details on what caused the USBEVENT event"]
392pub mod eventcause;
393#[doc = "Unspecified"]
394pub use halted::HALTED;
395#[doc = r"Cluster"]
396#[doc = "Unspecified"]
397pub mod halted;
398#[doc = "EPSTATUS (rw) register accessor: an alias for `Reg<EPSTATUS_SPEC>`"]
399pub type EPSTATUS = crate::Reg<epstatus::EPSTATUS_SPEC>;
400#[doc = "Provides information on which endpoint's EasyDMA registers have been captured"]
401pub mod epstatus;
402#[doc = "EPDATASTATUS (rw) register accessor: an alias for `Reg<EPDATASTATUS_SPEC>`"]
403pub type EPDATASTATUS = crate::Reg<epdatastatus::EPDATASTATUS_SPEC>;
404#[doc = "Provides information on which endpoint(s) an acknowledged data transfer has occurred (EPDATA event)"]
405pub mod epdatastatus;
406#[doc = "USBADDR (r) register accessor: an alias for `Reg<USBADDR_SPEC>`"]
407pub type USBADDR = crate::Reg<usbaddr::USBADDR_SPEC>;
408#[doc = "Device USB address"]
409pub mod usbaddr;
410#[doc = "BMREQUESTTYPE (r) register accessor: an alias for `Reg<BMREQUESTTYPE_SPEC>`"]
411pub type BMREQUESTTYPE = crate::Reg<bmrequesttype::BMREQUESTTYPE_SPEC>;
412#[doc = "SETUP data, byte 0, bmRequestType"]
413pub mod bmrequesttype;
414#[doc = "BREQUEST (r) register accessor: an alias for `Reg<BREQUEST_SPEC>`"]
415pub type BREQUEST = crate::Reg<brequest::BREQUEST_SPEC>;
416#[doc = "SETUP data, byte 1, bRequest"]
417pub mod brequest;
418#[doc = "WVALUEL (r) register accessor: an alias for `Reg<WVALUEL_SPEC>`"]
419pub type WVALUEL = crate::Reg<wvaluel::WVALUEL_SPEC>;
420#[doc = "SETUP data, byte 2, LSB of wValue"]
421pub mod wvaluel;
422#[doc = "WVALUEH (r) register accessor: an alias for `Reg<WVALUEH_SPEC>`"]
423pub type WVALUEH = crate::Reg<wvalueh::WVALUEH_SPEC>;
424#[doc = "SETUP data, byte 3, MSB of wValue"]
425pub mod wvalueh;
426#[doc = "WINDEXL (r) register accessor: an alias for `Reg<WINDEXL_SPEC>`"]
427pub type WINDEXL = crate::Reg<windexl::WINDEXL_SPEC>;
428#[doc = "SETUP data, byte 4, LSB of wIndex"]
429pub mod windexl;
430#[doc = "WINDEXH (r) register accessor: an alias for `Reg<WINDEXH_SPEC>`"]
431pub type WINDEXH = crate::Reg<windexh::WINDEXH_SPEC>;
432#[doc = "SETUP data, byte 5, MSB of wIndex"]
433pub mod windexh;
434#[doc = "WLENGTHL (r) register accessor: an alias for `Reg<WLENGTHL_SPEC>`"]
435pub type WLENGTHL = crate::Reg<wlengthl::WLENGTHL_SPEC>;
436#[doc = "SETUP data, byte 6, LSB of wLength"]
437pub mod wlengthl;
438#[doc = "WLENGTHH (r) register accessor: an alias for `Reg<WLENGTHH_SPEC>`"]
439pub type WLENGTHH = crate::Reg<wlengthh::WLENGTHH_SPEC>;
440#[doc = "SETUP data, byte 7, MSB of wLength"]
441pub mod wlengthh;
442#[doc = "Unspecified"]
443pub use size::SIZE;
444#[doc = r"Cluster"]
445#[doc = "Unspecified"]
446pub mod size;
447#[doc = "ENABLE (rw) register accessor: an alias for `Reg<ENABLE_SPEC>`"]
448pub type ENABLE = crate::Reg<enable::ENABLE_SPEC>;
449#[doc = "Enable USB"]
450pub mod enable;
451#[doc = "USBPULLUP (rw) register accessor: an alias for `Reg<USBPULLUP_SPEC>`"]
452pub type USBPULLUP = crate::Reg<usbpullup::USBPULLUP_SPEC>;
453#[doc = "Control of the USB pull-up"]
454pub mod usbpullup;
455#[doc = "DPDMVALUE (rw) register accessor: an alias for `Reg<DPDMVALUE_SPEC>`"]
456pub type DPDMVALUE = crate::Reg<dpdmvalue::DPDMVALUE_SPEC>;
457#[doc = "State D+ and D- lines will be forced into by the DPDMDRIVE task. The DPDMNODRIVE task reverts the control of the lines to MAC IP (no forcing)."]
458pub mod dpdmvalue;
459#[doc = "DTOGGLE (rw) register accessor: an alias for `Reg<DTOGGLE_SPEC>`"]
460pub type DTOGGLE = crate::Reg<dtoggle::DTOGGLE_SPEC>;
461#[doc = "Data toggle control and status"]
462pub mod dtoggle;
463#[doc = "EPINEN (rw) register accessor: an alias for `Reg<EPINEN_SPEC>`"]
464pub type EPINEN = crate::Reg<epinen::EPINEN_SPEC>;
465#[doc = "Endpoint IN enable"]
466pub mod epinen;
467#[doc = "EPOUTEN (rw) register accessor: an alias for `Reg<EPOUTEN_SPEC>`"]
468pub type EPOUTEN = crate::Reg<epouten::EPOUTEN_SPEC>;
469#[doc = "Endpoint OUT enable"]
470pub mod epouten;
471#[doc = "EPSTALL (w) register accessor: an alias for `Reg<EPSTALL_SPEC>`"]
472pub type EPSTALL = crate::Reg<epstall::EPSTALL_SPEC>;
473#[doc = "STALL endpoints"]
474pub mod epstall;
475#[doc = "ISOSPLIT (rw) register accessor: an alias for `Reg<ISOSPLIT_SPEC>`"]
476pub type ISOSPLIT = crate::Reg<isosplit::ISOSPLIT_SPEC>;
477#[doc = "Controls the split of ISO buffers"]
478pub mod isosplit;
479#[doc = "FRAMECNTR (r) register accessor: an alias for `Reg<FRAMECNTR_SPEC>`"]
480pub type FRAMECNTR = crate::Reg<framecntr::FRAMECNTR_SPEC>;
481#[doc = "Returns the current value of the start of frame counter"]
482pub mod framecntr;
483#[doc = "LOWPOWER (rw) register accessor: an alias for `Reg<LOWPOWER_SPEC>`"]
484pub type LOWPOWER = crate::Reg<lowpower::LOWPOWER_SPEC>;
485#[doc = "Controls USBD peripheral low power mode during USB suspend"]
486pub mod lowpower;
487#[doc = "ISOINCONFIG (rw) register accessor: an alias for `Reg<ISOINCONFIG_SPEC>`"]
488pub type ISOINCONFIG = crate::Reg<isoinconfig::ISOINCONFIG_SPEC>;
489#[doc = "Controls the response of the ISO IN endpoint to an IN token when no data is ready to be sent"]
490pub mod isoinconfig;
491#[doc = "Unspecified"]
492pub use epin::EPIN;
493#[doc = r"Cluster"]
494#[doc = "Unspecified"]
495pub mod epin;
496#[doc = "Unspecified"]
497pub use isoin::ISOIN;
498#[doc = r"Cluster"]
499#[doc = "Unspecified"]
500pub mod isoin;
501#[doc = "Unspecified"]
502pub use epout::EPOUT;
503#[doc = r"Cluster"]
504#[doc = "Unspecified"]
505pub mod epout;
506#[doc = "Unspecified"]
507pub use isoout::ISOOUT;
508#[doc = r"Cluster"]
509#[doc = "Unspecified"]
510pub mod isoout;