atsamd11c/
sysctrl.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    intenclr: Intenclr,
5    intenset: Intenset,
6    intflag: Intflag,
7    pclksr: Pclksr,
8    xosc: Xosc,
9    _reserved5: [u8; 0x02],
10    xosc32k: Xosc32k,
11    _reserved6: [u8; 0x02],
12    osc32k: Osc32k,
13    osculp32k: Osculp32k,
14    _reserved8: [u8; 0x03],
15    osc8m: Osc8m,
16    dfllctrl: Dfllctrl,
17    _reserved10: [u8; 0x02],
18    dfllval: Dfllval,
19    dfllmul: Dfllmul,
20    dfllsync: Dfllsync,
21    _reserved13: [u8; 0x03],
22    bod33: Bod33,
23    _reserved14: [u8; 0x08],
24    vref: Vref,
25    dpllctrla: Dpllctrla,
26    _reserved16: [u8; 0x03],
27    dpllratio: Dpllratio,
28    dpllctrlb: Dpllctrlb,
29    dpllstatus: Dpllstatus,
30}
31impl RegisterBlock {
32    #[doc = "0x00 - Interrupt Enable Clear"]
33    #[inline(always)]
34    pub const fn intenclr(&self) -> &Intenclr {
35        &self.intenclr
36    }
37    #[doc = "0x04 - Interrupt Enable Set"]
38    #[inline(always)]
39    pub const fn intenset(&self) -> &Intenset {
40        &self.intenset
41    }
42    #[doc = "0x08 - Interrupt Flag Status and Clear"]
43    #[inline(always)]
44    pub const fn intflag(&self) -> &Intflag {
45        &self.intflag
46    }
47    #[doc = "0x0c - Power and Clocks Status"]
48    #[inline(always)]
49    pub const fn pclksr(&self) -> &Pclksr {
50        &self.pclksr
51    }
52    #[doc = "0x10 - External Multipurpose Crystal Oscillator (XOSC) Control"]
53    #[inline(always)]
54    pub const fn xosc(&self) -> &Xosc {
55        &self.xosc
56    }
57    #[doc = "0x14 - 32kHz External Crystal Oscillator (XOSC32K) Control"]
58    #[inline(always)]
59    pub const fn xosc32k(&self) -> &Xosc32k {
60        &self.xosc32k
61    }
62    #[doc = "0x18 - 32kHz Internal Oscillator (OSC32K) Control"]
63    #[inline(always)]
64    pub const fn osc32k(&self) -> &Osc32k {
65        &self.osc32k
66    }
67    #[doc = "0x1c - 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) Control"]
68    #[inline(always)]
69    pub const fn osculp32k(&self) -> &Osculp32k {
70        &self.osculp32k
71    }
72    #[doc = "0x20 - 8MHz Internal Oscillator (OSC8M) Control"]
73    #[inline(always)]
74    pub const fn osc8m(&self) -> &Osc8m {
75        &self.osc8m
76    }
77    #[doc = "0x24 - DFLL48M Control"]
78    #[inline(always)]
79    pub const fn dfllctrl(&self) -> &Dfllctrl {
80        &self.dfllctrl
81    }
82    #[doc = "0x28 - DFLL48M Value"]
83    #[inline(always)]
84    pub const fn dfllval(&self) -> &Dfllval {
85        &self.dfllval
86    }
87    #[doc = "0x2c - DFLL48M Multiplier"]
88    #[inline(always)]
89    pub const fn dfllmul(&self) -> &Dfllmul {
90        &self.dfllmul
91    }
92    #[doc = "0x30 - DFLL48M Synchronization"]
93    #[inline(always)]
94    pub const fn dfllsync(&self) -> &Dfllsync {
95        &self.dfllsync
96    }
97    #[doc = "0x34 - 3.3V Brown-Out Detector (BOD33) Control"]
98    #[inline(always)]
99    pub const fn bod33(&self) -> &Bod33 {
100        &self.bod33
101    }
102    #[doc = "0x40 - Voltage References System (VREF) Control"]
103    #[inline(always)]
104    pub const fn vref(&self) -> &Vref {
105        &self.vref
106    }
107    #[doc = "0x44 - DPLL Control A"]
108    #[inline(always)]
109    pub const fn dpllctrla(&self) -> &Dpllctrla {
110        &self.dpllctrla
111    }
112    #[doc = "0x48 - DPLL Ratio Control"]
113    #[inline(always)]
114    pub const fn dpllratio(&self) -> &Dpllratio {
115        &self.dpllratio
116    }
117    #[doc = "0x4c - DPLL Control B"]
118    #[inline(always)]
119    pub const fn dpllctrlb(&self) -> &Dpllctrlb {
120        &self.dpllctrlb
121    }
122    #[doc = "0x50 - DPLL Status"]
123    #[inline(always)]
124    pub const fn dpllstatus(&self) -> &Dpllstatus {
125        &self.dpllstatus
126    }
127}
128#[doc = "INTENCLR (rw) register accessor: Interrupt Enable Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intenclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenclr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intenclr`]
129module"]
130#[doc(alias = "INTENCLR")]
131pub type Intenclr = crate::Reg<intenclr::IntenclrSpec>;
132#[doc = "Interrupt Enable Clear"]
133pub mod intenclr;
134#[doc = "INTENSET (rw) register accessor: Interrupt Enable Set\n\nYou can [`read`](crate::Reg::read) this register and get [`intenset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenset::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intenset`]
135module"]
136#[doc(alias = "INTENSET")]
137pub type Intenset = crate::Reg<intenset::IntensetSpec>;
138#[doc = "Interrupt Enable Set"]
139pub mod intenset;
140#[doc = "INTFLAG (rw) register accessor: Interrupt Flag Status and Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intflag::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intflag::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@intflag`]
141module"]
142#[doc(alias = "INTFLAG")]
143pub type Intflag = crate::Reg<intflag::IntflagSpec>;
144#[doc = "Interrupt Flag Status and Clear"]
145pub mod intflag;
146#[doc = "PCLKSR (r) register accessor: Power and Clocks Status\n\nYou can [`read`](crate::Reg::read) this register and get [`pclksr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pclksr`]
147module"]
148#[doc(alias = "PCLKSR")]
149pub type Pclksr = crate::Reg<pclksr::PclksrSpec>;
150#[doc = "Power and Clocks Status"]
151pub mod pclksr;
152#[doc = "XOSC (rw) register accessor: External Multipurpose Crystal Oscillator (XOSC) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`xosc::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`xosc::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@xosc`]
153module"]
154#[doc(alias = "XOSC")]
155pub type Xosc = crate::Reg<xosc::XoscSpec>;
156#[doc = "External Multipurpose Crystal Oscillator (XOSC) Control"]
157pub mod xosc;
158#[doc = "XOSC32K (rw) register accessor: 32kHz External Crystal Oscillator (XOSC32K) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`xosc32k::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`xosc32k::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@xosc32k`]
159module"]
160#[doc(alias = "XOSC32K")]
161pub type Xosc32k = crate::Reg<xosc32k::Xosc32kSpec>;
162#[doc = "32kHz External Crystal Oscillator (XOSC32K) Control"]
163pub mod xosc32k;
164#[doc = "OSC32K (rw) register accessor: 32kHz Internal Oscillator (OSC32K) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`osc32k::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`osc32k::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@osc32k`]
165module"]
166#[doc(alias = "OSC32K")]
167pub type Osc32k = crate::Reg<osc32k::Osc32kSpec>;
168#[doc = "32kHz Internal Oscillator (OSC32K) Control"]
169pub mod osc32k;
170#[doc = "OSCULP32K (rw) register accessor: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`osculp32k::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`osculp32k::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@osculp32k`]
171module"]
172#[doc(alias = "OSCULP32K")]
173pub type Osculp32k = crate::Reg<osculp32k::Osculp32kSpec>;
174#[doc = "32kHz Ultra Low Power Internal Oscillator (OSCULP32K) Control"]
175pub mod osculp32k;
176#[doc = "OSC8M (rw) register accessor: 8MHz Internal Oscillator (OSC8M) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`osc8m::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`osc8m::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@osc8m`]
177module"]
178#[doc(alias = "OSC8M")]
179pub type Osc8m = crate::Reg<osc8m::Osc8mSpec>;
180#[doc = "8MHz Internal Oscillator (OSC8M) Control"]
181pub mod osc8m;
182#[doc = "DFLLCTRL (rw) register accessor: DFLL48M Control\n\nYou can [`read`](crate::Reg::read) this register and get [`dfllctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dfllctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dfllctrl`]
183module"]
184#[doc(alias = "DFLLCTRL")]
185pub type Dfllctrl = crate::Reg<dfllctrl::DfllctrlSpec>;
186#[doc = "DFLL48M Control"]
187pub mod dfllctrl;
188#[doc = "DFLLVAL (rw) register accessor: DFLL48M Value\n\nYou can [`read`](crate::Reg::read) this register and get [`dfllval::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dfllval::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dfllval`]
189module"]
190#[doc(alias = "DFLLVAL")]
191pub type Dfllval = crate::Reg<dfllval::DfllvalSpec>;
192#[doc = "DFLL48M Value"]
193pub mod dfllval;
194#[doc = "DFLLMUL (rw) register accessor: DFLL48M Multiplier\n\nYou can [`read`](crate::Reg::read) this register and get [`dfllmul::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dfllmul::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dfllmul`]
195module"]
196#[doc(alias = "DFLLMUL")]
197pub type Dfllmul = crate::Reg<dfllmul::DfllmulSpec>;
198#[doc = "DFLL48M Multiplier"]
199pub mod dfllmul;
200#[doc = "DFLLSYNC (rw) register accessor: DFLL48M Synchronization\n\nYou can [`read`](crate::Reg::read) this register and get [`dfllsync::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dfllsync::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dfllsync`]
201module"]
202#[doc(alias = "DFLLSYNC")]
203pub type Dfllsync = crate::Reg<dfllsync::DfllsyncSpec>;
204#[doc = "DFLL48M Synchronization"]
205pub mod dfllsync;
206#[doc = "BOD33 (rw) register accessor: 3.3V Brown-Out Detector (BOD33) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`bod33::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bod33::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@bod33`]
207module"]
208#[doc(alias = "BOD33")]
209pub type Bod33 = crate::Reg<bod33::Bod33Spec>;
210#[doc = "3.3V Brown-Out Detector (BOD33) Control"]
211pub mod bod33;
212#[doc = "VREF (rw) register accessor: Voltage References System (VREF) Control\n\nYou can [`read`](crate::Reg::read) this register and get [`vref::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`vref::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@vref`]
213module"]
214#[doc(alias = "VREF")]
215pub type Vref = crate::Reg<vref::VrefSpec>;
216#[doc = "Voltage References System (VREF) Control"]
217pub mod vref;
218#[doc = "DPLLCTRLA (rw) register accessor: DPLL Control A\n\nYou can [`read`](crate::Reg::read) this register and get [`dpllctrla::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dpllctrla::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dpllctrla`]
219module"]
220#[doc(alias = "DPLLCTRLA")]
221pub type Dpllctrla = crate::Reg<dpllctrla::DpllctrlaSpec>;
222#[doc = "DPLL Control A"]
223pub mod dpllctrla;
224#[doc = "DPLLRATIO (rw) register accessor: DPLL Ratio Control\n\nYou can [`read`](crate::Reg::read) this register and get [`dpllratio::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dpllratio::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dpllratio`]
225module"]
226#[doc(alias = "DPLLRATIO")]
227pub type Dpllratio = crate::Reg<dpllratio::DpllratioSpec>;
228#[doc = "DPLL Ratio Control"]
229pub mod dpllratio;
230#[doc = "DPLLCTRLB (rw) register accessor: DPLL Control B\n\nYou can [`read`](crate::Reg::read) this register and get [`dpllctrlb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dpllctrlb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dpllctrlb`]
231module"]
232#[doc(alias = "DPLLCTRLB")]
233pub type Dpllctrlb = crate::Reg<dpllctrlb::DpllctrlbSpec>;
234#[doc = "DPLL Control B"]
235pub mod dpllctrlb;
236#[doc = "DPLLSTATUS (r) register accessor: DPLL Status\n\nYou can [`read`](crate::Reg::read) this register and get [`dpllstatus::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dpllstatus`]
237module"]
238#[doc(alias = "DPLLSTATUS")]
239pub type Dpllstatus = crate::Reg<dpllstatus::DpllstatusSpec>;
240#[doc = "DPLL Status"]
241pub mod dpllstatus;