mimxrt685s-pac 0.5.0

Peripheral Access Crate for MIMXRT685s devices
Documentation
#[doc = "Register `BLK_ATT` reader"]
pub type R = crate::R<BlkAttSpec>;
#[doc = "Register `BLK_ATT` writer"]
pub type W = crate::W<BlkAttSpec>;
#[doc = "Block Size\n\nValue on reset: 0"]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Blksize {
    #[doc = "0: No data transfer"]
    Blksize0 = 0,
    #[doc = "1: 1 Byte"]
    Blksize1 = 1,
    #[doc = "2: 2 Bytes"]
    Blksize2 = 2,
    #[doc = "3: 3 Bytes"]
    Blksize3 = 3,
    #[doc = "4: 4 Bytes"]
    Blksize4 = 4,
    #[doc = "511: 511 Bytes"]
    Blksize511 = 511,
    #[doc = "512: 512 Bytes"]
    Blksize512 = 512,
    #[doc = "2048: 2048 Bytes"]
    Blksize2048 = 2048,
    #[doc = "4096: 4096 Bytes"]
    Blksize4096 = 4096,
}
impl From<Blksize> for u16 {
    #[inline(always)]
    fn from(variant: Blksize) -> Self {
        variant as _
    }
}
impl crate::FieldSpec for Blksize {
    type Ux = u16;
}
impl crate::IsEnum for Blksize {}
#[doc = "Field `BLKSIZE` reader - Block Size"]
pub type BlksizeR = crate::FieldReader<Blksize>;
impl BlksizeR {
    #[doc = "Get enumerated values variant"]
    #[inline(always)]
    pub const fn variant(&self) -> Option<Blksize> {
        match self.bits {
            0 => Some(Blksize::Blksize0),
            1 => Some(Blksize::Blksize1),
            2 => Some(Blksize::Blksize2),
            3 => Some(Blksize::Blksize3),
            4 => Some(Blksize::Blksize4),
            511 => Some(Blksize::Blksize511),
            512 => Some(Blksize::Blksize512),
            2048 => Some(Blksize::Blksize2048),
            4096 => Some(Blksize::Blksize4096),
            _ => None,
        }
    }
    #[doc = "No data transfer"]
    #[inline(always)]
    pub fn is_blksize_0(&self) -> bool {
        *self == Blksize::Blksize0
    }
    #[doc = "1 Byte"]
    #[inline(always)]
    pub fn is_blksize_1(&self) -> bool {
        *self == Blksize::Blksize1
    }
    #[doc = "2 Bytes"]
    #[inline(always)]
    pub fn is_blksize_2(&self) -> bool {
        *self == Blksize::Blksize2
    }
    #[doc = "3 Bytes"]
    #[inline(always)]
    pub fn is_blksize_3(&self) -> bool {
        *self == Blksize::Blksize3
    }
    #[doc = "4 Bytes"]
    #[inline(always)]
    pub fn is_blksize_4(&self) -> bool {
        *self == Blksize::Blksize4
    }
    #[doc = "511 Bytes"]
    #[inline(always)]
    pub fn is_blksize_511(&self) -> bool {
        *self == Blksize::Blksize511
    }
    #[doc = "512 Bytes"]
    #[inline(always)]
    pub fn is_blksize_512(&self) -> bool {
        *self == Blksize::Blksize512
    }
    #[doc = "2048 Bytes"]
    #[inline(always)]
    pub fn is_blksize_2048(&self) -> bool {
        *self == Blksize::Blksize2048
    }
    #[doc = "4096 Bytes"]
    #[inline(always)]
    pub fn is_blksize_4096(&self) -> bool {
        *self == Blksize::Blksize4096
    }
}
#[doc = "Field `BLKSIZE` writer - Block Size"]
pub type BlksizeW<'a, REG> = crate::FieldWriter<'a, REG, 13, Blksize>;
impl<'a, REG> BlksizeW<'a, REG>
where
    REG: crate::Writable + crate::RegisterSpec,
    REG::Ux: From<u16>,
{
    #[doc = "No data transfer"]
    #[inline(always)]
    pub fn blksize_0(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize0)
    }
    #[doc = "1 Byte"]
    #[inline(always)]
    pub fn blksize_1(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize1)
    }
    #[doc = "2 Bytes"]
    #[inline(always)]
    pub fn blksize_2(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize2)
    }
    #[doc = "3 Bytes"]
    #[inline(always)]
    pub fn blksize_3(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize3)
    }
    #[doc = "4 Bytes"]
    #[inline(always)]
    pub fn blksize_4(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize4)
    }
    #[doc = "511 Bytes"]
    #[inline(always)]
    pub fn blksize_511(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize511)
    }
    #[doc = "512 Bytes"]
    #[inline(always)]
    pub fn blksize_512(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize512)
    }
    #[doc = "2048 Bytes"]
    #[inline(always)]
    pub fn blksize_2048(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize2048)
    }
    #[doc = "4096 Bytes"]
    #[inline(always)]
    pub fn blksize_4096(self) -> &'a mut crate::W<REG> {
        self.variant(Blksize::Blksize4096)
    }
}
#[doc = "Block Count\n\nValue on reset: 1"]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Blkcnt {
    #[doc = "0: Stop Count"]
    Blkcnt0 = 0,
    #[doc = "1: 1 block"]
    Blkcnt1 = 1,
    #[doc = "2: 2 blocks"]
    Blkcnt2 = 2,
    #[doc = "65535: 65535 blocks"]
    Blkcnt65535 = 65535,
}
impl From<Blkcnt> for u16 {
    #[inline(always)]
    fn from(variant: Blkcnt) -> Self {
        variant as _
    }
}
impl crate::FieldSpec for Blkcnt {
    type Ux = u16;
}
impl crate::IsEnum for Blkcnt {}
#[doc = "Field `BLKCNT` reader - Block Count"]
pub type BlkcntR = crate::FieldReader<Blkcnt>;
impl BlkcntR {
    #[doc = "Get enumerated values variant"]
    #[inline(always)]
    pub const fn variant(&self) -> Option<Blkcnt> {
        match self.bits {
            0 => Some(Blkcnt::Blkcnt0),
            1 => Some(Blkcnt::Blkcnt1),
            2 => Some(Blkcnt::Blkcnt2),
            65535 => Some(Blkcnt::Blkcnt65535),
            _ => None,
        }
    }
    #[doc = "Stop Count"]
    #[inline(always)]
    pub fn is_blkcnt_0(&self) -> bool {
        *self == Blkcnt::Blkcnt0
    }
    #[doc = "1 block"]
    #[inline(always)]
    pub fn is_blkcnt_1(&self) -> bool {
        *self == Blkcnt::Blkcnt1
    }
    #[doc = "2 blocks"]
    #[inline(always)]
    pub fn is_blkcnt_2(&self) -> bool {
        *self == Blkcnt::Blkcnt2
    }
    #[doc = "65535 blocks"]
    #[inline(always)]
    pub fn is_blkcnt_65535(&self) -> bool {
        *self == Blkcnt::Blkcnt65535
    }
}
#[doc = "Field `BLKCNT` writer - Block Count"]
pub type BlkcntW<'a, REG> = crate::FieldWriter<'a, REG, 16, Blkcnt>;
impl<'a, REG> BlkcntW<'a, REG>
where
    REG: crate::Writable + crate::RegisterSpec,
    REG::Ux: From<u16>,
{
    #[doc = "Stop Count"]
    #[inline(always)]
    pub fn blkcnt_0(self) -> &'a mut crate::W<REG> {
        self.variant(Blkcnt::Blkcnt0)
    }
    #[doc = "1 block"]
    #[inline(always)]
    pub fn blkcnt_1(self) -> &'a mut crate::W<REG> {
        self.variant(Blkcnt::Blkcnt1)
    }
    #[doc = "2 blocks"]
    #[inline(always)]
    pub fn blkcnt_2(self) -> &'a mut crate::W<REG> {
        self.variant(Blkcnt::Blkcnt2)
    }
    #[doc = "65535 blocks"]
    #[inline(always)]
    pub fn blkcnt_65535(self) -> &'a mut crate::W<REG> {
        self.variant(Blkcnt::Blkcnt65535)
    }
}
impl R {
    #[doc = "Bits 0:12 - Block Size"]
    #[inline(always)]
    pub fn blksize(&self) -> BlksizeR {
        BlksizeR::new((self.bits & 0x1fff) as u16)
    }
    #[doc = "Bits 16:31 - Block Count"]
    #[inline(always)]
    pub fn blkcnt(&self) -> BlkcntR {
        BlkcntR::new(((self.bits >> 16) & 0xffff) as u16)
    }
}
#[cfg(feature = "debug")]
impl core::fmt::Debug for R {
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
        f.debug_struct("BLK_ATT")
            .field("blksize", &self.blksize())
            .field("blkcnt", &self.blkcnt())
            .finish()
    }
}
impl W {
    #[doc = "Bits 0:12 - Block Size"]
    #[inline(always)]
    pub fn blksize(&mut self) -> BlksizeW<BlkAttSpec> {
        BlksizeW::new(self, 0)
    }
    #[doc = "Bits 16:31 - Block Count"]
    #[inline(always)]
    pub fn blkcnt(&mut self) -> BlkcntW<BlkAttSpec> {
        BlkcntW::new(self, 16)
    }
}
#[doc = "Block Attributes\n\nYou can [`read`](crate::Reg::read) this register and get [`blk_att::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`blk_att::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct BlkAttSpec;
impl crate::RegisterSpec for BlkAttSpec {
    type Ux = u32;
}
#[doc = "`read()` method returns [`blk_att::R`](R) reader structure"]
impl crate::Readable for BlkAttSpec {}
#[doc = "`write(|w| ..)` method takes [`blk_att::W`](W) writer structure"]
impl crate::Writable for BlkAttSpec {
    type Safety = crate::Unsafe;
    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
}
#[doc = "`reset()` method sets BLK_ATT to value 0x0001_0000"]
impl crate::Resettable for BlkAttSpec {
    const RESET_VALUE: u32 = 0x0001_0000;
}