pub type R = crate::R<CTRLrs>;
pub type W = crate::W<CTRLrs>;
pub type EnR = crate::BitReader;
pub type EnW<'a, REG> = crate::BitWriter<'a, REG>;
pub type InactvalR = crate::BitReader;
pub type InactvalW<'a, REG> = crate::BitWriter<'a, REG>;
pub type GpioinvR = crate::BitReader;
pub type GpioinvW<'a, REG> = crate::BitWriter<'a, REG>;
pub type AportxmasterdisR = crate::BitReader;
pub type AportxmasterdisW<'a, REG> = crate::BitWriter<'a, REG>;
pub type AportymasterdisR = crate::BitReader;
pub type AportymasterdisW<'a, REG> = crate::BitWriter<'a, REG>;
pub type AportvmasterdisR = crate::BitReader;
pub type AportvmasterdisW<'a, REG> = crate::BitWriter<'a, REG>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum PWRSEL {
Avdd = 0,
Dvdd = 1,
Iovdd0 = 2,
Iovdd1 = 4,
}
impl From<PWRSEL> for u8 {
#[inline(always)]
fn from(variant: PWRSEL) -> Self {
variant as _
}
}
impl crate::FieldSpec for PWRSEL {
type Ux = u8;
}
impl crate::IsEnum for PWRSEL {}
pub type PwrselR = crate::FieldReader<PWRSEL>;
impl PwrselR {
#[inline(always)]
pub const fn variant(&self) -> Option<PWRSEL> {
match self.bits {
0 => Some(PWRSEL::Avdd),
1 => Some(PWRSEL::Dvdd),
2 => Some(PWRSEL::Iovdd0),
4 => Some(PWRSEL::Iovdd1),
_ => None,
}
}
#[inline(always)]
pub fn is_avdd(&self) -> bool {
*self == PWRSEL::Avdd
}
#[inline(always)]
pub fn is_dvdd(&self) -> bool {
*self == PWRSEL::Dvdd
}
#[inline(always)]
pub fn is_iovdd0(&self) -> bool {
*self == PWRSEL::Iovdd0
}
#[inline(always)]
pub fn is_iovdd1(&self) -> bool {
*self == PWRSEL::Iovdd1
}
}
pub type PwrselW<'a, REG> = crate::FieldWriter<'a, REG, 3, PWRSEL>;
impl<'a, REG> PwrselW<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn avdd(self) -> &'a mut crate::W<REG> {
self.variant(PWRSEL::Avdd)
}
#[inline(always)]
pub fn dvdd(self) -> &'a mut crate::W<REG> {
self.variant(PWRSEL::Dvdd)
}
#[inline(always)]
pub fn iovdd0(self) -> &'a mut crate::W<REG> {
self.variant(PWRSEL::Iovdd0)
}
#[inline(always)]
pub fn iovdd1(self) -> &'a mut crate::W<REG> {
self.variant(PWRSEL::Iovdd1)
}
}
pub type AccuracyR = crate::BitReader;
pub type AccuracyW<'a, REG> = crate::BitWriter<'a, REG>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum INPUTRANGE {
Full = 0,
Gtvdddiv2 = 1,
Ltvdddiv2 = 2,
}
impl From<INPUTRANGE> for u8 {
#[inline(always)]
fn from(variant: INPUTRANGE) -> Self {
variant as _
}
}
impl crate::FieldSpec for INPUTRANGE {
type Ux = u8;
}
impl crate::IsEnum for INPUTRANGE {}
pub type InputrangeR = crate::FieldReader<INPUTRANGE>;
impl InputrangeR {
#[inline(always)]
pub const fn variant(&self) -> Option<INPUTRANGE> {
match self.bits {
0 => Some(INPUTRANGE::Full),
1 => Some(INPUTRANGE::Gtvdddiv2),
2 => Some(INPUTRANGE::Ltvdddiv2),
_ => None,
}
}
#[inline(always)]
pub fn is_full(&self) -> bool {
*self == INPUTRANGE::Full
}
#[inline(always)]
pub fn is_gtvdddiv2(&self) -> bool {
*self == INPUTRANGE::Gtvdddiv2
}
#[inline(always)]
pub fn is_ltvdddiv2(&self) -> bool {
*self == INPUTRANGE::Ltvdddiv2
}
}
pub type InputrangeW<'a, REG> = crate::FieldWriter<'a, REG, 2, INPUTRANGE>;
impl<'a, REG> InputrangeW<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn full(self) -> &'a mut crate::W<REG> {
self.variant(INPUTRANGE::Full)
}
#[inline(always)]
pub fn gtvdddiv2(self) -> &'a mut crate::W<REG> {
self.variant(INPUTRANGE::Gtvdddiv2)
}
#[inline(always)]
pub fn ltvdddiv2(self) -> &'a mut crate::W<REG> {
self.variant(INPUTRANGE::Ltvdddiv2)
}
}
pub type IriseR = crate::BitReader;
pub type IriseW<'a, REG> = crate::BitWriter<'a, REG>;
pub type IfallR = crate::BitReader;
pub type IfallW<'a, REG> = crate::BitWriter<'a, REG>;
pub type BiasprogR = crate::FieldReader;
pub type BiasprogW<'a, REG> = crate::FieldWriter<'a, REG, 6>;
pub type FullbiasR = crate::BitReader;
pub type FullbiasW<'a, REG> = crate::BitWriter<'a, REG>;
impl R {
#[inline(always)]
pub fn en(&self) -> EnR {
EnR::new((self.bits & 1) != 0)
}
#[inline(always)]
pub fn inactval(&self) -> InactvalR {
InactvalR::new(((self.bits >> 2) & 1) != 0)
}
#[inline(always)]
pub fn gpioinv(&self) -> GpioinvR {
GpioinvR::new(((self.bits >> 3) & 1) != 0)
}
#[inline(always)]
pub fn aportxmasterdis(&self) -> AportxmasterdisR {
AportxmasterdisR::new(((self.bits >> 8) & 1) != 0)
}
#[inline(always)]
pub fn aportymasterdis(&self) -> AportymasterdisR {
AportymasterdisR::new(((self.bits >> 9) & 1) != 0)
}
#[inline(always)]
pub fn aportvmasterdis(&self) -> AportvmasterdisR {
AportvmasterdisR::new(((self.bits >> 10) & 1) != 0)
}
#[inline(always)]
pub fn pwrsel(&self) -> PwrselR {
PwrselR::new(((self.bits >> 12) & 7) as u8)
}
#[inline(always)]
pub fn accuracy(&self) -> AccuracyR {
AccuracyR::new(((self.bits >> 15) & 1) != 0)
}
#[inline(always)]
pub fn inputrange(&self) -> InputrangeR {
InputrangeR::new(((self.bits >> 18) & 3) as u8)
}
#[inline(always)]
pub fn irise(&self) -> IriseR {
IriseR::new(((self.bits >> 20) & 1) != 0)
}
#[inline(always)]
pub fn ifall(&self) -> IfallR {
IfallR::new(((self.bits >> 21) & 1) != 0)
}
#[inline(always)]
pub fn biasprog(&self) -> BiasprogR {
BiasprogR::new(((self.bits >> 24) & 0x3f) as u8)
}
#[inline(always)]
pub fn fullbias(&self) -> FullbiasR {
FullbiasR::new(((self.bits >> 31) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CTRL")
.field("en", &self.en())
.field("inactval", &self.inactval())
.field("gpioinv", &self.gpioinv())
.field("aportxmasterdis", &self.aportxmasterdis())
.field("aportymasterdis", &self.aportymasterdis())
.field("aportvmasterdis", &self.aportvmasterdis())
.field("pwrsel", &self.pwrsel())
.field("accuracy", &self.accuracy())
.field("inputrange", &self.inputrange())
.field("irise", &self.irise())
.field("ifall", &self.ifall())
.field("biasprog", &self.biasprog())
.field("fullbias", &self.fullbias())
.finish()
}
}
impl W {
#[inline(always)]
pub fn en(&mut self) -> EnW<'_, CTRLrs> {
EnW::new(self, 0)
}
#[inline(always)]
pub fn inactval(&mut self) -> InactvalW<'_, CTRLrs> {
InactvalW::new(self, 2)
}
#[inline(always)]
pub fn gpioinv(&mut self) -> GpioinvW<'_, CTRLrs> {
GpioinvW::new(self, 3)
}
#[inline(always)]
pub fn aportxmasterdis(&mut self) -> AportxmasterdisW<'_, CTRLrs> {
AportxmasterdisW::new(self, 8)
}
#[inline(always)]
pub fn aportymasterdis(&mut self) -> AportymasterdisW<'_, CTRLrs> {
AportymasterdisW::new(self, 9)
}
#[inline(always)]
pub fn aportvmasterdis(&mut self) -> AportvmasterdisW<'_, CTRLrs> {
AportvmasterdisW::new(self, 10)
}
#[inline(always)]
pub fn pwrsel(&mut self) -> PwrselW<'_, CTRLrs> {
PwrselW::new(self, 12)
}
#[inline(always)]
pub fn accuracy(&mut self) -> AccuracyW<'_, CTRLrs> {
AccuracyW::new(self, 15)
}
#[inline(always)]
pub fn inputrange(&mut self) -> InputrangeW<'_, CTRLrs> {
InputrangeW::new(self, 18)
}
#[inline(always)]
pub fn irise(&mut self) -> IriseW<'_, CTRLrs> {
IriseW::new(self, 20)
}
#[inline(always)]
pub fn ifall(&mut self) -> IfallW<'_, CTRLrs> {
IfallW::new(self, 21)
}
#[inline(always)]
pub fn biasprog(&mut self) -> BiasprogW<'_, CTRLrs> {
BiasprogW::new(self, 24)
}
#[inline(always)]
pub fn fullbias(&mut self) -> FullbiasW<'_, CTRLrs> {
FullbiasW::new(self, 31)
}
}
pub struct CTRLrs;
impl crate::RegisterSpec for CTRLrs {
type Ux = u32;
}
impl crate::Readable for CTRLrs {}
impl crate::Writable for CTRLrs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for CTRLrs {
const RESET_VALUE: u32 = 0x0700_0000;
}