efm32pg_pac/efm32pg12b500/
cmu.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "0x00 - CMU Control Register"]
5    pub ctrl: CTRL,
6    _reserved1: [u8; 0x0c],
7    #[doc = "0x10 - HFRCO Control Register"]
8    pub hfrcoctrl: HFRCOCTRL,
9    _reserved2: [u8; 0x04],
10    #[doc = "0x18 - AUXHFRCO Control Register"]
11    pub auxhfrcoctrl: AUXHFRCOCTRL,
12    _reserved3: [u8; 0x04],
13    #[doc = "0x20 - LFRCO Control Register"]
14    pub lfrcoctrl: LFRCOCTRL,
15    #[doc = "0x24 - HFXO Control Register"]
16    pub hfxoctrl: HFXOCTRL,
17    _reserved5: [u8; 0x04],
18    #[doc = "0x2c - HFXO Startup Control"]
19    pub hfxostartupctrl: HFXOSTARTUPCTRL,
20    #[doc = "0x30 - HFXO Steady State Control"]
21    pub hfxosteadystatectrl: HFXOSTEADYSTATECTRL,
22    #[doc = "0x34 - HFXO Timeout Control"]
23    pub hfxotimeoutctrl: HFXOTIMEOUTCTRL,
24    #[doc = "0x38 - LFXO Control Register"]
25    pub lfxoctrl: LFXOCTRL,
26    _reserved9: [u8; 0x04],
27    #[doc = "0x40 - DPLL Control Register"]
28    pub dpllctrl: DPLLCTRL,
29    #[doc = "0x44 - DPLL Control Register"]
30    pub dpllctrl1: DPLLCTRL1,
31    _reserved11: [u8; 0x08],
32    #[doc = "0x50 - Calibration Control Register"]
33    pub calctrl: CALCTRL,
34    #[doc = "0x54 - Calibration Counter Register"]
35    pub calcnt: CALCNT,
36    _reserved13: [u8; 0x08],
37    #[doc = "0x60 - Oscillator Enable/Disable Command Register"]
38    pub oscencmd: OSCENCMD,
39    #[doc = "0x64 - Command Register"]
40    pub cmd: CMD,
41    _reserved15: [u8; 0x08],
42    #[doc = "0x70 - Debug Trace Clock Select"]
43    pub dbgclksel: DBGCLKSEL,
44    #[doc = "0x74 - High Frequency Clock Select Command Register"]
45    pub hfclksel: HFCLKSEL,
46    _reserved17: [u8; 0x08],
47    #[doc = "0x80 - Low Frequency A Clock Select Register"]
48    pub lfaclksel: LFACLKSEL,
49    #[doc = "0x84 - Low Frequency B Clock Select Register"]
50    pub lfbclksel: LFBCLKSEL,
51    #[doc = "0x88 - Low Frequency E Clock Select Register"]
52    pub lfeclksel: LFECLKSEL,
53    _reserved20: [u8; 0x04],
54    #[doc = "0x90 - Status Register"]
55    pub status: STATUS,
56    #[doc = "0x94 - HFCLK Status Register"]
57    pub hfclkstatus: HFCLKSTATUS,
58    _reserved22: [u8; 0x04],
59    #[doc = "0x9c - HFXO Trim Status"]
60    pub hfxotrimstatus: HFXOTRIMSTATUS,
61    #[doc = "0xa0 - Interrupt Flag Register"]
62    pub if_: IF,
63    #[doc = "0xa4 - Interrupt Flag Set Register"]
64    pub ifs: IFS,
65    #[doc = "0xa8 - Interrupt Flag Clear Register"]
66    pub ifc: IFC,
67    #[doc = "0xac - Interrupt Enable Register"]
68    pub ien: IEN,
69    #[doc = "0xb0 - High Frequency Bus Clock Enable Register 0"]
70    pub hfbusclken0: HFBUSCLKEN0,
71    _reserved28: [u8; 0x0c],
72    #[doc = "0xc0 - High Frequency Peripheral Clock Enable Register 0"]
73    pub hfperclken0: HFPERCLKEN0,
74    _reserved29: [u8; 0x1c],
75    #[doc = "0xe0 - Low Frequency a Clock Enable Register 0 (Async Reg)"]
76    pub lfaclken0: LFACLKEN0,
77    _reserved30: [u8; 0x04],
78    #[doc = "0xe8 - Low Frequency B Clock Enable Register 0 (Async Reg)"]
79    pub lfbclken0: LFBCLKEN0,
80    _reserved31: [u8; 0x04],
81    #[doc = "0xf0 - Low Frequency E Clock Enable Register 0 (Async Reg)"]
82    pub lfeclken0: LFECLKEN0,
83    _reserved32: [u8; 0x0c],
84    #[doc = "0x100 - High Frequency Clock Prescaler Register"]
85    pub hfpresc: HFPRESC,
86    _reserved33: [u8; 0x04],
87    #[doc = "0x108 - High Frequency Core Clock Prescaler Register"]
88    pub hfcorepresc: HFCOREPRESC,
89    #[doc = "0x10c - High Frequency Peripheral Clock Prescaler Register"]
90    pub hfperpresc: HFPERPRESC,
91    _reserved35: [u8; 0x04],
92    #[doc = "0x114 - High Frequency Export Clock Prescaler Register"]
93    pub hfexppresc: HFEXPPRESC,
94    _reserved36: [u8; 0x08],
95    #[doc = "0x120 - Low Frequency a Prescaler Register 0 (Async Reg)"]
96    pub lfapresc0: LFAPRESC0,
97    _reserved37: [u8; 0x04],
98    #[doc = "0x128 - Low Frequency B Prescaler Register 0 (Async Reg)"]
99    pub lfbpresc0: LFBPRESC0,
100    _reserved38: [u8; 0x04],
101    #[doc = "0x130 - Low Frequency E Prescaler Register 0 (Async Reg)"]
102    pub lfepresc0: LFEPRESC0,
103    _reserved39: [u8; 0x0c],
104    #[doc = "0x140 - Synchronization Busy Register"]
105    pub syncbusy: SYNCBUSY,
106    #[doc = "0x144 - Freeze Register"]
107    pub freeze: FREEZE,
108    _reserved41: [u8; 0x08],
109    #[doc = "0x150 - PCNT Control Register"]
110    pub pcntctrl: PCNTCTRL,
111    _reserved42: [u8; 0x08],
112    #[doc = "0x15c - ADC Control Register"]
113    pub adcctrl: ADCCTRL,
114    _reserved43: [u8; 0x10],
115    #[doc = "0x170 - I/O Routing Pin Enable Register"]
116    pub routepen: ROUTEPEN,
117    #[doc = "0x174 - I/O Routing Location Register"]
118    pub routeloc0: ROUTELOC0,
119    #[doc = "0x178 - I/O Routing Location Register"]
120    pub routeloc1: ROUTELOC1,
121    _reserved46: [u8; 0x04],
122    #[doc = "0x180 - Configuration Lock Register"]
123    pub lock: LOCK,
124    #[doc = "0x184 - HFRCO Spread Spectrum Register"]
125    pub hfrcoss: HFRCOSS,
126}
127#[doc = "CTRL (rw) register accessor: an alias for `Reg<CTRL_SPEC>`"]
128pub type CTRL = crate::Reg<ctrl::CTRL_SPEC>;
129#[doc = "CMU Control Register"]
130pub mod ctrl;
131#[doc = "HFRCOCTRL (rw) register accessor: an alias for `Reg<HFRCOCTRL_SPEC>`"]
132pub type HFRCOCTRL = crate::Reg<hfrcoctrl::HFRCOCTRL_SPEC>;
133#[doc = "HFRCO Control Register"]
134pub mod hfrcoctrl;
135#[doc = "AUXHFRCOCTRL (rw) register accessor: an alias for `Reg<AUXHFRCOCTRL_SPEC>`"]
136pub type AUXHFRCOCTRL = crate::Reg<auxhfrcoctrl::AUXHFRCOCTRL_SPEC>;
137#[doc = "AUXHFRCO Control Register"]
138pub mod auxhfrcoctrl;
139#[doc = "LFRCOCTRL (rw) register accessor: an alias for `Reg<LFRCOCTRL_SPEC>`"]
140pub type LFRCOCTRL = crate::Reg<lfrcoctrl::LFRCOCTRL_SPEC>;
141#[doc = "LFRCO Control Register"]
142pub mod lfrcoctrl;
143#[doc = "HFXOCTRL (rw) register accessor: an alias for `Reg<HFXOCTRL_SPEC>`"]
144pub type HFXOCTRL = crate::Reg<hfxoctrl::HFXOCTRL_SPEC>;
145#[doc = "HFXO Control Register"]
146pub mod hfxoctrl;
147#[doc = "HFXOSTARTUPCTRL (rw) register accessor: an alias for `Reg<HFXOSTARTUPCTRL_SPEC>`"]
148pub type HFXOSTARTUPCTRL = crate::Reg<hfxostartupctrl::HFXOSTARTUPCTRL_SPEC>;
149#[doc = "HFXO Startup Control"]
150pub mod hfxostartupctrl;
151#[doc = "HFXOSTEADYSTATECTRL (rw) register accessor: an alias for `Reg<HFXOSTEADYSTATECTRL_SPEC>`"]
152pub type HFXOSTEADYSTATECTRL = crate::Reg<hfxosteadystatectrl::HFXOSTEADYSTATECTRL_SPEC>;
153#[doc = "HFXO Steady State Control"]
154pub mod hfxosteadystatectrl;
155#[doc = "HFXOTIMEOUTCTRL (rw) register accessor: an alias for `Reg<HFXOTIMEOUTCTRL_SPEC>`"]
156pub type HFXOTIMEOUTCTRL = crate::Reg<hfxotimeoutctrl::HFXOTIMEOUTCTRL_SPEC>;
157#[doc = "HFXO Timeout Control"]
158pub mod hfxotimeoutctrl;
159#[doc = "LFXOCTRL (rw) register accessor: an alias for `Reg<LFXOCTRL_SPEC>`"]
160pub type LFXOCTRL = crate::Reg<lfxoctrl::LFXOCTRL_SPEC>;
161#[doc = "LFXO Control Register"]
162pub mod lfxoctrl;
163#[doc = "DPLLCTRL (rw) register accessor: an alias for `Reg<DPLLCTRL_SPEC>`"]
164pub type DPLLCTRL = crate::Reg<dpllctrl::DPLLCTRL_SPEC>;
165#[doc = "DPLL Control Register"]
166pub mod dpllctrl;
167#[doc = "DPLLCTRL1 (rw) register accessor: an alias for `Reg<DPLLCTRL1_SPEC>`"]
168pub type DPLLCTRL1 = crate::Reg<dpllctrl1::DPLLCTRL1_SPEC>;
169#[doc = "DPLL Control Register"]
170pub mod dpllctrl1;
171#[doc = "CALCTRL (rw) register accessor: an alias for `Reg<CALCTRL_SPEC>`"]
172pub type CALCTRL = crate::Reg<calctrl::CALCTRL_SPEC>;
173#[doc = "Calibration Control Register"]
174pub mod calctrl;
175#[doc = "CALCNT (rw) register accessor: an alias for `Reg<CALCNT_SPEC>`"]
176pub type CALCNT = crate::Reg<calcnt::CALCNT_SPEC>;
177#[doc = "Calibration Counter Register"]
178pub mod calcnt;
179#[doc = "OSCENCMD (w) register accessor: an alias for `Reg<OSCENCMD_SPEC>`"]
180pub type OSCENCMD = crate::Reg<oscencmd::OSCENCMD_SPEC>;
181#[doc = "Oscillator Enable/Disable Command Register"]
182pub mod oscencmd;
183#[doc = "CMD (w) register accessor: an alias for `Reg<CMD_SPEC>`"]
184pub type CMD = crate::Reg<cmd::CMD_SPEC>;
185#[doc = "Command Register"]
186pub mod cmd;
187#[doc = "DBGCLKSEL (rw) register accessor: an alias for `Reg<DBGCLKSEL_SPEC>`"]
188pub type DBGCLKSEL = crate::Reg<dbgclksel::DBGCLKSEL_SPEC>;
189#[doc = "Debug Trace Clock Select"]
190pub mod dbgclksel;
191#[doc = "HFCLKSEL (w) register accessor: an alias for `Reg<HFCLKSEL_SPEC>`"]
192pub type HFCLKSEL = crate::Reg<hfclksel::HFCLKSEL_SPEC>;
193#[doc = "High Frequency Clock Select Command Register"]
194pub mod hfclksel;
195#[doc = "LFACLKSEL (rw) register accessor: an alias for `Reg<LFACLKSEL_SPEC>`"]
196pub type LFACLKSEL = crate::Reg<lfaclksel::LFACLKSEL_SPEC>;
197#[doc = "Low Frequency A Clock Select Register"]
198pub mod lfaclksel;
199#[doc = "LFBCLKSEL (rw) register accessor: an alias for `Reg<LFBCLKSEL_SPEC>`"]
200pub type LFBCLKSEL = crate::Reg<lfbclksel::LFBCLKSEL_SPEC>;
201#[doc = "Low Frequency B Clock Select Register"]
202pub mod lfbclksel;
203#[doc = "LFECLKSEL (rw) register accessor: an alias for `Reg<LFECLKSEL_SPEC>`"]
204pub type LFECLKSEL = crate::Reg<lfeclksel::LFECLKSEL_SPEC>;
205#[doc = "Low Frequency E Clock Select Register"]
206pub mod lfeclksel;
207#[doc = "STATUS (r) register accessor: an alias for `Reg<STATUS_SPEC>`"]
208pub type STATUS = crate::Reg<status::STATUS_SPEC>;
209#[doc = "Status Register"]
210pub mod status;
211#[doc = "HFCLKSTATUS (r) register accessor: an alias for `Reg<HFCLKSTATUS_SPEC>`"]
212pub type HFCLKSTATUS = crate::Reg<hfclkstatus::HFCLKSTATUS_SPEC>;
213#[doc = "HFCLK Status Register"]
214pub mod hfclkstatus;
215#[doc = "HFXOTRIMSTATUS (r) register accessor: an alias for `Reg<HFXOTRIMSTATUS_SPEC>`"]
216pub type HFXOTRIMSTATUS = crate::Reg<hfxotrimstatus::HFXOTRIMSTATUS_SPEC>;
217#[doc = "HFXO Trim Status"]
218pub mod hfxotrimstatus;
219#[doc = "IF (r) register accessor: an alias for `Reg<IF_SPEC>`"]
220pub type IF = crate::Reg<if_::IF_SPEC>;
221#[doc = "Interrupt Flag Register"]
222pub mod if_;
223#[doc = "IFS (w) register accessor: an alias for `Reg<IFS_SPEC>`"]
224pub type IFS = crate::Reg<ifs::IFS_SPEC>;
225#[doc = "Interrupt Flag Set Register"]
226pub mod ifs;
227#[doc = "IFC (w) register accessor: an alias for `Reg<IFC_SPEC>`"]
228pub type IFC = crate::Reg<ifc::IFC_SPEC>;
229#[doc = "Interrupt Flag Clear Register"]
230pub mod ifc;
231#[doc = "IEN (rw) register accessor: an alias for `Reg<IEN_SPEC>`"]
232pub type IEN = crate::Reg<ien::IEN_SPEC>;
233#[doc = "Interrupt Enable Register"]
234pub mod ien;
235#[doc = "HFBUSCLKEN0 (rw) register accessor: an alias for `Reg<HFBUSCLKEN0_SPEC>`"]
236pub type HFBUSCLKEN0 = crate::Reg<hfbusclken0::HFBUSCLKEN0_SPEC>;
237#[doc = "High Frequency Bus Clock Enable Register 0"]
238pub mod hfbusclken0;
239#[doc = "HFPERCLKEN0 (rw) register accessor: an alias for `Reg<HFPERCLKEN0_SPEC>`"]
240pub type HFPERCLKEN0 = crate::Reg<hfperclken0::HFPERCLKEN0_SPEC>;
241#[doc = "High Frequency Peripheral Clock Enable Register 0"]
242pub mod hfperclken0;
243#[doc = "LFACLKEN0 (rw) register accessor: an alias for `Reg<LFACLKEN0_SPEC>`"]
244pub type LFACLKEN0 = crate::Reg<lfaclken0::LFACLKEN0_SPEC>;
245#[doc = "Low Frequency a Clock Enable Register 0 (Async Reg)"]
246pub mod lfaclken0;
247#[doc = "LFBCLKEN0 (rw) register accessor: an alias for `Reg<LFBCLKEN0_SPEC>`"]
248pub type LFBCLKEN0 = crate::Reg<lfbclken0::LFBCLKEN0_SPEC>;
249#[doc = "Low Frequency B Clock Enable Register 0 (Async Reg)"]
250pub mod lfbclken0;
251#[doc = "LFECLKEN0 (rw) register accessor: an alias for `Reg<LFECLKEN0_SPEC>`"]
252pub type LFECLKEN0 = crate::Reg<lfeclken0::LFECLKEN0_SPEC>;
253#[doc = "Low Frequency E Clock Enable Register 0 (Async Reg)"]
254pub mod lfeclken0;
255#[doc = "HFPRESC (rw) register accessor: an alias for `Reg<HFPRESC_SPEC>`"]
256pub type HFPRESC = crate::Reg<hfpresc::HFPRESC_SPEC>;
257#[doc = "High Frequency Clock Prescaler Register"]
258pub mod hfpresc;
259#[doc = "HFCOREPRESC (rw) register accessor: an alias for `Reg<HFCOREPRESC_SPEC>`"]
260pub type HFCOREPRESC = crate::Reg<hfcorepresc::HFCOREPRESC_SPEC>;
261#[doc = "High Frequency Core Clock Prescaler Register"]
262pub mod hfcorepresc;
263#[doc = "HFPERPRESC (rw) register accessor: an alias for `Reg<HFPERPRESC_SPEC>`"]
264pub type HFPERPRESC = crate::Reg<hfperpresc::HFPERPRESC_SPEC>;
265#[doc = "High Frequency Peripheral Clock Prescaler Register"]
266pub mod hfperpresc;
267#[doc = "HFEXPPRESC (rw) register accessor: an alias for `Reg<HFEXPPRESC_SPEC>`"]
268pub type HFEXPPRESC = crate::Reg<hfexppresc::HFEXPPRESC_SPEC>;
269#[doc = "High Frequency Export Clock Prescaler Register"]
270pub mod hfexppresc;
271#[doc = "LFAPRESC0 (rw) register accessor: an alias for `Reg<LFAPRESC0_SPEC>`"]
272pub type LFAPRESC0 = crate::Reg<lfapresc0::LFAPRESC0_SPEC>;
273#[doc = "Low Frequency a Prescaler Register 0 (Async Reg)"]
274pub mod lfapresc0;
275#[doc = "LFBPRESC0 (rw) register accessor: an alias for `Reg<LFBPRESC0_SPEC>`"]
276pub type LFBPRESC0 = crate::Reg<lfbpresc0::LFBPRESC0_SPEC>;
277#[doc = "Low Frequency B Prescaler Register 0 (Async Reg)"]
278pub mod lfbpresc0;
279#[doc = "LFEPRESC0 (rw) register accessor: an alias for `Reg<LFEPRESC0_SPEC>`"]
280pub type LFEPRESC0 = crate::Reg<lfepresc0::LFEPRESC0_SPEC>;
281#[doc = "Low Frequency E Prescaler Register 0 (Async Reg)"]
282pub mod lfepresc0;
283#[doc = "SYNCBUSY (r) register accessor: an alias for `Reg<SYNCBUSY_SPEC>`"]
284pub type SYNCBUSY = crate::Reg<syncbusy::SYNCBUSY_SPEC>;
285#[doc = "Synchronization Busy Register"]
286pub mod syncbusy;
287#[doc = "FREEZE (rw) register accessor: an alias for `Reg<FREEZE_SPEC>`"]
288pub type FREEZE = crate::Reg<freeze::FREEZE_SPEC>;
289#[doc = "Freeze Register"]
290pub mod freeze;
291#[doc = "PCNTCTRL (rw) register accessor: an alias for `Reg<PCNTCTRL_SPEC>`"]
292pub type PCNTCTRL = crate::Reg<pcntctrl::PCNTCTRL_SPEC>;
293#[doc = "PCNT Control Register"]
294pub mod pcntctrl;
295#[doc = "ADCCTRL (rw) register accessor: an alias for `Reg<ADCCTRL_SPEC>`"]
296pub type ADCCTRL = crate::Reg<adcctrl::ADCCTRL_SPEC>;
297#[doc = "ADC Control Register"]
298pub mod adcctrl;
299#[doc = "ROUTEPEN (rw) register accessor: an alias for `Reg<ROUTEPEN_SPEC>`"]
300pub type ROUTEPEN = crate::Reg<routepen::ROUTEPEN_SPEC>;
301#[doc = "I/O Routing Pin Enable Register"]
302pub mod routepen;
303#[doc = "ROUTELOC0 (rw) register accessor: an alias for `Reg<ROUTELOC0_SPEC>`"]
304pub type ROUTELOC0 = crate::Reg<routeloc0::ROUTELOC0_SPEC>;
305#[doc = "I/O Routing Location Register"]
306pub mod routeloc0;
307#[doc = "ROUTELOC1 (rw) register accessor: an alias for `Reg<ROUTELOC1_SPEC>`"]
308pub type ROUTELOC1 = crate::Reg<routeloc1::ROUTELOC1_SPEC>;
309#[doc = "I/O Routing Location Register"]
310pub mod routeloc1;
311#[doc = "LOCK (rw) register accessor: an alias for `Reg<LOCK_SPEC>`"]
312pub type LOCK = crate::Reg<lock::LOCK_SPEC>;
313#[doc = "Configuration Lock Register"]
314pub mod lock;
315#[doc = "HFRCOSS (rw) register accessor: an alias for `Reg<HFRCOSS_SPEC>`"]
316pub type HFRCOSS = crate::Reg<hfrcoss::HFRCOSS_SPEC>;
317#[doc = "HFRCO Spread Spectrum Register"]
318pub mod hfrcoss;