1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 #[doc = "0x00 - Enable radio in TX mode."]
5 pub tasks_txen: TASKS_TXEN,
6 #[doc = "0x04 - Enable radio in RX mode."]
7 pub tasks_rxen: TASKS_RXEN,
8 #[doc = "0x08 - Start radio."]
9 pub tasks_start: TASKS_START,
10 #[doc = "0x0c - Stop radio."]
11 pub tasks_stop: TASKS_STOP,
12 #[doc = "0x10 - Disable radio."]
13 pub tasks_disable: TASKS_DISABLE,
14 #[doc = "0x14 - Start the RSSI and take one sample of the receive signal strength."]
15 pub tasks_rssistart: TASKS_RSSISTART,
16 #[doc = "0x18 - Stop the RSSI measurement."]
17 pub tasks_rssistop: TASKS_RSSISTOP,
18 #[doc = "0x1c - Start the bit counter."]
19 pub tasks_bcstart: TASKS_BCSTART,
20 #[doc = "0x20 - Stop the bit counter."]
21 pub tasks_bcstop: TASKS_BCSTOP,
22 _reserved9: [u8; 0xdc],
23 #[doc = "0x100 - Ready event."]
24 pub events_ready: EVENTS_READY,
25 #[doc = "0x104 - Address event."]
26 pub events_address: EVENTS_ADDRESS,
27 #[doc = "0x108 - Payload event."]
28 pub events_payload: EVENTS_PAYLOAD,
29 #[doc = "0x10c - End event."]
30 pub events_end: EVENTS_END,
31 #[doc = "0x110 - Disable event."]
32 pub events_disabled: EVENTS_DISABLED,
33 #[doc = "0x114 - A device address match occurred on the last received packet."]
34 pub events_devmatch: EVENTS_DEVMATCH,
35 #[doc = "0x118 - No device address match occurred on the last received packet."]
36 pub events_devmiss: EVENTS_DEVMISS,
37 #[doc = "0x11c - Sampling of the receive signal strength complete. A new RSSI sample is ready for readout at the RSSISAMPLE register."]
38 pub events_rssiend: EVENTS_RSSIEND,
39 _reserved17: [u8; 0x08],
40 #[doc = "0x128 - Bit counter reached bit count value specified in BCC register."]
41 pub events_bcmatch: EVENTS_BCMATCH,
42 _reserved18: [u8; 0xd4],
43 #[doc = "0x200 - Shortcuts for the radio."]
44 pub shorts: SHORTS,
45 _reserved19: [u8; 0x0100],
46 #[doc = "0x304 - Interrupt enable set register."]
47 pub intenset: INTENSET,
48 #[doc = "0x308 - Interrupt enable clear register."]
49 pub intenclr: INTENCLR,
50 _reserved21: [u8; 0xf4],
51 #[doc = "0x400 - CRC status of received packet."]
52 pub crcstatus: CRCSTATUS,
53 _reserved22: [u8; 0x04],
54 #[doc = "0x408 - Received address."]
55 pub rxmatch: RXMATCH,
56 #[doc = "0x40c - Received CRC."]
57 pub rxcrc: RXCRC,
58 #[doc = "0x410 - Device address match index."]
59 pub dai: DAI,
60 _reserved25: [u8; 0xf0],
61 #[doc = "0x504 - Packet pointer. Decision point: START task."]
62 pub packetptr: PACKETPTR,
63 #[doc = "0x508 - Frequency."]
64 pub frequency: FREQUENCY,
65 #[doc = "0x50c - Output power."]
66 pub txpower: TXPOWER,
67 #[doc = "0x510 - Data rate and modulation."]
68 pub mode: MODE,
69 #[doc = "0x514 - Packet configuration 0."]
70 pub pcnf0: PCNF0,
71 #[doc = "0x518 - Packet configuration 1."]
72 pub pcnf1: PCNF1,
73 #[doc = "0x51c - Radio base address 0. Decision point: START task."]
74 pub base0: BASE0,
75 #[doc = "0x520 - Radio base address 1. Decision point: START task."]
76 pub base1: BASE1,
77 #[doc = "0x524 - Prefixes bytes for logical addresses 0 to 3."]
78 pub prefix0: PREFIX0,
79 #[doc = "0x528 - Prefixes bytes for logical addresses 4 to 7."]
80 pub prefix1: PREFIX1,
81 #[doc = "0x52c - Transmit address select."]
82 pub txaddress: TXADDRESS,
83 #[doc = "0x530 - Receive address select."]
84 pub rxaddresses: RXADDRESSES,
85 #[doc = "0x534 - CRC configuration."]
86 pub crccnf: CRCCNF,
87 #[doc = "0x538 - CRC polynomial."]
88 pub crcpoly: CRCPOLY,
89 #[doc = "0x53c - CRC initial value."]
90 pub crcinit: CRCINIT,
91 #[doc = "0x540 - Test features enable register."]
92 pub test: TEST,
93 #[doc = "0x544 - Inter Frame Spacing in microseconds."]
94 pub tifs: TIFS,
95 #[doc = "0x548 - RSSI sample."]
96 pub rssisample: RSSISAMPLE,
97 _reserved43: [u8; 0x04],
98 #[doc = "0x550 - Current radio state."]
99 pub state: STATE,
100 #[doc = "0x554 - Data whitening initial value."]
101 pub datawhiteiv: DATAWHITEIV,
102 _reserved45: [u8; 0x08],
103 #[doc = "0x560 - Bit counter compare."]
104 pub bcc: BCC,
105 _reserved46: [u8; 0x9c],
106 #[doc = "0x600..0x620 - Device address base segment."]
107 pub dab: [DAB; 8],
108 #[doc = "0x620..0x640 - Device address prefix."]
109 pub dap: [DAP; 8],
110 #[doc = "0x640 - Device address match configuration."]
111 pub dacnf: DACNF,
112 _reserved49: [u8; 0xe0],
113 #[doc = "0x724 - Trim value override register 0."]
114 pub override0: OVERRIDE0,
115 #[doc = "0x728 - Trim value override register 1."]
116 pub override1: OVERRIDE1,
117 #[doc = "0x72c - Trim value override register 2."]
118 pub override2: OVERRIDE2,
119 #[doc = "0x730 - Trim value override register 3."]
120 pub override3: OVERRIDE3,
121 #[doc = "0x734 - Trim value override register 4."]
122 pub override4: OVERRIDE4,
123 _reserved54: [u8; 0x08c4],
124 #[doc = "0xffc - Peripheral power control."]
125 pub power: POWER,
126}
127#[doc = "TASKS_TXEN (w) register accessor: an alias for `Reg<TASKS_TXEN_SPEC>`"]
128pub type TASKS_TXEN = crate::Reg<tasks_txen::TASKS_TXEN_SPEC>;
129#[doc = "Enable radio in TX mode."]
130pub mod tasks_txen;
131#[doc = "TASKS_RXEN (w) register accessor: an alias for `Reg<TASKS_RXEN_SPEC>`"]
132pub type TASKS_RXEN = crate::Reg<tasks_rxen::TASKS_RXEN_SPEC>;
133#[doc = "Enable radio in RX mode."]
134pub mod tasks_rxen;
135#[doc = "TASKS_START (w) register accessor: an alias for `Reg<TASKS_START_SPEC>`"]
136pub type TASKS_START = crate::Reg<tasks_start::TASKS_START_SPEC>;
137#[doc = "Start radio."]
138pub mod tasks_start;
139#[doc = "TASKS_STOP (w) register accessor: an alias for `Reg<TASKS_STOP_SPEC>`"]
140pub type TASKS_STOP = crate::Reg<tasks_stop::TASKS_STOP_SPEC>;
141#[doc = "Stop radio."]
142pub mod tasks_stop;
143#[doc = "TASKS_DISABLE (w) register accessor: an alias for `Reg<TASKS_DISABLE_SPEC>`"]
144pub type TASKS_DISABLE = crate::Reg<tasks_disable::TASKS_DISABLE_SPEC>;
145#[doc = "Disable radio."]
146pub mod tasks_disable;
147#[doc = "TASKS_RSSISTART (w) register accessor: an alias for `Reg<TASKS_RSSISTART_SPEC>`"]
148pub type TASKS_RSSISTART = crate::Reg<tasks_rssistart::TASKS_RSSISTART_SPEC>;
149#[doc = "Start the RSSI and take one sample of the receive signal strength."]
150pub mod tasks_rssistart;
151#[doc = "TASKS_RSSISTOP (w) register accessor: an alias for `Reg<TASKS_RSSISTOP_SPEC>`"]
152pub type TASKS_RSSISTOP = crate::Reg<tasks_rssistop::TASKS_RSSISTOP_SPEC>;
153#[doc = "Stop the RSSI measurement."]
154pub mod tasks_rssistop;
155#[doc = "TASKS_BCSTART (w) register accessor: an alias for `Reg<TASKS_BCSTART_SPEC>`"]
156pub type TASKS_BCSTART = crate::Reg<tasks_bcstart::TASKS_BCSTART_SPEC>;
157#[doc = "Start the bit counter."]
158pub mod tasks_bcstart;
159#[doc = "TASKS_BCSTOP (w) register accessor: an alias for `Reg<TASKS_BCSTOP_SPEC>`"]
160pub type TASKS_BCSTOP = crate::Reg<tasks_bcstop::TASKS_BCSTOP_SPEC>;
161#[doc = "Stop the bit counter."]
162pub mod tasks_bcstop;
163#[doc = "EVENTS_READY (rw) register accessor: an alias for `Reg<EVENTS_READY_SPEC>`"]
164pub type EVENTS_READY = crate::Reg<events_ready::EVENTS_READY_SPEC>;
165#[doc = "Ready event."]
166pub mod events_ready;
167#[doc = "EVENTS_ADDRESS (rw) register accessor: an alias for `Reg<EVENTS_ADDRESS_SPEC>`"]
168pub type EVENTS_ADDRESS = crate::Reg<events_address::EVENTS_ADDRESS_SPEC>;
169#[doc = "Address event."]
170pub mod events_address;
171#[doc = "EVENTS_PAYLOAD (rw) register accessor: an alias for `Reg<EVENTS_PAYLOAD_SPEC>`"]
172pub type EVENTS_PAYLOAD = crate::Reg<events_payload::EVENTS_PAYLOAD_SPEC>;
173#[doc = "Payload event."]
174pub mod events_payload;
175#[doc = "EVENTS_END (rw) register accessor: an alias for `Reg<EVENTS_END_SPEC>`"]
176pub type EVENTS_END = crate::Reg<events_end::EVENTS_END_SPEC>;
177#[doc = "End event."]
178pub mod events_end;
179#[doc = "EVENTS_DISABLED (rw) register accessor: an alias for `Reg<EVENTS_DISABLED_SPEC>`"]
180pub type EVENTS_DISABLED = crate::Reg<events_disabled::EVENTS_DISABLED_SPEC>;
181#[doc = "Disable event."]
182pub mod events_disabled;
183#[doc = "EVENTS_DEVMATCH (rw) register accessor: an alias for `Reg<EVENTS_DEVMATCH_SPEC>`"]
184pub type EVENTS_DEVMATCH = crate::Reg<events_devmatch::EVENTS_DEVMATCH_SPEC>;
185#[doc = "A device address match occurred on the last received packet."]
186pub mod events_devmatch;
187#[doc = "EVENTS_DEVMISS (rw) register accessor: an alias for `Reg<EVENTS_DEVMISS_SPEC>`"]
188pub type EVENTS_DEVMISS = crate::Reg<events_devmiss::EVENTS_DEVMISS_SPEC>;
189#[doc = "No device address match occurred on the last received packet."]
190pub mod events_devmiss;
191#[doc = "EVENTS_RSSIEND (rw) register accessor: an alias for `Reg<EVENTS_RSSIEND_SPEC>`"]
192pub type EVENTS_RSSIEND = crate::Reg<events_rssiend::EVENTS_RSSIEND_SPEC>;
193#[doc = "Sampling of the receive signal strength complete. A new RSSI sample is ready for readout at the RSSISAMPLE register."]
194pub mod events_rssiend;
195#[doc = "EVENTS_BCMATCH (rw) register accessor: an alias for `Reg<EVENTS_BCMATCH_SPEC>`"]
196pub type EVENTS_BCMATCH = crate::Reg<events_bcmatch::EVENTS_BCMATCH_SPEC>;
197#[doc = "Bit counter reached bit count value specified in BCC register."]
198pub mod events_bcmatch;
199#[doc = "SHORTS (rw) register accessor: an alias for `Reg<SHORTS_SPEC>`"]
200pub type SHORTS = crate::Reg<shorts::SHORTS_SPEC>;
201#[doc = "Shortcuts for the radio."]
202pub mod shorts;
203#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
204pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
205#[doc = "Interrupt enable set register."]
206pub mod intenset;
207#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
208pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
209#[doc = "Interrupt enable clear register."]
210pub mod intenclr;
211#[doc = "CRCSTATUS (r) register accessor: an alias for `Reg<CRCSTATUS_SPEC>`"]
212pub type CRCSTATUS = crate::Reg<crcstatus::CRCSTATUS_SPEC>;
213#[doc = "CRC status of received packet."]
214pub mod crcstatus;
215#[doc = "RXMATCH (r) register accessor: an alias for `Reg<RXMATCH_SPEC>`"]
216pub type RXMATCH = crate::Reg<rxmatch::RXMATCH_SPEC>;
217#[doc = "Received address."]
218pub mod rxmatch;
219#[doc = "RXCRC (r) register accessor: an alias for `Reg<RXCRC_SPEC>`"]
220pub type RXCRC = crate::Reg<rxcrc::RXCRC_SPEC>;
221#[doc = "Received CRC."]
222pub mod rxcrc;
223#[doc = "DAI (r) register accessor: an alias for `Reg<DAI_SPEC>`"]
224pub type DAI = crate::Reg<dai::DAI_SPEC>;
225#[doc = "Device address match index."]
226pub mod dai;
227#[doc = "PACKETPTR (rw) register accessor: an alias for `Reg<PACKETPTR_SPEC>`"]
228pub type PACKETPTR = crate::Reg<packetptr::PACKETPTR_SPEC>;
229#[doc = "Packet pointer. Decision point: START task."]
230pub mod packetptr;
231#[doc = "FREQUENCY (rw) register accessor: an alias for `Reg<FREQUENCY_SPEC>`"]
232pub type FREQUENCY = crate::Reg<frequency::FREQUENCY_SPEC>;
233#[doc = "Frequency."]
234pub mod frequency;
235#[doc = "TXPOWER (rw) register accessor: an alias for `Reg<TXPOWER_SPEC>`"]
236pub type TXPOWER = crate::Reg<txpower::TXPOWER_SPEC>;
237#[doc = "Output power."]
238pub mod txpower;
239#[doc = "MODE (rw) register accessor: an alias for `Reg<MODE_SPEC>`"]
240pub type MODE = crate::Reg<mode::MODE_SPEC>;
241#[doc = "Data rate and modulation."]
242pub mod mode;
243#[doc = "PCNF0 (rw) register accessor: an alias for `Reg<PCNF0_SPEC>`"]
244pub type PCNF0 = crate::Reg<pcnf0::PCNF0_SPEC>;
245#[doc = "Packet configuration 0."]
246pub mod pcnf0;
247#[doc = "PCNF1 (rw) register accessor: an alias for `Reg<PCNF1_SPEC>`"]
248pub type PCNF1 = crate::Reg<pcnf1::PCNF1_SPEC>;
249#[doc = "Packet configuration 1."]
250pub mod pcnf1;
251#[doc = "BASE0 (rw) register accessor: an alias for `Reg<BASE0_SPEC>`"]
252pub type BASE0 = crate::Reg<base0::BASE0_SPEC>;
253#[doc = "Radio base address 0. Decision point: START task."]
254pub mod base0;
255#[doc = "BASE1 (rw) register accessor: an alias for `Reg<BASE1_SPEC>`"]
256pub type BASE1 = crate::Reg<base1::BASE1_SPEC>;
257#[doc = "Radio base address 1. Decision point: START task."]
258pub mod base1;
259#[doc = "PREFIX0 (rw) register accessor: an alias for `Reg<PREFIX0_SPEC>`"]
260pub type PREFIX0 = crate::Reg<prefix0::PREFIX0_SPEC>;
261#[doc = "Prefixes bytes for logical addresses 0 to 3."]
262pub mod prefix0;
263#[doc = "PREFIX1 (rw) register accessor: an alias for `Reg<PREFIX1_SPEC>`"]
264pub type PREFIX1 = crate::Reg<prefix1::PREFIX1_SPEC>;
265#[doc = "Prefixes bytes for logical addresses 4 to 7."]
266pub mod prefix1;
267#[doc = "TXADDRESS (rw) register accessor: an alias for `Reg<TXADDRESS_SPEC>`"]
268pub type TXADDRESS = crate::Reg<txaddress::TXADDRESS_SPEC>;
269#[doc = "Transmit address select."]
270pub mod txaddress;
271#[doc = "RXADDRESSES (rw) register accessor: an alias for `Reg<RXADDRESSES_SPEC>`"]
272pub type RXADDRESSES = crate::Reg<rxaddresses::RXADDRESSES_SPEC>;
273#[doc = "Receive address select."]
274pub mod rxaddresses;
275#[doc = "CRCCNF (rw) register accessor: an alias for `Reg<CRCCNF_SPEC>`"]
276pub type CRCCNF = crate::Reg<crccnf::CRCCNF_SPEC>;
277#[doc = "CRC configuration."]
278pub mod crccnf;
279#[doc = "CRCPOLY (rw) register accessor: an alias for `Reg<CRCPOLY_SPEC>`"]
280pub type CRCPOLY = crate::Reg<crcpoly::CRCPOLY_SPEC>;
281#[doc = "CRC polynomial."]
282pub mod crcpoly;
283#[doc = "CRCINIT (rw) register accessor: an alias for `Reg<CRCINIT_SPEC>`"]
284pub type CRCINIT = crate::Reg<crcinit::CRCINIT_SPEC>;
285#[doc = "CRC initial value."]
286pub mod crcinit;
287#[doc = "TEST (rw) register accessor: an alias for `Reg<TEST_SPEC>`"]
288pub type TEST = crate::Reg<test::TEST_SPEC>;
289#[doc = "Test features enable register."]
290pub mod test;
291#[doc = "TIFS (rw) register accessor: an alias for `Reg<TIFS_SPEC>`"]
292pub type TIFS = crate::Reg<tifs::TIFS_SPEC>;
293#[doc = "Inter Frame Spacing in microseconds."]
294pub mod tifs;
295#[doc = "RSSISAMPLE (r) register accessor: an alias for `Reg<RSSISAMPLE_SPEC>`"]
296pub type RSSISAMPLE = crate::Reg<rssisample::RSSISAMPLE_SPEC>;
297#[doc = "RSSI sample."]
298pub mod rssisample;
299#[doc = "STATE (r) register accessor: an alias for `Reg<STATE_SPEC>`"]
300pub type STATE = crate::Reg<state::STATE_SPEC>;
301#[doc = "Current radio state."]
302pub mod state;
303#[doc = "DATAWHITEIV (rw) register accessor: an alias for `Reg<DATAWHITEIV_SPEC>`"]
304pub type DATAWHITEIV = crate::Reg<datawhiteiv::DATAWHITEIV_SPEC>;
305#[doc = "Data whitening initial value."]
306pub mod datawhiteiv;
307#[doc = "BCC (rw) register accessor: an alias for `Reg<BCC_SPEC>`"]
308pub type BCC = crate::Reg<bcc::BCC_SPEC>;
309#[doc = "Bit counter compare."]
310pub mod bcc;
311#[doc = "DAB (rw) register accessor: an alias for `Reg<DAB_SPEC>`"]
312pub type DAB = crate::Reg<dab::DAB_SPEC>;
313#[doc = "Device address base segment."]
314pub mod dab;
315#[doc = "DAP (rw) register accessor: an alias for `Reg<DAP_SPEC>`"]
316pub type DAP = crate::Reg<dap::DAP_SPEC>;
317#[doc = "Device address prefix."]
318pub mod dap;
319#[doc = "DACNF (rw) register accessor: an alias for `Reg<DACNF_SPEC>`"]
320pub type DACNF = crate::Reg<dacnf::DACNF_SPEC>;
321#[doc = "Device address match configuration."]
322pub mod dacnf;
323#[doc = "OVERRIDE0 (rw) register accessor: an alias for `Reg<OVERRIDE0_SPEC>`"]
324pub type OVERRIDE0 = crate::Reg<override0::OVERRIDE0_SPEC>;
325#[doc = "Trim value override register 0."]
326pub mod override0;
327#[doc = "OVERRIDE1 (rw) register accessor: an alias for `Reg<OVERRIDE1_SPEC>`"]
328pub type OVERRIDE1 = crate::Reg<override1::OVERRIDE1_SPEC>;
329#[doc = "Trim value override register 1."]
330pub mod override1;
331#[doc = "OVERRIDE2 (rw) register accessor: an alias for `Reg<OVERRIDE2_SPEC>`"]
332pub type OVERRIDE2 = crate::Reg<override2::OVERRIDE2_SPEC>;
333#[doc = "Trim value override register 2."]
334pub mod override2;
335#[doc = "OVERRIDE3 (rw) register accessor: an alias for `Reg<OVERRIDE3_SPEC>`"]
336pub type OVERRIDE3 = crate::Reg<override3::OVERRIDE3_SPEC>;
337#[doc = "Trim value override register 3."]
338pub mod override3;
339#[doc = "OVERRIDE4 (rw) register accessor: an alias for `Reg<OVERRIDE4_SPEC>`"]
340pub type OVERRIDE4 = crate::Reg<override4::OVERRIDE4_SPEC>;
341#[doc = "Trim value override register 4."]
342pub mod override4;
343#[doc = "POWER (rw) register accessor: an alias for `Reg<POWER_SPEC>`"]
344pub type POWER = crate::Reg<power::POWER_SPEC>;
345#[doc = "Peripheral power control."]
346pub mod power;