#[doc = "Reader of register AHBRSTR"]
pub type R = crate::R<u32, super::AHBRSTR>;
#[doc = "Writer for register AHBRSTR"]
pub type W = crate::W<u32, super::AHBRSTR>;
#[doc = "Register AHBRSTR `reset()`'s with value 0"]
impl crate::ResetValue for super::AHBRSTR {
type Type = u32;
#[inline(always)]
fn reset_value() -> Self::Type {
0
}
}
#[doc = "I/O port A reset\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum IOPARST_A {
#[doc = "1: Reset the selected module"]
RESET = 1,
}
impl From<IOPARST_A> for bool {
#[inline(always)]
fn from(variant: IOPARST_A) -> Self {
variant as u8 != 0
}
}
#[doc = "Reader of field `IOPARST`"]
pub type IOPARST_R = crate::R<bool, IOPARST_A>;
impl IOPARST_R {
#[doc = r"Get enumerated values variant"]
#[inline(always)]
pub fn variant(&self) -> crate::Variant<bool, IOPARST_A> {
use crate::Variant::*;
match self.bits {
true => Val(IOPARST_A::RESET),
i => Res(i),
}
}
#[doc = "Checks if the value of the field is `RESET`"]
#[inline(always)]
pub fn is_reset(&self) -> bool {
*self == IOPARST_A::RESET
}
}
#[doc = "Write proxy for field `IOPARST`"]
pub struct IOPARST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPARST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPARST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 17)) | (((value as u32) & 0x01) << 17);
self.w
}
}
#[doc = "I/O port B reset"]
pub type IOPBRST_A = IOPARST_A;
#[doc = "Reader of field `IOPBRST`"]
pub type IOPBRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPBRST`"]
pub struct IOPBRST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPBRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPBRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 18)) | (((value as u32) & 0x01) << 18);
self.w
}
}
#[doc = "I/O port C reset"]
pub type IOPCRST_A = IOPARST_A;
#[doc = "Reader of field `IOPCRST`"]
pub type IOPCRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPCRST`"]
pub struct IOPCRST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPCRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPCRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 19)) | (((value as u32) & 0x01) << 19);
self.w
}
}
#[doc = "I/O port D reset"]
pub type IOPDRST_A = IOPARST_A;
#[doc = "Reader of field `IOPDRST`"]
pub type IOPDRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPDRST`"]
pub struct IOPDRST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPDRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPDRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 20)) | (((value as u32) & 0x01) << 20);
self.w
}
}
#[doc = "I/O port E reset"]
pub type IOPERST_A = IOPARST_A;
#[doc = "Reader of field `IOPERST`"]
pub type IOPERST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPERST`"]
pub struct IOPERST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPERST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPERST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 21)) | (((value as u32) & 0x01) << 21);
self.w
}
}
#[doc = "I/O port F reset"]
pub type IOPFRST_A = IOPARST_A;
#[doc = "Reader of field `IOPFRST`"]
pub type IOPFRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPFRST`"]
pub struct IOPFRST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPFRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPFRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 22)) | (((value as u32) & 0x01) << 22);
self.w
}
}
#[doc = "Touch sensing controller reset"]
pub type TSCRST_A = IOPARST_A;
#[doc = "Reader of field `TSCRST`"]
pub type TSCRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `TSCRST`"]
pub struct TSCRST_W<'a> {
w: &'a mut W,
}
impl<'a> TSCRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: TSCRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 24)) | (((value as u32) & 0x01) << 24);
self.w
}
}
#[doc = "I/O port H reset"]
pub type IOPHRST_A = IOPARST_A;
#[doc = "Reader of field `IOPHRST`"]
pub type IOPHRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPHRST`"]
pub struct IOPHRST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPHRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPHRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 16)) | (((value as u32) & 0x01) << 16);
self.w
}
}
#[doc = "I/O port G reset"]
pub type IOPGRST_A = IOPARST_A;
#[doc = "Reader of field `IOPGRST`"]
pub type IOPGRST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `IOPGRST`"]
pub struct IOPGRST_W<'a> {
w: &'a mut W,
}
impl<'a> IOPGRST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: IOPGRST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 23)) | (((value as u32) & 0x01) << 23);
self.w
}
}
#[doc = "ADC1 and ADC2 reset"]
pub type ADC12RST_A = IOPARST_A;
#[doc = "Reader of field `ADC12RST`"]
pub type ADC12RST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `ADC12RST`"]
pub struct ADC12RST_W<'a> {
w: &'a mut W,
}
impl<'a> ADC12RST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: ADC12RST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 28)) | (((value as u32) & 0x01) << 28);
self.w
}
}
#[doc = "ADC3 and ADC4 reset"]
pub type ADC34RST_A = IOPARST_A;
#[doc = "Reader of field `ADC34RST`"]
pub type ADC34RST_R = crate::R<bool, IOPARST_A>;
#[doc = "Write proxy for field `ADC34RST`"]
pub struct ADC34RST_W<'a> {
w: &'a mut W,
}
impl<'a> ADC34RST_W<'a> {
#[doc = r"Writes `variant` to the field"]
#[inline(always)]
pub fn variant(self, variant: ADC34RST_A) -> &'a mut W {
{
self.bit(variant.into())
}
}
#[doc = "Reset the selected module"]
#[inline(always)]
pub fn reset(self) -> &'a mut W {
self.variant(IOPARST_A::RESET)
}
#[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 << 29)) | (((value as u32) & 0x01) << 29);
self.w
}
}
impl R {
#[doc = "Bit 17 - I/O port A reset"]
#[inline(always)]
pub fn ioparst(&self) -> IOPARST_R {
IOPARST_R::new(((self.bits >> 17) & 0x01) != 0)
}
#[doc = "Bit 18 - I/O port B reset"]
#[inline(always)]
pub fn iopbrst(&self) -> IOPBRST_R {
IOPBRST_R::new(((self.bits >> 18) & 0x01) != 0)
}
#[doc = "Bit 19 - I/O port C reset"]
#[inline(always)]
pub fn iopcrst(&self) -> IOPCRST_R {
IOPCRST_R::new(((self.bits >> 19) & 0x01) != 0)
}
#[doc = "Bit 20 - I/O port D reset"]
#[inline(always)]
pub fn iopdrst(&self) -> IOPDRST_R {
IOPDRST_R::new(((self.bits >> 20) & 0x01) != 0)
}
#[doc = "Bit 21 - I/O port E reset"]
#[inline(always)]
pub fn ioperst(&self) -> IOPERST_R {
IOPERST_R::new(((self.bits >> 21) & 0x01) != 0)
}
#[doc = "Bit 22 - I/O port F reset"]
#[inline(always)]
pub fn iopfrst(&self) -> IOPFRST_R {
IOPFRST_R::new(((self.bits >> 22) & 0x01) != 0)
}
#[doc = "Bit 24 - Touch sensing controller reset"]
#[inline(always)]
pub fn tscrst(&self) -> TSCRST_R {
TSCRST_R::new(((self.bits >> 24) & 0x01) != 0)
}
#[doc = "Bit 16 - I/O port H reset"]
#[inline(always)]
pub fn iophrst(&self) -> IOPHRST_R {
IOPHRST_R::new(((self.bits >> 16) & 0x01) != 0)
}
#[doc = "Bit 23 - I/O port G reset"]
#[inline(always)]
pub fn iopgrst(&self) -> IOPGRST_R {
IOPGRST_R::new(((self.bits >> 23) & 0x01) != 0)
}
#[doc = "Bit 28 - ADC1 and ADC2 reset"]
#[inline(always)]
pub fn adc12rst(&self) -> ADC12RST_R {
ADC12RST_R::new(((self.bits >> 28) & 0x01) != 0)
}
#[doc = "Bit 29 - ADC3 and ADC4 reset"]
#[inline(always)]
pub fn adc34rst(&self) -> ADC34RST_R {
ADC34RST_R::new(((self.bits >> 29) & 0x01) != 0)
}
}
impl W {
#[doc = "Bit 17 - I/O port A reset"]
#[inline(always)]
pub fn ioparst(&mut self) -> IOPARST_W {
IOPARST_W { w: self }
}
#[doc = "Bit 18 - I/O port B reset"]
#[inline(always)]
pub fn iopbrst(&mut self) -> IOPBRST_W {
IOPBRST_W { w: self }
}
#[doc = "Bit 19 - I/O port C reset"]
#[inline(always)]
pub fn iopcrst(&mut self) -> IOPCRST_W {
IOPCRST_W { w: self }
}
#[doc = "Bit 20 - I/O port D reset"]
#[inline(always)]
pub fn iopdrst(&mut self) -> IOPDRST_W {
IOPDRST_W { w: self }
}
#[doc = "Bit 21 - I/O port E reset"]
#[inline(always)]
pub fn ioperst(&mut self) -> IOPERST_W {
IOPERST_W { w: self }
}
#[doc = "Bit 22 - I/O port F reset"]
#[inline(always)]
pub fn iopfrst(&mut self) -> IOPFRST_W {
IOPFRST_W { w: self }
}
#[doc = "Bit 24 - Touch sensing controller reset"]
#[inline(always)]
pub fn tscrst(&mut self) -> TSCRST_W {
TSCRST_W { w: self }
}
#[doc = "Bit 16 - I/O port H reset"]
#[inline(always)]
pub fn iophrst(&mut self) -> IOPHRST_W {
IOPHRST_W { w: self }
}
#[doc = "Bit 23 - I/O port G reset"]
#[inline(always)]
pub fn iopgrst(&mut self) -> IOPGRST_W {
IOPGRST_W { w: self }
}
#[doc = "Bit 28 - ADC1 and ADC2 reset"]
#[inline(always)]
pub fn adc12rst(&mut self) -> ADC12RST_W {
ADC12RST_W { w: self }
}
#[doc = "Bit 29 - ADC3 and ADC4 reset"]
#[inline(always)]
pub fn adc34rst(&mut self) -> ADC34RST_W {
ADC34RST_W { w: self }
}
}