#![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"Memory Mirror Function"]
unsafe impl ::core::marker::Send for super::Mmf {}
unsafe impl ::core::marker::Sync for super::Mmf {}
impl super::Mmf {
#[allow(unused)]
#[inline(always)]
pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
self.ptr
}
#[doc = "MemMirror Special Function Register"]
#[inline(always)]
pub const fn mmsfr(&self) -> &'static crate::common::Reg<self::Mmsfr_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Mmsfr_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0usize),
)
}
}
#[doc = "MemMirror Enable Register"]
#[inline(always)]
pub const fn mmen(&self) -> &'static crate::common::Reg<self::Mmen_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::Mmen_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(4usize),
)
}
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Mmsfr_SPEC;
impl crate::sealed::RegSpec for Mmsfr_SPEC {
type DataType = u32;
}
#[doc = "MemMirror Special Function Register"]
pub type Mmsfr = crate::RegValueT<Mmsfr_SPEC>;
impl Mmsfr {
#[doc = "MMSFR Key Code"]
#[inline(always)]
pub fn key(
self,
) -> crate::common::RegisterField<
24,
0xff,
1,
0,
mmsfr::Key,
mmsfr::Key,
Mmsfr_SPEC,
crate::common::W,
> {
crate::common::RegisterField::<
24,
0xff,
1,
0,
mmsfr::Key,
mmsfr::Key,
Mmsfr_SPEC,
crate::common::W,
>::from_register(self, 0)
}
#[doc = "Specifies the memory mirror address.NOTE: A value cannot be set in the low-order 7 bits. These bits are fixed to 0."]
#[inline(always)]
pub fn memmiraddr(
self,
) -> crate::common::RegisterField<7, 0xffff, 1, 0, u16, u16, Mmsfr_SPEC, crate::common::RW>
{
crate::common::RegisterField::<7,0xffff,1,0,u16,u16,Mmsfr_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "These bits are read as 0000000. The write value should be 0000000."]
#[inline(always)]
pub fn reserved(
self,
) -> crate::common::RegisterField<0, 0x7f, 1, 0, u8, u8, Mmsfr_SPEC, crate::common::RW> {
crate::common::RegisterField::<0,0x7f,1,0,u8,u8,Mmsfr_SPEC,crate::common::RW>::from_register(self,0)
}
}
impl ::core::default::Default for Mmsfr {
#[inline(always)]
fn default() -> Mmsfr {
<crate::RegValueT<Mmsfr_SPEC> as RegisterValue<_>>::new(0)
}
}
pub mod mmsfr {
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Key_SPEC;
pub type Key = crate::EnumBitfieldStruct<u8, Key_SPEC>;
impl Key {
#[doc = "Writing to the MEMMIRADDR bits are valid, when the KEY bits are written 0xDB."]
pub const _0_X_DB: Self = Self::new(219);
#[doc = "Writing to the MEMMIRADDR bits are invalid."]
pub const OTHERS: Self = Self::new(0);
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Mmen_SPEC;
impl crate::sealed::RegSpec for Mmen_SPEC {
type DataType = u32;
}
#[doc = "MemMirror Enable Register"]
pub type Mmen = crate::RegValueT<Mmen_SPEC>;
impl Mmen {
#[doc = "MMEN Key Code"]
#[inline(always)]
pub fn key(
self,
) -> crate::common::RegisterField<
24,
0xff,
1,
0,
mmen::Key,
mmen::Key,
Mmen_SPEC,
crate::common::W,
> {
crate::common::RegisterField::<
24,
0xff,
1,
0,
mmen::Key,
mmen::Key,
Mmen_SPEC,
crate::common::W,
>::from_register(self, 0)
}
#[doc = "These bits are read as 00000000000000000000000. The write value should be 00000000000000000000000."]
#[inline(always)]
pub fn reserved(
self,
) -> crate::common::RegisterField<1, 0x7fffff, 1, 0, u32, u32, Mmen_SPEC, crate::common::RW>
{
crate::common::RegisterField::<1,0x7fffff,1,0,u32,u32,Mmen_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Memory Mirror Function Enable"]
#[inline(always)]
pub fn en(
self,
) -> crate::common::RegisterField<0, 0x1, 1, 0, mmen::En, mmen::En, Mmen_SPEC, crate::common::RW>
{
crate::common::RegisterField::<0,0x1,1,0,mmen::En,mmen::En,Mmen_SPEC,crate::common::RW>::from_register(self,0)
}
}
impl ::core::default::Default for Mmen {
#[inline(always)]
fn default() -> Mmen {
<crate::RegValueT<Mmen_SPEC> as RegisterValue<_>>::new(0)
}
}
pub mod mmen {
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct Key_SPEC;
pub type Key = crate::EnumBitfieldStruct<u8, Key_SPEC>;
impl Key {
#[doc = "Writing to the EN bit is valid, when the KEY bits are written 0xDB."]
pub const _0_X_DB: Self = Self::new(219);
#[doc = "Writing to the EN bit is invalid."]
pub const OTHERS: Self = Self::new(0);
}
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
pub struct En_SPEC;
pub type En = crate::EnumBitfieldStruct<u8, En_SPEC>;
impl En {
#[doc = "Memory Mirror Function is enabled."]
pub const _1: Self = Self::new(1);
#[doc = "Memory Mirror Function is disabled."]
pub const _0: Self = Self::new(0);
}
}