#[doc = "Supply Controller Control Register"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Cr(pub u32);
impl Cr {
#[doc = "Voltage Regulator Off"]
#[must_use]
#[inline(always)]
pub const fn vroff(&self) -> super::vals::Vroff {
let val = (self.0 >> 2usize) & 0x01;
super::vals::Vroff::from_bits(val as u8)
}
#[doc = "Voltage Regulator Off"]
#[inline(always)]
pub const fn set_vroff(&mut self, val: super::vals::Vroff) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val.to_bits() as u32) & 0x01) << 2usize);
}
#[doc = "Crystal Oscillator Select"]
#[must_use]
#[inline(always)]
pub const fn xtalsel(&self) -> super::vals::Xtalsel {
let val = (self.0 >> 3usize) & 0x01;
super::vals::Xtalsel::from_bits(val as u8)
}
#[doc = "Crystal Oscillator Select"]
#[inline(always)]
pub const fn set_xtalsel(&mut self, val: super::vals::Xtalsel) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val.to_bits() as u32) & 0x01) << 3usize);
}
#[doc = "Password"]
#[must_use]
#[inline(always)]
pub const fn key(&self) -> super::vals::CrKey {
let val = (self.0 >> 24usize) & 0xff;
super::vals::CrKey::from_bits(val as u8)
}
#[doc = "Password"]
#[inline(always)]
pub const fn set_key(&mut self, val: super::vals::CrKey) {
self.0 = (self.0 & !(0xff << 24usize)) | (((val.to_bits() as u32) & 0xff) << 24usize);
}
}
impl Default for Cr {
#[inline(always)]
fn default() -> Cr {
Cr(0)
}
}
impl core::fmt::Debug for Cr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Cr")
.field("vroff", &self.vroff())
.field("xtalsel", &self.xtalsel())
.field("key", &self.key())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Cr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Cr {{ vroff: {:?}, xtalsel: {:?}, key: {:?} }}",
self.vroff(),
self.xtalsel(),
self.key()
)
}
}
#[doc = "Supply Controller Mode Register"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Mr(pub u32);
impl Mr {
#[doc = "Brownout Detector Reset Enable"]
#[must_use]
#[inline(always)]
pub const fn bodrsten(&self) -> super::vals::Bodrsten {
let val = (self.0 >> 12usize) & 0x01;
super::vals::Bodrsten::from_bits(val as u8)
}
#[doc = "Brownout Detector Reset Enable"]
#[inline(always)]
pub const fn set_bodrsten(&mut self, val: super::vals::Bodrsten) {
self.0 = (self.0 & !(0x01 << 12usize)) | (((val.to_bits() as u32) & 0x01) << 12usize);
}
#[doc = "Brownout Detector Disable"]
#[must_use]
#[inline(always)]
pub const fn boddis(&self) -> super::vals::Boddis {
let val = (self.0 >> 13usize) & 0x01;
super::vals::Boddis::from_bits(val as u8)
}
#[doc = "Brownout Detector Disable"]
#[inline(always)]
pub const fn set_boddis(&mut self, val: super::vals::Boddis) {
self.0 = (self.0 & !(0x01 << 13usize)) | (((val.to_bits() as u32) & 0x01) << 13usize);
}
#[doc = "VDDIO Ready"]
#[must_use]
#[inline(always)]
pub const fn vddiordy(&self) -> super::vals::Vddiordy {
let val = (self.0 >> 14usize) & 0x01;
super::vals::Vddiordy::from_bits(val as u8)
}
#[doc = "VDDIO Ready"]
#[inline(always)]
pub const fn set_vddiordy(&mut self, val: super::vals::Vddiordy) {
self.0 = (self.0 & !(0x01 << 14usize)) | (((val.to_bits() as u32) & 0x01) << 14usize);
}
#[doc = "Oscillator Bypass"]
#[must_use]
#[inline(always)]
pub const fn oscbypass(&self) -> super::vals::Oscbypass {
let val = (self.0 >> 20usize) & 0x01;
super::vals::Oscbypass::from_bits(val as u8)
}
#[doc = "Oscillator Bypass"]
#[inline(always)]
pub const fn set_oscbypass(&mut self, val: super::vals::Oscbypass) {
self.0 = (self.0 & !(0x01 << 20usize)) | (((val.to_bits() as u32) & 0x01) << 20usize);
}
#[doc = "Password Key"]
#[must_use]
#[inline(always)]
pub const fn key(&self) -> super::vals::MrKey {
let val = (self.0 >> 24usize) & 0xff;
super::vals::MrKey::from_bits(val as u8)
}
#[doc = "Password Key"]
#[inline(always)]
pub const fn set_key(&mut self, val: super::vals::MrKey) {
self.0 = (self.0 & !(0xff << 24usize)) | (((val.to_bits() as u32) & 0xff) << 24usize);
}
}
impl Default for Mr {
#[inline(always)]
fn default() -> Mr {
Mr(0)
}
}
impl core::fmt::Debug for Mr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Mr")
.field("bodrsten", &self.bodrsten())
.field("boddis", &self.boddis())
.field("vddiordy", &self.vddiordy())
.field("oscbypass", &self.oscbypass())
.field("key", &self.key())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Mr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Mr {{ bodrsten: {:?}, boddis: {:?}, vddiordy: {:?}, oscbypass: {:?}, key: {:?} }}",
self.bodrsten(),
self.boddis(),
self.vddiordy(),
self.oscbypass(),
self.key()
)
}
}
#[doc = "Supply Controller Supply Monitor Mode Register"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Smmr(pub u32);
impl Smmr {
#[doc = "Supply Monitor Threshold"]
#[must_use]
#[inline(always)]
pub const fn smth(&self) -> u8 {
let val = (self.0 >> 0usize) & 0x0f;
val as u8
}
#[doc = "Supply Monitor Threshold"]
#[inline(always)]
pub const fn set_smth(&mut self, val: u8) {
self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
}
#[doc = "Supply Monitor Sampling Period"]
#[must_use]
#[inline(always)]
pub const fn smsmpl(&self) -> super::vals::Smsmpl {
let val = (self.0 >> 8usize) & 0x07;
super::vals::Smsmpl::from_bits(val as u8)
}
#[doc = "Supply Monitor Sampling Period"]
#[inline(always)]
pub const fn set_smsmpl(&mut self, val: super::vals::Smsmpl) {
self.0 = (self.0 & !(0x07 << 8usize)) | (((val.to_bits() as u32) & 0x07) << 8usize);
}
#[doc = "Supply Monitor Reset Enable"]
#[must_use]
#[inline(always)]
pub const fn smrsten(&self) -> super::vals::Smrsten {
let val = (self.0 >> 12usize) & 0x01;
super::vals::Smrsten::from_bits(val as u8)
}
#[doc = "Supply Monitor Reset Enable"]
#[inline(always)]
pub const fn set_smrsten(&mut self, val: super::vals::Smrsten) {
self.0 = (self.0 & !(0x01 << 12usize)) | (((val.to_bits() as u32) & 0x01) << 12usize);
}
#[doc = "Supply Monitor Interrupt Enable"]
#[must_use]
#[inline(always)]
pub const fn smien(&self) -> super::vals::Smien {
let val = (self.0 >> 13usize) & 0x01;
super::vals::Smien::from_bits(val as u8)
}
#[doc = "Supply Monitor Interrupt Enable"]
#[inline(always)]
pub const fn set_smien(&mut self, val: super::vals::Smien) {
self.0 = (self.0 & !(0x01 << 13usize)) | (((val.to_bits() as u32) & 0x01) << 13usize);
}
}
impl Default for Smmr {
#[inline(always)]
fn default() -> Smmr {
Smmr(0)
}
}
impl core::fmt::Debug for Smmr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Smmr")
.field("smth", &self.smth())
.field("smsmpl", &self.smsmpl())
.field("smrsten", &self.smrsten())
.field("smien", &self.smien())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Smmr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Smmr {{ smth: {=u8:?}, smsmpl: {:?}, smrsten: {:?}, smien: {:?} }}",
self.smth(),
self.smsmpl(),
self.smrsten(),
self.smien()
)
}
}
#[doc = "Supply Controller Status Register"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Sr(pub u32);
impl Sr {
#[doc = "FWUP Wake-up Status"]
#[must_use]
#[inline(always)]
pub const fn fwups(&self) -> super::vals::Fwups {
let val = (self.0 >> 0usize) & 0x01;
super::vals::Fwups::from_bits(val as u8)
}
#[doc = "FWUP Wake-up Status"]
#[inline(always)]
pub const fn set_fwups(&mut self, val: super::vals::Fwups) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val.to_bits() as u32) & 0x01) << 0usize);
}
#[doc = "WKUP Wake-up Status"]
#[must_use]
#[inline(always)]
pub const fn wkups(&self) -> super::vals::Wkups {
let val = (self.0 >> 1usize) & 0x01;
super::vals::Wkups::from_bits(val as u8)
}
#[doc = "WKUP Wake-up Status"]
#[inline(always)]
pub const fn set_wkups(&mut self, val: super::vals::Wkups) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val.to_bits() as u32) & 0x01) << 1usize);
}
#[doc = "Supply Monitor Detection Wake-up Status"]
#[must_use]
#[inline(always)]
pub const fn smws(&self) -> super::vals::Smws {
let val = (self.0 >> 2usize) & 0x01;
super::vals::Smws::from_bits(val as u8)
}
#[doc = "Supply Monitor Detection Wake-up Status"]
#[inline(always)]
pub const fn set_smws(&mut self, val: super::vals::Smws) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val.to_bits() as u32) & 0x01) << 2usize);
}
#[doc = "Brownout Detector Reset Status"]
#[must_use]
#[inline(always)]
pub const fn bodrsts(&self) -> super::vals::Bodrsts {
let val = (self.0 >> 3usize) & 0x01;
super::vals::Bodrsts::from_bits(val as u8)
}
#[doc = "Brownout Detector Reset Status"]
#[inline(always)]
pub const fn set_bodrsts(&mut self, val: super::vals::Bodrsts) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val.to_bits() as u32) & 0x01) << 3usize);
}
#[doc = "Supply Monitor Reset Status"]
#[must_use]
#[inline(always)]
pub const fn smrsts(&self) -> super::vals::Smrsts {
let val = (self.0 >> 4usize) & 0x01;
super::vals::Smrsts::from_bits(val as u8)
}
#[doc = "Supply Monitor Reset Status"]
#[inline(always)]
pub const fn set_smrsts(&mut self, val: super::vals::Smrsts) {
self.0 = (self.0 & !(0x01 << 4usize)) | (((val.to_bits() as u32) & 0x01) << 4usize);
}
#[doc = "Supply Monitor Status"]
#[must_use]
#[inline(always)]
pub const fn sms(&self) -> super::vals::Sms {
let val = (self.0 >> 5usize) & 0x01;
super::vals::Sms::from_bits(val as u8)
}
#[doc = "Supply Monitor Status"]
#[inline(always)]
pub const fn set_sms(&mut self, val: super::vals::Sms) {
self.0 = (self.0 & !(0x01 << 5usize)) | (((val.to_bits() as u32) & 0x01) << 5usize);
}
#[doc = "Supply Monitor Output Status"]
#[must_use]
#[inline(always)]
pub const fn smos(&self) -> super::vals::Smos {
let val = (self.0 >> 6usize) & 0x01;
super::vals::Smos::from_bits(val as u8)
}
#[doc = "Supply Monitor Output Status"]
#[inline(always)]
pub const fn set_smos(&mut self, val: super::vals::Smos) {
self.0 = (self.0 & !(0x01 << 6usize)) | (((val.to_bits() as u32) & 0x01) << 6usize);
}
#[doc = "32-kHz Oscillator Selection Status"]
#[must_use]
#[inline(always)]
pub const fn oscsel(&self) -> super::vals::Oscsel {
let val = (self.0 >> 7usize) & 0x01;
super::vals::Oscsel::from_bits(val as u8)
}
#[doc = "32-kHz Oscillator Selection Status"]
#[inline(always)]
pub const fn set_oscsel(&mut self, val: super::vals::Oscsel) {
self.0 = (self.0 & !(0x01 << 7usize)) | (((val.to_bits() as u32) & 0x01) << 7usize);
}
#[doc = "FWUP Input Status"]
#[must_use]
#[inline(always)]
pub const fn fwupis(&self) -> super::vals::Fwupis {
let val = (self.0 >> 12usize) & 0x01;
super::vals::Fwupis::from_bits(val as u8)
}
#[doc = "FWUP Input Status"]
#[inline(always)]
pub const fn set_fwupis(&mut self, val: super::vals::Fwupis) {
self.0 = (self.0 & !(0x01 << 12usize)) | (((val.to_bits() as u32) & 0x01) << 12usize);
}
#[doc = "WKUP Input Status 0"]
#[must_use]
#[inline(always)]
pub const fn wkupis(&self, n: usize) -> super::vals::Wkupis {
assert!(n < 16usize);
let offs = 16usize + n * 1usize;
let val = (self.0 >> offs) & 0x01;
super::vals::Wkupis::from_bits(val as u8)
}
#[doc = "WKUP Input Status 0"]
#[inline(always)]
pub const fn set_wkupis(&mut self, n: usize, val: super::vals::Wkupis) {
assert!(n < 16usize);
let offs = 16usize + n * 1usize;
self.0 = (self.0 & !(0x01 << offs)) | (((val.to_bits() as u32) & 0x01) << offs);
}
}
impl Default for Sr {
#[inline(always)]
fn default() -> Sr {
Sr(0)
}
}
impl core::fmt::Debug for Sr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Sr")
.field("fwups", &self.fwups())
.field("wkups", &self.wkups())
.field("smws", &self.smws())
.field("bodrsts", &self.bodrsts())
.field("smrsts", &self.smrsts())
.field("sms", &self.sms())
.field("smos", &self.smos())
.field("oscsel", &self.oscsel())
.field("fwupis", &self.fwupis())
.field("wkupis[0]", &self.wkupis(0usize))
.field("wkupis[1]", &self.wkupis(1usize))
.field("wkupis[2]", &self.wkupis(2usize))
.field("wkupis[3]", &self.wkupis(3usize))
.field("wkupis[4]", &self.wkupis(4usize))
.field("wkupis[5]", &self.wkupis(5usize))
.field("wkupis[6]", &self.wkupis(6usize))
.field("wkupis[7]", &self.wkupis(7usize))
.field("wkupis[8]", &self.wkupis(8usize))
.field("wkupis[9]", &self.wkupis(9usize))
.field("wkupis[10]", &self.wkupis(10usize))
.field("wkupis[11]", &self.wkupis(11usize))
.field("wkupis[12]", &self.wkupis(12usize))
.field("wkupis[13]", &self.wkupis(13usize))
.field("wkupis[14]", &self.wkupis(14usize))
.field("wkupis[15]", &self.wkupis(15usize))
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Sr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Sr {{ fwups: {:?}, wkups: {:?}, smws: {:?}, bodrsts: {:?}, smrsts: {:?}, sms: {:?}, smos: {:?}, oscsel: {:?}, fwupis: {:?}, wkupis[0]: {:?}, wkupis[1]: {:?}, wkupis[2]: {:?}, wkupis[3]: {:?}, wkupis[4]: {:?}, wkupis[5]: {:?}, wkupis[6]: {:?}, wkupis[7]: {:?}, wkupis[8]: {:?}, wkupis[9]: {:?}, wkupis[10]: {:?}, wkupis[11]: {:?}, wkupis[12]: {:?}, wkupis[13]: {:?}, wkupis[14]: {:?}, wkupis[15]: {:?} }}",
self.fwups(),
self.wkups(),
self.smws(),
self.bodrsts(),
self.smrsts(),
self.sms(),
self.smos(),
self.oscsel(),
self.fwupis(),
self.wkupis(0usize),
self.wkupis(1usize),
self.wkupis(2usize),
self.wkupis(3usize),
self.wkupis(4usize),
self.wkupis(5usize),
self.wkupis(6usize),
self.wkupis(7usize),
self.wkupis(8usize),
self.wkupis(9usize),
self.wkupis(10usize),
self.wkupis(11usize),
self.wkupis(12usize),
self.wkupis(13usize),
self.wkupis(14usize),
self.wkupis(15usize)
)
}
}
#[doc = "Supply Controller Wake-up Inputs Register"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Wuir(pub u32);
impl Wuir {
#[doc = "Wake-up Input Enable 0"]
#[must_use]
#[inline(always)]
pub const fn wkupen(&self, n: usize) -> super::vals::Wkupen {
assert!(n < 16usize);
let offs = 0usize + n * 1usize;
let val = (self.0 >> offs) & 0x01;
super::vals::Wkupen::from_bits(val as u8)
}
#[doc = "Wake-up Input Enable 0"]
#[inline(always)]
pub const fn set_wkupen(&mut self, n: usize, val: super::vals::Wkupen) {
assert!(n < 16usize);
let offs = 0usize + n * 1usize;
self.0 = (self.0 & !(0x01 << offs)) | (((val.to_bits() as u32) & 0x01) << offs);
}
#[doc = "Wake-up Input Type 0"]
#[must_use]
#[inline(always)]
pub const fn wkupt(&self, n: usize) -> super::vals::Wkupt {
assert!(n < 16usize);
let offs = 16usize + n * 1usize;
let val = (self.0 >> offs) & 0x01;
super::vals::Wkupt::from_bits(val as u8)
}
#[doc = "Wake-up Input Type 0"]
#[inline(always)]
pub const fn set_wkupt(&mut self, n: usize, val: super::vals::Wkupt) {
assert!(n < 16usize);
let offs = 16usize + n * 1usize;
self.0 = (self.0 & !(0x01 << offs)) | (((val.to_bits() as u32) & 0x01) << offs);
}
}
impl Default for Wuir {
#[inline(always)]
fn default() -> Wuir {
Wuir(0)
}
}
impl core::fmt::Debug for Wuir {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Wuir")
.field("wkupen[0]", &self.wkupen(0usize))
.field("wkupen[1]", &self.wkupen(1usize))
.field("wkupen[2]", &self.wkupen(2usize))
.field("wkupen[3]", &self.wkupen(3usize))
.field("wkupen[4]", &self.wkupen(4usize))
.field("wkupen[5]", &self.wkupen(5usize))
.field("wkupen[6]", &self.wkupen(6usize))
.field("wkupen[7]", &self.wkupen(7usize))
.field("wkupen[8]", &self.wkupen(8usize))
.field("wkupen[9]", &self.wkupen(9usize))
.field("wkupen[10]", &self.wkupen(10usize))
.field("wkupen[11]", &self.wkupen(11usize))
.field("wkupen[12]", &self.wkupen(12usize))
.field("wkupen[13]", &self.wkupen(13usize))
.field("wkupen[14]", &self.wkupen(14usize))
.field("wkupen[15]", &self.wkupen(15usize))
.field("wkupt[0]", &self.wkupt(0usize))
.field("wkupt[1]", &self.wkupt(1usize))
.field("wkupt[2]", &self.wkupt(2usize))
.field("wkupt[3]", &self.wkupt(3usize))
.field("wkupt[4]", &self.wkupt(4usize))
.field("wkupt[5]", &self.wkupt(5usize))
.field("wkupt[6]", &self.wkupt(6usize))
.field("wkupt[7]", &self.wkupt(7usize))
.field("wkupt[8]", &self.wkupt(8usize))
.field("wkupt[9]", &self.wkupt(9usize))
.field("wkupt[10]", &self.wkupt(10usize))
.field("wkupt[11]", &self.wkupt(11usize))
.field("wkupt[12]", &self.wkupt(12usize))
.field("wkupt[13]", &self.wkupt(13usize))
.field("wkupt[14]", &self.wkupt(14usize))
.field("wkupt[15]", &self.wkupt(15usize))
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Wuir {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Wuir {{ wkupen[0]: {:?}, wkupen[1]: {:?}, wkupen[2]: {:?}, wkupen[3]: {:?}, wkupen[4]: {:?}, wkupen[5]: {:?}, wkupen[6]: {:?}, wkupen[7]: {:?}, wkupen[8]: {:?}, wkupen[9]: {:?}, wkupen[10]: {:?}, wkupen[11]: {:?}, wkupen[12]: {:?}, wkupen[13]: {:?}, wkupen[14]: {:?}, wkupen[15]: {:?}, wkupt[0]: {:?}, wkupt[1]: {:?}, wkupt[2]: {:?}, wkupt[3]: {:?}, wkupt[4]: {:?}, wkupt[5]: {:?}, wkupt[6]: {:?}, wkupt[7]: {:?}, wkupt[8]: {:?}, wkupt[9]: {:?}, wkupt[10]: {:?}, wkupt[11]: {:?}, wkupt[12]: {:?}, wkupt[13]: {:?}, wkupt[14]: {:?}, wkupt[15]: {:?} }}",
self.wkupen(0usize),
self.wkupen(1usize),
self.wkupen(2usize),
self.wkupen(3usize),
self.wkupen(4usize),
self.wkupen(5usize),
self.wkupen(6usize),
self.wkupen(7usize),
self.wkupen(8usize),
self.wkupen(9usize),
self.wkupen(10usize),
self.wkupen(11usize),
self.wkupen(12usize),
self.wkupen(13usize),
self.wkupen(14usize),
self.wkupen(15usize),
self.wkupt(0usize),
self.wkupt(1usize),
self.wkupt(2usize),
self.wkupt(3usize),
self.wkupt(4usize),
self.wkupt(5usize),
self.wkupt(6usize),
self.wkupt(7usize),
self.wkupt(8usize),
self.wkupt(9usize),
self.wkupt(10usize),
self.wkupt(11usize),
self.wkupt(12usize),
self.wkupt(13usize),
self.wkupt(14usize),
self.wkupt(15usize)
)
}
}
#[doc = "Supply Controller Wake-up Mode Register"]
#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Wumr(pub u32);
impl Wumr {
#[doc = "Force Wake-up Enable"]
#[must_use]
#[inline(always)]
pub const fn fwupen(&self) -> super::vals::Fwupen {
let val = (self.0 >> 0usize) & 0x01;
super::vals::Fwupen::from_bits(val as u8)
}
#[doc = "Force Wake-up Enable"]
#[inline(always)]
pub const fn set_fwupen(&mut self, val: super::vals::Fwupen) {
self.0 = (self.0 & !(0x01 << 0usize)) | (((val.to_bits() as u32) & 0x01) << 0usize);
}
#[doc = "Supply Monitor Wake-up Enable"]
#[must_use]
#[inline(always)]
pub const fn smen(&self) -> super::vals::Smen {
let val = (self.0 >> 1usize) & 0x01;
super::vals::Smen::from_bits(val as u8)
}
#[doc = "Supply Monitor Wake-up Enable"]
#[inline(always)]
pub const fn set_smen(&mut self, val: super::vals::Smen) {
self.0 = (self.0 & !(0x01 << 1usize)) | (((val.to_bits() as u32) & 0x01) << 1usize);
}
#[doc = "Real Time Timer Wake-up Enable"]
#[must_use]
#[inline(always)]
pub const fn rtten(&self) -> super::vals::Rtten {
let val = (self.0 >> 2usize) & 0x01;
super::vals::Rtten::from_bits(val as u8)
}
#[doc = "Real Time Timer Wake-up Enable"]
#[inline(always)]
pub const fn set_rtten(&mut self, val: super::vals::Rtten) {
self.0 = (self.0 & !(0x01 << 2usize)) | (((val.to_bits() as u32) & 0x01) << 2usize);
}
#[doc = "Real Time Clock Wake-up Enable"]
#[must_use]
#[inline(always)]
pub const fn rtcen(&self) -> super::vals::Rtcen {
let val = (self.0 >> 3usize) & 0x01;
super::vals::Rtcen::from_bits(val as u8)
}
#[doc = "Real Time Clock Wake-up Enable"]
#[inline(always)]
pub const fn set_rtcen(&mut self, val: super::vals::Rtcen) {
self.0 = (self.0 & !(0x01 << 3usize)) | (((val.to_bits() as u32) & 0x01) << 3usize);
}
#[doc = "Force Wake-up Debouncer Period"]
#[must_use]
#[inline(always)]
pub const fn fwupdbc(&self) -> super::vals::Fwupdbc {
let val = (self.0 >> 8usize) & 0x07;
super::vals::Fwupdbc::from_bits(val as u8)
}
#[doc = "Force Wake-up Debouncer Period"]
#[inline(always)]
pub const fn set_fwupdbc(&mut self, val: super::vals::Fwupdbc) {
self.0 = (self.0 & !(0x07 << 8usize)) | (((val.to_bits() as u32) & 0x07) << 8usize);
}
#[doc = "Wake-up Inputs Debouncer Period"]
#[must_use]
#[inline(always)]
pub const fn wkupdbc(&self) -> super::vals::Wkupdbc {
let val = (self.0 >> 12usize) & 0x07;
super::vals::Wkupdbc::from_bits(val as u8)
}
#[doc = "Wake-up Inputs Debouncer Period"]
#[inline(always)]
pub const fn set_wkupdbc(&mut self, val: super::vals::Wkupdbc) {
self.0 = (self.0 & !(0x07 << 12usize)) | (((val.to_bits() as u32) & 0x07) << 12usize);
}
}
impl Default for Wumr {
#[inline(always)]
fn default() -> Wumr {
Wumr(0)
}
}
impl core::fmt::Debug for Wumr {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Wumr")
.field("fwupen", &self.fwupen())
.field("smen", &self.smen())
.field("rtten", &self.rtten())
.field("rtcen", &self.rtcen())
.field("fwupdbc", &self.fwupdbc())
.field("wkupdbc", &self.wkupdbc())
.finish()
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for Wumr {
fn format(&self, f: defmt::Formatter) {
defmt::write!(
f,
"Wumr {{ fwupen: {:?}, smen: {:?}, rtten: {:?}, rtcen: {:?}, fwupdbc: {:?}, wkupdbc: {:?} }}",
self.fwupen(),
self.smen(),
self.rtten(),
self.rtcen(),
self.fwupdbc(),
self.wkupdbc()
)
}
}