#![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 Contorol"]
unsafe impl ::core::marker::Send for super::Dma0 {}
unsafe impl ::core::marker::Sync for super::Dma0 {}
impl super::Dma0 {
#[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 Control Register"]
#[inline(always)]
pub const fn dmctl(&self) -> &'static crate::common::Reg<self::Dmctl_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Dmctl_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(16usize),
)
}
}
#[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 Dmctl_SPEC;
impl crate::sealed::RegSpec for Dmctl_SPEC {
type DataType = u8;
}
#[doc = "DMAC Control Register"]
pub type Dmctl = crate::RegValueT<Dmctl_SPEC>;
impl Dmctl {
#[doc = "Priority Control Select"]
#[inline(always)]
pub fn pr(
self,
) -> crate::common::RegisterField<
0,
0x1,
1,
0,
dmctl::Pr,
dmctl::Pr,
Dmctl_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
0,
0x1,
1,
0,
dmctl::Pr,
dmctl::Pr,
Dmctl_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
#[doc = "Clear Channel Select"]
#[inline(always)]
pub fn erch(
self,
) -> crate::common::RegisterField<
4,
0x1,
1,
0,
dmctl::Erch,
dmctl::Erch,
Dmctl_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
4,
0x1,
1,
0,
dmctl::Erch,
dmctl::Erch,
Dmctl_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
}
impl ::core::default::Default for Dmctl {
#[inline(always)]
fn default() -> Dmctl {
<crate::RegValueT<Dmctl_SPEC> as RegisterValue<_>>::new(0)
}
}
pub mod dmctl {
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Pr_SPEC;
pub type Pr = crate::EnumBitfieldStruct<u8, Pr_SPEC>;
impl Pr {
#[doc = "Fixed priority mode"]
pub const _0: Self = Self::new(0);
#[doc = "Round-robin mode"]
pub const _1: Self = Self::new(1);
}
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Erch_SPEC;
pub type Erch = crate::EnumBitfieldStruct<u8, Erch_SPEC>;
impl Erch {
#[doc = "Target channel only"]
pub const _0: Self = Self::new(0);
#[doc = "All channels"]
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, 0xf, 1, 0, u8, u8, Dmechr_SPEC, crate::common::R> {
crate::common::RegisterField::<0,0xf,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);
}
}