#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod ID {
pub mod ID {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NID {
pub const offset: u32 = 8;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod REVISION {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HWGENERAL {
pub mod PHYW {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PHYW_0: u32 = 0b00;
pub const PHYW_1: u32 = 0b01;
pub const PHYW_2: u32 = 0b10;
pub const PHYW_3: u32 = 0b11;
}
}
pub mod PHYM {
pub const offset: u32 = 6;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PHYM_0: u32 = 0b000;
pub const PHYM_1: u32 = 0b001;
pub const PHYM_2: u32 = 0b010;
pub const PHYM_3: u32 = 0b011;
pub const PHYM_4: u32 = 0b100;
pub const PHYM_5: u32 = 0b101;
pub const PHYM_6: u32 = 0b110;
pub const PHYM_7: u32 = 0b111;
}
}
pub mod SM {
pub const offset: u32 = 9;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SM_0: u32 = 0b00;
pub const SM_1: u32 = 0b01;
pub const SM_2: u32 = 0b10;
pub const SM_3: u32 = 0b11;
}
}
}
pub mod HWHOST {
pub mod HC {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HC_0: u32 = 0b0;
pub const HC_1: u32 = 0b1;
}
}
pub mod NPORT {
pub const offset: u32 = 1;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HWDEVICE {
pub mod DC {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DC_0: u32 = 0b0;
pub const DC_1: u32 = 0b1;
}
}
pub mod DEVEP {
pub const offset: u32 = 1;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HWTXBUF {
pub mod TXBURST {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXCHANADD {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HWRXBUF {
pub mod RXBURST {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXADD {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod GPTIMER0LD {
pub mod GPTLD {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod GPTIMER0CTRL {
pub mod GPTCNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GPTMODE {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GPTMODE_0: u32 = 0b0;
pub const GPTMODE_1: u32 = 0b1;
}
}
pub mod GPTRST {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GPTRST_0: u32 = 0b0;
pub const GPTRST_1: u32 = 0b1;
}
}
pub mod GPTRUN {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GPTRUN_0: u32 = 0b0;
pub const GPTRUN_1: u32 = 0b1;
}
}
}
pub mod GPTIMER1LD {
pub use super::GPTIMER0LD::GPTLD;
}
pub mod GPTIMER1CTRL {
pub mod GPTCNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GPTMODE {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GPTMODE_0: u32 = 0b0;
pub const GPTMODE_1: u32 = 0b1;
}
}
pub mod GPTRST {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GPTRST_0: u32 = 0b0;
pub const GPTRST_1: u32 = 0b1;
}
}
pub mod GPTRUN {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GPTRUN_0: u32 = 0b0;
pub const GPTRUN_1: u32 = 0b1;
}
}
}
pub mod SBUSCFG {
pub mod AHBBRST {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AHBBRST_0: u32 = 0b000;
pub const AHBBRST_1: u32 = 0b001;
pub const AHBBRST_2: u32 = 0b010;
pub const AHBBRST_3: u32 = 0b011;
pub const AHBBRST_5: u32 = 0b101;
pub const AHBBRST_6: u32 = 0b110;
pub const AHBBRST_7: u32 = 0b111;
}
}
}
pub mod CAPLENGTH {
pub mod CAPLENGTH {
pub const offset: u8 = 0;
pub const mask: u8 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HCIVERSION {
pub mod HCIVERSION {
pub const offset: u16 = 0;
pub const mask: u16 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HCSPARAMS {
pub mod N_PORTS {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PPC {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod N_PCC {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod N_CC {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const N_CC_0: u32 = 0b0000;
pub const N_CC_1: u32 = 0b0001;
}
}
pub mod PI {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod N_PTT {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod N_TT {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HCCPARAMS {
pub mod ADC {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PFL {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ASP {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IST {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EECP {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCIVERSION {
pub mod DCIVERSION {
pub const offset: u16 = 0;
pub const mask: u16 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCCPARAMS {
pub mod DEN {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DC {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HC {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod USBCMD {
pub mod RS {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RST {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FS_1 {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PSE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PSE_0: u32 = 0b0;
pub const PSE_1: u32 = 0b1;
}
}
pub mod ASE {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ASE_0: u32 = 0b0;
pub const ASE_1: u32 = 0b1;
}
}
pub mod IAA {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ASP {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ASPE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SUTW {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ATDTW {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FS_2 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FS_2_0: u32 = 0b0;
pub const FS_2_1: u32 = 0b1;
}
}
pub mod ITC {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ITC_0: u32 = 0b00000000;
pub const ITC_1: u32 = 0b00000001;
pub const ITC_2: u32 = 0b00000010;
pub const ITC_4: u32 = 0b00000100;
pub const ITC_8: u32 = 0b00001000;
pub const ITC_16: u32 = 0b00010000;
pub const ITC_32: u32 = 0b00100000;
pub const ITC_64: u32 = 0b01000000;
}
}
}
pub mod USBSTS {
pub mod UI {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UEI {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PCI {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FRI {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SEI {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AAI {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod URI {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SRI {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SLI {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ULPII {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HCH {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RCL {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PS {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AS {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NAKI {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TI0 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TI1 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod USBINTR {
pub mod UE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UEE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PCE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FRE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SEE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AAE {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod URE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SRE {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SLE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ULPIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NAKE {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UAIE {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UPIE {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TIE0 {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TIE1 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FRINDEX {
pub mod FRINDEX {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRINDEX_0: u32 = 0b00000000000000;
pub const FRINDEX_1: u32 = 0b00000000000001;
pub const FRINDEX_2: u32 = 0b00000000000010;
pub const FRINDEX_3: u32 = 0b00000000000011;
pub const FRINDEX_4: u32 = 0b00000000000100;
pub const FRINDEX_5: u32 = 0b00000000000101;
pub const FRINDEX_6: u32 = 0b00000000000110;
pub const FRINDEX_7: u32 = 0b00000000000111;
}
}
}
pub mod DEVICEADDR {
pub mod USBADRA {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod USBADR {
pub const offset: u32 = 25;
pub const mask: u32 = 0x7f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BASEADR {
pub const offset: u32 = 12;
pub const mask: u32 = 0xfffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ASYNCLISTADDR {
pub mod ASYBASE {
pub const offset: u32 = 5;
pub const mask: u32 = 0x7ffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EPBASE {
pub const offset: u32 = 11;
pub const mask: u32 = 0x1fffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod BURSTSIZE {
pub mod RXPBURST {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXPBURST {
pub const offset: u32 = 8;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TXFILLTUNING {
pub mod TXSCHOH {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXSCHHEALTH {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFIFOTHRES {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTNAK {
pub mod EPRN {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EPTN {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTNAKEN {
pub mod EPRNE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EPTNE {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CONFIGFLAG {
pub mod CF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CF_0: u32 = 0b0;
pub const CF_1: u32 = 0b1;
}
}
}
pub mod PORTSC1 {
pub mod CCS {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CSC {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PEC {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod OCA {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const OCA_0: u32 = 0b0;
pub const OCA_1: u32 = 0b1;
}
}
pub mod OCC {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FPR {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SUSP {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PR {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HSP {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LS {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LS_0: u32 = 0b00;
pub const LS_1: u32 = 0b01;
pub const LS_2: u32 = 0b10;
pub const LS_3: u32 = 0b11;
}
}
pub mod PP {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PO {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PIC {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PIC_0: u32 = 0b00;
pub const PIC_1: u32 = 0b01;
pub const PIC_2: u32 = 0b10;
pub const PIC_3: u32 = 0b11;
}
}
pub mod PTC {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PTC_0: u32 = 0b0000;
pub const PTC_1: u32 = 0b0001;
pub const PTC_2: u32 = 0b0010;
pub const PTC_3: u32 = 0b0011;
pub const PTC_4: u32 = 0b0100;
pub const PTC_5: u32 = 0b0101;
pub const PTC_6: u32 = 0b0110;
pub const PTC_7: u32 = 0b0111;
}
}
pub mod WKCN {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WKDC {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WKOC {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PHCD {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PHCD_0: u32 = 0b0;
pub const PHCD_1: u32 = 0b1;
}
}
pub mod PFSC {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PFSC_0: u32 = 0b0;
pub const PFSC_1: u32 = 0b1;
}
}
pub mod PTS_2 {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PSPD {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PSPD_0: u32 = 0b00;
pub const PSPD_1: u32 = 0b01;
pub const PSPD_2: u32 = 0b10;
pub const PSPD_3: u32 = 0b11;
}
}
pub mod PTW {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PTW_0: u32 = 0b0;
pub const PTW_1: u32 = 0b1;
}
}
pub mod STS {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PTS_1 {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod OTGSC {
pub mod VD {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VC {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod OT {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DP {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDPU {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ID {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AVV {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ASV {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BSV {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BSE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TOG_1MS {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DPS {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDIS {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AVVIS {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ASVIS {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BSVIS {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BSEIS {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STATUS_1MS {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DPIS {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDIE {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AVVIE {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ASVIE {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BSVIE {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BSEIE {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EN_1MS {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DPIE {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod USBMODE {
pub mod CM {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CM_0: u32 = 0b00;
pub const CM_2: u32 = 0b10;
pub const CM_3: u32 = 0b11;
}
}
pub mod ES {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ES_0: u32 = 0b0;
pub const ES_1: u32 = 0b1;
}
}
pub mod SLOM {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SLOM_0: u32 = 0b0;
pub const SLOM_1: u32 = 0b1;
}
}
pub mod SDIS {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTSETUPSTAT {
pub mod ENDPTSETUPSTAT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTPRIME {
pub mod PERB {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PETB {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTFLUSH {
pub mod FERB {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FETB {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTSTAT {
pub mod ERBR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ETBR {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTCOMPLETE {
pub mod ERCE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ETCE {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTCTRL0 {
pub mod RXS {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXT {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXE {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXS {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXT {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTCTRL1 {
pub mod RXS {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXD {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXT {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXI {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXR {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXE {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXS {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXD {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXT {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXI {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXR {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ENDPTCTRL2 {
pub use super::ENDPTCTRL1::RXD;
pub use super::ENDPTCTRL1::RXE;
pub use super::ENDPTCTRL1::RXI;
pub use super::ENDPTCTRL1::RXR;
pub use super::ENDPTCTRL1::RXS;
pub use super::ENDPTCTRL1::RXT;
pub use super::ENDPTCTRL1::TXD;
pub use super::ENDPTCTRL1::TXE;
pub use super::ENDPTCTRL1::TXI;
pub use super::ENDPTCTRL1::TXR;
pub use super::ENDPTCTRL1::TXS;
pub use super::ENDPTCTRL1::TXT;
}
pub mod ENDPTCTRL3 {
pub use super::ENDPTCTRL1::RXD;
pub use super::ENDPTCTRL1::RXE;
pub use super::ENDPTCTRL1::RXI;
pub use super::ENDPTCTRL1::RXR;
pub use super::ENDPTCTRL1::RXS;
pub use super::ENDPTCTRL1::RXT;
pub use super::ENDPTCTRL1::TXD;
pub use super::ENDPTCTRL1::TXE;
pub use super::ENDPTCTRL1::TXI;
pub use super::ENDPTCTRL1::TXR;
pub use super::ENDPTCTRL1::TXS;
pub use super::ENDPTCTRL1::TXT;
}
pub mod ENDPTCTRL4 {
pub use super::ENDPTCTRL1::RXD;
pub use super::ENDPTCTRL1::RXE;
pub use super::ENDPTCTRL1::RXI;
pub use super::ENDPTCTRL1::RXR;
pub use super::ENDPTCTRL1::RXS;
pub use super::ENDPTCTRL1::RXT;
pub use super::ENDPTCTRL1::TXD;
pub use super::ENDPTCTRL1::TXE;
pub use super::ENDPTCTRL1::TXI;
pub use super::ENDPTCTRL1::TXR;
pub use super::ENDPTCTRL1::TXS;
pub use super::ENDPTCTRL1::TXT;
}
pub mod ENDPTCTRL5 {
pub use super::ENDPTCTRL1::RXD;
pub use super::ENDPTCTRL1::RXE;
pub use super::ENDPTCTRL1::RXI;
pub use super::ENDPTCTRL1::RXR;
pub use super::ENDPTCTRL1::RXS;
pub use super::ENDPTCTRL1::RXT;
pub use super::ENDPTCTRL1::TXD;
pub use super::ENDPTCTRL1::TXE;
pub use super::ENDPTCTRL1::TXI;
pub use super::ENDPTCTRL1::TXR;
pub use super::ENDPTCTRL1::TXS;
pub use super::ENDPTCTRL1::TXT;
}
pub mod ENDPTCTRL6 {
pub use super::ENDPTCTRL1::RXD;
pub use super::ENDPTCTRL1::RXE;
pub use super::ENDPTCTRL1::RXI;
pub use super::ENDPTCTRL1::RXR;
pub use super::ENDPTCTRL1::RXS;
pub use super::ENDPTCTRL1::RXT;
pub use super::ENDPTCTRL1::TXD;
pub use super::ENDPTCTRL1::TXE;
pub use super::ENDPTCTRL1::TXI;
pub use super::ENDPTCTRL1::TXR;
pub use super::ENDPTCTRL1::TXS;
pub use super::ENDPTCTRL1::TXT;
}
pub mod ENDPTCTRL7 {
pub use super::ENDPTCTRL1::RXD;
pub use super::ENDPTCTRL1::RXE;
pub use super::ENDPTCTRL1::RXI;
pub use super::ENDPTCTRL1::RXR;
pub use super::ENDPTCTRL1::RXS;
pub use super::ENDPTCTRL1::RXT;
pub use super::ENDPTCTRL1::TXD;
pub use super::ENDPTCTRL1::TXE;
pub use super::ENDPTCTRL1::TXI;
pub use super::ENDPTCTRL1::TXR;
pub use super::ENDPTCTRL1::TXS;
pub use super::ENDPTCTRL1::TXT;
}
#[repr(C)]
pub struct RegisterBlock {
pub ID: RORegister<u32>,
pub HWGENERAL: RORegister<u32>,
pub HWHOST: RORegister<u32>,
pub HWDEVICE: RORegister<u32>,
pub HWTXBUF: RORegister<u32>,
pub HWRXBUF: RORegister<u32>,
_reserved1: [u32; 26],
pub GPTIMER0LD: RWRegister<u32>,
pub GPTIMER0CTRL: RWRegister<u32>,
pub GPTIMER1LD: RWRegister<u32>,
pub GPTIMER1CTRL: RWRegister<u32>,
pub SBUSCFG: RWRegister<u32>,
_reserved2: [u32; 27],
pub CAPLENGTH: RORegister<u8>,
_reserved3: [u8; 1],
pub HCIVERSION: RORegister<u16>,
pub HCSPARAMS: RORegister<u32>,
pub HCCPARAMS: RORegister<u32>,
_reserved4: [u32; 5],
pub DCIVERSION: RORegister<u16>,
_reserved5: [u16; 1],
pub DCCPARAMS: RORegister<u32>,
_reserved6: [u32; 6],
pub USBCMD: RWRegister<u32>,
pub USBSTS: RWRegister<u32>,
pub USBINTR: RWRegister<u32>,
pub FRINDEX: RWRegister<u32>,
_reserved7: [u32; 1],
pub DEVICEADDR: RWRegister<u32>,
pub ASYNCLISTADDR: RWRegister<u32>,
_reserved8: [u32; 1],
pub BURSTSIZE: RWRegister<u32>,
pub TXFILLTUNING: RWRegister<u32>,
_reserved9: [u32; 4],
pub ENDPTNAK: RWRegister<u32>,
pub ENDPTNAKEN: RWRegister<u32>,
pub CONFIGFLAG: RORegister<u32>,
pub PORTSC1: RWRegister<u32>,
_reserved10: [u32; 7],
pub OTGSC: RWRegister<u32>,
pub USBMODE: RWRegister<u32>,
pub ENDPTSETUPSTAT: RWRegister<u32>,
pub ENDPTPRIME: RWRegister<u32>,
pub ENDPTFLUSH: RWRegister<u32>,
pub ENDPTSTAT: RORegister<u32>,
pub ENDPTCOMPLETE: RWRegister<u32>,
pub ENDPTCTRL0: RWRegister<u32>,
pub ENDPTCTRL1: RWRegister<u32>,
pub ENDPTCTRL2: RWRegister<u32>,
pub ENDPTCTRL3: RWRegister<u32>,
pub ENDPTCTRL4: RWRegister<u32>,
pub ENDPTCTRL5: RWRegister<u32>,
pub ENDPTCTRL6: RWRegister<u32>,
pub ENDPTCTRL7: RWRegister<u32>,
}
pub struct ResetValues {
pub ID: u32,
pub HWGENERAL: u32,
pub HWHOST: u32,
pub HWDEVICE: u32,
pub HWTXBUF: u32,
pub HWRXBUF: u32,
pub GPTIMER0LD: u32,
pub GPTIMER0CTRL: u32,
pub GPTIMER1LD: u32,
pub GPTIMER1CTRL: u32,
pub SBUSCFG: u32,
pub CAPLENGTH: u8,
pub HCIVERSION: u16,
pub HCSPARAMS: u32,
pub HCCPARAMS: u32,
pub DCIVERSION: u16,
pub DCCPARAMS: u32,
pub USBCMD: u32,
pub USBSTS: u32,
pub USBINTR: u32,
pub FRINDEX: u32,
pub DEVICEADDR: u32,
pub ASYNCLISTADDR: u32,
pub BURSTSIZE: u32,
pub TXFILLTUNING: u32,
pub ENDPTNAK: u32,
pub ENDPTNAKEN: u32,
pub CONFIGFLAG: u32,
pub PORTSC1: u32,
pub OTGSC: u32,
pub USBMODE: u32,
pub ENDPTSETUPSTAT: u32,
pub ENDPTPRIME: u32,
pub ENDPTFLUSH: u32,
pub ENDPTSTAT: u32,
pub ENDPTCOMPLETE: u32,
pub ENDPTCTRL0: u32,
pub ENDPTCTRL1: u32,
pub ENDPTCTRL2: u32,
pub ENDPTCTRL3: u32,
pub ENDPTCTRL4: u32,
pub ENDPTCTRL5: u32,
pub ENDPTCTRL6: u32,
pub ENDPTCTRL7: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtfm")]
unsafe impl Send for Instance {}