imxrt1062-ccm 0.1.1

An imxrt1062-pac subcrate. See the imxrt1062-pac for more details. This crate is not maintained. Consider using the register access layer provided by the [imxrt-rs](https://github.com/imxrt-rs/imxrt-rs) project. Formerly part of the teensy4-rs project.
Documentation
#[doc = "Reader of register CBCDR"]
pub type R = crate::R<u32, super::CBCDR>;
#[doc = "Writer for register CBCDR"]
pub type W = crate::W<u32, super::CBCDR>;
#[doc = "Register CBCDR `reset()`'s with value 0x000a_8300"]
impl crate::ResetValue for super::CBCDR {
    type Type = u32;
    #[inline(always)]
    fn reset_value() -> Self::Type {
        0x000a_8300
    }
}
#[doc = "SEMC clock source select\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum SEMC_CLK_SEL_A {
    #[doc = "0: Periph_clk output will be used as SEMC clock root"]
    SEMC_CLK_SEL_0 = 0,
    #[doc = "1: SEMC alternative clock will be used as SEMC clock root"]
    SEMC_CLK_SEL_1 = 1,
}
impl From<SEMC_CLK_SEL_A> for bool {
    #[inline(always)]
    fn from(variant: SEMC_CLK_SEL_A) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Reader of field `SEMC_CLK_SEL`"]
pub type SEMC_CLK_SEL_R = crate::R<bool, SEMC_CLK_SEL_A>;
impl SEMC_CLK_SEL_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> SEMC_CLK_SEL_A {
        match self.bits {
            false => SEMC_CLK_SEL_A::SEMC_CLK_SEL_0,
            true => SEMC_CLK_SEL_A::SEMC_CLK_SEL_1,
        }
    }
    #[doc = "Checks if the value of the field is `SEMC_CLK_SEL_0`"]
    #[inline(always)]
    pub fn is_semc_clk_sel_0(&self) -> bool {
        *self == SEMC_CLK_SEL_A::SEMC_CLK_SEL_0
    }
    #[doc = "Checks if the value of the field is `SEMC_CLK_SEL_1`"]
    #[inline(always)]
    pub fn is_semc_clk_sel_1(&self) -> bool {
        *self == SEMC_CLK_SEL_A::SEMC_CLK_SEL_1
    }
}
#[doc = "Write proxy for field `SEMC_CLK_SEL`"]
pub struct SEMC_CLK_SEL_W<'a> {
    w: &'a mut W,
}
impl<'a> SEMC_CLK_SEL_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: SEMC_CLK_SEL_A) -> &'a mut W {
        {
            self.bit(variant.into())
        }
    }
    #[doc = "Periph_clk output will be used as SEMC clock root"]
    #[inline(always)]
    pub fn semc_clk_sel_0(self) -> &'a mut W {
        self.variant(SEMC_CLK_SEL_A::SEMC_CLK_SEL_0)
    }
    #[doc = "SEMC alternative clock will be used as SEMC clock root"]
    #[inline(always)]
    pub fn semc_clk_sel_1(self) -> &'a mut W {
        self.variant(SEMC_CLK_SEL_A::SEMC_CLK_SEL_1)
    }
    #[doc = r"Sets the field bit"]
    #[inline(always)]
    pub fn set_bit(self) -> &'a mut W {
        self.bit(true)
    }
    #[doc = r"Clears the field bit"]
    #[inline(always)]
    pub fn clear_bit(self) -> &'a mut W {
        self.bit(false)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bit(self, value: bool) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x01 << 6)) | (((value as u32) & 0x01) << 6);
        self.w
    }
}
#[doc = "SEMC alternative clock select\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum SEMC_ALT_CLK_SEL_A {
    #[doc = "0: PLL2 PFD2 will be selected as alternative clock for SEMC root clock"]
    SEMC_ALT_CLK_SEL_0 = 0,
    #[doc = "1: PLL3 PFD1 will be selected as alternative clock for SEMC root clock"]
    SEMC_ALT_CLK_SEL_1 = 1,
}
impl From<SEMC_ALT_CLK_SEL_A> for bool {
    #[inline(always)]
    fn from(variant: SEMC_ALT_CLK_SEL_A) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Reader of field `SEMC_ALT_CLK_SEL`"]
pub type SEMC_ALT_CLK_SEL_R = crate::R<bool, SEMC_ALT_CLK_SEL_A>;
impl SEMC_ALT_CLK_SEL_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> SEMC_ALT_CLK_SEL_A {
        match self.bits {
            false => SEMC_ALT_CLK_SEL_A::SEMC_ALT_CLK_SEL_0,
            true => SEMC_ALT_CLK_SEL_A::SEMC_ALT_CLK_SEL_1,
        }
    }
    #[doc = "Checks if the value of the field is `SEMC_ALT_CLK_SEL_0`"]
    #[inline(always)]
    pub fn is_semc_alt_clk_sel_0(&self) -> bool {
        *self == SEMC_ALT_CLK_SEL_A::SEMC_ALT_CLK_SEL_0
    }
    #[doc = "Checks if the value of the field is `SEMC_ALT_CLK_SEL_1`"]
    #[inline(always)]
    pub fn is_semc_alt_clk_sel_1(&self) -> bool {
        *self == SEMC_ALT_CLK_SEL_A::SEMC_ALT_CLK_SEL_1
    }
}
#[doc = "Write proxy for field `SEMC_ALT_CLK_SEL`"]
pub struct SEMC_ALT_CLK_SEL_W<'a> {
    w: &'a mut W,
}
impl<'a> SEMC_ALT_CLK_SEL_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: SEMC_ALT_CLK_SEL_A) -> &'a mut W {
        {
            self.bit(variant.into())
        }
    }
    #[doc = "PLL2 PFD2 will be selected as alternative clock for SEMC root clock"]
    #[inline(always)]
    pub fn semc_alt_clk_sel_0(self) -> &'a mut W {
        self.variant(SEMC_ALT_CLK_SEL_A::SEMC_ALT_CLK_SEL_0)
    }
    #[doc = "PLL3 PFD1 will be selected as alternative clock for SEMC root clock"]
    #[inline(always)]
    pub fn semc_alt_clk_sel_1(self) -> &'a mut W {
        self.variant(SEMC_ALT_CLK_SEL_A::SEMC_ALT_CLK_SEL_1)
    }
    #[doc = r"Sets the field bit"]
    #[inline(always)]
    pub fn set_bit(self) -> &'a mut W {
        self.bit(true)
    }
    #[doc = r"Clears the field bit"]
    #[inline(always)]
    pub fn clear_bit(self) -> &'a mut W {
        self.bit(false)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bit(self, value: bool) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x01 << 7)) | (((value as u32) & 0x01) << 7);
        self.w
    }
}
#[doc = "Divider for ipg podf.\n\nValue on reset: 3"]
#[derive(Clone, Copy, Debug, PartialEq)]
#[repr(u8)]
pub enum IPG_PODF_A {
    #[doc = "0: divide by 1"]
    IPG_PODF_0 = 0,
    #[doc = "1: divide by 2"]
    IPG_PODF_1 = 1,
    #[doc = "2: divide by 3"]
    IPG_PODF_2 = 2,
    #[doc = "3: divide by 4"]
    IPG_PODF_3 = 3,
}
impl From<IPG_PODF_A> for u8 {
    #[inline(always)]
    fn from(variant: IPG_PODF_A) -> Self {
        variant as _
    }
}
#[doc = "Reader of field `IPG_PODF`"]
pub type IPG_PODF_R = crate::R<u8, IPG_PODF_A>;
impl IPG_PODF_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> IPG_PODF_A {
        match self.bits {
            0 => IPG_PODF_A::IPG_PODF_0,
            1 => IPG_PODF_A::IPG_PODF_1,
            2 => IPG_PODF_A::IPG_PODF_2,
            3 => IPG_PODF_A::IPG_PODF_3,
            _ => unreachable!(),
        }
    }
    #[doc = "Checks if the value of the field is `IPG_PODF_0`"]
    #[inline(always)]
    pub fn is_ipg_podf_0(&self) -> bool {
        *self == IPG_PODF_A::IPG_PODF_0
    }
    #[doc = "Checks if the value of the field is `IPG_PODF_1`"]
    #[inline(always)]
    pub fn is_ipg_podf_1(&self) -> bool {
        *self == IPG_PODF_A::IPG_PODF_1
    }
    #[doc = "Checks if the value of the field is `IPG_PODF_2`"]
    #[inline(always)]
    pub fn is_ipg_podf_2(&self) -> bool {
        *self == IPG_PODF_A::IPG_PODF_2
    }
    #[doc = "Checks if the value of the field is `IPG_PODF_3`"]
    #[inline(always)]
    pub fn is_ipg_podf_3(&self) -> bool {
        *self == IPG_PODF_A::IPG_PODF_3
    }
}
#[doc = "Write proxy for field `IPG_PODF`"]
pub struct IPG_PODF_W<'a> {
    w: &'a mut W,
}
impl<'a> IPG_PODF_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: IPG_PODF_A) -> &'a mut W {
        {
            self.bits(variant.into())
        }
    }
    #[doc = "divide by 1"]
    #[inline(always)]
    pub fn ipg_podf_0(self) -> &'a mut W {
        self.variant(IPG_PODF_A::IPG_PODF_0)
    }
    #[doc = "divide by 2"]
    #[inline(always)]
    pub fn ipg_podf_1(self) -> &'a mut W {
        self.variant(IPG_PODF_A::IPG_PODF_1)
    }
    #[doc = "divide by 3"]
    #[inline(always)]
    pub fn ipg_podf_2(self) -> &'a mut W {
        self.variant(IPG_PODF_A::IPG_PODF_2)
    }
    #[doc = "divide by 4"]
    #[inline(always)]
    pub fn ipg_podf_3(self) -> &'a mut W {
        self.variant(IPG_PODF_A::IPG_PODF_3)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bits(self, value: u8) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x03 << 8)) | (((value as u32) & 0x03) << 8);
        self.w
    }
}
#[doc = "Divider for AHB PODF\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
#[repr(u8)]
pub enum AHB_PODF_A {
    #[doc = "0: divide by 1"]
    AHB_PODF_0 = 0,
    #[doc = "1: divide by 2"]
    AHB_PODF_1 = 1,
    #[doc = "2: divide by 3"]
    AHB_PODF_2 = 2,
    #[doc = "3: divide by 4"]
    AHB_PODF_3 = 3,
    #[doc = "4: divide by 5"]
    AHB_PODF_4 = 4,
    #[doc = "5: divide by 6"]
    AHB_PODF_5 = 5,
    #[doc = "6: divide by 7"]
    AHB_PODF_6 = 6,
    #[doc = "7: divide by 8"]
    AHB_PODF_7 = 7,
}
impl From<AHB_PODF_A> for u8 {
    #[inline(always)]
    fn from(variant: AHB_PODF_A) -> Self {
        variant as _
    }
}
#[doc = "Reader of field `AHB_PODF`"]
pub type AHB_PODF_R = crate::R<u8, AHB_PODF_A>;
impl AHB_PODF_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> AHB_PODF_A {
        match self.bits {
            0 => AHB_PODF_A::AHB_PODF_0,
            1 => AHB_PODF_A::AHB_PODF_1,
            2 => AHB_PODF_A::AHB_PODF_2,
            3 => AHB_PODF_A::AHB_PODF_3,
            4 => AHB_PODF_A::AHB_PODF_4,
            5 => AHB_PODF_A::AHB_PODF_5,
            6 => AHB_PODF_A::AHB_PODF_6,
            7 => AHB_PODF_A::AHB_PODF_7,
            _ => unreachable!(),
        }
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_0`"]
    #[inline(always)]
    pub fn is_ahb_podf_0(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_0
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_1`"]
    #[inline(always)]
    pub fn is_ahb_podf_1(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_1
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_2`"]
    #[inline(always)]
    pub fn is_ahb_podf_2(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_2
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_3`"]
    #[inline(always)]
    pub fn is_ahb_podf_3(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_3
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_4`"]
    #[inline(always)]
    pub fn is_ahb_podf_4(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_4
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_5`"]
    #[inline(always)]
    pub fn is_ahb_podf_5(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_5
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_6`"]
    #[inline(always)]
    pub fn is_ahb_podf_6(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_6
    }
    #[doc = "Checks if the value of the field is `AHB_PODF_7`"]
    #[inline(always)]
    pub fn is_ahb_podf_7(&self) -> bool {
        *self == AHB_PODF_A::AHB_PODF_7
    }
}
#[doc = "Write proxy for field `AHB_PODF`"]
pub struct AHB_PODF_W<'a> {
    w: &'a mut W,
}
impl<'a> AHB_PODF_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: AHB_PODF_A) -> &'a mut W {
        {
            self.bits(variant.into())
        }
    }
    #[doc = "divide by 1"]
    #[inline(always)]
    pub fn ahb_podf_0(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_0)
    }
    #[doc = "divide by 2"]
    #[inline(always)]
    pub fn ahb_podf_1(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_1)
    }
    #[doc = "divide by 3"]
    #[inline(always)]
    pub fn ahb_podf_2(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_2)
    }
    #[doc = "divide by 4"]
    #[inline(always)]
    pub fn ahb_podf_3(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_3)
    }
    #[doc = "divide by 5"]
    #[inline(always)]
    pub fn ahb_podf_4(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_4)
    }
    #[doc = "divide by 6"]
    #[inline(always)]
    pub fn ahb_podf_5(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_5)
    }
    #[doc = "divide by 7"]
    #[inline(always)]
    pub fn ahb_podf_6(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_6)
    }
    #[doc = "divide by 8"]
    #[inline(always)]
    pub fn ahb_podf_7(self) -> &'a mut W {
        self.variant(AHB_PODF_A::AHB_PODF_7)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bits(self, value: u8) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x07 << 10)) | (((value as u32) & 0x07) << 10);
        self.w
    }
}
#[doc = "Post divider for SEMC clock\n\nValue on reset: 2"]
#[derive(Clone, Copy, Debug, PartialEq)]
#[repr(u8)]
pub enum SEMC_PODF_A {
    #[doc = "0: divide by 1"]
    SEMC_PODF_0 = 0,
    #[doc = "1: divide by 2"]
    SEMC_PODF_1 = 1,
    #[doc = "2: divide by 3"]
    SEMC_PODF_2 = 2,
    #[doc = "3: divide by 4"]
    SEMC_PODF_3 = 3,
    #[doc = "4: divide by 5"]
    SEMC_PODF_4 = 4,
    #[doc = "5: divide by 6"]
    SEMC_PODF_5 = 5,
    #[doc = "6: divide by 7"]
    SEMC_PODF_6 = 6,
    #[doc = "7: divide by 8"]
    SEMC_PODF_7 = 7,
}
impl From<SEMC_PODF_A> for u8 {
    #[inline(always)]
    fn from(variant: SEMC_PODF_A) -> Self {
        variant as _
    }
}
#[doc = "Reader of field `SEMC_PODF`"]
pub type SEMC_PODF_R = crate::R<u8, SEMC_PODF_A>;
impl SEMC_PODF_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> SEMC_PODF_A {
        match self.bits {
            0 => SEMC_PODF_A::SEMC_PODF_0,
            1 => SEMC_PODF_A::SEMC_PODF_1,
            2 => SEMC_PODF_A::SEMC_PODF_2,
            3 => SEMC_PODF_A::SEMC_PODF_3,
            4 => SEMC_PODF_A::SEMC_PODF_4,
            5 => SEMC_PODF_A::SEMC_PODF_5,
            6 => SEMC_PODF_A::SEMC_PODF_6,
            7 => SEMC_PODF_A::SEMC_PODF_7,
            _ => unreachable!(),
        }
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_0`"]
    #[inline(always)]
    pub fn is_semc_podf_0(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_0
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_1`"]
    #[inline(always)]
    pub fn is_semc_podf_1(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_1
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_2`"]
    #[inline(always)]
    pub fn is_semc_podf_2(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_2
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_3`"]
    #[inline(always)]
    pub fn is_semc_podf_3(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_3
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_4`"]
    #[inline(always)]
    pub fn is_semc_podf_4(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_4
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_5`"]
    #[inline(always)]
    pub fn is_semc_podf_5(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_5
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_6`"]
    #[inline(always)]
    pub fn is_semc_podf_6(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_6
    }
    #[doc = "Checks if the value of the field is `SEMC_PODF_7`"]
    #[inline(always)]
    pub fn is_semc_podf_7(&self) -> bool {
        *self == SEMC_PODF_A::SEMC_PODF_7
    }
}
#[doc = "Write proxy for field `SEMC_PODF`"]
pub struct SEMC_PODF_W<'a> {
    w: &'a mut W,
}
impl<'a> SEMC_PODF_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: SEMC_PODF_A) -> &'a mut W {
        {
            self.bits(variant.into())
        }
    }
    #[doc = "divide by 1"]
    #[inline(always)]
    pub fn semc_podf_0(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_0)
    }
    #[doc = "divide by 2"]
    #[inline(always)]
    pub fn semc_podf_1(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_1)
    }
    #[doc = "divide by 3"]
    #[inline(always)]
    pub fn semc_podf_2(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_2)
    }
    #[doc = "divide by 4"]
    #[inline(always)]
    pub fn semc_podf_3(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_3)
    }
    #[doc = "divide by 5"]
    #[inline(always)]
    pub fn semc_podf_4(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_4)
    }
    #[doc = "divide by 6"]
    #[inline(always)]
    pub fn semc_podf_5(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_5)
    }
    #[doc = "divide by 7"]
    #[inline(always)]
    pub fn semc_podf_6(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_6)
    }
    #[doc = "divide by 8"]
    #[inline(always)]
    pub fn semc_podf_7(self) -> &'a mut W {
        self.variant(SEMC_PODF_A::SEMC_PODF_7)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bits(self, value: u8) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x07 << 16)) | (((value as u32) & 0x07) << 16);
        self.w
    }
}
#[doc = "Selector for peripheral main clock\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum PERIPH_CLK_SEL_A {
    #[doc = "0: derive clock from pre_periph_clk_sel"]
    PERIPH_CLK_SEL_0 = 0,
    #[doc = "1: derive clock from periph_clk2_clk_divided"]
    PERIPH_CLK_SEL_1 = 1,
}
impl From<PERIPH_CLK_SEL_A> for bool {
    #[inline(always)]
    fn from(variant: PERIPH_CLK_SEL_A) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Reader of field `PERIPH_CLK_SEL`"]
pub type PERIPH_CLK_SEL_R = crate::R<bool, PERIPH_CLK_SEL_A>;
impl PERIPH_CLK_SEL_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> PERIPH_CLK_SEL_A {
        match self.bits {
            false => PERIPH_CLK_SEL_A::PERIPH_CLK_SEL_0,
            true => PERIPH_CLK_SEL_A::PERIPH_CLK_SEL_1,
        }
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK_SEL_0`"]
    #[inline(always)]
    pub fn is_periph_clk_sel_0(&self) -> bool {
        *self == PERIPH_CLK_SEL_A::PERIPH_CLK_SEL_0
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK_SEL_1`"]
    #[inline(always)]
    pub fn is_periph_clk_sel_1(&self) -> bool {
        *self == PERIPH_CLK_SEL_A::PERIPH_CLK_SEL_1
    }
}
#[doc = "Write proxy for field `PERIPH_CLK_SEL`"]
pub struct PERIPH_CLK_SEL_W<'a> {
    w: &'a mut W,
}
impl<'a> PERIPH_CLK_SEL_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: PERIPH_CLK_SEL_A) -> &'a mut W {
        {
            self.bit(variant.into())
        }
    }
    #[doc = "derive clock from pre_periph_clk_sel"]
    #[inline(always)]
    pub fn periph_clk_sel_0(self) -> &'a mut W {
        self.variant(PERIPH_CLK_SEL_A::PERIPH_CLK_SEL_0)
    }
    #[doc = "derive clock from periph_clk2_clk_divided"]
    #[inline(always)]
    pub fn periph_clk_sel_1(self) -> &'a mut W {
        self.variant(PERIPH_CLK_SEL_A::PERIPH_CLK_SEL_1)
    }
    #[doc = r"Sets the field bit"]
    #[inline(always)]
    pub fn set_bit(self) -> &'a mut W {
        self.bit(true)
    }
    #[doc = r"Clears the field bit"]
    #[inline(always)]
    pub fn clear_bit(self) -> &'a mut W {
        self.bit(false)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bit(self, value: bool) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x01 << 25)) | (((value as u32) & 0x01) << 25);
        self.w
    }
}
#[doc = "Divider for periph_clk2_podf.\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
#[repr(u8)]
pub enum PERIPH_CLK2_PODF_A {
    #[doc = "0: divide by 1"]
    PERIPH_CLK2_PODF_0 = 0,
    #[doc = "1: divide by 2"]
    PERIPH_CLK2_PODF_1 = 1,
    #[doc = "2: divide by 3"]
    PERIPH_CLK2_PODF_2 = 2,
    #[doc = "3: divide by 4"]
    PERIPH_CLK2_PODF_3 = 3,
    #[doc = "4: divide by 5"]
    PERIPH_CLK2_PODF_4 = 4,
    #[doc = "5: divide by 6"]
    PERIPH_CLK2_PODF_5 = 5,
    #[doc = "6: divide by 7"]
    PERIPH_CLK2_PODF_6 = 6,
    #[doc = "7: divide by 8"]
    PERIPH_CLK2_PODF_7 = 7,
}
impl From<PERIPH_CLK2_PODF_A> for u8 {
    #[inline(always)]
    fn from(variant: PERIPH_CLK2_PODF_A) -> Self {
        variant as _
    }
}
#[doc = "Reader of field `PERIPH_CLK2_PODF`"]
pub type PERIPH_CLK2_PODF_R = crate::R<u8, PERIPH_CLK2_PODF_A>;
impl PERIPH_CLK2_PODF_R {
    #[doc = r"Get enumerated values variant"]
    #[inline(always)]
    pub fn variant(&self) -> PERIPH_CLK2_PODF_A {
        match self.bits {
            0 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_0,
            1 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_1,
            2 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_2,
            3 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_3,
            4 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_4,
            5 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_5,
            6 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_6,
            7 => PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_7,
            _ => unreachable!(),
        }
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_0`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_0(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_0
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_1`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_1(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_1
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_2`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_2(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_2
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_3`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_3(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_3
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_4`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_4(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_4
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_5`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_5(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_5
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_6`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_6(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_6
    }
    #[doc = "Checks if the value of the field is `PERIPH_CLK2_PODF_7`"]
    #[inline(always)]
    pub fn is_periph_clk2_podf_7(&self) -> bool {
        *self == PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_7
    }
}
#[doc = "Write proxy for field `PERIPH_CLK2_PODF`"]
pub struct PERIPH_CLK2_PODF_W<'a> {
    w: &'a mut W,
}
impl<'a> PERIPH_CLK2_PODF_W<'a> {
    #[doc = r"Writes `variant` to the field"]
    #[inline(always)]
    pub fn variant(self, variant: PERIPH_CLK2_PODF_A) -> &'a mut W {
        {
            self.bits(variant.into())
        }
    }
    #[doc = "divide by 1"]
    #[inline(always)]
    pub fn periph_clk2_podf_0(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_0)
    }
    #[doc = "divide by 2"]
    #[inline(always)]
    pub fn periph_clk2_podf_1(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_1)
    }
    #[doc = "divide by 3"]
    #[inline(always)]
    pub fn periph_clk2_podf_2(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_2)
    }
    #[doc = "divide by 4"]
    #[inline(always)]
    pub fn periph_clk2_podf_3(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_3)
    }
    #[doc = "divide by 5"]
    #[inline(always)]
    pub fn periph_clk2_podf_4(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_4)
    }
    #[doc = "divide by 6"]
    #[inline(always)]
    pub fn periph_clk2_podf_5(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_5)
    }
    #[doc = "divide by 7"]
    #[inline(always)]
    pub fn periph_clk2_podf_6(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_6)
    }
    #[doc = "divide by 8"]
    #[inline(always)]
    pub fn periph_clk2_podf_7(self) -> &'a mut W {
        self.variant(PERIPH_CLK2_PODF_A::PERIPH_CLK2_PODF_7)
    }
    #[doc = r"Writes raw bits to the field"]
    #[inline(always)]
    pub fn bits(self, value: u8) -> &'a mut W {
        self.w.bits = (self.w.bits & !(0x07 << 27)) | (((value as u32) & 0x07) << 27);
        self.w
    }
}
impl R {
    #[doc = "Bit 6 - SEMC clock source select"]
    #[inline(always)]
    pub fn semc_clk_sel(&self) -> SEMC_CLK_SEL_R {
        SEMC_CLK_SEL_R::new(((self.bits >> 6) & 0x01) != 0)
    }
    #[doc = "Bit 7 - SEMC alternative clock select"]
    #[inline(always)]
    pub fn semc_alt_clk_sel(&self) -> SEMC_ALT_CLK_SEL_R {
        SEMC_ALT_CLK_SEL_R::new(((self.bits >> 7) & 0x01) != 0)
    }
    #[doc = "Bits 8:9 - Divider for ipg podf."]
    #[inline(always)]
    pub fn ipg_podf(&self) -> IPG_PODF_R {
        IPG_PODF_R::new(((self.bits >> 8) & 0x03) as u8)
    }
    #[doc = "Bits 10:12 - Divider for AHB PODF"]
    #[inline(always)]
    pub fn ahb_podf(&self) -> AHB_PODF_R {
        AHB_PODF_R::new(((self.bits >> 10) & 0x07) as u8)
    }
    #[doc = "Bits 16:18 - Post divider for SEMC clock"]
    #[inline(always)]
    pub fn semc_podf(&self) -> SEMC_PODF_R {
        SEMC_PODF_R::new(((self.bits >> 16) & 0x07) as u8)
    }
    #[doc = "Bit 25 - Selector for peripheral main clock"]
    #[inline(always)]
    pub fn periph_clk_sel(&self) -> PERIPH_CLK_SEL_R {
        PERIPH_CLK_SEL_R::new(((self.bits >> 25) & 0x01) != 0)
    }
    #[doc = "Bits 27:29 - Divider for periph_clk2_podf."]
    #[inline(always)]
    pub fn periph_clk2_podf(&self) -> PERIPH_CLK2_PODF_R {
        PERIPH_CLK2_PODF_R::new(((self.bits >> 27) & 0x07) as u8)
    }
}
impl W {
    #[doc = "Bit 6 - SEMC clock source select"]
    #[inline(always)]
    pub fn semc_clk_sel(&mut self) -> SEMC_CLK_SEL_W {
        SEMC_CLK_SEL_W { w: self }
    }
    #[doc = "Bit 7 - SEMC alternative clock select"]
    #[inline(always)]
    pub fn semc_alt_clk_sel(&mut self) -> SEMC_ALT_CLK_SEL_W {
        SEMC_ALT_CLK_SEL_W { w: self }
    }
    #[doc = "Bits 8:9 - Divider for ipg podf."]
    #[inline(always)]
    pub fn ipg_podf(&mut self) -> IPG_PODF_W {
        IPG_PODF_W { w: self }
    }
    #[doc = "Bits 10:12 - Divider for AHB PODF"]
    #[inline(always)]
    pub fn ahb_podf(&mut self) -> AHB_PODF_W {
        AHB_PODF_W { w: self }
    }
    #[doc = "Bits 16:18 - Post divider for SEMC clock"]
    #[inline(always)]
    pub fn semc_podf(&mut self) -> SEMC_PODF_W {
        SEMC_PODF_W { w: self }
    }
    #[doc = "Bit 25 - Selector for peripheral main clock"]
    #[inline(always)]
    pub fn periph_clk_sel(&mut self) -> PERIPH_CLK_SEL_W {
        PERIPH_CLK_SEL_W { w: self }
    }
    #[doc = "Bits 27:29 - Divider for periph_clk2_podf."]
    #[inline(always)]
    pub fn periph_clk2_podf(&mut self) -> PERIPH_CLK2_PODF_W {
        PERIPH_CLK2_PODF_W { w: self }
    }
}