#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister, WORegister};
#[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_4: u32 = 0b0000000000000100;
}
}
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 TXFIFO {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXFIFO {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PCSNUM {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CR {
pub mod MEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MEN_0: u32 = 0b0;
pub const MEN_1: u32 = 0b1;
}
}
pub mod RST {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RST_0: u32 = 0b0;
pub const RST_1: u32 = 0b1;
}
}
pub mod DOZEN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DOZEN_0: u32 = 0b0;
pub const DOZEN_1: u32 = 0b1;
}
}
pub mod DBGEN {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DBGEN_0: u32 = 0b0;
pub const DBGEN_1: u32 = 0b1;
}
}
pub mod RTF {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RTF_0: u32 = 0b0;
pub const RTF_1: u32 = 0b1;
}
}
pub mod RRF {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RRF_0: u32 = 0b0;
pub const RRF_1: u32 = 0b1;
}
}
}
pub mod SR {
pub mod TDF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TDF_0: u32 = 0b0;
pub const TDF_1: u32 = 0b1;
}
}
pub mod RDF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RDF_0: u32 = 0b0;
pub const RDF_1: u32 = 0b1;
}
}
pub mod WCF {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WCF_0: u32 = 0b0;
pub const WCF_1: u32 = 0b1;
}
}
pub mod FCF {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCF_0: u32 = 0b0;
pub const FCF_1: u32 = 0b1;
}
}
pub mod TCF {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TCF_0: u32 = 0b0;
pub const TCF_1: u32 = 0b1;
}
}
pub mod TEF {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TEF_0: u32 = 0b0;
pub const TEF_1: u32 = 0b1;
}
}
pub mod REF {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const REF_0: u32 = 0b0;
pub const REF_1: u32 = 0b1;
}
}
pub mod DMF {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMF_0: u32 = 0b0;
pub const DMF_1: u32 = 0b1;
}
}
pub mod MBF {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MBF_0: u32 = 0b0;
pub const MBF_1: u32 = 0b1;
}
}
}
pub mod IER {
pub mod TDIE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TDIE_0: u32 = 0b0;
pub const TDIE_1: u32 = 0b1;
}
}
pub mod RDIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RDIE_0: u32 = 0b0;
pub const RDIE_1: u32 = 0b1;
}
}
pub mod WCIE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WCIE_0: u32 = 0b0;
pub const WCIE_1: u32 = 0b1;
}
}
pub mod FCIE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCIE_0: u32 = 0b0;
pub const FCIE_1: u32 = 0b1;
}
}
pub mod TCIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TCIE_0: u32 = 0b0;
pub const TCIE_1: u32 = 0b1;
}
}
pub mod TEIE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TEIE_0: u32 = 0b0;
pub const TEIE_1: u32 = 0b1;
}
}
pub mod REIE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const REIE_0: u32 = 0b0;
pub const REIE_1: u32 = 0b1;
}
}
pub mod DMIE {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMIE_0: u32 = 0b0;
pub const DMIE_1: u32 = 0b1;
}
}
}
pub mod DER {
pub mod TDDE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TDDE_0: u32 = 0b0;
pub const TDDE_1: u32 = 0b1;
}
}
pub mod RDDE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RDDE_0: u32 = 0b0;
pub const RDDE_1: u32 = 0b1;
}
}
}
pub mod CFGR0 {
pub mod HREN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HREN_0: u32 = 0b0;
pub const HREN_1: u32 = 0b1;
}
}
pub mod HRPOL {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HRPOL_0: u32 = 0b0;
pub const HRPOL_1: u32 = 0b1;
}
}
pub mod HRSEL {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HRSEL_0: u32 = 0b0;
pub const HRSEL_1: u32 = 0b1;
}
}
pub mod CIRFIFO {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CIRFIFO_0: u32 = 0b0;
pub const CIRFIFO_1: u32 = 0b1;
}
}
pub mod RDMO {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RDMO_0: u32 = 0b0;
pub const RDMO_1: u32 = 0b1;
}
}
}
pub mod CFGR1 {
pub mod MASTER {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MASTER_0: u32 = 0b0;
pub const MASTER_1: u32 = 0b1;
}
}
pub mod SAMPLE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SAMPLE_0: u32 = 0b0;
pub const SAMPLE_1: u32 = 0b1;
}
}
pub mod AUTOPCS {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AUTOPCS_0: u32 = 0b0;
pub const AUTOPCS_1: u32 = 0b1;
}
}
pub mod NOSTALL {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NOSTALL_0: u32 = 0b0;
pub const NOSTALL_1: u32 = 0b1;
}
}
pub mod PCSPOL {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PCSPOL_0: u32 = 0b0000;
pub const PCSPOL_1: u32 = 0b0001;
}
}
pub mod MATCFG {
pub const offset: u32 = 16;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MATCFG_0: u32 = 0b000;
pub const MATCFG_2: u32 = 0b010;
pub const MATCFG_3: u32 = 0b011;
pub const MATCFG_4: u32 = 0b100;
pub const MATCFG_5: u32 = 0b101;
pub const MATCFG_6: u32 = 0b110;
pub const MATCFG_7: u32 = 0b111;
}
}
pub mod PINCFG {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PINCFG_0: u32 = 0b00;
pub const PINCFG_1: u32 = 0b01;
pub const PINCFG_2: u32 = 0b10;
pub const PINCFG_3: u32 = 0b11;
}
}
pub mod OUTCFG {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const OUTCFG_0: u32 = 0b0;
pub const OUTCFG_1: u32 = 0b1;
}
}
pub mod PCSCFG {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PCSCFG_0: u32 = 0b0;
pub const PCSCFG_1: u32 = 0b1;
}
}
}
pub mod DMR0 {
pub mod MATCH0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DMR1 {
pub mod MATCH1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CCR {
pub mod SCKDIV {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DBT {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PCSSCK {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SCKPCS {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FCR {
pub mod TXWATER {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXWATER {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FSR {
pub mod TXCOUNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXCOUNT {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TCR {
pub mod FRAMESZ {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WIDTH {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WIDTH_0: u32 = 0b00;
pub const WIDTH_1: u32 = 0b01;
pub const WIDTH_2: u32 = 0b10;
}
}
pub mod TXMSK {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TXMSK_0: u32 = 0b0;
pub const TXMSK_1: u32 = 0b1;
}
}
pub mod RXMSK {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RXMSK_0: u32 = 0b0;
pub const RXMSK_1: u32 = 0b1;
}
}
pub mod CONTC {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CONTC_0: u32 = 0b0;
pub const CONTC_1: u32 = 0b1;
}
}
pub mod CONT {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CONT_0: u32 = 0b0;
pub const CONT_1: u32 = 0b1;
}
}
pub mod BYSW {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BYSW_0: u32 = 0b0;
pub const BYSW_1: u32 = 0b1;
}
}
pub mod LSBF {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LSBF_0: u32 = 0b0;
pub const LSBF_1: u32 = 0b1;
}
}
pub mod PCS {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PCS_0: u32 = 0b00;
pub const PCS_1: u32 = 0b01;
pub const PCS_2: u32 = 0b10;
pub const PCS_3: u32 = 0b11;
}
}
pub mod PRESCALE {
pub const offset: u32 = 27;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PRESCALE_0: u32 = 0b000;
pub const PRESCALE_1: u32 = 0b001;
pub const PRESCALE_2: u32 = 0b010;
pub const PRESCALE_3: u32 = 0b011;
pub const PRESCALE_4: u32 = 0b100;
pub const PRESCALE_5: u32 = 0b101;
pub const PRESCALE_6: u32 = 0b110;
pub const PRESCALE_7: u32 = 0b111;
}
}
pub mod CPHA {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CPHA_0: u32 = 0b0;
pub const CPHA_1: u32 = 0b1;
}
}
pub mod CPOL {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CPOL_0: u32 = 0b0;
pub const CPOL_1: u32 = 0b1;
}
}
}
pub mod TDR {
pub mod DATA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RSR {
pub mod SOF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SOF_0: u32 = 0b0;
pub const SOF_1: u32 = 0b1;
}
}
pub mod RXEMPTY {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RXEMPTY_0: u32 = 0b0;
pub const RXEMPTY_1: u32 = 0b1;
}
}
}
pub mod RDR {
pub mod DATA {
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 VERID: RORegister<u32>,
pub PARAM: RORegister<u32>,
_reserved1: [u32; 2],
pub CR: RWRegister<u32>,
pub SR: RWRegister<u32>,
pub IER: RWRegister<u32>,
pub DER: RWRegister<u32>,
pub CFGR0: RWRegister<u32>,
pub CFGR1: RWRegister<u32>,
_reserved2: [u32; 2],
pub DMR0: RWRegister<u32>,
pub DMR1: RWRegister<u32>,
_reserved3: [u32; 2],
pub CCR: RWRegister<u32>,
_reserved4: [u32; 5],
pub FCR: RWRegister<u32>,
pub FSR: RORegister<u32>,
pub TCR: RWRegister<u32>,
pub TDR: WORegister<u32>,
_reserved5: [u32; 2],
pub RSR: RORegister<u32>,
pub RDR: RORegister<u32>,
}
pub struct ResetValues {
pub VERID: u32,
pub PARAM: u32,
pub CR: u32,
pub SR: u32,
pub IER: u32,
pub DER: u32,
pub CFGR0: u32,
pub CFGR1: u32,
pub DMR0: u32,
pub DMR1: u32,
pub CCR: u32,
pub FCR: u32,
pub FSR: u32,
pub TCR: u32,
pub TDR: u32,
pub RSR: u32,
pub RDR: 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 LPSPI1 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40394000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x01020004,
PARAM: 0x00040404,
CR: 0x00000000,
SR: 0x00000001,
IER: 0x00000000,
DER: 0x00000000,
CFGR0: 0x00000000,
CFGR1: 0x00000000,
DMR0: 0x00000000,
DMR1: 0x00000000,
CCR: 0x00000000,
FCR: 0x00000000,
FSR: 0x00000000,
TCR: 0x0000001F,
TDR: 0x00000000,
RSR: 0x00000002,
RDR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPSPI1_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI1_TAKEN {
None
} else {
LPSPI1_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI1_TAKEN && inst.addr == INSTANCE.addr {
LPSPI1_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPSPI1_TAKEN = true;
INSTANCE
}
}
pub const LPSPI1: *const RegisterBlock = 0x40394000 as *const _;
pub mod LPSPI2 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40398000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x01020004,
PARAM: 0x00040404,
CR: 0x00000000,
SR: 0x00000001,
IER: 0x00000000,
DER: 0x00000000,
CFGR0: 0x00000000,
CFGR1: 0x00000000,
DMR0: 0x00000000,
DMR1: 0x00000000,
CCR: 0x00000000,
FCR: 0x00000000,
FSR: 0x00000000,
TCR: 0x0000001F,
TDR: 0x00000000,
RSR: 0x00000002,
RDR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPSPI2_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI2_TAKEN {
None
} else {
LPSPI2_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI2_TAKEN && inst.addr == INSTANCE.addr {
LPSPI2_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPSPI2_TAKEN = true;
INSTANCE
}
}
pub const LPSPI2: *const RegisterBlock = 0x40398000 as *const _;
pub mod LPSPI3 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x4039c000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x01020004,
PARAM: 0x00040404,
CR: 0x00000000,
SR: 0x00000001,
IER: 0x00000000,
DER: 0x00000000,
CFGR0: 0x00000000,
CFGR1: 0x00000000,
DMR0: 0x00000000,
DMR1: 0x00000000,
CCR: 0x00000000,
FCR: 0x00000000,
FSR: 0x00000000,
TCR: 0x0000001F,
TDR: 0x00000000,
RSR: 0x00000002,
RDR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPSPI3_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI3_TAKEN {
None
} else {
LPSPI3_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI3_TAKEN && inst.addr == INSTANCE.addr {
LPSPI3_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPSPI3_TAKEN = true;
INSTANCE
}
}
pub const LPSPI3: *const RegisterBlock = 0x4039c000 as *const _;
pub mod LPSPI4 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x403a0000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
VERID: 0x01020004,
PARAM: 0x00040404,
CR: 0x00000000,
SR: 0x00000001,
IER: 0x00000000,
DER: 0x00000000,
CFGR0: 0x00000000,
CFGR1: 0x00000000,
DMR0: 0x00000000,
DMR1: 0x00000000,
CCR: 0x00000000,
FCR: 0x00000000,
FSR: 0x00000000,
TCR: 0x0000001F,
TDR: 0x00000000,
RSR: 0x00000002,
RDR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPSPI4_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI4_TAKEN {
None
} else {
LPSPI4_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPSPI4_TAKEN && inst.addr == INSTANCE.addr {
LPSPI4_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPSPI4_TAKEN = true;
INSTANCE
}
}
pub const LPSPI4: *const RegisterBlock = 0x403a0000 as *const _;