#![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"Port Output Enable Module for GPT"]
unsafe impl ::core::marker::Send for super::Poeg {}
unsafe impl ::core::marker::Sync for super::Poeg {}
impl super::Poeg {
    #[allow(unused)]
    #[inline(always)]
    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
        self.ptr
    }
    #[doc = "POEG Group A Setting Register"]
    #[inline(always)]
    pub const fn poegga(
        &self,
    ) -> &'static crate::common::Reg<self::Poegga_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Poegga_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(0usize),
            )
        }
    }
    #[doc = "POEG Group B Setting Register"]
    #[inline(always)]
    pub const fn poeggb(
        &self,
    ) -> &'static crate::common::Reg<self::Poeggb_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Poeggb_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(256usize),
            )
        }
    }
    #[doc = "POEG Group C Setting Register"]
    #[inline(always)]
    pub const fn poeggc(
        &self,
    ) -> &'static crate::common::Reg<self::Poeggc_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Poeggc_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(512usize),
            )
        }
    }
    #[doc = "POEG Group D Setting Register"]
    #[inline(always)]
    pub const fn poeggd(
        &self,
    ) -> &'static crate::common::Reg<self::Poeggd_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Poeggd_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(768usize),
            )
        }
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Poegga_SPEC;
impl crate::sealed::RegSpec for Poegga_SPEC {
    type DataType = u32;
}
#[doc = "POEG Group A Setting Register"]
pub type Poegga = crate::RegValueT<Poegga_SPEC>;
impl Poegga {
    #[doc = "Port Input Detection Flag"]
    #[inline(always)]
    pub fn pidf(
        self,
    ) -> crate::common::RegisterField<
        0,
        0x1,
        1,
        0,
        poegga::Pidf,
        poegga::Pidf,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            0,
            0x1,
            1,
            0,
            poegga::Pidf,
            poegga::Pidf,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Detection Flag for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn iocf(
        self,
    ) -> crate::common::RegisterField<
        1,
        0x1,
        1,
        0,
        poegga::Iocf,
        poegga::Iocf,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            1,
            0x1,
            1,
            0,
            poegga::Iocf,
            poegga::Iocf,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Flag"]
    #[inline(always)]
    pub fn ostpf(
        self,
    ) -> crate::common::RegisterField<
        2,
        0x1,
        1,
        0,
        poegga::Ostpf,
        poegga::Ostpf,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            2,
            0x1,
            1,
            0,
            poegga::Ostpf,
            poegga::Ostpf,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Software Stop Flag"]
    #[inline(always)]
    pub fn ssf(
        self,
    ) -> crate::common::RegisterField<
        3,
        0x1,
        1,
        0,
        poegga::Ssf,
        poegga::Ssf,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            3,
            0x1,
            1,
            0,
            poegga::Ssf,
            poegga::Ssf,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Port Input Detection Enable"]
    #[inline(always)]
    pub fn pide(
        self,
    ) -> crate::common::RegisterField<
        4,
        0x1,
        1,
        0,
        poegga::Pide,
        poegga::Pide,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            4,
            0x1,
            1,
            0,
            poegga::Pide,
            poegga::Pide,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Enable for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn ioce(
        self,
    ) -> crate::common::RegisterField<
        5,
        0x1,
        1,
        0,
        poegga::Ioce,
        poegga::Ioce,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            5,
            0x1,
            1,
            0,
            poegga::Ioce,
            poegga::Ioce,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Enable"]
    #[inline(always)]
    pub fn ostpe(
        self,
    ) -> crate::common::RegisterField<
        6,
        0x1,
        1,
        0,
        poegga::Ostpe,
        poegga::Ostpe,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            6,
            0x1,
            1,
            0,
            poegga::Ostpe,
            poegga::Ostpe,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre0(
        self,
    ) -> crate::common::RegisterField<
        8,
        0x1,
        1,
        0,
        poegga::Cdre0,
        poegga::Cdre0,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            8,
            0x1,
            1,
            0,
            poegga::Cdre0,
            poegga::Cdre0,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre1(
        self,
    ) -> crate::common::RegisterField<
        9,
        0x1,
        1,
        0,
        poegga::Cdre1,
        poegga::Cdre1,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            9,
            0x1,
            1,
            0,
            poegga::Cdre1,
            poegga::Cdre1,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre2(
        self,
    ) -> crate::common::RegisterField<
        10,
        0x1,
        1,
        0,
        poegga::Cdre2,
        poegga::Cdre2,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            10,
            0x1,
            1,
            0,
            poegga::Cdre2,
            poegga::Cdre2,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Status Flag"]
    #[inline(always)]
    pub fn st(
        self,
    ) -> crate::common::RegisterField<
        16,
        0x1,
        1,
        0,
        poegga::St,
        poegga::St,
        Poegga_SPEC,
        crate::common::R,
    > {
        crate::common::RegisterField::<
            16,
            0x1,
            1,
            0,
            poegga::St,
            poegga::St,
            Poegga_SPEC,
            crate::common::R,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Reverse"]
    #[inline(always)]
    pub fn inv(
        self,
    ) -> crate::common::RegisterField<
        28,
        0x1,
        1,
        0,
        poegga::Inv,
        poegga::Inv,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            28,
            0x1,
            1,
            0,
            poegga::Inv,
            poegga::Inv,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Enable"]
    #[inline(always)]
    pub fn nfen(
        self,
    ) -> crate::common::RegisterField<
        29,
        0x1,
        1,
        0,
        poegga::Nfen,
        poegga::Nfen,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            29,
            0x1,
            1,
            0,
            poegga::Nfen,
            poegga::Nfen,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Clock Select"]
    #[inline(always)]
    pub fn nfcs(
        self,
    ) -> crate::common::RegisterField<
        30,
        0x3,
        1,
        0,
        poegga::Nfcs,
        poegga::Nfcs,
        Poegga_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            30,
            0x3,
            1,
            0,
            poegga::Nfcs,
            poegga::Nfcs,
            Poegga_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Poegga {
    #[inline(always)]
    fn default() -> Poegga {
        <crate::RegValueT<Poegga_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod poegga {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pidf_SPEC;
    pub type Pidf = crate::EnumBitfieldStruct<u8, Pidf_SPEC>;
    impl Pidf {
        #[doc = "No output-disable request from the GTETRGn pin occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from the GTETRGn pin occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Iocf_SPEC;
    pub type Iocf = crate::EnumBitfieldStruct<u8, Iocf_SPEC>;
    impl Iocf {
        #[doc = "No output-disable request from GPT or comparator interrupt occurred."]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from GPT or comparator interrupt occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpf_SPEC;
    pub type Ostpf = crate::EnumBitfieldStruct<u8, Ostpf_SPEC>;
    impl Ostpf {
        #[doc = "No output-disable request from oscillation stop detection occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from oscillation stop detection occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ssf_SPEC;
    pub type Ssf = crate::EnumBitfieldStruct<u8, Ssf_SPEC>;
    impl Ssf {
        #[doc = "No output-disable request from software occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from software occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pide_SPEC;
    pub type Pide = crate::EnumBitfieldStruct<u8, Pide_SPEC>;
    impl Pide {
        #[doc = "Disable output-disable requests from the GTETRGn pins"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from the GTETRGn pins"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ioce_SPEC;
    pub type Ioce = crate::EnumBitfieldStruct<u8, Ioce_SPEC>;
    impl Ioce {
        #[doc = "Disable output-disable requests from GPT"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from GPT"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpe_SPEC;
    pub type Ostpe = crate::EnumBitfieldStruct<u8, Ostpe_SPEC>;
    impl Ostpe {
        #[doc = "Disable output-disable requests from oscillation stop detection"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from oscillation stop detection"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre0_SPEC;
    pub type Cdre0 = crate::EnumBitfieldStruct<u8, Cdre0_SPEC>;
    impl Cdre0 {
        #[doc = "Comparator 0 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 0 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre1_SPEC;
    pub type Cdre1 = crate::EnumBitfieldStruct<u8, Cdre1_SPEC>;
    impl Cdre1 {
        #[doc = "Comparator 1 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 1 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre2_SPEC;
    pub type Cdre2 = crate::EnumBitfieldStruct<u8, Cdre2_SPEC>;
    impl Cdre2 {
        #[doc = "Comparator 2 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 2 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct St_SPEC;
    pub type St = crate::EnumBitfieldStruct<u8, St_SPEC>;
    impl St {
        #[doc = "GTETRGn input after filtering was 0"]
        pub const _0: Self = Self::new(0);
        #[doc = "GTETRGn input after filtering was 1"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Inv_SPEC;
    pub type Inv = crate::EnumBitfieldStruct<u8, Inv_SPEC>;
    impl Inv {
        #[doc = "Input GTETRGn as-is"]
        pub const _0: Self = Self::new(0);
        #[doc = "Input GTETRGn in reverse"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfen_SPEC;
    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
    impl Nfen {
        #[doc = "Disable noise filtering"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable noise filtering"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfcs_SPEC;
    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
    impl Nfcs {
        #[doc = "Sample GTETRGn pin input level three times every PCLKB"]
        pub const _00: Self = Self::new(0);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/8"]
        pub const _01: Self = Self::new(1);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/32"]
        pub const _10: Self = Self::new(2);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/128"]
        pub const _11: Self = Self::new(3);
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Poeggb_SPEC;
impl crate::sealed::RegSpec for Poeggb_SPEC {
    type DataType = u32;
}
#[doc = "POEG Group B Setting Register"]
pub type Poeggb = crate::RegValueT<Poeggb_SPEC>;
impl Poeggb {
    #[doc = "Port Input Detection Flag"]
    #[inline(always)]
    pub fn pidf(
        self,
    ) -> crate::common::RegisterField<
        0,
        0x1,
        1,
        0,
        poeggb::Pidf,
        poeggb::Pidf,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            0,
            0x1,
            1,
            0,
            poeggb::Pidf,
            poeggb::Pidf,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Detection Flag for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn iocf(
        self,
    ) -> crate::common::RegisterField<
        1,
        0x1,
        1,
        0,
        poeggb::Iocf,
        poeggb::Iocf,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            1,
            0x1,
            1,
            0,
            poeggb::Iocf,
            poeggb::Iocf,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Flag"]
    #[inline(always)]
    pub fn ostpf(
        self,
    ) -> crate::common::RegisterField<
        2,
        0x1,
        1,
        0,
        poeggb::Ostpf,
        poeggb::Ostpf,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            2,
            0x1,
            1,
            0,
            poeggb::Ostpf,
            poeggb::Ostpf,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Software Stop Flag"]
    #[inline(always)]
    pub fn ssf(
        self,
    ) -> crate::common::RegisterField<
        3,
        0x1,
        1,
        0,
        poeggb::Ssf,
        poeggb::Ssf,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            3,
            0x1,
            1,
            0,
            poeggb::Ssf,
            poeggb::Ssf,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Port Input Detection Enable"]
    #[inline(always)]
    pub fn pide(
        self,
    ) -> crate::common::RegisterField<
        4,
        0x1,
        1,
        0,
        poeggb::Pide,
        poeggb::Pide,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            4,
            0x1,
            1,
            0,
            poeggb::Pide,
            poeggb::Pide,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Enable for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn ioce(
        self,
    ) -> crate::common::RegisterField<
        5,
        0x1,
        1,
        0,
        poeggb::Ioce,
        poeggb::Ioce,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            5,
            0x1,
            1,
            0,
            poeggb::Ioce,
            poeggb::Ioce,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Enable"]
    #[inline(always)]
    pub fn ostpe(
        self,
    ) -> crate::common::RegisterField<
        6,
        0x1,
        1,
        0,
        poeggb::Ostpe,
        poeggb::Ostpe,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            6,
            0x1,
            1,
            0,
            poeggb::Ostpe,
            poeggb::Ostpe,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre0(
        self,
    ) -> crate::common::RegisterField<
        8,
        0x1,
        1,
        0,
        poeggb::Cdre0,
        poeggb::Cdre0,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            8,
            0x1,
            1,
            0,
            poeggb::Cdre0,
            poeggb::Cdre0,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre1(
        self,
    ) -> crate::common::RegisterField<
        9,
        0x1,
        1,
        0,
        poeggb::Cdre1,
        poeggb::Cdre1,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            9,
            0x1,
            1,
            0,
            poeggb::Cdre1,
            poeggb::Cdre1,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre2(
        self,
    ) -> crate::common::RegisterField<
        10,
        0x1,
        1,
        0,
        poeggb::Cdre2,
        poeggb::Cdre2,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            10,
            0x1,
            1,
            0,
            poeggb::Cdre2,
            poeggb::Cdre2,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Status Flag"]
    #[inline(always)]
    pub fn st(
        self,
    ) -> crate::common::RegisterField<
        16,
        0x1,
        1,
        0,
        poeggb::St,
        poeggb::St,
        Poeggb_SPEC,
        crate::common::R,
    > {
        crate::common::RegisterField::<
            16,
            0x1,
            1,
            0,
            poeggb::St,
            poeggb::St,
            Poeggb_SPEC,
            crate::common::R,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Reverse"]
    #[inline(always)]
    pub fn inv(
        self,
    ) -> crate::common::RegisterField<
        28,
        0x1,
        1,
        0,
        poeggb::Inv,
        poeggb::Inv,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            28,
            0x1,
            1,
            0,
            poeggb::Inv,
            poeggb::Inv,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Enable"]
    #[inline(always)]
    pub fn nfen(
        self,
    ) -> crate::common::RegisterField<
        29,
        0x1,
        1,
        0,
        poeggb::Nfen,
        poeggb::Nfen,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            29,
            0x1,
            1,
            0,
            poeggb::Nfen,
            poeggb::Nfen,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Clock Select"]
    #[inline(always)]
    pub fn nfcs(
        self,
    ) -> crate::common::RegisterField<
        30,
        0x3,
        1,
        0,
        poeggb::Nfcs,
        poeggb::Nfcs,
        Poeggb_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            30,
            0x3,
            1,
            0,
            poeggb::Nfcs,
            poeggb::Nfcs,
            Poeggb_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Poeggb {
    #[inline(always)]
    fn default() -> Poeggb {
        <crate::RegValueT<Poeggb_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod poeggb {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pidf_SPEC;
    pub type Pidf = crate::EnumBitfieldStruct<u8, Pidf_SPEC>;
    impl Pidf {
        #[doc = "No output-disable request from the GTETRGn pin occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from the GTETRGn pin occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Iocf_SPEC;
    pub type Iocf = crate::EnumBitfieldStruct<u8, Iocf_SPEC>;
    impl Iocf {
        #[doc = "No output-disable request from GPT or comparator interrupt occurred."]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from GPT or comparator interrupt occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpf_SPEC;
    pub type Ostpf = crate::EnumBitfieldStruct<u8, Ostpf_SPEC>;
    impl Ostpf {
        #[doc = "No output-disable request from oscillation stop detection occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from oscillation stop detection occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ssf_SPEC;
    pub type Ssf = crate::EnumBitfieldStruct<u8, Ssf_SPEC>;
    impl Ssf {
        #[doc = "No output-disable request from software occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from software occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pide_SPEC;
    pub type Pide = crate::EnumBitfieldStruct<u8, Pide_SPEC>;
    impl Pide {
        #[doc = "Disable output-disable requests from the GTETRGn pins"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from the GTETRGn pins"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ioce_SPEC;
    pub type Ioce = crate::EnumBitfieldStruct<u8, Ioce_SPEC>;
    impl Ioce {
        #[doc = "Disable output-disable requests from GPT"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from GPT"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpe_SPEC;
    pub type Ostpe = crate::EnumBitfieldStruct<u8, Ostpe_SPEC>;
    impl Ostpe {
        #[doc = "Disable output-disable requests from oscillation stop detection"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from oscillation stop detection"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre0_SPEC;
    pub type Cdre0 = crate::EnumBitfieldStruct<u8, Cdre0_SPEC>;
    impl Cdre0 {
        #[doc = "Comparator 0 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 0 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre1_SPEC;
    pub type Cdre1 = crate::EnumBitfieldStruct<u8, Cdre1_SPEC>;
    impl Cdre1 {
        #[doc = "Comparator 1 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 1 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre2_SPEC;
    pub type Cdre2 = crate::EnumBitfieldStruct<u8, Cdre2_SPEC>;
    impl Cdre2 {
        #[doc = "Comparator 2 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 2 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct St_SPEC;
    pub type St = crate::EnumBitfieldStruct<u8, St_SPEC>;
    impl St {
        #[doc = "GTETRGn input after filtering was 0"]
        pub const _0: Self = Self::new(0);
        #[doc = "GTETRGn input after filtering was 1"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Inv_SPEC;
    pub type Inv = crate::EnumBitfieldStruct<u8, Inv_SPEC>;
    impl Inv {
        #[doc = "Input GTETRGn as-is"]
        pub const _0: Self = Self::new(0);
        #[doc = "Input GTETRGn in reverse"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfen_SPEC;
    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
    impl Nfen {
        #[doc = "Disable noise filtering"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable noise filtering"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfcs_SPEC;
    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
    impl Nfcs {
        #[doc = "Sample GTETRGn pin input level three times every PCLKB"]
        pub const _00: Self = Self::new(0);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/8"]
        pub const _01: Self = Self::new(1);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/32"]
        pub const _10: Self = Self::new(2);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/128"]
        pub const _11: Self = Self::new(3);
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Poeggc_SPEC;
impl crate::sealed::RegSpec for Poeggc_SPEC {
    type DataType = u32;
}
#[doc = "POEG Group C Setting Register"]
pub type Poeggc = crate::RegValueT<Poeggc_SPEC>;
impl Poeggc {
    #[doc = "Port Input Detection Flag"]
    #[inline(always)]
    pub fn pidf(
        self,
    ) -> crate::common::RegisterField<
        0,
        0x1,
        1,
        0,
        poeggc::Pidf,
        poeggc::Pidf,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            0,
            0x1,
            1,
            0,
            poeggc::Pidf,
            poeggc::Pidf,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Detection Flag for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn iocf(
        self,
    ) -> crate::common::RegisterField<
        1,
        0x1,
        1,
        0,
        poeggc::Iocf,
        poeggc::Iocf,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            1,
            0x1,
            1,
            0,
            poeggc::Iocf,
            poeggc::Iocf,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Flag"]
    #[inline(always)]
    pub fn ostpf(
        self,
    ) -> crate::common::RegisterField<
        2,
        0x1,
        1,
        0,
        poeggc::Ostpf,
        poeggc::Ostpf,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            2,
            0x1,
            1,
            0,
            poeggc::Ostpf,
            poeggc::Ostpf,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Software Stop Flag"]
    #[inline(always)]
    pub fn ssf(
        self,
    ) -> crate::common::RegisterField<
        3,
        0x1,
        1,
        0,
        poeggc::Ssf,
        poeggc::Ssf,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            3,
            0x1,
            1,
            0,
            poeggc::Ssf,
            poeggc::Ssf,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Port Input Detection Enable"]
    #[inline(always)]
    pub fn pide(
        self,
    ) -> crate::common::RegisterField<
        4,
        0x1,
        1,
        0,
        poeggc::Pide,
        poeggc::Pide,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            4,
            0x1,
            1,
            0,
            poeggc::Pide,
            poeggc::Pide,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Enable for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn ioce(
        self,
    ) -> crate::common::RegisterField<
        5,
        0x1,
        1,
        0,
        poeggc::Ioce,
        poeggc::Ioce,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            5,
            0x1,
            1,
            0,
            poeggc::Ioce,
            poeggc::Ioce,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Enable"]
    #[inline(always)]
    pub fn ostpe(
        self,
    ) -> crate::common::RegisterField<
        6,
        0x1,
        1,
        0,
        poeggc::Ostpe,
        poeggc::Ostpe,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            6,
            0x1,
            1,
            0,
            poeggc::Ostpe,
            poeggc::Ostpe,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre0(
        self,
    ) -> crate::common::RegisterField<
        8,
        0x1,
        1,
        0,
        poeggc::Cdre0,
        poeggc::Cdre0,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            8,
            0x1,
            1,
            0,
            poeggc::Cdre0,
            poeggc::Cdre0,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre1(
        self,
    ) -> crate::common::RegisterField<
        9,
        0x1,
        1,
        0,
        poeggc::Cdre1,
        poeggc::Cdre1,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            9,
            0x1,
            1,
            0,
            poeggc::Cdre1,
            poeggc::Cdre1,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre2(
        self,
    ) -> crate::common::RegisterField<
        10,
        0x1,
        1,
        0,
        poeggc::Cdre2,
        poeggc::Cdre2,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            10,
            0x1,
            1,
            0,
            poeggc::Cdre2,
            poeggc::Cdre2,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Status Flag"]
    #[inline(always)]
    pub fn st(
        self,
    ) -> crate::common::RegisterField<
        16,
        0x1,
        1,
        0,
        poeggc::St,
        poeggc::St,
        Poeggc_SPEC,
        crate::common::R,
    > {
        crate::common::RegisterField::<
            16,
            0x1,
            1,
            0,
            poeggc::St,
            poeggc::St,
            Poeggc_SPEC,
            crate::common::R,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Reverse"]
    #[inline(always)]
    pub fn inv(
        self,
    ) -> crate::common::RegisterField<
        28,
        0x1,
        1,
        0,
        poeggc::Inv,
        poeggc::Inv,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            28,
            0x1,
            1,
            0,
            poeggc::Inv,
            poeggc::Inv,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Enable"]
    #[inline(always)]
    pub fn nfen(
        self,
    ) -> crate::common::RegisterField<
        29,
        0x1,
        1,
        0,
        poeggc::Nfen,
        poeggc::Nfen,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            29,
            0x1,
            1,
            0,
            poeggc::Nfen,
            poeggc::Nfen,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Clock Select"]
    #[inline(always)]
    pub fn nfcs(
        self,
    ) -> crate::common::RegisterField<
        30,
        0x3,
        1,
        0,
        poeggc::Nfcs,
        poeggc::Nfcs,
        Poeggc_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            30,
            0x3,
            1,
            0,
            poeggc::Nfcs,
            poeggc::Nfcs,
            Poeggc_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Poeggc {
    #[inline(always)]
    fn default() -> Poeggc {
        <crate::RegValueT<Poeggc_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod poeggc {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pidf_SPEC;
    pub type Pidf = crate::EnumBitfieldStruct<u8, Pidf_SPEC>;
    impl Pidf {
        #[doc = "No output-disable request from the GTETRGn pin occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from the GTETRGn pin occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Iocf_SPEC;
    pub type Iocf = crate::EnumBitfieldStruct<u8, Iocf_SPEC>;
    impl Iocf {
        #[doc = "No output-disable request from GPT or comparator interrupt occurred."]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from GPT or comparator interrupt occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpf_SPEC;
    pub type Ostpf = crate::EnumBitfieldStruct<u8, Ostpf_SPEC>;
    impl Ostpf {
        #[doc = "No output-disable request from oscillation stop detection occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from oscillation stop detection occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ssf_SPEC;
    pub type Ssf = crate::EnumBitfieldStruct<u8, Ssf_SPEC>;
    impl Ssf {
        #[doc = "No output-disable request from software occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from software occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pide_SPEC;
    pub type Pide = crate::EnumBitfieldStruct<u8, Pide_SPEC>;
    impl Pide {
        #[doc = "Disable output-disable requests from the GTETRGn pins"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from the GTETRGn pins"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ioce_SPEC;
    pub type Ioce = crate::EnumBitfieldStruct<u8, Ioce_SPEC>;
    impl Ioce {
        #[doc = "Disable output-disable requests from GPT"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from GPT"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpe_SPEC;
    pub type Ostpe = crate::EnumBitfieldStruct<u8, Ostpe_SPEC>;
    impl Ostpe {
        #[doc = "Disable output-disable requests from oscillation stop detection"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from oscillation stop detection"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre0_SPEC;
    pub type Cdre0 = crate::EnumBitfieldStruct<u8, Cdre0_SPEC>;
    impl Cdre0 {
        #[doc = "Comparator 0 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 0 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre1_SPEC;
    pub type Cdre1 = crate::EnumBitfieldStruct<u8, Cdre1_SPEC>;
    impl Cdre1 {
        #[doc = "Comparator 1 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 1 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre2_SPEC;
    pub type Cdre2 = crate::EnumBitfieldStruct<u8, Cdre2_SPEC>;
    impl Cdre2 {
        #[doc = "Comparator 2 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 2 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct St_SPEC;
    pub type St = crate::EnumBitfieldStruct<u8, St_SPEC>;
    impl St {
        #[doc = "GTETRGn input after filtering was 0"]
        pub const _0: Self = Self::new(0);
        #[doc = "GTETRGn input after filtering was 1"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Inv_SPEC;
    pub type Inv = crate::EnumBitfieldStruct<u8, Inv_SPEC>;
    impl Inv {
        #[doc = "Input GTETRGn as-is"]
        pub const _0: Self = Self::new(0);
        #[doc = "Input GTETRGn in reverse"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfen_SPEC;
    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
    impl Nfen {
        #[doc = "Disable noise filtering"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable noise filtering"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfcs_SPEC;
    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
    impl Nfcs {
        #[doc = "Sample GTETRGn pin input level three times every PCLKB"]
        pub const _00: Self = Self::new(0);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/8"]
        pub const _01: Self = Self::new(1);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/32"]
        pub const _10: Self = Self::new(2);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/128"]
        pub const _11: Self = Self::new(3);
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Poeggd_SPEC;
impl crate::sealed::RegSpec for Poeggd_SPEC {
    type DataType = u32;
}
#[doc = "POEG Group D Setting Register"]
pub type Poeggd = crate::RegValueT<Poeggd_SPEC>;
impl Poeggd {
    #[doc = "Port Input Detection Flag"]
    #[inline(always)]
    pub fn pidf(
        self,
    ) -> crate::common::RegisterField<
        0,
        0x1,
        1,
        0,
        poeggd::Pidf,
        poeggd::Pidf,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            0,
            0x1,
            1,
            0,
            poeggd::Pidf,
            poeggd::Pidf,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Detection Flag for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn iocf(
        self,
    ) -> crate::common::RegisterField<
        1,
        0x1,
        1,
        0,
        poeggd::Iocf,
        poeggd::Iocf,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            1,
            0x1,
            1,
            0,
            poeggd::Iocf,
            poeggd::Iocf,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Flag"]
    #[inline(always)]
    pub fn ostpf(
        self,
    ) -> crate::common::RegisterField<
        2,
        0x1,
        1,
        0,
        poeggd::Ostpf,
        poeggd::Ostpf,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            2,
            0x1,
            1,
            0,
            poeggd::Ostpf,
            poeggd::Ostpf,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Software Stop Flag"]
    #[inline(always)]
    pub fn ssf(
        self,
    ) -> crate::common::RegisterField<
        3,
        0x1,
        1,
        0,
        poeggd::Ssf,
        poeggd::Ssf,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            3,
            0x1,
            1,
            0,
            poeggd::Ssf,
            poeggd::Ssf,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Port Input Detection Enable"]
    #[inline(always)]
    pub fn pide(
        self,
    ) -> crate::common::RegisterField<
        4,
        0x1,
        1,
        0,
        poeggd::Pide,
        poeggd::Pide,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            4,
            0x1,
            1,
            0,
            poeggd::Pide,
            poeggd::Pide,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Enable for GPT Output-Disable Request"]
    #[inline(always)]
    pub fn ioce(
        self,
    ) -> crate::common::RegisterField<
        5,
        0x1,
        1,
        0,
        poeggd::Ioce,
        poeggd::Ioce,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            5,
            0x1,
            1,
            0,
            poeggd::Ioce,
            poeggd::Ioce,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Oscillation Stop Detection Enable"]
    #[inline(always)]
    pub fn ostpe(
        self,
    ) -> crate::common::RegisterField<
        6,
        0x1,
        1,
        0,
        poeggd::Ostpe,
        poeggd::Ostpe,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            6,
            0x1,
            1,
            0,
            poeggd::Ostpe,
            poeggd::Ostpe,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre0(
        self,
    ) -> crate::common::RegisterField<
        8,
        0x1,
        1,
        0,
        poeggd::Cdre0,
        poeggd::Cdre0,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            8,
            0x1,
            1,
            0,
            poeggd::Cdre0,
            poeggd::Cdre0,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre1(
        self,
    ) -> crate::common::RegisterField<
        9,
        0x1,
        1,
        0,
        poeggd::Cdre1,
        poeggd::Cdre1,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            9,
            0x1,
            1,
            0,
            poeggd::Cdre1,
            poeggd::Cdre1,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[inline(always)]
    pub fn cdre2(
        self,
    ) -> crate::common::RegisterField<
        10,
        0x1,
        1,
        0,
        poeggd::Cdre2,
        poeggd::Cdre2,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            10,
            0x1,
            1,
            0,
            poeggd::Cdre2,
            poeggd::Cdre2,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Status Flag"]
    #[inline(always)]
    pub fn st(
        self,
    ) -> crate::common::RegisterField<
        16,
        0x1,
        1,
        0,
        poeggd::St,
        poeggd::St,
        Poeggd_SPEC,
        crate::common::R,
    > {
        crate::common::RegisterField::<
            16,
            0x1,
            1,
            0,
            poeggd::St,
            poeggd::St,
            Poeggd_SPEC,
            crate::common::R,
        >::from_register(self, 0)
    }
    #[doc = "GTETRGn Input Reverse"]
    #[inline(always)]
    pub fn inv(
        self,
    ) -> crate::common::RegisterField<
        28,
        0x1,
        1,
        0,
        poeggd::Inv,
        poeggd::Inv,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            28,
            0x1,
            1,
            0,
            poeggd::Inv,
            poeggd::Inv,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Enable"]
    #[inline(always)]
    pub fn nfen(
        self,
    ) -> crate::common::RegisterField<
        29,
        0x1,
        1,
        0,
        poeggd::Nfen,
        poeggd::Nfen,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            29,
            0x1,
            1,
            0,
            poeggd::Nfen,
            poeggd::Nfen,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Noise Filter Clock Select"]
    #[inline(always)]
    pub fn nfcs(
        self,
    ) -> crate::common::RegisterField<
        30,
        0x3,
        1,
        0,
        poeggd::Nfcs,
        poeggd::Nfcs,
        Poeggd_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            30,
            0x3,
            1,
            0,
            poeggd::Nfcs,
            poeggd::Nfcs,
            Poeggd_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Poeggd {
    #[inline(always)]
    fn default() -> Poeggd {
        <crate::RegValueT<Poeggd_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod poeggd {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pidf_SPEC;
    pub type Pidf = crate::EnumBitfieldStruct<u8, Pidf_SPEC>;
    impl Pidf {
        #[doc = "No output-disable request from the GTETRGn pin occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from the GTETRGn pin occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Iocf_SPEC;
    pub type Iocf = crate::EnumBitfieldStruct<u8, Iocf_SPEC>;
    impl Iocf {
        #[doc = "No output-disable request from GPT or comparator interrupt occurred."]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from GPT or comparator interrupt occurred."]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpf_SPEC;
    pub type Ostpf = crate::EnumBitfieldStruct<u8, Ostpf_SPEC>;
    impl Ostpf {
        #[doc = "No output-disable request from oscillation stop detection occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from oscillation stop detection occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ssf_SPEC;
    pub type Ssf = crate::EnumBitfieldStruct<u8, Ssf_SPEC>;
    impl Ssf {
        #[doc = "No output-disable request from software occurred"]
        pub const _0: Self = Self::new(0);
        #[doc = "Output-disable request from software occurred"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Pide_SPEC;
    pub type Pide = crate::EnumBitfieldStruct<u8, Pide_SPEC>;
    impl Pide {
        #[doc = "Disable output-disable requests from the GTETRGn pins"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from the GTETRGn pins"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ioce_SPEC;
    pub type Ioce = crate::EnumBitfieldStruct<u8, Ioce_SPEC>;
    impl Ioce {
        #[doc = "Disable output-disable requests from GPT"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from GPT"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Ostpe_SPEC;
    pub type Ostpe = crate::EnumBitfieldStruct<u8, Ostpe_SPEC>;
    impl Ostpe {
        #[doc = "Disable output-disable requests from oscillation stop detection"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output-disable requests from oscillation stop detection"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre0_SPEC;
    pub type Cdre0 = crate::EnumBitfieldStruct<u8, Cdre0_SPEC>;
    impl Cdre0 {
        #[doc = "Comparator 0 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 0 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre1_SPEC;
    pub type Cdre1 = crate::EnumBitfieldStruct<u8, Cdre1_SPEC>;
    impl Cdre1 {
        #[doc = "Comparator 1 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 1 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Cdre2_SPEC;
    pub type Cdre2 = crate::EnumBitfieldStruct<u8, Cdre2_SPEC>;
    impl Cdre2 {
        #[doc = "Comparator 2 disable requests disabled"]
        pub const _0: Self = Self::new(0);
        #[doc = "Comparator 2 disable requests enabled"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct St_SPEC;
    pub type St = crate::EnumBitfieldStruct<u8, St_SPEC>;
    impl St {
        #[doc = "GTETRGn input after filtering was 0"]
        pub const _0: Self = Self::new(0);
        #[doc = "GTETRGn input after filtering was 1"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Inv_SPEC;
    pub type Inv = crate::EnumBitfieldStruct<u8, Inv_SPEC>;
    impl Inv {
        #[doc = "Input GTETRGn as-is"]
        pub const _0: Self = Self::new(0);
        #[doc = "Input GTETRGn in reverse"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfen_SPEC;
    pub type Nfen = crate::EnumBitfieldStruct<u8, Nfen_SPEC>;
    impl Nfen {
        #[doc = "Disable noise filtering"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable noise filtering"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Nfcs_SPEC;
    pub type Nfcs = crate::EnumBitfieldStruct<u8, Nfcs_SPEC>;
    impl Nfcs {
        #[doc = "Sample GTETRGn pin input level three times every PCLKB"]
        pub const _00: Self = Self::new(0);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/8"]
        pub const _01: Self = Self::new(1);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/32"]
        pub const _10: Self = Self::new(2);
        #[doc = "Sample GTETRGn pin input level three times every PCLKB/128"]
        pub const _11: Self = Self::new(3);
    }
}