pub type R = crate::R<AHB2SMENRrs>;
pub type W = crate::W<AHB2SMENRrs>;
pub type GPIOASMEN_R = crate::BitReader;
pub type GPIOASMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type GPIOBSMEN_R = crate::BitReader;
pub type GPIOBSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type GPIOCSMEN_R = crate::BitReader;
pub type GPIOCSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type GPIODSMEN_R = crate::BitReader;
pub type GPIODSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type GPIOESMEN_R = crate::BitReader;
pub type GPIOESMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type GPIOFSMEN_R = crate::BitReader;
pub type GPIOFSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type GPIOGSMEN_R = crate::BitReader;
pub type GPIOGSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type CCMSRAMSMEN_R = crate::BitReader;
pub type CCMSRAMSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type SRAM2SMEN_R = crate::BitReader;
pub type SRAM2SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type ADC12SMEN_R = crate::BitReader;
pub type ADC12SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type ADC345SMEN_R = crate::BitReader;
pub type ADC345SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type DAC1SMEN_R = crate::BitReader;
pub type DAC1SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type DAC2SMEN_R = crate::BitReader;
pub type DAC2SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type DAC3SMEN_R = crate::BitReader;
pub type DAC3SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type DAC4SMEN_R = crate::BitReader;
pub type DAC4SMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type AESSMEN_R = crate::BitReader;
pub type AESSMEN_W<'a, REG> = crate::BitWriter<'a, REG>;
pub type RNGEN_R = crate::BitReader;
pub type RNGEN_W<'a, REG> = crate::BitWriter<'a, REG>;
impl R {
        #[inline(always)]
    pub fn gpioasmen(&self) -> GPIOASMEN_R {
        GPIOASMEN_R::new((self.bits & 1) != 0)
    }
        #[inline(always)]
    pub fn gpiobsmen(&self) -> GPIOBSMEN_R {
        GPIOBSMEN_R::new(((self.bits >> 1) & 1) != 0)
    }
        #[inline(always)]
    pub fn gpiocsmen(&self) -> GPIOCSMEN_R {
        GPIOCSMEN_R::new(((self.bits >> 2) & 1) != 0)
    }
        #[inline(always)]
    pub fn gpiodsmen(&self) -> GPIODSMEN_R {
        GPIODSMEN_R::new(((self.bits >> 3) & 1) != 0)
    }
        #[inline(always)]
    pub fn gpioesmen(&self) -> GPIOESMEN_R {
        GPIOESMEN_R::new(((self.bits >> 4) & 1) != 0)
    }
        #[inline(always)]
    pub fn gpiofsmen(&self) -> GPIOFSMEN_R {
        GPIOFSMEN_R::new(((self.bits >> 5) & 1) != 0)
    }
        #[inline(always)]
    pub fn gpiogsmen(&self) -> GPIOGSMEN_R {
        GPIOGSMEN_R::new(((self.bits >> 6) & 1) != 0)
    }
        #[inline(always)]
    pub fn ccmsramsmen(&self) -> CCMSRAMSMEN_R {
        CCMSRAMSMEN_R::new(((self.bits >> 9) & 1) != 0)
    }
        #[inline(always)]
    pub fn sram2smen(&self) -> SRAM2SMEN_R {
        SRAM2SMEN_R::new(((self.bits >> 10) & 1) != 0)
    }
        #[inline(always)]
    pub fn adc12smen(&self) -> ADC12SMEN_R {
        ADC12SMEN_R::new(((self.bits >> 13) & 1) != 0)
    }
        #[inline(always)]
    pub fn adc345smen(&self) -> ADC345SMEN_R {
        ADC345SMEN_R::new(((self.bits >> 14) & 1) != 0)
    }
        #[inline(always)]
    pub fn dac1smen(&self) -> DAC1SMEN_R {
        DAC1SMEN_R::new(((self.bits >> 16) & 1) != 0)
    }
        #[inline(always)]
    pub fn dac2smen(&self) -> DAC2SMEN_R {
        DAC2SMEN_R::new(((self.bits >> 17) & 1) != 0)
    }
        #[inline(always)]
    pub fn dac3smen(&self) -> DAC3SMEN_R {
        DAC3SMEN_R::new(((self.bits >> 18) & 1) != 0)
    }
        #[inline(always)]
    pub fn dac4smen(&self) -> DAC4SMEN_R {
        DAC4SMEN_R::new(((self.bits >> 19) & 1) != 0)
    }
        #[inline(always)]
    pub fn aessmen(&self) -> AESSMEN_R {
        AESSMEN_R::new(((self.bits >> 24) & 1) != 0)
    }
        #[inline(always)]
    pub fn rngen(&self) -> RNGEN_R {
        RNGEN_R::new(((self.bits >> 26) & 1) != 0)
    }
}
impl core::fmt::Debug for R {
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
        f.debug_struct("AHB2SMENR")
            .field("gpioasmen", &self.gpioasmen())
            .field("gpiobsmen", &self.gpiobsmen())
            .field("gpiocsmen", &self.gpiocsmen())
            .field("gpiodsmen", &self.gpiodsmen())
            .field("gpioesmen", &self.gpioesmen())
            .field("gpiofsmen", &self.gpiofsmen())
            .field("gpiogsmen", &self.gpiogsmen())
            .field("ccmsramsmen", &self.ccmsramsmen())
            .field("sram2smen", &self.sram2smen())
            .field("adc12smen", &self.adc12smen())
            .field("adc345smen", &self.adc345smen())
            .field("dac1smen", &self.dac1smen())
            .field("dac2smen", &self.dac2smen())
            .field("dac3smen", &self.dac3smen())
            .field("dac4smen", &self.dac4smen())
            .field("aessmen", &self.aessmen())
            .field("rngen", &self.rngen())
            .finish()
    }
}
impl W {
        #[inline(always)]
    pub fn gpioasmen(&mut self) -> GPIOASMEN_W<AHB2SMENRrs> {
        GPIOASMEN_W::new(self, 0)
    }
        #[inline(always)]
    pub fn gpiobsmen(&mut self) -> GPIOBSMEN_W<AHB2SMENRrs> {
        GPIOBSMEN_W::new(self, 1)
    }
        #[inline(always)]
    pub fn gpiocsmen(&mut self) -> GPIOCSMEN_W<AHB2SMENRrs> {
        GPIOCSMEN_W::new(self, 2)
    }
        #[inline(always)]
    pub fn gpiodsmen(&mut self) -> GPIODSMEN_W<AHB2SMENRrs> {
        GPIODSMEN_W::new(self, 3)
    }
        #[inline(always)]
    pub fn gpioesmen(&mut self) -> GPIOESMEN_W<AHB2SMENRrs> {
        GPIOESMEN_W::new(self, 4)
    }
        #[inline(always)]
    pub fn gpiofsmen(&mut self) -> GPIOFSMEN_W<AHB2SMENRrs> {
        GPIOFSMEN_W::new(self, 5)
    }
        #[inline(always)]
    pub fn gpiogsmen(&mut self) -> GPIOGSMEN_W<AHB2SMENRrs> {
        GPIOGSMEN_W::new(self, 6)
    }
        #[inline(always)]
    pub fn ccmsramsmen(&mut self) -> CCMSRAMSMEN_W<AHB2SMENRrs> {
        CCMSRAMSMEN_W::new(self, 9)
    }
        #[inline(always)]
    pub fn sram2smen(&mut self) -> SRAM2SMEN_W<AHB2SMENRrs> {
        SRAM2SMEN_W::new(self, 10)
    }
        #[inline(always)]
    pub fn adc12smen(&mut self) -> ADC12SMEN_W<AHB2SMENRrs> {
        ADC12SMEN_W::new(self, 13)
    }
        #[inline(always)]
    pub fn adc345smen(&mut self) -> ADC345SMEN_W<AHB2SMENRrs> {
        ADC345SMEN_W::new(self, 14)
    }
        #[inline(always)]
    pub fn dac1smen(&mut self) -> DAC1SMEN_W<AHB2SMENRrs> {
        DAC1SMEN_W::new(self, 16)
    }
        #[inline(always)]
    pub fn dac2smen(&mut self) -> DAC2SMEN_W<AHB2SMENRrs> {
        DAC2SMEN_W::new(self, 17)
    }
        #[inline(always)]
    pub fn dac3smen(&mut self) -> DAC3SMEN_W<AHB2SMENRrs> {
        DAC3SMEN_W::new(self, 18)
    }
        #[inline(always)]
    pub fn dac4smen(&mut self) -> DAC4SMEN_W<AHB2SMENRrs> {
        DAC4SMEN_W::new(self, 19)
    }
        #[inline(always)]
    pub fn aessmen(&mut self) -> AESSMEN_W<AHB2SMENRrs> {
        AESSMEN_W::new(self, 24)
    }
        #[inline(always)]
    pub fn rngen(&mut self) -> RNGEN_W<AHB2SMENRrs> {
        RNGEN_W::new(self, 26)
    }
}
pub struct AHB2SMENRrs;
impl crate::RegisterSpec for AHB2SMENRrs {
    type Ux = u32;
}
impl crate::Readable for AHB2SMENRrs {}
impl crate::Writable for AHB2SMENRrs {
    type Safety = crate::Unsafe;
}
impl crate::Resettable for AHB2SMENRrs {
    const RESET_VALUE: u32 = 0x050f_667f;
}