#[doc = "Register `IFCONFIG0` reader"] pub struct R(crate::R); impl core::ops::Deref for R { type Target = crate::R; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } impl From> for R { #[inline(always)] fn from(reader: crate::R) -> Self { R(reader) } } #[doc = "Register `IFCONFIG0` writer"] pub struct W(crate::W); impl core::ops::Deref for W { type Target = crate::W; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } impl core::ops::DerefMut for W { #[inline(always)] fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } impl From> for W { #[inline(always)] fn from(writer: crate::W) -> Self { W(writer) } } #[doc = "Field `READOC` reader - Configure number of data lines and opcode used for reading."] pub type READOC_R = crate::FieldReader; #[doc = "Configure number of data lines and opcode used for reading.\n\nValue on reset: 0"] #[derive(Clone, Copy, Debug, PartialEq)] #[repr(u8)] pub enum READOC_A { #[doc = "0: Single data line SPI. FAST_READ (opcode 0x0B)."] FASTREAD = 0, #[doc = "1: Dual data line SPI. READ2O (opcode 0x3B)."] READ2O = 1, #[doc = "2: Dual data line SPI. READ2IO (opcode 0xBB)."] READ2IO = 2, #[doc = "3: Quad data line SPI. READ4O (opcode 0x6B)."] READ4O = 3, #[doc = "4: Quad data line SPI. READ4IO (opcode 0xEB)."] READ4IO = 4, } impl From for u8 { #[inline(always)] fn from(variant: READOC_A) -> Self { variant as _ } } impl READOC_R { #[doc = "Get enumerated values variant"] #[inline(always)] pub fn variant(&self) -> Option { match self.bits { 0 => Some(READOC_A::FASTREAD), 1 => Some(READOC_A::READ2O), 2 => Some(READOC_A::READ2IO), 3 => Some(READOC_A::READ4O), 4 => Some(READOC_A::READ4IO), _ => None, } } #[doc = "Checks if the value of the field is `FASTREAD`"] #[inline(always)] pub fn is_fastread(&self) -> bool { *self == READOC_A::FASTREAD } #[doc = "Checks if the value of the field is `READ2O`"] #[inline(always)] pub fn is_read2o(&self) -> bool { *self == READOC_A::READ2O } #[doc = "Checks if the value of the field is `READ2IO`"] #[inline(always)] pub fn is_read2io(&self) -> bool { *self == READOC_A::READ2IO } #[doc = "Checks if the value of the field is `READ4O`"] #[inline(always)] pub fn is_read4o(&self) -> bool { *self == READOC_A::READ4O } #[doc = "Checks if the value of the field is `READ4IO`"] #[inline(always)] pub fn is_read4io(&self) -> bool { *self == READOC_A::READ4IO } } #[doc = "Field `READOC` writer - Configure number of data lines and opcode used for reading."] pub type READOC_W<'a, const O: u8> = crate::FieldWriter<'a, u32, IFCONFIG0_SPEC, u8, READOC_A, 3, O>; impl<'a, const O: u8> READOC_W<'a, O> { #[doc = "Single data line SPI. FAST_READ (opcode 0x0B)."] #[inline(always)] pub fn fastread(self) -> &'a mut W { self.variant(READOC_A::FASTREAD) } #[doc = "Dual data line SPI. READ2O (opcode 0x3B)."] #[inline(always)] pub fn read2o(self) -> &'a mut W { self.variant(READOC_A::READ2O) } #[doc = "Dual data line SPI. READ2IO (opcode 0xBB)."] #[inline(always)] pub fn read2io(self) -> &'a mut W { self.variant(READOC_A::READ2IO) } #[doc = "Quad data line SPI. READ4O (opcode 0x6B)."] #[inline(always)] pub fn read4o(self) -> &'a mut W { self.variant(READOC_A::READ4O) } #[doc = "Quad data line SPI. READ4IO (opcode 0xEB)."] #[inline(always)] pub fn read4io(self) -> &'a mut W { self.variant(READOC_A::READ4IO) } } #[doc = "Field `WRITEOC` reader - Configure number of data lines and opcode used for writing."] pub type WRITEOC_R = crate::FieldReader; #[doc = "Configure number of data lines and opcode used for writing.\n\nValue on reset: 0"] #[derive(Clone, Copy, Debug, PartialEq)] #[repr(u8)] pub enum WRITEOC_A { #[doc = "0: Single data line SPI. PP (opcode 0x02)."] PP = 0, #[doc = "1: Dual data line SPI. PP2O (opcode 0xA2)."] PP2O = 1, #[doc = "2: Quad data line SPI. PP4O (opcode 0x32)."] PP4O = 2, #[doc = "3: Quad data line SPI. PP4IO (opcode 0x38)."] PP4IO = 3, } impl From for u8 { #[inline(always)] fn from(variant: WRITEOC_A) -> Self { variant as _ } } impl WRITEOC_R { #[doc = "Get enumerated values variant"] #[inline(always)] pub fn variant(&self) -> Option { match self.bits { 0 => Some(WRITEOC_A::PP), 1 => Some(WRITEOC_A::PP2O), 2 => Some(WRITEOC_A::PP4O), 3 => Some(WRITEOC_A::PP4IO), _ => None, } } #[doc = "Checks if the value of the field is `PP`"] #[inline(always)] pub fn is_pp(&self) -> bool { *self == WRITEOC_A::PP } #[doc = "Checks if the value of the field is `PP2O`"] #[inline(always)] pub fn is_pp2o(&self) -> bool { *self == WRITEOC_A::PP2O } #[doc = "Checks if the value of the field is `PP4O`"] #[inline(always)] pub fn is_pp4o(&self) -> bool { *self == WRITEOC_A::PP4O } #[doc = "Checks if the value of the field is `PP4IO`"] #[inline(always)] pub fn is_pp4io(&self) -> bool { *self == WRITEOC_A::PP4IO } } #[doc = "Field `WRITEOC` writer - Configure number of data lines and opcode used for writing."] pub type WRITEOC_W<'a, const O: u8> = crate::FieldWriter<'a, u32, IFCONFIG0_SPEC, u8, WRITEOC_A, 3, O>; impl<'a, const O: u8> WRITEOC_W<'a, O> { #[doc = "Single data line SPI. PP (opcode 0x02)."] #[inline(always)] pub fn pp(self) -> &'a mut W { self.variant(WRITEOC_A::PP) } #[doc = "Dual data line SPI. PP2O (opcode 0xA2)."] #[inline(always)] pub fn pp2o(self) -> &'a mut W { self.variant(WRITEOC_A::PP2O) } #[doc = "Quad data line SPI. PP4O (opcode 0x32)."] #[inline(always)] pub fn pp4o(self) -> &'a mut W { self.variant(WRITEOC_A::PP4O) } #[doc = "Quad data line SPI. PP4IO (opcode 0x38)."] #[inline(always)] pub fn pp4io(self) -> &'a mut W { self.variant(WRITEOC_A::PP4IO) } } #[doc = "Field `ADDRMODE` reader - Addressing mode."] pub type ADDRMODE_R = crate::BitReader; #[doc = "Addressing mode.\n\nValue on reset: 0"] #[derive(Clone, Copy, Debug, PartialEq)] pub enum ADDRMODE_A { #[doc = "0: 24-bit addressing."] _24BIT = 0, #[doc = "1: 32-bit addressing."] _32BIT = 1, } impl From for bool { #[inline(always)] fn from(variant: ADDRMODE_A) -> Self { variant as u8 != 0 } } impl ADDRMODE_R { #[doc = "Get enumerated values variant"] #[inline(always)] pub fn variant(&self) -> ADDRMODE_A { match self.bits { false => ADDRMODE_A::_24BIT, true => ADDRMODE_A::_32BIT, } } #[doc = "Checks if the value of the field is `_24BIT`"] #[inline(always)] pub fn is_24bit(&self) -> bool { *self == ADDRMODE_A::_24BIT } #[doc = "Checks if the value of the field is `_32BIT`"] #[inline(always)] pub fn is_32bit(&self) -> bool { *self == ADDRMODE_A::_32BIT } } #[doc = "Field `ADDRMODE` writer - Addressing mode."] pub type ADDRMODE_W<'a, const O: u8> = crate::BitWriter<'a, u32, IFCONFIG0_SPEC, ADDRMODE_A, O>; impl<'a, const O: u8> ADDRMODE_W<'a, O> { #[doc = "24-bit addressing."] #[inline(always)] pub fn _24bit(self) -> &'a mut W { self.variant(ADDRMODE_A::_24BIT) } #[doc = "32-bit addressing."] #[inline(always)] pub fn _32bit(self) -> &'a mut W { self.variant(ADDRMODE_A::_32BIT) } } #[doc = "Field `DPMENABLE` reader - Enable deep power-down mode (DPM) feature."] pub type DPMENABLE_R = crate::BitReader; #[doc = "Enable deep power-down mode (DPM) feature.\n\nValue on reset: 0"] #[derive(Clone, Copy, Debug, PartialEq)] pub enum DPMENABLE_A { #[doc = "0: Disable DPM feature."] DISABLE = 0, #[doc = "1: Enable DPM feature."] ENABLE = 1, } impl From for bool { #[inline(always)] fn from(variant: DPMENABLE_A) -> Self { variant as u8 != 0 } } impl DPMENABLE_R { #[doc = "Get enumerated values variant"] #[inline(always)] pub fn variant(&self) -> DPMENABLE_A { match self.bits { false => DPMENABLE_A::DISABLE, true => DPMENABLE_A::ENABLE, } } #[doc = "Checks if the value of the field is `DISABLE`"] #[inline(always)] pub fn is_disable(&self) -> bool { *self == DPMENABLE_A::DISABLE } #[doc = "Checks if the value of the field is `ENABLE`"] #[inline(always)] pub fn is_enable(&self) -> bool { *self == DPMENABLE_A::ENABLE } } #[doc = "Field `DPMENABLE` writer - Enable deep power-down mode (DPM) feature."] pub type DPMENABLE_W<'a, const O: u8> = crate::BitWriter<'a, u32, IFCONFIG0_SPEC, DPMENABLE_A, O>; impl<'a, const O: u8> DPMENABLE_W<'a, O> { #[doc = "Disable DPM feature."] #[inline(always)] pub fn disable(self) -> &'a mut W { self.variant(DPMENABLE_A::DISABLE) } #[doc = "Enable DPM feature."] #[inline(always)] pub fn enable(self) -> &'a mut W { self.variant(DPMENABLE_A::ENABLE) } } #[doc = "Field `PPSIZE` reader - Page size for commands PP, PP2O, PP4O and PP4IO."] pub type PPSIZE_R = crate::BitReader; #[doc = "Page size for commands PP, PP2O, PP4O and PP4IO.\n\nValue on reset: 0"] #[derive(Clone, Copy, Debug, PartialEq)] pub enum PPSIZE_A { #[doc = "0: 256 bytes."] _256BYTES = 0, #[doc = "1: 512 bytes."] _512BYTES = 1, } impl From for bool { #[inline(always)] fn from(variant: PPSIZE_A) -> Self { variant as u8 != 0 } } impl PPSIZE_R { #[doc = "Get enumerated values variant"] #[inline(always)] pub fn variant(&self) -> PPSIZE_A { match self.bits { false => PPSIZE_A::_256BYTES, true => PPSIZE_A::_512BYTES, } } #[doc = "Checks if the value of the field is `_256BYTES`"] #[inline(always)] pub fn is_256bytes(&self) -> bool { *self == PPSIZE_A::_256BYTES } #[doc = "Checks if the value of the field is `_512BYTES`"] #[inline(always)] pub fn is_512bytes(&self) -> bool { *self == PPSIZE_A::_512BYTES } } #[doc = "Field `PPSIZE` writer - Page size for commands PP, PP2O, PP4O and PP4IO."] pub type PPSIZE_W<'a, const O: u8> = crate::BitWriter<'a, u32, IFCONFIG0_SPEC, PPSIZE_A, O>; impl<'a, const O: u8> PPSIZE_W<'a, O> { #[doc = "256 bytes."] #[inline(always)] pub fn _256bytes(self) -> &'a mut W { self.variant(PPSIZE_A::_256BYTES) } #[doc = "512 bytes."] #[inline(always)] pub fn _512bytes(self) -> &'a mut W { self.variant(PPSIZE_A::_512BYTES) } } impl R { #[doc = "Bits 0:2 - Configure number of data lines and opcode used for reading."] #[inline(always)] pub fn readoc(&self) -> READOC_R { READOC_R::new((self.bits & 7) as u8) } #[doc = "Bits 3:5 - Configure number of data lines and opcode used for writing."] #[inline(always)] pub fn writeoc(&self) -> WRITEOC_R { WRITEOC_R::new(((self.bits >> 3) & 7) as u8) } #[doc = "Bit 6 - Addressing mode."] #[inline(always)] pub fn addrmode(&self) -> ADDRMODE_R { ADDRMODE_R::new(((self.bits >> 6) & 1) != 0) } #[doc = "Bit 7 - Enable deep power-down mode (DPM) feature."] #[inline(always)] pub fn dpmenable(&self) -> DPMENABLE_R { DPMENABLE_R::new(((self.bits >> 7) & 1) != 0) } #[doc = "Bit 12 - Page size for commands PP, PP2O, PP4O and PP4IO."] #[inline(always)] pub fn ppsize(&self) -> PPSIZE_R { PPSIZE_R::new(((self.bits >> 12) & 1) != 0) } } impl W { #[doc = "Bits 0:2 - Configure number of data lines and opcode used for reading."] #[inline(always)] pub fn readoc(&mut self) -> READOC_W<0> { READOC_W::new(self) } #[doc = "Bits 3:5 - Configure number of data lines and opcode used for writing."] #[inline(always)] pub fn writeoc(&mut self) -> WRITEOC_W<3> { WRITEOC_W::new(self) } #[doc = "Bit 6 - Addressing mode."] #[inline(always)] pub fn addrmode(&mut self) -> ADDRMODE_W<6> { ADDRMODE_W::new(self) } #[doc = "Bit 7 - Enable deep power-down mode (DPM) feature."] #[inline(always)] pub fn dpmenable(&mut self) -> DPMENABLE_W<7> { DPMENABLE_W::new(self) } #[doc = "Bit 12 - Page size for commands PP, PP2O, PP4O and PP4IO."] #[inline(always)] pub fn ppsize(&mut self) -> PPSIZE_W<12> { PPSIZE_W::new(self) } #[doc = "Writes raw bits to the register."] #[inline(always)] pub unsafe fn bits(&mut self, bits: u32) -> &mut Self { self.0.bits(bits); self } } #[doc = "Interface configuration.\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [ifconfig0](index.html) module"] pub struct IFCONFIG0_SPEC; impl crate::RegisterSpec for IFCONFIG0_SPEC { type Ux = u32; } #[doc = "`read()` method returns [ifconfig0::R](R) reader structure"] impl crate::Readable for IFCONFIG0_SPEC { type Reader = R; } #[doc = "`write(|w| ..)` method takes [ifconfig0::W](W) writer structure"] impl crate::Writable for IFCONFIG0_SPEC { type Writer = W; } #[doc = "`reset()` method sets IFCONFIG0 to value 0"] impl crate::Resettable for IFCONFIG0_SPEC { #[inline(always)] fn reset_value() -> Self::Ux { 0 } }