#![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 VERID {
pub mod FEATURE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FEATURE_0: u32 = 0b0000000000000000;
}
}
pub mod MINOR {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MAJOR {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PARAM {
pub mod DATALINE {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FIFO {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FRAME {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TCSR {
pub mod FRDE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRDE_0: u32 = 0b0;
pub const FRDE_1: u32 = 0b1;
}
}
pub mod FWDE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FWDE_0: u32 = 0b0;
pub const FWDE_1: u32 = 0b1;
}
}
pub mod FRIE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRIE_0: u32 = 0b0;
pub const FRIE_1: u32 = 0b1;
}
}
pub mod FWIE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FWIE_0: u32 = 0b0;
pub const FWIE_1: u32 = 0b1;
}
}
pub mod FEIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FEIE_0: u32 = 0b0;
pub const FEIE_1: u32 = 0b1;
}
}
pub mod SEIE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SEIE_0: u32 = 0b0;
pub const SEIE_1: u32 = 0b1;
}
}
pub mod WSIE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WSIE_0: u32 = 0b0;
pub const WSIE_1: u32 = 0b1;
}
}
pub mod FRF {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRF_0: u32 = 0b0;
pub const FRF_1: u32 = 0b1;
}
}
pub mod FWF {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FWF_0: u32 = 0b0;
pub const FWF_1: u32 = 0b1;
}
}
pub mod FEF {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FEF_0: u32 = 0b0;
pub const FEF_1: u32 = 0b1;
}
}
pub mod SEF {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SEF_0: u32 = 0b0;
pub const SEF_1: u32 = 0b1;
}
}
pub mod WSF {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WSF_0: u32 = 0b0;
pub const WSF_1: u32 = 0b1;
}
}
pub mod SR {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SR_0: u32 = 0b0;
pub const SR_1: u32 = 0b1;
}
}
pub mod FR {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FR_0: u32 = 0b0;
pub const FR_1: u32 = 0b1;
}
}
pub mod BCE {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCE_0: u32 = 0b0;
pub const BCE_1: u32 = 0b1;
}
}
pub mod DBGE {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DBGE_0: u32 = 0b0;
pub const DBGE_1: u32 = 0b1;
}
}
pub mod STOPE {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STOPE_0: u32 = 0b0;
pub const STOPE_1: u32 = 0b1;
}
}
pub mod TE {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TE_0: u32 = 0b0;
pub const TE_1: u32 = 0b1;
}
}
}
pub mod TCR1 {
pub mod TFW {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TCR2 {
pub mod DIV {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BCD {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCD_0: u32 = 0b0;
pub const BCD_1: u32 = 0b1;
}
}
pub mod BCP {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCP_0: u32 = 0b0;
pub const BCP_1: u32 = 0b1;
}
}
pub mod MSEL {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MSEL_0: u32 = 0b00;
pub const MSEL_1: u32 = 0b01;
pub const MSEL_2: u32 = 0b10;
pub const MSEL_3: u32 = 0b11;
}
}
pub mod BCI {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCI_0: u32 = 0b0;
pub const BCI_1: u32 = 0b1;
}
}
pub mod BCS {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCS_0: u32 = 0b0;
pub const BCS_1: u32 = 0b1;
}
}
pub mod SYNC {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SYNC_0: u32 = 0b00;
pub const SYNC_1: u32 = 0b01;
}
}
}
pub mod TCR3 {
pub mod WDFL {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TCE {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFR {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TCR4 {
pub mod FSD {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FSD_0: u32 = 0b0;
pub const FSD_1: u32 = 0b1;
}
}
pub mod FSP {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FSP_0: u32 = 0b0;
pub const FSP_1: u32 = 0b1;
}
}
pub mod ONDEM {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ONDEM_0: u32 = 0b0;
pub const ONDEM_1: u32 = 0b1;
}
}
pub mod FSE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FSE_0: u32 = 0b0;
pub const FSE_1: u32 = 0b1;
}
}
pub mod MF {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MF_0: u32 = 0b0;
pub const MF_1: u32 = 0b1;
}
}
pub mod CHMOD {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CHMOD_0: u32 = 0b0;
pub const CHMOD_1: u32 = 0b1;
}
}
pub mod SYWD {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FRSZ {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FPACK {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FPACK_0: u32 = 0b00;
pub const FPACK_2: u32 = 0b10;
pub const FPACK_3: u32 = 0b11;
}
}
pub mod FCOMB {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCOMB_0: u32 = 0b00;
pub const FCOMB_1: u32 = 0b01;
pub const FCOMB_2: u32 = 0b10;
pub const FCOMB_3: u32 = 0b11;
}
}
pub mod FCONT {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCONT_0: u32 = 0b0;
pub const FCONT_1: u32 = 0b1;
}
}
}
pub mod TCR5 {
pub mod FBT {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod W0W {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WNW {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TDR0 {
pub mod TDR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TDR1 {
pub use super::TDR0::TDR;
}
pub mod TDR2 {
pub use super::TDR0::TDR;
}
pub mod TDR3 {
pub use super::TDR0::TDR;
}
pub mod TFR0 {
pub mod RFP {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WFP {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WCP {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WCP_0: u32 = 0b0;
pub const WCP_1: u32 = 0b1;
}
}
}
pub mod TFR1 {
pub use super::TFR0::RFP;
pub use super::TFR0::WCP;
pub use super::TFR0::WFP;
}
pub mod TFR2 {
pub use super::TFR0::RFP;
pub use super::TFR0::WCP;
pub use super::TFR0::WFP;
}
pub mod TFR3 {
pub use super::TFR0::RFP;
pub use super::TFR0::WCP;
pub use super::TFR0::WFP;
}
pub mod TMR {
pub mod TWM {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TWM_0: u32 = 0b00000000000000000000000000000000;
pub const TWM_1: u32 = 0b00000000000000000000000000000001;
}
}
}
pub mod RCSR {
pub mod FRDE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRDE_0: u32 = 0b0;
pub const FRDE_1: u32 = 0b1;
}
}
pub mod FWDE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FWDE_0: u32 = 0b0;
pub const FWDE_1: u32 = 0b1;
}
}
pub mod FRIE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRIE_0: u32 = 0b0;
pub const FRIE_1: u32 = 0b1;
}
}
pub mod FWIE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FWIE_0: u32 = 0b0;
pub const FWIE_1: u32 = 0b1;
}
}
pub mod FEIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FEIE_0: u32 = 0b0;
pub const FEIE_1: u32 = 0b1;
}
}
pub mod SEIE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SEIE_0: u32 = 0b0;
pub const SEIE_1: u32 = 0b1;
}
}
pub mod WSIE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WSIE_0: u32 = 0b0;
pub const WSIE_1: u32 = 0b1;
}
}
pub mod FRF {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRF_0: u32 = 0b0;
pub const FRF_1: u32 = 0b1;
}
}
pub mod FWF {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FWF_0: u32 = 0b0;
pub const FWF_1: u32 = 0b1;
}
}
pub mod FEF {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FEF_0: u32 = 0b0;
pub const FEF_1: u32 = 0b1;
}
}
pub mod SEF {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SEF_0: u32 = 0b0;
pub const SEF_1: u32 = 0b1;
}
}
pub mod WSF {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WSF_0: u32 = 0b0;
pub const WSF_1: u32 = 0b1;
}
}
pub mod SR {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SR_0: u32 = 0b0;
pub const SR_1: u32 = 0b1;
}
}
pub mod FR {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FR_0: u32 = 0b0;
pub const FR_1: u32 = 0b1;
}
}
pub mod BCE {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCE_0: u32 = 0b0;
pub const BCE_1: u32 = 0b1;
}
}
pub mod DBGE {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DBGE_0: u32 = 0b0;
pub const DBGE_1: u32 = 0b1;
}
}
pub mod STOPE {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STOPE_0: u32 = 0b0;
pub const STOPE_1: u32 = 0b1;
}
}
pub mod RE {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RE_0: u32 = 0b0;
pub const RE_1: u32 = 0b1;
}
}
}
pub mod RCR1 {
pub mod RFW {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RCR2 {
pub mod DIV {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BCD {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCD_0: u32 = 0b0;
pub const BCD_1: u32 = 0b1;
}
}
pub mod BCP {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCP_0: u32 = 0b0;
pub const BCP_1: u32 = 0b1;
}
}
pub mod MSEL {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MSEL_0: u32 = 0b00;
pub const MSEL_1: u32 = 0b01;
pub const MSEL_2: u32 = 0b10;
pub const MSEL_3: u32 = 0b11;
}
}
pub mod BCI {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCI_0: u32 = 0b0;
pub const BCI_1: u32 = 0b1;
}
}
pub mod BCS {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BCS_0: u32 = 0b0;
pub const BCS_1: u32 = 0b1;
}
}
pub mod SYNC {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SYNC_0: u32 = 0b00;
pub const SYNC_1: u32 = 0b01;
}
}
}
pub mod RCR3 {
pub mod WDFL {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RCE {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFR {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RCR4 {
pub mod FSD {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FSD_0: u32 = 0b0;
pub const FSD_1: u32 = 0b1;
}
}
pub mod FSP {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FSP_0: u32 = 0b0;
pub const FSP_1: u32 = 0b1;
}
}
pub mod ONDEM {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ONDEM_0: u32 = 0b0;
pub const ONDEM_1: u32 = 0b1;
}
}
pub mod FSE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FSE_0: u32 = 0b0;
pub const FSE_1: u32 = 0b1;
}
}
pub mod MF {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MF_0: u32 = 0b0;
pub const MF_1: u32 = 0b1;
}
}
pub mod SYWD {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FRSZ {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FPACK {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FPACK_0: u32 = 0b00;
pub const FPACK_2: u32 = 0b10;
pub const FPACK_3: u32 = 0b11;
}
}
pub mod FCOMB {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCOMB_0: u32 = 0b00;
pub const FCOMB_1: u32 = 0b01;
pub const FCOMB_2: u32 = 0b10;
pub const FCOMB_3: u32 = 0b11;
}
}
pub mod FCONT {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCONT_0: u32 = 0b0;
pub const FCONT_1: u32 = 0b1;
}
}
}
pub mod RCR5 {
pub use super::TCR5::FBT;
pub use super::TCR5::W0W;
pub use super::TCR5::WNW;
}
pub mod RDR0 {
pub mod RDR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RDR1 {
pub use super::RDR0::RDR;
}
pub mod RDR2 {
pub use super::RDR0::RDR;
}
pub mod RDR3 {
pub use super::RDR0::RDR;
}
pub mod RFR0 {
pub mod RFP {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RCP {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RCP_0: u32 = 0b0;
pub const RCP_1: u32 = 0b1;
}
}
pub mod WFP {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RFR1 {
pub use super::RFR0::RCP;
pub use super::RFR0::RFP;
pub use super::RFR0::WFP;
}
pub mod RFR2 {
pub use super::RFR0::RCP;
pub use super::RFR0::RFP;
pub use super::RFR0::WFP;
}
pub mod RFR3 {
pub use super::RFR0::RCP;
pub use super::RFR0::RFP;
pub use super::RFR0::WFP;
}
pub mod RMR {
pub mod RWM {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RWM_0: u32 = 0b00000000000000000000000000000000;
pub const RWM_1: u32 = 0b00000000000000000000000000000001;
}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub VERID: RORegister<u32>,
pub PARAM: RORegister<u32>,
pub TCSR: RWRegister<u32>,
pub TCR1: RWRegister<u32>,
pub TCR2: RWRegister<u32>,
pub TCR3: RWRegister<u32>,
pub TCR4: RWRegister<u32>,
pub TCR5: RWRegister<u32>,
pub TDR0: RWRegister<u32>,
pub TDR1: RWRegister<u32>,
pub TDR2: RWRegister<u32>,
pub TDR3: RWRegister<u32>,
_reserved1: [u32; 4],
pub TFR0: RORegister<u32>,
pub TFR1: RORegister<u32>,
pub TFR2: RORegister<u32>,
pub TFR3: RORegister<u32>,
_reserved2: [u32; 4],
pub TMR: RWRegister<u32>,
_reserved3: [u32; 9],
pub RCSR: RWRegister<u32>,
pub RCR1: RWRegister<u32>,
pub RCR2: RWRegister<u32>,
pub RCR3: RWRegister<u32>,
pub RCR4: RWRegister<u32>,
pub RCR5: RWRegister<u32>,
pub RDR0: RORegister<u32>,
pub RDR1: RORegister<u32>,
pub RDR2: RORegister<u32>,
pub RDR3: RORegister<u32>,
_reserved4: [u32; 4],
pub RFR0: RORegister<u32>,
pub RFR1: RORegister<u32>,
pub RFR2: RORegister<u32>,
pub RFR3: RORegister<u32>,
_reserved5: [u32; 4],
pub RMR: RWRegister<u32>,
}
pub struct ResetValues {
pub VERID: u32,
pub PARAM: u32,
pub TCSR: u32,
pub TCR1: u32,
pub TCR2: u32,
pub TCR3: u32,
pub TCR4: u32,
pub TCR5: u32,
pub TDR0: u32,
pub TDR1: u32,
pub TDR2: u32,
pub TDR3: u32,
pub TFR0: u32,
pub TFR1: u32,
pub TFR2: u32,
pub TFR3: u32,
pub TMR: u32,
pub RCSR: u32,
pub RCR1: u32,
pub RCR2: u32,
pub RCR3: u32,
pub RCR4: u32,
pub RCR5: u32,
pub RDR0: u32,
pub RDR1: u32,
pub RDR2: u32,
pub RDR3: u32,
pub RFR0: u32,
pub RFR1: u32,
pub RFR2: u32,
pub RFR3: u32,
pub RMR: 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 {}
pub mod SAI1 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40384000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x03000000,
PARAM: 0x00050504,
TCSR: 0x00000000,
TCR1: 0x00000000,
TCR2: 0x00000000,
TCR3: 0x00000000,
TCR4: 0x00000000,
TCR5: 0x00000000,
TDR0: 0x00000000,
TDR1: 0x00000000,
TDR2: 0x00000000,
TDR3: 0x00000000,
TFR0: 0x00000000,
TFR1: 0x00000000,
TFR2: 0x00000000,
TFR3: 0x00000000,
TMR: 0x00000000,
RCSR: 0x00000000,
RCR1: 0x00000000,
RCR2: 0x00000000,
RCR3: 0x00000000,
RCR4: 0x00000000,
RCR5: 0x00000000,
RDR0: 0x00000000,
RDR1: 0x00000000,
RDR2: 0x00000000,
RDR3: 0x00000000,
RFR0: 0x00000000,
RFR1: 0x00000000,
RFR2: 0x00000000,
RFR3: 0x00000000,
RMR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut SAI1_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if SAI1_TAKEN {
None
} else {
SAI1_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if SAI1_TAKEN && inst.addr == INSTANCE.addr {
SAI1_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
SAI1_TAKEN = true;
INSTANCE
}
}
pub const SAI1: *const RegisterBlock = 0x40384000 as *const _;
pub mod SAI2 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40388000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x03000000,
PARAM: 0x00050504,
TCSR: 0x00000000,
TCR1: 0x00000000,
TCR2: 0x00000000,
TCR3: 0x00000000,
TCR4: 0x00000000,
TCR5: 0x00000000,
TDR0: 0x00000000,
TDR1: 0x00000000,
TDR2: 0x00000000,
TDR3: 0x00000000,
TFR0: 0x00000000,
TFR1: 0x00000000,
TFR2: 0x00000000,
TFR3: 0x00000000,
TMR: 0x00000000,
RCSR: 0x00000000,
RCR1: 0x00000000,
RCR2: 0x00000000,
RCR3: 0x00000000,
RCR4: 0x00000000,
RCR5: 0x00000000,
RDR0: 0x00000000,
RDR1: 0x00000000,
RDR2: 0x00000000,
RDR3: 0x00000000,
RFR0: 0x00000000,
RFR1: 0x00000000,
RFR2: 0x00000000,
RFR3: 0x00000000,
RMR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut SAI2_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if SAI2_TAKEN {
None
} else {
SAI2_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if SAI2_TAKEN && inst.addr == INSTANCE.addr {
SAI2_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
SAI2_TAKEN = true;
INSTANCE
}
}
pub const SAI2: *const RegisterBlock = 0x40388000 as *const _;
pub mod SAI3 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x4038c000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x03000000,
PARAM: 0x00050504,
TCSR: 0x00000000,
TCR1: 0x00000000,
TCR2: 0x00000000,
TCR3: 0x00000000,
TCR4: 0x00000000,
TCR5: 0x00000000,
TDR0: 0x00000000,
TDR1: 0x00000000,
TDR2: 0x00000000,
TDR3: 0x00000000,
TFR0: 0x00000000,
TFR1: 0x00000000,
TFR2: 0x00000000,
TFR3: 0x00000000,
TMR: 0x00000000,
RCSR: 0x00000000,
RCR1: 0x00000000,
RCR2: 0x00000000,
RCR3: 0x00000000,
RCR4: 0x00000000,
RCR5: 0x00000000,
RDR0: 0x00000000,
RDR1: 0x00000000,
RDR2: 0x00000000,
RDR3: 0x00000000,
RFR0: 0x00000000,
RFR1: 0x00000000,
RFR2: 0x00000000,
RFR3: 0x00000000,
RMR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut SAI3_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if SAI3_TAKEN {
None
} else {
SAI3_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if SAI3_TAKEN && inst.addr == INSTANCE.addr {
SAI3_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
SAI3_TAKEN = true;
INSTANCE
}
}
pub const SAI3: *const RegisterBlock = 0x4038c000 as *const _;