#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[doc = "Register block"]
pub struct RegisterBlock {
perid: Perid,
_reserved1: [u8; 0x03],
idcomp: Idcomp,
_reserved2: [u8; 0x03],
rev: Rev,
_reserved3: [u8; 0x03],
addinfo: Addinfo,
_reserved4: [u8; 0x03],
otgistat: Otgistat,
_reserved5: [u8; 0x03],
otgicr: Otgicr,
_reserved6: [u8; 0x03],
otgstat: Otgstat,
_reserved7: [u8; 0x03],
otgctl: Otgctl,
_reserved8: [u8; 0x63],
istat: Istat,
_reserved9: [u8; 0x03],
inten: Inten,
_reserved10: [u8; 0x03],
errstat: Errstat,
_reserved11: [u8; 0x03],
erren: Erren,
_reserved12: [u8; 0x03],
stat: Stat,
_reserved13: [u8; 0x03],
ctl: Ctl,
_reserved14: [u8; 0x03],
addr: Addr,
_reserved15: [u8; 0x03],
bdtpage1: Bdtpage1,
_reserved16: [u8; 0x03],
frmnuml: Frmnuml,
_reserved17: [u8; 0x03],
frmnumh: Frmnumh,
_reserved18: [u8; 0x03],
token: Token,
_reserved19: [u8; 0x03],
softhld: Softhld,
_reserved20: [u8; 0x03],
bdtpage2: Bdtpage2,
_reserved21: [u8; 0x03],
bdtpage3: Bdtpage3,
_reserved22: [u8; 0x0b],
endpoint: (),
_reserved23: [u8; 0x40],
usbctrl: Usbctrl,
_reserved24: [u8; 0x03],
observe: Observe,
_reserved25: [u8; 0x03],
control: Control,
_reserved26: [u8; 0x03],
usbtrc0: Usbtrc0,
_reserved27: [u8; 0x07],
usbfrmadjust: Usbfrmadjust,
_reserved28: [u8; 0x0f],
keep_alive_ctrl_rsvd: KeepAliveCtrlRsvd,
_reserved29: [u8; 0x03],
keep_alive_wkctrl_rsvd: KeepAliveWkctrlRsvd,
_reserved30: [u8; 0x03],
miscctrl: Miscctrl,
_reserved31: [u8; 0x03],
stall_il_dis: StallIlDis,
_reserved32: [u8; 0x03],
stall_ih_dis: StallIhDis,
_reserved33: [u8; 0x03],
stall_ol_dis: StallOlDis,
_reserved34: [u8; 0x03],
stall_oh_dis: StallOhDis,
_reserved35: [u8; 0x03],
clk_recover_ctrl: ClkRecoverCtrl,
_reserved36: [u8; 0x03],
clk_recover_irc_en: ClkRecoverIrcEn,
_reserved37: [u8; 0x0f],
clk_recover_int_en: ClkRecoverIntEn,
_reserved38: [u8; 0x07],
clk_recover_int_status: ClkRecoverIntStatus,
}
impl RegisterBlock {
#[doc = "0x00 - Peripheral ID"]
#[inline(always)]
pub const fn perid(&self) -> &Perid {
&self.perid
}
#[doc = "0x04 - Peripheral ID Complement"]
#[inline(always)]
pub const fn idcomp(&self) -> &Idcomp {
&self.idcomp
}
#[doc = "0x08 - Peripheral Revision"]
#[inline(always)]
pub const fn rev(&self) -> &Rev {
&self.rev
}
#[doc = "0x0c - Peripheral Additional Information"]
#[inline(always)]
pub const fn addinfo(&self) -> &Addinfo {
&self.addinfo
}
#[doc = "0x10 - OTG Interrupt Status"]
#[inline(always)]
pub const fn otgistat(&self) -> &Otgistat {
&self.otgistat
}
#[doc = "0x14 - OTG Interrupt Control"]
#[inline(always)]
pub const fn otgicr(&self) -> &Otgicr {
&self.otgicr
}
#[doc = "0x18 - OTG Status"]
#[inline(always)]
pub const fn otgstat(&self) -> &Otgstat {
&self.otgstat
}
#[doc = "0x1c - OTG Control"]
#[inline(always)]
pub const fn otgctl(&self) -> &Otgctl {
&self.otgctl
}
#[doc = "0x80 - Interrupt Status"]
#[inline(always)]
pub const fn istat(&self) -> &Istat {
&self.istat
}
#[doc = "0x84 - Interrupt Enable"]
#[inline(always)]
pub const fn inten(&self) -> &Inten {
&self.inten
}
#[doc = "0x88 - Error Interrupt Status"]
#[inline(always)]
pub const fn errstat(&self) -> &Errstat {
&self.errstat
}
#[doc = "0x8c - Error Interrupt Enable"]
#[inline(always)]
pub const fn erren(&self) -> &Erren {
&self.erren
}
#[doc = "0x90 - Status"]
#[inline(always)]
pub const fn stat(&self) -> &Stat {
&self.stat
}
#[doc = "0x94 - Control"]
#[inline(always)]
pub const fn ctl(&self) -> &Ctl {
&self.ctl
}
#[doc = "0x98 - Address"]
#[inline(always)]
pub const fn addr(&self) -> &Addr {
&self.addr
}
#[doc = "0x9c - BDT Page 1"]
#[inline(always)]
pub const fn bdtpage1(&self) -> &Bdtpage1 {
&self.bdtpage1
}
#[doc = "0xa0 - Frame Number Register Low"]
#[inline(always)]
pub const fn frmnuml(&self) -> &Frmnuml {
&self.frmnuml
}
#[doc = "0xa4 - Frame Number Register High"]
#[inline(always)]
pub const fn frmnumh(&self) -> &Frmnumh {
&self.frmnumh
}
#[doc = "0xa8 - Token"]
#[inline(always)]
pub const fn token(&self) -> &Token {
&self.token
}
#[doc = "0xac - SOF Threshold"]
#[inline(always)]
pub const fn softhld(&self) -> &Softhld {
&self.softhld
}
#[doc = "0xb0 - BDT Page 2"]
#[inline(always)]
pub const fn bdtpage2(&self) -> &Bdtpage2 {
&self.bdtpage2
}
#[doc = "0xb4 - BDT Page 3"]
#[inline(always)]
pub const fn bdtpage3(&self) -> &Bdtpage3 {
&self.bdtpage3
}
#[doc = "0xc0..0xd0 - Array of registers: ENDPT"]
#[inline(always)]
pub const fn endpoint(&self, n: usize) -> &Endpoint {
#[allow(clippy::no_effect)]
[(); 16][n];
unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(192).add(4 * n).cast() }
}
#[doc = "Iterator for array of:"]
#[doc = "0xc0..0xd0 - Array of registers: ENDPT"]
#[inline(always)]
pub fn endpoint_iter(&self) -> impl Iterator<Item = &Endpoint> {
(0..16).map(move |n| unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(192).add(4 * n).cast() })
}
#[doc = "0x100 - USB Control"]
#[inline(always)]
pub const fn usbctrl(&self) -> &Usbctrl {
&self.usbctrl
}
#[doc = "0x104 - USB OTG Observe"]
#[inline(always)]
pub const fn observe(&self) -> &Observe {
&self.observe
}
#[doc = "0x108 - USB OTG Control"]
#[inline(always)]
pub const fn control(&self) -> &Control {
&self.control
}
#[doc = "0x10c - USB Transceiver Control 0"]
#[inline(always)]
pub const fn usbtrc0(&self) -> &Usbtrc0 {
&self.usbtrc0
}
#[doc = "0x114 - Frame Adjust"]
#[inline(always)]
pub const fn usbfrmadjust(&self) -> &Usbfrmadjust {
&self.usbfrmadjust
}
#[doc = "0x124 - Reserved"]
#[inline(always)]
pub const fn keep_alive_ctrl_rsvd(&self) -> &KeepAliveCtrlRsvd {
&self.keep_alive_ctrl_rsvd
}
#[doc = "0x128 - Reserved"]
#[inline(always)]
pub const fn keep_alive_wkctrl_rsvd(&self) -> &KeepAliveWkctrlRsvd {
&self.keep_alive_wkctrl_rsvd
}
#[doc = "0x12c - Miscellaneous Control"]
#[inline(always)]
pub const fn miscctrl(&self) -> &Miscctrl {
&self.miscctrl
}
#[doc = "0x130 - Peripheral Mode Stall Disable for Endpoints 7 to 0 in IN Direction"]
#[inline(always)]
pub const fn stall_il_dis(&self) -> &StallIlDis {
&self.stall_il_dis
}
#[doc = "0x134 - Peripheral Mode Stall Disable for Endpoints 15 to 8 in IN Direction"]
#[inline(always)]
pub const fn stall_ih_dis(&self) -> &StallIhDis {
&self.stall_ih_dis
}
#[doc = "0x138 - Peripheral Mode Stall Disable for Endpoints 7 to 0 in OUT Direction"]
#[inline(always)]
pub const fn stall_ol_dis(&self) -> &StallOlDis {
&self.stall_ol_dis
}
#[doc = "0x13c - Peripheral Mode Stall Disable for Endpoints 15 to 8 in OUT Direction"]
#[inline(always)]
pub const fn stall_oh_dis(&self) -> &StallOhDis {
&self.stall_oh_dis
}
#[doc = "0x140 - USB Clock Recovery Control"]
#[inline(always)]
pub const fn clk_recover_ctrl(&self) -> &ClkRecoverCtrl {
&self.clk_recover_ctrl
}
#[doc = "0x144 - FIRC Oscillator Enable"]
#[inline(always)]
pub const fn clk_recover_irc_en(&self) -> &ClkRecoverIrcEn {
&self.clk_recover_irc_en
}
#[doc = "0x154 - Clock Recovery Combined Interrupt Enable"]
#[inline(always)]
pub const fn clk_recover_int_en(&self) -> &ClkRecoverIntEn {
&self.clk_recover_int_en
}
#[doc = "0x15c - Clock Recovery Separated Interrupt Status"]
#[inline(always)]
pub const fn clk_recover_int_status(&self) -> &ClkRecoverIntStatus {
&self.clk_recover_int_status
}
}
#[doc = "PERID (r) register accessor: Peripheral ID\n\nYou can [`read`](crate::Reg::read) this register and get [`perid::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@perid`] module"]
#[doc(alias = "PERID")]
pub type Perid = crate::Reg<perid::PeridSpec>;
#[doc = "Peripheral ID"]
pub mod perid;
#[doc = "IDCOMP (r) register accessor: Peripheral ID Complement\n\nYou can [`read`](crate::Reg::read) this register and get [`idcomp::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@idcomp`] module"]
#[doc(alias = "IDCOMP")]
pub type Idcomp = crate::Reg<idcomp::IdcompSpec>;
#[doc = "Peripheral ID Complement"]
pub mod idcomp;
#[doc = "REV (r) register accessor: Peripheral Revision\n\nYou can [`read`](crate::Reg::read) this register and get [`rev::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rev`] module"]
#[doc(alias = "REV")]
pub type Rev = crate::Reg<rev::RevSpec>;
#[doc = "Peripheral Revision"]
pub mod rev;
#[doc = "ADDINFO (r) register accessor: Peripheral Additional Information\n\nYou can [`read`](crate::Reg::read) this register and get [`addinfo::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@addinfo`] module"]
#[doc(alias = "ADDINFO")]
pub type Addinfo = crate::Reg<addinfo::AddinfoSpec>;
#[doc = "Peripheral Additional Information"]
pub mod addinfo;
#[doc = "OTGISTAT (rw) register accessor: OTG Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`otgistat::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`otgistat::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@otgistat`] module"]
#[doc(alias = "OTGISTAT")]
pub type Otgistat = crate::Reg<otgistat::OtgistatSpec>;
#[doc = "OTG Interrupt Status"]
pub mod otgistat;
#[doc = "OTGICR (rw) register accessor: OTG Interrupt Control\n\nYou can [`read`](crate::Reg::read) this register and get [`otgicr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`otgicr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@otgicr`] module"]
#[doc(alias = "OTGICR")]
pub type Otgicr = crate::Reg<otgicr::OtgicrSpec>;
#[doc = "OTG Interrupt Control"]
pub mod otgicr;
#[doc = "OTGSTAT (r) register accessor: OTG Status\n\nYou can [`read`](crate::Reg::read) this register and get [`otgstat::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@otgstat`] module"]
#[doc(alias = "OTGSTAT")]
pub type Otgstat = crate::Reg<otgstat::OtgstatSpec>;
#[doc = "OTG Status"]
pub mod otgstat;
#[doc = "OTGCTL (rw) register accessor: OTG Control\n\nYou can [`read`](crate::Reg::read) this register and get [`otgctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`otgctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@otgctl`] module"]
#[doc(alias = "OTGCTL")]
pub type Otgctl = crate::Reg<otgctl::OtgctlSpec>;
#[doc = "OTG Control"]
pub mod otgctl;
#[doc = "ISTAT (rw) register accessor: Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`istat::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`istat::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@istat`] module"]
#[doc(alias = "ISTAT")]
pub type Istat = crate::Reg<istat::IstatSpec>;
#[doc = "Interrupt Status"]
pub mod istat;
#[doc = "INTEN (rw) register accessor: Interrupt Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`inten::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`inten::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@inten`] module"]
#[doc(alias = "INTEN")]
pub type Inten = crate::Reg<inten::IntenSpec>;
#[doc = "Interrupt Enable"]
pub mod inten;
#[doc = "ERRSTAT (rw) register accessor: Error Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`errstat::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`errstat::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@errstat`] module"]
#[doc(alias = "ERRSTAT")]
pub type Errstat = crate::Reg<errstat::ErrstatSpec>;
#[doc = "Error Interrupt Status"]
pub mod errstat;
#[doc = "ERREN (rw) register accessor: Error Interrupt Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`erren::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`erren::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@erren`] module"]
#[doc(alias = "ERREN")]
pub type Erren = crate::Reg<erren::ErrenSpec>;
#[doc = "Error Interrupt Enable"]
pub mod erren;
#[doc = "STAT (r) register accessor: Status\n\nYou can [`read`](crate::Reg::read) this register and get [`stat::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@stat`] module"]
#[doc(alias = "STAT")]
pub type Stat = crate::Reg<stat::StatSpec>;
#[doc = "Status"]
pub mod stat;
#[doc = "CTL (rw) register accessor: Control\n\nYou can [`read`](crate::Reg::read) this register and get [`ctl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctl`] module"]
#[doc(alias = "CTL")]
pub type Ctl = crate::Reg<ctl::CtlSpec>;
#[doc = "Control"]
pub mod ctl;
#[doc = "ADDR (rw) register accessor: Address\n\nYou can [`read`](crate::Reg::read) this register and get [`addr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`addr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@addr`] module"]
#[doc(alias = "ADDR")]
pub type Addr = crate::Reg<addr::AddrSpec>;
#[doc = "Address"]
pub mod addr;
#[doc = "BDTPAGE1 (rw) register accessor: BDT Page 1\n\nYou can [`read`](crate::Reg::read) this register and get [`bdtpage1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bdtpage1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@bdtpage1`] module"]
#[doc(alias = "BDTPAGE1")]
pub type Bdtpage1 = crate::Reg<bdtpage1::Bdtpage1Spec>;
#[doc = "BDT Page 1"]
pub mod bdtpage1;
#[doc = "FRMNUML (r) register accessor: Frame Number Register Low\n\nYou can [`read`](crate::Reg::read) this register and get [`frmnuml::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@frmnuml`] module"]
#[doc(alias = "FRMNUML")]
pub type Frmnuml = crate::Reg<frmnuml::FrmnumlSpec>;
#[doc = "Frame Number Register Low"]
pub mod frmnuml;
#[doc = "FRMNUMH (r) register accessor: Frame Number Register High\n\nYou can [`read`](crate::Reg::read) this register and get [`frmnumh::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@frmnumh`] module"]
#[doc(alias = "FRMNUMH")]
pub type Frmnumh = crate::Reg<frmnumh::FrmnumhSpec>;
#[doc = "Frame Number Register High"]
pub mod frmnumh;
#[doc = "TOKEN (rw) register accessor: Token\n\nYou can [`read`](crate::Reg::read) this register and get [`token::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`token::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@token`] module"]
#[doc(alias = "TOKEN")]
pub type Token = crate::Reg<token::TokenSpec>;
#[doc = "Token"]
pub mod token;
#[doc = "SOFTHLD (rw) register accessor: SOF Threshold\n\nYou can [`read`](crate::Reg::read) this register and get [`softhld::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`softhld::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@softhld`] module"]
#[doc(alias = "SOFTHLD")]
pub type Softhld = crate::Reg<softhld::SofthldSpec>;
#[doc = "SOF Threshold"]
pub mod softhld;
#[doc = "BDTPAGE2 (rw) register accessor: BDT Page 2\n\nYou can [`read`](crate::Reg::read) this register and get [`bdtpage2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bdtpage2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@bdtpage2`] module"]
#[doc(alias = "BDTPAGE2")]
pub type Bdtpage2 = crate::Reg<bdtpage2::Bdtpage2Spec>;
#[doc = "BDT Page 2"]
pub mod bdtpage2;
#[doc = "BDTPAGE3 (rw) register accessor: BDT Page 3\n\nYou can [`read`](crate::Reg::read) this register and get [`bdtpage3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bdtpage3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@bdtpage3`] module"]
#[doc(alias = "BDTPAGE3")]
pub type Bdtpage3 = crate::Reg<bdtpage3::Bdtpage3Spec>;
#[doc = "BDT Page 3"]
pub mod bdtpage3;
#[doc = "Array of registers: ENDPT"]
pub use self::endpoint::Endpoint;
#[doc = r"Cluster"]
#[doc = "Array of registers: ENDPT"]
pub mod endpoint;
#[doc = "USBCTRL (rw) register accessor: USB Control\n\nYou can [`read`](crate::Reg::read) this register and get [`usbctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`usbctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@usbctrl`] module"]
#[doc(alias = "USBCTRL")]
pub type Usbctrl = crate::Reg<usbctrl::UsbctrlSpec>;
#[doc = "USB Control"]
pub mod usbctrl;
#[doc = "OBSERVE (r) register accessor: USB OTG Observe\n\nYou can [`read`](crate::Reg::read) this register and get [`observe::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@observe`] module"]
#[doc(alias = "OBSERVE")]
pub type Observe = crate::Reg<observe::ObserveSpec>;
#[doc = "USB OTG Observe"]
pub mod observe;
#[doc = "CONTROL (rw) register accessor: USB OTG Control\n\nYou can [`read`](crate::Reg::read) this register and get [`control::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`control::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@control`] module"]
#[doc(alias = "CONTROL")]
pub type Control = crate::Reg<control::ControlSpec>;
#[doc = "USB OTG Control"]
pub mod control;
#[doc = "USBTRC0 (rw) register accessor: USB Transceiver Control 0\n\nYou can [`read`](crate::Reg::read) this register and get [`usbtrc0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`usbtrc0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@usbtrc0`] module"]
#[doc(alias = "USBTRC0")]
pub type Usbtrc0 = crate::Reg<usbtrc0::Usbtrc0Spec>;
#[doc = "USB Transceiver Control 0"]
pub mod usbtrc0;
#[doc = "USBFRMADJUST (rw) register accessor: Frame Adjust\n\nYou can [`read`](crate::Reg::read) this register and get [`usbfrmadjust::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`usbfrmadjust::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@usbfrmadjust`] module"]
#[doc(alias = "USBFRMADJUST")]
pub type Usbfrmadjust = crate::Reg<usbfrmadjust::UsbfrmadjustSpec>;
#[doc = "Frame Adjust"]
pub mod usbfrmadjust;
#[doc = "KEEP_ALIVE_CTRL_RSVD (rw) register accessor: Reserved\n\nYou can [`read`](crate::Reg::read) this register and get [`keep_alive_ctrl_rsvd::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`keep_alive_ctrl_rsvd::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@keep_alive_ctrl_rsvd`] module"]
#[doc(alias = "KEEP_ALIVE_CTRL_RSVD")]
pub type KeepAliveCtrlRsvd = crate::Reg<keep_alive_ctrl_rsvd::KeepAliveCtrlRsvdSpec>;
#[doc = "Reserved"]
pub mod keep_alive_ctrl_rsvd;
#[doc = "KEEP_ALIVE_WKCTRL_RSVD (rw) register accessor: Reserved\n\nYou can [`read`](crate::Reg::read) this register and get [`keep_alive_wkctrl_rsvd::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`keep_alive_wkctrl_rsvd::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@keep_alive_wkctrl_rsvd`] module"]
#[doc(alias = "KEEP_ALIVE_WKCTRL_RSVD")]
pub type KeepAliveWkctrlRsvd = crate::Reg<keep_alive_wkctrl_rsvd::KeepAliveWkctrlRsvdSpec>;
#[doc = "Reserved"]
pub mod keep_alive_wkctrl_rsvd;
#[doc = "MISCCTRL (rw) register accessor: Miscellaneous Control\n\nYou can [`read`](crate::Reg::read) this register and get [`miscctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`miscctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@miscctrl`] module"]
#[doc(alias = "MISCCTRL")]
pub type Miscctrl = crate::Reg<miscctrl::MiscctrlSpec>;
#[doc = "Miscellaneous Control"]
pub mod miscctrl;
#[doc = "STALL_IL_DIS (rw) register accessor: Peripheral Mode Stall Disable for Endpoints 7 to 0 in IN Direction\n\nYou can [`read`](crate::Reg::read) this register and get [`stall_il_dis::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`stall_il_dis::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@stall_il_dis`] module"]
#[doc(alias = "STALL_IL_DIS")]
pub type StallIlDis = crate::Reg<stall_il_dis::StallIlDisSpec>;
#[doc = "Peripheral Mode Stall Disable for Endpoints 7 to 0 in IN Direction"]
pub mod stall_il_dis;
#[doc = "STALL_IH_DIS (rw) register accessor: Peripheral Mode Stall Disable for Endpoints 15 to 8 in IN Direction\n\nYou can [`read`](crate::Reg::read) this register and get [`stall_ih_dis::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`stall_ih_dis::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@stall_ih_dis`] module"]
#[doc(alias = "STALL_IH_DIS")]
pub type StallIhDis = crate::Reg<stall_ih_dis::StallIhDisSpec>;
#[doc = "Peripheral Mode Stall Disable for Endpoints 15 to 8 in IN Direction"]
pub mod stall_ih_dis;
#[doc = "STALL_OL_DIS (rw) register accessor: Peripheral Mode Stall Disable for Endpoints 7 to 0 in OUT Direction\n\nYou can [`read`](crate::Reg::read) this register and get [`stall_ol_dis::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`stall_ol_dis::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@stall_ol_dis`] module"]
#[doc(alias = "STALL_OL_DIS")]
pub type StallOlDis = crate::Reg<stall_ol_dis::StallOlDisSpec>;
#[doc = "Peripheral Mode Stall Disable for Endpoints 7 to 0 in OUT Direction"]
pub mod stall_ol_dis;
#[doc = "STALL_OH_DIS (rw) register accessor: Peripheral Mode Stall Disable for Endpoints 15 to 8 in OUT Direction\n\nYou can [`read`](crate::Reg::read) this register and get [`stall_oh_dis::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`stall_oh_dis::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@stall_oh_dis`] module"]
#[doc(alias = "STALL_OH_DIS")]
pub type StallOhDis = crate::Reg<stall_oh_dis::StallOhDisSpec>;
#[doc = "Peripheral Mode Stall Disable for Endpoints 15 to 8 in OUT Direction"]
pub mod stall_oh_dis;
#[doc = "CLK_RECOVER_CTRL (rw) register accessor: USB Clock Recovery Control\n\nYou can [`read`](crate::Reg::read) this register and get [`clk_recover_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`clk_recover_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk_recover_ctrl`] module"]
#[doc(alias = "CLK_RECOVER_CTRL")]
pub type ClkRecoverCtrl = crate::Reg<clk_recover_ctrl::ClkRecoverCtrlSpec>;
#[doc = "USB Clock Recovery Control"]
pub mod clk_recover_ctrl;
#[doc = "CLK_RECOVER_IRC_EN (rw) register accessor: FIRC Oscillator Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`clk_recover_irc_en::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`clk_recover_irc_en::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk_recover_irc_en`] module"]
#[doc(alias = "CLK_RECOVER_IRC_EN")]
pub type ClkRecoverIrcEn = crate::Reg<clk_recover_irc_en::ClkRecoverIrcEnSpec>;
#[doc = "FIRC Oscillator Enable"]
pub mod clk_recover_irc_en;
#[doc = "CLK_RECOVER_INT_EN (rw) register accessor: Clock Recovery Combined Interrupt Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`clk_recover_int_en::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`clk_recover_int_en::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk_recover_int_en`] module"]
#[doc(alias = "CLK_RECOVER_INT_EN")]
pub type ClkRecoverIntEn = crate::Reg<clk_recover_int_en::ClkRecoverIntEnSpec>;
#[doc = "Clock Recovery Combined Interrupt Enable"]
pub mod clk_recover_int_en;
#[doc = "CLK_RECOVER_INT_STATUS (rw) register accessor: Clock Recovery Separated Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`clk_recover_int_status::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`clk_recover_int_status::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk_recover_int_status`] module"]
#[doc(alias = "CLK_RECOVER_INT_STATUS")]
pub type ClkRecoverIntStatus = crate::Reg<clk_recover_int_status::ClkRecoverIntStatusSpec>;
#[doc = "Clock Recovery Separated Interrupt Status"]
pub mod clk_recover_int_status;