#![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"Temperature Sensor"]
unsafe impl ::core::marker::Send for super::Tsn {}
unsafe impl ::core::marker::Sync for super::Tsn {}
impl super::Tsn {
    #[allow(unused)]
    #[inline(always)]
    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
        self.ptr
    }
    #[doc = "Temperature Sensor Control Register"]
    #[inline(always)]
    pub const fn tscr(&self) -> &'static crate::common::Reg<self::Tscr_SPEC, crate::common::RW> {
        unsafe {
            crate::common::Reg::<self::Tscr_SPEC, crate::common::RW>::from_ptr(
                self._svd2pac_as_ptr().add(0usize),
            )
        }
    }
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Tscr_SPEC;
impl crate::sealed::RegSpec for Tscr_SPEC {
    type DataType = u8;
}
#[doc = "Temperature Sensor Control Register"]
pub type Tscr = crate::RegValueT<Tscr_SPEC>;
impl Tscr {
    #[doc = "Temperature Sensor Output Enable"]
    #[inline(always)]
    pub fn tsoe(
        self,
    ) -> crate::common::RegisterField<
        4,
        0x1,
        1,
        0,
        tscr::Tsoe,
        tscr::Tsoe,
        Tscr_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            4,
            0x1,
            1,
            0,
            tscr::Tsoe,
            tscr::Tsoe,
            Tscr_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
    #[doc = "Temperature Sensor Enable"]
    #[inline(always)]
    pub fn tsen(
        self,
    ) -> crate::common::RegisterField<
        7,
        0x1,
        1,
        0,
        tscr::Tsen,
        tscr::Tsen,
        Tscr_SPEC,
        crate::common::RW,
    > {
        crate::common::RegisterField::<
            7,
            0x1,
            1,
            0,
            tscr::Tsen,
            tscr::Tsen,
            Tscr_SPEC,
            crate::common::RW,
        >::from_register(self, 0)
    }
}
impl ::core::default::Default for Tscr {
    #[inline(always)]
    fn default() -> Tscr {
        <crate::RegValueT<Tscr_SPEC> as RegisterValue<_>>::new(0)
    }
}
pub mod tscr {
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Tsoe_SPEC;
    pub type Tsoe = crate::EnumBitfieldStruct<u8, Tsoe_SPEC>;
    impl Tsoe {
        #[doc = "Disable output from the temperature sensor to the ADC12"]
        pub const _0: Self = Self::new(0);
        #[doc = "Enable output from the temperature sensor to the ADC12"]
        pub const _1: Self = Self::new(1);
    }
    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
    pub struct Tsen_SPEC;
    pub type Tsen = crate::EnumBitfieldStruct<u8, Tsen_SPEC>;
    impl Tsen {
        #[doc = "Stop the temperature sensor"]
        pub const _0: Self = Self::new(0);
        #[doc = "Start the temperature sensor."]
        pub const _1: Self = Self::new(1);
    }
}