1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
#[doc = r" Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - OTG_FS device configuration register (OTG_FS_DCFG)"]
    pub fs_dcfg: FS_DCFG,
    #[doc = "0x04 - OTG_FS device control register (OTG_FS_DCTL)"]
    pub fs_dctl: FS_DCTL,
    #[doc = "0x08 - OTG_FS device status register (OTG_FS_DSTS)"]
    pub fs_dsts: FS_DSTS,
    _reserved0: [u8; 4usize],
    #[doc = "0x10 - OTG_FS device IN endpoint common interrupt mask register (OTG_FS_DIEPMSK)"]
    pub fs_diepmsk: FS_DIEPMSK,
    #[doc = "0x14 - OTG_FS device OUT endpoint common interrupt mask register (OTG_FS_DOEPMSK)"]
    pub fs_doepmsk: FS_DOEPMSK,
    #[doc = "0x18 - OTG_FS device all endpoints interrupt register (OTG_FS_DAINT)"]
    pub fs_daint: FS_DAINT,
    #[doc = "0x1c - OTG_FS all endpoints interrupt mask register (OTG_FS_DAINTMSK)"]
    pub fs_daintmsk: FS_DAINTMSK,
    _reserved1: [u8; 8usize],
    #[doc = "0x28 - OTG_FS device VBUS discharge time register"]
    pub dvbusdis: DVBUSDIS,
    #[doc = "0x2c - OTG_FS device VBUS pulsing time register"]
    pub dvbuspulse: DVBUSPULSE,
    _reserved2: [u8; 4usize],
    #[doc = "0x34 - OTG_FS device IN endpoint FIFO empty interrupt mask register"]
    pub diepempmsk: DIEPEMPMSK,
    _reserved3: [u8; 200usize],
    #[doc = "0x100 - OTG_FS device control IN endpoint 0 control register (OTG_FS_DIEPCTL0)"]
    pub fs_diepctl0: FS_DIEPCTL0,
    _reserved4: [u8; 4usize],
    #[doc = "0x108 - device endpoint-x interrupt register"]
    pub diepint0: DIEPINT0,
    _reserved5: [u8; 4usize],
    #[doc = "0x110 - device endpoint-0 transfer size register"]
    pub dieptsiz0: DIEPTSIZ0,
    _reserved6: [u8; 4usize],
    #[doc = "0x118 - OTG_FS device IN endpoint transmit FIFO status register"]
    pub dtxfsts0: DTXFSTS0,
    _reserved7: [u8; 4usize],
    #[doc = "0x120 - OTG device endpoint-1 control register"]
    pub diepctl1: DIEPCTL1,
    _reserved8: [u8; 4usize],
    #[doc = "0x128 - device endpoint-1 interrupt register"]
    pub diepint1: DIEPINT1,
    _reserved9: [u8; 4usize],
    #[doc = "0x130 - device endpoint-1 transfer size register"]
    pub dieptsiz1: DIEPTSIZ1,
    _reserved10: [u8; 4usize],
    #[doc = "0x138 - OTG_FS device IN endpoint transmit FIFO status register"]
    pub dtxfsts1: DTXFSTS1,
    _reserved11: [u8; 4usize],
    #[doc = "0x140 - OTG device endpoint-2 control register"]
    pub diepctl2: DIEPCTL2,
    _reserved12: [u8; 4usize],
    #[doc = "0x148 - device endpoint-2 interrupt register"]
    pub diepint2: DIEPINT2,
    _reserved13: [u8; 4usize],
    #[doc = "0x150 - device endpoint-2 transfer size register"]
    pub dieptsiz2: DIEPTSIZ2,
    _reserved14: [u8; 4usize],
    #[doc = "0x158 - OTG_FS device IN endpoint transmit FIFO status register"]
    pub dtxfsts2: DTXFSTS2,
    _reserved15: [u8; 4usize],
    #[doc = "0x160 - OTG device endpoint-3 control register"]
    pub diepctl3: DIEPCTL3,
    _reserved16: [u8; 4usize],
    #[doc = "0x168 - device endpoint-3 interrupt register"]
    pub diepint3: DIEPINT3,
    _reserved17: [u8; 4usize],
    #[doc = "0x170 - device endpoint-3 transfer size register"]
    pub dieptsiz3: DIEPTSIZ3,
    _reserved18: [u8; 4usize],
    #[doc = "0x178 - OTG_FS device IN endpoint transmit FIFO status register"]
    pub dtxfsts3: DTXFSTS3,
    _reserved19: [u8; 388usize],
    #[doc = "0x300 - device endpoint-0 control register"]
    pub doepctl0: DOEPCTL0,
    _reserved20: [u8; 4usize],
    #[doc = "0x308 - device endpoint-0 interrupt register"]
    pub doepint0: DOEPINT0,
    _reserved21: [u8; 4usize],
    #[doc = "0x310 - device OUT endpoint-0 transfer size register"]
    pub doeptsiz0: DOEPTSIZ0,
    _reserved22: [u8; 12usize],
    #[doc = "0x320 - device endpoint-1 control register"]
    pub doepctl1: DOEPCTL1,
    _reserved23: [u8; 4usize],
    #[doc = "0x328 - device endpoint-1 interrupt register"]
    pub doepint1: DOEPINT1,
    _reserved24: [u8; 4usize],
    #[doc = "0x330 - device OUT endpoint-1 transfer size register"]
    pub doeptsiz1: DOEPTSIZ1,
    _reserved25: [u8; 12usize],
    #[doc = "0x340 - device endpoint-2 control register"]
    pub doepctl2: DOEPCTL2,
    _reserved26: [u8; 4usize],
    #[doc = "0x348 - device endpoint-2 interrupt register"]
    pub doepint2: DOEPINT2,
    _reserved27: [u8; 4usize],
    #[doc = "0x350 - device OUT endpoint-2 transfer size register"]
    pub doeptsiz2: DOEPTSIZ2,
    _reserved28: [u8; 12usize],
    #[doc = "0x360 - device endpoint-3 control register"]
    pub doepctl3: DOEPCTL3,
    _reserved29: [u8; 4usize],
    #[doc = "0x368 - device endpoint-3 interrupt register"]
    pub doepint3: DOEPINT3,
    _reserved30: [u8; 4usize],
    #[doc = "0x370 - device OUT endpoint-3 transfer size register"]
    pub doeptsiz3: DOEPTSIZ3,
}
#[doc = "OTG_FS device configuration register (OTG_FS_DCFG)"]
pub struct FS_DCFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device configuration register (OTG_FS_DCFG)"]
pub mod fs_dcfg;
#[doc = "OTG_FS device control register (OTG_FS_DCTL)"]
pub struct FS_DCTL {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device control register (OTG_FS_DCTL)"]
pub mod fs_dctl;
#[doc = "OTG_FS device status register (OTG_FS_DSTS)"]
pub struct FS_DSTS {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device status register (OTG_FS_DSTS)"]
pub mod fs_dsts;
#[doc = "OTG_FS device IN endpoint common interrupt mask register (OTG_FS_DIEPMSK)"]
pub struct FS_DIEPMSK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device IN endpoint common interrupt mask register (OTG_FS_DIEPMSK)"]
pub mod fs_diepmsk;
#[doc = "OTG_FS device OUT endpoint common interrupt mask register (OTG_FS_DOEPMSK)"]
pub struct FS_DOEPMSK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device OUT endpoint common interrupt mask register (OTG_FS_DOEPMSK)"]
pub mod fs_doepmsk;
#[doc = "OTG_FS device all endpoints interrupt register (OTG_FS_DAINT)"]
pub struct FS_DAINT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device all endpoints interrupt register (OTG_FS_DAINT)"]
pub mod fs_daint;
#[doc = "OTG_FS all endpoints interrupt mask register (OTG_FS_DAINTMSK)"]
pub struct FS_DAINTMSK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS all endpoints interrupt mask register (OTG_FS_DAINTMSK)"]
pub mod fs_daintmsk;
#[doc = "OTG_FS device VBUS discharge time register"]
pub struct DVBUSDIS {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device VBUS discharge time register"]
pub mod dvbusdis;
#[doc = "OTG_FS device VBUS pulsing time register"]
pub struct DVBUSPULSE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device VBUS pulsing time register"]
pub mod dvbuspulse;
#[doc = "OTG_FS device IN endpoint FIFO empty interrupt mask register"]
pub struct DIEPEMPMSK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device IN endpoint FIFO empty interrupt mask register"]
pub mod diepempmsk;
#[doc = "OTG_FS device control IN endpoint 0 control register (OTG_FS_DIEPCTL0)"]
pub struct FS_DIEPCTL0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device control IN endpoint 0 control register (OTG_FS_DIEPCTL0)"]
pub mod fs_diepctl0;
#[doc = "OTG device endpoint-1 control register"]
pub struct DIEPCTL1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG device endpoint-1 control register"]
pub mod diepctl1;
#[doc = "OTG device endpoint-2 control register"]
pub struct DIEPCTL2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG device endpoint-2 control register"]
pub mod diepctl2;
#[doc = "OTG device endpoint-3 control register"]
pub struct DIEPCTL3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG device endpoint-3 control register"]
pub mod diepctl3;
#[doc = "device endpoint-0 control register"]
pub struct DOEPCTL0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-0 control register"]
pub mod doepctl0;
#[doc = "device endpoint-1 control register"]
pub struct DOEPCTL1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-1 control register"]
pub mod doepctl1;
#[doc = "device endpoint-2 control register"]
pub struct DOEPCTL2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-2 control register"]
pub mod doepctl2;
#[doc = "device endpoint-3 control register"]
pub struct DOEPCTL3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-3 control register"]
pub mod doepctl3;
#[doc = "device endpoint-x interrupt register"]
pub struct DIEPINT0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-x interrupt register"]
pub mod diepint0;
#[doc = "device endpoint-1 interrupt register"]
pub struct DIEPINT1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-1 interrupt register"]
pub mod diepint1;
#[doc = "device endpoint-2 interrupt register"]
pub struct DIEPINT2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-2 interrupt register"]
pub mod diepint2;
#[doc = "device endpoint-3 interrupt register"]
pub struct DIEPINT3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-3 interrupt register"]
pub mod diepint3;
#[doc = "device endpoint-0 interrupt register"]
pub struct DOEPINT0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-0 interrupt register"]
pub mod doepint0;
#[doc = "device endpoint-1 interrupt register"]
pub struct DOEPINT1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-1 interrupt register"]
pub mod doepint1;
#[doc = "device endpoint-2 interrupt register"]
pub struct DOEPINT2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-2 interrupt register"]
pub mod doepint2;
#[doc = "device endpoint-3 interrupt register"]
pub struct DOEPINT3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-3 interrupt register"]
pub mod doepint3;
#[doc = "device endpoint-0 transfer size register"]
pub struct DIEPTSIZ0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-0 transfer size register"]
pub mod dieptsiz0;
#[doc = "device OUT endpoint-0 transfer size register"]
pub struct DOEPTSIZ0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device OUT endpoint-0 transfer size register"]
pub mod doeptsiz0;
#[doc = "device endpoint-1 transfer size register"]
pub struct DIEPTSIZ1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-1 transfer size register"]
pub mod dieptsiz1;
#[doc = "device endpoint-2 transfer size register"]
pub struct DIEPTSIZ2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-2 transfer size register"]
pub mod dieptsiz2;
#[doc = "device endpoint-3 transfer size register"]
pub struct DIEPTSIZ3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device endpoint-3 transfer size register"]
pub mod dieptsiz3;
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub struct DTXFSTS0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub mod dtxfsts0;
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub struct DTXFSTS1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub mod dtxfsts1;
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub struct DTXFSTS2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub mod dtxfsts2;
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub struct DTXFSTS3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "OTG_FS device IN endpoint transmit FIFO status register"]
pub mod dtxfsts3;
#[doc = "device OUT endpoint-1 transfer size register"]
pub struct DOEPTSIZ1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device OUT endpoint-1 transfer size register"]
pub mod doeptsiz1;
#[doc = "device OUT endpoint-2 transfer size register"]
pub struct DOEPTSIZ2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device OUT endpoint-2 transfer size register"]
pub mod doeptsiz2;
#[doc = "device OUT endpoint-3 transfer size register"]
pub struct DOEPTSIZ3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "device OUT endpoint-3 transfer size register"]
pub mod doeptsiz3;