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