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