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