1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#[doc = "Register `XTALCR` reader"]
pub struct R(crate::R<XTALCR_SPEC>);
impl core::ops::Deref for R {
    type Target = crate::R<XTALCR_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl From<crate::R<XTALCR_SPEC>> for R {
    #[inline(always)]
    fn from(reader: crate::R<XTALCR_SPEC>) -> Self {
        R(reader)
    }
}
#[doc = "Register `XTALCR` writer"]
pub struct W(crate::W<XTALCR_SPEC>);
impl core::ops::Deref for W {
    type Target = crate::W<XTALCR_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl core::ops::DerefMut for W {
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.0
    }
}
impl From<crate::W<XTALCR_SPEC>> for W {
    #[inline(always)]
    fn from(writer: crate::W<XTALCR_SPEC>) -> Self {
        W(writer)
    }
}
#[doc = "Field `_32KON` reader - _32KON field"]
pub type _32KON_R = crate::BitReader<bool>;
#[doc = "Field `_32KON` writer - _32KON field"]
pub type _32KON_W<'a, const O: u8> = crate::BitWriter<'a, u32, XTALCR_SPEC, bool, O>;
#[doc = "Field `ON` reader - ON field"]
pub type ON_R = crate::BitReader<bool>;
#[doc = "Field `ON` writer - ON field"]
pub type ON_W<'a, const O: u8> = crate::BitWriter<'a, u32, XTALCR_SPEC, bool, O>;
#[doc = "Field `_32KDET` reader - _32KDET field"]
pub type _32KDET_R = crate::BitReader<bool>;
#[doc = "Field `_32KDET` writer - _32KDET field"]
pub type _32KDET_W<'a, const O: u8> = crate::BitWriter<'a, u32, XTALCR_SPEC, bool, O>;
#[doc = "Field `DET` reader - DET field"]
pub type DET_R = crate::BitReader<bool>;
#[doc = "Field `DET` writer - DET field"]
pub type DET_W<'a, const O: u8> = crate::BitWriter<'a, u32, XTALCR_SPEC, bool, O>;
#[doc = "Field `_32KDRV` reader - _32KDRV field"]
pub type _32KDRV_R = crate::FieldReader<u8, u8>;
#[doc = "Field `_32KDRV` writer - _32KDRV field"]
pub type _32KDRV_W<'a, const O: u8> = crate::FieldWriter<'a, u32, XTALCR_SPEC, u8, u8, 4, O>;
#[doc = "Field `DRV` reader - DRV field"]
pub type DRV_R = crate::FieldReader<u8, u8>;
#[doc = "Field `DRV` writer - DRV field"]
pub type DRV_W<'a, const O: u8> = crate::FieldWriter<'a, u32, XTALCR_SPEC, u8, u8, 5, O>;
impl R {
    #[doc = "Bit 0 - _32KON field"]
    #[inline(always)]
    pub fn _32kon(&self) -> _32KON_R {
        _32KON_R::new((self.bits & 1) != 0)
    }
    #[doc = "Bit 1 - ON field"]
    #[inline(always)]
    pub fn on(&self) -> ON_R {
        ON_R::new(((self.bits >> 1) & 1) != 0)
    }
    #[doc = "Bit 4 - _32KDET field"]
    #[inline(always)]
    pub fn _32kdet(&self) -> _32KDET_R {
        _32KDET_R::new(((self.bits >> 4) & 1) != 0)
    }
    #[doc = "Bit 5 - DET field"]
    #[inline(always)]
    pub fn det(&self) -> DET_R {
        DET_R::new(((self.bits >> 5) & 1) != 0)
    }
    #[doc = "Bits 8:11 - _32KDRV field"]
    #[inline(always)]
    pub fn _32kdrv(&self) -> _32KDRV_R {
        _32KDRV_R::new(((self.bits >> 8) & 0x0f) as u8)
    }
    #[doc = "Bits 16:20 - DRV field"]
    #[inline(always)]
    pub fn drv(&self) -> DRV_R {
        DRV_R::new(((self.bits >> 16) & 0x1f) as u8)
    }
}
impl W {
    #[doc = "Bit 0 - _32KON field"]
    #[inline(always)]
    pub fn _32kon(&mut self) -> _32KON_W<0> {
        _32KON_W::new(self)
    }
    #[doc = "Bit 1 - ON field"]
    #[inline(always)]
    pub fn on(&mut self) -> ON_W<1> {
        ON_W::new(self)
    }
    #[doc = "Bit 4 - _32KDET field"]
    #[inline(always)]
    pub fn _32kdet(&mut self) -> _32KDET_W<4> {
        _32KDET_W::new(self)
    }
    #[doc = "Bit 5 - DET field"]
    #[inline(always)]
    pub fn det(&mut self) -> DET_W<5> {
        DET_W::new(self)
    }
    #[doc = "Bits 8:11 - _32KDRV field"]
    #[inline(always)]
    pub fn _32kdrv(&mut self) -> _32KDRV_W<8> {
        _32KDRV_W::new(self)
    }
    #[doc = "Bits 16:20 - DRV field"]
    #[inline(always)]
    pub fn drv(&mut self) -> DRV_W<16> {
        DRV_W::new(self)
    }
    #[doc = "Writes raw bits to the register."]
    #[inline(always)]
    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
        self.0.bits(bits);
        self
    }
}
#[doc = "XTALCR register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [xtalcr](index.html) module"]
pub struct XTALCR_SPEC;
impl crate::RegisterSpec for XTALCR_SPEC {
    type Ux = u32;
}
#[doc = "`read()` method returns [xtalcr::R](R) reader structure"]
impl crate::Readable for XTALCR_SPEC {
    type Reader = R;
}
#[doc = "`write(|w| ..)` method takes [xtalcr::W](W) writer structure"]
impl crate::Writable for XTALCR_SPEC {
    type Writer = W;
}
#[doc = "`reset()` method sets XTALCR to value 0"]
impl crate::Resettable for XTALCR_SPEC {
    #[inline(always)]
    fn reset_value() -> Self::Ux {
        0
    }
}