#[doc = "Register `VID1` reader"]
pub type R = crate::R<Vid1Spec>;
#[doc = "Shows the IP's Minor revision of the TRNG.\n\nValue on reset: 12"]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum MinRev {
#[doc = "12: Minor revision number for TRNG."]
MinRevVal = 12,
}
impl From<MinRev> for u8 {
#[inline(always)]
fn from(variant: MinRev) -> Self {
variant as _
}
}
impl crate::FieldSpec for MinRev {
type Ux = u8;
}
impl crate::IsEnum for MinRev {}
#[doc = "Field `MIN_REV` reader - Shows the IP's Minor revision of the TRNG."]
pub type MinRevR = crate::FieldReader<MinRev>;
impl MinRevR {
#[doc = "Get enumerated values variant"]
#[inline(always)]
pub const fn variant(&self) -> Option<MinRev> {
match self.bits {
12 => Some(MinRev::MinRevVal),
_ => None,
}
}
#[doc = "Minor revision number for TRNG."]
#[inline(always)]
pub fn is_min_rev_val(&self) -> bool {
*self == MinRev::MinRevVal
}
}
#[doc = "Shows the IP's Major revision of the TRNG\n\nValue on reset: 20"]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum MajRev {
#[doc = "20: Major revision number for TRNG."]
MajRevVal = 20,
}
impl From<MajRev> for u8 {
#[inline(always)]
fn from(variant: MajRev) -> Self {
variant as _
}
}
impl crate::FieldSpec for MajRev {
type Ux = u8;
}
impl crate::IsEnum for MajRev {}
#[doc = "Field `MAJ_REV` reader - Shows the IP's Major revision of the TRNG"]
pub type MajRevR = crate::FieldReader<MajRev>;
impl MajRevR {
#[doc = "Get enumerated values variant"]
#[inline(always)]
pub const fn variant(&self) -> Option<MajRev> {
match self.bits {
20 => Some(MajRev::MajRevVal),
_ => None,
}
}
#[doc = "Major revision number for TRNG."]
#[inline(always)]
pub fn is_maj_rev_val(&self) -> bool {
*self == MajRev::MajRevVal
}
}
#[doc = "Shows the IP ID.\n\nValue on reset: 48"]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum IpId {
#[doc = "48: ID for TRNG."]
IpIdVal = 48,
}
impl From<IpId> for u16 {
#[inline(always)]
fn from(variant: IpId) -> Self {
variant as _
}
}
impl crate::FieldSpec for IpId {
type Ux = u16;
}
impl crate::IsEnum for IpId {}
#[doc = "Field `IP_ID` reader - Shows the IP ID."]
pub type IpIdR = crate::FieldReader<IpId>;
impl IpIdR {
#[doc = "Get enumerated values variant"]
#[inline(always)]
pub const fn variant(&self) -> Option<IpId> {
match self.bits {
48 => Some(IpId::IpIdVal),
_ => None,
}
}
#[doc = "ID for TRNG."]
#[inline(always)]
pub fn is_ip_id_val(&self) -> bool {
*self == IpId::IpIdVal
}
}
impl R {
#[doc = "Bits 0:7 - Shows the IP's Minor revision of the TRNG."]
#[inline(always)]
pub fn min_rev(&self) -> MinRevR {
MinRevR::new((self.bits & 0xff) as u8)
}
#[doc = "Bits 8:15 - Shows the IP's Major revision of the TRNG"]
#[inline(always)]
pub fn maj_rev(&self) -> MajRevR {
MajRevR::new(((self.bits >> 8) & 0xff) as u8)
}
#[doc = "Bits 16:31 - Shows the IP ID."]
#[inline(always)]
pub fn ip_id(&self) -> IpIdR {
IpIdR::new(((self.bits >> 16) & 0xffff) as u16)
}
}
#[cfg(feature = "debug")]
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("VID1")
.field("min_rev", &self.min_rev())
.field("maj_rev", &self.maj_rev())
.field("ip_id", &self.ip_id())
.finish()
}
}
#[doc = "Version ID Register (MS)\n\nYou can [`read`](crate::Reg::read) this register and get [`vid1::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Vid1Spec;
impl crate::RegisterSpec for Vid1Spec {
type Ux = u32;
}
#[doc = "`read()` method returns [`vid1::R`](R) reader structure"]
impl crate::Readable for Vid1Spec {}
#[doc = "`reset()` method sets VID1 to value 0x0030_140c"]
impl crate::Resettable for Vid1Spec {
const RESET_VALUE: u32 = 0x0030_140c;
}