#![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"Common Interrupt Controller"]
unsafe impl ::core::marker::Send for super::IcuCommon {}
unsafe impl ::core::marker::Sync for super::IcuCommon {}
impl super::IcuCommon {
#[allow(unused)]
#[inline(always)]
pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
self.ptr
}
#[doc = "IRQ Control Register %s"]
#[inline(always)]
pub const fn irqcr(
&self,
) -> &'static crate::common::ClusterRegisterArray<
crate::common::Reg<self::Irqcr_SPEC, crate::common::RW>,
16,
0x1,
> {
unsafe {
crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x0usize))
}
}
#[inline(always)]
pub const fn irqcr0(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x0usize),
)
}
}
#[inline(always)]
pub const fn irqcr1(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x1usize),
)
}
}
#[inline(always)]
pub const fn irqcr2(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x2usize),
)
}
}
#[inline(always)]
pub const fn irqcr3(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x3usize),
)
}
}
#[inline(always)]
pub const fn irqcr4(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x4usize),
)
}
}
#[inline(always)]
pub const fn irqcr5(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x5usize),
)
}
}
#[inline(always)]
pub const fn irqcr6(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x6usize),
)
}
}
#[inline(always)]
pub const fn irqcr7(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x7usize),
)
}
}
#[inline(always)]
pub const fn irqcr8(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x8usize),
)
}
}
#[inline(always)]
pub const fn irqcr9(&self) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0x9usize),
)
}
}
#[inline(always)]
pub const fn irqcr10(
&self,
) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0xausize),
)
}
}
#[inline(always)]
pub const fn irqcr11(
&self,
) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0xbusize),
)
}
}
#[inline(always)]
pub const fn irqcr12(
&self,
) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0xcusize),
)
}
}
#[inline(always)]
pub const fn irqcr13(
&self,
) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0xdusize),
)
}
}
#[inline(always)]
pub const fn irqcr14(
&self,
) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0xeusize),
)
}
}
#[inline(always)]
pub const fn irqcr15(
&self,
) -> &'static crate::common::Reg<self::Irqcr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Irqcr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0xfusize),
)
}
}
#[doc = "NMI Pin Interrupt Control Register"]
#[inline(always)]
pub const fn nmicr(&self) -> &'static crate::common::Reg<self::Nmicr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Nmicr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(16usize),
)
}
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Irqcr_SPEC;
impl crate::sealed::RegSpec for Irqcr_SPEC {
type DataType = u8;
}
#[doc = "IRQ Control Register %s"]
pub type Irqcr = crate::RegValueT<Irqcr_SPEC>;
impl Irqcr {
#[doc = "IRQi Detection Sense Select"]
#[inline(always)]
pub fn irqmd(
self,
) -> crate::common::RegisterField<
0,
0x3,
1,
0,
irqcr::Irqmd,
irqcr::Irqmd,
Irqcr_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
0,
0x3,
1,
0,
irqcr::Irqmd,
irqcr::Irqmd,
Irqcr_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
#[doc = "IRQi Digital Filter Sampling Clock Select"]
#[inline(always)]
pub fn fclksel(
self,
) -> crate::common::RegisterField<
4,
0x3,
1,
0,
irqcr::Fclksel,
irqcr::Fclksel,
Irqcr_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
4,
0x3,
1,
0,
irqcr::Fclksel,
irqcr::Fclksel,
Irqcr_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
#[doc = "IRQi Digital Filter Enable"]
#[inline(always)]
pub fn flten(
self,
) -> crate::common::RegisterField<
7,
0x1,
1,
0,
irqcr::Flten,
irqcr::Flten,
Irqcr_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
7,
0x1,
1,
0,
irqcr::Flten,
irqcr::Flten,
Irqcr_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
}
impl ::core::default::Default for Irqcr {
#[inline(always)]
fn default() -> Irqcr {
<crate::RegValueT<Irqcr_SPEC> as RegisterValue<_>>::new(0)
}
}
pub mod irqcr {
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Irqmd_SPEC;
pub type Irqmd = crate::EnumBitfieldStruct<u8, Irqmd_SPEC>;
impl Irqmd {
#[doc = "Falling edge"]
pub const _00: Self = Self::new(0);
#[doc = "Rising edge"]
pub const _01: Self = Self::new(1);
#[doc = "Rising and falling edges"]
pub const _10: Self = Self::new(2);
#[doc = "Low level"]
pub const _11: Self = Self::new(3);
}
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Fclksel_SPEC;
pub type Fclksel = crate::EnumBitfieldStruct<u8, Fclksel_SPEC>;
impl Fclksel {
#[doc = "PCLKB"]
pub const _00: Self = Self::new(0);
#[doc = "PCLKB/8"]
pub const _01: Self = Self::new(1);
#[doc = "PCLKB/32"]
pub const _10: Self = Self::new(2);
#[doc = "PCLKB/64"]
pub const _11: Self = Self::new(3);
}
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Flten_SPEC;
pub type Flten = crate::EnumBitfieldStruct<u8, Flten_SPEC>;
impl Flten {
#[doc = "Digital filter is disabled"]
pub const _0: Self = Self::new(0);
#[doc = "Digital filter is enabled."]
pub const _1: Self = Self::new(1);
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Nmicr_SPEC;
impl crate::sealed::RegSpec for Nmicr_SPEC {
type DataType = u8;
}
#[doc = "NMI Pin Interrupt Control Register"]
pub type Nmicr = crate::RegValueT<Nmicr_SPEC>;
impl Nmicr {
#[doc = "NMI Detection Set"]
#[inline(always)]
pub fn nmimd(
self,
) -> crate::common::RegisterField<
0,
0x1,
1,
0,
nmicr::Nmimd,
nmicr::Nmimd,
Nmicr_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
0,
0x1,
1,
0,
nmicr::Nmimd,
nmicr::Nmimd,
Nmicr_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
#[doc = "NMI Digital Filter Sampling Clock Select"]
#[inline(always)]
pub fn nfclksel(
self,
) -> crate::common::RegisterField<
4,
0x3,
1,
0,
nmicr::Nfclksel,
nmicr::Nfclksel,
Nmicr_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
4,
0x3,
1,
0,
nmicr::Nfclksel,
nmicr::Nfclksel,
Nmicr_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
#[doc = "NMI Digital Filter Enable"]
#[inline(always)]
pub fn nflten(
self,
) -> crate::common::RegisterField<
7,
0x1,
1,
0,
nmicr::Nflten,
nmicr::Nflten,
Nmicr_SPEC,
crate::common::RW,
> {
crate::common::RegisterField::<
7,
0x1,
1,
0,
nmicr::Nflten,
nmicr::Nflten,
Nmicr_SPEC,
crate::common::RW,
>::from_register(self, 0)
}
}
impl ::core::default::Default for Nmicr {
#[inline(always)]
fn default() -> Nmicr {
<crate::RegValueT<Nmicr_SPEC> as RegisterValue<_>>::new(0)
}
}
pub mod nmicr {
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Nmimd_SPEC;
pub type Nmimd = crate::EnumBitfieldStruct<u8, Nmimd_SPEC>;
impl Nmimd {
#[doc = "Falling edge"]
pub const _0: Self = Self::new(0);
#[doc = "Rising edge"]
pub const _1: Self = Self::new(1);
}
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Nfclksel_SPEC;
pub type Nfclksel = crate::EnumBitfieldStruct<u8, Nfclksel_SPEC>;
impl Nfclksel {
#[doc = "PCLKB"]
pub const _00: Self = Self::new(0);
#[doc = "PCLKB/8"]
pub const _01: Self = Self::new(1);
#[doc = "PCLKB/32"]
pub const _10: Self = Self::new(2);
#[doc = "PCLKB/64"]
pub const _11: Self = Self::new(3);
}
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Nflten_SPEC;
pub type Nflten = crate::EnumBitfieldStruct<u8, Nflten_SPEC>;
impl Nflten {
#[doc = "Disabled"]
pub const _0: Self = Self::new(0);
#[doc = "Enabled"]
pub const _1: Self = Self::new(1);
}
}