Skip to main content

da14680_pac/
ble.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:44:57 +0000
19
20#![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}