Skip to main content

da14680_pac/
coex.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:44:57 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"COEX registers"]
28unsafe impl ::core::marker::Send for super::Coex {}
29unsafe impl ::core::marker::Sync for super::Coex {}
30impl super::Coex {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "COEX BLE PTI Control Register"]
38    #[inline(always)]
39    pub const fn coex_ble_pti_reg(
40        &self,
41    ) -> &'static crate::common::Reg<self::CoexBlePtiReg_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::CoexBlePtiReg_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(8usize),
45            )
46        }
47    }
48
49    #[doc = "COEX Control Register"]
50    #[inline(always)]
51    pub const fn coex_ctrl_reg(
52        &self,
53    ) -> &'static crate::common::Reg<self::CoexCtrlReg_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::CoexCtrlReg_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0usize),
57            )
58        }
59    }
60
61    #[doc = "COEX Diagnostic Monitor Register"]
62    #[inline(always)]
63    pub const fn coex_diag_reg(
64        &self,
65    ) -> &'static crate::common::Reg<self::CoexDiagReg_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::CoexDiagReg_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(12usize),
69            )
70        }
71    }
72
73    #[doc = "COEX FTDF PTI Control Register"]
74    #[inline(always)]
75    pub const fn coex_ftdf_pti_reg(
76        &self,
77    ) -> &'static crate::common::Reg<self::CoexFtdfPtiReg_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::CoexFtdfPtiReg_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(10usize),
81            )
82        }
83    }
84
85    #[doc = "COEX Interrupt Mask Register"]
86    #[inline(always)]
87    pub const fn coex_int_mask_reg(
88        &self,
89    ) -> &'static crate::common::Reg<self::CoexIntMaskReg_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::CoexIntMaskReg_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(4usize),
93            )
94        }
95    }
96
97    #[doc = "COEX Interrupt Status Register"]
98    #[inline(always)]
99    pub const fn coex_int_stat_reg(
100        &self,
101    ) -> &'static crate::common::Reg<self::CoexIntStatReg_SPEC, crate::common::RW> {
102        unsafe {
103            crate::common::Reg::<self::CoexIntStatReg_SPEC, crate::common::RW>::from_ptr(
104                self._svd2pac_as_ptr().add(6usize),
105            )
106        }
107    }
108
109    #[doc = "COEX Priority Register"]
110    #[inline(always)]
111    pub const fn coex_pri10_reg(
112        &self,
113    ) -> &'static crate::common::Reg<self::CoexPri10Reg_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::CoexPri10Reg_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(36usize),
117            )
118        }
119    }
120
121    #[doc = "COEX Priority Register"]
122    #[inline(always)]
123    pub const fn coex_pri11_reg(
124        &self,
125    ) -> &'static crate::common::Reg<self::CoexPri11Reg_SPEC, crate::common::RW> {
126        unsafe {
127            crate::common::Reg::<self::CoexPri11Reg_SPEC, crate::common::RW>::from_ptr(
128                self._svd2pac_as_ptr().add(38usize),
129            )
130        }
131    }
132
133    #[doc = "COEX Priority Register"]
134    #[inline(always)]
135    pub const fn coex_pri12_reg(
136        &self,
137    ) -> &'static crate::common::Reg<self::CoexPri12Reg_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::CoexPri12Reg_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(40usize),
141            )
142        }
143    }
144
145    #[doc = "COEX Priority Register"]
146    #[inline(always)]
147    pub const fn coex_pri13_reg(
148        &self,
149    ) -> &'static crate::common::Reg<self::CoexPri13Reg_SPEC, crate::common::RW> {
150        unsafe {
151            crate::common::Reg::<self::CoexPri13Reg_SPEC, crate::common::RW>::from_ptr(
152                self._svd2pac_as_ptr().add(42usize),
153            )
154        }
155    }
156
157    #[doc = "COEX Priority Register"]
158    #[inline(always)]
159    pub const fn coex_pri14_reg(
160        &self,
161    ) -> &'static crate::common::Reg<self::CoexPri14Reg_SPEC, crate::common::RW> {
162        unsafe {
163            crate::common::Reg::<self::CoexPri14Reg_SPEC, crate::common::RW>::from_ptr(
164                self._svd2pac_as_ptr().add(44usize),
165            )
166        }
167    }
168
169    #[doc = "COEX Priority Register"]
170    #[inline(always)]
171    pub const fn coex_pri15_reg(
172        &self,
173    ) -> &'static crate::common::Reg<self::CoexPri15Reg_SPEC, crate::common::RW> {
174        unsafe {
175            crate::common::Reg::<self::CoexPri15Reg_SPEC, crate::common::RW>::from_ptr(
176                self._svd2pac_as_ptr().add(46usize),
177            )
178        }
179    }
180
181    #[doc = "COEX Priority Register"]
182    #[inline(always)]
183    pub const fn coex_pri16_reg(
184        &self,
185    ) -> &'static crate::common::Reg<self::CoexPri16Reg_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::CoexPri16Reg_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(48usize),
189            )
190        }
191    }
192
193    #[doc = "COEX Priority Register"]
194    #[inline(always)]
195    pub const fn coex_pri17_reg(
196        &self,
197    ) -> &'static crate::common::Reg<self::CoexPri17Reg_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::CoexPri17Reg_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(50usize),
201            )
202        }
203    }
204
205    #[doc = "COEX Priority Register"]
206    #[inline(always)]
207    pub const fn coex_pri1_reg(
208        &self,
209    ) -> &'static crate::common::Reg<self::CoexPri1Reg_SPEC, crate::common::RW> {
210        unsafe {
211            crate::common::Reg::<self::CoexPri1Reg_SPEC, crate::common::RW>::from_ptr(
212                self._svd2pac_as_ptr().add(18usize),
213            )
214        }
215    }
216
217    #[doc = "COEX Priority Register"]
218    #[inline(always)]
219    pub const fn coex_pri2_reg(
220        &self,
221    ) -> &'static crate::common::Reg<self::CoexPri2Reg_SPEC, crate::common::RW> {
222        unsafe {
223            crate::common::Reg::<self::CoexPri2Reg_SPEC, crate::common::RW>::from_ptr(
224                self._svd2pac_as_ptr().add(20usize),
225            )
226        }
227    }
228
229    #[doc = "COEX Priority Register"]
230    #[inline(always)]
231    pub const fn coex_pri3_reg(
232        &self,
233    ) -> &'static crate::common::Reg<self::CoexPri3Reg_SPEC, crate::common::RW> {
234        unsafe {
235            crate::common::Reg::<self::CoexPri3Reg_SPEC, crate::common::RW>::from_ptr(
236                self._svd2pac_as_ptr().add(22usize),
237            )
238        }
239    }
240
241    #[doc = "COEX Priority Register"]
242    #[inline(always)]
243    pub const fn coex_pri4_reg(
244        &self,
245    ) -> &'static crate::common::Reg<self::CoexPri4Reg_SPEC, crate::common::RW> {
246        unsafe {
247            crate::common::Reg::<self::CoexPri4Reg_SPEC, crate::common::RW>::from_ptr(
248                self._svd2pac_as_ptr().add(24usize),
249            )
250        }
251    }
252
253    #[doc = "COEX Priority Register"]
254    #[inline(always)]
255    pub const fn coex_pri5_reg(
256        &self,
257    ) -> &'static crate::common::Reg<self::CoexPri5Reg_SPEC, crate::common::RW> {
258        unsafe {
259            crate::common::Reg::<self::CoexPri5Reg_SPEC, crate::common::RW>::from_ptr(
260                self._svd2pac_as_ptr().add(26usize),
261            )
262        }
263    }
264
265    #[doc = "COEX Priority Register"]
266    #[inline(always)]
267    pub const fn coex_pri6_reg(
268        &self,
269    ) -> &'static crate::common::Reg<self::CoexPri6Reg_SPEC, crate::common::RW> {
270        unsafe {
271            crate::common::Reg::<self::CoexPri6Reg_SPEC, crate::common::RW>::from_ptr(
272                self._svd2pac_as_ptr().add(28usize),
273            )
274        }
275    }
276
277    #[doc = "COEX Priority Register"]
278    #[inline(always)]
279    pub const fn coex_pri7_reg(
280        &self,
281    ) -> &'static crate::common::Reg<self::CoexPri7Reg_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::CoexPri7Reg_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(30usize),
285            )
286        }
287    }
288
289    #[doc = "COEX Priority Register"]
290    #[inline(always)]
291    pub const fn coex_pri8_reg(
292        &self,
293    ) -> &'static crate::common::Reg<self::CoexPri8Reg_SPEC, crate::common::RW> {
294        unsafe {
295            crate::common::Reg::<self::CoexPri8Reg_SPEC, crate::common::RW>::from_ptr(
296                self._svd2pac_as_ptr().add(32usize),
297            )
298        }
299    }
300
301    #[doc = "COEX Priority Register"]
302    #[inline(always)]
303    pub const fn coex_pri9_reg(
304        &self,
305    ) -> &'static crate::common::Reg<self::CoexPri9Reg_SPEC, crate::common::RW> {
306        unsafe {
307            crate::common::Reg::<self::CoexPri9Reg_SPEC, crate::common::RW>::from_ptr(
308                self._svd2pac_as_ptr().add(34usize),
309            )
310        }
311    }
312
313    #[doc = "COEX Status Register"]
314    #[inline(always)]
315    pub const fn coex_stat_reg(
316        &self,
317    ) -> &'static crate::common::Reg<self::CoexStatReg_SPEC, crate::common::RW> {
318        unsafe {
319            crate::common::Reg::<self::CoexStatReg_SPEC, crate::common::RW>::from_ptr(
320                self._svd2pac_as_ptr().add(2usize),
321            )
322        }
323    }
324}
325#[doc(hidden)]
326#[derive(Copy, Clone, Eq, PartialEq)]
327pub struct CoexBlePtiReg_SPEC;
328impl crate::sealed::RegSpec for CoexBlePtiReg_SPEC {
329    type DataType = u16;
330}
331
332#[doc = "COEX BLE PTI Control Register"]
333pub type CoexBlePtiReg = crate::RegValueT<CoexBlePtiReg_SPEC>;
334
335impl CoexBlePtiReg {
336    #[doc = "This value specifies the PTI value that characterizes the next BLE transaction that will be initiated on the following \"ble_active\" positive edge. The value should remain constant during the high period of the \"ble_active\" signal."]
337    #[inline(always)]
338    pub fn coex_ble_pti(
339        self,
340    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexBlePtiReg_SPEC, crate::common::RW>
341    {
342        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexBlePtiReg_SPEC,crate::common::RW>::from_register(self,0)
343    }
344}
345impl ::core::default::Default for CoexBlePtiReg {
346    #[inline(always)]
347    fn default() -> CoexBlePtiReg {
348        <crate::RegValueT<CoexBlePtiReg_SPEC> as RegisterValue<_>>::new(0)
349    }
350}
351
352#[doc(hidden)]
353#[derive(Copy, Clone, Eq, PartialEq)]
354pub struct CoexCtrlReg_SPEC;
355impl crate::sealed::RegSpec for CoexCtrlReg_SPEC {
356    type DataType = u16;
357}
358
359#[doc = "COEX Control Register"]
360pub type CoexCtrlReg = crate::RegValueT<CoexCtrlReg_SPEC>;
361
362impl CoexCtrlReg {
363    #[doc = "If set to \"1\" then all BLE requests are ignored by masking the internal \"ble_active\" signal. Refer also to IGNORE_BLE_STAT."]
364    #[inline(always)]
365    pub fn ignore_ble(
366        self,
367    ) -> crate::common::RegisterFieldBool<15, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
368        crate::common::RegisterFieldBool::<15,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
369    }
370
371    #[doc = "If set to \"1\" then all FTDF requests are ignored by masking the internal \"ftdf_active\" signal. Refer also to IGNORE_FTDF_STAT."]
372    #[inline(always)]
373    pub fn ignore_ftdf(
374        self,
375    ) -> crate::common::RegisterFieldBool<14, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
376        crate::common::RegisterFieldBool::<14,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
377    }
378
379    #[doc = "If set to \"1\" then all EXT requests are ignored by masking the internal \"ext_act\" signal (\"ext_act\" is the logical OR of \"ext_act0\" and \"ext_act1\"). Refer also to IGNORE_EXT_STAT."]
380    #[inline(always)]
381    pub fn ignore_ext(
382        self,
383    ) -> crate::common::RegisterFieldBool<13, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
384        crate::common::RegisterFieldBool::<13,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
385    }
386
387    #[doc = "Select the logic driving the BLE core input \"ble.radio_busy\":\n0: (decision==BLE) AND rfcu.radio_busy.\n1: Hold to \"0\".\n2: (decision==FTDF) OR (decision==EXT) OR rfcu.radio_busy.\n3: (decision==FTDF) OR (decision==EXT).\nSelection \"0\" is the default, while selection \"2\" is the recommended value if the BLE SW supports it."]
388    #[inline(always)]
389    pub fn sel_ble_radio_busy(
390        self,
391    ) -> crate::common::RegisterField<11, 0x3, 1, 0, u8, u8, CoexCtrlReg_SPEC, crate::common::RW>
392    {
393        crate::common::RegisterField::<11,0x3,1,0,u8,u8,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
394    }
395
396    #[doc = "If set to \"1\" then the COEX block will drive the WLAN_TX and WLAN_RX inputs of the BLE core. Otherwise both BLE inputs will be forced to \"0\"."]
397    #[inline(always)]
398    pub fn sel_ble_wlan_tx_rx(
399        self,
400    ) -> crate::common::RegisterFieldBool<10, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
401        crate::common::RegisterFieldBool::<10,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
402    }
403
404    #[doc = "It controls the source of the FTDF PTI value that the COEX Arbiter will use.\nIf \"0\" then use the COEX_FTDF_PTI_REG.\nIf \"1\" then use the PTI value provided by the FTDF core."]
405    #[inline(always)]
406    pub fn sel_ftdf_pti(
407        self,
408    ) -> crate::common::RegisterFieldBool<8, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
409        crate::common::RegisterFieldBool::<8,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
410    }
411
412    #[doc = "If set to \"1\" and the COEX decision is different than \"FTDF\", then the CCA_STAT signal going to FTDF (generated from the radio) will be forced to \"1\"; otherwise the FTDF.CCA_STAT will be driven with the signal generated from the radio.\nRecommended value for SEL_FTDF_CCA is \"1\"."]
413    #[inline(always)]
414    pub fn sel_ftdf_cca(
415        self,
416    ) -> crate::common::RegisterFieldBool<7, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
417        crate::common::RegisterFieldBool::<7,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
418    }
419
420    #[doc = "The COEX block can provide internal diagnostic signals by overwriting the BLE diagnostic bus, which is forwarded to GPIO multiplexing. There is no need to program the BLE registers, but only this field and the GPIO PID fields. The encoding of this bitfield is:\n0: Don\'t overwrite any BLE diagnostic signal.\n1: Overwrite the BLE Diagnostic bits 2 down to 0:\nP2\\[2\\]: \"closing\" sub-state\nP2\\[1:0\\]:\"decision\" state\n2: Overwrite the BLE Diagnostic bits 5 down to 3:\nP1\\[2\\]: \"closing\" sub-state\nP1\\[1:0\\]:\"decision\" state\n3: Reserved.."]
421    #[inline(always)]
422    pub fn sel_coex_diag(
423        self,
424    ) -> crate::common::RegisterField<5, 0x3, 1, 0, u8, u8, CoexCtrlReg_SPEC, crate::common::RW>
425    {
426        crate::common::RegisterField::<5,0x3,1,0,u8,u8,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
427    }
428
429    #[doc = "Controls the behavior of the SMART_ACT (and SMART_PRI as a consequence).\nIf SMART_ACT_IMPL=\"0\" then if any BLE or FTDF MAC request is active then SMART_ACT will be asserted. SMART_ACT will actually be the logical OR of \"ble_active\" and \"ftdf_active\" internal signals. SMART_ACT will be asserted regardless the decision of the Arbiter to allow or disallow the access to the on-chip radio from the active MAC(s).\nif SMART_ACT_IMPL=\"1\" then if the Arbiter\'s decision is to allow EXTernal MAC, then keep SMART_ACT to \"0\", otherwise follow the implementation of SMART_ACT_IMPL=\"0\"."]
430    #[inline(always)]
431    pub fn smart_act_impl(
432        self,
433    ) -> crate::common::RegisterFieldBool<4, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
434        crate::common::RegisterFieldBool::<4,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
435    }
436
437    #[doc = "If set to \"1\" then the current BLE transaction will complete normally and after that no further decision will be taken by the arbiter. The SW must keep this bit to \"1\" as long as it performs write operations on the COEX_PRI*_REG registers. As soon as the update on the priority registers will be completed, the SW should clear this bit.\nNote: This bit is updated with the COEX_CLK, so depending on the relationship between the PCLK and COEX_CLK periods a write operation to this bit may be effective in more than one PCLK clock cycles, e.g. when the COEX_CLK rate is slower than the PCLK."]
438    #[inline(always)]
439    pub fn prging_arbiter(
440        self,
441    ) -> crate::common::RegisterFieldBool<0, 1, 0, CoexCtrlReg_SPEC, crate::common::RW> {
442        crate::common::RegisterFieldBool::<0,1,0,CoexCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
443    }
444}
445impl ::core::default::Default for CoexCtrlReg {
446    #[inline(always)]
447    fn default() -> CoexCtrlReg {
448        <crate::RegValueT<CoexCtrlReg_SPEC> as RegisterValue<_>>::new(0)
449    }
450}
451
452#[doc(hidden)]
453#[derive(Copy, Clone, Eq, PartialEq)]
454pub struct CoexDiagReg_SPEC;
455impl crate::sealed::RegSpec for CoexDiagReg_SPEC {
456    type DataType = u16;
457}
458
459#[doc = "COEX Diagnostic Monitor Register"]
460pub type CoexDiagReg = crate::RegValueT<CoexDiagReg_SPEC>;
461
462impl CoexDiagReg {
463    #[doc = "provides the current value of the diagnostic bus forwarded to the GPIO multiplexing (named PPA). Refer to the Pxy_MODE_REG\\[PID\\] value BLE_DIAG."]
464    #[inline(always)]
465    pub fn coex_diag_mon(
466        self,
467    ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, CoexDiagReg_SPEC, crate::common::R>
468    {
469        crate::common::RegisterField::<0,0xffff,1,0,u16,u16,CoexDiagReg_SPEC,crate::common::R>::from_register(self,0)
470    }
471}
472impl ::core::default::Default for CoexDiagReg {
473    #[inline(always)]
474    fn default() -> CoexDiagReg {
475        <crate::RegValueT<CoexDiagReg_SPEC> as RegisterValue<_>>::new(0)
476    }
477}
478
479#[doc(hidden)]
480#[derive(Copy, Clone, Eq, PartialEq)]
481pub struct CoexFtdfPtiReg_SPEC;
482impl crate::sealed::RegSpec for CoexFtdfPtiReg_SPEC {
483    type DataType = u16;
484}
485
486#[doc = "COEX FTDF PTI Control Register"]
487pub type CoexFtdfPtiReg = crate::RegValueT<CoexFtdfPtiReg_SPEC>;
488
489impl CoexFtdfPtiReg {
490    #[doc = "This value specifies the PTI value that characterizes the next FTDF transaction that will be initiated on the following \"ftdf_active\" positive edge. The value should remain constant during the high period of the \"ftdf_active\" signal. Refer also to bitfield COEX_CTRL_REG.SEL_FTDF_PTI."]
491    #[inline(always)]
492    pub fn coex_ftdf_pti(
493        self,
494    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexFtdfPtiReg_SPEC, crate::common::RW>
495    {
496        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexFtdfPtiReg_SPEC,crate::common::RW>::from_register(self,0)
497    }
498}
499impl ::core::default::Default for CoexFtdfPtiReg {
500    #[inline(always)]
501    fn default() -> CoexFtdfPtiReg {
502        <crate::RegValueT<CoexFtdfPtiReg_SPEC> as RegisterValue<_>>::new(0)
503    }
504}
505
506#[doc(hidden)]
507#[derive(Copy, Clone, Eq, PartialEq)]
508pub struct CoexIntMaskReg_SPEC;
509impl crate::sealed::RegSpec for CoexIntMaskReg_SPEC {
510    type DataType = u16;
511}
512
513#[doc = "COEX Interrupt Mask Register"]
514pub type CoexIntMaskReg = crate::RegValueT<CoexIntMaskReg_SPEC>;
515
516impl CoexIntMaskReg {
517    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_DECISION_SW\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
518    #[inline(always)]
519    pub fn coex_irq_on_decision_sw(
520        self,
521    ) -> crate::common::RegisterFieldBool<15, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
522        crate::common::RegisterFieldBool::<15,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
523    }
524
525    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_START_MID\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
526    #[inline(always)]
527    pub fn coex_irq_on_start_mid(
528        self,
529    ) -> crate::common::RegisterFieldBool<14, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
530        crate::common::RegisterFieldBool::<14,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
531    }
532
533    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_CLOSING_BRK\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
534    #[inline(always)]
535    pub fn coex_irq_on_closing_brk(
536        self,
537    ) -> crate::common::RegisterFieldBool<13, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
538        crate::common::RegisterFieldBool::<13,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
539    }
540
541    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_RADIO_BUSY_F\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
542    #[inline(always)]
543    pub fn coex_irq_on_radio_busy_f(
544        self,
545    ) -> crate::common::RegisterFieldBool<12, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
546        crate::common::RegisterFieldBool::<12,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
547    }
548
549    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_RADIO_BUSY_R\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
550    #[inline(always)]
551    pub fn coex_irq_on_radio_busy_r(
552        self,
553    ) -> crate::common::RegisterFieldBool<11, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
554        crate::common::RegisterFieldBool::<11,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
555    }
556
557    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_BLE_ACTIVE_F\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
558    #[inline(always)]
559    pub fn coex_irq_on_ble_active_f(
560        self,
561    ) -> crate::common::RegisterFieldBool<10, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
562        crate::common::RegisterFieldBool::<10,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
563    }
564
565    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_BLE_ACTIVE_R\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
566    #[inline(always)]
567    pub fn coex_irq_on_ble_active_r(
568        self,
569    ) -> crate::common::RegisterFieldBool<9, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
570        crate::common::RegisterFieldBool::<9,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
571    }
572
573    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_FTDF_ACTIVE_F\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
574    #[inline(always)]
575    pub fn coex_irq_on_ftdf_active_f(
576        self,
577    ) -> crate::common::RegisterFieldBool<8, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
578        crate::common::RegisterFieldBool::<8,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
579    }
580
581    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_FTDF_ACTIVE_R\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
582    #[inline(always)]
583    pub fn coex_irq_on_ftdf_active_r(
584        self,
585    ) -> crate::common::RegisterFieldBool<7, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
586        crate::common::RegisterFieldBool::<7,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
587    }
588
589    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_EXT_ACT_F\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
590    #[inline(always)]
591    pub fn coex_irq_on_ext_act_f(
592        self,
593    ) -> crate::common::RegisterFieldBool<6, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
594        crate::common::RegisterFieldBool::<6,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
595    }
596
597    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_EXT_ACT_R\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
598    #[inline(always)]
599    pub fn coex_irq_on_ext_act_r(
600        self,
601    ) -> crate::common::RegisterFieldBool<5, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
602        crate::common::RegisterFieldBool::<5,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
603    }
604
605    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_SMART_PRI_F\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
606    #[inline(always)]
607    pub fn coex_irq_on_smart_pri_f(
608        self,
609    ) -> crate::common::RegisterFieldBool<4, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
610        crate::common::RegisterFieldBool::<4,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
611    }
612
613    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_SMART_PRI_R\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
614    #[inline(always)]
615    pub fn coex_irq_on_smart_pri_r(
616        self,
617    ) -> crate::common::RegisterFieldBool<3, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
618        crate::common::RegisterFieldBool::<3,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
619    }
620
621    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_SMART_ACT_F\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
622    #[inline(always)]
623    pub fn coex_irq_on_smart_act_f(
624        self,
625    ) -> crate::common::RegisterFieldBool<2, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
626        crate::common::RegisterFieldBool::<2,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
627    }
628
629    #[doc = "If \"1\" then a \"1\" on COEX_INT_STAT_REG\\[COEX_IRQ_ON_SMART_ACT_R\\] will cause COEX_IRQ_STAT to be set also to \"1\"."]
630    #[inline(always)]
631    pub fn coex_irq_on_smart_act_r(
632        self,
633    ) -> crate::common::RegisterFieldBool<1, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
634        crate::common::RegisterFieldBool::<1,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
635    }
636
637    #[doc = "If set to \"1\" then sent an COEX_IRQ event to CPU as long as COEX_INT_STAT_REG\\[COEX_IRQ_STAT\\] is \"1\".\nIf cleared then don\'t sent any IRQ event to CPU."]
638    #[inline(always)]
639    pub fn coex_irq_mask(
640        self,
641    ) -> crate::common::RegisterFieldBool<0, 1, 0, CoexIntMaskReg_SPEC, crate::common::RW> {
642        crate::common::RegisterFieldBool::<0,1,0,CoexIntMaskReg_SPEC,crate::common::RW>::from_register(self,0)
643    }
644}
645impl ::core::default::Default for CoexIntMaskReg {
646    #[inline(always)]
647    fn default() -> CoexIntMaskReg {
648        <crate::RegValueT<CoexIntMaskReg_SPEC> as RegisterValue<_>>::new(0)
649    }
650}
651
652#[doc(hidden)]
653#[derive(Copy, Clone, Eq, PartialEq)]
654pub struct CoexIntStatReg_SPEC;
655impl crate::sealed::RegSpec for CoexIntStatReg_SPEC {
656    type DataType = u16;
657}
658
659#[doc = "COEX Interrupt Status Register"]
660pub type CoexIntStatReg = crate::RegValueT<CoexIntStatReg_SPEC>;
661
662impl CoexIntStatReg {
663    #[doc = "IRQ event when the decision switches to a new MAC. It ignores the intermediate transitions to DECISION==NONE.\nNote that after a Radio domain reset, the first transition of the decision to any MAC will also trigger this event."]
664    #[inline(always)]
665    pub fn coex_irq_on_decision_sw(
666        self,
667    ) -> crate::common::RegisterFieldBool<15, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
668        crate::common::RegisterFieldBool::<15,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
669    }
670
671    #[doc = "IRQ event when the decision switches to a MAC, while the TX_EN or RX_EN of this MAC are high. This event signals a potential break of a transmission or reception."]
672    #[inline(always)]
673    pub fn coex_irq_on_start_mid(
674        self,
675    ) -> crate::common::RegisterFieldBool<14, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
676        crate::common::RegisterFieldBool::<14,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
677    }
678
679    #[doc = "IRQ if while entering into \"closing\" sub-state, the TX_EN or RX_EN are active. This event signals a potential break of a transmission or reception."]
680    #[inline(always)]
681    pub fn coex_irq_on_closing_brk(
682        self,
683    ) -> crate::common::RegisterFieldBool<13, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
684        crate::common::RegisterFieldBool::<13,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
685    }
686
687    #[doc = "IRQ event on falling edge of RADIO_BUSY."]
688    #[inline(always)]
689    pub fn coex_irq_on_radio_busy_f(
690        self,
691    ) -> crate::common::RegisterFieldBool<12, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
692        crate::common::RegisterFieldBool::<12,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
693    }
694
695    #[doc = "IRQ event on rising edge of RADIO_BUSY."]
696    #[inline(always)]
697    pub fn coex_irq_on_radio_busy_r(
698        self,
699    ) -> crate::common::RegisterFieldBool<11, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
700        crate::common::RegisterFieldBool::<11,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
701    }
702
703    #[doc = "IRQ event on falling edge of BLE_ACTIVE internal signal."]
704    #[inline(always)]
705    pub fn coex_irq_on_ble_active_f(
706        self,
707    ) -> crate::common::RegisterFieldBool<10, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
708        crate::common::RegisterFieldBool::<10,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
709    }
710
711    #[doc = "IRQ event on rising edge of BLE_ACTIVE internal signal."]
712    #[inline(always)]
713    pub fn coex_irq_on_ble_active_r(
714        self,
715    ) -> crate::common::RegisterFieldBool<9, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
716        crate::common::RegisterFieldBool::<9,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
717    }
718
719    #[doc = "IRQ event on falling edge of FTDF_ACTIVE internal signal."]
720    #[inline(always)]
721    pub fn coex_irq_on_ftdf_active_f(
722        self,
723    ) -> crate::common::RegisterFieldBool<8, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
724        crate::common::RegisterFieldBool::<8,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
725    }
726
727    #[doc = "IRQ event on rising edge of FTDF_ACTIVE internal signal."]
728    #[inline(always)]
729    pub fn coex_irq_on_ftdf_active_r(
730        self,
731    ) -> crate::common::RegisterFieldBool<7, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
732        crate::common::RegisterFieldBool::<7,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
733    }
734
735    #[doc = "RQ event on falling edge of EXT_ACT."]
736    #[inline(always)]
737    pub fn coex_irq_on_ext_act_f(
738        self,
739    ) -> crate::common::RegisterFieldBool<6, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
740        crate::common::RegisterFieldBool::<6,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
741    }
742
743    #[doc = "IRQ event on rising edge of EXT_ACT."]
744    #[inline(always)]
745    pub fn coex_irq_on_ext_act_r(
746        self,
747    ) -> crate::common::RegisterFieldBool<5, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
748        crate::common::RegisterFieldBool::<5,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
749    }
750
751    #[doc = "IRQ event on falling edge of SMART_PRI."]
752    #[inline(always)]
753    pub fn coex_irq_on_smart_pri_f(
754        self,
755    ) -> crate::common::RegisterFieldBool<4, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
756        crate::common::RegisterFieldBool::<4,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
757    }
758
759    #[doc = "IRQ event on rising edge of SMART_PRI."]
760    #[inline(always)]
761    pub fn coex_irq_on_smart_pri_r(
762        self,
763    ) -> crate::common::RegisterFieldBool<3, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
764        crate::common::RegisterFieldBool::<3,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
765    }
766
767    #[doc = "IRQ event on falling edge of SMART_ACT."]
768    #[inline(always)]
769    pub fn coex_irq_on_smart_act_f(
770        self,
771    ) -> crate::common::RegisterFieldBool<2, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
772        crate::common::RegisterFieldBool::<2,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
773    }
774
775    #[doc = "IRQ event on rising edge of SMART_ACT."]
776    #[inline(always)]
777    pub fn coex_irq_on_smart_act_r(
778        self,
779    ) -> crate::common::RegisterFieldBool<1, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
780        crate::common::RegisterFieldBool::<1,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
781    }
782
783    #[doc = "For each COEX_IRQ_ON_* bitfield of COEX_INT_STAT_REG the corresponding mask is applied and afterwards all the intermediate results are combined with a logical OR in order to produce the COEX_IRQ_STAT bitfield. If furthermore the COEX_INT_MASK_REG\\[COEX_IRQ_MASK\\] is set to \"1\", then a COEX_IRQ signal will be forwarded to the CPU.\n\nNote: Each COEX_IRQ_ON_* bitfield of COEX_INT_STAT_REG will be set to \"1\" on the detection of the corresponding event and will be cleared to \"0\" on the read of COEX_INT_STAT_REG. The automated clear may delay a couple of PCLK cycles, depending on the relationship between PCLK and COEX_CLK."]
784    #[inline(always)]
785    pub fn coex_irq_stat(
786        self,
787    ) -> crate::common::RegisterFieldBool<0, 1, 0, CoexIntStatReg_SPEC, crate::common::R> {
788        crate::common::RegisterFieldBool::<0,1,0,CoexIntStatReg_SPEC,crate::common::R>::from_register(self,0)
789    }
790}
791impl ::core::default::Default for CoexIntStatReg {
792    #[inline(always)]
793    fn default() -> CoexIntStatReg {
794        <crate::RegValueT<CoexIntStatReg_SPEC> as RegisterValue<_>>::new(0)
795    }
796}
797
798#[doc(hidden)]
799#[derive(Copy, Clone, Eq, PartialEq)]
800pub struct CoexPri10Reg_SPEC;
801impl crate::sealed::RegSpec for CoexPri10Reg_SPEC {
802    type DataType = u16;
803}
804
805#[doc = "COEX Priority Register"]
806pub type CoexPri10Reg = crate::RegValueT<CoexPri10Reg_SPEC>;
807
808impl CoexPri10Reg {
809    #[doc = "Refer to COEX_PRI1_REG."]
810    #[inline(always)]
811    pub fn coex_pri_mac(
812        self,
813    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri10Reg_SPEC, crate::common::RW>
814    {
815        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri10Reg_SPEC,crate::common::RW>::from_register(self,0)
816    }
817
818    #[doc = "Refer to COEX_PRI1_REG."]
819    #[inline(always)]
820    pub fn coex_pri_pti(
821        self,
822    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri10Reg_SPEC, crate::common::RW>
823    {
824        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri10Reg_SPEC,crate::common::RW>::from_register(self,0)
825    }
826}
827impl ::core::default::Default for CoexPri10Reg {
828    #[inline(always)]
829    fn default() -> CoexPri10Reg {
830        <crate::RegValueT<CoexPri10Reg_SPEC> as RegisterValue<_>>::new(0)
831    }
832}
833
834#[doc(hidden)]
835#[derive(Copy, Clone, Eq, PartialEq)]
836pub struct CoexPri11Reg_SPEC;
837impl crate::sealed::RegSpec for CoexPri11Reg_SPEC {
838    type DataType = u16;
839}
840
841#[doc = "COEX Priority Register"]
842pub type CoexPri11Reg = crate::RegValueT<CoexPri11Reg_SPEC>;
843
844impl CoexPri11Reg {
845    #[doc = "Refer to COEX_PRI1_REG."]
846    #[inline(always)]
847    pub fn coex_pri_mac(
848        self,
849    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri11Reg_SPEC, crate::common::RW>
850    {
851        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri11Reg_SPEC,crate::common::RW>::from_register(self,0)
852    }
853
854    #[doc = "Refer to COEX_PRI1_REG."]
855    #[inline(always)]
856    pub fn coex_pri_pti(
857        self,
858    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri11Reg_SPEC, crate::common::RW>
859    {
860        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri11Reg_SPEC,crate::common::RW>::from_register(self,0)
861    }
862}
863impl ::core::default::Default for CoexPri11Reg {
864    #[inline(always)]
865    fn default() -> CoexPri11Reg {
866        <crate::RegValueT<CoexPri11Reg_SPEC> as RegisterValue<_>>::new(0)
867    }
868}
869
870#[doc(hidden)]
871#[derive(Copy, Clone, Eq, PartialEq)]
872pub struct CoexPri12Reg_SPEC;
873impl crate::sealed::RegSpec for CoexPri12Reg_SPEC {
874    type DataType = u16;
875}
876
877#[doc = "COEX Priority Register"]
878pub type CoexPri12Reg = crate::RegValueT<CoexPri12Reg_SPEC>;
879
880impl CoexPri12Reg {
881    #[doc = "Refer to COEX_PRI1_REG."]
882    #[inline(always)]
883    pub fn coex_pri_mac(
884        self,
885    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri12Reg_SPEC, crate::common::RW>
886    {
887        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri12Reg_SPEC,crate::common::RW>::from_register(self,0)
888    }
889
890    #[doc = "Refer to COEX_PRI1_REG."]
891    #[inline(always)]
892    pub fn coex_pri_pti(
893        self,
894    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri12Reg_SPEC, crate::common::RW>
895    {
896        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri12Reg_SPEC,crate::common::RW>::from_register(self,0)
897    }
898}
899impl ::core::default::Default for CoexPri12Reg {
900    #[inline(always)]
901    fn default() -> CoexPri12Reg {
902        <crate::RegValueT<CoexPri12Reg_SPEC> as RegisterValue<_>>::new(0)
903    }
904}
905
906#[doc(hidden)]
907#[derive(Copy, Clone, Eq, PartialEq)]
908pub struct CoexPri13Reg_SPEC;
909impl crate::sealed::RegSpec for CoexPri13Reg_SPEC {
910    type DataType = u16;
911}
912
913#[doc = "COEX Priority Register"]
914pub type CoexPri13Reg = crate::RegValueT<CoexPri13Reg_SPEC>;
915
916impl CoexPri13Reg {
917    #[doc = "Refer to COEX_PRI1_REG."]
918    #[inline(always)]
919    pub fn coex_pri_mac(
920        self,
921    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri13Reg_SPEC, crate::common::RW>
922    {
923        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri13Reg_SPEC,crate::common::RW>::from_register(self,0)
924    }
925
926    #[doc = "Refer to COEX_PRI1_REG."]
927    #[inline(always)]
928    pub fn coex_pri_pti(
929        self,
930    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri13Reg_SPEC, crate::common::RW>
931    {
932        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri13Reg_SPEC,crate::common::RW>::from_register(self,0)
933    }
934}
935impl ::core::default::Default for CoexPri13Reg {
936    #[inline(always)]
937    fn default() -> CoexPri13Reg {
938        <crate::RegValueT<CoexPri13Reg_SPEC> as RegisterValue<_>>::new(0)
939    }
940}
941
942#[doc(hidden)]
943#[derive(Copy, Clone, Eq, PartialEq)]
944pub struct CoexPri14Reg_SPEC;
945impl crate::sealed::RegSpec for CoexPri14Reg_SPEC {
946    type DataType = u16;
947}
948
949#[doc = "COEX Priority Register"]
950pub type CoexPri14Reg = crate::RegValueT<CoexPri14Reg_SPEC>;
951
952impl CoexPri14Reg {
953    #[doc = "Refer to COEX_PRI1_REG."]
954    #[inline(always)]
955    pub fn coex_pri_mac(
956        self,
957    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri14Reg_SPEC, crate::common::RW>
958    {
959        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri14Reg_SPEC,crate::common::RW>::from_register(self,0)
960    }
961
962    #[doc = "Refer to COEX_PRI1_REG."]
963    #[inline(always)]
964    pub fn coex_pri_pti(
965        self,
966    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri14Reg_SPEC, crate::common::RW>
967    {
968        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri14Reg_SPEC,crate::common::RW>::from_register(self,0)
969    }
970}
971impl ::core::default::Default for CoexPri14Reg {
972    #[inline(always)]
973    fn default() -> CoexPri14Reg {
974        <crate::RegValueT<CoexPri14Reg_SPEC> as RegisterValue<_>>::new(0)
975    }
976}
977
978#[doc(hidden)]
979#[derive(Copy, Clone, Eq, PartialEq)]
980pub struct CoexPri15Reg_SPEC;
981impl crate::sealed::RegSpec for CoexPri15Reg_SPEC {
982    type DataType = u16;
983}
984
985#[doc = "COEX Priority Register"]
986pub type CoexPri15Reg = crate::RegValueT<CoexPri15Reg_SPEC>;
987
988impl CoexPri15Reg {
989    #[doc = "Refer to COEX_PRI1_REG."]
990    #[inline(always)]
991    pub fn coex_pri_mac(
992        self,
993    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri15Reg_SPEC, crate::common::RW>
994    {
995        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri15Reg_SPEC,crate::common::RW>::from_register(self,0)
996    }
997
998    #[doc = "Refer to COEX_PRI1_REG."]
999    #[inline(always)]
1000    pub fn coex_pri_pti(
1001        self,
1002    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri15Reg_SPEC, crate::common::RW>
1003    {
1004        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri15Reg_SPEC,crate::common::RW>::from_register(self,0)
1005    }
1006}
1007impl ::core::default::Default for CoexPri15Reg {
1008    #[inline(always)]
1009    fn default() -> CoexPri15Reg {
1010        <crate::RegValueT<CoexPri15Reg_SPEC> as RegisterValue<_>>::new(0)
1011    }
1012}
1013
1014#[doc(hidden)]
1015#[derive(Copy, Clone, Eq, PartialEq)]
1016pub struct CoexPri16Reg_SPEC;
1017impl crate::sealed::RegSpec for CoexPri16Reg_SPEC {
1018    type DataType = u16;
1019}
1020
1021#[doc = "COEX Priority Register"]
1022pub type CoexPri16Reg = crate::RegValueT<CoexPri16Reg_SPEC>;
1023
1024impl CoexPri16Reg {
1025    #[doc = "Refer to COEX_PRI1_REG."]
1026    #[inline(always)]
1027    pub fn coex_pri_mac(
1028        self,
1029    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri16Reg_SPEC, crate::common::RW>
1030    {
1031        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri16Reg_SPEC,crate::common::RW>::from_register(self,0)
1032    }
1033
1034    #[doc = "Refer to COEX_PRI1_REG."]
1035    #[inline(always)]
1036    pub fn coex_pri_pti(
1037        self,
1038    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri16Reg_SPEC, crate::common::RW>
1039    {
1040        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri16Reg_SPEC,crate::common::RW>::from_register(self,0)
1041    }
1042}
1043impl ::core::default::Default for CoexPri16Reg {
1044    #[inline(always)]
1045    fn default() -> CoexPri16Reg {
1046        <crate::RegValueT<CoexPri16Reg_SPEC> as RegisterValue<_>>::new(0)
1047    }
1048}
1049
1050#[doc(hidden)]
1051#[derive(Copy, Clone, Eq, PartialEq)]
1052pub struct CoexPri17Reg_SPEC;
1053impl crate::sealed::RegSpec for CoexPri17Reg_SPEC {
1054    type DataType = u16;
1055}
1056
1057#[doc = "COEX Priority Register"]
1058pub type CoexPri17Reg = crate::RegValueT<CoexPri17Reg_SPEC>;
1059
1060impl CoexPri17Reg {
1061    #[doc = "Refer to COEX_PRI1_REG."]
1062    #[inline(always)]
1063    pub fn coex_pri_mac(
1064        self,
1065    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri17Reg_SPEC, crate::common::RW>
1066    {
1067        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri17Reg_SPEC,crate::common::RW>::from_register(self,0)
1068    }
1069
1070    #[doc = "Refer to COEX_PRI1_REG."]
1071    #[inline(always)]
1072    pub fn coex_pri_pti(
1073        self,
1074    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri17Reg_SPEC, crate::common::RW>
1075    {
1076        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri17Reg_SPEC,crate::common::RW>::from_register(self,0)
1077    }
1078}
1079impl ::core::default::Default for CoexPri17Reg {
1080    #[inline(always)]
1081    fn default() -> CoexPri17Reg {
1082        <crate::RegValueT<CoexPri17Reg_SPEC> as RegisterValue<_>>::new(0)
1083    }
1084}
1085
1086#[doc(hidden)]
1087#[derive(Copy, Clone, Eq, PartialEq)]
1088pub struct CoexPri1Reg_SPEC;
1089impl crate::sealed::RegSpec for CoexPri1Reg_SPEC {
1090    type DataType = u16;
1091}
1092
1093#[doc = "COEX Priority Register"]
1094pub type CoexPri1Reg = crate::RegValueT<CoexPri1Reg_SPEC>;
1095
1096impl CoexPri1Reg {
1097    #[doc = "Specifies the MAC that has been assigned with the specific priority level. The MAC encoding follows the COEX_DECISION bitfield encoding."]
1098    #[inline(always)]
1099    pub fn coex_pri_mac(
1100        self,
1101    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri1Reg_SPEC, crate::common::RW>
1102    {
1103        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri1Reg_SPEC,crate::common::RW>::from_register(self,0)
1104    }
1105
1106    #[doc = "The priority level specified by this register will be applied to the packets coming from the MAC specified by the COEX_PRI_MAC bitfield and characterized with the PTI value specified by the COEX_PRI_PTI bitfield."]
1107    #[inline(always)]
1108    pub fn coex_pri_pti(
1109        self,
1110    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri1Reg_SPEC, crate::common::RW>
1111    {
1112        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri1Reg_SPEC,crate::common::RW>::from_register(self,0)
1113    }
1114}
1115impl ::core::default::Default for CoexPri1Reg {
1116    #[inline(always)]
1117    fn default() -> CoexPri1Reg {
1118        <crate::RegValueT<CoexPri1Reg_SPEC> as RegisterValue<_>>::new(24)
1119    }
1120}
1121
1122#[doc(hidden)]
1123#[derive(Copy, Clone, Eq, PartialEq)]
1124pub struct CoexPri2Reg_SPEC;
1125impl crate::sealed::RegSpec for CoexPri2Reg_SPEC {
1126    type DataType = u16;
1127}
1128
1129#[doc = "COEX Priority Register"]
1130pub type CoexPri2Reg = crate::RegValueT<CoexPri2Reg_SPEC>;
1131
1132impl CoexPri2Reg {
1133    #[doc = "Refer to COEX_PRI1_REG."]
1134    #[inline(always)]
1135    pub fn coex_pri_mac(
1136        self,
1137    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri2Reg_SPEC, crate::common::RW>
1138    {
1139        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri2Reg_SPEC,crate::common::RW>::from_register(self,0)
1140    }
1141
1142    #[doc = "Refer to COEX_PRI1_REG."]
1143    #[inline(always)]
1144    pub fn coex_pri_pti(
1145        self,
1146    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri2Reg_SPEC, crate::common::RW>
1147    {
1148        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri2Reg_SPEC,crate::common::RW>::from_register(self,0)
1149    }
1150}
1151impl ::core::default::Default for CoexPri2Reg {
1152    #[inline(always)]
1153    fn default() -> CoexPri2Reg {
1154        <crate::RegValueT<CoexPri2Reg_SPEC> as RegisterValue<_>>::new(8)
1155    }
1156}
1157
1158#[doc(hidden)]
1159#[derive(Copy, Clone, Eq, PartialEq)]
1160pub struct CoexPri3Reg_SPEC;
1161impl crate::sealed::RegSpec for CoexPri3Reg_SPEC {
1162    type DataType = u16;
1163}
1164
1165#[doc = "COEX Priority Register"]
1166pub type CoexPri3Reg = crate::RegValueT<CoexPri3Reg_SPEC>;
1167
1168impl CoexPri3Reg {
1169    #[doc = "Refer to COEX_PRI1_REG."]
1170    #[inline(always)]
1171    pub fn coex_pri_mac(
1172        self,
1173    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri3Reg_SPEC, crate::common::RW>
1174    {
1175        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri3Reg_SPEC,crate::common::RW>::from_register(self,0)
1176    }
1177
1178    #[doc = "Refer to COEX_PRI1_REG."]
1179    #[inline(always)]
1180    pub fn coex_pri_pti(
1181        self,
1182    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri3Reg_SPEC, crate::common::RW>
1183    {
1184        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri3Reg_SPEC,crate::common::RW>::from_register(self,0)
1185    }
1186}
1187impl ::core::default::Default for CoexPri3Reg {
1188    #[inline(always)]
1189    fn default() -> CoexPri3Reg {
1190        <crate::RegValueT<CoexPri3Reg_SPEC> as RegisterValue<_>>::new(16)
1191    }
1192}
1193
1194#[doc(hidden)]
1195#[derive(Copy, Clone, Eq, PartialEq)]
1196pub struct CoexPri4Reg_SPEC;
1197impl crate::sealed::RegSpec for CoexPri4Reg_SPEC {
1198    type DataType = u16;
1199}
1200
1201#[doc = "COEX Priority Register"]
1202pub type CoexPri4Reg = crate::RegValueT<CoexPri4Reg_SPEC>;
1203
1204impl CoexPri4Reg {
1205    #[doc = "Refer to COEX_PRI1_REG."]
1206    #[inline(always)]
1207    pub fn coex_pri_mac(
1208        self,
1209    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri4Reg_SPEC, crate::common::RW>
1210    {
1211        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri4Reg_SPEC,crate::common::RW>::from_register(self,0)
1212    }
1213
1214    #[doc = "Refer to COEX_PRI1_REG."]
1215    #[inline(always)]
1216    pub fn coex_pri_pti(
1217        self,
1218    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri4Reg_SPEC, crate::common::RW>
1219    {
1220        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri4Reg_SPEC,crate::common::RW>::from_register(self,0)
1221    }
1222}
1223impl ::core::default::Default for CoexPri4Reg {
1224    #[inline(always)]
1225    fn default() -> CoexPri4Reg {
1226        <crate::RegValueT<CoexPri4Reg_SPEC> as RegisterValue<_>>::new(0)
1227    }
1228}
1229
1230#[doc(hidden)]
1231#[derive(Copy, Clone, Eq, PartialEq)]
1232pub struct CoexPri5Reg_SPEC;
1233impl crate::sealed::RegSpec for CoexPri5Reg_SPEC {
1234    type DataType = u16;
1235}
1236
1237#[doc = "COEX Priority Register"]
1238pub type CoexPri5Reg = crate::RegValueT<CoexPri5Reg_SPEC>;
1239
1240impl CoexPri5Reg {
1241    #[doc = "Refer to COEX_PRI1_REG."]
1242    #[inline(always)]
1243    pub fn coex_pri_mac(
1244        self,
1245    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri5Reg_SPEC, crate::common::RW>
1246    {
1247        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri5Reg_SPEC,crate::common::RW>::from_register(self,0)
1248    }
1249
1250    #[doc = "Refer to COEX_PRI1_REG."]
1251    #[inline(always)]
1252    pub fn coex_pri_pti(
1253        self,
1254    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri5Reg_SPEC, crate::common::RW>
1255    {
1256        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri5Reg_SPEC,crate::common::RW>::from_register(self,0)
1257    }
1258}
1259impl ::core::default::Default for CoexPri5Reg {
1260    #[inline(always)]
1261    fn default() -> CoexPri5Reg {
1262        <crate::RegValueT<CoexPri5Reg_SPEC> as RegisterValue<_>>::new(0)
1263    }
1264}
1265
1266#[doc(hidden)]
1267#[derive(Copy, Clone, Eq, PartialEq)]
1268pub struct CoexPri6Reg_SPEC;
1269impl crate::sealed::RegSpec for CoexPri6Reg_SPEC {
1270    type DataType = u16;
1271}
1272
1273#[doc = "COEX Priority Register"]
1274pub type CoexPri6Reg = crate::RegValueT<CoexPri6Reg_SPEC>;
1275
1276impl CoexPri6Reg {
1277    #[doc = "Refer to COEX_PRI1_REG."]
1278    #[inline(always)]
1279    pub fn coex_pri_mac(
1280        self,
1281    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri6Reg_SPEC, crate::common::RW>
1282    {
1283        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri6Reg_SPEC,crate::common::RW>::from_register(self,0)
1284    }
1285
1286    #[doc = "Refer to COEX_PRI1_REG."]
1287    #[inline(always)]
1288    pub fn coex_pri_pti(
1289        self,
1290    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri6Reg_SPEC, crate::common::RW>
1291    {
1292        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri6Reg_SPEC,crate::common::RW>::from_register(self,0)
1293    }
1294}
1295impl ::core::default::Default for CoexPri6Reg {
1296    #[inline(always)]
1297    fn default() -> CoexPri6Reg {
1298        <crate::RegValueT<CoexPri6Reg_SPEC> as RegisterValue<_>>::new(0)
1299    }
1300}
1301
1302#[doc(hidden)]
1303#[derive(Copy, Clone, Eq, PartialEq)]
1304pub struct CoexPri7Reg_SPEC;
1305impl crate::sealed::RegSpec for CoexPri7Reg_SPEC {
1306    type DataType = u16;
1307}
1308
1309#[doc = "COEX Priority Register"]
1310pub type CoexPri7Reg = crate::RegValueT<CoexPri7Reg_SPEC>;
1311
1312impl CoexPri7Reg {
1313    #[doc = "Refer to COEX_PRI1_REG."]
1314    #[inline(always)]
1315    pub fn coex_pri_mac(
1316        self,
1317    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri7Reg_SPEC, crate::common::RW>
1318    {
1319        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri7Reg_SPEC,crate::common::RW>::from_register(self,0)
1320    }
1321
1322    #[doc = "Refer to COEX_PRI1_REG."]
1323    #[inline(always)]
1324    pub fn coex_pri_pti(
1325        self,
1326    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri7Reg_SPEC, crate::common::RW>
1327    {
1328        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri7Reg_SPEC,crate::common::RW>::from_register(self,0)
1329    }
1330}
1331impl ::core::default::Default for CoexPri7Reg {
1332    #[inline(always)]
1333    fn default() -> CoexPri7Reg {
1334        <crate::RegValueT<CoexPri7Reg_SPEC> as RegisterValue<_>>::new(0)
1335    }
1336}
1337
1338#[doc(hidden)]
1339#[derive(Copy, Clone, Eq, PartialEq)]
1340pub struct CoexPri8Reg_SPEC;
1341impl crate::sealed::RegSpec for CoexPri8Reg_SPEC {
1342    type DataType = u16;
1343}
1344
1345#[doc = "COEX Priority Register"]
1346pub type CoexPri8Reg = crate::RegValueT<CoexPri8Reg_SPEC>;
1347
1348impl CoexPri8Reg {
1349    #[doc = "Refer to COEX_PRI1_REG."]
1350    #[inline(always)]
1351    pub fn coex_pri_mac(
1352        self,
1353    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri8Reg_SPEC, crate::common::RW>
1354    {
1355        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri8Reg_SPEC,crate::common::RW>::from_register(self,0)
1356    }
1357
1358    #[doc = "Refer to COEX_PRI1_REG."]
1359    #[inline(always)]
1360    pub fn coex_pri_pti(
1361        self,
1362    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri8Reg_SPEC, crate::common::RW>
1363    {
1364        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri8Reg_SPEC,crate::common::RW>::from_register(self,0)
1365    }
1366}
1367impl ::core::default::Default for CoexPri8Reg {
1368    #[inline(always)]
1369    fn default() -> CoexPri8Reg {
1370        <crate::RegValueT<CoexPri8Reg_SPEC> as RegisterValue<_>>::new(0)
1371    }
1372}
1373
1374#[doc(hidden)]
1375#[derive(Copy, Clone, Eq, PartialEq)]
1376pub struct CoexPri9Reg_SPEC;
1377impl crate::sealed::RegSpec for CoexPri9Reg_SPEC {
1378    type DataType = u16;
1379}
1380
1381#[doc = "COEX Priority Register"]
1382pub type CoexPri9Reg = crate::RegValueT<CoexPri9Reg_SPEC>;
1383
1384impl CoexPri9Reg {
1385    #[doc = "Refer to COEX_PRI1_REG."]
1386    #[inline(always)]
1387    pub fn coex_pri_mac(
1388        self,
1389    ) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, u8, CoexPri9Reg_SPEC, crate::common::RW>
1390    {
1391        crate::common::RegisterField::<3,0x3,1,0,u8,u8,CoexPri9Reg_SPEC,crate::common::RW>::from_register(self,0)
1392    }
1393
1394    #[doc = "Refer to COEX_PRI1_REG."]
1395    #[inline(always)]
1396    pub fn coex_pri_pti(
1397        self,
1398    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, CoexPri9Reg_SPEC, crate::common::RW>
1399    {
1400        crate::common::RegisterField::<0,0x7,1,0,u8,u8,CoexPri9Reg_SPEC,crate::common::RW>::from_register(self,0)
1401    }
1402}
1403impl ::core::default::Default for CoexPri9Reg {
1404    #[inline(always)]
1405    fn default() -> CoexPri9Reg {
1406        <crate::RegValueT<CoexPri9Reg_SPEC> as RegisterValue<_>>::new(0)
1407    }
1408}
1409
1410#[doc(hidden)]
1411#[derive(Copy, Clone, Eq, PartialEq)]
1412pub struct CoexStatReg_SPEC;
1413impl crate::sealed::RegSpec for CoexStatReg_SPEC {
1414    type DataType = u16;
1415}
1416
1417#[doc = "COEX Status Register"]
1418pub type CoexStatReg = crate::RegValueT<CoexStatReg_SPEC>;
1419
1420impl CoexStatReg {
1421    #[doc = "This signal is constantly \"1\" on FTDF-only chips.\nIf set to \"1\" then all BLE requests are ignored by masking immediately the request signal from the BLE.\nIn more detail, the internal signal \"ble_active\" is the logical AND of this bitfield and the \"ble.event_in_process\"."]
1422    #[inline(always)]
1423    pub fn ignore_ble_stat(
1424        self,
1425    ) -> crate::common::RegisterFieldBool<15, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1426        crate::common::RegisterFieldBool::<15,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1427    }
1428
1429    #[doc = "This signal is constantly \"1\" on BLE-only chips.\nIf set to \"1\" then all FTDF requests are ignored by masking immediately the request signal from the FTDF.\nIn more detail, the internal signal \"ftdf_active\" is the logical AND of this bitfield and the \"ftdf.phy_en\"."]
1430    #[inline(always)]
1431    pub fn ignore_ftdf_stat(
1432        self,
1433    ) -> crate::common::RegisterFieldBool<14, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1434        crate::common::RegisterFieldBool::<14,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1435    }
1436
1437    #[doc = "If set to \"1\" then all EXT requests are ignored by masking immediately the request signal from the external MAC.\nIn more detail, the internal signal \"ext_active\" is the logical AND of this bitfield and the \"ext_act\"."]
1438    #[inline(always)]
1439    pub fn ignore_ext_stat(
1440        self,
1441    ) -> crate::common::RegisterFieldBool<13, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1442        crate::common::RegisterFieldBool::<13,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1443    }
1444
1445    #[doc = "Current state of RADIO_BUSY signal generated from RFCU, which is the logical OR among all Radio DCFs.\nNote that the arbiter will process this value with one COEX clock cycle delay."]
1446    #[inline(always)]
1447    pub fn coex_radio_busy(
1448        self,
1449    ) -> crate::common::RegisterFieldBool<12, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1450        crate::common::RegisterFieldBool::<12,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1451    }
1452
1453    #[doc = "Current state of the pin."]
1454    #[inline(always)]
1455    pub fn ext_act1(
1456        self,
1457    ) -> crate::common::RegisterFieldBool<11, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1458        crate::common::RegisterFieldBool::<11,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1459    }
1460
1461    #[doc = "Current state of the pin."]
1462    #[inline(always)]
1463    pub fn ext_act0(
1464        self,
1465    ) -> crate::common::RegisterFieldBool<10, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1466        crate::common::RegisterFieldBool::<10,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1467    }
1468
1469    #[doc = "Current state of the pin."]
1470    #[inline(always)]
1471    pub fn smart_pri(
1472        self,
1473    ) -> crate::common::RegisterFieldBool<9, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1474        crate::common::RegisterFieldBool::<9,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1475    }
1476
1477    #[doc = "Current state of the pin."]
1478    #[inline(always)]
1479    pub fn smart_act(
1480        self,
1481    ) -> crate::common::RegisterFieldBool<8, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1482        crate::common::RegisterFieldBool::<8,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1483    }
1484
1485    #[doc = "Provides the value of the \"CLOSING\" substate."]
1486    #[inline(always)]
1487    pub fn coex_decision_closing(
1488        self,
1489    ) -> crate::common::RegisterFieldBool<7, 1, 0, CoexStatReg_SPEC, crate::common::R> {
1490        crate::common::RegisterFieldBool::<7,1,0,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1491    }
1492
1493    #[doc = "Decision values:\n0: Decision is NONE.\n1: Decision is BLE.\n2: Decision is FTDF.\n3: Decision is EXT.\nNote: If \"0\" (i.e. decision is NONE) then no MAC will have access to the on-chip radio. As a consequence, the SMART_PRI signal will stay low, since no on-chip (SMART) MAC will have priority.\nNote: The decision NONE will be held as long as there is no \"*_active\" internal signal from BLE, FTDF or EXT. Also, if in programming state and the last transaction has been finished, then the decision will be held also to NONE.\nNote: While in programming mode, the COEX_PRIx_REGs are considered as invalid, which means that no new decision can be taken."]
1494    #[inline(always)]
1495    pub fn coex_decision(
1496        self,
1497    ) -> crate::common::RegisterField<5, 0x3, 1, 0, u8, u8, CoexStatReg_SPEC, crate::common::R>
1498    {
1499        crate::common::RegisterField::<5,0x3,1,0,u8,u8,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1500    }
1501
1502    #[doc = "Provides the number \"x\" of the COEX_PRIx_REG that win the last arbitration cycle. If \"0\" then it is a null pointer, pointing to no COEX_PRIx_REG."]
1503    #[inline(always)]
1504    pub fn coex_decision_ptr(
1505        self,
1506    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, CoexStatReg_SPEC, crate::common::R>
1507    {
1508        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,CoexStatReg_SPEC,crate::common::R>::from_register(self,0)
1509    }
1510}
1511impl ::core::default::Default for CoexStatReg {
1512    #[inline(always)]
1513    fn default() -> CoexStatReg {
1514        <crate::RegValueT<CoexStatReg_SPEC> as RegisterValue<_>>::new(0)
1515    }
1516}