#![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 LPTIM_ISR {
pub mod CMPM {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARRM {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EXTTRIG {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMPOK {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARROK {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UP {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DOWN {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_ICR {
pub mod CMPMCF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARRMCF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EXTTRIGCF {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMPOKCF {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARROKCF {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UPCF {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DOWNCF {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_IER {
pub mod CMPMIE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARRMIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EXTTRIGIE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CMPOKIE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARROKIE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UPIE {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DOWNIE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_CFGR {
pub mod CKSEL {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKPOL {
pub const offset: u32 = 1;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKFLT {
pub const offset: u32 = 3;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TRGFLT {
pub const offset: u32 = 6;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PRESC {
pub const offset: u32 = 9;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TRIGSEL {
pub const offset: u32 = 13;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TRIGEN {
pub const offset: u32 = 17;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TIMOUT {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WAVE {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WAVPOL {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PRELOAD {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod COUNTMODE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ENC {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_CR {
pub mod ENABLE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SNGSTRT {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CNTSTRT {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod COUNTRST {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSTARE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_CMP {
pub mod CMP {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_ARR {
pub mod ARR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_CNT {
pub mod CNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_CFGR2 {
pub mod IN1SEL {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IN2SEL {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM1_HWCFGR {
pub mod CFG1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFG2 {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFG3 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFG4 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_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 LPTIM_PIDR {
pub mod P_ID {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LPTIM_SIDR {
pub mod S_ID {
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 LPTIM_ISR: RORegister<u32>,
pub LPTIM_ICR: WORegister<u32>,
pub LPTIM_IER: RWRegister<u32>,
pub LPTIM_CFGR: RWRegister<u32>,
pub LPTIM_CR: RWRegister<u32>,
pub LPTIM_CMP: RWRegister<u32>,
pub LPTIM_ARR: RWRegister<u32>,
pub LPTIM_CNT: RORegister<u32>,
_reserved1: [u32; 1],
pub LPTIM_CFGR2: RWRegister<u32>,
_reserved2: [u32; 242],
pub LPTIM1_HWCFGR: RORegister<u32>,
pub LPTIM_VERR: RORegister<u32>,
pub LPTIM_PIDR: RORegister<u32>,
pub LPTIM_SIDR: RORegister<u32>,
}
pub struct ResetValues {
pub LPTIM_ISR: u32,
pub LPTIM_ICR: u32,
pub LPTIM_IER: u32,
pub LPTIM_CFGR: u32,
pub LPTIM_CR: u32,
pub LPTIM_CMP: u32,
pub LPTIM_ARR: u32,
pub LPTIM_CNT: u32,
pub LPTIM_CFGR2: u32,
pub LPTIM1_HWCFGR: u32,
pub LPTIM_VERR: u32,
pub LPTIM_PIDR: u32,
pub LPTIM_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 LPTIM1 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40009000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
LPTIM_ISR: 0x00000000,
LPTIM_ICR: 0x00000000,
LPTIM_IER: 0x00000000,
LPTIM_CFGR: 0x00000000,
LPTIM_CR: 0x00000000,
LPTIM_CMP: 0x00000000,
LPTIM_ARR: 0x00000001,
LPTIM_CNT: 0x00000000,
LPTIM_CFGR2: 0x00000000,
LPTIM1_HWCFGR: 0x00010804,
LPTIM_VERR: 0x00000014,
LPTIM_PIDR: 0x00120011,
LPTIM_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPTIM1_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM1_TAKEN {
None
} else {
LPTIM1_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM1_TAKEN && inst.addr == INSTANCE.addr {
LPTIM1_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPTIM1_TAKEN = true;
INSTANCE
}
}
pub const LPTIM1: *const RegisterBlock = 0x40009000 as *const _;
pub mod LPTIM2 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x50021000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
LPTIM_ISR: 0x00000000,
LPTIM_ICR: 0x00000000,
LPTIM_IER: 0x00000000,
LPTIM_CFGR: 0x00000000,
LPTIM_CR: 0x00000000,
LPTIM_CMP: 0x00000000,
LPTIM_ARR: 0x00000001,
LPTIM_CNT: 0x00000000,
LPTIM_CFGR2: 0x00000000,
LPTIM1_HWCFGR: 0x00010804,
LPTIM_VERR: 0x00000014,
LPTIM_PIDR: 0x00120011,
LPTIM_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPTIM2_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM2_TAKEN {
None
} else {
LPTIM2_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM2_TAKEN && inst.addr == INSTANCE.addr {
LPTIM2_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPTIM2_TAKEN = true;
INSTANCE
}
}
pub const LPTIM2: *const RegisterBlock = 0x50021000 as *const _;
pub mod LPTIM3 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x50022000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
LPTIM_ISR: 0x00000000,
LPTIM_ICR: 0x00000000,
LPTIM_IER: 0x00000000,
LPTIM_CFGR: 0x00000000,
LPTIM_CR: 0x00000000,
LPTIM_CMP: 0x00000000,
LPTIM_ARR: 0x00000001,
LPTIM_CNT: 0x00000000,
LPTIM_CFGR2: 0x00000000,
LPTIM1_HWCFGR: 0x00010804,
LPTIM_VERR: 0x00000014,
LPTIM_PIDR: 0x00120011,
LPTIM_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPTIM3_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM3_TAKEN {
None
} else {
LPTIM3_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM3_TAKEN && inst.addr == INSTANCE.addr {
LPTIM3_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPTIM3_TAKEN = true;
INSTANCE
}
}
pub const LPTIM3: *const RegisterBlock = 0x50022000 as *const _;
pub mod LPTIM4 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x50023000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
LPTIM_ISR: 0x00000000,
LPTIM_ICR: 0x00000000,
LPTIM_IER: 0x00000000,
LPTIM_CFGR: 0x00000000,
LPTIM_CR: 0x00000000,
LPTIM_CMP: 0x00000000,
LPTIM_ARR: 0x00000001,
LPTIM_CNT: 0x00000000,
LPTIM_CFGR2: 0x00000000,
LPTIM1_HWCFGR: 0x00010804,
LPTIM_VERR: 0x00000014,
LPTIM_PIDR: 0x00120011,
LPTIM_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPTIM4_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM4_TAKEN {
None
} else {
LPTIM4_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM4_TAKEN && inst.addr == INSTANCE.addr {
LPTIM4_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPTIM4_TAKEN = true;
INSTANCE
}
}
pub const LPTIM4: *const RegisterBlock = 0x50023000 as *const _;
pub mod LPTIM5 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x50024000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
LPTIM_ISR: 0x00000000,
LPTIM_ICR: 0x00000000,
LPTIM_IER: 0x00000000,
LPTIM_CFGR: 0x00000000,
LPTIM_CR: 0x00000000,
LPTIM_CMP: 0x00000000,
LPTIM_ARR: 0x00000001,
LPTIM_CNT: 0x00000000,
LPTIM_CFGR2: 0x00000000,
LPTIM1_HWCFGR: 0x00010804,
LPTIM_VERR: 0x00000014,
LPTIM_PIDR: 0x00120011,
LPTIM_SIDR: 0xA3C5DD01,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LPTIM5_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM5_TAKEN {
None
} else {
LPTIM5_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LPTIM5_TAKEN && inst.addr == INSTANCE.addr {
LPTIM5_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LPTIM5_TAKEN = true;
INSTANCE
}
}
pub const LPTIM5: *const RegisterBlock = 0x50024000 as *const _;