#![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 EP0R {
pub mod EA {
pub const offset: u16 = 0;
pub const mask: u16 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STAT_TX {
pub const offset: u16 = 4;
pub const mask: u16 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTOG_TX {
pub const offset: u16 = 6;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTR_TX {
pub const offset: u16 = 7;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EP_KIND {
pub const offset: u16 = 8;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EP_TYPE {
pub const offset: u16 = 9;
pub const mask: u16 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SETUP {
pub const offset: u16 = 11;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STAT_RX {
pub const offset: u16 = 12;
pub const mask: u16 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTOG_RX {
pub const offset: u16 = 14;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTR_RX {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod EP1R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod EP2R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod EP3R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod EP4R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod EP5R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod EP6R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod EP7R {
pub use super::EP0R::CTR_RX;
pub use super::EP0R::CTR_TX;
pub use super::EP0R::DTOG_RX;
pub use super::EP0R::DTOG_TX;
pub use super::EP0R::EA;
pub use super::EP0R::EP_KIND;
pub use super::EP0R::EP_TYPE;
pub use super::EP0R::SETUP;
pub use super::EP0R::STAT_RX;
pub use super::EP0R::STAT_TX;
}
pub mod CNTR {
pub mod FRES {
pub const offset: u16 = 0;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PDWN {
pub const offset: u16 = 1;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LPMODE {
pub const offset: u16 = 2;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSUSP {
pub const offset: u16 = 3;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RESUME {
pub const offset: u16 = 4;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod L1RESUME {
pub const offset: u16 = 5;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod L1REQM {
pub const offset: u16 = 7;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ESOFM {
pub const offset: u16 = 8;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SOFM {
pub const offset: u16 = 9;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RESETM {
pub const offset: u16 = 10;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SUSPM {
pub const offset: u16 = 11;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WKUPM {
pub const offset: u16 = 12;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ERRM {
pub const offset: u16 = 13;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PMAOVRM {
pub const offset: u16 = 14;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTRM {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ISTR {
pub mod EP_ID {
pub const offset: u16 = 0;
pub const mask: u16 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DIR {
pub const offset: u16 = 4;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod L1REQ {
pub const offset: u16 = 7;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ESOF {
pub const offset: u16 = 8;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SOF {
pub const offset: u16 = 9;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RESET {
pub const offset: u16 = 10;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SUSP {
pub const offset: u16 = 11;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WKUP {
pub const offset: u16 = 12;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ERR {
pub const offset: u16 = 13;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PMAOVR {
pub const offset: u16 = 14;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTR {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FNR {
pub mod FN {
pub const offset: u16 = 0;
pub const mask: u16 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LSOF {
pub const offset: u16 = 11;
pub const mask: u16 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LCK {
pub const offset: u16 = 13;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXDM {
pub const offset: u16 = 14;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXDP {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DADDR {
pub mod ADD {
pub const offset: u16 = 0;
pub const mask: u16 = 0x7f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EF {
pub const offset: u16 = 7;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod BTABLE {
pub mod BTABLE {
pub const offset: u16 = 3;
pub const mask: u16 = 0x1fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT0_TX {
pub mod COUNT0_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT1_TX {
pub mod COUNT1_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT2_TX {
pub mod COUNT2_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT3_TX {
pub mod COUNT3_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT4_TX {
pub mod COUNT4_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT5_TX {
pub mod COUNT5_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT6_TX {
pub mod COUNT6_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT7_TX {
pub mod COUNT7_TX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR0_RX {
pub mod ADDR0_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LPMEN {
pub const offset: u16 = 0;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LPMACK {
pub const offset: u16 = 1;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod REMWAKE {
pub const offset: u16 = 3;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BESL {
pub const offset: u16 = 4;
pub const mask: u16 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR1_RX {
pub mod ADDR1_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR2_RX {
pub mod ADDR2_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR3_RX {
pub mod ADDR3_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR4_RX {
pub mod ADDR4_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR5_RX {
pub mod ADDR5_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR6_RX {
pub mod ADDR6_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ADDR7_RX {
pub mod ADDR7_RX {
pub const offset: u16 = 1;
pub const mask: u16 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT0_RX {
pub mod COUNT0_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT1_RX {
pub mod COUNT1_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT2_RX {
pub mod COUNT2_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT3_RX {
pub mod COUNT3_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT4_RX {
pub mod COUNT4_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT5_RX {
pub mod COUNT5_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT6_RX {
pub mod COUNT6_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod COUNT7_RX {
pub mod COUNT7_RX {
pub const offset: u16 = 0;
pub const mask: u16 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUM_BLOCK {
pub const offset: u16 = 10;
pub const mask: u16 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BL_SIZE {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod BCDR {
pub mod BCDEN {
pub const offset: u16 = 0;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCDEN {
pub const offset: u16 = 1;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PDEN {
pub const offset: u16 = 2;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SDEN {
pub const offset: u16 = 3;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCDET {
pub const offset: u16 = 4;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PDET {
pub const offset: u16 = 5;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SDET {
pub const offset: u16 = 6;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PS2DET {
pub const offset: u16 = 7;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DPPU {
pub const offset: u16 = 15;
pub const mask: u16 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub EP0R: RWRegister<u16>,
_reserved1: [u8; 2],
pub EP1R: RWRegister<u16>,
_reserved2: [u8; 2],
pub EP2R: RWRegister<u16>,
_reserved3: [u8; 2],
pub EP3R: RWRegister<u16>,
_reserved4: [u8; 2],
pub EP4R: RWRegister<u16>,
_reserved5: [u8; 2],
pub EP5R: RWRegister<u16>,
_reserved6: [u8; 2],
pub EP6R: RWRegister<u16>,
_reserved7: [u8; 2],
pub EP7R: RWRegister<u16>,
_reserved8: [u8; 34],
pub CNTR: RWRegister<u16>,
_reserved9: [u8; 2],
pub ISTR: RWRegister<u16>,
_reserved10: [u8; 2],
pub FNR: RORegister<u16>,
_reserved11: [u8; 2],
pub DADDR: RWRegister<u16>,
_reserved12: [u8; 2],
pub BTABLE: RWRegister<u16>,
pub COUNT0_TX: RWRegister<u16>,
pub ADDR0_RX: RWRegister<u16>,
pub COUNT0_RX: RWRegister<u16>,
pub BCDR: RWRegister<u16>,
pub COUNT1_TX: RWRegister<u16>,
pub ADDR1_RX: RWRegister<u16>,
pub COUNT1_RX: RWRegister<u16>,
_reserved13: [u8; 2],
pub COUNT2_TX: RWRegister<u16>,
pub ADDR2_RX: RWRegister<u16>,
pub COUNT2_RX: RWRegister<u16>,
_reserved14: [u8; 2],
pub COUNT3_TX: RWRegister<u16>,
pub ADDR3_RX: RWRegister<u16>,
pub COUNT3_RX: RWRegister<u16>,
_reserved15: [u8; 2],
pub COUNT4_TX: RWRegister<u16>,
pub ADDR4_RX: RWRegister<u16>,
pub COUNT4_RX: RWRegister<u16>,
_reserved16: [u8; 2],
pub COUNT5_TX: RWRegister<u16>,
pub ADDR5_RX: RWRegister<u16>,
pub COUNT5_RX: RWRegister<u16>,
_reserved17: [u8; 2],
pub COUNT6_TX: RWRegister<u16>,
pub ADDR6_RX: RWRegister<u16>,
pub COUNT6_RX: RWRegister<u16>,
_reserved18: [u8; 2],
pub COUNT7_TX: RWRegister<u16>,
pub ADDR7_RX: RWRegister<u16>,
pub COUNT7_RX: RWRegister<u16>,
}
pub struct ResetValues {
pub EP0R: u16,
pub EP1R: u16,
pub EP2R: u16,
pub EP3R: u16,
pub EP4R: u16,
pub EP5R: u16,
pub EP6R: u16,
pub EP7R: u16,
pub CNTR: u16,
pub ISTR: u16,
pub FNR: u16,
pub DADDR: u16,
pub BTABLE: u16,
pub COUNT0_TX: u16,
pub ADDR0_RX: u16,
pub COUNT0_RX: u16,
pub BCDR: u16,
pub COUNT1_TX: u16,
pub ADDR1_RX: u16,
pub COUNT1_RX: u16,
pub COUNT2_TX: u16,
pub ADDR2_RX: u16,
pub COUNT2_RX: u16,
pub COUNT3_TX: u16,
pub ADDR3_RX: u16,
pub COUNT3_RX: u16,
pub COUNT4_TX: u16,
pub ADDR4_RX: u16,
pub COUNT4_RX: u16,
pub COUNT5_TX: u16,
pub ADDR5_RX: u16,
pub COUNT5_RX: u16,
pub COUNT6_TX: u16,
pub ADDR6_RX: u16,
pub COUNT6_RX: u16,
pub COUNT7_TX: u16,
pub ADDR7_RX: u16,
pub COUNT7_RX: u16,
}
#[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 = "rtic")]
unsafe impl Send for Instance {}
pub mod USB {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40006800,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
EP0R: 0x00000000,
EP1R: 0x00000000,
EP2R: 0x00000000,
EP3R: 0x00000000,
EP4R: 0x00000000,
EP5R: 0x00000000,
EP6R: 0x00000000,
EP7R: 0x00000000,
CNTR: 0x00000003,
ISTR: 0x00000000,
FNR: 0x00000000,
DADDR: 0x00000000,
BTABLE: 0x00000000,
COUNT0_TX: 0x00000000,
COUNT1_TX: 0x00000000,
COUNT2_TX: 0x00000000,
COUNT3_TX: 0x00000000,
COUNT4_TX: 0x00000000,
COUNT5_TX: 0x00000000,
COUNT6_TX: 0x00000000,
COUNT7_TX: 0x00000000,
ADDR0_RX: 0x00000000,
ADDR1_RX: 0x00000000,
ADDR2_RX: 0x00000000,
ADDR3_RX: 0x00000000,
ADDR4_RX: 0x00000000,
ADDR5_RX: 0x00000000,
ADDR6_RX: 0x00000000,
ADDR7_RX: 0x00000000,
COUNT0_RX: 0x00000000,
COUNT1_RX: 0x00000000,
COUNT2_RX: 0x00000000,
COUNT3_RX: 0x00000000,
COUNT4_RX: 0x00000000,
COUNT5_RX: 0x00000000,
COUNT6_RX: 0x00000000,
COUNT7_RX: 0x00000000,
BCDR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut USB_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if USB_TAKEN {
None
} else {
USB_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if USB_TAKEN && inst.addr == INSTANCE.addr {
USB_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
USB_TAKEN = true;
INSTANCE
}
}
pub const USB: *const RegisterBlock = 0x40006800 as *const _;