#![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 SDMMC_POWER {
pub mod PWRCTRL {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSWITCH {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSWITCHEN {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DIRPOL {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_CLKCR {
pub mod CLKDIV {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PWRSAV {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WIDBUS {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NEGEDGE {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HWFC_EN {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DDR {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BUSSPEED {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SELCLKRX {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_ARGR {
pub mod CMDARG {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_CMDR {
pub mod CMDINDEX {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDTRANS {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDSTOP {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WAITRESP {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WAITINT {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WAITPEND {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CPSMEN {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTHOLD {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BOOTMODE {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BOOTEN {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDSUSPEND {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_RESPCMDR {
pub mod RESPCMD {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_RESP1R {
pub mod CARDSTATUS1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_RESP2R {
pub mod CARDSTATUS2 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_RESP3R {
pub mod CARDSTATUS3 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_RESP4R {
pub mod CARDSTATUS4 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_DTIMER {
pub mod DATATIME {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_DLENR {
pub mod DATALENGTH {
pub const offset: u32 = 0;
pub const mask: u32 = 0x1ffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_DCTRL {
pub mod DTEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTDIR {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTMODE {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DBLOCKSIZE {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RWSTART {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RWSTOP {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RWMOD {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SDIOEN {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BOOTACKEN {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FIFORST {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_DCNTR {
pub mod DATACOUNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0x1ffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_STAR {
pub mod CCRCFAIL {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCRCFAIL {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTIMEOUT {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTIMEOUT {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXUNDERR {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXOVERR {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDREND {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDSENT {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATAEND {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DHOLD {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DBCKEND {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DABORT {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DPSMACT {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CPSMACT {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFIFOHE {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXFIFOHF {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFIFOF {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXFIFOF {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFIFOE {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXFIFOE {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BUSYD0 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BUSYD0END {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SDIOIT {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACKFAIL {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACKTIMEOUT {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSWEND {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKSTOP {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDMATE {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDMABTC {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_ICR {
pub mod CCRCFAILC {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCRCFAILC {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTIMEOUTC {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTIMEOUTC {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXUNDERRC {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXOVERRC {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDRENDC {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDSENTC {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATAENDC {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DHOLDC {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DBCKENDC {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DABORTC {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BUSYD0ENDC {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SDIOITC {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACKFAILC {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACKTIMEOUTC {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSWENDC {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKSTOPC {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDMATEC {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDMABTCC {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_MASKR {
pub mod CCRCFAILIE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCRCFAILIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTIMEOUTIE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTIMEOUTIE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXUNDERRIE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXOVERRIE {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDRENDIE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMDSENTIE {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATAENDIE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DHOLDIE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DBCKENDIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DABORTIE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFIFOHEIE {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXFIFOHFIE {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXFIFOFIE {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFIFOEIE {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BUSYD0ENDIE {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SDIOITIE {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACKFAILIE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ACKTIMEOUTIE {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSWENDIE {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKSTOPIE {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDMABTCIE {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_ACKTIMER {
pub mod ACKTIME {
pub const offset: u32 = 0;
pub const mask: u32 = 0x1ffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_IDMACTRLR {
pub mod IDMAEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDMABMODE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_IDMABSIZER {
pub mod IDMABNDT {
pub const offset: u32 = 5;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_IDMABASER {
pub mod IDMABASE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_IDMALAR {
pub mod IDMALA {
pub const offset: u32 = 2;
pub const mask: u32 = 0x3fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ABR {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ULS {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ULA {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_IDMABAR {
pub mod IDMABA {
pub const offset: u32 = 2;
pub const mask: u32 = 0x3fffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_FIFOR0 {
pub mod FIFODATA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_FIFOR1 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR2 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR3 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR4 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR5 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR6 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR7 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR8 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR9 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR10 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR11 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR12 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR13 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR14 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_FIFOR15 {
pub use super::SDMMC_FIFOR0::FIFODATA;
}
pub mod SDMMC_VERR {
pub mod MINREV {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MAJREV {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_IPIDR {
pub mod IP_ID {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SDMMC_SIDR {
pub mod SID {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub SDMMC_POWER: RWRegister<u32>,
pub SDMMC_CLKCR: RWRegister<u32>,
pub SDMMC_ARGR: RWRegister<u32>,
pub SDMMC_CMDR: RWRegister<u32>,
pub SDMMC_RESPCMDR: RORegister<u32>,
pub SDMMC_RESP1R: RORegister<u32>,
pub SDMMC_RESP2R: RORegister<u32>,
pub SDMMC_RESP3R: RORegister<u32>,
pub SDMMC_RESP4R: RORegister<u32>,
pub SDMMC_DTIMER: RWRegister<u32>,
pub SDMMC_DLENR: RWRegister<u32>,
pub SDMMC_DCTRL: RWRegister<u32>,
pub SDMMC_DCNTR: RORegister<u32>,
pub SDMMC_STAR: RORegister<u32>,
pub SDMMC_ICR: RWRegister<u32>,
pub SDMMC_MASKR: RWRegister<u32>,
pub SDMMC_ACKTIMER: RWRegister<u32>,
_reserved1: [u32; 3],
pub SDMMC_IDMACTRLR: RWRegister<u32>,
pub SDMMC_IDMABSIZER: RWRegister<u32>,
pub SDMMC_IDMABASER: RWRegister<u32>,
_reserved2: [u32; 2],
pub SDMMC_IDMALAR: RWRegister<u32>,
pub SDMMC_IDMABAR: RWRegister<u32>,
_reserved3: [u32; 5],
pub SDMMC_FIFOR0: RWRegister<u32>,
pub SDMMC_FIFOR1: RWRegister<u32>,
pub SDMMC_FIFOR2: RWRegister<u32>,
pub SDMMC_FIFOR3: RWRegister<u32>,
pub SDMMC_FIFOR4: RWRegister<u32>,
pub SDMMC_FIFOR5: RWRegister<u32>,
pub SDMMC_FIFOR6: RWRegister<u32>,
pub SDMMC_FIFOR7: RWRegister<u32>,
pub SDMMC_FIFOR8: RWRegister<u32>,
pub SDMMC_FIFOR9: RWRegister<u32>,
pub SDMMC_FIFOR10: RWRegister<u32>,
pub SDMMC_FIFOR11: RWRegister<u32>,
pub SDMMC_FIFOR12: RWRegister<u32>,
pub SDMMC_FIFOR13: RWRegister<u32>,
pub SDMMC_FIFOR14: RWRegister<u32>,
pub SDMMC_FIFOR15: RWRegister<u32>,
_reserved4: [u32; 205],
pub SDMMC_VERR: RORegister<u32>,
pub SDMMC_IPIDR: RORegister<u32>,
pub SDMMC_SIDR: RORegister<u32>,
}
pub struct ResetValues {
pub SDMMC_POWER: u32,
pub SDMMC_CLKCR: u32,
pub SDMMC_ARGR: u32,
pub SDMMC_CMDR: u32,
pub SDMMC_RESPCMDR: u32,
pub SDMMC_RESP1R: u32,
pub SDMMC_RESP2R: u32,
pub SDMMC_RESP3R: u32,
pub SDMMC_RESP4R: u32,
pub SDMMC_DTIMER: u32,
pub SDMMC_DLENR: u32,
pub SDMMC_DCTRL: u32,
pub SDMMC_DCNTR: u32,
pub SDMMC_STAR: u32,
pub SDMMC_ICR: u32,
pub SDMMC_MASKR: u32,
pub SDMMC_ACKTIMER: u32,
pub SDMMC_IDMACTRLR: u32,
pub SDMMC_IDMABSIZER: u32,
pub SDMMC_IDMABASER: u32,
pub SDMMC_IDMALAR: u32,
pub SDMMC_IDMABAR: u32,
pub SDMMC_FIFOR0: u32,
pub SDMMC_FIFOR1: u32,
pub SDMMC_FIFOR2: u32,
pub SDMMC_FIFOR3: u32,
pub SDMMC_FIFOR4: u32,
pub SDMMC_FIFOR5: u32,
pub SDMMC_FIFOR6: u32,
pub SDMMC_FIFOR7: u32,
pub SDMMC_FIFOR8: u32,
pub SDMMC_FIFOR9: u32,
pub SDMMC_FIFOR10: u32,
pub SDMMC_FIFOR11: u32,
pub SDMMC_FIFOR12: u32,
pub SDMMC_FIFOR13: u32,
pub SDMMC_FIFOR14: u32,
pub SDMMC_FIFOR15: u32,
pub SDMMC_VERR: u32,
pub SDMMC_IPIDR: u32,
pub SDMMC_SIDR: 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 = "rtic")]
unsafe impl Send for Instance {}
pub mod SDMMC1 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x58005000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
SDMMC_POWER: 0x00000000,
SDMMC_CLKCR: 0x00000000,
SDMMC_ARGR: 0x00000000,
SDMMC_CMDR: 0x00000000,
SDMMC_RESPCMDR: 0x00000000,
SDMMC_RESP1R: 0x00000000,
SDMMC_RESP2R: 0x00000000,
SDMMC_RESP3R: 0x00000000,
SDMMC_RESP4R: 0x00000000,
SDMMC_DTIMER: 0x00000000,
SDMMC_DLENR: 0x00000000,
SDMMC_DCTRL: 0x00000000,
SDMMC_DCNTR: 0x00000000,
SDMMC_STAR: 0x00000000,
SDMMC_ICR: 0x00000000,
SDMMC_MASKR: 0x00000000,
SDMMC_ACKTIMER: 0x00000000,
SDMMC_IDMACTRLR: 0x00000000,
SDMMC_IDMABSIZER: 0x00000000,
SDMMC_IDMABASER: 0x00000000,
SDMMC_IDMALAR: 0x00000000,
SDMMC_IDMABAR: 0x00000000,
SDMMC_FIFOR0: 0x00000000,
SDMMC_FIFOR1: 0x00000000,
SDMMC_FIFOR2: 0x00000000,
SDMMC_FIFOR3: 0x00000000,
SDMMC_FIFOR4: 0x00000000,
SDMMC_FIFOR5: 0x00000000,
SDMMC_FIFOR6: 0x00000000,
SDMMC_FIFOR7: 0x00000000,
SDMMC_FIFOR8: 0x00000000,
SDMMC_FIFOR9: 0x00000000,
SDMMC_FIFOR10: 0x00000000,
SDMMC_FIFOR11: 0x00000000,
SDMMC_FIFOR12: 0x00000000,
SDMMC_FIFOR13: 0x00000000,
SDMMC_FIFOR14: 0x00000000,
SDMMC_FIFOR15: 0x00000000,
SDMMC_VERR: 0x00000020,
SDMMC_IPIDR: 0x00140022,
SDMMC_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut SDMMC1_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if SDMMC1_TAKEN {
None
} else {
SDMMC1_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if SDMMC1_TAKEN && inst.addr == INSTANCE.addr {
SDMMC1_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
SDMMC1_TAKEN = true;
INSTANCE
}
}
pub const SDMMC1: *const RegisterBlock = 0x58005000 as *const _;
pub mod SDMMC2 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x58007000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
SDMMC_POWER: 0x00000000,
SDMMC_CLKCR: 0x00000000,
SDMMC_ARGR: 0x00000000,
SDMMC_CMDR: 0x00000000,
SDMMC_RESPCMDR: 0x00000000,
SDMMC_RESP1R: 0x00000000,
SDMMC_RESP2R: 0x00000000,
SDMMC_RESP3R: 0x00000000,
SDMMC_RESP4R: 0x00000000,
SDMMC_DTIMER: 0x00000000,
SDMMC_DLENR: 0x00000000,
SDMMC_DCTRL: 0x00000000,
SDMMC_DCNTR: 0x00000000,
SDMMC_STAR: 0x00000000,
SDMMC_ICR: 0x00000000,
SDMMC_MASKR: 0x00000000,
SDMMC_ACKTIMER: 0x00000000,
SDMMC_IDMACTRLR: 0x00000000,
SDMMC_IDMABSIZER: 0x00000000,
SDMMC_IDMABASER: 0x00000000,
SDMMC_IDMALAR: 0x00000000,
SDMMC_IDMABAR: 0x00000000,
SDMMC_FIFOR0: 0x00000000,
SDMMC_FIFOR1: 0x00000000,
SDMMC_FIFOR2: 0x00000000,
SDMMC_FIFOR3: 0x00000000,
SDMMC_FIFOR4: 0x00000000,
SDMMC_FIFOR5: 0x00000000,
SDMMC_FIFOR6: 0x00000000,
SDMMC_FIFOR7: 0x00000000,
SDMMC_FIFOR8: 0x00000000,
SDMMC_FIFOR9: 0x00000000,
SDMMC_FIFOR10: 0x00000000,
SDMMC_FIFOR11: 0x00000000,
SDMMC_FIFOR12: 0x00000000,
SDMMC_FIFOR13: 0x00000000,
SDMMC_FIFOR14: 0x00000000,
SDMMC_FIFOR15: 0x00000000,
SDMMC_VERR: 0x00000020,
SDMMC_IPIDR: 0x00140022,
SDMMC_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut SDMMC2_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if SDMMC2_TAKEN {
None
} else {
SDMMC2_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if SDMMC2_TAKEN && inst.addr == INSTANCE.addr {
SDMMC2_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
SDMMC2_TAKEN = true;
INSTANCE
}
}
pub const SDMMC2: *const RegisterBlock = 0x58007000 as *const _;
pub mod SDMMC3 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x48004000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
SDMMC_POWER: 0x00000000,
SDMMC_CLKCR: 0x00000000,
SDMMC_ARGR: 0x00000000,
SDMMC_CMDR: 0x00000000,
SDMMC_RESPCMDR: 0x00000000,
SDMMC_RESP1R: 0x00000000,
SDMMC_RESP2R: 0x00000000,
SDMMC_RESP3R: 0x00000000,
SDMMC_RESP4R: 0x00000000,
SDMMC_DTIMER: 0x00000000,
SDMMC_DLENR: 0x00000000,
SDMMC_DCTRL: 0x00000000,
SDMMC_DCNTR: 0x00000000,
SDMMC_STAR: 0x00000000,
SDMMC_ICR: 0x00000000,
SDMMC_MASKR: 0x00000000,
SDMMC_ACKTIMER: 0x00000000,
SDMMC_IDMACTRLR: 0x00000000,
SDMMC_IDMABSIZER: 0x00000000,
SDMMC_IDMABASER: 0x00000000,
SDMMC_IDMALAR: 0x00000000,
SDMMC_IDMABAR: 0x00000000,
SDMMC_FIFOR0: 0x00000000,
SDMMC_FIFOR1: 0x00000000,
SDMMC_FIFOR2: 0x00000000,
SDMMC_FIFOR3: 0x00000000,
SDMMC_FIFOR4: 0x00000000,
SDMMC_FIFOR5: 0x00000000,
SDMMC_FIFOR6: 0x00000000,
SDMMC_FIFOR7: 0x00000000,
SDMMC_FIFOR8: 0x00000000,
SDMMC_FIFOR9: 0x00000000,
SDMMC_FIFOR10: 0x00000000,
SDMMC_FIFOR11: 0x00000000,
SDMMC_FIFOR12: 0x00000000,
SDMMC_FIFOR13: 0x00000000,
SDMMC_FIFOR14: 0x00000000,
SDMMC_FIFOR15: 0x00000000,
SDMMC_VERR: 0x00000020,
SDMMC_IPIDR: 0x00140022,
SDMMC_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut SDMMC3_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if SDMMC3_TAKEN {
None
} else {
SDMMC3_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if SDMMC3_TAKEN && inst.addr == INSTANCE.addr {
SDMMC3_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
SDMMC3_TAKEN = true;
INSTANCE
}
}
pub const SDMMC3: *const RegisterBlock = 0x48004000 as *const _;