1#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"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}