#![allow(clippy::identity_op)]
#![allow(clippy::module_inception)]
#![allow(clippy::derivable_impls)]
#[allow(unused_imports)]
use crate::common::sealed;
#[allow(unused_imports)]
use crate::common::*;
#[doc = r"DMAC Module Activation"]
unsafe impl ::core::marker::Send for super::Dma {}
unsafe impl ::core::marker::Sync for super::Dma {}
impl super::Dma {
    #[allow(unused)]
    #[inline(always)]
    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
        self.ptr
    }
    #[doc = "DMA Module Activation Register"]
    #[inline(always)]
    pub const fn dmast(&self) -> &'static crate::common::Reg<self::Dmast_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Dmast_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(0usize),
            )
        }
    }
    #[doc = "DMAC Error Channel Register"]
    #[inline(always)]
    pub const fn dmechr(
        &self,
    ) -> &'static crate::common::Reg<self::Dmechr_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Dmechr_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(64usize),
            )
        }
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Dmast_SPEC;
impl crate::sealed::RegSpec for Dmast_SPEC {
    type DataType = u8;
}
#[doc = "DMA Module Activation Register"]
pub type Dmast = crate::RegValueT<Dmast_SPEC>;
impl Dmast {
    #[doc = "DMAC Operation Enable"]
    #[inline(always)]
    pub fn dmst(
        self,
    ) -> crate::common::RegisterField<
        0,
        0x1,
        1,
        0,
        dmast::Dmst,
        dmast::Dmst,
        Dmast_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            0,
            0x1,
            1,
            0,
            dmast::Dmst,
            dmast::Dmst,
            Dmast_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Dmast {
    #[inline(always)]
    fn default() -> Dmast {
        <crate::RegValueT<Dmast_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod dmast {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Dmst_SPEC;
    pub type Dmst = crate::EnumBitfieldStruct<u8, Dmst_SPEC>;
    impl Dmst {
        #[doc = "DMAC activation is disabled."]
        pub const _0: Self = Self::new(0);
        #[doc = "DMAC activation is enabled."]
        pub const _1: Self = Self::new(1);
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Dmechr_SPEC;
impl crate::sealed::RegSpec for Dmechr_SPEC {
    type DataType = u32;
}
#[doc = "DMAC Error Channel Register"]
pub type Dmechr = crate::RegValueT<Dmechr_SPEC>;
impl Dmechr {
    #[doc = "DMAC Error channel"]
    #[inline(always)]
    pub fn dmech(
        self,
    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, Dmechr_SPEC, crate::common::R> {
        crate::common::RegisterField::<0,0x7,1,0,u8,u8,Dmechr_SPEC,crate::common::R>::from_register(self,0)
    }
    #[doc = "DMAC Error channel Security Attribution Monitor"]
    #[inline(always)]
    pub fn dmechsam(
        self,
    ) -> crate::common::RegisterField<
        8,
        0x1,
        1,
        0,
        dmechr::Dmechsam,
        dmechr::Dmechsam,
        Dmechr_SPEC,
        crate::common::R,
    > {
        crate::common::RegisterField::<
            8,
            0x1,
            1,
            0,
            dmechr::Dmechsam,
            dmechr::Dmechsam,
            Dmechr_SPEC,
            crate::common::R,
        >::from_register(self, 0)
    }
    #[doc = "DMAC Error Status"]
    #[inline(always)]
    pub fn dmesta(
        self,
    ) -> crate::common::RegisterField<
        16,
        0x1,
        1,
        0,
        dmechr::Dmesta,
        dmechr::Dmesta,
        Dmechr_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            16,
            0x1,
            1,
            0,
            dmechr::Dmesta,
            dmechr::Dmesta,
            Dmechr_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Dmechr {
    #[inline(always)]
    fn default() -> Dmechr {
        <crate::RegValueT<Dmechr_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod dmechr {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Dmechsam_SPEC;
    pub type Dmechsam = crate::EnumBitfieldStruct<u8, Dmechsam_SPEC>;
    impl Dmechsam {
        #[doc = "Secure channel"]
        pub const _0: Self = Self::new(0);
        #[doc = "Non-secure channel"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Dmesta_SPEC;
    pub type Dmesta = crate::EnumBitfieldStruct<u8, Dmesta_SPEC>;
    impl Dmesta {
        #[doc = "No DMA transfer error occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "DMA transfer error occurred"]
        pub const _1: Self = Self::new(1);
    }
}