#[doc = "Register `DRVCTRL` reader"]
pub type R = crate::R<DrvctrlSpec>;
#[doc = "Register `DRVCTRL` writer"]
pub type W = crate::W<DrvctrlSpec>;
#[doc = "Field `NRE0` reader - Non-Recoverable State 0 Output Enable"]
pub type Nre0R = crate::BitReader;
#[doc = "Field `NRE0` writer - Non-Recoverable State 0 Output Enable"]
pub type Nre0W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE1` reader - Non-Recoverable State 1 Output Enable"]
pub type Nre1R = crate::BitReader;
#[doc = "Field `NRE1` writer - Non-Recoverable State 1 Output Enable"]
pub type Nre1W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE2` reader - Non-Recoverable State 2 Output Enable"]
pub type Nre2R = crate::BitReader;
#[doc = "Field `NRE2` writer - Non-Recoverable State 2 Output Enable"]
pub type Nre2W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE3` reader - Non-Recoverable State 3 Output Enable"]
pub type Nre3R = crate::BitReader;
#[doc = "Field `NRE3` writer - Non-Recoverable State 3 Output Enable"]
pub type Nre3W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE4` reader - Non-Recoverable State 4 Output Enable"]
pub type Nre4R = crate::BitReader;
#[doc = "Field `NRE4` writer - Non-Recoverable State 4 Output Enable"]
pub type Nre4W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE5` reader - Non-Recoverable State 5 Output Enable"]
pub type Nre5R = crate::BitReader;
#[doc = "Field `NRE5` writer - Non-Recoverable State 5 Output Enable"]
pub type Nre5W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE6` reader - Non-Recoverable State 6 Output Enable"]
pub type Nre6R = crate::BitReader;
#[doc = "Field `NRE6` writer - Non-Recoverable State 6 Output Enable"]
pub type Nre6W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRE7` reader - Non-Recoverable State 7 Output Enable"]
pub type Nre7R = crate::BitReader;
#[doc = "Field `NRE7` writer - Non-Recoverable State 7 Output Enable"]
pub type Nre7W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV0` reader - Non-Recoverable State 0 Output Value"]
pub type Nrv0R = crate::BitReader;
#[doc = "Field `NRV0` writer - Non-Recoverable State 0 Output Value"]
pub type Nrv0W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV1` reader - Non-Recoverable State 1 Output Value"]
pub type Nrv1R = crate::BitReader;
#[doc = "Field `NRV1` writer - Non-Recoverable State 1 Output Value"]
pub type Nrv1W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV2` reader - Non-Recoverable State 2 Output Value"]
pub type Nrv2R = crate::BitReader;
#[doc = "Field `NRV2` writer - Non-Recoverable State 2 Output Value"]
pub type Nrv2W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV3` reader - Non-Recoverable State 3 Output Value"]
pub type Nrv3R = crate::BitReader;
#[doc = "Field `NRV3` writer - Non-Recoverable State 3 Output Value"]
pub type Nrv3W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV4` reader - Non-Recoverable State 4 Output Value"]
pub type Nrv4R = crate::BitReader;
#[doc = "Field `NRV4` writer - Non-Recoverable State 4 Output Value"]
pub type Nrv4W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV5` reader - Non-Recoverable State 5 Output Value"]
pub type Nrv5R = crate::BitReader;
#[doc = "Field `NRV5` writer - Non-Recoverable State 5 Output Value"]
pub type Nrv5W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV6` reader - Non-Recoverable State 6 Output Value"]
pub type Nrv6R = crate::BitReader;
#[doc = "Field `NRV6` writer - Non-Recoverable State 6 Output Value"]
pub type Nrv6W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `NRV7` reader - Non-Recoverable State 7 Output Value"]
pub type Nrv7R = crate::BitReader;
#[doc = "Field `NRV7` writer - Non-Recoverable State 7 Output Value"]
pub type Nrv7W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN0` reader - Output Waveform 0 Inversion"]
pub type Inven0R = crate::BitReader;
#[doc = "Field `INVEN0` writer - Output Waveform 0 Inversion"]
pub type Inven0W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN1` reader - Output Waveform 1 Inversion"]
pub type Inven1R = crate::BitReader;
#[doc = "Field `INVEN1` writer - Output Waveform 1 Inversion"]
pub type Inven1W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN2` reader - Output Waveform 2 Inversion"]
pub type Inven2R = crate::BitReader;
#[doc = "Field `INVEN2` writer - Output Waveform 2 Inversion"]
pub type Inven2W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN3` reader - Output Waveform 3 Inversion"]
pub type Inven3R = crate::BitReader;
#[doc = "Field `INVEN3` writer - Output Waveform 3 Inversion"]
pub type Inven3W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN4` reader - Output Waveform 4 Inversion"]
pub type Inven4R = crate::BitReader;
#[doc = "Field `INVEN4` writer - Output Waveform 4 Inversion"]
pub type Inven4W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN5` reader - Output Waveform 5 Inversion"]
pub type Inven5R = crate::BitReader;
#[doc = "Field `INVEN5` writer - Output Waveform 5 Inversion"]
pub type Inven5W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN6` reader - Output Waveform 6 Inversion"]
pub type Inven6R = crate::BitReader;
#[doc = "Field `INVEN6` writer - Output Waveform 6 Inversion"]
pub type Inven6W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `INVEN7` reader - Output Waveform 7 Inversion"]
pub type Inven7R = crate::BitReader;
#[doc = "Field `INVEN7` writer - Output Waveform 7 Inversion"]
pub type Inven7W<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `FILTERVAL0` reader - Non-Recoverable Fault Input 0 Filter Value"]
pub type Filterval0R = crate::FieldReader;
#[doc = "Field `FILTERVAL0` writer - Non-Recoverable Fault Input 0 Filter Value"]
pub type Filterval0W<'a, REG> = crate::FieldWriter<'a, REG, 4>;
#[doc = "Field `FILTERVAL1` reader - Non-Recoverable Fault Input 1 Filter Value"]
pub type Filterval1R = crate::FieldReader;
#[doc = "Field `FILTERVAL1` writer - Non-Recoverable Fault Input 1 Filter Value"]
pub type Filterval1W<'a, REG> = crate::FieldWriter<'a, REG, 4>;
impl R {
    #[doc = "Bit 0 - Non-Recoverable State 0 Output Enable"]
    #[inline(always)]
    pub fn nre0(&self) -> Nre0R {
        Nre0R::new((self.bits & 1) != 0)
    }
    #[doc = "Bit 1 - Non-Recoverable State 1 Output Enable"]
    #[inline(always)]
    pub fn nre1(&self) -> Nre1R {
        Nre1R::new(((self.bits >> 1) & 1) != 0)
    }
    #[doc = "Bit 2 - Non-Recoverable State 2 Output Enable"]
    #[inline(always)]
    pub fn nre2(&self) -> Nre2R {
        Nre2R::new(((self.bits >> 2) & 1) != 0)
    }
    #[doc = "Bit 3 - Non-Recoverable State 3 Output Enable"]
    #[inline(always)]
    pub fn nre3(&self) -> Nre3R {
        Nre3R::new(((self.bits >> 3) & 1) != 0)
    }
    #[doc = "Bit 4 - Non-Recoverable State 4 Output Enable"]
    #[inline(always)]
    pub fn nre4(&self) -> Nre4R {
        Nre4R::new(((self.bits >> 4) & 1) != 0)
    }
    #[doc = "Bit 5 - Non-Recoverable State 5 Output Enable"]
    #[inline(always)]
    pub fn nre5(&self) -> Nre5R {
        Nre5R::new(((self.bits >> 5) & 1) != 0)
    }
    #[doc = "Bit 6 - Non-Recoverable State 6 Output Enable"]
    #[inline(always)]
    pub fn nre6(&self) -> Nre6R {
        Nre6R::new(((self.bits >> 6) & 1) != 0)
    }
    #[doc = "Bit 7 - Non-Recoverable State 7 Output Enable"]
    #[inline(always)]
    pub fn nre7(&self) -> Nre7R {
        Nre7R::new(((self.bits >> 7) & 1) != 0)
    }
    #[doc = "Bit 8 - Non-Recoverable State 0 Output Value"]
    #[inline(always)]
    pub fn nrv0(&self) -> Nrv0R {
        Nrv0R::new(((self.bits >> 8) & 1) != 0)
    }
    #[doc = "Bit 9 - Non-Recoverable State 1 Output Value"]
    #[inline(always)]
    pub fn nrv1(&self) -> Nrv1R {
        Nrv1R::new(((self.bits >> 9) & 1) != 0)
    }
    #[doc = "Bit 10 - Non-Recoverable State 2 Output Value"]
    #[inline(always)]
    pub fn nrv2(&self) -> Nrv2R {
        Nrv2R::new(((self.bits >> 10) & 1) != 0)
    }
    #[doc = "Bit 11 - Non-Recoverable State 3 Output Value"]
    #[inline(always)]
    pub fn nrv3(&self) -> Nrv3R {
        Nrv3R::new(((self.bits >> 11) & 1) != 0)
    }
    #[doc = "Bit 12 - Non-Recoverable State 4 Output Value"]
    #[inline(always)]
    pub fn nrv4(&self) -> Nrv4R {
        Nrv4R::new(((self.bits >> 12) & 1) != 0)
    }
    #[doc = "Bit 13 - Non-Recoverable State 5 Output Value"]
    #[inline(always)]
    pub fn nrv5(&self) -> Nrv5R {
        Nrv5R::new(((self.bits >> 13) & 1) != 0)
    }
    #[doc = "Bit 14 - Non-Recoverable State 6 Output Value"]
    #[inline(always)]
    pub fn nrv6(&self) -> Nrv6R {
        Nrv6R::new(((self.bits >> 14) & 1) != 0)
    }
    #[doc = "Bit 15 - Non-Recoverable State 7 Output Value"]
    #[inline(always)]
    pub fn nrv7(&self) -> Nrv7R {
        Nrv7R::new(((self.bits >> 15) & 1) != 0)
    }
    #[doc = "Bit 16 - Output Waveform 0 Inversion"]
    #[inline(always)]
    pub fn inven0(&self) -> Inven0R {
        Inven0R::new(((self.bits >> 16) & 1) != 0)
    }
    #[doc = "Bit 17 - Output Waveform 1 Inversion"]
    #[inline(always)]
    pub fn inven1(&self) -> Inven1R {
        Inven1R::new(((self.bits >> 17) & 1) != 0)
    }
    #[doc = "Bit 18 - Output Waveform 2 Inversion"]
    #[inline(always)]
    pub fn inven2(&self) -> Inven2R {
        Inven2R::new(((self.bits >> 18) & 1) != 0)
    }
    #[doc = "Bit 19 - Output Waveform 3 Inversion"]
    #[inline(always)]
    pub fn inven3(&self) -> Inven3R {
        Inven3R::new(((self.bits >> 19) & 1) != 0)
    }
    #[doc = "Bit 20 - Output Waveform 4 Inversion"]
    #[inline(always)]
    pub fn inven4(&self) -> Inven4R {
        Inven4R::new(((self.bits >> 20) & 1) != 0)
    }
    #[doc = "Bit 21 - Output Waveform 5 Inversion"]
    #[inline(always)]
    pub fn inven5(&self) -> Inven5R {
        Inven5R::new(((self.bits >> 21) & 1) != 0)
    }
    #[doc = "Bit 22 - Output Waveform 6 Inversion"]
    #[inline(always)]
    pub fn inven6(&self) -> Inven6R {
        Inven6R::new(((self.bits >> 22) & 1) != 0)
    }
    #[doc = "Bit 23 - Output Waveform 7 Inversion"]
    #[inline(always)]
    pub fn inven7(&self) -> Inven7R {
        Inven7R::new(((self.bits >> 23) & 1) != 0)
    }
    #[doc = "Bits 24:27 - Non-Recoverable Fault Input 0 Filter Value"]
    #[inline(always)]
    pub fn filterval0(&self) -> Filterval0R {
        Filterval0R::new(((self.bits >> 24) & 0x0f) as u8)
    }
    #[doc = "Bits 28:31 - Non-Recoverable Fault Input 1 Filter Value"]
    #[inline(always)]
    pub fn filterval1(&self) -> Filterval1R {
        Filterval1R::new(((self.bits >> 28) & 0x0f) as u8)
    }
}
impl W {
    #[doc = "Bit 0 - Non-Recoverable State 0 Output Enable"]
    #[inline(always)]
    pub fn nre0(&mut self) -> Nre0W<DrvctrlSpec> {
        Nre0W::new(self, 0)
    }
    #[doc = "Bit 1 - Non-Recoverable State 1 Output Enable"]
    #[inline(always)]
    pub fn nre1(&mut self) -> Nre1W<DrvctrlSpec> {
        Nre1W::new(self, 1)
    }
    #[doc = "Bit 2 - Non-Recoverable State 2 Output Enable"]
    #[inline(always)]
    pub fn nre2(&mut self) -> Nre2W<DrvctrlSpec> {
        Nre2W::new(self, 2)
    }
    #[doc = "Bit 3 - Non-Recoverable State 3 Output Enable"]
    #[inline(always)]
    pub fn nre3(&mut self) -> Nre3W<DrvctrlSpec> {
        Nre3W::new(self, 3)
    }
    #[doc = "Bit 4 - Non-Recoverable State 4 Output Enable"]
    #[inline(always)]
    pub fn nre4(&mut self) -> Nre4W<DrvctrlSpec> {
        Nre4W::new(self, 4)
    }
    #[doc = "Bit 5 - Non-Recoverable State 5 Output Enable"]
    #[inline(always)]
    pub fn nre5(&mut self) -> Nre5W<DrvctrlSpec> {
        Nre5W::new(self, 5)
    }
    #[doc = "Bit 6 - Non-Recoverable State 6 Output Enable"]
    #[inline(always)]
    pub fn nre6(&mut self) -> Nre6W<DrvctrlSpec> {
        Nre6W::new(self, 6)
    }
    #[doc = "Bit 7 - Non-Recoverable State 7 Output Enable"]
    #[inline(always)]
    pub fn nre7(&mut self) -> Nre7W<DrvctrlSpec> {
        Nre7W::new(self, 7)
    }
    #[doc = "Bit 8 - Non-Recoverable State 0 Output Value"]
    #[inline(always)]
    pub fn nrv0(&mut self) -> Nrv0W<DrvctrlSpec> {
        Nrv0W::new(self, 8)
    }
    #[doc = "Bit 9 - Non-Recoverable State 1 Output Value"]
    #[inline(always)]
    pub fn nrv1(&mut self) -> Nrv1W<DrvctrlSpec> {
        Nrv1W::new(self, 9)
    }
    #[doc = "Bit 10 - Non-Recoverable State 2 Output Value"]
    #[inline(always)]
    pub fn nrv2(&mut self) -> Nrv2W<DrvctrlSpec> {
        Nrv2W::new(self, 10)
    }
    #[doc = "Bit 11 - Non-Recoverable State 3 Output Value"]
    #[inline(always)]
    pub fn nrv3(&mut self) -> Nrv3W<DrvctrlSpec> {
        Nrv3W::new(self, 11)
    }
    #[doc = "Bit 12 - Non-Recoverable State 4 Output Value"]
    #[inline(always)]
    pub fn nrv4(&mut self) -> Nrv4W<DrvctrlSpec> {
        Nrv4W::new(self, 12)
    }
    #[doc = "Bit 13 - Non-Recoverable State 5 Output Value"]
    #[inline(always)]
    pub fn nrv5(&mut self) -> Nrv5W<DrvctrlSpec> {
        Nrv5W::new(self, 13)
    }
    #[doc = "Bit 14 - Non-Recoverable State 6 Output Value"]
    #[inline(always)]
    pub fn nrv6(&mut self) -> Nrv6W<DrvctrlSpec> {
        Nrv6W::new(self, 14)
    }
    #[doc = "Bit 15 - Non-Recoverable State 7 Output Value"]
    #[inline(always)]
    pub fn nrv7(&mut self) -> Nrv7W<DrvctrlSpec> {
        Nrv7W::new(self, 15)
    }
    #[doc = "Bit 16 - Output Waveform 0 Inversion"]
    #[inline(always)]
    pub fn inven0(&mut self) -> Inven0W<DrvctrlSpec> {
        Inven0W::new(self, 16)
    }
    #[doc = "Bit 17 - Output Waveform 1 Inversion"]
    #[inline(always)]
    pub fn inven1(&mut self) -> Inven1W<DrvctrlSpec> {
        Inven1W::new(self, 17)
    }
    #[doc = "Bit 18 - Output Waveform 2 Inversion"]
    #[inline(always)]
    pub fn inven2(&mut self) -> Inven2W<DrvctrlSpec> {
        Inven2W::new(self, 18)
    }
    #[doc = "Bit 19 - Output Waveform 3 Inversion"]
    #[inline(always)]
    pub fn inven3(&mut self) -> Inven3W<DrvctrlSpec> {
        Inven3W::new(self, 19)
    }
    #[doc = "Bit 20 - Output Waveform 4 Inversion"]
    #[inline(always)]
    pub fn inven4(&mut self) -> Inven4W<DrvctrlSpec> {
        Inven4W::new(self, 20)
    }
    #[doc = "Bit 21 - Output Waveform 5 Inversion"]
    #[inline(always)]
    pub fn inven5(&mut self) -> Inven5W<DrvctrlSpec> {
        Inven5W::new(self, 21)
    }
    #[doc = "Bit 22 - Output Waveform 6 Inversion"]
    #[inline(always)]
    pub fn inven6(&mut self) -> Inven6W<DrvctrlSpec> {
        Inven6W::new(self, 22)
    }
    #[doc = "Bit 23 - Output Waveform 7 Inversion"]
    #[inline(always)]
    pub fn inven7(&mut self) -> Inven7W<DrvctrlSpec> {
        Inven7W::new(self, 23)
    }
    #[doc = "Bits 24:27 - Non-Recoverable Fault Input 0 Filter Value"]
    #[inline(always)]
    pub fn filterval0(&mut self) -> Filterval0W<DrvctrlSpec> {
        Filterval0W::new(self, 24)
    }
    #[doc = "Bits 28:31 - Non-Recoverable Fault Input 1 Filter Value"]
    #[inline(always)]
    pub fn filterval1(&mut self) -> Filterval1W<DrvctrlSpec> {
        Filterval1W::new(self, 28)
    }
}
#[doc = "Driver Control\n\nYou can [`read`](crate::Reg::read) this register and get [`drvctrl::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`drvctrl::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct DrvctrlSpec;
impl crate::RegisterSpec for DrvctrlSpec {
    type Ux = u32;
}
#[doc = "`read()` method returns [`drvctrl::R`](R) reader structure"]
impl crate::Readable for DrvctrlSpec {}
#[doc = "`write(|w| ..)` method takes [`drvctrl::W`](W) writer structure"]
impl crate::Writable for DrvctrlSpec {
    type Safety = crate::Unsafe;
    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
}
#[doc = "`reset()` method sets DRVCTRL to value 0"]
impl crate::Resettable for DrvctrlSpec {
    const RESET_VALUE: u32 = 0;
}
