pub type R = crate::R<CRrs>;
pub type W = crate::W<CRrs>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSION {
Off = 0,
On = 1,
}
impl From<HSION> for bool {
#[inline(always)]
fn from(variant: HSION) -> Self {
variant as u8 != 0
}
}
pub type HSION_R = crate::BitReader<HSION>;
impl HSION_R {
#[inline(always)]
pub const fn variant(&self) -> HSION {
match self.bits {
false => HSION::Off,
true => HSION::On,
}
}
#[inline(always)]
pub fn is_off(&self) -> bool {
*self == HSION::Off
}
#[inline(always)]
pub fn is_on(&self) -> bool {
*self == HSION::On
}
}
pub type HSION_W<'a, REG> = crate::BitWriter<'a, REG, HSION>;
impl<'a, REG> HSION_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn off(self) -> &'a mut crate::W<REG> {
self.variant(HSION::Off)
}
#[inline(always)]
pub fn on(self) -> &'a mut crate::W<REG> {
self.variant(HSION::On)
}
}
pub use HSION_R as HSIKERON_R;
pub use HSION_W as HSIKERON_W;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSIRDYR {
NotReady = 0,
Ready = 1,
}
impl From<HSIRDYR> for bool {
#[inline(always)]
fn from(variant: HSIRDYR) -> Self {
variant as u8 != 0
}
}
pub type HSIRDY_R = crate::BitReader<HSIRDYR>;
impl HSIRDY_R {
#[inline(always)]
pub const fn variant(&self) -> HSIRDYR {
match self.bits {
false => HSIRDYR::NotReady,
true => HSIRDYR::Ready,
}
}
#[inline(always)]
pub fn is_not_ready(&self) -> bool {
*self == HSIRDYR::NotReady
}
#[inline(always)]
pub fn is_ready(&self) -> bool {
*self == HSIRDYR::Ready
}
}
pub type HSIRDY_W<'a, REG> = crate::BitWriter<'a, REG, HSIRDYR>;
impl<'a, REG> HSIRDY_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn not_ready(self) -> &'a mut crate::W<REG> {
self.variant(HSIRDYR::NotReady)
}
#[inline(always)]
pub fn ready(self) -> &'a mut crate::W<REG> {
self.variant(HSIRDYR::Ready)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum HSIDIV {
Div1 = 0,
Div2 = 1,
Div4 = 2,
Div8 = 3,
}
impl From<HSIDIV> for u8 {
#[inline(always)]
fn from(variant: HSIDIV) -> Self {
variant as _
}
}
impl crate::FieldSpec for HSIDIV {
type Ux = u8;
}
impl crate::IsEnum for HSIDIV {}
pub type HSIDIV_R = crate::FieldReader<HSIDIV>;
impl HSIDIV_R {
#[inline(always)]
pub const fn variant(&self) -> HSIDIV {
match self.bits {
0 => HSIDIV::Div1,
1 => HSIDIV::Div2,
2 => HSIDIV::Div4,
3 => HSIDIV::Div8,
_ => unreachable!(),
}
}
#[inline(always)]
pub fn is_div1(&self) -> bool {
*self == HSIDIV::Div1
}
#[inline(always)]
pub fn is_div2(&self) -> bool {
*self == HSIDIV::Div2
}
#[inline(always)]
pub fn is_div4(&self) -> bool {
*self == HSIDIV::Div4
}
#[inline(always)]
pub fn is_div8(&self) -> bool {
*self == HSIDIV::Div8
}
}
pub type HSIDIV_W<'a, REG> = crate::FieldWriter<'a, REG, 2, HSIDIV, crate::Safe>;
impl<'a, REG> HSIDIV_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn div1(self) -> &'a mut crate::W<REG> {
self.variant(HSIDIV::Div1)
}
#[inline(always)]
pub fn div2(self) -> &'a mut crate::W<REG> {
self.variant(HSIDIV::Div2)
}
#[inline(always)]
pub fn div4(self) -> &'a mut crate::W<REG> {
self.variant(HSIDIV::Div4)
}
#[inline(always)]
pub fn div8(self) -> &'a mut crate::W<REG> {
self.variant(HSIDIV::Div8)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSIDIVFR {
NotPropagated = 0,
Propagated = 1,
}
impl From<HSIDIVFR> for bool {
#[inline(always)]
fn from(variant: HSIDIVFR) -> Self {
variant as u8 != 0
}
}
pub type HSIDIVF_R = crate::BitReader<HSIDIVFR>;
impl HSIDIVF_R {
#[inline(always)]
pub const fn variant(&self) -> HSIDIVFR {
match self.bits {
false => HSIDIVFR::NotPropagated,
true => HSIDIVFR::Propagated,
}
}
#[inline(always)]
pub fn is_not_propagated(&self) -> bool {
*self == HSIDIVFR::NotPropagated
}
#[inline(always)]
pub fn is_propagated(&self) -> bool {
*self == HSIDIVFR::Propagated
}
}
pub type HSIDIVF_W<'a, REG> = crate::BitWriter<'a, REG, HSIDIVFR>;
impl<'a, REG> HSIDIVF_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn not_propagated(self) -> &'a mut crate::W<REG> {
self.variant(HSIDIVFR::NotPropagated)
}
#[inline(always)]
pub fn propagated(self) -> &'a mut crate::W<REG> {
self.variant(HSIDIVFR::Propagated)
}
}
pub use HSION_R as CSION_R;
pub use HSION_R as CSIKERON_R;
pub use HSION_R as HSI48ON_R;
pub use HSION_R as HSEON_R;
pub use HSION_W as CSION_W;
pub use HSION_W as CSIKERON_W;
pub use HSION_W as HSI48ON_W;
pub use HSION_W as HSEON_W;
pub use HSIRDY_R as CSIRDY_R;
pub use HSIRDY_R as HSI48RDY_R;
pub use HSIRDY_R as D1CKRDY_R;
pub use HSIRDY_R as D2CKRDY_R;
pub use HSIRDY_R as HSERDY_R;
pub use HSIRDY_W as CSIRDY_W;
pub use HSIRDY_W as HSI48RDY_W;
pub use HSIRDY_W as D1CKRDY_W;
pub use HSIRDY_W as D2CKRDY_W;
pub use HSIRDY_W as HSERDY_W;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSEBYP {
NotBypassed = 0,
Bypassed = 1,
}
impl From<HSEBYP> for bool {
#[inline(always)]
fn from(variant: HSEBYP) -> Self {
variant as u8 != 0
}
}
pub type HSEBYP_R = crate::BitReader<HSEBYP>;
impl HSEBYP_R {
#[inline(always)]
pub const fn variant(&self) -> HSEBYP {
match self.bits {
false => HSEBYP::NotBypassed,
true => HSEBYP::Bypassed,
}
}
#[inline(always)]
pub fn is_not_bypassed(&self) -> bool {
*self == HSEBYP::NotBypassed
}
#[inline(always)]
pub fn is_bypassed(&self) -> bool {
*self == HSEBYP::Bypassed
}
}
pub type HSEBYP_W<'a, REG> = crate::BitWriter<'a, REG, HSEBYP>;
impl<'a, REG> HSEBYP_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn not_bypassed(self) -> &'a mut crate::W<REG> {
self.variant(HSEBYP::NotBypassed)
}
#[inline(always)]
pub fn bypassed(self) -> &'a mut crate::W<REG> {
self.variant(HSEBYP::Bypassed)
}
}
pub use HSION_R as HSECSSON_R;
pub use HSION_R as PLL1ON_R;
pub use HSION_R as PLL2ON_R;
pub use HSION_R as PLL3ON_R;
pub use HSION_W as HSECSSON_W;
pub use HSION_W as PLL1ON_W;
pub use HSION_W as PLL2ON_W;
pub use HSION_W as PLL3ON_W;
pub use HSIRDY_R as PLL1RDY_R;
pub use HSIRDY_R as PLL2RDY_R;
pub use HSIRDY_R as PLL3RDY_R;
pub use HSIRDY_W as PLL1RDY_W;
pub use HSIRDY_W as PLL2RDY_W;
pub use HSIRDY_W as PLL3RDY_W;
impl R {
#[inline(always)]
pub fn hsion(&self) -> HSION_R {
HSION_R::new((self.bits & 1) != 0)
}
#[inline(always)]
pub fn hsikeron(&self) -> HSIKERON_R {
HSIKERON_R::new(((self.bits >> 1) & 1) != 0)
}
#[inline(always)]
pub fn hsirdy(&self) -> HSIRDY_R {
HSIRDY_R::new(((self.bits >> 2) & 1) != 0)
}
#[inline(always)]
pub fn hsidiv(&self) -> HSIDIV_R {
HSIDIV_R::new(((self.bits >> 3) & 3) as u8)
}
#[inline(always)]
pub fn hsidivf(&self) -> HSIDIVF_R {
HSIDIVF_R::new(((self.bits >> 5) & 1) != 0)
}
#[inline(always)]
pub fn csion(&self) -> CSION_R {
CSION_R::new(((self.bits >> 7) & 1) != 0)
}
#[inline(always)]
pub fn csirdy(&self) -> CSIRDY_R {
CSIRDY_R::new(((self.bits >> 8) & 1) != 0)
}
#[inline(always)]
pub fn csikeron(&self) -> CSIKERON_R {
CSIKERON_R::new(((self.bits >> 9) & 1) != 0)
}
#[inline(always)]
pub fn hsi48on(&self) -> HSI48ON_R {
HSI48ON_R::new(((self.bits >> 12) & 1) != 0)
}
#[inline(always)]
pub fn hsi48rdy(&self) -> HSI48RDY_R {
HSI48RDY_R::new(((self.bits >> 13) & 1) != 0)
}
#[inline(always)]
pub fn d1ckrdy(&self) -> D1CKRDY_R {
D1CKRDY_R::new(((self.bits >> 14) & 1) != 0)
}
#[inline(always)]
pub fn d2ckrdy(&self) -> D2CKRDY_R {
D2CKRDY_R::new(((self.bits >> 15) & 1) != 0)
}
#[inline(always)]
pub fn hseon(&self) -> HSEON_R {
HSEON_R::new(((self.bits >> 16) & 1) != 0)
}
#[inline(always)]
pub fn hserdy(&self) -> HSERDY_R {
HSERDY_R::new(((self.bits >> 17) & 1) != 0)
}
#[inline(always)]
pub fn hsebyp(&self) -> HSEBYP_R {
HSEBYP_R::new(((self.bits >> 18) & 1) != 0)
}
#[inline(always)]
pub fn hsecsson(&self) -> HSECSSON_R {
HSECSSON_R::new(((self.bits >> 19) & 1) != 0)
}
#[inline(always)]
pub fn pll1on(&self) -> PLL1ON_R {
PLL1ON_R::new(((self.bits >> 24) & 1) != 0)
}
#[inline(always)]
pub fn pll1rdy(&self) -> PLL1RDY_R {
PLL1RDY_R::new(((self.bits >> 25) & 1) != 0)
}
#[inline(always)]
pub fn pll2on(&self) -> PLL2ON_R {
PLL2ON_R::new(((self.bits >> 26) & 1) != 0)
}
#[inline(always)]
pub fn pll2rdy(&self) -> PLL2RDY_R {
PLL2RDY_R::new(((self.bits >> 27) & 1) != 0)
}
#[inline(always)]
pub fn pll3on(&self) -> PLL3ON_R {
PLL3ON_R::new(((self.bits >> 28) & 1) != 0)
}
#[inline(always)]
pub fn pll3rdy(&self) -> PLL3RDY_R {
PLL3RDY_R::new(((self.bits >> 29) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CR")
.field("hsion", &self.hsion())
.field("hsikeron", &self.hsikeron())
.field("hsirdy", &self.hsirdy())
.field("hsidiv", &self.hsidiv())
.field("hsidivf", &self.hsidivf())
.field("csion", &self.csion())
.field("csirdy", &self.csirdy())
.field("csikeron", &self.csikeron())
.field("hsi48on", &self.hsi48on())
.field("hsi48rdy", &self.hsi48rdy())
.field("d1ckrdy", &self.d1ckrdy())
.field("d2ckrdy", &self.d2ckrdy())
.field("hseon", &self.hseon())
.field("hserdy", &self.hserdy())
.field("hsebyp", &self.hsebyp())
.field("hsecsson", &self.hsecsson())
.field("pll1on", &self.pll1on())
.field("pll1rdy", &self.pll1rdy())
.field("pll2on", &self.pll2on())
.field("pll2rdy", &self.pll2rdy())
.field("pll3on", &self.pll3on())
.field("pll3rdy", &self.pll3rdy())
.finish()
}
}
impl W {
#[inline(always)]
pub fn hsion(&mut self) -> HSION_W<CRrs> {
HSION_W::new(self, 0)
}
#[inline(always)]
pub fn hsikeron(&mut self) -> HSIKERON_W<CRrs> {
HSIKERON_W::new(self, 1)
}
#[inline(always)]
pub fn hsirdy(&mut self) -> HSIRDY_W<CRrs> {
HSIRDY_W::new(self, 2)
}
#[inline(always)]
pub fn hsidiv(&mut self) -> HSIDIV_W<CRrs> {
HSIDIV_W::new(self, 3)
}
#[inline(always)]
pub fn hsidivf(&mut self) -> HSIDIVF_W<CRrs> {
HSIDIVF_W::new(self, 5)
}
#[inline(always)]
pub fn csion(&mut self) -> CSION_W<CRrs> {
CSION_W::new(self, 7)
}
#[inline(always)]
pub fn csirdy(&mut self) -> CSIRDY_W<CRrs> {
CSIRDY_W::new(self, 8)
}
#[inline(always)]
pub fn csikeron(&mut self) -> CSIKERON_W<CRrs> {
CSIKERON_W::new(self, 9)
}
#[inline(always)]
pub fn hsi48on(&mut self) -> HSI48ON_W<CRrs> {
HSI48ON_W::new(self, 12)
}
#[inline(always)]
pub fn hsi48rdy(&mut self) -> HSI48RDY_W<CRrs> {
HSI48RDY_W::new(self, 13)
}
#[inline(always)]
pub fn d1ckrdy(&mut self) -> D1CKRDY_W<CRrs> {
D1CKRDY_W::new(self, 14)
}
#[inline(always)]
pub fn d2ckrdy(&mut self) -> D2CKRDY_W<CRrs> {
D2CKRDY_W::new(self, 15)
}
#[inline(always)]
pub fn hseon(&mut self) -> HSEON_W<CRrs> {
HSEON_W::new(self, 16)
}
#[inline(always)]
pub fn hserdy(&mut self) -> HSERDY_W<CRrs> {
HSERDY_W::new(self, 17)
}
#[inline(always)]
pub fn hsebyp(&mut self) -> HSEBYP_W<CRrs> {
HSEBYP_W::new(self, 18)
}
#[inline(always)]
pub fn hsecsson(&mut self) -> HSECSSON_W<CRrs> {
HSECSSON_W::new(self, 19)
}
#[inline(always)]
pub fn pll1on(&mut self) -> PLL1ON_W<CRrs> {
PLL1ON_W::new(self, 24)
}
#[inline(always)]
pub fn pll1rdy(&mut self) -> PLL1RDY_W<CRrs> {
PLL1RDY_W::new(self, 25)
}
#[inline(always)]
pub fn pll2on(&mut self) -> PLL2ON_W<CRrs> {
PLL2ON_W::new(self, 26)
}
#[inline(always)]
pub fn pll2rdy(&mut self) -> PLL2RDY_W<CRrs> {
PLL2RDY_W::new(self, 27)
}
#[inline(always)]
pub fn pll3on(&mut self) -> PLL3ON_W<CRrs> {
PLL3ON_W::new(self, 28)
}
#[inline(always)]
pub fn pll3rdy(&mut self) -> PLL3RDY_W<CRrs> {
PLL3RDY_W::new(self, 29)
}
}
pub struct CRrs;
impl crate::RegisterSpec for CRrs {
type Ux = u32;
}
impl crate::Readable for CRrs {}
impl crate::Writable for CRrs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for CRrs {
const RESET_VALUE: u32 = 0x83;
}