1#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"BLE registers"]
28unsafe impl ::core::marker::Send for super::Ble {}
29unsafe impl ::core::marker::Sync for super::Ble {}
30impl super::Ble {
31 #[allow(unused)]
32 #[inline(always)]
33 pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34 self.ptr
35 }
36
37 #[doc = "Active scan register"]
38 #[inline(always)]
39 pub const fn ble_actscanstat_reg(
40 &self,
41 ) -> &'static crate::common::Reg<self::BleActscanstatReg_SPEC, crate::common::RW> {
42 unsafe {
43 crate::common::Reg::<self::BleActscanstatReg_SPEC, crate::common::RW>::from_ptr(
44 self._svd2pac_as_ptr().add(164usize),
45 )
46 }
47 }
48
49 #[doc = "Advertising Channel Map"]
50 #[inline(always)]
51 pub const fn ble_advchmap_reg(
52 &self,
53 ) -> &'static crate::common::Reg<self::BleAdvchmapReg_SPEC, crate::common::RW> {
54 unsafe {
55 crate::common::Reg::<self::BleAdvchmapReg_SPEC, crate::common::RW>::from_ptr(
56 self._svd2pac_as_ptr().add(144usize),
57 )
58 }
59 }
60
61 #[doc = "Advertising Packet Interval"]
62 #[inline(always)]
63 pub const fn ble_advtim_reg(
64 &self,
65 ) -> &'static crate::common::Reg<self::BleAdvtimReg_SPEC, crate::common::RW> {
66 unsafe {
67 crate::common::Reg::<self::BleAdvtimReg_SPEC, crate::common::RW>::from_ptr(
68 self._svd2pac_as_ptr().add(160usize),
69 )
70 }
71 }
72
73 #[doc = "Start AES register"]
74 #[inline(always)]
75 pub const fn ble_aescntl_reg(
76 &self,
77 ) -> &'static crate::common::Reg<self::BleAescntlReg_SPEC, crate::common::RW> {
78 unsafe {
79 crate::common::Reg::<self::BleAescntlReg_SPEC, crate::common::RW>::from_ptr(
80 self._svd2pac_as_ptr().add(192usize),
81 )
82 }
83 }
84
85 #[doc = "AES encryption key"]
86 #[inline(always)]
87 pub const fn ble_aeskey127_96_reg(
88 &self,
89 ) -> &'static crate::common::Reg<self::BleAeskey12796Reg_SPEC, crate::common::RW> {
90 unsafe {
91 crate::common::Reg::<self::BleAeskey12796Reg_SPEC, crate::common::RW>::from_ptr(
92 self._svd2pac_as_ptr().add(208usize),
93 )
94 }
95 }
96
97 #[doc = "AES encryption key"]
98 #[inline(always)]
99 pub const fn ble_aeskey31_0_reg(
100 &self,
101 ) -> &'static crate::common::Reg<self::BleAeskey310Reg_SPEC, crate::common::RW> {
102 unsafe {
103 crate::common::Reg::<self::BleAeskey310Reg_SPEC, crate::common::RW>::from_ptr(
104 self._svd2pac_as_ptr().add(196usize),
105 )
106 }
107 }
108
109 #[doc = "AES encryption key"]
110 #[inline(always)]
111 pub const fn ble_aeskey63_32_reg(
112 &self,
113 ) -> &'static crate::common::Reg<self::BleAeskey6332Reg_SPEC, crate::common::RW> {
114 unsafe {
115 crate::common::Reg::<self::BleAeskey6332Reg_SPEC, crate::common::RW>::from_ptr(
116 self._svd2pac_as_ptr().add(200usize),
117 )
118 }
119 }
120
121 #[doc = "AES encryption key"]
122 #[inline(always)]
123 pub const fn ble_aeskey95_64_reg(
124 &self,
125 ) -> &'static crate::common::Reg<self::BleAeskey9564Reg_SPEC, crate::common::RW> {
126 unsafe {
127 crate::common::Reg::<self::BleAeskey9564Reg_SPEC, crate::common::RW>::from_ptr(
128 self._svd2pac_as_ptr().add(204usize),
129 )
130 }
131 }
132
133 #[doc = "Pointer to the block to encrypt/decrypt"]
134 #[inline(always)]
135 pub const fn ble_aesptr_reg(
136 &self,
137 ) -> &'static crate::common::Reg<self::BleAesptrReg_SPEC, crate::common::RW> {
138 unsafe {
139 crate::common::Reg::<self::BleAesptrReg_SPEC, crate::common::RW>::from_ptr(
140 self._svd2pac_as_ptr().add(212usize),
141 )
142 }
143 }
144
145 #[doc = "Base Time Counter"]
146 #[inline(always)]
147 pub const fn ble_basetimecntcorr_reg(
148 &self,
149 ) -> &'static crate::common::Reg<self::BleBasetimecntcorrReg_SPEC, crate::common::RW> {
150 unsafe {
151 crate::common::Reg::<self::BleBasetimecntcorrReg_SPEC, crate::common::RW>::from_ptr(
152 self._svd2pac_as_ptr().add(68usize),
153 )
154 }
155 }
156
157 #[doc = "Base time reference counter"]
158 #[inline(always)]
159 pub const fn ble_basetimecnt_reg(
160 &self,
161 ) -> &'static crate::common::Reg<self::BleBasetimecntReg_SPEC, crate::common::RW> {
162 unsafe {
163 crate::common::Reg::<self::BleBasetimecntReg_SPEC, crate::common::RW>::from_ptr(
164 self._svd2pac_as_ptr().add(28usize),
165 )
166 }
167 }
168
169 #[doc = "BLE device address LSB register"]
170 #[inline(always)]
171 pub const fn ble_bdaddrl_reg(
172 &self,
173 ) -> &'static crate::common::Reg<self::BleBdaddrlReg_SPEC, crate::common::RW> {
174 unsafe {
175 crate::common::Reg::<self::BleBdaddrlReg_SPEC, crate::common::RW>::from_ptr(
176 self._svd2pac_as_ptr().add(36usize),
177 )
178 }
179 }
180
181 #[doc = "BLE device address MSB register"]
182 #[inline(always)]
183 pub const fn ble_bdaddru_reg(
184 &self,
185 ) -> &'static crate::common::Reg<self::BleBdaddruReg_SPEC, crate::common::RW> {
186 unsafe {
187 crate::common::Reg::<self::BleBdaddruReg_SPEC, crate::common::RW>::from_ptr(
188 self._svd2pac_as_ptr().add(40usize),
189 )
190 }
191 }
192
193 #[doc = "Coexistence interface Priority 0 Register"]
194 #[inline(always)]
195 pub const fn ble_blemprio0_reg(
196 &self,
197 ) -> &'static crate::common::Reg<self::BleBlemprio0Reg_SPEC, crate::common::RW> {
198 unsafe {
199 crate::common::Reg::<self::BleBlemprio0Reg_SPEC, crate::common::RW>::from_ptr(
200 self._svd2pac_as_ptr().add(264usize),
201 )
202 }
203 }
204
205 #[doc = "Coexistence interface Priority 1 Register"]
206 #[inline(always)]
207 pub const fn ble_blemprio1_reg(
208 &self,
209 ) -> &'static crate::common::Reg<self::BleBlemprio1Reg_SPEC, crate::common::RW> {
210 unsafe {
211 crate::common::Reg::<self::BleBlemprio1Reg_SPEC, crate::common::RW>::from_ptr(
212 self._svd2pac_as_ptr().add(268usize),
213 )
214 }
215 }
216
217 #[doc = "Priority Scheduling Arbiter Control Register"]
218 #[inline(always)]
219 pub const fn ble_bleprioscharb_reg(
220 &self,
221 ) -> &'static crate::common::Reg<self::BleBleprioscharbReg_SPEC, crate::common::RW> {
222 unsafe {
223 crate::common::Reg::<self::BleBleprioscharbReg_SPEC, crate::common::RW>::from_ptr(
224 self._svd2pac_as_ptr().add(272usize),
225 )
226 }
227 }
228
229 #[doc = "BLE Control Register 2"]
230 #[inline(always)]
231 pub const fn ble_cntl2_reg(
232 &self,
233 ) -> &'static crate::common::Reg<self::BleCntl2Reg_SPEC, crate::common::RW> {
234 unsafe {
235 crate::common::Reg::<self::BleCntl2Reg_SPEC, crate::common::RW>::from_ptr(
236 self._svd2pac_as_ptr().add(512usize),
237 )
238 }
239 }
240
241 #[doc = "Coexistence interface Control 0 Register"]
242 #[inline(always)]
243 pub const fn ble_coexifcntl0_reg(
244 &self,
245 ) -> &'static crate::common::Reg<self::BleCoexifcntl0Reg_SPEC, crate::common::RW> {
246 unsafe {
247 crate::common::Reg::<self::BleCoexifcntl0Reg_SPEC, crate::common::RW>::from_ptr(
248 self._svd2pac_as_ptr().add(256usize),
249 )
250 }
251 }
252
253 #[doc = "Coexistence interface Control 1 Register"]
254 #[inline(always)]
255 pub const fn ble_coexifcntl1_reg(
256 &self,
257 ) -> &'static crate::common::Reg<self::BleCoexifcntl1Reg_SPEC, crate::common::RW> {
258 unsafe {
259 crate::common::Reg::<self::BleCoexifcntl1Reg_SPEC, crate::common::RW>::from_ptr(
260 self._svd2pac_as_ptr().add(260usize),
261 )
262 }
263 }
264
265 #[doc = "Rx Descriptor Pointer for the Receive Buffer Chained List"]
266 #[inline(always)]
267 pub const fn ble_currentrxdescptr_reg(
268 &self,
269 ) -> &'static crate::common::Reg<self::BleCurrentrxdescptrReg_SPEC, crate::common::RW> {
270 unsafe {
271 crate::common::Reg::<self::BleCurrentrxdescptrReg_SPEC, crate::common::RW>::from_ptr(
272 self._svd2pac_as_ptr().add(44usize),
273 )
274 }
275 }
276
277 #[doc = "Upper limit for the memory zone"]
278 #[inline(always)]
279 pub const fn ble_debugaddmax_reg(
280 &self,
281 ) -> &'static crate::common::Reg<self::BleDebugaddmaxReg_SPEC, crate::common::RW> {
282 unsafe {
283 crate::common::Reg::<self::BleDebugaddmaxReg_SPEC, crate::common::RW>::from_ptr(
284 self._svd2pac_as_ptr().add(88usize),
285 )
286 }
287 }
288
289 #[doc = "Lower limit for the memory zone"]
290 #[inline(always)]
291 pub const fn ble_debugaddmin_reg(
292 &self,
293 ) -> &'static crate::common::Reg<self::BleDebugaddminReg_SPEC, crate::common::RW> {
294 unsafe {
295 crate::common::Reg::<self::BleDebugaddminReg_SPEC, crate::common::RW>::from_ptr(
296 self._svd2pac_as_ptr().add(92usize),
297 )
298 }
299 }
300
301 #[doc = "Deep-Sleep control register"]
302 #[inline(always)]
303 pub const fn ble_deepslcntl_reg(
304 &self,
305 ) -> &'static crate::common::Reg<self::BleDeepslcntlReg_SPEC, crate::common::RW> {
306 unsafe {
307 crate::common::Reg::<self::BleDeepslcntlReg_SPEC, crate::common::RW>::from_ptr(
308 self._svd2pac_as_ptr().add(48usize),
309 )
310 }
311 }
312
313 #[doc = "Duration of the last deep sleep phase register"]
314 #[inline(always)]
315 pub const fn ble_deepslstat_reg(
316 &self,
317 ) -> &'static crate::common::Reg<self::BleDeepslstatReg_SPEC, crate::common::RW> {
318 unsafe {
319 crate::common::Reg::<self::BleDeepslstatReg_SPEC, crate::common::RW>::from_ptr(
320 self._svd2pac_as_ptr().add(56usize),
321 )
322 }
323 }
324
325 #[doc = "Time (measured in Low Power clock cycles) in Deep Sleep Mode before waking-up the device"]
326 #[inline(always)]
327 pub const fn ble_deepslwkup_reg(
328 &self,
329 ) -> &'static crate::common::Reg<self::BleDeepslwkupReg_SPEC, crate::common::RW> {
330 unsafe {
331 crate::common::Reg::<self::BleDeepslwkupReg_SPEC, crate::common::RW>::from_ptr(
332 self._svd2pac_as_ptr().add(52usize),
333 )
334 }
335 }
336
337 #[doc = "Debug use only"]
338 #[inline(always)]
339 pub const fn ble_diagcntl2_reg(
340 &self,
341 ) -> &'static crate::common::Reg<self::BleDiagcntl2Reg_SPEC, crate::common::RW> {
342 unsafe {
343 crate::common::Reg::<self::BleDiagcntl2Reg_SPEC, crate::common::RW>::from_ptr(
344 self._svd2pac_as_ptr().add(524usize),
345 )
346 }
347 }
348
349 #[doc = "Debug use only"]
350 #[inline(always)]
351 pub const fn ble_diagcntl3_reg(
352 &self,
353 ) -> &'static crate::common::Reg<self::BleDiagcntl3Reg_SPEC, crate::common::RW> {
354 unsafe {
355 crate::common::Reg::<self::BleDiagcntl3Reg_SPEC, crate::common::RW>::from_ptr(
356 self._svd2pac_as_ptr().add(528usize),
357 )
358 }
359 }
360
361 #[doc = "Diagnostics Register"]
362 #[inline(always)]
363 pub const fn ble_diagcntl_reg(
364 &self,
365 ) -> &'static crate::common::Reg<self::BleDiagcntlReg_SPEC, crate::common::RW> {
366 unsafe {
367 crate::common::Reg::<self::BleDiagcntlReg_SPEC, crate::common::RW>::from_ptr(
368 self._svd2pac_as_ptr().add(80usize),
369 )
370 }
371 }
372
373 #[doc = "Debug use only"]
374 #[inline(always)]
375 pub const fn ble_diagstat_reg(
376 &self,
377 ) -> &'static crate::common::Reg<self::BleDiagstatReg_SPEC, crate::common::RW> {
378 unsafe {
379 crate::common::Reg::<self::BleDiagstatReg_SPEC, crate::common::RW>::from_ptr(
380 self._svd2pac_as_ptr().add(84usize),
381 )
382 }
383 }
384
385 #[doc = "Exchange Memory Base Register"]
386 #[inline(always)]
387 pub const fn ble_em_base_reg(
388 &self,
389 ) -> &'static crate::common::Reg<self::BleEmBaseReg_SPEC, crate::common::RW> {
390 unsafe {
391 crate::common::Reg::<self::BleEmBaseReg_SPEC, crate::common::RW>::from_ptr(
392 self._svd2pac_as_ptr().add(520usize),
393 )
394 }
395 }
396
397 #[doc = "Time in low power oscillator cycles register"]
398 #[inline(always)]
399 pub const fn ble_enbpreset_reg(
400 &self,
401 ) -> &'static crate::common::Reg<self::BleEnbpresetReg_SPEC, crate::common::RW> {
402 unsafe {
403 crate::common::Reg::<self::BleEnbpresetReg_SPEC, crate::common::RW>::from_ptr(
404 self._svd2pac_as_ptr().add(60usize),
405 )
406 }
407 }
408
409 #[doc = "Error Type Status registers"]
410 #[inline(always)]
411 pub const fn ble_errortypestat_reg(
412 &self,
413 ) -> &'static crate::common::Reg<self::BleErrortypestatReg_SPEC, crate::common::RW> {
414 unsafe {
415 crate::common::Reg::<self::BleErrortypestatReg_SPEC, crate::common::RW>::from_ptr(
416 self._svd2pac_as_ptr().add(96usize),
417 )
418 }
419 }
420
421 #[doc = "Phase correction value register"]
422 #[inline(always)]
423 pub const fn ble_finecntcorr_reg(
424 &self,
425 ) -> &'static crate::common::Reg<self::BleFinecntcorrReg_SPEC, crate::common::RW> {
426 unsafe {
427 crate::common::Reg::<self::BleFinecntcorrReg_SPEC, crate::common::RW>::from_ptr(
428 self._svd2pac_as_ptr().add(64usize),
429 )
430 }
431 }
432
433 #[doc = "Fine time reference counter"]
434 #[inline(always)]
435 pub const fn ble_finetimecnt_reg(
436 &self,
437 ) -> &'static crate::common::Reg<self::BleFinetimecntReg_SPEC, crate::common::RW> {
438 unsafe {
439 crate::common::Reg::<self::BleFinetimecntReg_SPEC, crate::common::RW>::from_ptr(
440 self._svd2pac_as_ptr().add(32usize),
441 )
442 }
443 }
444
445 #[doc = "Fine Timer Target value"]
446 #[inline(always)]
447 pub const fn ble_finetimtgt_reg(
448 &self,
449 ) -> &'static crate::common::Reg<self::BleFinetimtgtReg_SPEC, crate::common::RW> {
450 unsafe {
451 crate::common::Reg::<self::BleFinetimtgtReg_SPEC, crate::common::RW>::from_ptr(
452 self._svd2pac_as_ptr().add(248usize),
453 )
454 }
455 }
456
457 #[doc = "Gross Timer Target value"]
458 #[inline(always)]
459 pub const fn ble_grosstimtgt_reg(
460 &self,
461 ) -> &'static crate::common::Reg<self::BleGrosstimtgtReg_SPEC, crate::common::RW> {
462 unsafe {
463 crate::common::Reg::<self::BleGrosstimtgtReg_SPEC, crate::common::RW>::from_ptr(
464 self._svd2pac_as_ptr().add(244usize),
465 )
466 }
467 }
468
469 #[doc = "Interrupt acknowledge register"]
470 #[inline(always)]
471 pub const fn ble_intack_reg(
472 &self,
473 ) -> &'static crate::common::Reg<self::BleIntackReg_SPEC, crate::common::RW> {
474 unsafe {
475 crate::common::Reg::<self::BleIntackReg_SPEC, crate::common::RW>::from_ptr(
476 self._svd2pac_as_ptr().add(24usize),
477 )
478 }
479 }
480
481 #[doc = "Interrupt controller register"]
482 #[inline(always)]
483 pub const fn ble_intcntl_reg(
484 &self,
485 ) -> &'static crate::common::Reg<self::BleIntcntlReg_SPEC, crate::common::RW> {
486 unsafe {
487 crate::common::Reg::<self::BleIntcntlReg_SPEC, crate::common::RW>::from_ptr(
488 self._svd2pac_as_ptr().add(12usize),
489 )
490 }
491 }
492
493 #[doc = "Interrupt raw status register"]
494 #[inline(always)]
495 pub const fn ble_intrawstat_reg(
496 &self,
497 ) -> &'static crate::common::Reg<self::BleIntrawstatReg_SPEC, crate::common::RW> {
498 unsafe {
499 crate::common::Reg::<self::BleIntrawstatReg_SPEC, crate::common::RW>::from_ptr(
500 self._svd2pac_as_ptr().add(20usize),
501 )
502 }
503 }
504
505 #[doc = "Interrupt status register"]
506 #[inline(always)]
507 pub const fn ble_intstat_reg(
508 &self,
509 ) -> &'static crate::common::Reg<self::BleIntstatReg_SPEC, crate::common::RW> {
510 unsafe {
511 crate::common::Reg::<self::BleIntstatReg_SPEC, crate::common::RW>::from_ptr(
512 self._svd2pac_as_ptr().add(16usize),
513 )
514 }
515 }
516
517 #[doc = "Radio interface control register"]
518 #[inline(always)]
519 pub const fn ble_radiocntl0_reg(
520 &self,
521 ) -> &'static crate::common::Reg<self::BleRadiocntl0Reg_SPEC, crate::common::RW> {
522 unsafe {
523 crate::common::Reg::<self::BleRadiocntl0Reg_SPEC, crate::common::RW>::from_ptr(
524 self._svd2pac_as_ptr().add(112usize),
525 )
526 }
527 }
528
529 #[doc = "Radio interface control register"]
530 #[inline(always)]
531 pub const fn ble_radiocntl1_reg(
532 &self,
533 ) -> &'static crate::common::Reg<self::BleRadiocntl1Reg_SPEC, crate::common::RW> {
534 unsafe {
535 crate::common::Reg::<self::BleRadiocntl1Reg_SPEC, crate::common::RW>::from_ptr(
536 self._svd2pac_as_ptr().add(116usize),
537 )
538 }
539 }
540
541 #[doc = "Radio interface control register"]
542 #[inline(always)]
543 pub const fn ble_radiocntl2_reg(
544 &self,
545 ) -> &'static crate::common::Reg<self::BleRadiocntl2Reg_SPEC, crate::common::RW> {
546 unsafe {
547 crate::common::Reg::<self::BleRadiocntl2Reg_SPEC, crate::common::RW>::from_ptr(
548 self._svd2pac_as_ptr().add(120usize),
549 )
550 }
551 }
552
553 #[doc = "Radio interface control register"]
554 #[inline(always)]
555 pub const fn ble_radiocntl3_reg(
556 &self,
557 ) -> &'static crate::common::Reg<self::BleRadiocntl3Reg_SPEC, crate::common::RW> {
558 unsafe {
559 crate::common::Reg::<self::BleRadiocntl3Reg_SPEC, crate::common::RW>::from_ptr(
560 self._svd2pac_as_ptr().add(124usize),
561 )
562 }
563 }
564
565 #[doc = "RX/TX power up/down phase register"]
566 #[inline(always)]
567 pub const fn ble_radiopwrupdn_reg(
568 &self,
569 ) -> &'static crate::common::Reg<self::BleRadiopwrupdnReg_SPEC, crate::common::RW> {
570 unsafe {
571 crate::common::Reg::<self::BleRadiopwrupdnReg_SPEC, crate::common::RW>::from_ptr(
572 self._svd2pac_as_ptr().add(128usize),
573 )
574 }
575 }
576
577 #[doc = "RF Testing Register"]
578 #[inline(always)]
579 pub const fn ble_rftestcntl_reg(
580 &self,
581 ) -> &'static crate::common::Reg<self::BleRftestcntlReg_SPEC, crate::common::RW> {
582 unsafe {
583 crate::common::Reg::<self::BleRftestcntlReg_SPEC, crate::common::RW>::from_ptr(
584 self._svd2pac_as_ptr().add(224usize),
585 )
586 }
587 }
588
589 #[doc = "RF Testing Register"]
590 #[inline(always)]
591 pub const fn ble_rftestrxstat_reg(
592 &self,
593 ) -> &'static crate::common::Reg<self::BleRftestrxstatReg_SPEC, crate::common::RW> {
594 unsafe {
595 crate::common::Reg::<self::BleRftestrxstatReg_SPEC, crate::common::RW>::from_ptr(
596 self._svd2pac_as_ptr().add(232usize),
597 )
598 }
599 }
600
601 #[doc = "RF Testing Register"]
602 #[inline(always)]
603 pub const fn ble_rftesttxstat_reg(
604 &self,
605 ) -> &'static crate::common::Reg<self::BleRftesttxstatReg_SPEC, crate::common::RW> {
606 unsafe {
607 crate::common::Reg::<self::BleRftesttxstatReg_SPEC, crate::common::RW>::from_ptr(
608 self._svd2pac_as_ptr().add(228usize),
609 )
610 }
611 }
612
613 #[doc = "BLE Control register"]
614 #[inline(always)]
615 pub const fn ble_rwblecntl_reg(
616 &self,
617 ) -> &'static crate::common::Reg<self::BleRwblecntlReg_SPEC, crate::common::RW> {
618 unsafe {
619 crate::common::Reg::<self::BleRwblecntlReg_SPEC, crate::common::RW>::from_ptr(
620 self._svd2pac_as_ptr().add(0usize),
621 )
622 }
623 }
624
625 #[doc = "Configuration register"]
626 #[inline(always)]
627 pub const fn ble_rwbleconf_reg(
628 &self,
629 ) -> &'static crate::common::Reg<self::BleRwbleconfReg_SPEC, crate::common::RW> {
630 unsafe {
631 crate::common::Reg::<self::BleRwbleconfReg_SPEC, crate::common::RW>::from_ptr(
632 self._svd2pac_as_ptr().add(8usize),
633 )
634 }
635 }
636
637 #[doc = "AES / CCM plain MIC value"]
638 #[inline(always)]
639 pub const fn ble_rxmicval_reg(
640 &self,
641 ) -> &'static crate::common::Reg<self::BleRxmicvalReg_SPEC, crate::common::RW> {
642 unsafe {
643 crate::common::Reg::<self::BleRxmicvalReg_SPEC, crate::common::RW>::from_ptr(
644 self._svd2pac_as_ptr().add(220usize),
645 )
646 }
647 }
648
649 #[doc = "Samples the Base Time Counter"]
650 #[inline(always)]
651 pub const fn ble_sampleclk_reg(
652 &self,
653 ) -> &'static crate::common::Reg<self::BleSampleclkReg_SPEC, crate::common::RW> {
654 unsafe {
655 crate::common::Reg::<self::BleSampleclkReg_SPEC, crate::common::RW>::from_ptr(
656 self._svd2pac_as_ptr().add(252usize),
657 )
658 }
659 }
660
661 #[doc = "Software Profiling register"]
662 #[inline(always)]
663 pub const fn ble_swprofiling_reg(
664 &self,
665 ) -> &'static crate::common::Reg<self::BleSwprofilingReg_SPEC, crate::common::RW> {
666 unsafe {
667 crate::common::Reg::<self::BleSwprofilingReg_SPEC, crate::common::RW>::from_ptr(
668 self._svd2pac_as_ptr().add(100usize),
669 )
670 }
671 }
672
673 #[doc = "Timing Generator Register"]
674 #[inline(always)]
675 pub const fn ble_timgencntl_reg(
676 &self,
677 ) -> &'static crate::common::Reg<self::BleTimgencntlReg_SPEC, crate::common::RW> {
678 unsafe {
679 crate::common::Reg::<self::BleTimgencntlReg_SPEC, crate::common::RW>::from_ptr(
680 self._svd2pac_as_ptr().add(240usize),
681 )
682 }
683 }
684
685 #[doc = "AES / CCM plain MIC value"]
686 #[inline(always)]
687 pub const fn ble_txmicval_reg(
688 &self,
689 ) -> &'static crate::common::Reg<self::BleTxmicvalReg_SPEC, crate::common::RW> {
690 unsafe {
691 crate::common::Reg::<self::BleTxmicvalReg_SPEC, crate::common::RW>::from_ptr(
692 self._svd2pac_as_ptr().add(216usize),
693 )
694 }
695 }
696
697 #[doc = "Version register"]
698 #[inline(always)]
699 pub const fn ble_version_reg(
700 &self,
701 ) -> &'static crate::common::Reg<self::BleVersionReg_SPEC, crate::common::RW> {
702 unsafe {
703 crate::common::Reg::<self::BleVersionReg_SPEC, crate::common::RW>::from_ptr(
704 self._svd2pac_as_ptr().add(4usize),
705 )
706 }
707 }
708
709 #[doc = "Devices in white list"]
710 #[inline(always)]
711 pub const fn ble_wlnbdev_reg(
712 &self,
713 ) -> &'static crate::common::Reg<self::BleWlnbdevReg_SPEC, crate::common::RW> {
714 unsafe {
715 crate::common::Reg::<self::BleWlnbdevReg_SPEC, crate::common::RW>::from_ptr(
716 self._svd2pac_as_ptr().add(184usize),
717 )
718 }
719 }
720
721 #[doc = "Start address of private devices list"]
722 #[inline(always)]
723 pub const fn ble_wlprivaddptr_reg(
724 &self,
725 ) -> &'static crate::common::Reg<self::BleWlprivaddptrReg_SPEC, crate::common::RW> {
726 unsafe {
727 crate::common::Reg::<self::BleWlprivaddptrReg_SPEC, crate::common::RW>::from_ptr(
728 self._svd2pac_as_ptr().add(180usize),
729 )
730 }
731 }
732
733 #[doc = "Start address of public devices list"]
734 #[inline(always)]
735 pub const fn ble_wlpubaddptr_reg(
736 &self,
737 ) -> &'static crate::common::Reg<self::BleWlpubaddptrReg_SPEC, crate::common::RW> {
738 unsafe {
739 crate::common::Reg::<self::BleWlpubaddptrReg_SPEC, crate::common::RW>::from_ptr(
740 self._svd2pac_as_ptr().add(176usize),
741 )
742 }
743 }
744}
745#[doc(hidden)]
746#[derive(Copy, Clone, Eq, PartialEq)]
747pub struct BleActscanstatReg_SPEC;
748impl crate::sealed::RegSpec for BleActscanstatReg_SPEC {
749 type DataType = u32;
750}
751
752#[doc = "Active scan register"]
753pub type BleActscanstatReg = crate::RegValueT<BleActscanstatReg_SPEC>;
754
755impl BleActscanstatReg {
756 #[doc = "Active scan mode back-off counter initialization value."]
757 #[inline(always)]
758 pub fn backoff(
759 self,
760 ) -> crate::common::RegisterField<
761 16,
762 0x1ff,
763 1,
764 0,
765 u16,
766 u16,
767 BleActscanstatReg_SPEC,
768 crate::common::R,
769 > {
770 crate::common::RegisterField::<
771 16,
772 0x1ff,
773 1,
774 0,
775 u16,
776 u16,
777 BleActscanstatReg_SPEC,
778 crate::common::R,
779 >::from_register(self, 0)
780 }
781
782 #[doc = "Active scan mode upper limit counter value."]
783 #[inline(always)]
784 pub fn upperlimit(
785 self,
786 ) -> crate::common::RegisterField<
787 0,
788 0x1ff,
789 1,
790 0,
791 u16,
792 u16,
793 BleActscanstatReg_SPEC,
794 crate::common::R,
795 > {
796 crate::common::RegisterField::<
797 0,
798 0x1ff,
799 1,
800 0,
801 u16,
802 u16,
803 BleActscanstatReg_SPEC,
804 crate::common::R,
805 >::from_register(self, 0)
806 }
807}
808impl ::core::default::Default for BleActscanstatReg {
809 #[inline(always)]
810 fn default() -> BleActscanstatReg {
811 <crate::RegValueT<BleActscanstatReg_SPEC> as RegisterValue<_>>::new(65537)
812 }
813}
814
815#[doc(hidden)]
816#[derive(Copy, Clone, Eq, PartialEq)]
817pub struct BleAdvchmapReg_SPEC;
818impl crate::sealed::RegSpec for BleAdvchmapReg_SPEC {
819 type DataType = u32;
820}
821
822#[doc = "Advertising Channel Map"]
823pub type BleAdvchmapReg = crate::RegValueT<BleAdvchmapReg_SPEC>;
824
825impl BleAdvchmapReg {
826 #[doc = "Advertising Channel Map, defined as per the advertising connection settings. Contains advertising channels index 37 to 39. If ADVCHMAP\\[i\\] equals:\n0: Do not use data channel i+37.\n1: Use data channel i+37."]
827 #[inline(always)]
828 pub fn advchmap(
829 self,
830 ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, BleAdvchmapReg_SPEC, crate::common::RW>
831 {
832 crate::common::RegisterField::<0,0x7,1,0,u8,u8,BleAdvchmapReg_SPEC,crate::common::RW>::from_register(self,0)
833 }
834}
835impl ::core::default::Default for BleAdvchmapReg {
836 #[inline(always)]
837 fn default() -> BleAdvchmapReg {
838 <crate::RegValueT<BleAdvchmapReg_SPEC> as RegisterValue<_>>::new(7)
839 }
840}
841
842#[doc(hidden)]
843#[derive(Copy, Clone, Eq, PartialEq)]
844pub struct BleAdvtimReg_SPEC;
845impl crate::sealed::RegSpec for BleAdvtimReg_SPEC {
846 type DataType = u32;
847}
848
849#[doc = "Advertising Packet Interval"]
850pub type BleAdvtimReg = crate::RegValueT<BleAdvtimReg_SPEC>;
851
852impl BleAdvtimReg {
853 #[doc = "Advertising Packet Interval defines the time interval in between two ADV_xxx packet sent. Value is in us.\nValue to program depends on the used Advertising Packet type and the device filtering policy."]
854 #[inline(always)]
855 pub fn advint(
856 self,
857 ) -> crate::common::RegisterField<0, 0x3fff, 1, 0, u16, u16, BleAdvtimReg_SPEC, crate::common::RW>
858 {
859 crate::common::RegisterField::<
860 0,
861 0x3fff,
862 1,
863 0,
864 u16,
865 u16,
866 BleAdvtimReg_SPEC,
867 crate::common::RW,
868 >::from_register(self, 0)
869 }
870}
871impl ::core::default::Default for BleAdvtimReg {
872 #[inline(always)]
873 fn default() -> BleAdvtimReg {
874 <crate::RegValueT<BleAdvtimReg_SPEC> as RegisterValue<_>>::new(0)
875 }
876}
877
878#[doc(hidden)]
879#[derive(Copy, Clone, Eq, PartialEq)]
880pub struct BleAescntlReg_SPEC;
881impl crate::sealed::RegSpec for BleAescntlReg_SPEC {
882 type DataType = u32;
883}
884
885#[doc = "Start AES register"]
886pub type BleAescntlReg = crate::RegValueT<BleAescntlReg_SPEC>;
887
888impl BleAescntlReg {
889 #[doc = "0: Cipher mode\n1: Decipher mode"]
890 #[inline(always)]
891 pub fn aes_mode(
892 self,
893 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleAescntlReg_SPEC, crate::common::RW> {
894 crate::common::RegisterFieldBool::<1,1,0,BleAescntlReg_SPEC,crate::common::RW>::from_register(self,0)
895 }
896
897 #[doc = "Writing a 1 starts AES-128 ciphering/deciphering process.\nThis bit is reset once the process is finished (i.e. ble_crypt_irq interrupt occurs, even masked)"]
898 #[inline(always)]
899 pub fn aes_start(
900 self,
901 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleAescntlReg_SPEC, crate::common::W> {
902 crate::common::RegisterFieldBool::<0,1,0,BleAescntlReg_SPEC,crate::common::W>::from_register(self,0)
903 }
904}
905impl ::core::default::Default for BleAescntlReg {
906 #[inline(always)]
907 fn default() -> BleAescntlReg {
908 <crate::RegValueT<BleAescntlReg_SPEC> as RegisterValue<_>>::new(0)
909 }
910}
911
912#[doc(hidden)]
913#[derive(Copy, Clone, Eq, PartialEq)]
914pub struct BleAeskey12796Reg_SPEC;
915impl crate::sealed::RegSpec for BleAeskey12796Reg_SPEC {
916 type DataType = u32;
917}
918
919#[doc = "AES encryption key"]
920pub type BleAeskey12796Reg = crate::RegValueT<BleAeskey12796Reg_SPEC>;
921
922impl BleAeskey12796Reg {
923 #[doc = "AES encryption 128-bit key. Bit 127 down to 96"]
924 #[inline(always)]
925 pub fn aeskey127_96(
926 self,
927 ) -> crate::common::RegisterField<
928 0,
929 0xffffffff,
930 1,
931 0,
932 u32,
933 u32,
934 BleAeskey12796Reg_SPEC,
935 crate::common::RW,
936 > {
937 crate::common::RegisterField::<
938 0,
939 0xffffffff,
940 1,
941 0,
942 u32,
943 u32,
944 BleAeskey12796Reg_SPEC,
945 crate::common::RW,
946 >::from_register(self, 0)
947 }
948}
949impl ::core::default::Default for BleAeskey12796Reg {
950 #[inline(always)]
951 fn default() -> BleAeskey12796Reg {
952 <crate::RegValueT<BleAeskey12796Reg_SPEC> as RegisterValue<_>>::new(0)
953 }
954}
955
956#[doc(hidden)]
957#[derive(Copy, Clone, Eq, PartialEq)]
958pub struct BleAeskey310Reg_SPEC;
959impl crate::sealed::RegSpec for BleAeskey310Reg_SPEC {
960 type DataType = u32;
961}
962
963#[doc = "AES encryption key"]
964pub type BleAeskey310Reg = crate::RegValueT<BleAeskey310Reg_SPEC>;
965
966impl BleAeskey310Reg {
967 #[doc = "AES encryption 128-bit key. Bit 31 down to 0"]
968 #[inline(always)]
969 pub fn aeskey31_0(
970 self,
971 ) -> crate::common::RegisterField<
972 0,
973 0xffffffff,
974 1,
975 0,
976 u32,
977 u32,
978 BleAeskey310Reg_SPEC,
979 crate::common::RW,
980 > {
981 crate::common::RegisterField::<
982 0,
983 0xffffffff,
984 1,
985 0,
986 u32,
987 u32,
988 BleAeskey310Reg_SPEC,
989 crate::common::RW,
990 >::from_register(self, 0)
991 }
992}
993impl ::core::default::Default for BleAeskey310Reg {
994 #[inline(always)]
995 fn default() -> BleAeskey310Reg {
996 <crate::RegValueT<BleAeskey310Reg_SPEC> as RegisterValue<_>>::new(0)
997 }
998}
999
1000#[doc(hidden)]
1001#[derive(Copy, Clone, Eq, PartialEq)]
1002pub struct BleAeskey6332Reg_SPEC;
1003impl crate::sealed::RegSpec for BleAeskey6332Reg_SPEC {
1004 type DataType = u32;
1005}
1006
1007#[doc = "AES encryption key"]
1008pub type BleAeskey6332Reg = crate::RegValueT<BleAeskey6332Reg_SPEC>;
1009
1010impl BleAeskey6332Reg {
1011 #[doc = "AES encryption 128-bit key. Bit 63 down to 32"]
1012 #[inline(always)]
1013 pub fn aeskey63_32(
1014 self,
1015 ) -> crate::common::RegisterField<
1016 0,
1017 0xffffffff,
1018 1,
1019 0,
1020 u32,
1021 u32,
1022 BleAeskey6332Reg_SPEC,
1023 crate::common::RW,
1024 > {
1025 crate::common::RegisterField::<
1026 0,
1027 0xffffffff,
1028 1,
1029 0,
1030 u32,
1031 u32,
1032 BleAeskey6332Reg_SPEC,
1033 crate::common::RW,
1034 >::from_register(self, 0)
1035 }
1036}
1037impl ::core::default::Default for BleAeskey6332Reg {
1038 #[inline(always)]
1039 fn default() -> BleAeskey6332Reg {
1040 <crate::RegValueT<BleAeskey6332Reg_SPEC> as RegisterValue<_>>::new(0)
1041 }
1042}
1043
1044#[doc(hidden)]
1045#[derive(Copy, Clone, Eq, PartialEq)]
1046pub struct BleAeskey9564Reg_SPEC;
1047impl crate::sealed::RegSpec for BleAeskey9564Reg_SPEC {
1048 type DataType = u32;
1049}
1050
1051#[doc = "AES encryption key"]
1052pub type BleAeskey9564Reg = crate::RegValueT<BleAeskey9564Reg_SPEC>;
1053
1054impl BleAeskey9564Reg {
1055 #[doc = "AES encryption 128-bit key. Bit 95 down to 64"]
1056 #[inline(always)]
1057 pub fn aeskey95_64(
1058 self,
1059 ) -> crate::common::RegisterField<
1060 0,
1061 0xffffffff,
1062 1,
1063 0,
1064 u32,
1065 u32,
1066 BleAeskey9564Reg_SPEC,
1067 crate::common::RW,
1068 > {
1069 crate::common::RegisterField::<
1070 0,
1071 0xffffffff,
1072 1,
1073 0,
1074 u32,
1075 u32,
1076 BleAeskey9564Reg_SPEC,
1077 crate::common::RW,
1078 >::from_register(self, 0)
1079 }
1080}
1081impl ::core::default::Default for BleAeskey9564Reg {
1082 #[inline(always)]
1083 fn default() -> BleAeskey9564Reg {
1084 <crate::RegValueT<BleAeskey9564Reg_SPEC> as RegisterValue<_>>::new(0)
1085 }
1086}
1087
1088#[doc(hidden)]
1089#[derive(Copy, Clone, Eq, PartialEq)]
1090pub struct BleAesptrReg_SPEC;
1091impl crate::sealed::RegSpec for BleAesptrReg_SPEC {
1092 type DataType = u32;
1093}
1094
1095#[doc = "Pointer to the block to encrypt/decrypt"]
1096pub type BleAesptrReg = crate::RegValueT<BleAesptrReg_SPEC>;
1097
1098impl BleAesptrReg {
1099 #[doc = "Pointer to the memory zone where the block to cipher/decipher using AES-128 is stored."]
1100 #[inline(always)]
1101 pub fn aesptr(
1102 self,
1103 ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, BleAesptrReg_SPEC, crate::common::RW>
1104 {
1105 crate::common::RegisterField::<
1106 0,
1107 0xffff,
1108 1,
1109 0,
1110 u16,
1111 u16,
1112 BleAesptrReg_SPEC,
1113 crate::common::RW,
1114 >::from_register(self, 0)
1115 }
1116}
1117impl ::core::default::Default for BleAesptrReg {
1118 #[inline(always)]
1119 fn default() -> BleAesptrReg {
1120 <crate::RegValueT<BleAesptrReg_SPEC> as RegisterValue<_>>::new(0)
1121 }
1122}
1123
1124#[doc(hidden)]
1125#[derive(Copy, Clone, Eq, PartialEq)]
1126pub struct BleBasetimecntcorrReg_SPEC;
1127impl crate::sealed::RegSpec for BleBasetimecntcorrReg_SPEC {
1128 type DataType = u32;
1129}
1130
1131#[doc = "Base Time Counter"]
1132pub type BleBasetimecntcorrReg = crate::RegValueT<BleBasetimecntcorrReg_SPEC>;
1133
1134impl BleBasetimecntcorrReg {
1135 #[doc = "Base Time Counter correction value."]
1136 #[inline(always)]
1137 pub fn basetimecntcorr(
1138 self,
1139 ) -> crate::common::RegisterField<
1140 0,
1141 0x7ffffff,
1142 1,
1143 0,
1144 u32,
1145 u32,
1146 BleBasetimecntcorrReg_SPEC,
1147 crate::common::RW,
1148 > {
1149 crate::common::RegisterField::<
1150 0,
1151 0x7ffffff,
1152 1,
1153 0,
1154 u32,
1155 u32,
1156 BleBasetimecntcorrReg_SPEC,
1157 crate::common::RW,
1158 >::from_register(self, 0)
1159 }
1160}
1161impl ::core::default::Default for BleBasetimecntcorrReg {
1162 #[inline(always)]
1163 fn default() -> BleBasetimecntcorrReg {
1164 <crate::RegValueT<BleBasetimecntcorrReg_SPEC> as RegisterValue<_>>::new(0)
1165 }
1166}
1167
1168#[doc(hidden)]
1169#[derive(Copy, Clone, Eq, PartialEq)]
1170pub struct BleBasetimecntReg_SPEC;
1171impl crate::sealed::RegSpec for BleBasetimecntReg_SPEC {
1172 type DataType = u32;
1173}
1174
1175#[doc = "Base time reference counter"]
1176pub type BleBasetimecntReg = crate::RegValueT<BleBasetimecntReg_SPEC>;
1177
1178impl BleBasetimecntReg {
1179 #[doc = "Value of the 625us base time reference counter. Updated each time SAMPCLK is written. Used by the SW in order to synchronize with the HW"]
1180 #[inline(always)]
1181 pub fn basetimecnt(
1182 self,
1183 ) -> crate::common::RegisterField<
1184 0,
1185 0x7ffffff,
1186 1,
1187 0,
1188 u32,
1189 u32,
1190 BleBasetimecntReg_SPEC,
1191 crate::common::R,
1192 > {
1193 crate::common::RegisterField::<
1194 0,
1195 0x7ffffff,
1196 1,
1197 0,
1198 u32,
1199 u32,
1200 BleBasetimecntReg_SPEC,
1201 crate::common::R,
1202 >::from_register(self, 0)
1203 }
1204}
1205impl ::core::default::Default for BleBasetimecntReg {
1206 #[inline(always)]
1207 fn default() -> BleBasetimecntReg {
1208 <crate::RegValueT<BleBasetimecntReg_SPEC> as RegisterValue<_>>::new(0)
1209 }
1210}
1211
1212#[doc(hidden)]
1213#[derive(Copy, Clone, Eq, PartialEq)]
1214pub struct BleBdaddrlReg_SPEC;
1215impl crate::sealed::RegSpec for BleBdaddrlReg_SPEC {
1216 type DataType = u32;
1217}
1218
1219#[doc = "BLE device address LSB register"]
1220pub type BleBdaddrlReg = crate::RegValueT<BleBdaddrlReg_SPEC>;
1221
1222impl BleBdaddrlReg {
1223 #[doc = "Bluetooth Low Energy Device Address. LSB part."]
1224 #[inline(always)]
1225 pub fn bdaddrl(
1226 self,
1227 ) -> crate::common::RegisterField<
1228 0,
1229 0xffffffff,
1230 1,
1231 0,
1232 u32,
1233 u32,
1234 BleBdaddrlReg_SPEC,
1235 crate::common::RW,
1236 > {
1237 crate::common::RegisterField::<
1238 0,
1239 0xffffffff,
1240 1,
1241 0,
1242 u32,
1243 u32,
1244 BleBdaddrlReg_SPEC,
1245 crate::common::RW,
1246 >::from_register(self, 0)
1247 }
1248}
1249impl ::core::default::Default for BleBdaddrlReg {
1250 #[inline(always)]
1251 fn default() -> BleBdaddrlReg {
1252 <crate::RegValueT<BleBdaddrlReg_SPEC> as RegisterValue<_>>::new(0)
1253 }
1254}
1255
1256#[doc(hidden)]
1257#[derive(Copy, Clone, Eq, PartialEq)]
1258pub struct BleBdaddruReg_SPEC;
1259impl crate::sealed::RegSpec for BleBdaddruReg_SPEC {
1260 type DataType = u32;
1261}
1262
1263#[doc = "BLE device address MSB register"]
1264pub type BleBdaddruReg = crate::RegValueT<BleBdaddruReg_SPEC>;
1265
1266impl BleBdaddruReg {
1267 #[doc = "Bluetooth Low Energy Device Address privacy indicator\n0: Public Bluetooth Device Address\n1: Private Bluetooth Device Address"]
1268 #[inline(always)]
1269 pub fn priv_npub(
1270 self,
1271 ) -> crate::common::RegisterFieldBool<16, 1, 0, BleBdaddruReg_SPEC, crate::common::RW> {
1272 crate::common::RegisterFieldBool::<16,1,0,BleBdaddruReg_SPEC,crate::common::RW>::from_register(self,0)
1273 }
1274
1275 #[doc = "Bluetooth Low Energy Device Address. MSB part."]
1276 #[inline(always)]
1277 pub fn bdaddru(
1278 self,
1279 ) -> crate::common::RegisterField<
1280 0,
1281 0xffff,
1282 1,
1283 0,
1284 u16,
1285 u16,
1286 BleBdaddruReg_SPEC,
1287 crate::common::RW,
1288 > {
1289 crate::common::RegisterField::<
1290 0,
1291 0xffff,
1292 1,
1293 0,
1294 u16,
1295 u16,
1296 BleBdaddruReg_SPEC,
1297 crate::common::RW,
1298 >::from_register(self, 0)
1299 }
1300}
1301impl ::core::default::Default for BleBdaddruReg {
1302 #[inline(always)]
1303 fn default() -> BleBdaddruReg {
1304 <crate::RegValueT<BleBdaddruReg_SPEC> as RegisterValue<_>>::new(0)
1305 }
1306}
1307
1308#[doc(hidden)]
1309#[derive(Copy, Clone, Eq, PartialEq)]
1310pub struct BleBlemprio0Reg_SPEC;
1311impl crate::sealed::RegSpec for BleBlemprio0Reg_SPEC {
1312 type DataType = u32;
1313}
1314
1315#[doc = "Coexistence interface Priority 0 Register"]
1316pub type BleBlemprio0Reg = crate::RegValueT<BleBlemprio0Reg_SPEC>;
1317
1318impl BleBlemprio0Reg {
1319 #[doc = "Set Priority value for Passive Scanning"]
1320 #[inline(always)]
1321 pub fn blem7(
1322 self,
1323 ) -> crate::common::RegisterField<28, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1324 {
1325 crate::common::RegisterField::<28,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1326 }
1327
1328 #[doc = "Set Priority value for Non-Connectable Advertising"]
1329 #[inline(always)]
1330 pub fn blem6(
1331 self,
1332 ) -> crate::common::RegisterField<24, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1333 {
1334 crate::common::RegisterField::<24,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1335 }
1336
1337 #[doc = "Set Priority value for Connectable Advertising BLE message"]
1338 #[inline(always)]
1339 pub fn blem5(
1340 self,
1341 ) -> crate::common::RegisterField<20, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1342 {
1343 crate::common::RegisterField::<20,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1344 }
1345
1346 #[doc = "Set Priority value for Active Scanning BLE message"]
1347 #[inline(always)]
1348 pub fn blem4(
1349 self,
1350 ) -> crate::common::RegisterField<16, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1351 {
1352 crate::common::RegisterField::<16,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1353 }
1354
1355 #[doc = "Set Priority value for Initiating (Scanning) BLE message"]
1356 #[inline(always)]
1357 pub fn blem3(
1358 self,
1359 ) -> crate::common::RegisterField<12, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1360 {
1361 crate::common::RegisterField::<12,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1362 }
1363
1364 #[doc = "Set Priority value for Data Channel transmission BLE message"]
1365 #[inline(always)]
1366 pub fn blem2(
1367 self,
1368 ) -> crate::common::RegisterField<8, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1369 {
1370 crate::common::RegisterField::<8,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1371 }
1372
1373 #[doc = "Set Priority value for LLCP BLE message"]
1374 #[inline(always)]
1375 pub fn blem1(
1376 self,
1377 ) -> crate::common::RegisterField<4, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1378 {
1379 crate::common::RegisterField::<4,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1380 }
1381
1382 #[doc = "Set Priority value for Initiating (Connection Request Response) BLE message"]
1383 #[inline(always)]
1384 pub fn blem0(
1385 self,
1386 ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, BleBlemprio0Reg_SPEC, crate::common::RW>
1387 {
1388 crate::common::RegisterField::<0,0xf,1,0,u8,u8,BleBlemprio0Reg_SPEC,crate::common::RW>::from_register(self,0)
1389 }
1390}
1391impl ::core::default::Default for BleBlemprio0Reg {
1392 #[inline(always)]
1393 fn default() -> BleBlemprio0Reg {
1394 <crate::RegValueT<BleBlemprio0Reg_SPEC> as RegisterValue<_>>::new(877243887)
1395 }
1396}
1397
1398#[doc(hidden)]
1399#[derive(Copy, Clone, Eq, PartialEq)]
1400pub struct BleBlemprio1Reg_SPEC;
1401impl crate::sealed::RegSpec for BleBlemprio1Reg_SPEC {
1402 type DataType = u32;
1403}
1404
1405#[doc = "Coexistence interface Priority 1 Register"]
1406pub type BleBlemprio1Reg = crate::RegValueT<BleBlemprio1Reg_SPEC>;
1407
1408impl BleBlemprio1Reg {
1409 #[doc = "Set default priority value for other BLE message than those defined above"]
1410 #[inline(always)]
1411 pub fn blemdefault(
1412 self,
1413 ) -> crate::common::RegisterField<28, 0xf, 1, 0, u8, u8, BleBlemprio1Reg_SPEC, crate::common::RW>
1414 {
1415 crate::common::RegisterField::<28,0xf,1,0,u8,u8,BleBlemprio1Reg_SPEC,crate::common::RW>::from_register(self,0)
1416 }
1417}
1418impl ::core::default::Default for BleBlemprio1Reg {
1419 #[inline(always)]
1420 fn default() -> BleBlemprio1Reg {
1421 <crate::RegValueT<BleBlemprio1Reg_SPEC> as RegisterValue<_>>::new(805306368)
1422 }
1423}
1424
1425#[doc(hidden)]
1426#[derive(Copy, Clone, Eq, PartialEq)]
1427pub struct BleBleprioscharbReg_SPEC;
1428impl crate::sealed::RegSpec for BleBleprioscharbReg_SPEC {
1429 type DataType = u32;
1430}
1431
1432#[doc = "Priority Scheduling Arbiter Control Register"]
1433pub type BleBleprioscharbReg = crate::RegValueT<BleBleprioscharbReg_SPEC>;
1434
1435impl BleBleprioscharbReg {
1436 #[doc = "Determine BLE Priority Scheduling Arbitration Mode\n0: BLE Decision instant not used\n1: BLE Decision instant used"]
1437 #[inline(always)]
1438 pub fn blepriomode(
1439 self,
1440 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleBleprioscharbReg_SPEC, crate::common::RW>
1441 {
1442 crate::common::RegisterFieldBool::<15,1,0,BleBleprioscharbReg_SPEC,crate::common::RW>::from_register(self,0)
1443 }
1444
1445 #[doc = "Determine the decision instant margin for Priority Scheduling Arbitration."]
1446 #[inline(always)]
1447 pub fn blemargin(
1448 self,
1449 ) -> crate::common::RegisterField<
1450 0,
1451 0xff,
1452 1,
1453 0,
1454 u8,
1455 u8,
1456 BleBleprioscharbReg_SPEC,
1457 crate::common::RW,
1458 > {
1459 crate::common::RegisterField::<
1460 0,
1461 0xff,
1462 1,
1463 0,
1464 u8,
1465 u8,
1466 BleBleprioscharbReg_SPEC,
1467 crate::common::RW,
1468 >::from_register(self, 0)
1469 }
1470}
1471impl ::core::default::Default for BleBleprioscharbReg {
1472 #[inline(always)]
1473 fn default() -> BleBleprioscharbReg {
1474 <crate::RegValueT<BleBleprioscharbReg_SPEC> as RegisterValue<_>>::new(0)
1475 }
1476}
1477
1478#[doc(hidden)]
1479#[derive(Copy, Clone, Eq, PartialEq)]
1480pub struct BleCntl2Reg_SPEC;
1481impl crate::sealed::RegSpec for BleCntl2Reg_SPEC {
1482 type DataType = u32;
1483}
1484
1485#[doc = "BLE Control Register 2"]
1486pub type BleCntl2Reg = crate::RegValueT<BleCntl2Reg_SPEC>;
1487
1488impl BleCntl2Reg {
1489 #[doc = "0: Select Peak-hold RSSI value (default).\n1: Select current Average RSSI value."]
1490 #[inline(always)]
1491 pub fn ble_rssi_sel(
1492 self,
1493 ) -> crate::common::RegisterFieldBool<21, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1494 crate::common::RegisterFieldBool::<21,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1495 }
1496
1497 #[doc = "The status of the BLE_WAKEUP_LP_IRQ. The Interrupt Service Routine of BLE_WAKEUP_LP_IRQ should return only when the WAKEUPLPSTAT is cleared.\nNote that BLE_WAKEUP_LP_IRQ is automatically acknowledged after the power up of the Radio Subsystem, plus one Low Power Clock period."]
1498 #[inline(always)]
1499 pub fn wakeuplpstat(
1500 self,
1501 ) -> crate::common::RegisterFieldBool<20, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1502 crate::common::RegisterFieldBool::<20,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1503 }
1504
1505 #[doc = "Keep to 0."]
1506 #[inline(always)]
1507 pub fn sw_rpl_spi(
1508 self,
1509 ) -> crate::common::RegisterFieldBool<19, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1510 crate::common::RegisterFieldBool::<19,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1511 }
1512
1513 #[doc = "BLE Clock Select.\nSpecifies the BLE master clock absolute frequency in MHz.\nTypical values are 16 and 8.\nValue depends on the selected XTAL frequency and the value of CLK_RADIO_REG\\[BLE_DIV\\] bitfield. For example, if XTAL oscillates at 16MHz and CLK_RADIO_REG\\[BLE_DIV\\] = 1 (divide by 2), then BLE master clock frequency is 8MHz and BLE_CLK_SEL should be set to value 8.\nThe selected BLE master clock frequency (affected by BLE_DIV and BLE_CLK_SEL) must be modified and set only during the initialization time, i.e. before setting BLE_RWBTLECNTL_REG\\[RWBLE_EN\\] to 1.\nRefer also to BLE_RWBTLECONF_REG\\[CLK_SEL\\]."]
1514 #[inline(always)]
1515 pub fn ble_clk_sel(
1516 self,
1517 ) -> crate::common::RegisterField<9, 0x3f, 1, 0, u8, u8, BleCntl2Reg_SPEC, crate::common::RW>
1518 {
1519 crate::common::RegisterField::<9,0x3f,1,0,u8,u8,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1520 }
1521
1522 #[doc = "This active high signal indicates when it is allowed for the BLE core (embedded in the Radio sub-System power domain) to be powered down.\nAfter the assertion of the BLE_DEEPSLCNTL_REG\\[DEEP_SLEEP_ON\\] a hardware sequence based on the Low Power clock will cause the assertion of RADIO_PWRDN_ALLOW. The RADIO_PWRDN_ALLOW will be cleared to \"0\" when the BLE core exits from the sleep state, i.e. when the BLE_SLP_IRQ will be asserted."]
1523 #[inline(always)]
1524 pub fn radio_pwrdn_allow(
1525 self,
1526 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1527 crate::common::RegisterFieldBool::<8,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1528 }
1529
1530 #[doc = "The SW can only write a \"0\" to this bit.\nWhenever a positive edge of the low power clock used by the BLE Timers is detected, then the HW will automatically set this bit to \"1\". This functionality will not work if BLE Timer is in reset state (refer to CLK_RADIO_REG\\[BLE_LP_RESET\\]).\nThis bit can be used for SW synchronization, to debug the low power clock, etc."]
1531 #[inline(always)]
1532 pub fn mon_lp_clk(
1533 self,
1534 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1535 crate::common::RegisterFieldBool::<7,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1536 }
1537
1538 #[doc = "0: BLE uses low power clock\n1: BLE uses master clock"]
1539 #[inline(always)]
1540 pub fn ble_clk_stat(
1541 self,
1542 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1543 crate::common::RegisterFieldBool::<6,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1544 }
1545
1546 #[doc = "Exchange Memory Access Error Mask:\nWhen cleared to \"0\" the EM_ACC_ERR will not cause an BLE_ERROR_IRQ interrupt.\nWhen set to \"1\" an BLE_ERROR_IRQ will be generated as long as EM_ACC_ERR is \"1\"."]
1547 #[inline(always)]
1548 pub fn emaccerrmsk(
1549 self,
1550 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1551 crate::common::RegisterFieldBool::<2,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1552 }
1553
1554 #[doc = "Exchange Memory Access Error Acknowledge.\nWhen the SW writes a \"1\" to this bit then the EMACCERRSTAT bit will be cleared.\nWhen the SW writes \"0\" it will have no affect.\nThe read value is always \"0\"."]
1555 #[inline(always)]
1556 pub fn emaccerrack(
1557 self,
1558 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1559 crate::common::RegisterFieldBool::<1,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1560 }
1561
1562 #[doc = "Exchange Memory Access Error Status:\nThe bit is read-only and can be cleared only by writing a \"1\" at EMACCERRACK bitfield.\nThis bit will be set to \"1\" by the hardware when the controller will access an EM page that is not mapped according to the EM_MAPPING value.\nWhen this bit is \"1\" then the BLE_ERROR_IRQ will be asserted as long as EMACCERRMSK is \"1\"."]
1563 #[inline(always)]
1564 pub fn emaccerrstat(
1565 self,
1566 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleCntl2Reg_SPEC, crate::common::RW> {
1567 crate::common::RegisterFieldBool::<0,1,0,BleCntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
1568 }
1569}
1570impl ::core::default::Default for BleCntl2Reg {
1571 #[inline(always)]
1572 fn default() -> BleCntl2Reg {
1573 <crate::RegValueT<BleCntl2Reg_SPEC> as RegisterValue<_>>::new(0)
1574 }
1575}
1576
1577#[doc(hidden)]
1578#[derive(Copy, Clone, Eq, PartialEq)]
1579pub struct BleCoexifcntl0Reg_SPEC;
1580impl crate::sealed::RegSpec for BleCoexifcntl0Reg_SPEC {
1581 type DataType = u32;
1582}
1583
1584#[doc = "Coexistence interface Control 0 Register"]
1585pub type BleCoexifcntl0Reg = crate::RegValueT<BleCoexifcntl0Reg_SPEC>;
1586
1587impl BleCoexifcntl0Reg {
1588 #[doc = "Defines Bluetooth Low Energy packet ble_rx mode behavior.\n00: Rx indication excluding Rx Power up delay (starts when correlator is enabled)\n01: Rx indication including Rx Power up delay\n10: Rx High priority indicator\n11: n/a"]
1589 #[inline(always)]
1590 pub fn wlcrxpriomode(
1591 self,
1592 ) -> crate::common::RegisterField<
1593 20,
1594 0x3,
1595 1,
1596 0,
1597 u8,
1598 u8,
1599 BleCoexifcntl0Reg_SPEC,
1600 crate::common::RW,
1601 > {
1602 crate::common::RegisterField::<
1603 20,
1604 0x3,
1605 1,
1606 0,
1607 u8,
1608 u8,
1609 BleCoexifcntl0Reg_SPEC,
1610 crate::common::RW,
1611 >::from_register(self, 0)
1612 }
1613
1614 #[doc = "Defines Bluetooth Low Energy packet ble_tx mode behavior\n00: Tx indication excluding Tx Power up delay\n01: Tx indication including Tx Power up delay\n10: Tx High priority indicator\n11: n/a"]
1615 #[inline(always)]
1616 pub fn wlctxpriomode(
1617 self,
1618 ) -> crate::common::RegisterField<
1619 16,
1620 0x3,
1621 1,
1622 0,
1623 u8,
1624 u8,
1625 BleCoexifcntl0Reg_SPEC,
1626 crate::common::RW,
1627 > {
1628 crate::common::RegisterField::<
1629 16,
1630 0x3,
1631 1,
1632 0,
1633 u8,
1634 u8,
1635 BleCoexifcntl0Reg_SPEC,
1636 crate::common::RW,
1637 >::from_register(self, 0)
1638 }
1639
1640 #[doc = "Determines how wlan_tx impact BLE Tx and Rx\n00: wlan_tx has no impact (default mode)\n01: wlan_tx can stop BLE Tx, no impact on BLE Rx\n10: wlan_tx can stop BLE Rx, no impact on BLE Tx\n11: wlan_tx can stop both BLE Tx and BLE Rx"]
1641 #[inline(always)]
1642 pub fn wlantxmsk(
1643 self,
1644 ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, BleCoexifcntl0Reg_SPEC, crate::common::RW>
1645 {
1646 crate::common::RegisterField::<
1647 6,
1648 0x3,
1649 1,
1650 0,
1651 u8,
1652 u8,
1653 BleCoexifcntl0Reg_SPEC,
1654 crate::common::RW,
1655 >::from_register(self, 0)
1656 }
1657
1658 #[doc = "Determines how wlan_rx impact BLE Tx and Rx\n00: wlan_rx has no impact\n01: wlan_rx can stop BLE Tx, no impact on BLE Rx (default mode)\n10: wlan_rx can stop BLE Rx, no impact on BLE Tx\n11: wlan_rx can stop both BLE Tx and BLE Rx"]
1659 #[inline(always)]
1660 pub fn wlanrxmsk(
1661 self,
1662 ) -> crate::common::RegisterField<4, 0x3, 1, 0, u8, u8, BleCoexifcntl0Reg_SPEC, crate::common::RW>
1663 {
1664 crate::common::RegisterField::<
1665 4,
1666 0x3,
1667 1,
1668 0,
1669 u8,
1670 u8,
1671 BleCoexifcntl0Reg_SPEC,
1672 crate::common::RW,
1673 >::from_register(self, 0)
1674 }
1675
1676 #[doc = "Determines whether ble_sync is generated or not.\n0: ble_sync pulse not generated\n1: ble_sync pulse generated"]
1677 #[inline(always)]
1678 pub fn syncgen_en(
1679 self,
1680 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleCoexifcntl0Reg_SPEC, crate::common::RW> {
1681 crate::common::RegisterFieldBool::<1,1,0,BleCoexifcntl0Reg_SPEC,crate::common::RW>::from_register(self,0)
1682 }
1683
1684 #[doc = "Enable / Disable control of the MWS/WLAN Coexistence control\n0: Coexistence interface disabled\n1: Coexistence interface enabled"]
1685 #[inline(always)]
1686 pub fn coex_en(
1687 self,
1688 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleCoexifcntl0Reg_SPEC, crate::common::RW> {
1689 crate::common::RegisterFieldBool::<0,1,0,BleCoexifcntl0Reg_SPEC,crate::common::RW>::from_register(self,0)
1690 }
1691}
1692impl ::core::default::Default for BleCoexifcntl0Reg {
1693 #[inline(always)]
1694 fn default() -> BleCoexifcntl0Reg {
1695 <crate::RegValueT<BleCoexifcntl0Reg_SPEC> as RegisterValue<_>>::new(0)
1696 }
1697}
1698
1699#[doc(hidden)]
1700#[derive(Copy, Clone, Eq, PartialEq)]
1701pub struct BleCoexifcntl1Reg_SPEC;
1702impl crate::sealed::RegSpec for BleCoexifcntl1Reg_SPEC {
1703 type DataType = u32;
1704}
1705
1706#[doc = "Coexistence interface Control 1 Register"]
1707pub type BleCoexifcntl1Reg = crate::RegValueT<BleCoexifcntl1Reg_SPEC>;
1708
1709impl BleCoexifcntl1Reg {
1710 #[doc = "Applies on ble_rx if WLCRXPRIOMODE equals 10\nDetermines the threshold for Rx priority setting.\nIf ble_pti\\[3:0\\] output value is greater than WLCPRXTHR, then Rx Bluetooth Low Energy priority is considered as high, and must be provided to the WLAN coexistence interface"]
1711 #[inline(always)]
1712 pub fn wlcprxthr(
1713 self,
1714 ) -> crate::common::RegisterField<
1715 24,
1716 0x1f,
1717 1,
1718 0,
1719 u8,
1720 u8,
1721 BleCoexifcntl1Reg_SPEC,
1722 crate::common::RW,
1723 > {
1724 crate::common::RegisterField::<
1725 24,
1726 0x1f,
1727 1,
1728 0,
1729 u8,
1730 u8,
1731 BleCoexifcntl1Reg_SPEC,
1732 crate::common::RW,
1733 >::from_register(self, 0)
1734 }
1735
1736 #[doc = "Applies on ble_tx if WLCTXPRIOMODE equals 10\nDetermines the threshold for priority setting.\nIf ble_pti\\[3:0\\] output value is greater than WLCPTXTHR, then Tx Bluetooth Low Energy priority is considered as high, and must be provided to the WLAN coexistence interface"]
1737 #[inline(always)]
1738 pub fn wlcptxthr(
1739 self,
1740 ) -> crate::common::RegisterField<
1741 16,
1742 0x1f,
1743 1,
1744 0,
1745 u8,
1746 u8,
1747 BleCoexifcntl1Reg_SPEC,
1748 crate::common::RW,
1749 > {
1750 crate::common::RegisterField::<
1751 16,
1752 0x1f,
1753 1,
1754 0,
1755 u8,
1756 u8,
1757 BleCoexifcntl1Reg_SPEC,
1758 crate::common::RW,
1759 >::from_register(self, 0)
1760 }
1761
1762 #[doc = "Applies on ble_tx if WLCTXPRIOMODE equals 10\nApplies on ble_rx if WLCRXPRIOMODE equals 10\nDetermines how many s the priority information must be maintained\nNote that if WLCPDURATION = 0x00, then Tx/Rx priority levels are maintained till Tx/Rx EN are de-asserted."]
1763 #[inline(always)]
1764 pub fn wlcpduration(
1765 self,
1766 ) -> crate::common::RegisterField<
1767 8,
1768 0x7f,
1769 1,
1770 0,
1771 u8,
1772 u8,
1773 BleCoexifcntl1Reg_SPEC,
1774 crate::common::RW,
1775 > {
1776 crate::common::RegisterField::<
1777 8,
1778 0x7f,
1779 1,
1780 0,
1781 u8,
1782 u8,
1783 BleCoexifcntl1Reg_SPEC,
1784 crate::common::RW,
1785 >::from_register(self, 0)
1786 }
1787
1788 #[doc = "Applies on ble_tx if WLCTXPRIOMODE equals 10.\nApplies on ble_rx if WLCRXPRIOMODE equals 10.\nDetermines the delay (in us) in Tx/Rx enables rises the time Bluetooth Low energy Tx/Rx priority has to be provided ."]
1789 #[inline(always)]
1790 pub fn wlcpdelay(
1791 self,
1792 ) -> crate::common::RegisterField<
1793 0,
1794 0x7f,
1795 1,
1796 0,
1797 u8,
1798 u8,
1799 BleCoexifcntl1Reg_SPEC,
1800 crate::common::RW,
1801 > {
1802 crate::common::RegisterField::<
1803 0,
1804 0x7f,
1805 1,
1806 0,
1807 u8,
1808 u8,
1809 BleCoexifcntl1Reg_SPEC,
1810 crate::common::RW,
1811 >::from_register(self, 0)
1812 }
1813}
1814impl ::core::default::Default for BleCoexifcntl1Reg {
1815 #[inline(always)]
1816 fn default() -> BleCoexifcntl1Reg {
1817 <crate::RegValueT<BleCoexifcntl1Reg_SPEC> as RegisterValue<_>>::new(0)
1818 }
1819}
1820
1821#[doc(hidden)]
1822#[derive(Copy, Clone, Eq, PartialEq)]
1823pub struct BleCurrentrxdescptrReg_SPEC;
1824impl crate::sealed::RegSpec for BleCurrentrxdescptrReg_SPEC {
1825 type DataType = u32;
1826}
1827
1828#[doc = "Rx Descriptor Pointer for the Receive Buffer Chained List"]
1829pub type BleCurrentrxdescptrReg = crate::RegValueT<BleCurrentrxdescptrReg_SPEC>;
1830
1831impl BleCurrentrxdescptrReg {
1832 #[doc = "Exchange Table Pointer that determines the starting point of the Exchange Table"]
1833 #[inline(always)]
1834 pub fn etptr(
1835 self,
1836 ) -> crate::common::RegisterField<
1837 16,
1838 0xffff,
1839 1,
1840 0,
1841 u16,
1842 u16,
1843 BleCurrentrxdescptrReg_SPEC,
1844 crate::common::RW,
1845 > {
1846 crate::common::RegisterField::<
1847 16,
1848 0xffff,
1849 1,
1850 0,
1851 u16,
1852 u16,
1853 BleCurrentrxdescptrReg_SPEC,
1854 crate::common::RW,
1855 >::from_register(self, 0)
1856 }
1857
1858 #[doc = "Rx Descriptor Pointer that determines the starting point of the Receive Buffer Chained List"]
1859 #[inline(always)]
1860 pub fn currentrxdescptr(
1861 self,
1862 ) -> crate::common::RegisterField<
1863 0,
1864 0x7fff,
1865 1,
1866 0,
1867 u16,
1868 u16,
1869 BleCurrentrxdescptrReg_SPEC,
1870 crate::common::RW,
1871 > {
1872 crate::common::RegisterField::<
1873 0,
1874 0x7fff,
1875 1,
1876 0,
1877 u16,
1878 u16,
1879 BleCurrentrxdescptrReg_SPEC,
1880 crate::common::RW,
1881 >::from_register(self, 0)
1882 }
1883}
1884impl ::core::default::Default for BleCurrentrxdescptrReg {
1885 #[inline(always)]
1886 fn default() -> BleCurrentrxdescptrReg {
1887 <crate::RegValueT<BleCurrentrxdescptrReg_SPEC> as RegisterValue<_>>::new(0)
1888 }
1889}
1890
1891#[doc(hidden)]
1892#[derive(Copy, Clone, Eq, PartialEq)]
1893pub struct BleDebugaddmaxReg_SPEC;
1894impl crate::sealed::RegSpec for BleDebugaddmaxReg_SPEC {
1895 type DataType = u32;
1896}
1897
1898#[doc = "Upper limit for the memory zone"]
1899pub type BleDebugaddmaxReg = crate::RegValueT<BleDebugaddmaxReg_SPEC>;
1900
1901impl BleDebugaddmaxReg {
1902 #[doc = "Upper limit for the Register zone indicated by the reg_inzone flag"]
1903 #[inline(always)]
1904 pub fn reg_addmax(
1905 self,
1906 ) -> crate::common::RegisterField<
1907 16,
1908 0xffff,
1909 1,
1910 0,
1911 u16,
1912 u16,
1913 BleDebugaddmaxReg_SPEC,
1914 crate::common::RW,
1915 > {
1916 crate::common::RegisterField::<
1917 16,
1918 0xffff,
1919 1,
1920 0,
1921 u16,
1922 u16,
1923 BleDebugaddmaxReg_SPEC,
1924 crate::common::RW,
1925 >::from_register(self, 0)
1926 }
1927
1928 #[doc = "Upper limit for the Exchange Memory zone indicated by the em_inzone flag"]
1929 #[inline(always)]
1930 pub fn em_addmax(
1931 self,
1932 ) -> crate::common::RegisterField<
1933 0,
1934 0xffff,
1935 1,
1936 0,
1937 u16,
1938 u16,
1939 BleDebugaddmaxReg_SPEC,
1940 crate::common::RW,
1941 > {
1942 crate::common::RegisterField::<
1943 0,
1944 0xffff,
1945 1,
1946 0,
1947 u16,
1948 u16,
1949 BleDebugaddmaxReg_SPEC,
1950 crate::common::RW,
1951 >::from_register(self, 0)
1952 }
1953}
1954impl ::core::default::Default for BleDebugaddmaxReg {
1955 #[inline(always)]
1956 fn default() -> BleDebugaddmaxReg {
1957 <crate::RegValueT<BleDebugaddmaxReg_SPEC> as RegisterValue<_>>::new(0)
1958 }
1959}
1960
1961#[doc(hidden)]
1962#[derive(Copy, Clone, Eq, PartialEq)]
1963pub struct BleDebugaddminReg_SPEC;
1964impl crate::sealed::RegSpec for BleDebugaddminReg_SPEC {
1965 type DataType = u32;
1966}
1967
1968#[doc = "Lower limit for the memory zone"]
1969pub type BleDebugaddminReg = crate::RegValueT<BleDebugaddminReg_SPEC>;
1970
1971impl BleDebugaddminReg {
1972 #[doc = "Lower limit for the Register zone indicated by the reg_inzone flag"]
1973 #[inline(always)]
1974 pub fn reg_addmin(
1975 self,
1976 ) -> crate::common::RegisterField<
1977 16,
1978 0xffff,
1979 1,
1980 0,
1981 u16,
1982 u16,
1983 BleDebugaddminReg_SPEC,
1984 crate::common::RW,
1985 > {
1986 crate::common::RegisterField::<
1987 16,
1988 0xffff,
1989 1,
1990 0,
1991 u16,
1992 u16,
1993 BleDebugaddminReg_SPEC,
1994 crate::common::RW,
1995 >::from_register(self, 0)
1996 }
1997
1998 #[doc = "Lower limit for the Exchange Memory zone indicated by the em_inzone flag"]
1999 #[inline(always)]
2000 pub fn em_addmin(
2001 self,
2002 ) -> crate::common::RegisterField<
2003 0,
2004 0xffff,
2005 1,
2006 0,
2007 u16,
2008 u16,
2009 BleDebugaddminReg_SPEC,
2010 crate::common::RW,
2011 > {
2012 crate::common::RegisterField::<
2013 0,
2014 0xffff,
2015 1,
2016 0,
2017 u16,
2018 u16,
2019 BleDebugaddminReg_SPEC,
2020 crate::common::RW,
2021 >::from_register(self, 0)
2022 }
2023}
2024impl ::core::default::Default for BleDebugaddminReg {
2025 #[inline(always)]
2026 fn default() -> BleDebugaddminReg {
2027 <crate::RegValueT<BleDebugaddminReg_SPEC> as RegisterValue<_>>::new(0)
2028 }
2029}
2030
2031#[doc(hidden)]
2032#[derive(Copy, Clone, Eq, PartialEq)]
2033pub struct BleDeepslcntlReg_SPEC;
2034impl crate::sealed::RegSpec for BleDeepslcntlReg_SPEC {
2035 type DataType = u32;
2036}
2037
2038#[doc = "Deep-Sleep control register"]
2039pub type BleDeepslcntlReg = crate::RegValueT<BleDeepslcntlReg_SPEC>;
2040
2041impl BleDeepslcntlReg {
2042 #[doc = "External Wake-Up disable\n0: RW-BLE Core can be woken by external wake-up\n1: RW-BLE Core cannot be woken up by external wake-up"]
2043 #[inline(always)]
2044 pub fn extwkupdsb(
2045 self,
2046 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleDeepslcntlReg_SPEC, crate::common::RW> {
2047 crate::common::RegisterFieldBool::<31,1,0,BleDeepslcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2048 }
2049
2050 #[doc = "Indicator of current Deep Sleep clock mux status:\n0: RW-BLE Core is not yet in Deep Sleep Mode\n1: RW-BLE Core is in Deep Sleep Mode (only low_power_clk is running)"]
2051 #[inline(always)]
2052 pub fn deep_sleep_stat(
2053 self,
2054 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleDeepslcntlReg_SPEC, crate::common::R> {
2055 crate::common::RegisterFieldBool::<15,1,0,BleDeepslcntlReg_SPEC,crate::common::R>::from_register(self,0)
2056 }
2057
2058 #[doc = "Wake Up Request from RW-BLE Software. Applies when system is in Deep Sleep Mode. It wakes up the RW-BLE Core when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0."]
2059 #[inline(always)]
2060 pub fn soft_wakeup_req(
2061 self,
2062 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleDeepslcntlReg_SPEC, crate::common::W> {
2063 crate::common::RegisterFieldBool::<4,1,0,BleDeepslcntlReg_SPEC,crate::common::W>::from_register(self,0)
2064 }
2065
2066 #[doc = "625us base time reference integer and fractional part correction. Applies when system has been woken-up from Deep Sleep Mode. It enables Fine Counter and Base Time counter when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0."]
2067 #[inline(always)]
2068 pub fn deep_sleep_corr_en(
2069 self,
2070 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleDeepslcntlReg_SPEC, crate::common::W> {
2071 crate::common::RegisterFieldBool::<3,1,0,BleDeepslcntlReg_SPEC,crate::common::W>::from_register(self,0)
2072 }
2073
2074 #[doc = "0: RW-BLE Core in normal active mode\n1: Request RW-BLE Core to switch in deep sleep mode.\nThis bit is reset on DEEP_SLEEP_STAT falling edge."]
2075 #[inline(always)]
2076 pub fn deep_sleep_on(
2077 self,
2078 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleDeepslcntlReg_SPEC, crate::common::W> {
2079 crate::common::RegisterFieldBool::<2,1,0,BleDeepslcntlReg_SPEC,crate::common::W>::from_register(self,0)
2080 }
2081
2082 #[doc = "Always set to \"3\" when DEEP_SLEEP_ON is set to \"1\".\nIt controls the generation of BLE_WAKEUP_LP_IRQ."]
2083 #[inline(always)]
2084 pub fn deep_sleep_irq_en(
2085 self,
2086 ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, BleDeepslcntlReg_SPEC, crate::common::RW>
2087 {
2088 crate::common::RegisterField::<0,0x3,1,0,u8,u8,BleDeepslcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2089 }
2090}
2091impl ::core::default::Default for BleDeepslcntlReg {
2092 #[inline(always)]
2093 fn default() -> BleDeepslcntlReg {
2094 <crate::RegValueT<BleDeepslcntlReg_SPEC> as RegisterValue<_>>::new(0)
2095 }
2096}
2097
2098#[doc(hidden)]
2099#[derive(Copy, Clone, Eq, PartialEq)]
2100pub struct BleDeepslstatReg_SPEC;
2101impl crate::sealed::RegSpec for BleDeepslstatReg_SPEC {
2102 type DataType = u32;
2103}
2104
2105#[doc = "Duration of the last deep sleep phase register"]
2106pub type BleDeepslstatReg = crate::RegValueT<BleDeepslstatReg_SPEC>;
2107
2108impl BleDeepslstatReg {
2109 #[doc = "Actual duration of the last deep sleep phase measured in low_power_clk clock cycle. DEEPSLDUR is set to zero at the beginning of the deep sleep phase, and is incremented at each low_power_clk clock cycle until the end of the deep sleep phase."]
2110 #[inline(always)]
2111 pub fn deepsldur(
2112 self,
2113 ) -> crate::common::RegisterField<
2114 0,
2115 0xffffffff,
2116 1,
2117 0,
2118 u32,
2119 u32,
2120 BleDeepslstatReg_SPEC,
2121 crate::common::R,
2122 > {
2123 crate::common::RegisterField::<
2124 0,
2125 0xffffffff,
2126 1,
2127 0,
2128 u32,
2129 u32,
2130 BleDeepslstatReg_SPEC,
2131 crate::common::R,
2132 >::from_register(self, 0)
2133 }
2134}
2135impl ::core::default::Default for BleDeepslstatReg {
2136 #[inline(always)]
2137 fn default() -> BleDeepslstatReg {
2138 <crate::RegValueT<BleDeepslstatReg_SPEC> as RegisterValue<_>>::new(0)
2139 }
2140}
2141
2142#[doc(hidden)]
2143#[derive(Copy, Clone, Eq, PartialEq)]
2144pub struct BleDeepslwkupReg_SPEC;
2145impl crate::sealed::RegSpec for BleDeepslwkupReg_SPEC {
2146 type DataType = u32;
2147}
2148
2149#[doc = "Time (measured in Low Power clock cycles) in Deep Sleep Mode before waking-up the device"]
2150pub type BleDeepslwkupReg = crate::RegValueT<BleDeepslwkupReg_SPEC>;
2151
2152impl BleDeepslwkupReg {
2153 #[doc = "Determines the time in low_power_clk clock cycles to spend in Deep Sleep Mode before waking-up the device. This ensures a maximum of 37 hours and 16mn sleep mode capabilities at 32kHz. This ensures a maximum of 36 hours and 16mn sleep mode capabilities at 32.768kHz"]
2154 #[inline(always)]
2155 pub fn deepsltime(
2156 self,
2157 ) -> crate::common::RegisterField<
2158 0,
2159 0xffffffff,
2160 1,
2161 0,
2162 u32,
2163 u32,
2164 BleDeepslwkupReg_SPEC,
2165 crate::common::RW,
2166 > {
2167 crate::common::RegisterField::<
2168 0,
2169 0xffffffff,
2170 1,
2171 0,
2172 u32,
2173 u32,
2174 BleDeepslwkupReg_SPEC,
2175 crate::common::RW,
2176 >::from_register(self, 0)
2177 }
2178}
2179impl ::core::default::Default for BleDeepslwkupReg {
2180 #[inline(always)]
2181 fn default() -> BleDeepslwkupReg {
2182 <crate::RegValueT<BleDeepslwkupReg_SPEC> as RegisterValue<_>>::new(0)
2183 }
2184}
2185
2186#[doc(hidden)]
2187#[derive(Copy, Clone, Eq, PartialEq)]
2188pub struct BleDiagcntl2Reg_SPEC;
2189impl crate::sealed::RegSpec for BleDiagcntl2Reg_SPEC {
2190 type DataType = u32;
2191}
2192
2193#[doc = "Debug use only"]
2194pub type BleDiagcntl2Reg = crate::RegValueT<BleDiagcntl2Reg_SPEC>;
2195
2196impl BleDiagcntl2Reg {
2197 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2198 #[inline(always)]
2199 pub fn diag7_en(
2200 self,
2201 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleDiagcntl2Reg_SPEC, crate::common::RW> {
2202 crate::common::RegisterFieldBool::<31,1,0,BleDiagcntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
2203 }
2204
2205 #[doc = "Only relevant when DIAG7_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG7."]
2206 #[inline(always)]
2207 pub fn diag7(
2208 self,
2209 ) -> crate::common::RegisterField<24, 0x3f, 1, 0, u8, u8, BleDiagcntl2Reg_SPEC, crate::common::RW>
2210 {
2211 crate::common::RegisterField::<
2212 24,
2213 0x3f,
2214 1,
2215 0,
2216 u8,
2217 u8,
2218 BleDiagcntl2Reg_SPEC,
2219 crate::common::RW,
2220 >::from_register(self, 0)
2221 }
2222
2223 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2224 #[inline(always)]
2225 pub fn diag6_en(
2226 self,
2227 ) -> crate::common::RegisterFieldBool<23, 1, 0, BleDiagcntl2Reg_SPEC, crate::common::RW> {
2228 crate::common::RegisterFieldBool::<23,1,0,BleDiagcntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
2229 }
2230
2231 #[doc = "Only relevant when DIAG6_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG6."]
2232 #[inline(always)]
2233 pub fn diag6(
2234 self,
2235 ) -> crate::common::RegisterField<16, 0x3f, 1, 0, u8, u8, BleDiagcntl2Reg_SPEC, crate::common::RW>
2236 {
2237 crate::common::RegisterField::<
2238 16,
2239 0x3f,
2240 1,
2241 0,
2242 u8,
2243 u8,
2244 BleDiagcntl2Reg_SPEC,
2245 crate::common::RW,
2246 >::from_register(self, 0)
2247 }
2248
2249 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2250 #[inline(always)]
2251 pub fn diag5_en(
2252 self,
2253 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleDiagcntl2Reg_SPEC, crate::common::RW> {
2254 crate::common::RegisterFieldBool::<15,1,0,BleDiagcntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
2255 }
2256
2257 #[doc = "Only relevant when DIAG5_EN= 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG5."]
2258 #[inline(always)]
2259 pub fn diag5(
2260 self,
2261 ) -> crate::common::RegisterField<8, 0x3f, 1, 0, u8, u8, BleDiagcntl2Reg_SPEC, crate::common::RW>
2262 {
2263 crate::common::RegisterField::<8,0x3f,1,0,u8,u8,BleDiagcntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
2264 }
2265
2266 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2267 #[inline(always)]
2268 pub fn diag4_en(
2269 self,
2270 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleDiagcntl2Reg_SPEC, crate::common::RW> {
2271 crate::common::RegisterFieldBool::<7,1,0,BleDiagcntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
2272 }
2273
2274 #[doc = "Only relevant when DIAG4_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG4."]
2275 #[inline(always)]
2276 pub fn diag4(
2277 self,
2278 ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, BleDiagcntl2Reg_SPEC, crate::common::RW>
2279 {
2280 crate::common::RegisterField::<0,0x3f,1,0,u8,u8,BleDiagcntl2Reg_SPEC,crate::common::RW>::from_register(self,0)
2281 }
2282}
2283impl ::core::default::Default for BleDiagcntl2Reg {
2284 #[inline(always)]
2285 fn default() -> BleDiagcntl2Reg {
2286 <crate::RegValueT<BleDiagcntl2Reg_SPEC> as RegisterValue<_>>::new(0)
2287 }
2288}
2289
2290#[doc(hidden)]
2291#[derive(Copy, Clone, Eq, PartialEq)]
2292pub struct BleDiagcntl3Reg_SPEC;
2293impl crate::sealed::RegSpec for BleDiagcntl3Reg_SPEC {
2294 type DataType = u32;
2295}
2296
2297#[doc = "Debug use only"]
2298pub type BleDiagcntl3Reg = crate::RegValueT<BleDiagcntl3Reg_SPEC>;
2299
2300impl BleDiagcntl3Reg {
2301 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2302 #[inline(always)]
2303 pub fn diag7_inv(
2304 self,
2305 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2306 crate::common::RegisterFieldBool::<31,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2307 }
2308
2309 #[doc = "Selects which bit from the DIAG7 word will be forwarded to bit 7 of the BLE DIagnostic Port."]
2310 #[inline(always)]
2311 pub fn diag7_bit(
2312 self,
2313 ) -> crate::common::RegisterField<28, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2314 {
2315 crate::common::RegisterField::<28,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2316 }
2317
2318 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2319 #[inline(always)]
2320 pub fn diag6_inv(
2321 self,
2322 ) -> crate::common::RegisterFieldBool<27, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2323 crate::common::RegisterFieldBool::<27,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2324 }
2325
2326 #[doc = "Selects which bit from the DIAG6 word will be forwarded to bit 6 of the BLE DIagnostic Port."]
2327 #[inline(always)]
2328 pub fn diag6_bit(
2329 self,
2330 ) -> crate::common::RegisterField<24, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2331 {
2332 crate::common::RegisterField::<24,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2333 }
2334
2335 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2336 #[inline(always)]
2337 pub fn diag5_inv(
2338 self,
2339 ) -> crate::common::RegisterFieldBool<23, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2340 crate::common::RegisterFieldBool::<23,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2341 }
2342
2343 #[doc = "Selects which bit from the DIAG5 word will be forwarded to bit 5 of the BLE DIagnostic Port."]
2344 #[inline(always)]
2345 pub fn diag5_bit(
2346 self,
2347 ) -> crate::common::RegisterField<20, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2348 {
2349 crate::common::RegisterField::<20,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2350 }
2351
2352 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2353 #[inline(always)]
2354 pub fn diag4_inv(
2355 self,
2356 ) -> crate::common::RegisterFieldBool<19, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2357 crate::common::RegisterFieldBool::<19,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2358 }
2359
2360 #[doc = "Selects which bit from the DIAG4 word will be forwarded to bit 4 of the BLE DIagnostic Port."]
2361 #[inline(always)]
2362 pub fn diag4_bit(
2363 self,
2364 ) -> crate::common::RegisterField<16, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2365 {
2366 crate::common::RegisterField::<16,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2367 }
2368
2369 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2370 #[inline(always)]
2371 pub fn diag3_inv(
2372 self,
2373 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2374 crate::common::RegisterFieldBool::<15,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2375 }
2376
2377 #[doc = "Selects which bit from the DIAG3 word will be forwarded to bit 3 of the BLE DIagnostic Port."]
2378 #[inline(always)]
2379 pub fn diag3_bit(
2380 self,
2381 ) -> crate::common::RegisterField<12, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2382 {
2383 crate::common::RegisterField::<12,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2384 }
2385
2386 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2387 #[inline(always)]
2388 pub fn diag2_inv(
2389 self,
2390 ) -> crate::common::RegisterFieldBool<11, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2391 crate::common::RegisterFieldBool::<11,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2392 }
2393
2394 #[doc = "Selects which bit from the DIAG2 word will be forwarded to bit 2 of the BLE DIagnostic Port."]
2395 #[inline(always)]
2396 pub fn diag2_bit(
2397 self,
2398 ) -> crate::common::RegisterField<8, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2399 {
2400 crate::common::RegisterField::<8,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2401 }
2402
2403 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2404 #[inline(always)]
2405 pub fn diag1_inv(
2406 self,
2407 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2408 crate::common::RegisterFieldBool::<7,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2409 }
2410
2411 #[doc = "Selects which bit from the DIAG1 word will be forwarded to bit 1 of the BLE DIagnostic Port."]
2412 #[inline(always)]
2413 pub fn diag1_bit(
2414 self,
2415 ) -> crate::common::RegisterField<4, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2416 {
2417 crate::common::RegisterField::<4,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2418 }
2419
2420 #[doc = "If set, then the specific diagnostic bit will be inverted."]
2421 #[inline(always)]
2422 pub fn diag0_inv(
2423 self,
2424 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleDiagcntl3Reg_SPEC, crate::common::RW> {
2425 crate::common::RegisterFieldBool::<3,1,0,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2426 }
2427
2428 #[doc = "Selects which bit from the DIAG0 word will be forwarded to bit 0 of the BLE DIagnostic Port."]
2429 #[inline(always)]
2430 pub fn diag0_bit(
2431 self,
2432 ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, BleDiagcntl3Reg_SPEC, crate::common::RW>
2433 {
2434 crate::common::RegisterField::<0,0x7,1,0,u8,u8,BleDiagcntl3Reg_SPEC,crate::common::RW>::from_register(self,0)
2435 }
2436}
2437impl ::core::default::Default for BleDiagcntl3Reg {
2438 #[inline(always)]
2439 fn default() -> BleDiagcntl3Reg {
2440 <crate::RegValueT<BleDiagcntl3Reg_SPEC> as RegisterValue<_>>::new(0)
2441 }
2442}
2443
2444#[doc(hidden)]
2445#[derive(Copy, Clone, Eq, PartialEq)]
2446pub struct BleDiagcntlReg_SPEC;
2447impl crate::sealed::RegSpec for BleDiagcntlReg_SPEC {
2448 type DataType = u32;
2449}
2450
2451#[doc = "Diagnostics Register"]
2452pub type BleDiagcntlReg = crate::RegValueT<BleDiagcntlReg_SPEC>;
2453
2454impl BleDiagcntlReg {
2455 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2456 #[inline(always)]
2457 pub fn diag3_en(
2458 self,
2459 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleDiagcntlReg_SPEC, crate::common::RW> {
2460 crate::common::RegisterFieldBool::<31,1,0,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2461 }
2462
2463 #[doc = "Only relevant when DIAG3_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG3."]
2464 #[inline(always)]
2465 pub fn diag3(
2466 self,
2467 ) -> crate::common::RegisterField<24, 0x3f, 1, 0, u8, u8, BleDiagcntlReg_SPEC, crate::common::RW>
2468 {
2469 crate::common::RegisterField::<24,0x3f,1,0,u8,u8,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2470 }
2471
2472 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2473 #[inline(always)]
2474 pub fn diag2_en(
2475 self,
2476 ) -> crate::common::RegisterFieldBool<23, 1, 0, BleDiagcntlReg_SPEC, crate::common::RW> {
2477 crate::common::RegisterFieldBool::<23,1,0,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2478 }
2479
2480 #[doc = "Only relevant when DIAG2_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG2."]
2481 #[inline(always)]
2482 pub fn diag2(
2483 self,
2484 ) -> crate::common::RegisterField<16, 0x3f, 1, 0, u8, u8, BleDiagcntlReg_SPEC, crate::common::RW>
2485 {
2486 crate::common::RegisterField::<16,0x3f,1,0,u8,u8,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2487 }
2488
2489 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2490 #[inline(always)]
2491 pub fn diag1_en(
2492 self,
2493 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleDiagcntlReg_SPEC, crate::common::RW> {
2494 crate::common::RegisterFieldBool::<15,1,0,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2495 }
2496
2497 #[doc = "Only relevant when DIAG1_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG1."]
2498 #[inline(always)]
2499 pub fn diag1(
2500 self,
2501 ) -> crate::common::RegisterField<8, 0x3f, 1, 0, u8, u8, BleDiagcntlReg_SPEC, crate::common::RW>
2502 {
2503 crate::common::RegisterField::<8,0x3f,1,0,u8,u8,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2504 }
2505
2506 #[doc = "0: Disable diagnostic port 0 output. All outputs are set to 0x0.\n1: Enable diagnostic port 0 output."]
2507 #[inline(always)]
2508 pub fn diag0_en(
2509 self,
2510 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleDiagcntlReg_SPEC, crate::common::RW> {
2511 crate::common::RegisterFieldBool::<7,1,0,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2512 }
2513
2514 #[doc = "Only relevant when DIAG0_EN = 1.\nSelection of the outputs that must be driven to the diagnostic port BLE_DIAG0."]
2515 #[inline(always)]
2516 pub fn diag0(
2517 self,
2518 ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, BleDiagcntlReg_SPEC, crate::common::RW>
2519 {
2520 crate::common::RegisterField::<0,0x3f,1,0,u8,u8,BleDiagcntlReg_SPEC,crate::common::RW>::from_register(self,0)
2521 }
2522}
2523impl ::core::default::Default for BleDiagcntlReg {
2524 #[inline(always)]
2525 fn default() -> BleDiagcntlReg {
2526 <crate::RegValueT<BleDiagcntlReg_SPEC> as RegisterValue<_>>::new(0)
2527 }
2528}
2529
2530#[doc(hidden)]
2531#[derive(Copy, Clone, Eq, PartialEq)]
2532pub struct BleDiagstatReg_SPEC;
2533impl crate::sealed::RegSpec for BleDiagstatReg_SPEC {
2534 type DataType = u32;
2535}
2536
2537#[doc = "Debug use only"]
2538pub type BleDiagstatReg = crate::RegValueT<BleDiagstatReg_SPEC>;
2539
2540impl BleDiagstatReg {
2541 #[doc = "Directly connected to ble_dbg3\\[7:0\\] output. Debug use only."]
2542 #[inline(always)]
2543 pub fn diag3stat(
2544 self,
2545 ) -> crate::common::RegisterField<24, 0xff, 1, 0, u8, u8, BleDiagstatReg_SPEC, crate::common::R>
2546 {
2547 crate::common::RegisterField::<24,0xff,1,0,u8,u8,BleDiagstatReg_SPEC,crate::common::R>::from_register(self,0)
2548 }
2549
2550 #[doc = "Directly connected to ble_dbg2\\[7:0\\] output. Debug use only."]
2551 #[inline(always)]
2552 pub fn diag2stat(
2553 self,
2554 ) -> crate::common::RegisterField<16, 0xff, 1, 0, u8, u8, BleDiagstatReg_SPEC, crate::common::R>
2555 {
2556 crate::common::RegisterField::<16,0xff,1,0,u8,u8,BleDiagstatReg_SPEC,crate::common::R>::from_register(self,0)
2557 }
2558
2559 #[doc = "Directly connected to ble_dbg1\\[7:0\\] output. Debug use only."]
2560 #[inline(always)]
2561 pub fn diag1stat(
2562 self,
2563 ) -> crate::common::RegisterField<8, 0xff, 1, 0, u8, u8, BleDiagstatReg_SPEC, crate::common::R>
2564 {
2565 crate::common::RegisterField::<8,0xff,1,0,u8,u8,BleDiagstatReg_SPEC,crate::common::R>::from_register(self,0)
2566 }
2567
2568 #[doc = "Directly connected to ble_dbg0\\[7:0\\] output. Debug use only."]
2569 #[inline(always)]
2570 pub fn diag0stat(
2571 self,
2572 ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, BleDiagstatReg_SPEC, crate::common::R>
2573 {
2574 crate::common::RegisterField::<0,0xff,1,0,u8,u8,BleDiagstatReg_SPEC,crate::common::R>::from_register(self,0)
2575 }
2576}
2577impl ::core::default::Default for BleDiagstatReg {
2578 #[inline(always)]
2579 fn default() -> BleDiagstatReg {
2580 <crate::RegValueT<BleDiagstatReg_SPEC> as RegisterValue<_>>::new(0)
2581 }
2582}
2583
2584#[doc(hidden)]
2585#[derive(Copy, Clone, Eq, PartialEq)]
2586pub struct BleEmBaseReg_SPEC;
2587impl crate::sealed::RegSpec for BleEmBaseReg_SPEC {
2588 type DataType = u32;
2589}
2590
2591#[doc = "Exchange Memory Base Register"]
2592pub type BleEmBaseReg = crate::RegValueT<BleEmBaseReg_SPEC>;
2593
2594impl BleEmBaseReg {
2595 #[doc = "The physical address on the system memory map of the base of the Exchange Memory."]
2596 #[inline(always)]
2597 pub fn ble_em_base_16_10(
2598 self,
2599 ) -> crate::common::RegisterField<10, 0x7f, 1, 0, u8, u8, BleEmBaseReg_SPEC, crate::common::RW>
2600 {
2601 crate::common::RegisterField::<10,0x7f,1,0,u8,u8,BleEmBaseReg_SPEC,crate::common::RW>::from_register(self,0)
2602 }
2603}
2604impl ::core::default::Default for BleEmBaseReg {
2605 #[inline(always)]
2606 fn default() -> BleEmBaseReg {
2607 <crate::RegValueT<BleEmBaseReg_SPEC> as RegisterValue<_>>::new(0)
2608 }
2609}
2610
2611#[doc(hidden)]
2612#[derive(Copy, Clone, Eq, PartialEq)]
2613pub struct BleEnbpresetReg_SPEC;
2614impl crate::sealed::RegSpec for BleEnbpresetReg_SPEC {
2615 type DataType = u32;
2616}
2617
2618#[doc = "Time in low power oscillator cycles register"]
2619pub type BleEnbpresetReg = crate::RegValueT<BleEnbpresetReg_SPEC>;
2620
2621impl BleEnbpresetReg {
2622 #[doc = "Minimum and recommended value is \"TWIRQ_RESET + 1\".\nIn the case of wake-up due to an external wake-up request, TWEXT specifies the time delay in low power oscillator cycles to deassert BLE_WAKEUP_LP_IRQ.\nRefer also to GP_CONTROL_REG\\[BLE_WAKEUP_REQ\\].\nRange is \\[0...64 ms\\] for 32kHz; \\[0...62.5 ms\\] for 32.768kHz"]
2623 #[inline(always)]
2624 pub fn twext(
2625 self,
2626 ) -> crate::common::RegisterField<
2627 21,
2628 0x7ff,
2629 1,
2630 0,
2631 u16,
2632 u16,
2633 BleEnbpresetReg_SPEC,
2634 crate::common::RW,
2635 > {
2636 crate::common::RegisterField::<
2637 21,
2638 0x7ff,
2639 1,
2640 0,
2641 u16,
2642 u16,
2643 BleEnbpresetReg_SPEC,
2644 crate::common::RW,
2645 >::from_register(self, 0)
2646 }
2647
2648 #[doc = "Minimum value is \"TWIRQ_RESET + 1\".\nTime in low power oscillator cycles to set BLE_WAKEUP_LP_IRQ before the BLE sleep timer expiration.\nRefer also to BLE_DEEPSLWKUP_REG\\[DEEPSLTIME\\].\nRange is \\[0...64 ms\\] for 32kHz; \\[0...62.5 ms\\] for 32.768kHz"]
2649 #[inline(always)]
2650 pub fn twirq_set(
2651 self,
2652 ) -> crate::common::RegisterField<
2653 10,
2654 0x7ff,
2655 1,
2656 0,
2657 u16,
2658 u16,
2659 BleEnbpresetReg_SPEC,
2660 crate::common::RW,
2661 > {
2662 crate::common::RegisterField::<
2663 10,
2664 0x7ff,
2665 1,
2666 0,
2667 u16,
2668 u16,
2669 BleEnbpresetReg_SPEC,
2670 crate::common::RW,
2671 >::from_register(self, 0)
2672 }
2673
2674 #[doc = "Recommended value is 1.\nTime in low power oscillator cycles to reset BLE_WAKEUP_LP_IRQ before the BLE sleep timer expiration.\nRefer also to BLE_DEEPSLWKUP_REG\\[DEEPSLTIME\\].\nRange is \\[0...32 ms\\] for 32kHz; \\[0...31.25 ms\\] for 32.768kHz."]
2675 #[inline(always)]
2676 pub fn twirq_reset(
2677 self,
2678 ) -> crate::common::RegisterField<
2679 0,
2680 0x3ff,
2681 1,
2682 0,
2683 u16,
2684 u16,
2685 BleEnbpresetReg_SPEC,
2686 crate::common::RW,
2687 > {
2688 crate::common::RegisterField::<
2689 0,
2690 0x3ff,
2691 1,
2692 0,
2693 u16,
2694 u16,
2695 BleEnbpresetReg_SPEC,
2696 crate::common::RW,
2697 >::from_register(self, 0)
2698 }
2699}
2700impl ::core::default::Default for BleEnbpresetReg {
2701 #[inline(always)]
2702 fn default() -> BleEnbpresetReg {
2703 <crate::RegValueT<BleEnbpresetReg_SPEC> as RegisterValue<_>>::new(0)
2704 }
2705}
2706
2707#[doc(hidden)]
2708#[derive(Copy, Clone, Eq, PartialEq)]
2709pub struct BleErrortypestatReg_SPEC;
2710impl crate::sealed::RegSpec for BleErrortypestatReg_SPEC {
2711 type DataType = u32;
2712}
2713
2714#[doc = "Error Type Status registers"]
2715pub type BleErrortypestatReg = crate::RegValueT<BleErrortypestatReg_SPEC>;
2716
2717impl BleErrortypestatReg {
2718 #[doc = "Indicates whether two consecutive and concurrent ble_event_irq have been generated, and not acknowledged in time by the RW-BLE Software.\n0: No error\n1: Error occurred"]
2719 #[inline(always)]
2720 pub fn concevtirq_error(
2721 self,
2722 ) -> crate::common::RegisterFieldBool<17, 1, 0, BleErrortypestatReg_SPEC, crate::common::RW>
2723 {
2724 crate::common::RegisterFieldBool::<17,1,0,BleErrortypestatReg_SPEC,crate::common::RW>::from_register(self,0)
2725 }
2726
2727 #[doc = "Indicates whether Rx data buffer pointer value programmed is null: this is a major programming failure.\n0: No error\n1: Error occurred"]
2728 #[inline(always)]
2729 pub fn rxdata_ptr_error(
2730 self,
2731 ) -> crate::common::RegisterFieldBool<16, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2732 {
2733 crate::common::RegisterFieldBool::<16,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2734 }
2735
2736 #[doc = "Indicates whether Tx data buffer pointer value programmed is null during Advertising / Scanning / Initiating events, or during Master / Slave connections with non-null packet length: this is a major programming failure.\n0: No error\n1: Error occurred"]
2737 #[inline(always)]
2738 pub fn txdata_ptr_error(
2739 self,
2740 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2741 {
2742 crate::common::RegisterFieldBool::<15,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2743 }
2744
2745 #[doc = "Indicates whether Rx Descriptor pointer value programmed in register is null: this is a major programming failure.\n0: No error\n1: Error occurred"]
2746 #[inline(always)]
2747 pub fn rxdesc_empty_error(
2748 self,
2749 ) -> crate::common::RegisterFieldBool<14, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2750 {
2751 crate::common::RegisterFieldBool::<14,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2752 }
2753
2754 #[doc = "Indicates whether Tx Descriptor pointer value programmed in Control Structure is null during Advertising / Scanning / Initiating events: this is a major programming failure.\n0: No error\n1: Error occurred"]
2755 #[inline(always)]
2756 pub fn txdesc_empty_error(
2757 self,
2758 ) -> crate::common::RegisterFieldBool<13, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2759 {
2760 crate::common::RegisterFieldBool::<13,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2761 }
2762
2763 #[doc = "Indicates whether CS-FORMAT has been programmed with an invalid value: this is a major software programming failure.\n0: No error\n1: Error occurred"]
2764 #[inline(always)]
2765 pub fn csformat_error(
2766 self,
2767 ) -> crate::common::RegisterFieldBool<12, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2768 {
2769 crate::common::RegisterFieldBool::<12,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2770 }
2771
2772 #[doc = "Indicates Link Layer Channel Map error, happens when actual number of CS-LLCHMAP bit set to one is different from CS-NBCHGOOD at the beginning of Frequency Hopping process\n0: No error\n1: Error occurred"]
2773 #[inline(always)]
2774 pub fn llchmap_error(
2775 self,
2776 ) -> crate::common::RegisterFieldBool<11, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2777 {
2778 crate::common::RegisterFieldBool::<11,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2779 }
2780
2781 #[doc = "Indicates Advertising Interval Under run, occurs if time between two consecutive Advertising packet (in Advertising mode) is lower than the expected value.\n0: No error\n1: Error occurred"]
2782 #[inline(always)]
2783 pub fn adv_underrun(
2784 self,
2785 ) -> crate::common::RegisterFieldBool<10, 1, 0, BleErrortypestatReg_SPEC, crate::common::R>
2786 {
2787 crate::common::RegisterFieldBool::<10,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2788 }
2789
2790 #[doc = "Indicates Inter Frame Space Under run, occurs if IFS time is not enough to update and read Control Structure/Descriptors, and/or White List parsing is not finished and/or Decryption time is too long to be finished on time\n0: No error\n1: Error occurred"]
2791 #[inline(always)]
2792 pub fn ifs_underrun(
2793 self,
2794 ) -> crate::common::RegisterFieldBool<9, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2795 crate::common::RegisterFieldBool::<9,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2796 }
2797
2798 #[doc = "Indicates White List Timeout error, occurs if White List parsing is not finished on time\n0: No error\n1: Error occurred"]
2799 #[inline(always)]
2800 pub fn whitelist_error(
2801 self,
2802 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2803 crate::common::RegisterFieldBool::<8,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2804 }
2805
2806 #[doc = "Indicates Anticipated Pre-Fetch Mechanism error: happens when 2 consecutive events are programmed, and when the first event is not completely finished while second pre-fetch instant is reached.\n0: No error\n1: Error occured"]
2807 #[inline(always)]
2808 pub fn evt_cntl_apfm_error(
2809 self,
2810 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2811 crate::common::RegisterFieldBool::<7,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2812 }
2813
2814 #[doc = "Indicates Anticipated Pre-Fetch Mechanism error: happens when 2 consecutive events are programmed, and when the first event is not completely finished while second pre-fetch instant is reached.\n0: No error\n1: Error occured"]
2815 #[inline(always)]
2816 pub fn evt_schdl_apfm_error(
2817 self,
2818 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2819 crate::common::RegisterFieldBool::<6,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2820 }
2821
2822 #[doc = "Indicates Event Scheduler faced Invalid timing programing on two consecutive ET entries (e.g first one with 624s offset and second one with no offset)\n0: No error\n1: Error occurred"]
2823 #[inline(always)]
2824 pub fn evt_schdl_entry_error(
2825 self,
2826 ) -> crate::common::RegisterFieldBool<5, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2827 crate::common::RegisterFieldBool::<5,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2828 }
2829
2830 #[doc = "Indicates Event Scheduler Exchange Memory access error, happens when Exchange Memory accesses are not served in time, and blocks the Exchange Table entry read\n0: No error\n1: Error occurred"]
2831 #[inline(always)]
2832 pub fn evt_schdl_emacc_error(
2833 self,
2834 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleErrortypestatReg_SPEC, crate::common::RW>
2835 {
2836 crate::common::RegisterFieldBool::<4,1,0,BleErrortypestatReg_SPEC,crate::common::RW>::from_register(self,0)
2837 }
2838
2839 #[doc = "Indicates Radio Controller Exchange Memory access error, happens when Exchange Memory accesses are not served in time and data are corrupted.\n0: No error\n1: Error occurred"]
2840 #[inline(always)]
2841 pub fn radio_emacc_error(
2842 self,
2843 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2844 crate::common::RegisterFieldBool::<3,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2845 }
2846
2847 #[doc = "Indicates Packet Controller Exchange Memory access error, happens when Exchange Memory accesses are not served in time and Tx/Rx data are corrupted\n0: No error\n1: Error occurred"]
2848 #[inline(always)]
2849 pub fn pktcntl_emacc_error(
2850 self,
2851 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2852 crate::common::RegisterFieldBool::<2,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2853 }
2854
2855 #[doc = "Indicates real time decryption error, happens when AES-CCM decryption is too slow compared to Packet Controller requests. A 16-bytes block has to be decrypted prior the next block is received by the Packet Controller\n0: No error\n1: Error occurred"]
2856 #[inline(always)]
2857 pub fn rxcrypt_error(
2858 self,
2859 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2860 crate::common::RegisterFieldBool::<1,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2861 }
2862
2863 #[doc = "Indicates Real Time encryption error, happens when AES-CCM encryption is too slow compared to Packet Controller requests. A 16-bytes block has to be encrypted and prepared on Packet Controller request, and needs to be ready before the Packet Controller has to send ti\n0: No error\n1: Error occurred"]
2864 #[inline(always)]
2865 pub fn txcrypt_error(
2866 self,
2867 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleErrortypestatReg_SPEC, crate::common::R> {
2868 crate::common::RegisterFieldBool::<0,1,0,BleErrortypestatReg_SPEC,crate::common::R>::from_register(self,0)
2869 }
2870}
2871impl ::core::default::Default for BleErrortypestatReg {
2872 #[inline(always)]
2873 fn default() -> BleErrortypestatReg {
2874 <crate::RegValueT<BleErrortypestatReg_SPEC> as RegisterValue<_>>::new(0)
2875 }
2876}
2877
2878#[doc(hidden)]
2879#[derive(Copy, Clone, Eq, PartialEq)]
2880pub struct BleFinecntcorrReg_SPEC;
2881impl crate::sealed::RegSpec for BleFinecntcorrReg_SPEC {
2882 type DataType = u32;
2883}
2884
2885#[doc = "Phase correction value register"]
2886pub type BleFinecntcorrReg = crate::RegValueT<BleFinecntcorrReg_SPEC>;
2887
2888impl BleFinecntcorrReg {
2889 #[doc = "Phase correction value for the 625us reference counter (i.e. Fine Counter) in us."]
2890 #[inline(always)]
2891 pub fn finecntcorr(
2892 self,
2893 ) -> crate::common::RegisterField<
2894 0,
2895 0x3ff,
2896 1,
2897 0,
2898 u16,
2899 u16,
2900 BleFinecntcorrReg_SPEC,
2901 crate::common::RW,
2902 > {
2903 crate::common::RegisterField::<
2904 0,
2905 0x3ff,
2906 1,
2907 0,
2908 u16,
2909 u16,
2910 BleFinecntcorrReg_SPEC,
2911 crate::common::RW,
2912 >::from_register(self, 0)
2913 }
2914}
2915impl ::core::default::Default for BleFinecntcorrReg {
2916 #[inline(always)]
2917 fn default() -> BleFinecntcorrReg {
2918 <crate::RegValueT<BleFinecntcorrReg_SPEC> as RegisterValue<_>>::new(0)
2919 }
2920}
2921
2922#[doc(hidden)]
2923#[derive(Copy, Clone, Eq, PartialEq)]
2924pub struct BleFinetimecntReg_SPEC;
2925impl crate::sealed::RegSpec for BleFinetimecntReg_SPEC {
2926 type DataType = u32;
2927}
2928
2929#[doc = "Fine time reference counter"]
2930pub type BleFinetimecntReg = crate::RegValueT<BleFinetimecntReg_SPEC>;
2931
2932impl BleFinetimecntReg {
2933 #[doc = "Value of the current s fine time reference counter. Updated each time SAMPCLK is written. Used by the SW in order to synchronize with the HW, and obtain a more precise sleep duration"]
2934 #[inline(always)]
2935 pub fn finecnt(
2936 self,
2937 ) -> crate::common::RegisterField<
2938 0,
2939 0x3ff,
2940 1,
2941 0,
2942 u16,
2943 u16,
2944 BleFinetimecntReg_SPEC,
2945 crate::common::R,
2946 > {
2947 crate::common::RegisterField::<
2948 0,
2949 0x3ff,
2950 1,
2951 0,
2952 u16,
2953 u16,
2954 BleFinetimecntReg_SPEC,
2955 crate::common::R,
2956 >::from_register(self, 0)
2957 }
2958}
2959impl ::core::default::Default for BleFinetimecntReg {
2960 #[inline(always)]
2961 fn default() -> BleFinetimecntReg {
2962 <crate::RegValueT<BleFinetimecntReg_SPEC> as RegisterValue<_>>::new(0)
2963 }
2964}
2965
2966#[doc(hidden)]
2967#[derive(Copy, Clone, Eq, PartialEq)]
2968pub struct BleFinetimtgtReg_SPEC;
2969impl crate::sealed::RegSpec for BleFinetimtgtReg_SPEC {
2970 type DataType = u32;
2971}
2972
2973#[doc = "Fine Timer Target value"]
2974pub type BleFinetimtgtReg = crate::RegValueT<BleFinetimtgtReg_SPEC>;
2975
2976impl BleFinetimtgtReg {
2977 #[doc = "Fine Timer Target value on which a ble_finetgtim_irq must be generated. This timer has a precision of 625us: interrupt is generated only when FINETARGET = BASETIMECNT"]
2978 #[inline(always)]
2979 pub fn finetarget(
2980 self,
2981 ) -> crate::common::RegisterField<
2982 0,
2983 0x7ffffff,
2984 1,
2985 0,
2986 u32,
2987 u32,
2988 BleFinetimtgtReg_SPEC,
2989 crate::common::RW,
2990 > {
2991 crate::common::RegisterField::<
2992 0,
2993 0x7ffffff,
2994 1,
2995 0,
2996 u32,
2997 u32,
2998 BleFinetimtgtReg_SPEC,
2999 crate::common::RW,
3000 >::from_register(self, 0)
3001 }
3002}
3003impl ::core::default::Default for BleFinetimtgtReg {
3004 #[inline(always)]
3005 fn default() -> BleFinetimtgtReg {
3006 <crate::RegValueT<BleFinetimtgtReg_SPEC> as RegisterValue<_>>::new(0)
3007 }
3008}
3009
3010#[doc(hidden)]
3011#[derive(Copy, Clone, Eq, PartialEq)]
3012pub struct BleGrosstimtgtReg_SPEC;
3013impl crate::sealed::RegSpec for BleGrosstimtgtReg_SPEC {
3014 type DataType = u32;
3015}
3016
3017#[doc = "Gross Timer Target value"]
3018pub type BleGrosstimtgtReg = crate::RegValueT<BleGrosstimtgtReg_SPEC>;
3019
3020impl BleGrosstimtgtReg {
3021 #[doc = "Gross Timer Target value on which a ble_grosstgtim_irq must be generated. This timer has a precision of 10ms: interrupt is generated only when GROSSTARGET\\[22:0\\] = BASETIMECNT\\[26:4\\] and BASETIMECNT\\[3:0\\] = 0."]
3022 #[inline(always)]
3023 pub fn grosstarget(
3024 self,
3025 ) -> crate::common::RegisterField<
3026 0,
3027 0x7fffff,
3028 1,
3029 0,
3030 u32,
3031 u32,
3032 BleGrosstimtgtReg_SPEC,
3033 crate::common::RW,
3034 > {
3035 crate::common::RegisterField::<
3036 0,
3037 0x7fffff,
3038 1,
3039 0,
3040 u32,
3041 u32,
3042 BleGrosstimtgtReg_SPEC,
3043 crate::common::RW,
3044 >::from_register(self, 0)
3045 }
3046}
3047impl ::core::default::Default for BleGrosstimtgtReg {
3048 #[inline(always)]
3049 fn default() -> BleGrosstimtgtReg {
3050 <crate::RegValueT<BleGrosstimtgtReg_SPEC> as RegisterValue<_>>::new(0)
3051 }
3052}
3053
3054#[doc(hidden)]
3055#[derive(Copy, Clone, Eq, PartialEq)]
3056pub struct BleIntackReg_SPEC;
3057impl crate::sealed::RegSpec for BleIntackReg_SPEC {
3058 type DataType = u32;
3059}
3060
3061#[doc = "Interrupt acknowledge register"]
3062pub type BleIntackReg = crate::RegValueT<BleIntackReg_SPEC>;
3063
3064impl BleIntackReg {
3065 #[doc = "SW triggered interrupt acknowledgement bit\nSoftware writing 1 acknowledges the SW triggered interrupt. This bit resets SWINTSTAT and SWINTRAWSTAT flags.\nResets at 0 when action is performed"]
3066 #[inline(always)]
3067 pub fn swintack(
3068 self,
3069 ) -> crate::common::RegisterFieldBool<9, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3070 crate::common::RegisterFieldBool::<9,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3071 }
3072
3073 #[doc = "End of event / Anticipated Pre-Fetch Abort interrupt acknowledgement bit\nSoftware writing 1 acknowledges the End of event / Anticipated Pre-Fetch Abort interrupt. This bit resets EVENTAPFAINTSTAT and EVENTAPFAINTRAWSTAT flags.\nResets at 0 when action is performed"]
3074 #[inline(always)]
3075 pub fn eventapfaintack(
3076 self,
3077 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3078 crate::common::RegisterFieldBool::<8,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3079 }
3080
3081 #[doc = "Fine Target Timer interrupt acknowledgement bit\nSoftware writing 1 acknowledges the Fine Timer interrupt. This bit resets FINETGTIMINTSTAT and FINETGTIMINTRAWSTAT flags.\nResets at 0 when action is performed"]
3082 #[inline(always)]
3083 pub fn finetgtimintack(
3084 self,
3085 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3086 crate::common::RegisterFieldBool::<7,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3087 }
3088
3089 #[doc = "Gross Target Timer interrupt acknowledgement bit\nSoftware writing 1 acknowledges the Gross Timer interrupt. This bit resets GROSSTGTIMINTSTAT and GROSSTGTIMINTRAWSTAT flags.\nResets at 0 when action is performed"]
3090 #[inline(always)]
3091 pub fn grosstgtimintack(
3092 self,
3093 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3094 crate::common::RegisterFieldBool::<6,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3095 }
3096
3097 #[doc = "Error interrupt acknowledgement bit\nSoftware writing 1 acknowledges the Error interrupt. This bit resets ERRORINTSTAT and ERRORINTRAWSTAT flags.\nResets at 0 when action is performed"]
3098 #[inline(always)]
3099 pub fn errorintack(
3100 self,
3101 ) -> crate::common::RegisterFieldBool<5, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3102 crate::common::RegisterFieldBool::<5,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3103 }
3104
3105 #[doc = "Encryption engine interrupt acknowledgement bit Software writing 1 acknowledges the Encryption engine interrupt. This bit resets CRYPTINTSTAT and CRYPTINTRAWSTAT flags.\nResets at 0 when action is performed"]
3106 #[inline(always)]
3107 pub fn cryptintack(
3108 self,
3109 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3110 crate::common::RegisterFieldBool::<4,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3111 }
3112
3113 #[doc = "End of Event interrupt acknowledgment bit\nSoftware writing 1 acknowledges the End of Advertising / Scanning / Connection interrupt. This bit resets SLPINTSTAT and SLPINTRAWSTAT flags.\nResets at 0 when action is performed"]
3114 #[inline(always)]
3115 pub fn eventintack(
3116 self,
3117 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3118 crate::common::RegisterFieldBool::<3,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3119 }
3120
3121 #[doc = "End of Deep Sleep interrupt acknowledgment bit\nSoftware writing 1 acknowledges the End of Sleep Mode interrupt. This bit resets SLPINTSTAT and SLPINTRAWSTAT flags.\nResets at 0 when action is performed"]
3122 #[inline(always)]
3123 pub fn slpintack(
3124 self,
3125 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3126 crate::common::RegisterFieldBool::<2,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3127 }
3128
3129 #[doc = "Packet Reception interrupt acknowledgment bit\nSoftware writing 1 acknowledges the Rx interrupt. This bit resets RXINTSTAT and RXINTRAWSTAT flags.\nResets at 0 when action is performed"]
3130 #[inline(always)]
3131 pub fn rxintack(
3132 self,
3133 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3134 crate::common::RegisterFieldBool::<1,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3135 }
3136
3137 #[doc = "625us base time reference interrupt acknowledgment bit\nSoftware writing 1 acknowledges the CLKN interrupt. This bit resets CLKINTSTAT and CLKINTRAWSTAT flags.\nResets at 0 when action is performed"]
3138 #[inline(always)]
3139 pub fn cscntintack(
3140 self,
3141 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleIntackReg_SPEC, crate::common::W> {
3142 crate::common::RegisterFieldBool::<0,1,0,BleIntackReg_SPEC,crate::common::W>::from_register(self,0)
3143 }
3144}
3145impl ::core::default::Default for BleIntackReg {
3146 #[inline(always)]
3147 fn default() -> BleIntackReg {
3148 <crate::RegValueT<BleIntackReg_SPEC> as RegisterValue<_>>::new(0)
3149 }
3150}
3151
3152#[doc(hidden)]
3153#[derive(Copy, Clone, Eq, PartialEq)]
3154pub struct BleIntcntlReg_SPEC;
3155impl crate::sealed::RegSpec for BleIntcntlReg_SPEC {
3156 type DataType = u32;
3157}
3158
3159#[doc = "Interrupt controller register"]
3160pub type BleIntcntlReg = crate::RegValueT<BleIntcntlReg_SPEC>;
3161
3162impl BleIntcntlReg {
3163 #[doc = "CSCNT interrupt mask during event. This bit allows to enable CSCNT interrupt generation during events (i.e. advertising, scanning, initiating, and connection)\n0: CSCNT Interrupt not generated during events.\n1: CSCNT Interrupt generated during events."]
3164 #[inline(always)]
3165 pub fn cscntdevmsk(
3166 self,
3167 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3168 crate::common::RegisterFieldBool::<15,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3169 }
3170
3171 #[doc = "SW triggered interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3172 #[inline(always)]
3173 pub fn swintmsk(
3174 self,
3175 ) -> crate::common::RegisterFieldBool<9, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3176 crate::common::RegisterFieldBool::<9,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3177 }
3178
3179 #[doc = "End of event / anticipated pre-fetch abort interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3180 #[inline(always)]
3181 pub fn eventapfaintmsk(
3182 self,
3183 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3184 crate::common::RegisterFieldBool::<8,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3185 }
3186
3187 #[doc = "Fine Target Timer Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3188 #[inline(always)]
3189 pub fn finetgtimintmsk(
3190 self,
3191 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3192 crate::common::RegisterFieldBool::<7,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3193 }
3194
3195 #[doc = "Gross Target Timer Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3196 #[inline(always)]
3197 pub fn grosstgtimintmsk(
3198 self,
3199 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3200 crate::common::RegisterFieldBool::<6,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3201 }
3202
3203 #[doc = "Error Interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3204 #[inline(always)]
3205 pub fn errorintmsk(
3206 self,
3207 ) -> crate::common::RegisterFieldBool<5, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3208 crate::common::RegisterFieldBool::<5,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3209 }
3210
3211 #[doc = "Encryption engine Interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3212 #[inline(always)]
3213 pub fn cryptintmsk(
3214 self,
3215 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3216 crate::common::RegisterFieldBool::<4,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3217 }
3218
3219 #[doc = "End of event Interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3220 #[inline(always)]
3221 pub fn eventintmsk(
3222 self,
3223 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3224 crate::common::RegisterFieldBool::<3,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3225 }
3226
3227 #[doc = "Sleep Mode Interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3228 #[inline(always)]
3229 pub fn slpintmsk(
3230 self,
3231 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3232 crate::common::RegisterFieldBool::<2,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3233 }
3234
3235 #[doc = "Rx Interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3236 #[inline(always)]
3237 pub fn rxintmsk(
3238 self,
3239 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3240 crate::common::RegisterFieldBool::<1,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3241 }
3242
3243 #[doc = "625us Base Time Interrupt Mask\n0: Interrupt not generated\n1: Interrupt generated"]
3244 #[inline(always)]
3245 pub fn cscntintmsk(
3246 self,
3247 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleIntcntlReg_SPEC, crate::common::RW> {
3248 crate::common::RegisterFieldBool::<0,1,0,BleIntcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3249 }
3250}
3251impl ::core::default::Default for BleIntcntlReg {
3252 #[inline(always)]
3253 fn default() -> BleIntcntlReg {
3254 <crate::RegValueT<BleIntcntlReg_SPEC> as RegisterValue<_>>::new(33055)
3255 }
3256}
3257
3258#[doc(hidden)]
3259#[derive(Copy, Clone, Eq, PartialEq)]
3260pub struct BleIntrawstatReg_SPEC;
3261impl crate::sealed::RegSpec for BleIntrawstatReg_SPEC {
3262 type DataType = u32;
3263}
3264
3265#[doc = "Interrupt raw status register"]
3266pub type BleIntrawstatReg = crate::RegValueT<BleIntrawstatReg_SPEC>;
3267
3268impl BleIntrawstatReg {
3269 #[doc = "SW triggered interrupt raw status\n0: No SW triggered interrupt.\n1: A SW triggered interrupt is pending."]
3270 #[inline(always)]
3271 pub fn swintrawstat(
3272 self,
3273 ) -> crate::common::RegisterFieldBool<9, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3274 crate::common::RegisterFieldBool::<9,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3275 }
3276
3277 #[doc = "End of event / Anticipated Pre-Fetch Abort interrupt raw status\n0: No End of Event interrupt.\n1: An End of Event interrupt is pending."]
3278 #[inline(always)]
3279 pub fn eventapfaintrawstat(
3280 self,
3281 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3282 crate::common::RegisterFieldBool::<8,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3283 }
3284
3285 #[doc = "Fine Target Timer Error interrupt raw status\n0: No Fine Target Timer interrupt.\n1: A Fine Target Timer interrupt is pending."]
3286 #[inline(always)]
3287 pub fn finetgtimintrawstat(
3288 self,
3289 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3290 crate::common::RegisterFieldBool::<7,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3291 }
3292
3293 #[doc = "Gross Target Timer interrupt raw status\n0: No Gross Target Timer interrupt.\n1: A Gross Target Timer interrupt is pending."]
3294 #[inline(always)]
3295 pub fn grosstgtimintrawstat(
3296 self,
3297 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3298 crate::common::RegisterFieldBool::<6,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3299 }
3300
3301 #[doc = "Error interrupt raw status\n0: No Error interrupt.\n1: An Error interrupt is pending."]
3302 #[inline(always)]
3303 pub fn errorintrawstat(
3304 self,
3305 ) -> crate::common::RegisterFieldBool<5, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3306 crate::common::RegisterFieldBool::<5,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3307 }
3308
3309 #[doc = "Encryption engine interrupt raw status\n0: No Encryption / Decryption interrupt.\n1: An Encryption / Decryption interrupt is pending."]
3310 #[inline(always)]
3311 pub fn cryptintrawstat(
3312 self,
3313 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3314 crate::common::RegisterFieldBool::<4,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3315 }
3316
3317 #[doc = "End of Event interrupt raw status\n0: No End of Advertising / Scanning / Connection interrupt.\n1: An End of Advertising / Scanning / Connection interrupt is pending."]
3318 #[inline(always)]
3319 pub fn eventintrawstat(
3320 self,
3321 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3322 crate::common::RegisterFieldBool::<3,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3323 }
3324
3325 #[doc = "Sleep interrupt raw status\n0: No End of Sleep Mode interrupt.\n1: An End of Sleep Mode interrupt is pending."]
3326 #[inline(always)]
3327 pub fn slpintrawstat(
3328 self,
3329 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3330 crate::common::RegisterFieldBool::<2,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3331 }
3332
3333 #[doc = "Packet Reception interrupt raw status\n0: No Rx interrupt.\n1: An Rx interrupt is pending."]
3334 #[inline(always)]
3335 pub fn rxintrawstat(
3336 self,
3337 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3338 crate::common::RegisterFieldBool::<1,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3339 }
3340
3341 #[doc = "625us base time reference interrupt raw status\n0: No 625us Base Time interrupt.\n1: A 625us Base Time interrupt is pending."]
3342 #[inline(always)]
3343 pub fn cscntintrawstat(
3344 self,
3345 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleIntrawstatReg_SPEC, crate::common::R> {
3346 crate::common::RegisterFieldBool::<0,1,0,BleIntrawstatReg_SPEC,crate::common::R>::from_register(self,0)
3347 }
3348}
3349impl ::core::default::Default for BleIntrawstatReg {
3350 #[inline(always)]
3351 fn default() -> BleIntrawstatReg {
3352 <crate::RegValueT<BleIntrawstatReg_SPEC> as RegisterValue<_>>::new(0)
3353 }
3354}
3355
3356#[doc(hidden)]
3357#[derive(Copy, Clone, Eq, PartialEq)]
3358pub struct BleIntstatReg_SPEC;
3359impl crate::sealed::RegSpec for BleIntstatReg_SPEC {
3360 type DataType = u32;
3361}
3362
3363#[doc = "Interrupt status register"]
3364pub type BleIntstatReg = crate::RegValueT<BleIntstatReg_SPEC>;
3365
3366impl BleIntstatReg {
3367 #[doc = "SW triggered interrupt status\n0: No SW triggered interrupt.\n1: A SW triggered interrupt is pending"]
3368 #[inline(always)]
3369 pub fn swintstat(
3370 self,
3371 ) -> crate::common::RegisterFieldBool<9, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3372 crate::common::RegisterFieldBool::<9,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3373 }
3374
3375 #[doc = "End of event / Anticipated Pre-Fetch Abort interrupt status\n0: No End of Event interrupt.\n1: An End of Event interrupt is pending."]
3376 #[inline(always)]
3377 pub fn eventapfaintstat(
3378 self,
3379 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3380 crate::common::RegisterFieldBool::<8,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3381 }
3382
3383 #[doc = "Masked Fine Target Timer Error interrupt status\n0: No Fine Target Timer interrupt.\n1: A Fine Target Timer interrupt is pending."]
3384 #[inline(always)]
3385 pub fn finetgtimintstat(
3386 self,
3387 ) -> crate::common::RegisterFieldBool<7, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3388 crate::common::RegisterFieldBool::<7,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3389 }
3390
3391 #[doc = "Masked Gross Target Timer interrupt status\n0: No Gross Target Timer interrupt.\n1: A Gross Target Timer interrupt is pending."]
3392 #[inline(always)]
3393 pub fn grosstgtimintstat(
3394 self,
3395 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3396 crate::common::RegisterFieldBool::<6,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3397 }
3398
3399 #[doc = "Masked Error interrupt status\n0: No Error interrupt.\n1: An Error interrupt is pending."]
3400 #[inline(always)]
3401 pub fn errorintstat(
3402 self,
3403 ) -> crate::common::RegisterFieldBool<5, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3404 crate::common::RegisterFieldBool::<5,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3405 }
3406
3407 #[doc = "Masked Encryption engine interrupt status\n0: No Encryption / Decryption interrupt.\n1: An Encryption / Decryption interrupt is pending."]
3408 #[inline(always)]
3409 pub fn cryptintstat(
3410 self,
3411 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3412 crate::common::RegisterFieldBool::<4,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3413 }
3414
3415 #[doc = "Masked End of Event interrupt status\n0: No End of Advertising / Scanning / Connection interrupt.\n1: An End of Advertising / Scanning / Connection interrupt is pending."]
3416 #[inline(always)]
3417 pub fn eventintstat(
3418 self,
3419 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3420 crate::common::RegisterFieldBool::<3,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3421 }
3422
3423 #[doc = "Masked Sleep interrupt status\n0: No End of Sleep Mode interrupt.\n1: An End of Sleep Mode interrupt is pending."]
3424 #[inline(always)]
3425 pub fn slpintstat(
3426 self,
3427 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3428 crate::common::RegisterFieldBool::<2,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3429 }
3430
3431 #[doc = "Masked Packet Reception interrupt status\n0: No Rx interrupt.\n1: An Rx interrupt is pending."]
3432 #[inline(always)]
3433 pub fn rxintstat(
3434 self,
3435 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3436 crate::common::RegisterFieldBool::<1,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3437 }
3438
3439 #[doc = "Masked 625us base time reference interrupt status\n0: No 625us Base Time interrupt.\n1: A 625us Base Time interrupt is pending."]
3440 #[inline(always)]
3441 pub fn cscntintstat(
3442 self,
3443 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleIntstatReg_SPEC, crate::common::R> {
3444 crate::common::RegisterFieldBool::<0,1,0,BleIntstatReg_SPEC,crate::common::R>::from_register(self,0)
3445 }
3446}
3447impl ::core::default::Default for BleIntstatReg {
3448 #[inline(always)]
3449 fn default() -> BleIntstatReg {
3450 <crate::RegValueT<BleIntstatReg_SPEC> as RegisterValue<_>>::new(0)
3451 }
3452}
3453
3454#[doc(hidden)]
3455#[derive(Copy, Clone, Eq, PartialEq)]
3456pub struct BleRadiocntl0Reg_SPEC;
3457impl crate::sealed::RegSpec for BleRadiocntl0Reg_SPEC {
3458 type DataType = u32;
3459}
3460
3461#[doc = "Radio interface control register"]
3462pub type BleRadiocntl0Reg = crate::RegValueT<BleRadiocntl0Reg_SPEC>;
3463
3464impl NoBitfieldReg<BleRadiocntl0Reg_SPEC> for BleRadiocntl0Reg {}
3465impl ::core::default::Default for BleRadiocntl0Reg {
3466 #[inline(always)]
3467 fn default() -> BleRadiocntl0Reg {
3468 <crate::RegValueT<BleRadiocntl0Reg_SPEC> as RegisterValue<_>>::new(0)
3469 }
3470}
3471
3472#[doc(hidden)]
3473#[derive(Copy, Clone, Eq, PartialEq)]
3474pub struct BleRadiocntl1Reg_SPEC;
3475impl crate::sealed::RegSpec for BleRadiocntl1Reg_SPEC {
3476 type DataType = u32;
3477}
3478
3479#[doc = "Radio interface control register"]
3480pub type BleRadiocntl1Reg = crate::RegValueT<BleRadiocntl1Reg_SPEC>;
3481
3482impl BleRadiocntl1Reg {
3483 #[doc = "Extended radio selection field, Must be set to \"2\"."]
3484 #[inline(always)]
3485 pub fn xrfsel(
3486 self,
3487 ) -> crate::common::RegisterField<
3488 16,
3489 0x1f,
3490 1,
3491 0,
3492 u8,
3493 u8,
3494 BleRadiocntl1Reg_SPEC,
3495 crate::common::RW,
3496 > {
3497 crate::common::RegisterField::<
3498 16,
3499 0x1f,
3500 1,
3501 0,
3502 u8,
3503 u8,
3504 BleRadiocntl1Reg_SPEC,
3505 crate::common::RW,
3506 >::from_register(self, 0)
3507 }
3508}
3509impl ::core::default::Default for BleRadiocntl1Reg {
3510 #[inline(always)]
3511 fn default() -> BleRadiocntl1Reg {
3512 <crate::RegValueT<BleRadiocntl1Reg_SPEC> as RegisterValue<_>>::new(0)
3513 }
3514}
3515
3516#[doc(hidden)]
3517#[derive(Copy, Clone, Eq, PartialEq)]
3518pub struct BleRadiocntl2Reg_SPEC;
3519impl crate::sealed::RegSpec for BleRadiocntl2Reg_SPEC {
3520 type DataType = u32;
3521}
3522
3523#[doc = "Radio interface control register"]
3524pub type BleRadiocntl2Reg = crate::RegValueT<BleRadiocntl2Reg_SPEC>;
3525
3526impl NoBitfieldReg<BleRadiocntl2Reg_SPEC> for BleRadiocntl2Reg {}
3527impl ::core::default::Default for BleRadiocntl2Reg {
3528 #[inline(always)]
3529 fn default() -> BleRadiocntl2Reg {
3530 <crate::RegValueT<BleRadiocntl2Reg_SPEC> as RegisterValue<_>>::new(0)
3531 }
3532}
3533
3534#[doc(hidden)]
3535#[derive(Copy, Clone, Eq, PartialEq)]
3536pub struct BleRadiocntl3Reg_SPEC;
3537impl crate::sealed::RegSpec for BleRadiocntl3Reg_SPEC {
3538 type DataType = u32;
3539}
3540
3541#[doc = "Radio interface control register"]
3542pub type BleRadiocntl3Reg = crate::RegValueT<BleRadiocntl3Reg_SPEC>;
3543
3544impl NoBitfieldReg<BleRadiocntl3Reg_SPEC> for BleRadiocntl3Reg {}
3545impl ::core::default::Default for BleRadiocntl3Reg {
3546 #[inline(always)]
3547 fn default() -> BleRadiocntl3Reg {
3548 <crate::RegValueT<BleRadiocntl3Reg_SPEC> as RegisterValue<_>>::new(0)
3549 }
3550}
3551
3552#[doc(hidden)]
3553#[derive(Copy, Clone, Eq, PartialEq)]
3554pub struct BleRadiopwrupdnReg_SPEC;
3555impl crate::sealed::RegSpec for BleRadiopwrupdnReg_SPEC {
3556 type DataType = u32;
3557}
3558
3559#[doc = "RX/TX power up/down phase register"]
3560pub type BleRadiopwrupdnReg = crate::RegValueT<BleRadiopwrupdnReg_SPEC>;
3561
3562impl BleRadiopwrupdnReg {
3563 #[doc = "Defines round trip delay value. This value correspond to the addition of data latency in Tx and data latency in Rx. Value is in us"]
3564 #[inline(always)]
3565 pub fn rtrip_delay(
3566 self,
3567 ) -> crate::common::RegisterField<
3568 24,
3569 0x7f,
3570 1,
3571 0,
3572 u8,
3573 u8,
3574 BleRadiopwrupdnReg_SPEC,
3575 crate::common::RW,
3576 > {
3577 crate::common::RegisterField::<
3578 24,
3579 0x7f,
3580 1,
3581 0,
3582 u8,
3583 u8,
3584 BleRadiopwrupdnReg_SPEC,
3585 crate::common::RW,
3586 >::from_register(self, 0)
3587 }
3588
3589 #[doc = "This register holds the length in s of the RX power up phase for the current radio device. Default value is 210us (reset value). Operating range depends on the selected radio."]
3590 #[inline(always)]
3591 pub fn rxpwrup(
3592 self,
3593 ) -> crate::common::RegisterField<
3594 16,
3595 0xff,
3596 1,
3597 0,
3598 u8,
3599 u8,
3600 BleRadiopwrupdnReg_SPEC,
3601 crate::common::RW,
3602 > {
3603 crate::common::RegisterField::<
3604 16,
3605 0xff,
3606 1,
3607 0,
3608 u8,
3609 u8,
3610 BleRadiopwrupdnReg_SPEC,
3611 crate::common::RW,
3612 >::from_register(self, 0)
3613 }
3614
3615 #[doc = "This register extends the length in s of the TX power down phase for the current radio device. Default value is 3us (reset value). Operating range depends on the selected radio."]
3616 #[inline(always)]
3617 pub fn txpwrdn(
3618 self,
3619 ) -> crate::common::RegisterField<
3620 8,
3621 0xf,
3622 1,
3623 0,
3624 u8,
3625 u8,
3626 BleRadiopwrupdnReg_SPEC,
3627 crate::common::RW,
3628 > {
3629 crate::common::RegisterField::<
3630 8,
3631 0xf,
3632 1,
3633 0,
3634 u8,
3635 u8,
3636 BleRadiopwrupdnReg_SPEC,
3637 crate::common::RW,
3638 >::from_register(self, 0)
3639 }
3640
3641 #[doc = "This register holds the length in s of the TX power up phase for the current radio device. Default value is 210us (reset value). Operating range depends on the selected radio."]
3642 #[inline(always)]
3643 pub fn txpwrup(
3644 self,
3645 ) -> crate::common::RegisterField<
3646 0,
3647 0xff,
3648 1,
3649 0,
3650 u8,
3651 u8,
3652 BleRadiopwrupdnReg_SPEC,
3653 crate::common::RW,
3654 > {
3655 crate::common::RegisterField::<
3656 0,
3657 0xff,
3658 1,
3659 0,
3660 u8,
3661 u8,
3662 BleRadiopwrupdnReg_SPEC,
3663 crate::common::RW,
3664 >::from_register(self, 0)
3665 }
3666}
3667impl ::core::default::Default for BleRadiopwrupdnReg {
3668 #[inline(always)]
3669 fn default() -> BleRadiopwrupdnReg {
3670 <crate::RegValueT<BleRadiopwrupdnReg_SPEC> as RegisterValue<_>>::new(13763538)
3671 }
3672}
3673
3674#[doc(hidden)]
3675#[derive(Copy, Clone, Eq, PartialEq)]
3676pub struct BleRftestcntlReg_SPEC;
3677impl crate::sealed::RegSpec for BleRftestcntlReg_SPEC {
3678 type DataType = u32;
3679}
3680
3681#[doc = "RF Testing Register"]
3682pub type BleRftestcntlReg = crate::RegValueT<BleRftestcntlReg_SPEC>;
3683
3684impl BleRftestcntlReg {
3685 #[doc = "Applicable in RF Test Mode only\n0: Normal mode of operation\n1: Infinite Rx window"]
3686 #[inline(always)]
3687 pub fn infiniterx(
3688 self,
3689 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3690 crate::common::RegisterFieldBool::<31,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3691 }
3692
3693 #[doc = "Applicable in RF Test Mode only\n0: Rx packet count disabled\n1: Rx packet count enabled, and reported in CS-RXCCMPKTCNT and RFTESTRXSTAT-RXPKTCNT on RF abort command"]
3694 #[inline(always)]
3695 pub fn rxpktcnten(
3696 self,
3697 ) -> crate::common::RegisterFieldBool<27, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3698 crate::common::RegisterFieldBool::<27,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3699 }
3700
3701 #[doc = "Applicable in RF Test Mode only\n0: Normal mode of operation.\n1: Infinite Tx packet / Normal start of a packet but endless payload"]
3702 #[inline(always)]
3703 pub fn infinitetx(
3704 self,
3705 ) -> crate::common::RegisterFieldBool<15, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3706 crate::common::RegisterFieldBool::<15,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3707 }
3708
3709 #[doc = "Applicable only in Tx/Rx RF Test mode\n0: Normal mode of operation: TxDESC-TXADVLEN controls the Tx packet payload size\n1: Uses RFTESTCNTL-TXLENGTH packet length (can support up to 512 bytes transmit)"]
3710 #[inline(always)]
3711 pub fn txlengthsrc(
3712 self,
3713 ) -> crate::common::RegisterFieldBool<14, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3714 crate::common::RegisterFieldBool::<14,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3715 }
3716
3717 #[doc = "Applicable only in Tx/Rx RF Test mode\n0: Tx Packet Payload are PRBS9 type\n1: Tx Packet Payload are PRBS15 type"]
3718 #[inline(always)]
3719 pub fn prbstype(
3720 self,
3721 ) -> crate::common::RegisterFieldBool<13, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3722 crate::common::RegisterFieldBool::<13,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3723 }
3724
3725 #[doc = "Applicable only in Tx/Rx RF Test mode\n0: Tx Packet Payload source is the Control Structure\n1: Tx Packet Payload are PRBS generator"]
3726 #[inline(always)]
3727 pub fn txpldsrc(
3728 self,
3729 ) -> crate::common::RegisterFieldBool<12, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3730 crate::common::RegisterFieldBool::<12,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3731 }
3732
3733 #[doc = "Applicable in RF Test Mode only\n0: Tx packet count disabled\n1: Tx packet count enabled, and reported in CS-TXCCMPKTCNT and RFTESTTXSTAT-TXPKTCNT on RF abort command"]
3734 #[inline(always)]
3735 pub fn txpktcnten(
3736 self,
3737 ) -> crate::common::RegisterFieldBool<11, 1, 0, BleRftestcntlReg_SPEC, crate::common::RW> {
3738 crate::common::RegisterFieldBool::<11,1,0,BleRftestcntlReg_SPEC,crate::common::RW>::from_register(self,0)
3739 }
3740
3741 #[doc = "Applicable only for Tx/Rx RF Test mode, and valid when RFTESTCNTL-TXLENGTHSRC = 1\nTx packet length in number of byte"]
3742 #[inline(always)]
3743 pub fn txlength(
3744 self,
3745 ) -> crate::common::RegisterField<
3746 0,
3747 0x1ff,
3748 1,
3749 0,
3750 u16,
3751 u16,
3752 BleRftestcntlReg_SPEC,
3753 crate::common::RW,
3754 > {
3755 crate::common::RegisterField::<
3756 0,
3757 0x1ff,
3758 1,
3759 0,
3760 u16,
3761 u16,
3762 BleRftestcntlReg_SPEC,
3763 crate::common::RW,
3764 >::from_register(self, 0)
3765 }
3766}
3767impl ::core::default::Default for BleRftestcntlReg {
3768 #[inline(always)]
3769 fn default() -> BleRftestcntlReg {
3770 <crate::RegValueT<BleRftestcntlReg_SPEC> as RegisterValue<_>>::new(0)
3771 }
3772}
3773
3774#[doc(hidden)]
3775#[derive(Copy, Clone, Eq, PartialEq)]
3776pub struct BleRftestrxstatReg_SPEC;
3777impl crate::sealed::RegSpec for BleRftestrxstatReg_SPEC {
3778 type DataType = u32;
3779}
3780
3781#[doc = "RF Testing Register"]
3782pub type BleRftestrxstatReg = crate::RegValueT<BleRftestrxstatReg_SPEC>;
3783
3784impl BleRftestrxstatReg {
3785 #[doc = "Reports number of correctly received packet during Test Modes (no sync error, no CRC error).\nValue is valid if RFTESTCNTL-RXPKTCNTEN is set"]
3786 #[inline(always)]
3787 pub fn rxpktcnt(
3788 self,
3789 ) -> crate::common::RegisterField<
3790 0,
3791 0xffffffff,
3792 1,
3793 0,
3794 u32,
3795 u32,
3796 BleRftestrxstatReg_SPEC,
3797 crate::common::RW,
3798 > {
3799 crate::common::RegisterField::<
3800 0,
3801 0xffffffff,
3802 1,
3803 0,
3804 u32,
3805 u32,
3806 BleRftestrxstatReg_SPEC,
3807 crate::common::RW,
3808 >::from_register(self, 0)
3809 }
3810}
3811impl ::core::default::Default for BleRftestrxstatReg {
3812 #[inline(always)]
3813 fn default() -> BleRftestrxstatReg {
3814 <crate::RegValueT<BleRftestrxstatReg_SPEC> as RegisterValue<_>>::new(0)
3815 }
3816}
3817
3818#[doc(hidden)]
3819#[derive(Copy, Clone, Eq, PartialEq)]
3820pub struct BleRftesttxstatReg_SPEC;
3821impl crate::sealed::RegSpec for BleRftesttxstatReg_SPEC {
3822 type DataType = u32;
3823}
3824
3825#[doc = "RF Testing Register"]
3826pub type BleRftesttxstatReg = crate::RegValueT<BleRftesttxstatReg_SPEC>;
3827
3828impl BleRftesttxstatReg {
3829 #[doc = "Reports number of transmitted packet during Test Modes.\nValue is valid if RFTESTCNTL-TXPKTCNTEN is set"]
3830 #[inline(always)]
3831 pub fn txpktcnt(
3832 self,
3833 ) -> crate::common::RegisterField<
3834 0,
3835 0xffffffff,
3836 1,
3837 0,
3838 u32,
3839 u32,
3840 BleRftesttxstatReg_SPEC,
3841 crate::common::RW,
3842 > {
3843 crate::common::RegisterField::<
3844 0,
3845 0xffffffff,
3846 1,
3847 0,
3848 u32,
3849 u32,
3850 BleRftesttxstatReg_SPEC,
3851 crate::common::RW,
3852 >::from_register(self, 0)
3853 }
3854}
3855impl ::core::default::Default for BleRftesttxstatReg {
3856 #[inline(always)]
3857 fn default() -> BleRftesttxstatReg {
3858 <crate::RegValueT<BleRftesttxstatReg_SPEC> as RegisterValue<_>>::new(0)
3859 }
3860}
3861
3862#[doc(hidden)]
3863#[derive(Copy, Clone, Eq, PartialEq)]
3864pub struct BleRwblecntlReg_SPEC;
3865impl crate::sealed::RegSpec for BleRwblecntlReg_SPEC {
3866 type DataType = u32;
3867}
3868
3869#[doc = "BLE Control register"]
3870pub type BleRwblecntlReg = crate::RegValueT<BleRwblecntlReg_SPEC>;
3871
3872impl BleRwblecntlReg {
3873 #[doc = "Reset the complete BLE Core except registers and timing generator, when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0."]
3874 #[inline(always)]
3875 pub fn master_soft_rst(
3876 self,
3877 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleRwblecntlReg_SPEC, crate::common::W> {
3878 crate::common::RegisterFieldBool::<31,1,0,BleRwblecntlReg_SPEC,crate::common::W>::from_register(self,0)
3879 }
3880
3881 #[doc = "Reset the timing generator, when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0."]
3882 #[inline(always)]
3883 pub fn master_tgsoft_rst(
3884 self,
3885 ) -> crate::common::RegisterFieldBool<30, 1, 0, BleRwblecntlReg_SPEC, crate::common::W> {
3886 crate::common::RegisterFieldBool::<30,1,0,BleRwblecntlReg_SPEC,crate::common::W>::from_register(self,0)
3887 }
3888
3889 #[doc = "Reset the complete register block, when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0.\nNote that INT STAT will not be cleared, so the user should also write to BLE_INTACK_REG after the SW Reset"]
3890 #[inline(always)]
3891 pub fn reg_soft_rst(
3892 self,
3893 ) -> crate::common::RegisterFieldBool<29, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3894 crate::common::RegisterFieldBool::<29,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3895 }
3896
3897 #[doc = "Forces the generation of ble_sw_irq when written with a 1, and proper masking is set. Resets at 0 when action is performed. No action happens if it is written with 0."]
3898 #[inline(always)]
3899 pub fn swint_req(
3900 self,
3901 ) -> crate::common::RegisterFieldBool<28, 1, 0, BleRwblecntlReg_SPEC, crate::common::W> {
3902 crate::common::RegisterFieldBool::<28,1,0,BleRwblecntlReg_SPEC,crate::common::W>::from_register(self,0)
3903 }
3904
3905 #[doc = "Abort the current RF Testing defined as per CS-FORMAT when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0.\nNote that when RFTEST_ABORT is requested:\n1) In case of infinite Tx, the Packet Controller FSM stops at the end of the current byte in process, and processes accordingly the packet CRC.\n2) In case of Infinite Rx, the Packet Controller FSM either stops as the end of the current Packet reception (if Access address has been detected), or simply stop the processing switching off the RF."]
3906 #[inline(always)]
3907 pub fn rftest_abort(
3908 self,
3909 ) -> crate::common::RegisterFieldBool<26, 1, 0, BleRwblecntlReg_SPEC, crate::common::W> {
3910 crate::common::RegisterFieldBool::<26,1,0,BleRwblecntlReg_SPEC,crate::common::W>::from_register(self,0)
3911 }
3912
3913 #[doc = "Abort the current Advertising event when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0."]
3914 #[inline(always)]
3915 pub fn advert_abort(
3916 self,
3917 ) -> crate::common::RegisterFieldBool<25, 1, 0, BleRwblecntlReg_SPEC, crate::common::W> {
3918 crate::common::RegisterFieldBool::<25,1,0,BleRwblecntlReg_SPEC,crate::common::W>::from_register(self,0)
3919 }
3920
3921 #[doc = "Abort the current scan window when written with a 1. Resets at 0 when action is performed. No action happens if it is written with 0."]
3922 #[inline(always)]
3923 pub fn scan_abort(
3924 self,
3925 ) -> crate::common::RegisterFieldBool<24, 1, 0, BleRwblecntlReg_SPEC, crate::common::W> {
3926 crate::common::RegisterFieldBool::<24,1,0,BleRwblecntlReg_SPEC,crate::common::W>::from_register(self,0)
3927 }
3928
3929 #[doc = "0: Normal operation of MD bits management\n1: Allow a single Tx/Rx exchange whatever the MD bits are.\n\n- value forced by SW from Tx Descriptor\n- value just saved in Rx Descriptor during reception"]
3930 #[inline(always)]
3931 pub fn md_dsb(
3932 self,
3933 ) -> crate::common::RegisterFieldBool<22, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3934 crate::common::RegisterFieldBool::<22,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3935 }
3936
3937 #[doc = "0: Normal operation of Sequence number\n1: Sequence Number Management disabled:\n\n- value forced by SW from Tx Descriptor\n- value ignored in Rx, where no SN error reported."]
3938 #[inline(always)]
3939 pub fn sn_dsb(
3940 self,
3941 ) -> crate::common::RegisterFieldBool<21, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3942 crate::common::RegisterFieldBool::<21,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3943 }
3944
3945 #[doc = "0: Normal operation of Acknowledge\n1: Acknowledge scheme disabled:\n\n- value forced by SW from Tx Descriptor\n- value ignored in Rx, where no NESN error reported."]
3946 #[inline(always)]
3947 pub fn nesn_dsb(
3948 self,
3949 ) -> crate::common::RegisterFieldBool<20, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3950 crate::common::RegisterFieldBool::<20,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3951 }
3952
3953 #[doc = "0: Normal operation. Encryption / Decryption enabled.\n1: Encryption / Decryption disabled.\nNote that if CS-CRYPT_EN is set, then MIC is generated, and only data encryption is disabled, meaning data sent are plain data."]
3954 #[inline(always)]
3955 pub fn crypt_dsb(
3956 self,
3957 ) -> crate::common::RegisterFieldBool<19, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3958 crate::common::RegisterFieldBool::<19,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3959 }
3960
3961 #[doc = "0: Normal operation. Whitening enabled.\n1: Whitening disabled."]
3962 #[inline(always)]
3963 pub fn whit_dsb(
3964 self,
3965 ) -> crate::common::RegisterFieldBool<18, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3966 crate::common::RegisterFieldBool::<18,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3967 }
3968
3969 #[doc = "0: Normal operation. CRC removed from data stream.\n1: CRC stripping disabled on Rx packets, CRC replaced by 0x000 in Tx."]
3970 #[inline(always)]
3971 pub fn crc_dsb(
3972 self,
3973 ) -> crate::common::RegisterFieldBool<17, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3974 crate::common::RegisterFieldBool::<17,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3975 }
3976
3977 #[doc = "0: Normal operation. Frequency Hopping Remapping algorithm enabled.\n1: Frequency Hopping Remapping algorithm disabled"]
3978 #[inline(always)]
3979 pub fn hop_remap_dsb(
3980 self,
3981 ) -> crate::common::RegisterFieldBool<16, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3982 crate::common::RegisterFieldBool::<16,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3983 }
3984
3985 #[doc = "Defines correlation mode\n00: Correlates onto Access Address\n01: Correlates onto half preamble and Access Address\n10: Correlates onto full preamble and Access Address\n11: n/a"]
3986 #[inline(always)]
3987 pub fn corr_mode(
3988 self,
3989 ) -> crate::common::RegisterField<12, 0x3, 1, 0, u8, u8, BleRwblecntlReg_SPEC, crate::common::RW>
3990 {
3991 crate::common::RegisterField::<12,0x3,1,0,u8,u8,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
3992 }
3993
3994 #[doc = "Advertising Channels Error Filtering Enable control\n0: RW-BLE Core reports all errors to RW-BLE Software\n1: RW-BLE Core reports only correctly received packet, without error to RW-BLE Software"]
3995 #[inline(always)]
3996 pub fn advertfilt_en(
3997 self,
3998 ) -> crate::common::RegisterFieldBool<9, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
3999 crate::common::RegisterFieldBool::<9,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
4000 }
4001
4002 #[doc = "0: Disable RW-BLE Core Exchange Table pre-fetch mechanism.\n1: Enable RW-BLE Core Exchange table pre-fetch mechanism."]
4003 #[inline(always)]
4004 pub fn rwble_en(
4005 self,
4006 ) -> crate::common::RegisterFieldBool<8, 1, 0, BleRwblecntlReg_SPEC, crate::common::RW> {
4007 crate::common::RegisterFieldBool::<8,1,0,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
4008 }
4009
4010 #[doc = "Default Rx Window size in us. Used when device:\n\n\nis master connectedperforms its second receipt.0 is not a valid value. Recommended value is 10 (in decimal)."]
4011 #[inline(always)]
4012 pub fn rxwinszdef(
4013 self,
4014 ) -> crate::common::RegisterField<4, 0xf, 1, 0, u8, u8, BleRwblecntlReg_SPEC, crate::common::RW>
4015 {
4016 crate::common::RegisterField::<4,0xf,1,0,u8,u8,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
4017 }
4018
4019 #[doc = "Indicates the maximum number of errors allowed to recognize the synchronization word."]
4020 #[inline(always)]
4021 pub fn syncerr(
4022 self,
4023 ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, BleRwblecntlReg_SPEC, crate::common::RW>
4024 {
4025 crate::common::RegisterField::<0,0x7,1,0,u8,u8,BleRwblecntlReg_SPEC,crate::common::RW>::from_register(self,0)
4026 }
4027}
4028impl ::core::default::Default for BleRwblecntlReg {
4029 #[inline(always)]
4030 fn default() -> BleRwblecntlReg {
4031 <crate::RegValueT<BleRwblecntlReg_SPEC> as RegisterValue<_>>::new(0)
4032 }
4033}
4034
4035#[doc(hidden)]
4036#[derive(Copy, Clone, Eq, PartialEq)]
4037pub struct BleRwbleconfReg_SPEC;
4038impl crate::sealed::RegSpec for BleRwbleconfReg_SPEC {
4039 type DataType = u32;
4040}
4041
4042#[doc = "Configuration register"]
4043pub type BleRwbleconfReg = crate::RegValueT<BleRwbleconfReg_SPEC>;
4044
4045impl BleRwbleconfReg {
4046 #[doc = "Value of the RW_BLE_ADDRESS_WIDTH parameter concerted into binary."]
4047 #[inline(always)]
4048 pub fn add_width(
4049 self,
4050 ) -> crate::common::RegisterField<24, 0x3f, 1, 0, u8, u8, BleRwbleconfReg_SPEC, crate::common::R>
4051 {
4052 crate::common::RegisterField::<24,0x3f,1,0,u8,u8,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4053 }
4054
4055 #[doc = "Radio Interface ID"]
4056 #[inline(always)]
4057 pub fn rfif(
4058 self,
4059 ) -> crate::common::RegisterField<16, 0x7f, 1, 0, u8, u8, BleRwbleconfReg_SPEC, crate::common::R>
4060 {
4061 crate::common::RegisterField::<16,0x7f,1,0,u8,u8,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4062 }
4063
4064 #[doc = "Operating Frequency (in MHz)"]
4065 #[inline(always)]
4066 pub fn clk_sel(
4067 self,
4068 ) -> crate::common::RegisterField<8, 0x3f, 1, 0, u8, u8, BleRwbleconfReg_SPEC, crate::common::R>
4069 {
4070 crate::common::RegisterField::<8,0x3f,1,0,u8,u8,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4071 }
4072
4073 #[doc = "0: AES deciphering not present"]
4074 #[inline(always)]
4075 pub fn decipher(
4076 self,
4077 ) -> crate::common::RegisterFieldBool<6, 1, 0, BleRwbleconfReg_SPEC, crate::common::RW> {
4078 crate::common::RegisterFieldBool::<6,1,0,BleRwbleconfReg_SPEC,crate::common::RW>::from_register(self,0)
4079 }
4080
4081 #[doc = "0: RW-BLE Core is used as a standalone BLE device"]
4082 #[inline(always)]
4083 pub fn dmmode(
4084 self,
4085 ) -> crate::common::RegisterFieldBool<5, 1, 0, BleRwbleconfReg_SPEC, crate::common::R> {
4086 crate::common::RegisterFieldBool::<5,1,0,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4087 }
4088
4089 #[doc = "1: Interrupts are trigger level generated, i.e. stays active at 1 till acknowledgement"]
4090 #[inline(always)]
4091 pub fn intmode(
4092 self,
4093 ) -> crate::common::RegisterFieldBool<4, 1, 0, BleRwbleconfReg_SPEC, crate::common::R> {
4094 crate::common::RegisterFieldBool::<4,1,0,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4095 }
4096
4097 #[doc = "1: WLAN Coexistence mechanism present"]
4098 #[inline(always)]
4099 pub fn coex(
4100 self,
4101 ) -> crate::common::RegisterFieldBool<3, 1, 0, BleRwbleconfReg_SPEC, crate::common::R> {
4102 crate::common::RegisterFieldBool::<3,1,0,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4103 }
4104
4105 #[doc = "1: Diagnostic port instantiated"]
4106 #[inline(always)]
4107 pub fn usedbg(
4108 self,
4109 ) -> crate::common::RegisterFieldBool<2, 1, 0, BleRwbleconfReg_SPEC, crate::common::R> {
4110 crate::common::RegisterFieldBool::<2,1,0,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4111 }
4112
4113 #[doc = "1: AES-CCM Encryption block present"]
4114 #[inline(always)]
4115 pub fn usecrypt(
4116 self,
4117 ) -> crate::common::RegisterFieldBool<1, 1, 0, BleRwbleconfReg_SPEC, crate::common::R> {
4118 crate::common::RegisterFieldBool::<1,1,0,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4119 }
4120
4121 #[doc = "Processor bus width:\n1: 32 bits"]
4122 #[inline(always)]
4123 pub fn buswidth(
4124 self,
4125 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleRwbleconfReg_SPEC, crate::common::R> {
4126 crate::common::RegisterFieldBool::<0,1,0,BleRwbleconfReg_SPEC,crate::common::R>::from_register(self,0)
4127 }
4128}
4129impl ::core::default::Default for BleRwbleconfReg {
4130 #[inline(always)]
4131 fn default() -> BleRwbleconfReg {
4132 <crate::RegValueT<BleRwbleconfReg_SPEC> as RegisterValue<_>>::new(268566559)
4133 }
4134}
4135
4136#[doc(hidden)]
4137#[derive(Copy, Clone, Eq, PartialEq)]
4138pub struct BleRxmicvalReg_SPEC;
4139impl crate::sealed::RegSpec for BleRxmicvalReg_SPEC {
4140 type DataType = u32;
4141}
4142
4143#[doc = "AES / CCM plain MIC value"]
4144pub type BleRxmicvalReg = crate::RegValueT<BleRxmicvalReg_SPEC>;
4145
4146impl BleRxmicvalReg {
4147 #[doc = "AES-CCM plain MIC value. Valid on once MIC has been extracted from Rx packet."]
4148 #[inline(always)]
4149 pub fn rxmicval(
4150 self,
4151 ) -> crate::common::RegisterField<
4152 0,
4153 0xffffffff,
4154 1,
4155 0,
4156 u32,
4157 u32,
4158 BleRxmicvalReg_SPEC,
4159 crate::common::R,
4160 > {
4161 crate::common::RegisterField::<
4162 0,
4163 0xffffffff,
4164 1,
4165 0,
4166 u32,
4167 u32,
4168 BleRxmicvalReg_SPEC,
4169 crate::common::R,
4170 >::from_register(self, 0)
4171 }
4172}
4173impl ::core::default::Default for BleRxmicvalReg {
4174 #[inline(always)]
4175 fn default() -> BleRxmicvalReg {
4176 <crate::RegValueT<BleRxmicvalReg_SPEC> as RegisterValue<_>>::new(0)
4177 }
4178}
4179
4180#[doc(hidden)]
4181#[derive(Copy, Clone, Eq, PartialEq)]
4182pub struct BleSampleclkReg_SPEC;
4183impl crate::sealed::RegSpec for BleSampleclkReg_SPEC {
4184 type DataType = u32;
4185}
4186
4187#[doc = "Samples the Base Time Counter"]
4188pub type BleSampleclkReg = crate::RegValueT<BleSampleclkReg_SPEC>;
4189
4190impl BleSampleclkReg {
4191 #[doc = "Writing a 1 samples the Base Time Counter value in BASETIMECNT register. Resets at 0 when action is performed."]
4192 #[inline(always)]
4193 pub fn samp(
4194 self,
4195 ) -> crate::common::RegisterFieldBool<0, 1, 0, BleSampleclkReg_SPEC, crate::common::W> {
4196 crate::common::RegisterFieldBool::<0,1,0,BleSampleclkReg_SPEC,crate::common::W>::from_register(self,0)
4197 }
4198}
4199impl ::core::default::Default for BleSampleclkReg {
4200 #[inline(always)]
4201 fn default() -> BleSampleclkReg {
4202 <crate::RegValueT<BleSampleclkReg_SPEC> as RegisterValue<_>>::new(0)
4203 }
4204}
4205
4206#[doc(hidden)]
4207#[derive(Copy, Clone, Eq, PartialEq)]
4208pub struct BleSwprofilingReg_SPEC;
4209impl crate::sealed::RegSpec for BleSwprofilingReg_SPEC {
4210 type DataType = u32;
4211}
4212
4213#[doc = "Software Profiling register"]
4214pub type BleSwprofilingReg = crate::RegValueT<BleSwprofilingReg_SPEC>;
4215
4216impl BleSwprofilingReg {
4217 #[doc = "Software Profiling register: used by RW-BLE Software for profiling purpose: this value is copied on Diagnostic port"]
4218 #[inline(always)]
4219 pub fn swprofval(
4220 self,
4221 ) -> crate::common::RegisterField<
4222 0,
4223 0xffffffff,
4224 1,
4225 0,
4226 u32,
4227 u32,
4228 BleSwprofilingReg_SPEC,
4229 crate::common::RW,
4230 > {
4231 crate::common::RegisterField::<
4232 0,
4233 0xffffffff,
4234 1,
4235 0,
4236 u32,
4237 u32,
4238 BleSwprofilingReg_SPEC,
4239 crate::common::RW,
4240 >::from_register(self, 0)
4241 }
4242}
4243impl ::core::default::Default for BleSwprofilingReg {
4244 #[inline(always)]
4245 fn default() -> BleSwprofilingReg {
4246 <crate::RegValueT<BleSwprofilingReg_SPEC> as RegisterValue<_>>::new(0)
4247 }
4248}
4249
4250#[doc(hidden)]
4251#[derive(Copy, Clone, Eq, PartialEq)]
4252pub struct BleTimgencntlReg_SPEC;
4253impl crate::sealed::RegSpec for BleTimgencntlReg_SPEC {
4254 type DataType = u32;
4255}
4256
4257#[doc = "Timing Generator Register"]
4258pub type BleTimgencntlReg = crate::RegValueT<BleTimgencntlReg_SPEC>;
4259
4260impl BleTimgencntlReg {
4261 #[doc = "Controls the Anticipated pre-Fetch Abort mechanism\n0: Disabled\n1: Enabled"]
4262 #[inline(always)]
4263 pub fn apfm_en(
4264 self,
4265 ) -> crate::common::RegisterFieldBool<31, 1, 0, BleTimgencntlReg_SPEC, crate::common::RW> {
4266 crate::common::RegisterFieldBool::<31,1,0,BleTimgencntlReg_SPEC,crate::common::RW>::from_register(self,0)
4267 }
4268
4269 #[doc = "Defines the instant in s at which immediate abort is required after anticipated pre-fetch abort"]
4270 #[inline(always)]
4271 pub fn prefetchabort_time(
4272 self,
4273 ) -> crate::common::RegisterField<
4274 16,
4275 0x3ff,
4276 1,
4277 0,
4278 u16,
4279 u16,
4280 BleTimgencntlReg_SPEC,
4281 crate::common::RW,
4282 > {
4283 crate::common::RegisterField::<
4284 16,
4285 0x3ff,
4286 1,
4287 0,
4288 u16,
4289 u16,
4290 BleTimgencntlReg_SPEC,
4291 crate::common::RW,
4292 >::from_register(self, 0)
4293 }
4294
4295 #[doc = "Defines Exchange Table pre-fetch instant in us"]
4296 #[inline(always)]
4297 pub fn prefetch_time(
4298 self,
4299 ) -> crate::common::RegisterField<
4300 0,
4301 0x1ff,
4302 1,
4303 0,
4304 u16,
4305 u16,
4306 BleTimgencntlReg_SPEC,
4307 crate::common::RW,
4308 > {
4309 crate::common::RegisterField::<
4310 0,
4311 0x1ff,
4312 1,
4313 0,
4314 u16,
4315 u16,
4316 BleTimgencntlReg_SPEC,
4317 crate::common::RW,
4318 >::from_register(self, 0)
4319 }
4320}
4321impl ::core::default::Default for BleTimgencntlReg {
4322 #[inline(always)]
4323 fn default() -> BleTimgencntlReg {
4324 <crate::RegValueT<BleTimgencntlReg_SPEC> as RegisterValue<_>>::new(2147483647)
4325 }
4326}
4327
4328#[doc(hidden)]
4329#[derive(Copy, Clone, Eq, PartialEq)]
4330pub struct BleTxmicvalReg_SPEC;
4331impl crate::sealed::RegSpec for BleTxmicvalReg_SPEC {
4332 type DataType = u32;
4333}
4334
4335#[doc = "AES / CCM plain MIC value"]
4336pub type BleTxmicvalReg = crate::RegValueT<BleTxmicvalReg_SPEC>;
4337
4338impl BleTxmicvalReg {
4339 #[doc = "AES-CCM plain MIC value. Valid on when MIC has been calculated (in Tx)"]
4340 #[inline(always)]
4341 pub fn txmicval(
4342 self,
4343 ) -> crate::common::RegisterField<
4344 0,
4345 0xffffffff,
4346 1,
4347 0,
4348 u32,
4349 u32,
4350 BleTxmicvalReg_SPEC,
4351 crate::common::R,
4352 > {
4353 crate::common::RegisterField::<
4354 0,
4355 0xffffffff,
4356 1,
4357 0,
4358 u32,
4359 u32,
4360 BleTxmicvalReg_SPEC,
4361 crate::common::R,
4362 >::from_register(self, 0)
4363 }
4364}
4365impl ::core::default::Default for BleTxmicvalReg {
4366 #[inline(always)]
4367 fn default() -> BleTxmicvalReg {
4368 <crate::RegValueT<BleTxmicvalReg_SPEC> as RegisterValue<_>>::new(0)
4369 }
4370}
4371
4372#[doc(hidden)]
4373#[derive(Copy, Clone, Eq, PartialEq)]
4374pub struct BleVersionReg_SPEC;
4375impl crate::sealed::RegSpec for BleVersionReg_SPEC {
4376 type DataType = u32;
4377}
4378
4379#[doc = "Version register"]
4380pub type BleVersionReg = crate::RegValueT<BleVersionReg_SPEC>;
4381
4382impl BleVersionReg {
4383 #[doc = "BLE Core Type"]
4384 #[inline(always)]
4385 pub fn typ(
4386 self,
4387 ) -> crate::common::RegisterField<24, 0xff, 1, 0, u8, u8, BleVersionReg_SPEC, crate::common::R>
4388 {
4389 crate::common::RegisterField::<24,0xff,1,0,u8,u8,BleVersionReg_SPEC,crate::common::R>::from_register(self,0)
4390 }
4391
4392 #[doc = "BLE Core version Major release number."]
4393 #[inline(always)]
4394 pub fn rel(
4395 self,
4396 ) -> crate::common::RegisterField<16, 0xff, 1, 0, u8, u8, BleVersionReg_SPEC, crate::common::R>
4397 {
4398 crate::common::RegisterField::<16,0xff,1,0,u8,u8,BleVersionReg_SPEC,crate::common::R>::from_register(self,0)
4399 }
4400
4401 #[doc = "BLE Core upgrade Upgrade number."]
4402 #[inline(always)]
4403 pub fn upg(
4404 self,
4405 ) -> crate::common::RegisterField<8, 0xff, 1, 0, u8, u8, BleVersionReg_SPEC, crate::common::R>
4406 {
4407 crate::common::RegisterField::<8,0xff,1,0,u8,u8,BleVersionReg_SPEC,crate::common::R>::from_register(self,0)
4408 }
4409
4410 #[doc = "BLE Core Build Build number."]
4411 #[inline(always)]
4412 pub fn build(
4413 self,
4414 ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, BleVersionReg_SPEC, crate::common::R>
4415 {
4416 crate::common::RegisterField::<0,0xff,1,0,u8,u8,BleVersionReg_SPEC,crate::common::R>::from_register(self,0)
4417 }
4418}
4419impl ::core::default::Default for BleVersionReg {
4420 #[inline(always)]
4421 fn default() -> BleVersionReg {
4422 <crate::RegValueT<BleVersionReg_SPEC> as RegisterValue<_>>::new(16777216)
4423 }
4424}
4425
4426#[doc(hidden)]
4427#[derive(Copy, Clone, Eq, PartialEq)]
4428pub struct BleWlnbdevReg_SPEC;
4429impl crate::sealed::RegSpec for BleWlnbdevReg_SPEC {
4430 type DataType = u32;
4431}
4432
4433#[doc = "Devices in white list"]
4434pub type BleWlnbdevReg = crate::RegValueT<BleWlnbdevReg_SPEC>;
4435
4436impl BleWlnbdevReg {
4437 #[doc = "Number of private devices in the white list."]
4438 #[inline(always)]
4439 pub fn nbprivdev(
4440 self,
4441 ) -> crate::common::RegisterField<8, 0xff, 1, 0, u8, u8, BleWlnbdevReg_SPEC, crate::common::RW>
4442 {
4443 crate::common::RegisterField::<8,0xff,1,0,u8,u8,BleWlnbdevReg_SPEC,crate::common::RW>::from_register(self,0)
4444 }
4445
4446 #[doc = "Number of public devices in the white list."]
4447 #[inline(always)]
4448 pub fn nbpubdev(
4449 self,
4450 ) -> crate::common::RegisterField<0, 0xff, 1, 0, u8, u8, BleWlnbdevReg_SPEC, crate::common::RW>
4451 {
4452 crate::common::RegisterField::<0,0xff,1,0,u8,u8,BleWlnbdevReg_SPEC,crate::common::RW>::from_register(self,0)
4453 }
4454}
4455impl ::core::default::Default for BleWlnbdevReg {
4456 #[inline(always)]
4457 fn default() -> BleWlnbdevReg {
4458 <crate::RegValueT<BleWlnbdevReg_SPEC> as RegisterValue<_>>::new(0)
4459 }
4460}
4461
4462#[doc(hidden)]
4463#[derive(Copy, Clone, Eq, PartialEq)]
4464pub struct BleWlprivaddptrReg_SPEC;
4465impl crate::sealed::RegSpec for BleWlprivaddptrReg_SPEC {
4466 type DataType = u32;
4467}
4468
4469#[doc = "Start address of private devices list"]
4470pub type BleWlprivaddptrReg = crate::RegValueT<BleWlprivaddptrReg_SPEC>;
4471
4472impl BleWlprivaddptrReg {
4473 #[doc = "Start address pointer of the private devices white list."]
4474 #[inline(always)]
4475 pub fn wlprivaddptr(
4476 self,
4477 ) -> crate::common::RegisterField<
4478 0,
4479 0xffff,
4480 1,
4481 0,
4482 u16,
4483 u16,
4484 BleWlprivaddptrReg_SPEC,
4485 crate::common::RW,
4486 > {
4487 crate::common::RegisterField::<
4488 0,
4489 0xffff,
4490 1,
4491 0,
4492 u16,
4493 u16,
4494 BleWlprivaddptrReg_SPEC,
4495 crate::common::RW,
4496 >::from_register(self, 0)
4497 }
4498}
4499impl ::core::default::Default for BleWlprivaddptrReg {
4500 #[inline(always)]
4501 fn default() -> BleWlprivaddptrReg {
4502 <crate::RegValueT<BleWlprivaddptrReg_SPEC> as RegisterValue<_>>::new(0)
4503 }
4504}
4505
4506#[doc(hidden)]
4507#[derive(Copy, Clone, Eq, PartialEq)]
4508pub struct BleWlpubaddptrReg_SPEC;
4509impl crate::sealed::RegSpec for BleWlpubaddptrReg_SPEC {
4510 type DataType = u32;
4511}
4512
4513#[doc = "Start address of public devices list"]
4514pub type BleWlpubaddptrReg = crate::RegValueT<BleWlpubaddptrReg_SPEC>;
4515
4516impl BleWlpubaddptrReg {
4517 #[doc = "Start address pointer of the public devices white list."]
4518 #[inline(always)]
4519 pub fn wlpubaddptr(
4520 self,
4521 ) -> crate::common::RegisterField<
4522 0,
4523 0xffff,
4524 1,
4525 0,
4526 u16,
4527 u16,
4528 BleWlpubaddptrReg_SPEC,
4529 crate::common::RW,
4530 > {
4531 crate::common::RegisterField::<
4532 0,
4533 0xffff,
4534 1,
4535 0,
4536 u16,
4537 u16,
4538 BleWlpubaddptrReg_SPEC,
4539 crate::common::RW,
4540 >::from_register(self, 0)
4541 }
4542}
4543impl ::core::default::Default for BleWlpubaddptrReg {
4544 #[inline(always)]
4545 fn default() -> BleWlpubaddptrReg {
4546 <crate::RegValueT<BleWlpubaddptrReg_SPEC> as RegisterValue<_>>::new(0)
4547 }
4548}