stm32mp1 0.15.1

Device support crates for STM32MP1 devices
Documentation
#[doc = "Register `FMC_PCR` reader"]
pub struct R(crate::R<FMC_PCR_SPEC>);
impl core::ops::Deref for R {
    type Target = crate::R<FMC_PCR_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl From<crate::R<FMC_PCR_SPEC>> for R {
    #[inline(always)]
    fn from(reader: crate::R<FMC_PCR_SPEC>) -> Self {
        R(reader)
    }
}
#[doc = "Register `FMC_PCR` writer"]
pub struct W(crate::W<FMC_PCR_SPEC>);
impl core::ops::Deref for W {
    type Target = crate::W<FMC_PCR_SPEC>;
    #[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<crate::W<FMC_PCR_SPEC>> for W {
    #[inline(always)]
    fn from(writer: crate::W<FMC_PCR_SPEC>) -> Self {
        W(writer)
    }
}
#[doc = "Field `PWAITEN` reader - PWAITEN"]
pub type PWAITEN_R = crate::BitReader<bool>;
#[doc = "Field `PWAITEN` writer - PWAITEN"]
pub type PWAITEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, FMC_PCR_SPEC, bool, O>;
#[doc = "Field `PBKEN` reader - PBKEN"]
pub type PBKEN_R = crate::BitReader<bool>;
#[doc = "Field `PBKEN` writer - PBKEN"]
pub type PBKEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, FMC_PCR_SPEC, bool, O>;
#[doc = "Field `PWID` reader - PWID"]
pub type PWID_R = crate::FieldReader<u8, u8>;
#[doc = "Field `PWID` writer - PWID"]
pub type PWID_W<'a, const O: u8> = crate::FieldWriter<'a, u32, FMC_PCR_SPEC, u8, u8, 2, O>;
#[doc = "Field `ECCEN` reader - ECCEN"]
pub type ECCEN_R = crate::BitReader<bool>;
#[doc = "Field `ECCEN` writer - ECCEN"]
pub type ECCEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, FMC_PCR_SPEC, bool, O>;
#[doc = "Field `ECCALG` reader - ECCALG"]
pub type ECCALG_R = crate::BitReader<bool>;
#[doc = "Field `ECCALG` writer - ECCALG"]
pub type ECCALG_W<'a, const O: u8> = crate::BitWriter<'a, u32, FMC_PCR_SPEC, bool, O>;
#[doc = "Field `TCLR` reader - TCLR"]
pub type TCLR_R = crate::FieldReader<u8, u8>;
#[doc = "Field `TCLR` writer - TCLR"]
pub type TCLR_W<'a, const O: u8> = crate::FieldWriter<'a, u32, FMC_PCR_SPEC, u8, u8, 4, O>;
#[doc = "Field `TAR` reader - TAR"]
pub type TAR_R = crate::FieldReader<u8, u8>;
#[doc = "Field `TAR` writer - TAR"]
pub type TAR_W<'a, const O: u8> = crate::FieldWriter<'a, u32, FMC_PCR_SPEC, u8, u8, 4, O>;
#[doc = "Field `ECCSS` reader - ECCSS"]
pub type ECCSS_R = crate::FieldReader<u8, u8>;
#[doc = "Field `ECCSS` writer - ECCSS"]
pub type ECCSS_W<'a, const O: u8> = crate::FieldWriter<'a, u32, FMC_PCR_SPEC, u8, u8, 3, O>;
#[doc = "Field `TCEH` reader - TCEH"]
pub type TCEH_R = crate::FieldReader<u8, u8>;
#[doc = "Field `TCEH` writer - TCEH"]
pub type TCEH_W<'a, const O: u8> = crate::FieldWriter<'a, u32, FMC_PCR_SPEC, u8, u8, 4, O>;
#[doc = "Field `BCHECC` reader - BCHECC"]
pub type BCHECC_R = crate::BitReader<bool>;
#[doc = "Field `BCHECC` writer - BCHECC"]
pub type BCHECC_W<'a, const O: u8> = crate::BitWriter<'a, u32, FMC_PCR_SPEC, bool, O>;
#[doc = "Field `WEN` reader - WEN"]
pub type WEN_R = crate::BitReader<bool>;
#[doc = "Field `WEN` writer - WEN"]
pub type WEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, FMC_PCR_SPEC, bool, O>;
impl R {
    #[doc = "Bit 1 - PWAITEN"]
    #[inline(always)]
    pub fn pwaiten(&self) -> PWAITEN_R {
        PWAITEN_R::new(((self.bits >> 1) & 1) != 0)
    }
    #[doc = "Bit 2 - PBKEN"]
    #[inline(always)]
    pub fn pbken(&self) -> PBKEN_R {
        PBKEN_R::new(((self.bits >> 2) & 1) != 0)
    }
    #[doc = "Bits 4:5 - PWID"]
    #[inline(always)]
    pub fn pwid(&self) -> PWID_R {
        PWID_R::new(((self.bits >> 4) & 3) as u8)
    }
    #[doc = "Bit 6 - ECCEN"]
    #[inline(always)]
    pub fn eccen(&self) -> ECCEN_R {
        ECCEN_R::new(((self.bits >> 6) & 1) != 0)
    }
    #[doc = "Bit 8 - ECCALG"]
    #[inline(always)]
    pub fn eccalg(&self) -> ECCALG_R {
        ECCALG_R::new(((self.bits >> 8) & 1) != 0)
    }
    #[doc = "Bits 9:12 - TCLR"]
    #[inline(always)]
    pub fn tclr(&self) -> TCLR_R {
        TCLR_R::new(((self.bits >> 9) & 0x0f) as u8)
    }
    #[doc = "Bits 13:16 - TAR"]
    #[inline(always)]
    pub fn tar(&self) -> TAR_R {
        TAR_R::new(((self.bits >> 13) & 0x0f) as u8)
    }
    #[doc = "Bits 17:19 - ECCSS"]
    #[inline(always)]
    pub fn eccss(&self) -> ECCSS_R {
        ECCSS_R::new(((self.bits >> 17) & 7) as u8)
    }
    #[doc = "Bits 20:23 - TCEH"]
    #[inline(always)]
    pub fn tceh(&self) -> TCEH_R {
        TCEH_R::new(((self.bits >> 20) & 0x0f) as u8)
    }
    #[doc = "Bit 24 - BCHECC"]
    #[inline(always)]
    pub fn bchecc(&self) -> BCHECC_R {
        BCHECC_R::new(((self.bits >> 24) & 1) != 0)
    }
    #[doc = "Bit 25 - WEN"]
    #[inline(always)]
    pub fn wen(&self) -> WEN_R {
        WEN_R::new(((self.bits >> 25) & 1) != 0)
    }
}
impl W {
    #[doc = "Bit 1 - PWAITEN"]
    #[inline(always)]
    pub fn pwaiten(&mut self) -> PWAITEN_W<1> {
        PWAITEN_W::new(self)
    }
    #[doc = "Bit 2 - PBKEN"]
    #[inline(always)]
    pub fn pbken(&mut self) -> PBKEN_W<2> {
        PBKEN_W::new(self)
    }
    #[doc = "Bits 4:5 - PWID"]
    #[inline(always)]
    pub fn pwid(&mut self) -> PWID_W<4> {
        PWID_W::new(self)
    }
    #[doc = "Bit 6 - ECCEN"]
    #[inline(always)]
    pub fn eccen(&mut self) -> ECCEN_W<6> {
        ECCEN_W::new(self)
    }
    #[doc = "Bit 8 - ECCALG"]
    #[inline(always)]
    pub fn eccalg(&mut self) -> ECCALG_W<8> {
        ECCALG_W::new(self)
    }
    #[doc = "Bits 9:12 - TCLR"]
    #[inline(always)]
    pub fn tclr(&mut self) -> TCLR_W<9> {
        TCLR_W::new(self)
    }
    #[doc = "Bits 13:16 - TAR"]
    #[inline(always)]
    pub fn tar(&mut self) -> TAR_W<13> {
        TAR_W::new(self)
    }
    #[doc = "Bits 17:19 - ECCSS"]
    #[inline(always)]
    pub fn eccss(&mut self) -> ECCSS_W<17> {
        ECCSS_W::new(self)
    }
    #[doc = "Bits 20:23 - TCEH"]
    #[inline(always)]
    pub fn tceh(&mut self) -> TCEH_W<20> {
        TCEH_W::new(self)
    }
    #[doc = "Bit 24 - BCHECC"]
    #[inline(always)]
    pub fn bchecc(&mut self) -> BCHECC_W<24> {
        BCHECC_W::new(self)
    }
    #[doc = "Bit 25 - WEN"]
    #[inline(always)]
    pub fn wen(&mut self) -> WEN_W<25> {
        WEN_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 = "NAND Flash Programmable control register\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 [fmc_pcr](index.html) module"]
pub struct FMC_PCR_SPEC;
impl crate::RegisterSpec for FMC_PCR_SPEC {
    type Ux = u32;
}
#[doc = "`read()` method returns [fmc_pcr::R](R) reader structure"]
impl crate::Readable for FMC_PCR_SPEC {
    type Reader = R;
}
#[doc = "`write(|w| ..)` method takes [fmc_pcr::W](W) writer structure"]
impl crate::Writable for FMC_PCR_SPEC {
    type Writer = W;
}
#[doc = "`reset()` method sets FMC_PCR to value 0x0007_fe08"]
impl crate::Resettable for FMC_PCR_SPEC {
    #[inline(always)]
    fn reset_value() -> Self::Ux {
        0x0007_fe08
    }
}