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
#[doc = r" Register block"] #[repr(C)] pub struct RegisterBlock { _reserved0: [u8; 256usize], #[doc = "0x100 - Capability register length"] pub caplength: CAPLENGTH, #[doc = "0x104 - Host controller structural parameters"] pub hcsparams: HCSPARAMS, #[doc = "0x108 - Host controller capability parameters"] pub hccparams: HCCPARAMS, _reserved1: [u8; 20usize], #[doc = "0x120 - Device interface version number"] pub dciversion: DCIVERSION, _reserved2: [u8; 28usize], #[doc = "0x140 - USB command (device mode)"] pub usbcmd_d: USBCMD_D, #[doc = "0x144 - USB status (device mode)"] pub usbsts_d: USBSTS_D, #[doc = "0x148 - USB interrupt enable (device mode)"] pub usbintr_d: USBINTR_D, #[doc = "0x14c - USB frame index (device mode)"] pub frindex_d: FRINDEX_D, _reserved3: [u8; 4usize], #[doc = "0x154 - USB device address (device mode)"] pub deviceaddr: DEVICEADDR, #[doc = "0x158 - Address of endpoint list in memory"] pub endpointlistaddr: ENDPOINTLISTADDR, #[doc = "0x15c - Asynchronous buffer status for embedded TT (host mode)"] pub ttctrl: TTCTRL, #[doc = "0x160 - Programmable burst size"] pub burstsize: BURSTSIZE, #[doc = "0x164 - Host transmit pre-buffer packet tuning (host mode)"] pub txfilltuning: TXFILLTUNING, _reserved4: [u8; 12usize], #[doc = "0x174 - Length of virtual frame"] pub binterval: BINTERVAL, #[doc = "0x178 - Endpoint NAK (device mode)"] pub endptnak: ENDPTNAK, #[doc = "0x17c - Endpoint NAK Enable (device mode)"] pub endptnaken: ENDPTNAKEN, _reserved5: [u8; 4usize], #[doc = "0x184 - Port 1 status/control (device mode)"] pub portsc1_d: PORTSC1_D, _reserved6: [u8; 28usize], #[doc = "0x1a4 - OTG status and control"] pub otgsc: OTGSC, #[doc = "0x1a8 - USB device mode (device mode)"] pub usbmode_d: USBMODE_D, #[doc = "0x1ac - Endpoint setup status"] pub endptsetupstat: ENDPTSETUPSTAT, #[doc = "0x1b0 - Endpoint initialization"] pub endptprime: ENDPTPRIME, #[doc = "0x1b4 - Endpoint de-initialization"] pub endptflush: ENDPTFLUSH, #[doc = "0x1b8 - Endpoint status"] pub endptstat: ENDPTSTAT, #[doc = "0x1bc - Endpoint complete"] pub endptcomplete: ENDPTCOMPLETE, #[doc = "0x1c0 - Endpoint control 0"] pub endptctrl0: ENDPTCTRL0, #[doc = "0x1c4 - Endpoint control"] pub endptctrl1: ENDPTCTRL, #[doc = "0x1c8 - Endpoint control"] pub endptctrl2: ENDPTCTRL, #[doc = "0x1cc - Endpoint control"] pub endptctrl3: ENDPTCTRL, #[doc = "0x1d0 - Endpoint control"] pub endptctrl4: ENDPTCTRL, #[doc = "0x1d4 - Endpoint control"] pub endptctrl5: ENDPTCTRL, } #[doc = "Capability register length"] pub struct CAPLENGTH { register: ::vcell::VolatileCell<u32>, } #[doc = "Capability register length"] pub mod caplength; #[doc = "Host controller structural parameters"] pub struct HCSPARAMS { register: ::vcell::VolatileCell<u32>, } #[doc = "Host controller structural parameters"] pub mod hcsparams; #[doc = "Host controller capability parameters"] pub struct HCCPARAMS { register: ::vcell::VolatileCell<u32>, } #[doc = "Host controller capability parameters"] pub mod hccparams; #[doc = "Device interface version number"] pub struct DCIVERSION { register: ::vcell::VolatileCell<u32>, } #[doc = "Device interface version number"] pub mod dciversion; #[doc = "USB command (device mode)"] pub struct USBCMD_D { register: ::vcell::VolatileCell<u32>, } #[doc = "USB command (device mode)"] pub mod usbcmd_d; #[doc = "USB command (host mode)"] pub struct USBCMD_H { register: ::vcell::VolatileCell<u32>, } #[doc = "USB command (host mode)"] pub mod usbcmd_h; #[doc = "USB status (device mode)"] pub struct USBSTS_D { register: ::vcell::VolatileCell<u32>, } #[doc = "USB status (device mode)"] pub mod usbsts_d; #[doc = "USB status (host mode)"] pub struct USBSTS_H { register: ::vcell::VolatileCell<u32>, } #[doc = "USB status (host mode)"] pub mod usbsts_h; #[doc = "USB interrupt enable (device mode)"] pub struct USBINTR_D { register: ::vcell::VolatileCell<u32>, } #[doc = "USB interrupt enable (device mode)"] pub mod usbintr_d; #[doc = "USB interrupt enable (host mode)"] pub struct USBINTR_H { register: ::vcell::VolatileCell<u32>, } #[doc = "USB interrupt enable (host mode)"] pub mod usbintr_h; #[doc = "USB frame index (device mode)"] pub struct FRINDEX_D { register: ::vcell::VolatileCell<u32>, } #[doc = "USB frame index (device mode)"] pub mod frindex_d; #[doc = "USB frame index (host mode)"] pub struct FRINDEX_H { register: ::vcell::VolatileCell<u32>, } #[doc = "USB frame index (host mode)"] pub mod frindex_h; #[doc = "USB device address (device mode)"] pub struct DEVICEADDR { register: ::vcell::VolatileCell<u32>, } #[doc = "USB device address (device mode)"] pub mod deviceaddr; #[doc = "Frame list base address (host mode)"] pub struct PERIODICLISTBASE { register: ::vcell::VolatileCell<u32>, } #[doc = "Frame list base address (host mode)"] pub mod periodiclistbase; #[doc = "Address of endpoint list in memory"] pub struct ENDPOINTLISTADDR { register: ::vcell::VolatileCell<u32>, } #[doc = "Address of endpoint list in memory"] pub mod endpointlistaddr; #[doc = "Address of endpoint list in memory"] pub struct ASYNCLISTADDR { register: ::vcell::VolatileCell<u32>, } #[doc = "Address of endpoint list in memory"] pub mod asynclistaddr; #[doc = "Asynchronous buffer status for embedded TT (host mode)"] pub struct TTCTRL { register: ::vcell::VolatileCell<u32>, } #[doc = "Asynchronous buffer status for embedded TT (host mode)"] pub mod ttctrl; #[doc = "Programmable burst size"] pub struct BURSTSIZE { register: ::vcell::VolatileCell<u32>, } #[doc = "Programmable burst size"] pub mod burstsize; #[doc = "Host transmit pre-buffer packet tuning (host mode)"] pub struct TXFILLTUNING { register: ::vcell::VolatileCell<u32>, } #[doc = "Host transmit pre-buffer packet tuning (host mode)"] pub mod txfilltuning; #[doc = "Length of virtual frame"] pub struct BINTERVAL { register: ::vcell::VolatileCell<u32>, } #[doc = "Length of virtual frame"] pub mod binterval; #[doc = "Endpoint NAK (device mode)"] pub struct ENDPTNAK { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint NAK (device mode)"] pub mod endptnak; #[doc = "Endpoint NAK Enable (device mode)"] pub struct ENDPTNAKEN { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint NAK Enable (device mode)"] pub mod endptnaken; #[doc = "Port 1 status/control (device mode)"] pub struct PORTSC1_D { register: ::vcell::VolatileCell<u32>, } #[doc = "Port 1 status/control (device mode)"] pub mod portsc1_d; #[doc = "Port 1 status/control (host mode)"] pub struct PORTSC1_H { register: ::vcell::VolatileCell<u32>, } #[doc = "Port 1 status/control (host mode)"] pub mod portsc1_h; #[doc = "OTG status and control"] pub struct OTGSC { register: ::vcell::VolatileCell<u32>, } #[doc = "OTG status and control"] pub mod otgsc; #[doc = "USB device mode (device mode)"] pub struct USBMODE_D { register: ::vcell::VolatileCell<u32>, } #[doc = "USB device mode (device mode)"] pub mod usbmode_d; #[doc = "USB mode (host mode)"] pub struct USBMODE_H { register: ::vcell::VolatileCell<u32>, } #[doc = "USB mode (host mode)"] pub mod usbmode_h; #[doc = "Endpoint setup status"] pub struct ENDPTSETUPSTAT { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint setup status"] pub mod endptsetupstat; #[doc = "Endpoint initialization"] pub struct ENDPTPRIME { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint initialization"] pub mod endptprime; #[doc = "Endpoint de-initialization"] pub struct ENDPTFLUSH { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint de-initialization"] pub mod endptflush; #[doc = "Endpoint status"] pub struct ENDPTSTAT { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint status"] pub mod endptstat; #[doc = "Endpoint complete"] pub struct ENDPTCOMPLETE { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint complete"] pub mod endptcomplete; #[doc = "Endpoint control 0"] pub struct ENDPTCTRL0 { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint control 0"] pub mod endptctrl0; #[doc = "Endpoint control"] pub struct ENDPTCTRL { register: ::vcell::VolatileCell<u32>, } #[doc = "Endpoint control"] pub mod endptctrl;