#![allow(unused, non_snake_case, non_upper_case_globals)] use crate::ral::{RORegister, RWRegister};
#[repr(C)]
pub struct RegisterBlock {
pub SMCNT: RORegister<i16>,
pub SMINIT: RWRegister<i16>,
pub SMCTRL2: RWRegister<u16>,
pub SMCTRL: RWRegister<u16>,
_reserved1: [u16; 1],
pub SMVAL0: RWRegister<i16>,
pub SMFRACVAL1: RWRegister<u16>,
pub SMVAL1: RWRegister<i16>,
pub SMFRACVAL2: RWRegister<u16>,
pub SMVAL2: RWRegister<i16>,
pub SMFRACVAL3: RWRegister<u16>,
pub SMVAL3: RWRegister<i16>,
pub SMFRACVAL4: RWRegister<u16>,
pub SMVAL4: RWRegister<i16>,
pub SMFRACVAL5: RWRegister<u16>,
pub SMVAL5: RWRegister<i16>,
pub SMFRCTRL: RWRegister<u16>,
pub SMOCTRL: RWRegister<u16>,
pub SMSTS: RWRegister<u16>,
pub SMINTEN: RWRegister<u16>,
pub SMDMAEN: RWRegister<u16>,
pub SMTCTRL: RWRegister<u16>,
pub SMDISMAP0: RWRegister<u16>,
pub SMDISMAP1: RWRegister<u16>,
pub SMDTCNT0: RWRegister<u16>,
pub SMDTCNT1: RWRegister<u16>,
pub SMCAPTCTRLA: RWRegister<u16>,
pub SMCAPTCOMPA: RWRegister<u16>,
pub SMCAPTCTRLB: RWRegister<u16>,
pub SMCAPTCOMPB: RWRegister<u16>,
pub SMCAPTCTRLX: RWRegister<u16>,
pub SMCAPTCOMPX: RWRegister<u16>,
pub SMCVAL0: RORegister<u16>,
pub SMCVAL0CYC: RORegister<u16>,
pub SMCVAL1: RORegister<u16>,
pub SMCVAL1CYC: RORegister<u16>,
pub SMCVAL2: RORegister<u16>,
pub SMCVAL2CYC: RORegister<u16>,
pub SMCVAL3: RORegister<u16>,
pub SMCVAL3CYC: RORegister<u16>,
pub SMCVAL4: RORegister<u16>,
pub SMCVAL4CYC: RORegister<u16>,
pub SMCVAL5: RORegister<u16>,
pub SMCVAL5CYC: RORegister<u16>,
pub SMPHASEDLY: RWRegister<u16>,
_reserved2: [u16; 3],
}
const _: () = assert!(core::mem::size_of::<RegisterBlock>() == 0x60);
pub struct Submodule<const N: u8, const M: u8>(*const RegisterBlock);
impl<const N: u8, const M: u8> ::core::ops::Deref for Submodule<N, M> {
type Target = RegisterBlock;
#[inline]
fn deref(&self) -> &Self::Target {
unsafe { &*self.0 }
}
}
unsafe impl<const N: u8, const M: u8> Send for Submodule<N, M> {}
pub type Submodules<const N: u8> = (
Submodule<N, 0>,
Submodule<N, 1>,
Submodule<N, 2>,
Submodule<N, 3>,
);
pub(crate) fn submodules<const N: u8>(pwm: &crate::ral::pwm::Instance<N>) -> Submodules<N> {
(
Submodule(core::ptr::addr_of!(pwm.SM[0]) as *const _),
Submodule(core::ptr::addr_of!(pwm.SM[1]) as *const _),
Submodule(core::ptr::addr_of!(pwm.SM[2]) as *const _),
Submodule(core::ptr::addr_of!(pwm.SM[3]) as *const _),
)
}
pub use crate::ral::pwm::sm::*;