ra6e1_pac/
pfs.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.20.00, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:50:30 +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"Control Register"]
28unsafe impl ::core::marker::Send for super::Pfs {}
29unsafe impl ::core::marker::Sync for super::Pfs {}
30impl super::Pfs {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Port 00%s Pin Function Select Register"]
38    #[inline(always)]
39    pub const fn p00pfs(
40        &self,
41    ) -> &'static crate::common::ClusterRegisterArray<
42        crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW>,
43        8,
44        0x4,
45    > {
46        unsafe {
47            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x0usize))
48        }
49    }
50    #[inline(always)]
51    pub const fn p000pfs(
52        &self,
53    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0x0usize),
57            )
58        }
59    }
60    #[inline(always)]
61    pub const fn p001pfs(
62        &self,
63    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
64        unsafe {
65            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
66                self._svd2pac_as_ptr().add(0x4usize),
67            )
68        }
69    }
70    #[inline(always)]
71    pub const fn p002pfs(
72        &self,
73    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
74        unsafe {
75            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
76                self._svd2pac_as_ptr().add(0x8usize),
77            )
78        }
79    }
80    #[inline(always)]
81    pub const fn p003pfs(
82        &self,
83    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
84        unsafe {
85            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
86                self._svd2pac_as_ptr().add(0xcusize),
87            )
88        }
89    }
90    #[inline(always)]
91    pub const fn p004pfs(
92        &self,
93    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
94        unsafe {
95            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
96                self._svd2pac_as_ptr().add(0x10usize),
97            )
98        }
99    }
100    #[inline(always)]
101    pub const fn p005pfs(
102        &self,
103    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
104        unsafe {
105            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
106                self._svd2pac_as_ptr().add(0x14usize),
107            )
108        }
109    }
110    #[inline(always)]
111    pub const fn p006pfs(
112        &self,
113    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(0x18usize),
117            )
118        }
119    }
120    #[inline(always)]
121    pub const fn p007pfs(
122        &self,
123    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
124        unsafe {
125            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
126                self._svd2pac_as_ptr().add(0x1cusize),
127            )
128        }
129    }
130
131    #[doc = "Port 00%s Pin Function Select Register"]
132    #[inline(always)]
133    pub const fn p00pfs_ha(
134        &self,
135    ) -> &'static crate::common::ClusterRegisterArray<
136        crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW>,
137        8,
138        0x4,
139    > {
140        unsafe {
141            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2usize))
142        }
143    }
144    #[inline(always)]
145    pub const fn p000pfs_ha(
146        &self,
147    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
148        unsafe {
149            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
150                self._svd2pac_as_ptr().add(0x2usize),
151            )
152        }
153    }
154    #[inline(always)]
155    pub const fn p001pfs_ha(
156        &self,
157    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
158        unsafe {
159            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
160                self._svd2pac_as_ptr().add(0x6usize),
161            )
162        }
163    }
164    #[inline(always)]
165    pub const fn p002pfs_ha(
166        &self,
167    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
168        unsafe {
169            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
170                self._svd2pac_as_ptr().add(0xausize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn p003pfs_ha(
176        &self,
177    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
178        unsafe {
179            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
180                self._svd2pac_as_ptr().add(0xeusize),
181            )
182        }
183    }
184    #[inline(always)]
185    pub const fn p004pfs_ha(
186        &self,
187    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
188        unsafe {
189            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
190                self._svd2pac_as_ptr().add(0x12usize),
191            )
192        }
193    }
194    #[inline(always)]
195    pub const fn p005pfs_ha(
196        &self,
197    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(0x16usize),
201            )
202        }
203    }
204    #[inline(always)]
205    pub const fn p006pfs_ha(
206        &self,
207    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
208        unsafe {
209            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
210                self._svd2pac_as_ptr().add(0x1ausize),
211            )
212        }
213    }
214    #[inline(always)]
215    pub const fn p007pfs_ha(
216        &self,
217    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
218        unsafe {
219            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
220                self._svd2pac_as_ptr().add(0x1eusize),
221            )
222        }
223    }
224
225    #[doc = "Port 00%s Pin Function Select Register"]
226    #[inline(always)]
227    pub const fn p00pfs_by(
228        &self,
229    ) -> &'static crate::common::ClusterRegisterArray<
230        crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW>,
231        8,
232        0x4,
233    > {
234        unsafe {
235            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3usize))
236        }
237    }
238    #[inline(always)]
239    pub const fn p000pfs_by(
240        &self,
241    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
242        unsafe {
243            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
244                self._svd2pac_as_ptr().add(0x3usize),
245            )
246        }
247    }
248    #[inline(always)]
249    pub const fn p001pfs_by(
250        &self,
251    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
252        unsafe {
253            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
254                self._svd2pac_as_ptr().add(0x7usize),
255            )
256        }
257    }
258    #[inline(always)]
259    pub const fn p002pfs_by(
260        &self,
261    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
262        unsafe {
263            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
264                self._svd2pac_as_ptr().add(0xbusize),
265            )
266        }
267    }
268    #[inline(always)]
269    pub const fn p003pfs_by(
270        &self,
271    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
272        unsafe {
273            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
274                self._svd2pac_as_ptr().add(0xfusize),
275            )
276        }
277    }
278    #[inline(always)]
279    pub const fn p004pfs_by(
280        &self,
281    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(0x13usize),
285            )
286        }
287    }
288    #[inline(always)]
289    pub const fn p005pfs_by(
290        &self,
291    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
292        unsafe {
293            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
294                self._svd2pac_as_ptr().add(0x17usize),
295            )
296        }
297    }
298    #[inline(always)]
299    pub const fn p006pfs_by(
300        &self,
301    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
302        unsafe {
303            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
304                self._svd2pac_as_ptr().add(0x1busize),
305            )
306        }
307    }
308    #[inline(always)]
309    pub const fn p007pfs_by(
310        &self,
311    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
312        unsafe {
313            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
314                self._svd2pac_as_ptr().add(0x1fusize),
315            )
316        }
317    }
318
319    #[doc = "Port 008 Pin Function Select Register"]
320    #[inline(always)]
321    pub const fn p008pfs(
322        &self,
323    ) -> &'static crate::common::Reg<self::P008Pfs_SPEC, crate::common::RW> {
324        unsafe {
325            crate::common::Reg::<self::P008Pfs_SPEC, crate::common::RW>::from_ptr(
326                self._svd2pac_as_ptr().add(32usize),
327            )
328        }
329    }
330
331    #[doc = "Port 008 Pin Function Select Register"]
332    #[inline(always)]
333    pub const fn p008pfs_ha(
334        &self,
335    ) -> &'static crate::common::Reg<self::P008PfsHa_SPEC, crate::common::RW> {
336        unsafe {
337            crate::common::Reg::<self::P008PfsHa_SPEC, crate::common::RW>::from_ptr(
338                self._svd2pac_as_ptr().add(34usize),
339            )
340        }
341    }
342
343    #[doc = "Port 008 Pin Function Select Register"]
344    #[inline(always)]
345    pub const fn p008pfs_by(
346        &self,
347    ) -> &'static crate::common::Reg<self::P008PfsBy_SPEC, crate::common::RW> {
348        unsafe {
349            crate::common::Reg::<self::P008PfsBy_SPEC, crate::common::RW>::from_ptr(
350                self._svd2pac_as_ptr().add(35usize),
351            )
352        }
353    }
354
355    #[doc = "Port 0%s Pin Function Select Register"]
356    #[inline(always)]
357    pub const fn p0pfs(
358        &self,
359    ) -> &'static crate::common::ClusterRegisterArray<
360        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
361        2,
362        0x4,
363    > {
364        unsafe {
365            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x38usize))
366        }
367    }
368    #[inline(always)]
369    pub const fn p014pfs(
370        &self,
371    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
372        unsafe {
373            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
374                self._svd2pac_as_ptr().add(0x38usize),
375            )
376        }
377    }
378    #[inline(always)]
379    pub const fn p015pfs(
380        &self,
381    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
382        unsafe {
383            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
384                self._svd2pac_as_ptr().add(0x3cusize),
385            )
386        }
387    }
388
389    #[doc = "Port 0%s Pin Function Select Register"]
390    #[inline(always)]
391    pub const fn p0pfs_ha(
392        &self,
393    ) -> &'static crate::common::ClusterRegisterArray<
394        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
395        2,
396        0x4,
397    > {
398        unsafe {
399            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3ausize))
400        }
401    }
402    #[inline(always)]
403    pub const fn p014pfs_ha(
404        &self,
405    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
406        unsafe {
407            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
408                self._svd2pac_as_ptr().add(0x3ausize),
409            )
410        }
411    }
412    #[inline(always)]
413    pub const fn p015pfs_ha(
414        &self,
415    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
416        unsafe {
417            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
418                self._svd2pac_as_ptr().add(0x3eusize),
419            )
420        }
421    }
422
423    #[doc = "Port 0%s Pin Function Select Register"]
424    #[inline(always)]
425    pub const fn p0pfs_by(
426        &self,
427    ) -> &'static crate::common::ClusterRegisterArray<
428        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
429        2,
430        0x4,
431    > {
432        unsafe {
433            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3busize))
434        }
435    }
436    #[inline(always)]
437    pub const fn p014pfs_by(
438        &self,
439    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
440        unsafe {
441            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
442                self._svd2pac_as_ptr().add(0x3busize),
443            )
444        }
445    }
446    #[inline(always)]
447    pub const fn p015pfs_by(
448        &self,
449    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
450        unsafe {
451            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
452                self._svd2pac_as_ptr().add(0x3fusize),
453            )
454        }
455    }
456
457    #[doc = "Port 10%s Pin Function Select Register"]
458    #[inline(always)]
459    pub const fn p10pfs(
460        &self,
461    ) -> &'static crate::common::ClusterRegisterArray<
462        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
463        10,
464        0x4,
465    > {
466        unsafe {
467            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
468        }
469    }
470    #[inline(always)]
471    pub const fn p100pfs(
472        &self,
473    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
474        unsafe {
475            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
476                self._svd2pac_as_ptr().add(0x40usize),
477            )
478        }
479    }
480    #[inline(always)]
481    pub const fn p101pfs(
482        &self,
483    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
484        unsafe {
485            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
486                self._svd2pac_as_ptr().add(0x44usize),
487            )
488        }
489    }
490    #[inline(always)]
491    pub const fn p102pfs(
492        &self,
493    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
494        unsafe {
495            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
496                self._svd2pac_as_ptr().add(0x48usize),
497            )
498        }
499    }
500    #[inline(always)]
501    pub const fn p103pfs(
502        &self,
503    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
504        unsafe {
505            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
506                self._svd2pac_as_ptr().add(0x4cusize),
507            )
508        }
509    }
510    #[inline(always)]
511    pub const fn p104pfs(
512        &self,
513    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
514        unsafe {
515            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
516                self._svd2pac_as_ptr().add(0x50usize),
517            )
518        }
519    }
520    #[inline(always)]
521    pub const fn p105pfs(
522        &self,
523    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
524        unsafe {
525            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
526                self._svd2pac_as_ptr().add(0x54usize),
527            )
528        }
529    }
530    #[inline(always)]
531    pub const fn p106pfs(
532        &self,
533    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
534        unsafe {
535            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
536                self._svd2pac_as_ptr().add(0x58usize),
537            )
538        }
539    }
540    #[inline(always)]
541    pub const fn p107pfs(
542        &self,
543    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
544        unsafe {
545            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
546                self._svd2pac_as_ptr().add(0x5cusize),
547            )
548        }
549    }
550    #[inline(always)]
551    pub const fn p108pfs(
552        &self,
553    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
554        unsafe {
555            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
556                self._svd2pac_as_ptr().add(0x60usize),
557            )
558        }
559    }
560    #[inline(always)]
561    pub const fn p109pfs(
562        &self,
563    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
564        unsafe {
565            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
566                self._svd2pac_as_ptr().add(0x64usize),
567            )
568        }
569    }
570
571    #[doc = "Port 10%s Pin Function Select Register"]
572    #[inline(always)]
573    pub const fn p10pfs_ha(
574        &self,
575    ) -> &'static crate::common::ClusterRegisterArray<
576        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
577        10,
578        0x4,
579    > {
580        unsafe {
581            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
582        }
583    }
584    #[inline(always)]
585    pub const fn p100pfs_ha(
586        &self,
587    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
588        unsafe {
589            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
590                self._svd2pac_as_ptr().add(0x42usize),
591            )
592        }
593    }
594    #[inline(always)]
595    pub const fn p101pfs_ha(
596        &self,
597    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
598        unsafe {
599            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
600                self._svd2pac_as_ptr().add(0x46usize),
601            )
602        }
603    }
604    #[inline(always)]
605    pub const fn p102pfs_ha(
606        &self,
607    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
608        unsafe {
609            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
610                self._svd2pac_as_ptr().add(0x4ausize),
611            )
612        }
613    }
614    #[inline(always)]
615    pub const fn p103pfs_ha(
616        &self,
617    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
618        unsafe {
619            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
620                self._svd2pac_as_ptr().add(0x4eusize),
621            )
622        }
623    }
624    #[inline(always)]
625    pub const fn p104pfs_ha(
626        &self,
627    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
628        unsafe {
629            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
630                self._svd2pac_as_ptr().add(0x52usize),
631            )
632        }
633    }
634    #[inline(always)]
635    pub const fn p105pfs_ha(
636        &self,
637    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
638        unsafe {
639            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
640                self._svd2pac_as_ptr().add(0x56usize),
641            )
642        }
643    }
644    #[inline(always)]
645    pub const fn p106pfs_ha(
646        &self,
647    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
648        unsafe {
649            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
650                self._svd2pac_as_ptr().add(0x5ausize),
651            )
652        }
653    }
654    #[inline(always)]
655    pub const fn p107pfs_ha(
656        &self,
657    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
658        unsafe {
659            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
660                self._svd2pac_as_ptr().add(0x5eusize),
661            )
662        }
663    }
664    #[inline(always)]
665    pub const fn p108pfs_ha(
666        &self,
667    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
668        unsafe {
669            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
670                self._svd2pac_as_ptr().add(0x62usize),
671            )
672        }
673    }
674    #[inline(always)]
675    pub const fn p109pfs_ha(
676        &self,
677    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
678        unsafe {
679            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
680                self._svd2pac_as_ptr().add(0x66usize),
681            )
682        }
683    }
684
685    #[doc = "Port 10%s Pin Function Select Register"]
686    #[inline(always)]
687    pub const fn p10pfs_by(
688        &self,
689    ) -> &'static crate::common::ClusterRegisterArray<
690        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
691        10,
692        0x4,
693    > {
694        unsafe {
695            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
696        }
697    }
698    #[inline(always)]
699    pub const fn p100pfs_by(
700        &self,
701    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
702        unsafe {
703            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
704                self._svd2pac_as_ptr().add(0x43usize),
705            )
706        }
707    }
708    #[inline(always)]
709    pub const fn p101pfs_by(
710        &self,
711    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
712        unsafe {
713            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
714                self._svd2pac_as_ptr().add(0x47usize),
715            )
716        }
717    }
718    #[inline(always)]
719    pub const fn p102pfs_by(
720        &self,
721    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
722        unsafe {
723            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
724                self._svd2pac_as_ptr().add(0x4busize),
725            )
726        }
727    }
728    #[inline(always)]
729    pub const fn p103pfs_by(
730        &self,
731    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
732        unsafe {
733            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
734                self._svd2pac_as_ptr().add(0x4fusize),
735            )
736        }
737    }
738    #[inline(always)]
739    pub const fn p104pfs_by(
740        &self,
741    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
742        unsafe {
743            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
744                self._svd2pac_as_ptr().add(0x53usize),
745            )
746        }
747    }
748    #[inline(always)]
749    pub const fn p105pfs_by(
750        &self,
751    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
752        unsafe {
753            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
754                self._svd2pac_as_ptr().add(0x57usize),
755            )
756        }
757    }
758    #[inline(always)]
759    pub const fn p106pfs_by(
760        &self,
761    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
762        unsafe {
763            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
764                self._svd2pac_as_ptr().add(0x5busize),
765            )
766        }
767    }
768    #[inline(always)]
769    pub const fn p107pfs_by(
770        &self,
771    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
772        unsafe {
773            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
774                self._svd2pac_as_ptr().add(0x5fusize),
775            )
776        }
777    }
778    #[inline(always)]
779    pub const fn p108pfs_by(
780        &self,
781    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
782        unsafe {
783            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
784                self._svd2pac_as_ptr().add(0x63usize),
785            )
786        }
787    }
788    #[inline(always)]
789    pub const fn p109pfs_by(
790        &self,
791    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
792        unsafe {
793            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
794                self._svd2pac_as_ptr().add(0x67usize),
795            )
796        }
797    }
798
799    #[doc = "Port 1%s Pin Function Select Register"]
800    #[inline(always)]
801    pub const fn p1pfs(
802        &self,
803    ) -> &'static crate::common::ClusterRegisterArray<
804        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
805        6,
806        0x4,
807    > {
808        unsafe {
809            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
810        }
811    }
812    #[inline(always)]
813    pub const fn p110pfs(
814        &self,
815    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
816        unsafe {
817            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
818                self._svd2pac_as_ptr().add(0x68usize),
819            )
820        }
821    }
822    #[inline(always)]
823    pub const fn p111pfs(
824        &self,
825    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
826        unsafe {
827            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
828                self._svd2pac_as_ptr().add(0x6cusize),
829            )
830        }
831    }
832    #[inline(always)]
833    pub const fn p112pfs(
834        &self,
835    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
836        unsafe {
837            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
838                self._svd2pac_as_ptr().add(0x70usize),
839            )
840        }
841    }
842    #[inline(always)]
843    pub const fn p113pfs(
844        &self,
845    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
846        unsafe {
847            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
848                self._svd2pac_as_ptr().add(0x74usize),
849            )
850        }
851    }
852    #[inline(always)]
853    pub const fn p114pfs(
854        &self,
855    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
856        unsafe {
857            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
858                self._svd2pac_as_ptr().add(0x78usize),
859            )
860        }
861    }
862    #[inline(always)]
863    pub const fn p115pfs(
864        &self,
865    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
866        unsafe {
867            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
868                self._svd2pac_as_ptr().add(0x7cusize),
869            )
870        }
871    }
872
873    #[doc = "Port 1%s Pin Function Select Register"]
874    #[inline(always)]
875    pub const fn p1pfs_ha(
876        &self,
877    ) -> &'static crate::common::ClusterRegisterArray<
878        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
879        6,
880        0x4,
881    > {
882        unsafe {
883            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
884        }
885    }
886    #[inline(always)]
887    pub const fn p110pfs_ha(
888        &self,
889    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
890        unsafe {
891            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
892                self._svd2pac_as_ptr().add(0x6ausize),
893            )
894        }
895    }
896    #[inline(always)]
897    pub const fn p111pfs_ha(
898        &self,
899    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
900        unsafe {
901            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
902                self._svd2pac_as_ptr().add(0x6eusize),
903            )
904        }
905    }
906    #[inline(always)]
907    pub const fn p112pfs_ha(
908        &self,
909    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
910        unsafe {
911            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
912                self._svd2pac_as_ptr().add(0x72usize),
913            )
914        }
915    }
916    #[inline(always)]
917    pub const fn p113pfs_ha(
918        &self,
919    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
920        unsafe {
921            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
922                self._svd2pac_as_ptr().add(0x76usize),
923            )
924        }
925    }
926    #[inline(always)]
927    pub const fn p114pfs_ha(
928        &self,
929    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
930        unsafe {
931            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
932                self._svd2pac_as_ptr().add(0x7ausize),
933            )
934        }
935    }
936    #[inline(always)]
937    pub const fn p115pfs_ha(
938        &self,
939    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
940        unsafe {
941            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
942                self._svd2pac_as_ptr().add(0x7eusize),
943            )
944        }
945    }
946
947    #[doc = "Port 1%s Pin Function Select Register"]
948    #[inline(always)]
949    pub const fn p1pfs_by(
950        &self,
951    ) -> &'static crate::common::ClusterRegisterArray<
952        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
953        6,
954        0x4,
955    > {
956        unsafe {
957            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
958        }
959    }
960    #[inline(always)]
961    pub const fn p110pfs_by(
962        &self,
963    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
964        unsafe {
965            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
966                self._svd2pac_as_ptr().add(0x6busize),
967            )
968        }
969    }
970    #[inline(always)]
971    pub const fn p111pfs_by(
972        &self,
973    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
974        unsafe {
975            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
976                self._svd2pac_as_ptr().add(0x6fusize),
977            )
978        }
979    }
980    #[inline(always)]
981    pub const fn p112pfs_by(
982        &self,
983    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
984        unsafe {
985            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
986                self._svd2pac_as_ptr().add(0x73usize),
987            )
988        }
989    }
990    #[inline(always)]
991    pub const fn p113pfs_by(
992        &self,
993    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
994        unsafe {
995            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
996                self._svd2pac_as_ptr().add(0x77usize),
997            )
998        }
999    }
1000    #[inline(always)]
1001    pub const fn p114pfs_by(
1002        &self,
1003    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1004        unsafe {
1005            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1006                self._svd2pac_as_ptr().add(0x7busize),
1007            )
1008        }
1009    }
1010    #[inline(always)]
1011    pub const fn p115pfs_by(
1012        &self,
1013    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1014        unsafe {
1015            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1016                self._svd2pac_as_ptr().add(0x7fusize),
1017            )
1018        }
1019    }
1020
1021    #[doc = "Port 200 Pin Function Select Register"]
1022    #[inline(always)]
1023    pub const fn p200pfs(
1024        &self,
1025    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
1026        unsafe {
1027            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
1028                self._svd2pac_as_ptr().add(128usize),
1029            )
1030        }
1031    }
1032
1033    #[doc = "Port 200 Pin Function Select Register"]
1034    #[inline(always)]
1035    pub const fn p200pfs_ha(
1036        &self,
1037    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
1038        unsafe {
1039            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
1040                self._svd2pac_as_ptr().add(130usize),
1041            )
1042        }
1043    }
1044
1045    #[doc = "Port 200 Pin Function Select Register"]
1046    #[inline(always)]
1047    pub const fn p200pfs_by(
1048        &self,
1049    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
1050        unsafe {
1051            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
1052                self._svd2pac_as_ptr().add(131usize),
1053            )
1054        }
1055    }
1056
1057    #[doc = "Port 201 Pin Function Select Register"]
1058    #[inline(always)]
1059    pub const fn p201pfs(
1060        &self,
1061    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
1062        unsafe {
1063            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
1064                self._svd2pac_as_ptr().add(132usize),
1065            )
1066        }
1067    }
1068
1069    #[doc = "Port 201 Pin Function Select Register"]
1070    #[inline(always)]
1071    pub const fn p201pfs_ha(
1072        &self,
1073    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
1074        unsafe {
1075            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
1076                self._svd2pac_as_ptr().add(134usize),
1077            )
1078        }
1079    }
1080
1081    #[doc = "Port 201 Pin Function Select Register"]
1082    #[inline(always)]
1083    pub const fn p201pfs_by(
1084        &self,
1085    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
1086        unsafe {
1087            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
1088                self._svd2pac_as_ptr().add(135usize),
1089            )
1090        }
1091    }
1092
1093    #[doc = "Port 20%s Pin Function Select Register"]
1094    #[inline(always)]
1095    pub const fn p20pfs(
1096        &self,
1097    ) -> &'static crate::common::ClusterRegisterArray<
1098        crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW>,
1099        5,
1100        0x4,
1101    > {
1102        unsafe {
1103            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x94usize))
1104        }
1105    }
1106    #[inline(always)]
1107    pub const fn p205pfs(
1108        &self,
1109    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1110        unsafe {
1111            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1112                self._svd2pac_as_ptr().add(0x94usize),
1113            )
1114        }
1115    }
1116    #[inline(always)]
1117    pub const fn p206pfs(
1118        &self,
1119    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1120        unsafe {
1121            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1122                self._svd2pac_as_ptr().add(0x98usize),
1123            )
1124        }
1125    }
1126    #[inline(always)]
1127    pub const fn p207pfs(
1128        &self,
1129    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1130        unsafe {
1131            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1132                self._svd2pac_as_ptr().add(0x9cusize),
1133            )
1134        }
1135    }
1136    #[inline(always)]
1137    pub const fn p208pfs(
1138        &self,
1139    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1140        unsafe {
1141            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1142                self._svd2pac_as_ptr().add(0xa0usize),
1143            )
1144        }
1145    }
1146    #[inline(always)]
1147    pub const fn p209pfs(
1148        &self,
1149    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1150        unsafe {
1151            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1152                self._svd2pac_as_ptr().add(0xa4usize),
1153            )
1154        }
1155    }
1156
1157    #[doc = "Port 20%s Pin Function Select Register"]
1158    #[inline(always)]
1159    pub const fn p20pfs_ha(
1160        &self,
1161    ) -> &'static crate::common::ClusterRegisterArray<
1162        crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW>,
1163        5,
1164        0x4,
1165    > {
1166        unsafe {
1167            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x96usize))
1168        }
1169    }
1170    #[inline(always)]
1171    pub const fn p205pfs_ha(
1172        &self,
1173    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1174        unsafe {
1175            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1176                self._svd2pac_as_ptr().add(0x96usize),
1177            )
1178        }
1179    }
1180    #[inline(always)]
1181    pub const fn p206pfs_ha(
1182        &self,
1183    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1184        unsafe {
1185            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1186                self._svd2pac_as_ptr().add(0x9ausize),
1187            )
1188        }
1189    }
1190    #[inline(always)]
1191    pub const fn p207pfs_ha(
1192        &self,
1193    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1194        unsafe {
1195            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1196                self._svd2pac_as_ptr().add(0x9eusize),
1197            )
1198        }
1199    }
1200    #[inline(always)]
1201    pub const fn p208pfs_ha(
1202        &self,
1203    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1204        unsafe {
1205            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1206                self._svd2pac_as_ptr().add(0xa2usize),
1207            )
1208        }
1209    }
1210    #[inline(always)]
1211    pub const fn p209pfs_ha(
1212        &self,
1213    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1214        unsafe {
1215            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1216                self._svd2pac_as_ptr().add(0xa6usize),
1217            )
1218        }
1219    }
1220
1221    #[doc = "Port 20%s Pin Function Select Register"]
1222    #[inline(always)]
1223    pub const fn p20pfs_by(
1224        &self,
1225    ) -> &'static crate::common::ClusterRegisterArray<
1226        crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW>,
1227        5,
1228        0x4,
1229    > {
1230        unsafe {
1231            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x97usize))
1232        }
1233    }
1234    #[inline(always)]
1235    pub const fn p205pfs_by(
1236        &self,
1237    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1238        unsafe {
1239            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1240                self._svd2pac_as_ptr().add(0x97usize),
1241            )
1242        }
1243    }
1244    #[inline(always)]
1245    pub const fn p206pfs_by(
1246        &self,
1247    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1248        unsafe {
1249            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1250                self._svd2pac_as_ptr().add(0x9busize),
1251            )
1252        }
1253    }
1254    #[inline(always)]
1255    pub const fn p207pfs_by(
1256        &self,
1257    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1258        unsafe {
1259            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1260                self._svd2pac_as_ptr().add(0x9fusize),
1261            )
1262        }
1263    }
1264    #[inline(always)]
1265    pub const fn p208pfs_by(
1266        &self,
1267    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1268        unsafe {
1269            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1270                self._svd2pac_as_ptr().add(0xa3usize),
1271            )
1272        }
1273    }
1274    #[inline(always)]
1275    pub const fn p209pfs_by(
1276        &self,
1277    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1278        unsafe {
1279            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1280                self._svd2pac_as_ptr().add(0xa7usize),
1281            )
1282        }
1283    }
1284
1285    #[doc = "Port 2%s Pin Function Select Register"]
1286    #[inline(always)]
1287    pub const fn p2pfs(
1288        &self,
1289    ) -> &'static crate::common::ClusterRegisterArray<
1290        crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW>,
1291        5,
1292        0x4,
1293    > {
1294        unsafe {
1295            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xa8usize))
1296        }
1297    }
1298    #[inline(always)]
1299    pub const fn p210pfs(
1300        &self,
1301    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1302        unsafe {
1303            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1304                self._svd2pac_as_ptr().add(0xa8usize),
1305            )
1306        }
1307    }
1308    #[inline(always)]
1309    pub const fn p211pfs(
1310        &self,
1311    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1312        unsafe {
1313            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1314                self._svd2pac_as_ptr().add(0xacusize),
1315            )
1316        }
1317    }
1318    #[inline(always)]
1319    pub const fn p212pfs(
1320        &self,
1321    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1322        unsafe {
1323            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1324                self._svd2pac_as_ptr().add(0xb0usize),
1325            )
1326        }
1327    }
1328    #[inline(always)]
1329    pub const fn p213pfs(
1330        &self,
1331    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1332        unsafe {
1333            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1334                self._svd2pac_as_ptr().add(0xb4usize),
1335            )
1336        }
1337    }
1338    #[inline(always)]
1339    pub const fn p214pfs(
1340        &self,
1341    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1342        unsafe {
1343            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1344                self._svd2pac_as_ptr().add(0xb8usize),
1345            )
1346        }
1347    }
1348
1349    #[doc = "Port 2%s Pin Function Select Register"]
1350    #[inline(always)]
1351    pub const fn p2pfs_ha(
1352        &self,
1353    ) -> &'static crate::common::ClusterRegisterArray<
1354        crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW>,
1355        5,
1356        0x4,
1357    > {
1358        unsafe {
1359            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xaausize))
1360        }
1361    }
1362    #[inline(always)]
1363    pub const fn p210pfs_ha(
1364        &self,
1365    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1366        unsafe {
1367            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1368                self._svd2pac_as_ptr().add(0xaausize),
1369            )
1370        }
1371    }
1372    #[inline(always)]
1373    pub const fn p211pfs_ha(
1374        &self,
1375    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1376        unsafe {
1377            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1378                self._svd2pac_as_ptr().add(0xaeusize),
1379            )
1380        }
1381    }
1382    #[inline(always)]
1383    pub const fn p212pfs_ha(
1384        &self,
1385    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1386        unsafe {
1387            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1388                self._svd2pac_as_ptr().add(0xb2usize),
1389            )
1390        }
1391    }
1392    #[inline(always)]
1393    pub const fn p213pfs_ha(
1394        &self,
1395    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1396        unsafe {
1397            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1398                self._svd2pac_as_ptr().add(0xb6usize),
1399            )
1400        }
1401    }
1402    #[inline(always)]
1403    pub const fn p214pfs_ha(
1404        &self,
1405    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1406        unsafe {
1407            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1408                self._svd2pac_as_ptr().add(0xbausize),
1409            )
1410        }
1411    }
1412
1413    #[doc = "Port 2%s Pin Function Select Register"]
1414    #[inline(always)]
1415    pub const fn p2pfs_by(
1416        &self,
1417    ) -> &'static crate::common::ClusterRegisterArray<
1418        crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW>,
1419        5,
1420        0x4,
1421    > {
1422        unsafe {
1423            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xabusize))
1424        }
1425    }
1426    #[inline(always)]
1427    pub const fn p210pfs_by(
1428        &self,
1429    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1430        unsafe {
1431            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1432                self._svd2pac_as_ptr().add(0xabusize),
1433            )
1434        }
1435    }
1436    #[inline(always)]
1437    pub const fn p211pfs_by(
1438        &self,
1439    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1440        unsafe {
1441            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1442                self._svd2pac_as_ptr().add(0xafusize),
1443            )
1444        }
1445    }
1446    #[inline(always)]
1447    pub const fn p212pfs_by(
1448        &self,
1449    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1450        unsafe {
1451            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1452                self._svd2pac_as_ptr().add(0xb3usize),
1453            )
1454        }
1455    }
1456    #[inline(always)]
1457    pub const fn p213pfs_by(
1458        &self,
1459    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1460        unsafe {
1461            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1462                self._svd2pac_as_ptr().add(0xb7usize),
1463            )
1464        }
1465    }
1466    #[inline(always)]
1467    pub const fn p214pfs_by(
1468        &self,
1469    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1470        unsafe {
1471            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1472                self._svd2pac_as_ptr().add(0xbbusize),
1473            )
1474        }
1475    }
1476
1477    #[doc = "Port 300 Pin Function Select Register"]
1478    #[inline(always)]
1479    pub const fn p300pfs(
1480        &self,
1481    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
1482        unsafe {
1483            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
1484                self._svd2pac_as_ptr().add(192usize),
1485            )
1486        }
1487    }
1488
1489    #[doc = "Port 300 Pin Function Select Register"]
1490    #[inline(always)]
1491    pub const fn p300pfs_ha(
1492        &self,
1493    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
1494        unsafe {
1495            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
1496                self._svd2pac_as_ptr().add(194usize),
1497            )
1498        }
1499    }
1500
1501    #[doc = "Port 300 Pin Function Select Register"]
1502    #[inline(always)]
1503    pub const fn p300pfs_by(
1504        &self,
1505    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
1506        unsafe {
1507            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
1508                self._svd2pac_as_ptr().add(195usize),
1509            )
1510        }
1511    }
1512
1513    #[doc = "Port 30%s Pin Function Select Register"]
1514    #[inline(always)]
1515    pub const fn p30pfs(
1516        &self,
1517    ) -> &'static crate::common::ClusterRegisterArray<
1518        crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW>,
1519        7,
1520        0x4,
1521    > {
1522        unsafe {
1523            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc4usize))
1524        }
1525    }
1526    #[inline(always)]
1527    pub const fn p301pfs(
1528        &self,
1529    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1530        unsafe {
1531            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1532                self._svd2pac_as_ptr().add(0xc4usize),
1533            )
1534        }
1535    }
1536    #[inline(always)]
1537    pub const fn p302pfs(
1538        &self,
1539    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1540        unsafe {
1541            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1542                self._svd2pac_as_ptr().add(0xc8usize),
1543            )
1544        }
1545    }
1546    #[inline(always)]
1547    pub const fn p303pfs(
1548        &self,
1549    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1550        unsafe {
1551            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1552                self._svd2pac_as_ptr().add(0xccusize),
1553            )
1554        }
1555    }
1556    #[inline(always)]
1557    pub const fn p304pfs(
1558        &self,
1559    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1560        unsafe {
1561            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1562                self._svd2pac_as_ptr().add(0xd0usize),
1563            )
1564        }
1565    }
1566    #[inline(always)]
1567    pub const fn p305pfs(
1568        &self,
1569    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1570        unsafe {
1571            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1572                self._svd2pac_as_ptr().add(0xd4usize),
1573            )
1574        }
1575    }
1576    #[inline(always)]
1577    pub const fn p306pfs(
1578        &self,
1579    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1580        unsafe {
1581            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1582                self._svd2pac_as_ptr().add(0xd8usize),
1583            )
1584        }
1585    }
1586    #[inline(always)]
1587    pub const fn p307pfs(
1588        &self,
1589    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1590        unsafe {
1591            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1592                self._svd2pac_as_ptr().add(0xdcusize),
1593            )
1594        }
1595    }
1596
1597    #[doc = "Port 30%s Pin Function Select Register"]
1598    #[inline(always)]
1599    pub const fn p30pfs_ha(
1600        &self,
1601    ) -> &'static crate::common::ClusterRegisterArray<
1602        crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW>,
1603        7,
1604        0x4,
1605    > {
1606        unsafe {
1607            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc6usize))
1608        }
1609    }
1610    #[inline(always)]
1611    pub const fn p301pfs_ha(
1612        &self,
1613    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1614        unsafe {
1615            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1616                self._svd2pac_as_ptr().add(0xc6usize),
1617            )
1618        }
1619    }
1620    #[inline(always)]
1621    pub const fn p302pfs_ha(
1622        &self,
1623    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1624        unsafe {
1625            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1626                self._svd2pac_as_ptr().add(0xcausize),
1627            )
1628        }
1629    }
1630    #[inline(always)]
1631    pub const fn p303pfs_ha(
1632        &self,
1633    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1634        unsafe {
1635            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1636                self._svd2pac_as_ptr().add(0xceusize),
1637            )
1638        }
1639    }
1640    #[inline(always)]
1641    pub const fn p304pfs_ha(
1642        &self,
1643    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1644        unsafe {
1645            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1646                self._svd2pac_as_ptr().add(0xd2usize),
1647            )
1648        }
1649    }
1650    #[inline(always)]
1651    pub const fn p305pfs_ha(
1652        &self,
1653    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1654        unsafe {
1655            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1656                self._svd2pac_as_ptr().add(0xd6usize),
1657            )
1658        }
1659    }
1660    #[inline(always)]
1661    pub const fn p306pfs_ha(
1662        &self,
1663    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1664        unsafe {
1665            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1666                self._svd2pac_as_ptr().add(0xdausize),
1667            )
1668        }
1669    }
1670    #[inline(always)]
1671    pub const fn p307pfs_ha(
1672        &self,
1673    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1674        unsafe {
1675            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1676                self._svd2pac_as_ptr().add(0xdeusize),
1677            )
1678        }
1679    }
1680
1681    #[doc = "Port 30%s Pin Function Select Register"]
1682    #[inline(always)]
1683    pub const fn p30pfs_by(
1684        &self,
1685    ) -> &'static crate::common::ClusterRegisterArray<
1686        crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW>,
1687        7,
1688        0x4,
1689    > {
1690        unsafe {
1691            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc7usize))
1692        }
1693    }
1694    #[inline(always)]
1695    pub const fn p301pfs_by(
1696        &self,
1697    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1698        unsafe {
1699            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1700                self._svd2pac_as_ptr().add(0xc7usize),
1701            )
1702        }
1703    }
1704    #[inline(always)]
1705    pub const fn p302pfs_by(
1706        &self,
1707    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1708        unsafe {
1709            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1710                self._svd2pac_as_ptr().add(0xcbusize),
1711            )
1712        }
1713    }
1714    #[inline(always)]
1715    pub const fn p303pfs_by(
1716        &self,
1717    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1718        unsafe {
1719            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1720                self._svd2pac_as_ptr().add(0xcfusize),
1721            )
1722        }
1723    }
1724    #[inline(always)]
1725    pub const fn p304pfs_by(
1726        &self,
1727    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1728        unsafe {
1729            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1730                self._svd2pac_as_ptr().add(0xd3usize),
1731            )
1732        }
1733    }
1734    #[inline(always)]
1735    pub const fn p305pfs_by(
1736        &self,
1737    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1738        unsafe {
1739            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1740                self._svd2pac_as_ptr().add(0xd7usize),
1741            )
1742        }
1743    }
1744    #[inline(always)]
1745    pub const fn p306pfs_by(
1746        &self,
1747    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1748        unsafe {
1749            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1750                self._svd2pac_as_ptr().add(0xdbusize),
1751            )
1752        }
1753    }
1754    #[inline(always)]
1755    pub const fn p307pfs_by(
1756        &self,
1757    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1758        unsafe {
1759            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1760                self._svd2pac_as_ptr().add(0xdfusize),
1761            )
1762        }
1763    }
1764
1765    #[doc = "Port 40%s Pin Function Select Register"]
1766    #[inline(always)]
1767    pub const fn p40pfs(
1768        &self,
1769    ) -> &'static crate::common::ClusterRegisterArray<
1770        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
1771        10,
1772        0x4,
1773    > {
1774        unsafe {
1775            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x100usize))
1776        }
1777    }
1778    #[inline(always)]
1779    pub const fn p400pfs(
1780        &self,
1781    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1782        unsafe {
1783            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1784                self._svd2pac_as_ptr().add(0x100usize),
1785            )
1786        }
1787    }
1788    #[inline(always)]
1789    pub const fn p401pfs(
1790        &self,
1791    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1792        unsafe {
1793            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1794                self._svd2pac_as_ptr().add(0x104usize),
1795            )
1796        }
1797    }
1798    #[inline(always)]
1799    pub const fn p402pfs(
1800        &self,
1801    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1802        unsafe {
1803            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1804                self._svd2pac_as_ptr().add(0x108usize),
1805            )
1806        }
1807    }
1808    #[inline(always)]
1809    pub const fn p403pfs(
1810        &self,
1811    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1812        unsafe {
1813            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1814                self._svd2pac_as_ptr().add(0x10cusize),
1815            )
1816        }
1817    }
1818    #[inline(always)]
1819    pub const fn p404pfs(
1820        &self,
1821    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1822        unsafe {
1823            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1824                self._svd2pac_as_ptr().add(0x110usize),
1825            )
1826        }
1827    }
1828    #[inline(always)]
1829    pub const fn p405pfs(
1830        &self,
1831    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1832        unsafe {
1833            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1834                self._svd2pac_as_ptr().add(0x114usize),
1835            )
1836        }
1837    }
1838    #[inline(always)]
1839    pub const fn p406pfs(
1840        &self,
1841    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1842        unsafe {
1843            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1844                self._svd2pac_as_ptr().add(0x118usize),
1845            )
1846        }
1847    }
1848    #[inline(always)]
1849    pub const fn p407pfs(
1850        &self,
1851    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1852        unsafe {
1853            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1854                self._svd2pac_as_ptr().add(0x11cusize),
1855            )
1856        }
1857    }
1858    #[inline(always)]
1859    pub const fn p408pfs(
1860        &self,
1861    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1862        unsafe {
1863            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1864                self._svd2pac_as_ptr().add(0x120usize),
1865            )
1866        }
1867    }
1868    #[inline(always)]
1869    pub const fn p409pfs(
1870        &self,
1871    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1872        unsafe {
1873            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1874                self._svd2pac_as_ptr().add(0x124usize),
1875            )
1876        }
1877    }
1878
1879    #[doc = "Port 40%s Pin Function Select Register"]
1880    #[inline(always)]
1881    pub const fn p40pfs_ha(
1882        &self,
1883    ) -> &'static crate::common::ClusterRegisterArray<
1884        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
1885        10,
1886        0x4,
1887    > {
1888        unsafe {
1889            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x102usize))
1890        }
1891    }
1892    #[inline(always)]
1893    pub const fn p400pfs_ha(
1894        &self,
1895    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1896        unsafe {
1897            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1898                self._svd2pac_as_ptr().add(0x102usize),
1899            )
1900        }
1901    }
1902    #[inline(always)]
1903    pub const fn p401pfs_ha(
1904        &self,
1905    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1906        unsafe {
1907            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1908                self._svd2pac_as_ptr().add(0x106usize),
1909            )
1910        }
1911    }
1912    #[inline(always)]
1913    pub const fn p402pfs_ha(
1914        &self,
1915    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1916        unsafe {
1917            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1918                self._svd2pac_as_ptr().add(0x10ausize),
1919            )
1920        }
1921    }
1922    #[inline(always)]
1923    pub const fn p403pfs_ha(
1924        &self,
1925    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1926        unsafe {
1927            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1928                self._svd2pac_as_ptr().add(0x10eusize),
1929            )
1930        }
1931    }
1932    #[inline(always)]
1933    pub const fn p404pfs_ha(
1934        &self,
1935    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1936        unsafe {
1937            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1938                self._svd2pac_as_ptr().add(0x112usize),
1939            )
1940        }
1941    }
1942    #[inline(always)]
1943    pub const fn p405pfs_ha(
1944        &self,
1945    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1946        unsafe {
1947            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1948                self._svd2pac_as_ptr().add(0x116usize),
1949            )
1950        }
1951    }
1952    #[inline(always)]
1953    pub const fn p406pfs_ha(
1954        &self,
1955    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1956        unsafe {
1957            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1958                self._svd2pac_as_ptr().add(0x11ausize),
1959            )
1960        }
1961    }
1962    #[inline(always)]
1963    pub const fn p407pfs_ha(
1964        &self,
1965    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1966        unsafe {
1967            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1968                self._svd2pac_as_ptr().add(0x11eusize),
1969            )
1970        }
1971    }
1972    #[inline(always)]
1973    pub const fn p408pfs_ha(
1974        &self,
1975    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1976        unsafe {
1977            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1978                self._svd2pac_as_ptr().add(0x122usize),
1979            )
1980        }
1981    }
1982    #[inline(always)]
1983    pub const fn p409pfs_ha(
1984        &self,
1985    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1986        unsafe {
1987            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1988                self._svd2pac_as_ptr().add(0x126usize),
1989            )
1990        }
1991    }
1992
1993    #[doc = "Port 40%s Pin Function Select Register"]
1994    #[inline(always)]
1995    pub const fn p40pfs_by(
1996        &self,
1997    ) -> &'static crate::common::ClusterRegisterArray<
1998        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
1999        10,
2000        0x4,
2001    > {
2002        unsafe {
2003            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x103usize))
2004        }
2005    }
2006    #[inline(always)]
2007    pub const fn p400pfs_by(
2008        &self,
2009    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2010        unsafe {
2011            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2012                self._svd2pac_as_ptr().add(0x103usize),
2013            )
2014        }
2015    }
2016    #[inline(always)]
2017    pub const fn p401pfs_by(
2018        &self,
2019    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2020        unsafe {
2021            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2022                self._svd2pac_as_ptr().add(0x107usize),
2023            )
2024        }
2025    }
2026    #[inline(always)]
2027    pub const fn p402pfs_by(
2028        &self,
2029    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2030        unsafe {
2031            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2032                self._svd2pac_as_ptr().add(0x10busize),
2033            )
2034        }
2035    }
2036    #[inline(always)]
2037    pub const fn p403pfs_by(
2038        &self,
2039    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2040        unsafe {
2041            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2042                self._svd2pac_as_ptr().add(0x10fusize),
2043            )
2044        }
2045    }
2046    #[inline(always)]
2047    pub const fn p404pfs_by(
2048        &self,
2049    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2050        unsafe {
2051            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2052                self._svd2pac_as_ptr().add(0x113usize),
2053            )
2054        }
2055    }
2056    #[inline(always)]
2057    pub const fn p405pfs_by(
2058        &self,
2059    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2060        unsafe {
2061            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2062                self._svd2pac_as_ptr().add(0x117usize),
2063            )
2064        }
2065    }
2066    #[inline(always)]
2067    pub const fn p406pfs_by(
2068        &self,
2069    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2070        unsafe {
2071            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2072                self._svd2pac_as_ptr().add(0x11busize),
2073            )
2074        }
2075    }
2076    #[inline(always)]
2077    pub const fn p407pfs_by(
2078        &self,
2079    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2080        unsafe {
2081            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2082                self._svd2pac_as_ptr().add(0x11fusize),
2083            )
2084        }
2085    }
2086    #[inline(always)]
2087    pub const fn p408pfs_by(
2088        &self,
2089    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2090        unsafe {
2091            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2092                self._svd2pac_as_ptr().add(0x123usize),
2093            )
2094        }
2095    }
2096    #[inline(always)]
2097    pub const fn p409pfs_by(
2098        &self,
2099    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2100        unsafe {
2101            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2102                self._svd2pac_as_ptr().add(0x127usize),
2103            )
2104        }
2105    }
2106
2107    #[doc = "Port 4%s Pin Function Select Register"]
2108    #[inline(always)]
2109    pub const fn p4pfs(
2110        &self,
2111    ) -> &'static crate::common::ClusterRegisterArray<
2112        crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW>,
2113        6,
2114        0x4,
2115    > {
2116        unsafe {
2117            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x128usize))
2118        }
2119    }
2120    #[inline(always)]
2121    pub const fn p410pfs(
2122        &self,
2123    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2124        unsafe {
2125            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2126                self._svd2pac_as_ptr().add(0x128usize),
2127            )
2128        }
2129    }
2130    #[inline(always)]
2131    pub const fn p411pfs(
2132        &self,
2133    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2134        unsafe {
2135            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2136                self._svd2pac_as_ptr().add(0x12cusize),
2137            )
2138        }
2139    }
2140    #[inline(always)]
2141    pub const fn p412pfs(
2142        &self,
2143    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2144        unsafe {
2145            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2146                self._svd2pac_as_ptr().add(0x130usize),
2147            )
2148        }
2149    }
2150    #[inline(always)]
2151    pub const fn p413pfs(
2152        &self,
2153    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2154        unsafe {
2155            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2156                self._svd2pac_as_ptr().add(0x134usize),
2157            )
2158        }
2159    }
2160    #[inline(always)]
2161    pub const fn p414pfs(
2162        &self,
2163    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2164        unsafe {
2165            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2166                self._svd2pac_as_ptr().add(0x138usize),
2167            )
2168        }
2169    }
2170    #[inline(always)]
2171    pub const fn p415pfs(
2172        &self,
2173    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2174        unsafe {
2175            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2176                self._svd2pac_as_ptr().add(0x13cusize),
2177            )
2178        }
2179    }
2180
2181    #[doc = "Port 4%s Pin Function Select Register"]
2182    #[inline(always)]
2183    pub const fn p4pfs_ha(
2184        &self,
2185    ) -> &'static crate::common::ClusterRegisterArray<
2186        crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW>,
2187        6,
2188        0x4,
2189    > {
2190        unsafe {
2191            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12ausize))
2192        }
2193    }
2194    #[inline(always)]
2195    pub const fn p410pfs_ha(
2196        &self,
2197    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2198        unsafe {
2199            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2200                self._svd2pac_as_ptr().add(0x12ausize),
2201            )
2202        }
2203    }
2204    #[inline(always)]
2205    pub const fn p411pfs_ha(
2206        &self,
2207    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2208        unsafe {
2209            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2210                self._svd2pac_as_ptr().add(0x12eusize),
2211            )
2212        }
2213    }
2214    #[inline(always)]
2215    pub const fn p412pfs_ha(
2216        &self,
2217    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2218        unsafe {
2219            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2220                self._svd2pac_as_ptr().add(0x132usize),
2221            )
2222        }
2223    }
2224    #[inline(always)]
2225    pub const fn p413pfs_ha(
2226        &self,
2227    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2228        unsafe {
2229            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2230                self._svd2pac_as_ptr().add(0x136usize),
2231            )
2232        }
2233    }
2234    #[inline(always)]
2235    pub const fn p414pfs_ha(
2236        &self,
2237    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2238        unsafe {
2239            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2240                self._svd2pac_as_ptr().add(0x13ausize),
2241            )
2242        }
2243    }
2244    #[inline(always)]
2245    pub const fn p415pfs_ha(
2246        &self,
2247    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2248        unsafe {
2249            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2250                self._svd2pac_as_ptr().add(0x13eusize),
2251            )
2252        }
2253    }
2254
2255    #[doc = "Port 4%s Pin Function Select Register"]
2256    #[inline(always)]
2257    pub const fn p4pfs_by(
2258        &self,
2259    ) -> &'static crate::common::ClusterRegisterArray<
2260        crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW>,
2261        6,
2262        0x4,
2263    > {
2264        unsafe {
2265            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12busize))
2266        }
2267    }
2268    #[inline(always)]
2269    pub const fn p410pfs_by(
2270        &self,
2271    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2272        unsafe {
2273            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2274                self._svd2pac_as_ptr().add(0x12busize),
2275            )
2276        }
2277    }
2278    #[inline(always)]
2279    pub const fn p411pfs_by(
2280        &self,
2281    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2282        unsafe {
2283            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2284                self._svd2pac_as_ptr().add(0x12fusize),
2285            )
2286        }
2287    }
2288    #[inline(always)]
2289    pub const fn p412pfs_by(
2290        &self,
2291    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2292        unsafe {
2293            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2294                self._svd2pac_as_ptr().add(0x133usize),
2295            )
2296        }
2297    }
2298    #[inline(always)]
2299    pub const fn p413pfs_by(
2300        &self,
2301    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2302        unsafe {
2303            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2304                self._svd2pac_as_ptr().add(0x137usize),
2305            )
2306        }
2307    }
2308    #[inline(always)]
2309    pub const fn p414pfs_by(
2310        &self,
2311    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2312        unsafe {
2313            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2314                self._svd2pac_as_ptr().add(0x13busize),
2315            )
2316        }
2317    }
2318    #[inline(always)]
2319    pub const fn p415pfs_by(
2320        &self,
2321    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2322        unsafe {
2323            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2324                self._svd2pac_as_ptr().add(0x13fusize),
2325            )
2326        }
2327    }
2328
2329    #[doc = "Port 50%s Pin Function Select Register"]
2330    #[inline(always)]
2331    pub const fn p50pfs(
2332        &self,
2333    ) -> &'static crate::common::ClusterRegisterArray<
2334        crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW>,
2335        6,
2336        0x4,
2337    > {
2338        unsafe {
2339            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x140usize))
2340        }
2341    }
2342    #[inline(always)]
2343    pub const fn p500pfs(
2344        &self,
2345    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2346        unsafe {
2347            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2348                self._svd2pac_as_ptr().add(0x140usize),
2349            )
2350        }
2351    }
2352    #[inline(always)]
2353    pub const fn p501pfs(
2354        &self,
2355    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2356        unsafe {
2357            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2358                self._svd2pac_as_ptr().add(0x144usize),
2359            )
2360        }
2361    }
2362    #[inline(always)]
2363    pub const fn p502pfs(
2364        &self,
2365    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2366        unsafe {
2367            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2368                self._svd2pac_as_ptr().add(0x148usize),
2369            )
2370        }
2371    }
2372    #[inline(always)]
2373    pub const fn p503pfs(
2374        &self,
2375    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2376        unsafe {
2377            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2378                self._svd2pac_as_ptr().add(0x14cusize),
2379            )
2380        }
2381    }
2382    #[inline(always)]
2383    pub const fn p504pfs(
2384        &self,
2385    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2386        unsafe {
2387            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2388                self._svd2pac_as_ptr().add(0x150usize),
2389            )
2390        }
2391    }
2392    #[inline(always)]
2393    pub const fn p505pfs(
2394        &self,
2395    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2396        unsafe {
2397            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2398                self._svd2pac_as_ptr().add(0x154usize),
2399            )
2400        }
2401    }
2402
2403    #[doc = "Port 50%s Pin Function Select Register"]
2404    #[inline(always)]
2405    pub const fn p50pfs_ha(
2406        &self,
2407    ) -> &'static crate::common::ClusterRegisterArray<
2408        crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW>,
2409        6,
2410        0x4,
2411    > {
2412        unsafe {
2413            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x142usize))
2414        }
2415    }
2416    #[inline(always)]
2417    pub const fn p500pfs_ha(
2418        &self,
2419    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2420        unsafe {
2421            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2422                self._svd2pac_as_ptr().add(0x142usize),
2423            )
2424        }
2425    }
2426    #[inline(always)]
2427    pub const fn p501pfs_ha(
2428        &self,
2429    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2430        unsafe {
2431            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2432                self._svd2pac_as_ptr().add(0x146usize),
2433            )
2434        }
2435    }
2436    #[inline(always)]
2437    pub const fn p502pfs_ha(
2438        &self,
2439    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2440        unsafe {
2441            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2442                self._svd2pac_as_ptr().add(0x14ausize),
2443            )
2444        }
2445    }
2446    #[inline(always)]
2447    pub const fn p503pfs_ha(
2448        &self,
2449    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2450        unsafe {
2451            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2452                self._svd2pac_as_ptr().add(0x14eusize),
2453            )
2454        }
2455    }
2456    #[inline(always)]
2457    pub const fn p504pfs_ha(
2458        &self,
2459    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2460        unsafe {
2461            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2462                self._svd2pac_as_ptr().add(0x152usize),
2463            )
2464        }
2465    }
2466    #[inline(always)]
2467    pub const fn p505pfs_ha(
2468        &self,
2469    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2470        unsafe {
2471            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2472                self._svd2pac_as_ptr().add(0x156usize),
2473            )
2474        }
2475    }
2476
2477    #[doc = "Port 50%s Pin Function Select Register"]
2478    #[inline(always)]
2479    pub const fn p50pfs_by(
2480        &self,
2481    ) -> &'static crate::common::ClusterRegisterArray<
2482        crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW>,
2483        6,
2484        0x4,
2485    > {
2486        unsafe {
2487            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x143usize))
2488        }
2489    }
2490    #[inline(always)]
2491    pub const fn p500pfs_by(
2492        &self,
2493    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2494        unsafe {
2495            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2496                self._svd2pac_as_ptr().add(0x143usize),
2497            )
2498        }
2499    }
2500    #[inline(always)]
2501    pub const fn p501pfs_by(
2502        &self,
2503    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2504        unsafe {
2505            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2506                self._svd2pac_as_ptr().add(0x147usize),
2507            )
2508        }
2509    }
2510    #[inline(always)]
2511    pub const fn p502pfs_by(
2512        &self,
2513    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2514        unsafe {
2515            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2516                self._svd2pac_as_ptr().add(0x14busize),
2517            )
2518        }
2519    }
2520    #[inline(always)]
2521    pub const fn p503pfs_by(
2522        &self,
2523    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2524        unsafe {
2525            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2526                self._svd2pac_as_ptr().add(0x14fusize),
2527            )
2528        }
2529    }
2530    #[inline(always)]
2531    pub const fn p504pfs_by(
2532        &self,
2533    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2534        unsafe {
2535            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2536                self._svd2pac_as_ptr().add(0x153usize),
2537            )
2538        }
2539    }
2540    #[inline(always)]
2541    pub const fn p505pfs_by(
2542        &self,
2543    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2544        unsafe {
2545            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2546                self._svd2pac_as_ptr().add(0x157usize),
2547            )
2548        }
2549    }
2550
2551    #[doc = "Port 60%s Pin Function Select Register"]
2552    #[inline(always)]
2553    pub const fn p60pfs(
2554        &self,
2555    ) -> &'static crate::common::ClusterRegisterArray<
2556        crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW>,
2557        2,
2558        0x4,
2559    > {
2560        unsafe {
2561            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a0usize))
2562        }
2563    }
2564    #[inline(always)]
2565    pub const fn p608pfs(
2566        &self,
2567    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
2568        unsafe {
2569            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
2570                self._svd2pac_as_ptr().add(0x1a0usize),
2571            )
2572        }
2573    }
2574    #[inline(always)]
2575    pub const fn p609pfs(
2576        &self,
2577    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
2578        unsafe {
2579            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
2580                self._svd2pac_as_ptr().add(0x1a4usize),
2581            )
2582        }
2583    }
2584
2585    #[doc = "Port 60%s Pin Function Select Register"]
2586    #[inline(always)]
2587    pub const fn p60pfs_ha(
2588        &self,
2589    ) -> &'static crate::common::ClusterRegisterArray<
2590        crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW>,
2591        2,
2592        0x4,
2593    > {
2594        unsafe {
2595            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a2usize))
2596        }
2597    }
2598    #[inline(always)]
2599    pub const fn p608pfs_ha(
2600        &self,
2601    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
2602        unsafe {
2603            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
2604                self._svd2pac_as_ptr().add(0x1a2usize),
2605            )
2606        }
2607    }
2608    #[inline(always)]
2609    pub const fn p609pfs_ha(
2610        &self,
2611    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
2612        unsafe {
2613            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
2614                self._svd2pac_as_ptr().add(0x1a6usize),
2615            )
2616        }
2617    }
2618
2619    #[doc = "Port 60%s Pin Function Select Register"]
2620    #[inline(always)]
2621    pub const fn p60pfs_by(
2622        &self,
2623    ) -> &'static crate::common::ClusterRegisterArray<
2624        crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW>,
2625        2,
2626        0x4,
2627    > {
2628        unsafe {
2629            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a3usize))
2630        }
2631    }
2632    #[inline(always)]
2633    pub const fn p608pfs_by(
2634        &self,
2635    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
2636        unsafe {
2637            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
2638                self._svd2pac_as_ptr().add(0x1a3usize),
2639            )
2640        }
2641    }
2642    #[inline(always)]
2643    pub const fn p609pfs_by(
2644        &self,
2645    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
2646        unsafe {
2647            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
2648                self._svd2pac_as_ptr().add(0x1a7usize),
2649            )
2650        }
2651    }
2652
2653    #[doc = "Port 610 Pin Function Select Register"]
2654    #[inline(always)]
2655    pub const fn p610pfs(
2656        &self,
2657    ) -> &'static crate::common::Reg<self::P610Pfs_SPEC, crate::common::RW> {
2658        unsafe {
2659            crate::common::Reg::<self::P610Pfs_SPEC, crate::common::RW>::from_ptr(
2660                self._svd2pac_as_ptr().add(424usize),
2661            )
2662        }
2663    }
2664
2665    #[doc = "Port 610 Pin Function Select Register"]
2666    #[inline(always)]
2667    pub const fn p610pfs_ha(
2668        &self,
2669    ) -> &'static crate::common::Reg<self::P610PfsHa_SPEC, crate::common::RW> {
2670        unsafe {
2671            crate::common::Reg::<self::P610PfsHa_SPEC, crate::common::RW>::from_ptr(
2672                self._svd2pac_as_ptr().add(426usize),
2673            )
2674        }
2675    }
2676
2677    #[doc = "Port 610 Pin Function Select Register"]
2678    #[inline(always)]
2679    pub const fn p610pfs_by(
2680        &self,
2681    ) -> &'static crate::common::Reg<self::P610PfsBy_SPEC, crate::common::RW> {
2682        unsafe {
2683            crate::common::Reg::<self::P610PfsBy_SPEC, crate::common::RW>::from_ptr(
2684                self._svd2pac_as_ptr().add(427usize),
2685            )
2686        }
2687    }
2688
2689    #[doc = "Port 708 Pin Function Select Register"]
2690    #[inline(always)]
2691    pub const fn p708pfs(
2692        &self,
2693    ) -> &'static crate::common::Reg<self::P708Pfs_SPEC, crate::common::RW> {
2694        unsafe {
2695            crate::common::Reg::<self::P708Pfs_SPEC, crate::common::RW>::from_ptr(
2696                self._svd2pac_as_ptr().add(480usize),
2697            )
2698        }
2699    }
2700
2701    #[doc = "Port 708 Pin Function Select Register"]
2702    #[inline(always)]
2703    pub const fn p708pfs_ha(
2704        &self,
2705    ) -> &'static crate::common::Reg<self::P708PfsHa_SPEC, crate::common::RW> {
2706        unsafe {
2707            crate::common::Reg::<self::P708PfsHa_SPEC, crate::common::RW>::from_ptr(
2708                self._svd2pac_as_ptr().add(482usize),
2709            )
2710        }
2711    }
2712
2713    #[doc = "Port 708 Pin Function Select Register"]
2714    #[inline(always)]
2715    pub const fn p708pfs_by(
2716        &self,
2717    ) -> &'static crate::common::Reg<self::P708PfsBy_SPEC, crate::common::RW> {
2718        unsafe {
2719            crate::common::Reg::<self::P708PfsBy_SPEC, crate::common::RW>::from_ptr(
2720                self._svd2pac_as_ptr().add(483usize),
2721            )
2722        }
2723    }
2724
2725    #[doc = "Ethernet Control Register"]
2726    #[inline(always)]
2727    pub const fn pfenet(
2728        &self,
2729    ) -> &'static crate::common::Reg<self::Pfenet_SPEC, crate::common::RW> {
2730        unsafe {
2731            crate::common::Reg::<self::Pfenet_SPEC, crate::common::RW>::from_ptr(
2732                self._svd2pac_as_ptr().add(1280usize),
2733            )
2734        }
2735    }
2736
2737    #[doc = "Write-Protect Register"]
2738    #[inline(always)]
2739    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
2740        unsafe {
2741            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
2742                self._svd2pac_as_ptr().add(1283usize),
2743            )
2744        }
2745    }
2746
2747    #[doc = "Write-Protect Register for Secure"]
2748    #[inline(always)]
2749    pub const fn pwprs(&self) -> &'static crate::common::Reg<self::Pwprs_SPEC, crate::common::RW> {
2750        unsafe {
2751            crate::common::Reg::<self::Pwprs_SPEC, crate::common::RW>::from_ptr(
2752                self._svd2pac_as_ptr().add(1285usize),
2753            )
2754        }
2755    }
2756
2757    #[doc = "Port Security Attribution register"]
2758    #[inline(always)]
2759    pub const fn psar(
2760        &self,
2761    ) -> &'static crate::common::ClusterRegisterArray<
2762        crate::common::Reg<self::Psar_SPEC, crate::common::RW>,
2763        8,
2764        0x2,
2765    > {
2766        unsafe {
2767            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x510usize))
2768        }
2769    }
2770    #[inline(always)]
2771    pub const fn p0sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2772        unsafe {
2773            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2774                self._svd2pac_as_ptr().add(0x510usize),
2775            )
2776        }
2777    }
2778    #[inline(always)]
2779    pub const fn p1sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2780        unsafe {
2781            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2782                self._svd2pac_as_ptr().add(0x512usize),
2783            )
2784        }
2785    }
2786    #[inline(always)]
2787    pub const fn p2sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2788        unsafe {
2789            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2790                self._svd2pac_as_ptr().add(0x514usize),
2791            )
2792        }
2793    }
2794    #[inline(always)]
2795    pub const fn p3sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2796        unsafe {
2797            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2798                self._svd2pac_as_ptr().add(0x516usize),
2799            )
2800        }
2801    }
2802    #[inline(always)]
2803    pub const fn p4sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2804        unsafe {
2805            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2806                self._svd2pac_as_ptr().add(0x518usize),
2807            )
2808        }
2809    }
2810    #[inline(always)]
2811    pub const fn p5sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2812        unsafe {
2813            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2814                self._svd2pac_as_ptr().add(0x51ausize),
2815            )
2816        }
2817    }
2818    #[inline(always)]
2819    pub const fn p6sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2820        unsafe {
2821            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2822                self._svd2pac_as_ptr().add(0x51cusize),
2823            )
2824        }
2825    }
2826    #[inline(always)]
2827    pub const fn p7sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2828        unsafe {
2829            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2830                self._svd2pac_as_ptr().add(0x51eusize),
2831            )
2832        }
2833    }
2834}
2835#[doc(hidden)]
2836#[derive(Copy, Clone, Eq, PartialEq)]
2837pub struct P00Pfs_SPEC;
2838impl crate::sealed::RegSpec for P00Pfs_SPEC {
2839    type DataType = u32;
2840}
2841
2842#[doc = "Port 00%s Pin Function Select Register"]
2843pub type P00Pfs = crate::RegValueT<P00Pfs_SPEC>;
2844
2845impl P00Pfs {
2846    #[doc = "Port Output Data"]
2847    #[inline(always)]
2848    pub fn podr(
2849        self,
2850    ) -> crate::common::RegisterField<
2851        0,
2852        0x1,
2853        1,
2854        0,
2855        p00pfs::Podr,
2856        p00pfs::Podr,
2857        P00Pfs_SPEC,
2858        crate::common::RW,
2859    > {
2860        crate::common::RegisterField::<
2861            0,
2862            0x1,
2863            1,
2864            0,
2865            p00pfs::Podr,
2866            p00pfs::Podr,
2867            P00Pfs_SPEC,
2868            crate::common::RW,
2869        >::from_register(self, 0)
2870    }
2871
2872    #[doc = "Port State"]
2873    #[inline(always)]
2874    pub fn pidr(
2875        self,
2876    ) -> crate::common::RegisterField<
2877        1,
2878        0x1,
2879        1,
2880        0,
2881        p00pfs::Pidr,
2882        p00pfs::Pidr,
2883        P00Pfs_SPEC,
2884        crate::common::R,
2885    > {
2886        crate::common::RegisterField::<
2887            1,
2888            0x1,
2889            1,
2890            0,
2891            p00pfs::Pidr,
2892            p00pfs::Pidr,
2893            P00Pfs_SPEC,
2894            crate::common::R,
2895        >::from_register(self, 0)
2896    }
2897
2898    #[doc = "Port Direction"]
2899    #[inline(always)]
2900    pub fn pdr(
2901        self,
2902    ) -> crate::common::RegisterField<
2903        2,
2904        0x1,
2905        1,
2906        0,
2907        p00pfs::Pdr,
2908        p00pfs::Pdr,
2909        P00Pfs_SPEC,
2910        crate::common::RW,
2911    > {
2912        crate::common::RegisterField::<
2913            2,
2914            0x1,
2915            1,
2916            0,
2917            p00pfs::Pdr,
2918            p00pfs::Pdr,
2919            P00Pfs_SPEC,
2920            crate::common::RW,
2921        >::from_register(self, 0)
2922    }
2923
2924    #[doc = "Pull-up Control"]
2925    #[inline(always)]
2926    pub fn pcr(
2927        self,
2928    ) -> crate::common::RegisterField<
2929        4,
2930        0x1,
2931        1,
2932        0,
2933        p00pfs::Pcr,
2934        p00pfs::Pcr,
2935        P00Pfs_SPEC,
2936        crate::common::RW,
2937    > {
2938        crate::common::RegisterField::<
2939            4,
2940            0x1,
2941            1,
2942            0,
2943            p00pfs::Pcr,
2944            p00pfs::Pcr,
2945            P00Pfs_SPEC,
2946            crate::common::RW,
2947        >::from_register(self, 0)
2948    }
2949
2950    #[doc = "N-Channel Open-Drain Control"]
2951    #[inline(always)]
2952    pub fn ncodr(
2953        self,
2954    ) -> crate::common::RegisterField<
2955        6,
2956        0x1,
2957        1,
2958        0,
2959        p00pfs::Ncodr,
2960        p00pfs::Ncodr,
2961        P00Pfs_SPEC,
2962        crate::common::RW,
2963    > {
2964        crate::common::RegisterField::<
2965            6,
2966            0x1,
2967            1,
2968            0,
2969            p00pfs::Ncodr,
2970            p00pfs::Ncodr,
2971            P00Pfs_SPEC,
2972            crate::common::RW,
2973        >::from_register(self, 0)
2974    }
2975
2976    #[doc = "IRQ Input Enable"]
2977    #[inline(always)]
2978    pub fn isel(
2979        self,
2980    ) -> crate::common::RegisterField<
2981        14,
2982        0x1,
2983        1,
2984        0,
2985        p00pfs::Isel,
2986        p00pfs::Isel,
2987        P00Pfs_SPEC,
2988        crate::common::RW,
2989    > {
2990        crate::common::RegisterField::<
2991            14,
2992            0x1,
2993            1,
2994            0,
2995            p00pfs::Isel,
2996            p00pfs::Isel,
2997            P00Pfs_SPEC,
2998            crate::common::RW,
2999        >::from_register(self, 0)
3000    }
3001
3002    #[doc = "Analog Input Enable"]
3003    #[inline(always)]
3004    pub fn asel(
3005        self,
3006    ) -> crate::common::RegisterField<
3007        15,
3008        0x1,
3009        1,
3010        0,
3011        p00pfs::Asel,
3012        p00pfs::Asel,
3013        P00Pfs_SPEC,
3014        crate::common::RW,
3015    > {
3016        crate::common::RegisterField::<
3017            15,
3018            0x1,
3019            1,
3020            0,
3021            p00pfs::Asel,
3022            p00pfs::Asel,
3023            P00Pfs_SPEC,
3024            crate::common::RW,
3025        >::from_register(self, 0)
3026    }
3027
3028    #[doc = "Port Mode Control"]
3029    #[inline(always)]
3030    pub fn pmr(
3031        self,
3032    ) -> crate::common::RegisterField<
3033        16,
3034        0x1,
3035        1,
3036        0,
3037        p00pfs::Pmr,
3038        p00pfs::Pmr,
3039        P00Pfs_SPEC,
3040        crate::common::RW,
3041    > {
3042        crate::common::RegisterField::<
3043            16,
3044            0x1,
3045            1,
3046            0,
3047            p00pfs::Pmr,
3048            p00pfs::Pmr,
3049            P00Pfs_SPEC,
3050            crate::common::RW,
3051        >::from_register(self, 0)
3052    }
3053
3054    #[doc = "Peripheral Select"]
3055    #[inline(always)]
3056    pub fn psel(
3057        self,
3058    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P00Pfs_SPEC, crate::common::RW> {
3059        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P00Pfs_SPEC,crate::common::RW>::from_register(self,0)
3060    }
3061}
3062impl ::core::default::Default for P00Pfs {
3063    #[inline(always)]
3064    fn default() -> P00Pfs {
3065        <crate::RegValueT<P00Pfs_SPEC> as RegisterValue<_>>::new(0)
3066    }
3067}
3068pub mod p00pfs {
3069
3070    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3071    pub struct Podr_SPEC;
3072    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3073    impl Podr {
3074        #[doc = "Output low"]
3075        pub const _0: Self = Self::new(0);
3076
3077        #[doc = "Output high"]
3078        pub const _1: Self = Self::new(1);
3079    }
3080    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3081    pub struct Pidr_SPEC;
3082    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3083    impl Pidr {
3084        #[doc = "Low level"]
3085        pub const _0: Self = Self::new(0);
3086
3087        #[doc = "High level"]
3088        pub const _1: Self = Self::new(1);
3089    }
3090    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3091    pub struct Pdr_SPEC;
3092    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3093    impl Pdr {
3094        #[doc = "Input (functions as an input pin)"]
3095        pub const _0: Self = Self::new(0);
3096
3097        #[doc = "Output (functions as an output pin)"]
3098        pub const _1: Self = Self::new(1);
3099    }
3100    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3101    pub struct Pcr_SPEC;
3102    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3103    impl Pcr {
3104        #[doc = "Disable input pull-up"]
3105        pub const _0: Self = Self::new(0);
3106
3107        #[doc = "Enable input pull-up"]
3108        pub const _1: Self = Self::new(1);
3109    }
3110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3111    pub struct Ncodr_SPEC;
3112    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3113    impl Ncodr {
3114        #[doc = "Output CMOS"]
3115        pub const _0: Self = Self::new(0);
3116
3117        #[doc = "Output NMOS open-drain"]
3118        pub const _1: Self = Self::new(1);
3119    }
3120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3121    pub struct Isel_SPEC;
3122    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3123    impl Isel {
3124        #[doc = "Do not use as IRQn input pin"]
3125        pub const _0: Self = Self::new(0);
3126
3127        #[doc = "Use as IRQn input pin"]
3128        pub const _1: Self = Self::new(1);
3129    }
3130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3131    pub struct Asel_SPEC;
3132    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3133    impl Asel {
3134        #[doc = "Do not use as analog pin"]
3135        pub const _0: Self = Self::new(0);
3136
3137        #[doc = "Use as analog pin"]
3138        pub const _1: Self = Self::new(1);
3139    }
3140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3141    pub struct Pmr_SPEC;
3142    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3143    impl Pmr {
3144        #[doc = "Use as general I/O pin"]
3145        pub const _0: Self = Self::new(0);
3146
3147        #[doc = "Use as I/O port for peripheral functions"]
3148        pub const _1: Self = Self::new(1);
3149    }
3150}
3151#[doc(hidden)]
3152#[derive(Copy, Clone, Eq, PartialEq)]
3153pub struct P00PfsHa_SPEC;
3154impl crate::sealed::RegSpec for P00PfsHa_SPEC {
3155    type DataType = u16;
3156}
3157
3158#[doc = "Port 00%s Pin Function Select Register"]
3159pub type P00PfsHa = crate::RegValueT<P00PfsHa_SPEC>;
3160
3161impl P00PfsHa {
3162    #[doc = "Port Output Data"]
3163    #[inline(always)]
3164    pub fn podr(
3165        self,
3166    ) -> crate::common::RegisterField<
3167        0,
3168        0x1,
3169        1,
3170        0,
3171        p00pfs_ha::Podr,
3172        p00pfs_ha::Podr,
3173        P00PfsHa_SPEC,
3174        crate::common::RW,
3175    > {
3176        crate::common::RegisterField::<
3177            0,
3178            0x1,
3179            1,
3180            0,
3181            p00pfs_ha::Podr,
3182            p00pfs_ha::Podr,
3183            P00PfsHa_SPEC,
3184            crate::common::RW,
3185        >::from_register(self, 0)
3186    }
3187
3188    #[doc = "Port State"]
3189    #[inline(always)]
3190    pub fn pidr(
3191        self,
3192    ) -> crate::common::RegisterField<
3193        1,
3194        0x1,
3195        1,
3196        0,
3197        p00pfs_ha::Pidr,
3198        p00pfs_ha::Pidr,
3199        P00PfsHa_SPEC,
3200        crate::common::R,
3201    > {
3202        crate::common::RegisterField::<
3203            1,
3204            0x1,
3205            1,
3206            0,
3207            p00pfs_ha::Pidr,
3208            p00pfs_ha::Pidr,
3209            P00PfsHa_SPEC,
3210            crate::common::R,
3211        >::from_register(self, 0)
3212    }
3213
3214    #[doc = "Port Direction"]
3215    #[inline(always)]
3216    pub fn pdr(
3217        self,
3218    ) -> crate::common::RegisterField<
3219        2,
3220        0x1,
3221        1,
3222        0,
3223        p00pfs_ha::Pdr,
3224        p00pfs_ha::Pdr,
3225        P00PfsHa_SPEC,
3226        crate::common::RW,
3227    > {
3228        crate::common::RegisterField::<
3229            2,
3230            0x1,
3231            1,
3232            0,
3233            p00pfs_ha::Pdr,
3234            p00pfs_ha::Pdr,
3235            P00PfsHa_SPEC,
3236            crate::common::RW,
3237        >::from_register(self, 0)
3238    }
3239
3240    #[doc = "Pull-up Control"]
3241    #[inline(always)]
3242    pub fn pcr(
3243        self,
3244    ) -> crate::common::RegisterField<
3245        4,
3246        0x1,
3247        1,
3248        0,
3249        p00pfs_ha::Pcr,
3250        p00pfs_ha::Pcr,
3251        P00PfsHa_SPEC,
3252        crate::common::RW,
3253    > {
3254        crate::common::RegisterField::<
3255            4,
3256            0x1,
3257            1,
3258            0,
3259            p00pfs_ha::Pcr,
3260            p00pfs_ha::Pcr,
3261            P00PfsHa_SPEC,
3262            crate::common::RW,
3263        >::from_register(self, 0)
3264    }
3265
3266    #[doc = "N-Channel Open-Drain Control"]
3267    #[inline(always)]
3268    pub fn ncodr(
3269        self,
3270    ) -> crate::common::RegisterField<
3271        6,
3272        0x1,
3273        1,
3274        0,
3275        p00pfs_ha::Ncodr,
3276        p00pfs_ha::Ncodr,
3277        P00PfsHa_SPEC,
3278        crate::common::RW,
3279    > {
3280        crate::common::RegisterField::<
3281            6,
3282            0x1,
3283            1,
3284            0,
3285            p00pfs_ha::Ncodr,
3286            p00pfs_ha::Ncodr,
3287            P00PfsHa_SPEC,
3288            crate::common::RW,
3289        >::from_register(self, 0)
3290    }
3291
3292    #[doc = "IRQ Input Enable"]
3293    #[inline(always)]
3294    pub fn isel(
3295        self,
3296    ) -> crate::common::RegisterField<
3297        14,
3298        0x1,
3299        1,
3300        0,
3301        p00pfs_ha::Isel,
3302        p00pfs_ha::Isel,
3303        P00PfsHa_SPEC,
3304        crate::common::RW,
3305    > {
3306        crate::common::RegisterField::<
3307            14,
3308            0x1,
3309            1,
3310            0,
3311            p00pfs_ha::Isel,
3312            p00pfs_ha::Isel,
3313            P00PfsHa_SPEC,
3314            crate::common::RW,
3315        >::from_register(self, 0)
3316    }
3317
3318    #[doc = "Analog Input Enable"]
3319    #[inline(always)]
3320    pub fn asel(
3321        self,
3322    ) -> crate::common::RegisterField<
3323        15,
3324        0x1,
3325        1,
3326        0,
3327        p00pfs_ha::Asel,
3328        p00pfs_ha::Asel,
3329        P00PfsHa_SPEC,
3330        crate::common::RW,
3331    > {
3332        crate::common::RegisterField::<
3333            15,
3334            0x1,
3335            1,
3336            0,
3337            p00pfs_ha::Asel,
3338            p00pfs_ha::Asel,
3339            P00PfsHa_SPEC,
3340            crate::common::RW,
3341        >::from_register(self, 0)
3342    }
3343}
3344impl ::core::default::Default for P00PfsHa {
3345    #[inline(always)]
3346    fn default() -> P00PfsHa {
3347        <crate::RegValueT<P00PfsHa_SPEC> as RegisterValue<_>>::new(0)
3348    }
3349}
3350pub mod p00pfs_ha {
3351
3352    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3353    pub struct Podr_SPEC;
3354    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3355    impl Podr {
3356        #[doc = "Output low"]
3357        pub const _0: Self = Self::new(0);
3358
3359        #[doc = "Output high"]
3360        pub const _1: Self = Self::new(1);
3361    }
3362    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3363    pub struct Pidr_SPEC;
3364    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3365    impl Pidr {
3366        #[doc = "Low level"]
3367        pub const _0: Self = Self::new(0);
3368
3369        #[doc = "High level"]
3370        pub const _1: Self = Self::new(1);
3371    }
3372    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3373    pub struct Pdr_SPEC;
3374    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3375    impl Pdr {
3376        #[doc = "Input (functions as an input pin)"]
3377        pub const _0: Self = Self::new(0);
3378
3379        #[doc = "Output (functions as an output pin)"]
3380        pub const _1: Self = Self::new(1);
3381    }
3382    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3383    pub struct Pcr_SPEC;
3384    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3385    impl Pcr {
3386        #[doc = "Disable input pull-up"]
3387        pub const _0: Self = Self::new(0);
3388
3389        #[doc = "Enable input pull-up"]
3390        pub const _1: Self = Self::new(1);
3391    }
3392    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3393    pub struct Ncodr_SPEC;
3394    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3395    impl Ncodr {
3396        #[doc = "Output CMOS"]
3397        pub const _0: Self = Self::new(0);
3398
3399        #[doc = "Output NMOS open-drain"]
3400        pub const _1: Self = Self::new(1);
3401    }
3402    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3403    pub struct Isel_SPEC;
3404    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3405    impl Isel {
3406        #[doc = "Do not use as IRQn input pin"]
3407        pub const _0: Self = Self::new(0);
3408
3409        #[doc = "Use as IRQn input pin"]
3410        pub const _1: Self = Self::new(1);
3411    }
3412    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3413    pub struct Asel_SPEC;
3414    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3415    impl Asel {
3416        #[doc = "Do not use as analog pin"]
3417        pub const _0: Self = Self::new(0);
3418
3419        #[doc = "Use as analog pin"]
3420        pub const _1: Self = Self::new(1);
3421    }
3422}
3423#[doc(hidden)]
3424#[derive(Copy, Clone, Eq, PartialEq)]
3425pub struct P00PfsBy_SPEC;
3426impl crate::sealed::RegSpec for P00PfsBy_SPEC {
3427    type DataType = u8;
3428}
3429
3430#[doc = "Port 00%s Pin Function Select Register"]
3431pub type P00PfsBy = crate::RegValueT<P00PfsBy_SPEC>;
3432
3433impl P00PfsBy {
3434    #[doc = "Port Output Data"]
3435    #[inline(always)]
3436    pub fn podr(
3437        self,
3438    ) -> crate::common::RegisterField<
3439        0,
3440        0x1,
3441        1,
3442        0,
3443        p00pfs_by::Podr,
3444        p00pfs_by::Podr,
3445        P00PfsBy_SPEC,
3446        crate::common::RW,
3447    > {
3448        crate::common::RegisterField::<
3449            0,
3450            0x1,
3451            1,
3452            0,
3453            p00pfs_by::Podr,
3454            p00pfs_by::Podr,
3455            P00PfsBy_SPEC,
3456            crate::common::RW,
3457        >::from_register(self, 0)
3458    }
3459
3460    #[doc = "Port State"]
3461    #[inline(always)]
3462    pub fn pidr(
3463        self,
3464    ) -> crate::common::RegisterField<
3465        1,
3466        0x1,
3467        1,
3468        0,
3469        p00pfs_by::Pidr,
3470        p00pfs_by::Pidr,
3471        P00PfsBy_SPEC,
3472        crate::common::R,
3473    > {
3474        crate::common::RegisterField::<
3475            1,
3476            0x1,
3477            1,
3478            0,
3479            p00pfs_by::Pidr,
3480            p00pfs_by::Pidr,
3481            P00PfsBy_SPEC,
3482            crate::common::R,
3483        >::from_register(self, 0)
3484    }
3485
3486    #[doc = "Port Direction"]
3487    #[inline(always)]
3488    pub fn pdr(
3489        self,
3490    ) -> crate::common::RegisterField<
3491        2,
3492        0x1,
3493        1,
3494        0,
3495        p00pfs_by::Pdr,
3496        p00pfs_by::Pdr,
3497        P00PfsBy_SPEC,
3498        crate::common::RW,
3499    > {
3500        crate::common::RegisterField::<
3501            2,
3502            0x1,
3503            1,
3504            0,
3505            p00pfs_by::Pdr,
3506            p00pfs_by::Pdr,
3507            P00PfsBy_SPEC,
3508            crate::common::RW,
3509        >::from_register(self, 0)
3510    }
3511
3512    #[doc = "Pull-up Control"]
3513    #[inline(always)]
3514    pub fn pcr(
3515        self,
3516    ) -> crate::common::RegisterField<
3517        4,
3518        0x1,
3519        1,
3520        0,
3521        p00pfs_by::Pcr,
3522        p00pfs_by::Pcr,
3523        P00PfsBy_SPEC,
3524        crate::common::RW,
3525    > {
3526        crate::common::RegisterField::<
3527            4,
3528            0x1,
3529            1,
3530            0,
3531            p00pfs_by::Pcr,
3532            p00pfs_by::Pcr,
3533            P00PfsBy_SPEC,
3534            crate::common::RW,
3535        >::from_register(self, 0)
3536    }
3537
3538    #[doc = "N-Channel Open-Drain Control"]
3539    #[inline(always)]
3540    pub fn ncodr(
3541        self,
3542    ) -> crate::common::RegisterField<
3543        6,
3544        0x1,
3545        1,
3546        0,
3547        p00pfs_by::Ncodr,
3548        p00pfs_by::Ncodr,
3549        P00PfsBy_SPEC,
3550        crate::common::RW,
3551    > {
3552        crate::common::RegisterField::<
3553            6,
3554            0x1,
3555            1,
3556            0,
3557            p00pfs_by::Ncodr,
3558            p00pfs_by::Ncodr,
3559            P00PfsBy_SPEC,
3560            crate::common::RW,
3561        >::from_register(self, 0)
3562    }
3563}
3564impl ::core::default::Default for P00PfsBy {
3565    #[inline(always)]
3566    fn default() -> P00PfsBy {
3567        <crate::RegValueT<P00PfsBy_SPEC> as RegisterValue<_>>::new(0)
3568    }
3569}
3570pub mod p00pfs_by {
3571
3572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3573    pub struct Podr_SPEC;
3574    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3575    impl Podr {
3576        #[doc = "Output low"]
3577        pub const _0: Self = Self::new(0);
3578
3579        #[doc = "Output high"]
3580        pub const _1: Self = Self::new(1);
3581    }
3582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3583    pub struct Pidr_SPEC;
3584    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3585    impl Pidr {
3586        #[doc = "Low level"]
3587        pub const _0: Self = Self::new(0);
3588
3589        #[doc = "High level"]
3590        pub const _1: Self = Self::new(1);
3591    }
3592    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3593    pub struct Pdr_SPEC;
3594    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3595    impl Pdr {
3596        #[doc = "Input (functions as an input pin)"]
3597        pub const _0: Self = Self::new(0);
3598
3599        #[doc = "Output (functions as an output pin)"]
3600        pub const _1: Self = Self::new(1);
3601    }
3602    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3603    pub struct Pcr_SPEC;
3604    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3605    impl Pcr {
3606        #[doc = "Disable input pull-up"]
3607        pub const _0: Self = Self::new(0);
3608
3609        #[doc = "Enable input pull-up"]
3610        pub const _1: Self = Self::new(1);
3611    }
3612    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3613    pub struct Ncodr_SPEC;
3614    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3615    impl Ncodr {
3616        #[doc = "Output CMOS"]
3617        pub const _0: Self = Self::new(0);
3618
3619        #[doc = "Output NMOS open-drain"]
3620        pub const _1: Self = Self::new(1);
3621    }
3622}
3623#[doc(hidden)]
3624#[derive(Copy, Clone, Eq, PartialEq)]
3625pub struct P008Pfs_SPEC;
3626impl crate::sealed::RegSpec for P008Pfs_SPEC {
3627    type DataType = u32;
3628}
3629
3630#[doc = "Port 008 Pin Function Select Register"]
3631pub type P008Pfs = crate::RegValueT<P008Pfs_SPEC>;
3632
3633impl P008Pfs {
3634    #[doc = "Port Output Data"]
3635    #[inline(always)]
3636    pub fn podr(
3637        self,
3638    ) -> crate::common::RegisterField<
3639        0,
3640        0x1,
3641        1,
3642        0,
3643        p008pfs::Podr,
3644        p008pfs::Podr,
3645        P008Pfs_SPEC,
3646        crate::common::RW,
3647    > {
3648        crate::common::RegisterField::<
3649            0,
3650            0x1,
3651            1,
3652            0,
3653            p008pfs::Podr,
3654            p008pfs::Podr,
3655            P008Pfs_SPEC,
3656            crate::common::RW,
3657        >::from_register(self, 0)
3658    }
3659
3660    #[doc = "Port State"]
3661    #[inline(always)]
3662    pub fn pidr(
3663        self,
3664    ) -> crate::common::RegisterField<
3665        1,
3666        0x1,
3667        1,
3668        0,
3669        p008pfs::Pidr,
3670        p008pfs::Pidr,
3671        P008Pfs_SPEC,
3672        crate::common::R,
3673    > {
3674        crate::common::RegisterField::<
3675            1,
3676            0x1,
3677            1,
3678            0,
3679            p008pfs::Pidr,
3680            p008pfs::Pidr,
3681            P008Pfs_SPEC,
3682            crate::common::R,
3683        >::from_register(self, 0)
3684    }
3685
3686    #[doc = "Port Direction"]
3687    #[inline(always)]
3688    pub fn pdr(
3689        self,
3690    ) -> crate::common::RegisterField<
3691        2,
3692        0x1,
3693        1,
3694        0,
3695        p008pfs::Pdr,
3696        p008pfs::Pdr,
3697        P008Pfs_SPEC,
3698        crate::common::RW,
3699    > {
3700        crate::common::RegisterField::<
3701            2,
3702            0x1,
3703            1,
3704            0,
3705            p008pfs::Pdr,
3706            p008pfs::Pdr,
3707            P008Pfs_SPEC,
3708            crate::common::RW,
3709        >::from_register(self, 0)
3710    }
3711
3712    #[doc = "Pull-up Control"]
3713    #[inline(always)]
3714    pub fn pcr(
3715        self,
3716    ) -> crate::common::RegisterField<
3717        4,
3718        0x1,
3719        1,
3720        0,
3721        p008pfs::Pcr,
3722        p008pfs::Pcr,
3723        P008Pfs_SPEC,
3724        crate::common::RW,
3725    > {
3726        crate::common::RegisterField::<
3727            4,
3728            0x1,
3729            1,
3730            0,
3731            p008pfs::Pcr,
3732            p008pfs::Pcr,
3733            P008Pfs_SPEC,
3734            crate::common::RW,
3735        >::from_register(self, 0)
3736    }
3737
3738    #[doc = "N-Channel Open-Drain Control"]
3739    #[inline(always)]
3740    pub fn ncodr(
3741        self,
3742    ) -> crate::common::RegisterField<
3743        6,
3744        0x1,
3745        1,
3746        0,
3747        p008pfs::Ncodr,
3748        p008pfs::Ncodr,
3749        P008Pfs_SPEC,
3750        crate::common::RW,
3751    > {
3752        crate::common::RegisterField::<
3753            6,
3754            0x1,
3755            1,
3756            0,
3757            p008pfs::Ncodr,
3758            p008pfs::Ncodr,
3759            P008Pfs_SPEC,
3760            crate::common::RW,
3761        >::from_register(self, 0)
3762    }
3763
3764    #[doc = "IRQ Input Enable"]
3765    #[inline(always)]
3766    pub fn isel(
3767        self,
3768    ) -> crate::common::RegisterField<
3769        14,
3770        0x1,
3771        1,
3772        0,
3773        p008pfs::Isel,
3774        p008pfs::Isel,
3775        P008Pfs_SPEC,
3776        crate::common::RW,
3777    > {
3778        crate::common::RegisterField::<
3779            14,
3780            0x1,
3781            1,
3782            0,
3783            p008pfs::Isel,
3784            p008pfs::Isel,
3785            P008Pfs_SPEC,
3786            crate::common::RW,
3787        >::from_register(self, 0)
3788    }
3789
3790    #[doc = "Analog Input Enable"]
3791    #[inline(always)]
3792    pub fn asel(
3793        self,
3794    ) -> crate::common::RegisterField<
3795        15,
3796        0x1,
3797        1,
3798        0,
3799        p008pfs::Asel,
3800        p008pfs::Asel,
3801        P008Pfs_SPEC,
3802        crate::common::RW,
3803    > {
3804        crate::common::RegisterField::<
3805            15,
3806            0x1,
3807            1,
3808            0,
3809            p008pfs::Asel,
3810            p008pfs::Asel,
3811            P008Pfs_SPEC,
3812            crate::common::RW,
3813        >::from_register(self, 0)
3814    }
3815
3816    #[doc = "Port Mode Control"]
3817    #[inline(always)]
3818    pub fn pmr(
3819        self,
3820    ) -> crate::common::RegisterField<
3821        16,
3822        0x1,
3823        1,
3824        0,
3825        p008pfs::Pmr,
3826        p008pfs::Pmr,
3827        P008Pfs_SPEC,
3828        crate::common::RW,
3829    > {
3830        crate::common::RegisterField::<
3831            16,
3832            0x1,
3833            1,
3834            0,
3835            p008pfs::Pmr,
3836            p008pfs::Pmr,
3837            P008Pfs_SPEC,
3838            crate::common::RW,
3839        >::from_register(self, 0)
3840    }
3841
3842    #[doc = "Peripheral Select"]
3843    #[inline(always)]
3844    pub fn psel(
3845        self,
3846    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P008Pfs_SPEC, crate::common::RW> {
3847        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P008Pfs_SPEC,crate::common::RW>::from_register(self,0)
3848    }
3849}
3850impl ::core::default::Default for P008Pfs {
3851    #[inline(always)]
3852    fn default() -> P008Pfs {
3853        <crate::RegValueT<P008Pfs_SPEC> as RegisterValue<_>>::new(66576)
3854    }
3855}
3856pub mod p008pfs {
3857
3858    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3859    pub struct Podr_SPEC;
3860    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3861    impl Podr {
3862        #[doc = "Output low"]
3863        pub const _0: Self = Self::new(0);
3864
3865        #[doc = "Output high"]
3866        pub const _1: Self = Self::new(1);
3867    }
3868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3869    pub struct Pidr_SPEC;
3870    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3871    impl Pidr {
3872        #[doc = "Low level"]
3873        pub const _0: Self = Self::new(0);
3874
3875        #[doc = "High level"]
3876        pub const _1: Self = Self::new(1);
3877    }
3878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3879    pub struct Pdr_SPEC;
3880    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3881    impl Pdr {
3882        #[doc = "Input (functions as an input pin)"]
3883        pub const _0: Self = Self::new(0);
3884
3885        #[doc = "Output (functions as an output pin)"]
3886        pub const _1: Self = Self::new(1);
3887    }
3888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3889    pub struct Pcr_SPEC;
3890    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3891    impl Pcr {
3892        #[doc = "Disable input pull-up"]
3893        pub const _0: Self = Self::new(0);
3894
3895        #[doc = "Enable input pull-up"]
3896        pub const _1: Self = Self::new(1);
3897    }
3898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3899    pub struct Ncodr_SPEC;
3900    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3901    impl Ncodr {
3902        #[doc = "Output CMOS"]
3903        pub const _0: Self = Self::new(0);
3904
3905        #[doc = "Output NMOS open-drain"]
3906        pub const _1: Self = Self::new(1);
3907    }
3908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3909    pub struct Isel_SPEC;
3910    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3911    impl Isel {
3912        #[doc = "Do not use as IRQn input pin"]
3913        pub const _0: Self = Self::new(0);
3914
3915        #[doc = "Use as IRQn input pin"]
3916        pub const _1: Self = Self::new(1);
3917    }
3918    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3919    pub struct Asel_SPEC;
3920    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3921    impl Asel {
3922        #[doc = "Do not use as analog pin"]
3923        pub const _0: Self = Self::new(0);
3924
3925        #[doc = "Use as analog pin"]
3926        pub const _1: Self = Self::new(1);
3927    }
3928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3929    pub struct Pmr_SPEC;
3930    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3931    impl Pmr {
3932        #[doc = "Use as general I/O pin"]
3933        pub const _0: Self = Self::new(0);
3934
3935        #[doc = "Use as I/O port for peripheral functions"]
3936        pub const _1: Self = Self::new(1);
3937    }
3938}
3939#[doc(hidden)]
3940#[derive(Copy, Clone, Eq, PartialEq)]
3941pub struct P008PfsHa_SPEC;
3942impl crate::sealed::RegSpec for P008PfsHa_SPEC {
3943    type DataType = u16;
3944}
3945
3946#[doc = "Port 008 Pin Function Select Register"]
3947pub type P008PfsHa = crate::RegValueT<P008PfsHa_SPEC>;
3948
3949impl P008PfsHa {
3950    #[doc = "Port Output Data"]
3951    #[inline(always)]
3952    pub fn podr(
3953        self,
3954    ) -> crate::common::RegisterField<
3955        0,
3956        0x1,
3957        1,
3958        0,
3959        p008pfs_ha::Podr,
3960        p008pfs_ha::Podr,
3961        P008PfsHa_SPEC,
3962        crate::common::RW,
3963    > {
3964        crate::common::RegisterField::<
3965            0,
3966            0x1,
3967            1,
3968            0,
3969            p008pfs_ha::Podr,
3970            p008pfs_ha::Podr,
3971            P008PfsHa_SPEC,
3972            crate::common::RW,
3973        >::from_register(self, 0)
3974    }
3975
3976    #[doc = "Port State"]
3977    #[inline(always)]
3978    pub fn pidr(
3979        self,
3980    ) -> crate::common::RegisterField<
3981        1,
3982        0x1,
3983        1,
3984        0,
3985        p008pfs_ha::Pidr,
3986        p008pfs_ha::Pidr,
3987        P008PfsHa_SPEC,
3988        crate::common::R,
3989    > {
3990        crate::common::RegisterField::<
3991            1,
3992            0x1,
3993            1,
3994            0,
3995            p008pfs_ha::Pidr,
3996            p008pfs_ha::Pidr,
3997            P008PfsHa_SPEC,
3998            crate::common::R,
3999        >::from_register(self, 0)
4000    }
4001
4002    #[doc = "Port Direction"]
4003    #[inline(always)]
4004    pub fn pdr(
4005        self,
4006    ) -> crate::common::RegisterField<
4007        2,
4008        0x1,
4009        1,
4010        0,
4011        p008pfs_ha::Pdr,
4012        p008pfs_ha::Pdr,
4013        P008PfsHa_SPEC,
4014        crate::common::RW,
4015    > {
4016        crate::common::RegisterField::<
4017            2,
4018            0x1,
4019            1,
4020            0,
4021            p008pfs_ha::Pdr,
4022            p008pfs_ha::Pdr,
4023            P008PfsHa_SPEC,
4024            crate::common::RW,
4025        >::from_register(self, 0)
4026    }
4027
4028    #[doc = "Pull-up Control"]
4029    #[inline(always)]
4030    pub fn pcr(
4031        self,
4032    ) -> crate::common::RegisterField<
4033        4,
4034        0x1,
4035        1,
4036        0,
4037        p008pfs_ha::Pcr,
4038        p008pfs_ha::Pcr,
4039        P008PfsHa_SPEC,
4040        crate::common::RW,
4041    > {
4042        crate::common::RegisterField::<
4043            4,
4044            0x1,
4045            1,
4046            0,
4047            p008pfs_ha::Pcr,
4048            p008pfs_ha::Pcr,
4049            P008PfsHa_SPEC,
4050            crate::common::RW,
4051        >::from_register(self, 0)
4052    }
4053
4054    #[doc = "N-Channel Open-Drain Control"]
4055    #[inline(always)]
4056    pub fn ncodr(
4057        self,
4058    ) -> crate::common::RegisterField<
4059        6,
4060        0x1,
4061        1,
4062        0,
4063        p008pfs_ha::Ncodr,
4064        p008pfs_ha::Ncodr,
4065        P008PfsHa_SPEC,
4066        crate::common::RW,
4067    > {
4068        crate::common::RegisterField::<
4069            6,
4070            0x1,
4071            1,
4072            0,
4073            p008pfs_ha::Ncodr,
4074            p008pfs_ha::Ncodr,
4075            P008PfsHa_SPEC,
4076            crate::common::RW,
4077        >::from_register(self, 0)
4078    }
4079
4080    #[doc = "IRQ Input Enable"]
4081    #[inline(always)]
4082    pub fn isel(
4083        self,
4084    ) -> crate::common::RegisterField<
4085        14,
4086        0x1,
4087        1,
4088        0,
4089        p008pfs_ha::Isel,
4090        p008pfs_ha::Isel,
4091        P008PfsHa_SPEC,
4092        crate::common::RW,
4093    > {
4094        crate::common::RegisterField::<
4095            14,
4096            0x1,
4097            1,
4098            0,
4099            p008pfs_ha::Isel,
4100            p008pfs_ha::Isel,
4101            P008PfsHa_SPEC,
4102            crate::common::RW,
4103        >::from_register(self, 0)
4104    }
4105
4106    #[doc = "Analog Input Enable"]
4107    #[inline(always)]
4108    pub fn asel(
4109        self,
4110    ) -> crate::common::RegisterField<
4111        15,
4112        0x1,
4113        1,
4114        0,
4115        p008pfs_ha::Asel,
4116        p008pfs_ha::Asel,
4117        P008PfsHa_SPEC,
4118        crate::common::RW,
4119    > {
4120        crate::common::RegisterField::<
4121            15,
4122            0x1,
4123            1,
4124            0,
4125            p008pfs_ha::Asel,
4126            p008pfs_ha::Asel,
4127            P008PfsHa_SPEC,
4128            crate::common::RW,
4129        >::from_register(self, 0)
4130    }
4131}
4132impl ::core::default::Default for P008PfsHa {
4133    #[inline(always)]
4134    fn default() -> P008PfsHa {
4135        <crate::RegValueT<P008PfsHa_SPEC> as RegisterValue<_>>::new(1040)
4136    }
4137}
4138pub mod p008pfs_ha {
4139
4140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4141    pub struct Podr_SPEC;
4142    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4143    impl Podr {
4144        #[doc = "Output low"]
4145        pub const _0: Self = Self::new(0);
4146
4147        #[doc = "Output high"]
4148        pub const _1: Self = Self::new(1);
4149    }
4150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4151    pub struct Pidr_SPEC;
4152    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4153    impl Pidr {
4154        #[doc = "Low level"]
4155        pub const _0: Self = Self::new(0);
4156
4157        #[doc = "High level"]
4158        pub const _1: Self = Self::new(1);
4159    }
4160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4161    pub struct Pdr_SPEC;
4162    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4163    impl Pdr {
4164        #[doc = "Input (functions as an input pin)"]
4165        pub const _0: Self = Self::new(0);
4166
4167        #[doc = "Output (functions as an output pin)"]
4168        pub const _1: Self = Self::new(1);
4169    }
4170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4171    pub struct Pcr_SPEC;
4172    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4173    impl Pcr {
4174        #[doc = "Disable input pull-up"]
4175        pub const _0: Self = Self::new(0);
4176
4177        #[doc = "Enable input pull-up"]
4178        pub const _1: Self = Self::new(1);
4179    }
4180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4181    pub struct Ncodr_SPEC;
4182    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4183    impl Ncodr {
4184        #[doc = "Output CMOS"]
4185        pub const _0: Self = Self::new(0);
4186
4187        #[doc = "Output NMOS open-drain"]
4188        pub const _1: Self = Self::new(1);
4189    }
4190    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4191    pub struct Isel_SPEC;
4192    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4193    impl Isel {
4194        #[doc = "Do not use as IRQn input pin"]
4195        pub const _0: Self = Self::new(0);
4196
4197        #[doc = "Use as IRQn input pin"]
4198        pub const _1: Self = Self::new(1);
4199    }
4200    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4201    pub struct Asel_SPEC;
4202    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4203    impl Asel {
4204        #[doc = "Do not use as analog pin"]
4205        pub const _0: Self = Self::new(0);
4206
4207        #[doc = "Use as analog pin"]
4208        pub const _1: Self = Self::new(1);
4209    }
4210}
4211#[doc(hidden)]
4212#[derive(Copy, Clone, Eq, PartialEq)]
4213pub struct P008PfsBy_SPEC;
4214impl crate::sealed::RegSpec for P008PfsBy_SPEC {
4215    type DataType = u8;
4216}
4217
4218#[doc = "Port 008 Pin Function Select Register"]
4219pub type P008PfsBy = crate::RegValueT<P008PfsBy_SPEC>;
4220
4221impl P008PfsBy {
4222    #[doc = "Port Output Data"]
4223    #[inline(always)]
4224    pub fn podr(
4225        self,
4226    ) -> crate::common::RegisterField<
4227        0,
4228        0x1,
4229        1,
4230        0,
4231        p008pfs_by::Podr,
4232        p008pfs_by::Podr,
4233        P008PfsBy_SPEC,
4234        crate::common::RW,
4235    > {
4236        crate::common::RegisterField::<
4237            0,
4238            0x1,
4239            1,
4240            0,
4241            p008pfs_by::Podr,
4242            p008pfs_by::Podr,
4243            P008PfsBy_SPEC,
4244            crate::common::RW,
4245        >::from_register(self, 0)
4246    }
4247
4248    #[doc = "Port State"]
4249    #[inline(always)]
4250    pub fn pidr(
4251        self,
4252    ) -> crate::common::RegisterField<
4253        1,
4254        0x1,
4255        1,
4256        0,
4257        p008pfs_by::Pidr,
4258        p008pfs_by::Pidr,
4259        P008PfsBy_SPEC,
4260        crate::common::R,
4261    > {
4262        crate::common::RegisterField::<
4263            1,
4264            0x1,
4265            1,
4266            0,
4267            p008pfs_by::Pidr,
4268            p008pfs_by::Pidr,
4269            P008PfsBy_SPEC,
4270            crate::common::R,
4271        >::from_register(self, 0)
4272    }
4273
4274    #[doc = "Port Direction"]
4275    #[inline(always)]
4276    pub fn pdr(
4277        self,
4278    ) -> crate::common::RegisterField<
4279        2,
4280        0x1,
4281        1,
4282        0,
4283        p008pfs_by::Pdr,
4284        p008pfs_by::Pdr,
4285        P008PfsBy_SPEC,
4286        crate::common::RW,
4287    > {
4288        crate::common::RegisterField::<
4289            2,
4290            0x1,
4291            1,
4292            0,
4293            p008pfs_by::Pdr,
4294            p008pfs_by::Pdr,
4295            P008PfsBy_SPEC,
4296            crate::common::RW,
4297        >::from_register(self, 0)
4298    }
4299
4300    #[doc = "Pull-up Control"]
4301    #[inline(always)]
4302    pub fn pcr(
4303        self,
4304    ) -> crate::common::RegisterField<
4305        4,
4306        0x1,
4307        1,
4308        0,
4309        p008pfs_by::Pcr,
4310        p008pfs_by::Pcr,
4311        P008PfsBy_SPEC,
4312        crate::common::RW,
4313    > {
4314        crate::common::RegisterField::<
4315            4,
4316            0x1,
4317            1,
4318            0,
4319            p008pfs_by::Pcr,
4320            p008pfs_by::Pcr,
4321            P008PfsBy_SPEC,
4322            crate::common::RW,
4323        >::from_register(self, 0)
4324    }
4325
4326    #[doc = "N-Channel Open-Drain Control"]
4327    #[inline(always)]
4328    pub fn ncodr(
4329        self,
4330    ) -> crate::common::RegisterField<
4331        6,
4332        0x1,
4333        1,
4334        0,
4335        p008pfs_by::Ncodr,
4336        p008pfs_by::Ncodr,
4337        P008PfsBy_SPEC,
4338        crate::common::RW,
4339    > {
4340        crate::common::RegisterField::<
4341            6,
4342            0x1,
4343            1,
4344            0,
4345            p008pfs_by::Ncodr,
4346            p008pfs_by::Ncodr,
4347            P008PfsBy_SPEC,
4348            crate::common::RW,
4349        >::from_register(self, 0)
4350    }
4351}
4352impl ::core::default::Default for P008PfsBy {
4353    #[inline(always)]
4354    fn default() -> P008PfsBy {
4355        <crate::RegValueT<P008PfsBy_SPEC> as RegisterValue<_>>::new(16)
4356    }
4357}
4358pub mod p008pfs_by {
4359
4360    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4361    pub struct Podr_SPEC;
4362    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4363    impl Podr {
4364        #[doc = "Output low"]
4365        pub const _0: Self = Self::new(0);
4366
4367        #[doc = "Output high"]
4368        pub const _1: Self = Self::new(1);
4369    }
4370    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4371    pub struct Pidr_SPEC;
4372    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4373    impl Pidr {
4374        #[doc = "Low level"]
4375        pub const _0: Self = Self::new(0);
4376
4377        #[doc = "High level"]
4378        pub const _1: Self = Self::new(1);
4379    }
4380    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4381    pub struct Pdr_SPEC;
4382    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4383    impl Pdr {
4384        #[doc = "Input (functions as an input pin)"]
4385        pub const _0: Self = Self::new(0);
4386
4387        #[doc = "Output (functions as an output pin)"]
4388        pub const _1: Self = Self::new(1);
4389    }
4390    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4391    pub struct Pcr_SPEC;
4392    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4393    impl Pcr {
4394        #[doc = "Disable input pull-up"]
4395        pub const _0: Self = Self::new(0);
4396
4397        #[doc = "Enable input pull-up"]
4398        pub const _1: Self = Self::new(1);
4399    }
4400    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4401    pub struct Ncodr_SPEC;
4402    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4403    impl Ncodr {
4404        #[doc = "Output CMOS"]
4405        pub const _0: Self = Self::new(0);
4406
4407        #[doc = "Output NMOS open-drain"]
4408        pub const _1: Self = Self::new(1);
4409    }
4410}
4411#[doc(hidden)]
4412#[derive(Copy, Clone, Eq, PartialEq)]
4413pub struct P0Pfs_SPEC;
4414impl crate::sealed::RegSpec for P0Pfs_SPEC {
4415    type DataType = u32;
4416}
4417
4418#[doc = "Port 0%s Pin Function Select Register"]
4419pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
4420
4421impl P0Pfs {
4422    #[doc = "Port Output Data"]
4423    #[inline(always)]
4424    pub fn podr(
4425        self,
4426    ) -> crate::common::RegisterField<
4427        0,
4428        0x1,
4429        1,
4430        0,
4431        p0pfs::Podr,
4432        p0pfs::Podr,
4433        P0Pfs_SPEC,
4434        crate::common::RW,
4435    > {
4436        crate::common::RegisterField::<
4437            0,
4438            0x1,
4439            1,
4440            0,
4441            p0pfs::Podr,
4442            p0pfs::Podr,
4443            P0Pfs_SPEC,
4444            crate::common::RW,
4445        >::from_register(self, 0)
4446    }
4447
4448    #[doc = "Port State"]
4449    #[inline(always)]
4450    pub fn pidr(
4451        self,
4452    ) -> crate::common::RegisterField<
4453        1,
4454        0x1,
4455        1,
4456        0,
4457        p0pfs::Pidr,
4458        p0pfs::Pidr,
4459        P0Pfs_SPEC,
4460        crate::common::R,
4461    > {
4462        crate::common::RegisterField::<
4463            1,
4464            0x1,
4465            1,
4466            0,
4467            p0pfs::Pidr,
4468            p0pfs::Pidr,
4469            P0Pfs_SPEC,
4470            crate::common::R,
4471        >::from_register(self, 0)
4472    }
4473
4474    #[doc = "Port Direction"]
4475    #[inline(always)]
4476    pub fn pdr(
4477        self,
4478    ) -> crate::common::RegisterField<
4479        2,
4480        0x1,
4481        1,
4482        0,
4483        p0pfs::Pdr,
4484        p0pfs::Pdr,
4485        P0Pfs_SPEC,
4486        crate::common::RW,
4487    > {
4488        crate::common::RegisterField::<
4489            2,
4490            0x1,
4491            1,
4492            0,
4493            p0pfs::Pdr,
4494            p0pfs::Pdr,
4495            P0Pfs_SPEC,
4496            crate::common::RW,
4497        >::from_register(self, 0)
4498    }
4499
4500    #[doc = "Pull-up Control"]
4501    #[inline(always)]
4502    pub fn pcr(
4503        self,
4504    ) -> crate::common::RegisterField<
4505        4,
4506        0x1,
4507        1,
4508        0,
4509        p0pfs::Pcr,
4510        p0pfs::Pcr,
4511        P0Pfs_SPEC,
4512        crate::common::RW,
4513    > {
4514        crate::common::RegisterField::<
4515            4,
4516            0x1,
4517            1,
4518            0,
4519            p0pfs::Pcr,
4520            p0pfs::Pcr,
4521            P0Pfs_SPEC,
4522            crate::common::RW,
4523        >::from_register(self, 0)
4524    }
4525
4526    #[doc = "N-Channel Open-Drain Control"]
4527    #[inline(always)]
4528    pub fn ncodr(
4529        self,
4530    ) -> crate::common::RegisterField<
4531        6,
4532        0x1,
4533        1,
4534        0,
4535        p0pfs::Ncodr,
4536        p0pfs::Ncodr,
4537        P0Pfs_SPEC,
4538        crate::common::RW,
4539    > {
4540        crate::common::RegisterField::<
4541            6,
4542            0x1,
4543            1,
4544            0,
4545            p0pfs::Ncodr,
4546            p0pfs::Ncodr,
4547            P0Pfs_SPEC,
4548            crate::common::RW,
4549        >::from_register(self, 0)
4550    }
4551
4552    #[doc = "IRQ Input Enable"]
4553    #[inline(always)]
4554    pub fn isel(
4555        self,
4556    ) -> crate::common::RegisterField<
4557        14,
4558        0x1,
4559        1,
4560        0,
4561        p0pfs::Isel,
4562        p0pfs::Isel,
4563        P0Pfs_SPEC,
4564        crate::common::RW,
4565    > {
4566        crate::common::RegisterField::<
4567            14,
4568            0x1,
4569            1,
4570            0,
4571            p0pfs::Isel,
4572            p0pfs::Isel,
4573            P0Pfs_SPEC,
4574            crate::common::RW,
4575        >::from_register(self, 0)
4576    }
4577
4578    #[doc = "Analog Input Enable"]
4579    #[inline(always)]
4580    pub fn asel(
4581        self,
4582    ) -> crate::common::RegisterField<
4583        15,
4584        0x1,
4585        1,
4586        0,
4587        p0pfs::Asel,
4588        p0pfs::Asel,
4589        P0Pfs_SPEC,
4590        crate::common::RW,
4591    > {
4592        crate::common::RegisterField::<
4593            15,
4594            0x1,
4595            1,
4596            0,
4597            p0pfs::Asel,
4598            p0pfs::Asel,
4599            P0Pfs_SPEC,
4600            crate::common::RW,
4601        >::from_register(self, 0)
4602    }
4603
4604    #[doc = "Port Mode Control"]
4605    #[inline(always)]
4606    pub fn pmr(
4607        self,
4608    ) -> crate::common::RegisterField<
4609        16,
4610        0x1,
4611        1,
4612        0,
4613        p0pfs::Pmr,
4614        p0pfs::Pmr,
4615        P0Pfs_SPEC,
4616        crate::common::RW,
4617    > {
4618        crate::common::RegisterField::<
4619            16,
4620            0x1,
4621            1,
4622            0,
4623            p0pfs::Pmr,
4624            p0pfs::Pmr,
4625            P0Pfs_SPEC,
4626            crate::common::RW,
4627        >::from_register(self, 0)
4628    }
4629
4630    #[doc = "Peripheral Select"]
4631    #[inline(always)]
4632    pub fn psel(
4633        self,
4634    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
4635        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
4636    }
4637}
4638impl ::core::default::Default for P0Pfs {
4639    #[inline(always)]
4640    fn default() -> P0Pfs {
4641        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
4642    }
4643}
4644pub mod p0pfs {
4645
4646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4647    pub struct Podr_SPEC;
4648    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4649    impl Podr {
4650        #[doc = "Output low"]
4651        pub const _0: Self = Self::new(0);
4652
4653        #[doc = "Output high"]
4654        pub const _1: Self = Self::new(1);
4655    }
4656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4657    pub struct Pidr_SPEC;
4658    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4659    impl Pidr {
4660        #[doc = "Low level"]
4661        pub const _0: Self = Self::new(0);
4662
4663        #[doc = "High level"]
4664        pub const _1: Self = Self::new(1);
4665    }
4666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4667    pub struct Pdr_SPEC;
4668    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4669    impl Pdr {
4670        #[doc = "Input (functions as an input pin)"]
4671        pub const _0: Self = Self::new(0);
4672
4673        #[doc = "Output (functions as an output pin)"]
4674        pub const _1: Self = Self::new(1);
4675    }
4676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4677    pub struct Pcr_SPEC;
4678    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4679    impl Pcr {
4680        #[doc = "Disable input pull-up"]
4681        pub const _0: Self = Self::new(0);
4682
4683        #[doc = "Enable input pull-up"]
4684        pub const _1: Self = Self::new(1);
4685    }
4686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4687    pub struct Ncodr_SPEC;
4688    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4689    impl Ncodr {
4690        #[doc = "Output CMOS"]
4691        pub const _0: Self = Self::new(0);
4692
4693        #[doc = "Output NMOS open-drain"]
4694        pub const _1: Self = Self::new(1);
4695    }
4696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4697    pub struct Isel_SPEC;
4698    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4699    impl Isel {
4700        #[doc = "Do not use as IRQn input pin"]
4701        pub const _0: Self = Self::new(0);
4702
4703        #[doc = "Use as IRQn input pin"]
4704        pub const _1: Self = Self::new(1);
4705    }
4706    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4707    pub struct Asel_SPEC;
4708    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4709    impl Asel {
4710        #[doc = "Do not use as analog pin"]
4711        pub const _0: Self = Self::new(0);
4712
4713        #[doc = "Use as analog pin"]
4714        pub const _1: Self = Self::new(1);
4715    }
4716    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4717    pub struct Pmr_SPEC;
4718    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4719    impl Pmr {
4720        #[doc = "Use as general I/O pin"]
4721        pub const _0: Self = Self::new(0);
4722
4723        #[doc = "Use as I/O port for peripheral functions"]
4724        pub const _1: Self = Self::new(1);
4725    }
4726}
4727#[doc(hidden)]
4728#[derive(Copy, Clone, Eq, PartialEq)]
4729pub struct P0PfsHa_SPEC;
4730impl crate::sealed::RegSpec for P0PfsHa_SPEC {
4731    type DataType = u16;
4732}
4733
4734#[doc = "Port 0%s Pin Function Select Register"]
4735pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
4736
4737impl P0PfsHa {
4738    #[doc = "Port Output Data"]
4739    #[inline(always)]
4740    pub fn podr(
4741        self,
4742    ) -> crate::common::RegisterField<
4743        0,
4744        0x1,
4745        1,
4746        0,
4747        p0pfs_ha::Podr,
4748        p0pfs_ha::Podr,
4749        P0PfsHa_SPEC,
4750        crate::common::RW,
4751    > {
4752        crate::common::RegisterField::<
4753            0,
4754            0x1,
4755            1,
4756            0,
4757            p0pfs_ha::Podr,
4758            p0pfs_ha::Podr,
4759            P0PfsHa_SPEC,
4760            crate::common::RW,
4761        >::from_register(self, 0)
4762    }
4763
4764    #[doc = "Port State"]
4765    #[inline(always)]
4766    pub fn pidr(
4767        self,
4768    ) -> crate::common::RegisterField<
4769        1,
4770        0x1,
4771        1,
4772        0,
4773        p0pfs_ha::Pidr,
4774        p0pfs_ha::Pidr,
4775        P0PfsHa_SPEC,
4776        crate::common::R,
4777    > {
4778        crate::common::RegisterField::<
4779            1,
4780            0x1,
4781            1,
4782            0,
4783            p0pfs_ha::Pidr,
4784            p0pfs_ha::Pidr,
4785            P0PfsHa_SPEC,
4786            crate::common::R,
4787        >::from_register(self, 0)
4788    }
4789
4790    #[doc = "Port Direction"]
4791    #[inline(always)]
4792    pub fn pdr(
4793        self,
4794    ) -> crate::common::RegisterField<
4795        2,
4796        0x1,
4797        1,
4798        0,
4799        p0pfs_ha::Pdr,
4800        p0pfs_ha::Pdr,
4801        P0PfsHa_SPEC,
4802        crate::common::RW,
4803    > {
4804        crate::common::RegisterField::<
4805            2,
4806            0x1,
4807            1,
4808            0,
4809            p0pfs_ha::Pdr,
4810            p0pfs_ha::Pdr,
4811            P0PfsHa_SPEC,
4812            crate::common::RW,
4813        >::from_register(self, 0)
4814    }
4815
4816    #[doc = "Pull-up Control"]
4817    #[inline(always)]
4818    pub fn pcr(
4819        self,
4820    ) -> crate::common::RegisterField<
4821        4,
4822        0x1,
4823        1,
4824        0,
4825        p0pfs_ha::Pcr,
4826        p0pfs_ha::Pcr,
4827        P0PfsHa_SPEC,
4828        crate::common::RW,
4829    > {
4830        crate::common::RegisterField::<
4831            4,
4832            0x1,
4833            1,
4834            0,
4835            p0pfs_ha::Pcr,
4836            p0pfs_ha::Pcr,
4837            P0PfsHa_SPEC,
4838            crate::common::RW,
4839        >::from_register(self, 0)
4840    }
4841
4842    #[doc = "N-Channel Open-Drain Control"]
4843    #[inline(always)]
4844    pub fn ncodr(
4845        self,
4846    ) -> crate::common::RegisterField<
4847        6,
4848        0x1,
4849        1,
4850        0,
4851        p0pfs_ha::Ncodr,
4852        p0pfs_ha::Ncodr,
4853        P0PfsHa_SPEC,
4854        crate::common::RW,
4855    > {
4856        crate::common::RegisterField::<
4857            6,
4858            0x1,
4859            1,
4860            0,
4861            p0pfs_ha::Ncodr,
4862            p0pfs_ha::Ncodr,
4863            P0PfsHa_SPEC,
4864            crate::common::RW,
4865        >::from_register(self, 0)
4866    }
4867
4868    #[doc = "IRQ Input Enable"]
4869    #[inline(always)]
4870    pub fn isel(
4871        self,
4872    ) -> crate::common::RegisterField<
4873        14,
4874        0x1,
4875        1,
4876        0,
4877        p0pfs_ha::Isel,
4878        p0pfs_ha::Isel,
4879        P0PfsHa_SPEC,
4880        crate::common::RW,
4881    > {
4882        crate::common::RegisterField::<
4883            14,
4884            0x1,
4885            1,
4886            0,
4887            p0pfs_ha::Isel,
4888            p0pfs_ha::Isel,
4889            P0PfsHa_SPEC,
4890            crate::common::RW,
4891        >::from_register(self, 0)
4892    }
4893
4894    #[doc = "Analog Input Enable"]
4895    #[inline(always)]
4896    pub fn asel(
4897        self,
4898    ) -> crate::common::RegisterField<
4899        15,
4900        0x1,
4901        1,
4902        0,
4903        p0pfs_ha::Asel,
4904        p0pfs_ha::Asel,
4905        P0PfsHa_SPEC,
4906        crate::common::RW,
4907    > {
4908        crate::common::RegisterField::<
4909            15,
4910            0x1,
4911            1,
4912            0,
4913            p0pfs_ha::Asel,
4914            p0pfs_ha::Asel,
4915            P0PfsHa_SPEC,
4916            crate::common::RW,
4917        >::from_register(self, 0)
4918    }
4919}
4920impl ::core::default::Default for P0PfsHa {
4921    #[inline(always)]
4922    fn default() -> P0PfsHa {
4923        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
4924    }
4925}
4926pub mod p0pfs_ha {
4927
4928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4929    pub struct Podr_SPEC;
4930    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4931    impl Podr {
4932        #[doc = "Output low"]
4933        pub const _0: Self = Self::new(0);
4934
4935        #[doc = "Output high"]
4936        pub const _1: Self = Self::new(1);
4937    }
4938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4939    pub struct Pidr_SPEC;
4940    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4941    impl Pidr {
4942        #[doc = "Low level"]
4943        pub const _0: Self = Self::new(0);
4944
4945        #[doc = "High level"]
4946        pub const _1: Self = Self::new(1);
4947    }
4948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4949    pub struct Pdr_SPEC;
4950    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4951    impl Pdr {
4952        #[doc = "Input (functions as an input pin)"]
4953        pub const _0: Self = Self::new(0);
4954
4955        #[doc = "Output (functions as an output pin)"]
4956        pub const _1: Self = Self::new(1);
4957    }
4958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4959    pub struct Pcr_SPEC;
4960    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4961    impl Pcr {
4962        #[doc = "Disable input pull-up"]
4963        pub const _0: Self = Self::new(0);
4964
4965        #[doc = "Enable input pull-up"]
4966        pub const _1: Self = Self::new(1);
4967    }
4968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4969    pub struct Ncodr_SPEC;
4970    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4971    impl Ncodr {
4972        #[doc = "Output CMOS"]
4973        pub const _0: Self = Self::new(0);
4974
4975        #[doc = "Output NMOS open-drain"]
4976        pub const _1: Self = Self::new(1);
4977    }
4978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4979    pub struct Isel_SPEC;
4980    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4981    impl Isel {
4982        #[doc = "Do not use as IRQn input pin"]
4983        pub const _0: Self = Self::new(0);
4984
4985        #[doc = "Use as IRQn input pin"]
4986        pub const _1: Self = Self::new(1);
4987    }
4988    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4989    pub struct Asel_SPEC;
4990    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4991    impl Asel {
4992        #[doc = "Do not use as analog pin"]
4993        pub const _0: Self = Self::new(0);
4994
4995        #[doc = "Use as analog pin"]
4996        pub const _1: Self = Self::new(1);
4997    }
4998}
4999#[doc(hidden)]
5000#[derive(Copy, Clone, Eq, PartialEq)]
5001pub struct P0PfsBy_SPEC;
5002impl crate::sealed::RegSpec for P0PfsBy_SPEC {
5003    type DataType = u8;
5004}
5005
5006#[doc = "Port 0%s Pin Function Select Register"]
5007pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
5008
5009impl P0PfsBy {
5010    #[doc = "Port Output Data"]
5011    #[inline(always)]
5012    pub fn podr(
5013        self,
5014    ) -> crate::common::RegisterField<
5015        0,
5016        0x1,
5017        1,
5018        0,
5019        p0pfs_by::Podr,
5020        p0pfs_by::Podr,
5021        P0PfsBy_SPEC,
5022        crate::common::RW,
5023    > {
5024        crate::common::RegisterField::<
5025            0,
5026            0x1,
5027            1,
5028            0,
5029            p0pfs_by::Podr,
5030            p0pfs_by::Podr,
5031            P0PfsBy_SPEC,
5032            crate::common::RW,
5033        >::from_register(self, 0)
5034    }
5035
5036    #[doc = "Port State"]
5037    #[inline(always)]
5038    pub fn pidr(
5039        self,
5040    ) -> crate::common::RegisterField<
5041        1,
5042        0x1,
5043        1,
5044        0,
5045        p0pfs_by::Pidr,
5046        p0pfs_by::Pidr,
5047        P0PfsBy_SPEC,
5048        crate::common::R,
5049    > {
5050        crate::common::RegisterField::<
5051            1,
5052            0x1,
5053            1,
5054            0,
5055            p0pfs_by::Pidr,
5056            p0pfs_by::Pidr,
5057            P0PfsBy_SPEC,
5058            crate::common::R,
5059        >::from_register(self, 0)
5060    }
5061
5062    #[doc = "Port Direction"]
5063    #[inline(always)]
5064    pub fn pdr(
5065        self,
5066    ) -> crate::common::RegisterField<
5067        2,
5068        0x1,
5069        1,
5070        0,
5071        p0pfs_by::Pdr,
5072        p0pfs_by::Pdr,
5073        P0PfsBy_SPEC,
5074        crate::common::RW,
5075    > {
5076        crate::common::RegisterField::<
5077            2,
5078            0x1,
5079            1,
5080            0,
5081            p0pfs_by::Pdr,
5082            p0pfs_by::Pdr,
5083            P0PfsBy_SPEC,
5084            crate::common::RW,
5085        >::from_register(self, 0)
5086    }
5087
5088    #[doc = "Pull-up Control"]
5089    #[inline(always)]
5090    pub fn pcr(
5091        self,
5092    ) -> crate::common::RegisterField<
5093        4,
5094        0x1,
5095        1,
5096        0,
5097        p0pfs_by::Pcr,
5098        p0pfs_by::Pcr,
5099        P0PfsBy_SPEC,
5100        crate::common::RW,
5101    > {
5102        crate::common::RegisterField::<
5103            4,
5104            0x1,
5105            1,
5106            0,
5107            p0pfs_by::Pcr,
5108            p0pfs_by::Pcr,
5109            P0PfsBy_SPEC,
5110            crate::common::RW,
5111        >::from_register(self, 0)
5112    }
5113
5114    #[doc = "N-Channel Open-Drain Control"]
5115    #[inline(always)]
5116    pub fn ncodr(
5117        self,
5118    ) -> crate::common::RegisterField<
5119        6,
5120        0x1,
5121        1,
5122        0,
5123        p0pfs_by::Ncodr,
5124        p0pfs_by::Ncodr,
5125        P0PfsBy_SPEC,
5126        crate::common::RW,
5127    > {
5128        crate::common::RegisterField::<
5129            6,
5130            0x1,
5131            1,
5132            0,
5133            p0pfs_by::Ncodr,
5134            p0pfs_by::Ncodr,
5135            P0PfsBy_SPEC,
5136            crate::common::RW,
5137        >::from_register(self, 0)
5138    }
5139}
5140impl ::core::default::Default for P0PfsBy {
5141    #[inline(always)]
5142    fn default() -> P0PfsBy {
5143        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
5144    }
5145}
5146pub mod p0pfs_by {
5147
5148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5149    pub struct Podr_SPEC;
5150    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5151    impl Podr {
5152        #[doc = "Output low"]
5153        pub const _0: Self = Self::new(0);
5154
5155        #[doc = "Output high"]
5156        pub const _1: Self = Self::new(1);
5157    }
5158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5159    pub struct Pidr_SPEC;
5160    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5161    impl Pidr {
5162        #[doc = "Low level"]
5163        pub const _0: Self = Self::new(0);
5164
5165        #[doc = "High level"]
5166        pub const _1: Self = Self::new(1);
5167    }
5168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5169    pub struct Pdr_SPEC;
5170    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5171    impl Pdr {
5172        #[doc = "Input (functions as an input pin)"]
5173        pub const _0: Self = Self::new(0);
5174
5175        #[doc = "Output (functions as an output pin)"]
5176        pub const _1: Self = Self::new(1);
5177    }
5178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5179    pub struct Pcr_SPEC;
5180    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5181    impl Pcr {
5182        #[doc = "Disable input pull-up"]
5183        pub const _0: Self = Self::new(0);
5184
5185        #[doc = "Enable input pull-up"]
5186        pub const _1: Self = Self::new(1);
5187    }
5188    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5189    pub struct Ncodr_SPEC;
5190    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5191    impl Ncodr {
5192        #[doc = "Output CMOS"]
5193        pub const _0: Self = Self::new(0);
5194
5195        #[doc = "Output NMOS open-drain"]
5196        pub const _1: Self = Self::new(1);
5197    }
5198}
5199#[doc(hidden)]
5200#[derive(Copy, Clone, Eq, PartialEq)]
5201pub struct P10Pfs_SPEC;
5202impl crate::sealed::RegSpec for P10Pfs_SPEC {
5203    type DataType = u32;
5204}
5205
5206#[doc = "Port 10%s Pin Function Select Register"]
5207pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
5208
5209impl P10Pfs {
5210    #[doc = "Port Output Data"]
5211    #[inline(always)]
5212    pub fn podr(
5213        self,
5214    ) -> crate::common::RegisterField<
5215        0,
5216        0x1,
5217        1,
5218        0,
5219        p10pfs::Podr,
5220        p10pfs::Podr,
5221        P10Pfs_SPEC,
5222        crate::common::RW,
5223    > {
5224        crate::common::RegisterField::<
5225            0,
5226            0x1,
5227            1,
5228            0,
5229            p10pfs::Podr,
5230            p10pfs::Podr,
5231            P10Pfs_SPEC,
5232            crate::common::RW,
5233        >::from_register(self, 0)
5234    }
5235
5236    #[doc = "Port State"]
5237    #[inline(always)]
5238    pub fn pidr(
5239        self,
5240    ) -> crate::common::RegisterField<
5241        1,
5242        0x1,
5243        1,
5244        0,
5245        p10pfs::Pidr,
5246        p10pfs::Pidr,
5247        P10Pfs_SPEC,
5248        crate::common::R,
5249    > {
5250        crate::common::RegisterField::<
5251            1,
5252            0x1,
5253            1,
5254            0,
5255            p10pfs::Pidr,
5256            p10pfs::Pidr,
5257            P10Pfs_SPEC,
5258            crate::common::R,
5259        >::from_register(self, 0)
5260    }
5261
5262    #[doc = "Port Direction"]
5263    #[inline(always)]
5264    pub fn pdr(
5265        self,
5266    ) -> crate::common::RegisterField<
5267        2,
5268        0x1,
5269        1,
5270        0,
5271        p10pfs::Pdr,
5272        p10pfs::Pdr,
5273        P10Pfs_SPEC,
5274        crate::common::RW,
5275    > {
5276        crate::common::RegisterField::<
5277            2,
5278            0x1,
5279            1,
5280            0,
5281            p10pfs::Pdr,
5282            p10pfs::Pdr,
5283            P10Pfs_SPEC,
5284            crate::common::RW,
5285        >::from_register(self, 0)
5286    }
5287
5288    #[doc = "Pull-up Control"]
5289    #[inline(always)]
5290    pub fn pcr(
5291        self,
5292    ) -> crate::common::RegisterField<
5293        4,
5294        0x1,
5295        1,
5296        0,
5297        p10pfs::Pcr,
5298        p10pfs::Pcr,
5299        P10Pfs_SPEC,
5300        crate::common::RW,
5301    > {
5302        crate::common::RegisterField::<
5303            4,
5304            0x1,
5305            1,
5306            0,
5307            p10pfs::Pcr,
5308            p10pfs::Pcr,
5309            P10Pfs_SPEC,
5310            crate::common::RW,
5311        >::from_register(self, 0)
5312    }
5313
5314    #[doc = "N-Channel Open-Drain Control"]
5315    #[inline(always)]
5316    pub fn ncodr(
5317        self,
5318    ) -> crate::common::RegisterField<
5319        6,
5320        0x1,
5321        1,
5322        0,
5323        p10pfs::Ncodr,
5324        p10pfs::Ncodr,
5325        P10Pfs_SPEC,
5326        crate::common::RW,
5327    > {
5328        crate::common::RegisterField::<
5329            6,
5330            0x1,
5331            1,
5332            0,
5333            p10pfs::Ncodr,
5334            p10pfs::Ncodr,
5335            P10Pfs_SPEC,
5336            crate::common::RW,
5337        >::from_register(self, 0)
5338    }
5339
5340    #[doc = "Event on Falling/Event on Rising"]
5341    #[inline(always)]
5342    pub fn eofr(
5343        self,
5344    ) -> crate::common::RegisterField<
5345        12,
5346        0x3,
5347        1,
5348        0,
5349        p10pfs::Eofr,
5350        p10pfs::Eofr,
5351        P10Pfs_SPEC,
5352        crate::common::RW,
5353    > {
5354        crate::common::RegisterField::<
5355            12,
5356            0x3,
5357            1,
5358            0,
5359            p10pfs::Eofr,
5360            p10pfs::Eofr,
5361            P10Pfs_SPEC,
5362            crate::common::RW,
5363        >::from_register(self, 0)
5364    }
5365
5366    #[doc = "IRQ Input Enable"]
5367    #[inline(always)]
5368    pub fn isel(
5369        self,
5370    ) -> crate::common::RegisterField<
5371        14,
5372        0x1,
5373        1,
5374        0,
5375        p10pfs::Isel,
5376        p10pfs::Isel,
5377        P10Pfs_SPEC,
5378        crate::common::RW,
5379    > {
5380        crate::common::RegisterField::<
5381            14,
5382            0x1,
5383            1,
5384            0,
5385            p10pfs::Isel,
5386            p10pfs::Isel,
5387            P10Pfs_SPEC,
5388            crate::common::RW,
5389        >::from_register(self, 0)
5390    }
5391
5392    #[doc = "Analog Input Enable"]
5393    #[inline(always)]
5394    pub fn asel(
5395        self,
5396    ) -> crate::common::RegisterField<
5397        15,
5398        0x1,
5399        1,
5400        0,
5401        p10pfs::Asel,
5402        p10pfs::Asel,
5403        P10Pfs_SPEC,
5404        crate::common::RW,
5405    > {
5406        crate::common::RegisterField::<
5407            15,
5408            0x1,
5409            1,
5410            0,
5411            p10pfs::Asel,
5412            p10pfs::Asel,
5413            P10Pfs_SPEC,
5414            crate::common::RW,
5415        >::from_register(self, 0)
5416    }
5417
5418    #[doc = "Port Mode Control"]
5419    #[inline(always)]
5420    pub fn pmr(
5421        self,
5422    ) -> crate::common::RegisterField<
5423        16,
5424        0x1,
5425        1,
5426        0,
5427        p10pfs::Pmr,
5428        p10pfs::Pmr,
5429        P10Pfs_SPEC,
5430        crate::common::RW,
5431    > {
5432        crate::common::RegisterField::<
5433            16,
5434            0x1,
5435            1,
5436            0,
5437            p10pfs::Pmr,
5438            p10pfs::Pmr,
5439            P10Pfs_SPEC,
5440            crate::common::RW,
5441        >::from_register(self, 0)
5442    }
5443
5444    #[doc = "Peripheral Select"]
5445    #[inline(always)]
5446    pub fn psel(
5447        self,
5448    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
5449        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
5450    }
5451}
5452impl ::core::default::Default for P10Pfs {
5453    #[inline(always)]
5454    fn default() -> P10Pfs {
5455        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
5456    }
5457}
5458pub mod p10pfs {
5459
5460    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5461    pub struct Podr_SPEC;
5462    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5463    impl Podr {
5464        #[doc = "Output low"]
5465        pub const _0: Self = Self::new(0);
5466
5467        #[doc = "Output high"]
5468        pub const _1: Self = Self::new(1);
5469    }
5470    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5471    pub struct Pidr_SPEC;
5472    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5473    impl Pidr {
5474        #[doc = "Low level"]
5475        pub const _0: Self = Self::new(0);
5476
5477        #[doc = "High level"]
5478        pub const _1: Self = Self::new(1);
5479    }
5480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5481    pub struct Pdr_SPEC;
5482    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5483    impl Pdr {
5484        #[doc = "Input (functions as an input pin)"]
5485        pub const _0: Self = Self::new(0);
5486
5487        #[doc = "Output (functions as an output pin)"]
5488        pub const _1: Self = Self::new(1);
5489    }
5490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5491    pub struct Pcr_SPEC;
5492    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5493    impl Pcr {
5494        #[doc = "Disable input pull-up"]
5495        pub const _0: Self = Self::new(0);
5496
5497        #[doc = "Enable input pull-up"]
5498        pub const _1: Self = Self::new(1);
5499    }
5500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5501    pub struct Ncodr_SPEC;
5502    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5503    impl Ncodr {
5504        #[doc = "Output CMOS"]
5505        pub const _0: Self = Self::new(0);
5506
5507        #[doc = "Output NMOS open-drain"]
5508        pub const _1: Self = Self::new(1);
5509    }
5510    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5511    pub struct Eofr_SPEC;
5512    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5513    impl Eofr {
5514        #[doc = "Don\'t care"]
5515        pub const _00: Self = Self::new(0);
5516
5517        #[doc = "Detect rising edge"]
5518        pub const _01: Self = Self::new(1);
5519
5520        #[doc = "Detect falling edge"]
5521        pub const _10: Self = Self::new(2);
5522
5523        #[doc = "Detect both edges"]
5524        pub const _11: Self = Self::new(3);
5525    }
5526    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5527    pub struct Isel_SPEC;
5528    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5529    impl Isel {
5530        #[doc = "Do not use as IRQn input pin"]
5531        pub const _0: Self = Self::new(0);
5532
5533        #[doc = "Use as IRQn input pin"]
5534        pub const _1: Self = Self::new(1);
5535    }
5536    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5537    pub struct Asel_SPEC;
5538    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5539    impl Asel {
5540        #[doc = "Do not use as analog pin"]
5541        pub const _0: Self = Self::new(0);
5542
5543        #[doc = "Use as analog pin"]
5544        pub const _1: Self = Self::new(1);
5545    }
5546    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5547    pub struct Pmr_SPEC;
5548    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5549    impl Pmr {
5550        #[doc = "Use as general I/O pin"]
5551        pub const _0: Self = Self::new(0);
5552
5553        #[doc = "Use as I/O port for peripheral functions"]
5554        pub const _1: Self = Self::new(1);
5555    }
5556}
5557#[doc(hidden)]
5558#[derive(Copy, Clone, Eq, PartialEq)]
5559pub struct P10PfsHa_SPEC;
5560impl crate::sealed::RegSpec for P10PfsHa_SPEC {
5561    type DataType = u16;
5562}
5563
5564#[doc = "Port 10%s Pin Function Select Register"]
5565pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
5566
5567impl P10PfsHa {
5568    #[doc = "Port Output Data"]
5569    #[inline(always)]
5570    pub fn podr(
5571        self,
5572    ) -> crate::common::RegisterField<
5573        0,
5574        0x1,
5575        1,
5576        0,
5577        p10pfs_ha::Podr,
5578        p10pfs_ha::Podr,
5579        P10PfsHa_SPEC,
5580        crate::common::RW,
5581    > {
5582        crate::common::RegisterField::<
5583            0,
5584            0x1,
5585            1,
5586            0,
5587            p10pfs_ha::Podr,
5588            p10pfs_ha::Podr,
5589            P10PfsHa_SPEC,
5590            crate::common::RW,
5591        >::from_register(self, 0)
5592    }
5593
5594    #[doc = "Port State"]
5595    #[inline(always)]
5596    pub fn pidr(
5597        self,
5598    ) -> crate::common::RegisterField<
5599        1,
5600        0x1,
5601        1,
5602        0,
5603        p10pfs_ha::Pidr,
5604        p10pfs_ha::Pidr,
5605        P10PfsHa_SPEC,
5606        crate::common::R,
5607    > {
5608        crate::common::RegisterField::<
5609            1,
5610            0x1,
5611            1,
5612            0,
5613            p10pfs_ha::Pidr,
5614            p10pfs_ha::Pidr,
5615            P10PfsHa_SPEC,
5616            crate::common::R,
5617        >::from_register(self, 0)
5618    }
5619
5620    #[doc = "Port Direction"]
5621    #[inline(always)]
5622    pub fn pdr(
5623        self,
5624    ) -> crate::common::RegisterField<
5625        2,
5626        0x1,
5627        1,
5628        0,
5629        p10pfs_ha::Pdr,
5630        p10pfs_ha::Pdr,
5631        P10PfsHa_SPEC,
5632        crate::common::RW,
5633    > {
5634        crate::common::RegisterField::<
5635            2,
5636            0x1,
5637            1,
5638            0,
5639            p10pfs_ha::Pdr,
5640            p10pfs_ha::Pdr,
5641            P10PfsHa_SPEC,
5642            crate::common::RW,
5643        >::from_register(self, 0)
5644    }
5645
5646    #[doc = "Pull-up Control"]
5647    #[inline(always)]
5648    pub fn pcr(
5649        self,
5650    ) -> crate::common::RegisterField<
5651        4,
5652        0x1,
5653        1,
5654        0,
5655        p10pfs_ha::Pcr,
5656        p10pfs_ha::Pcr,
5657        P10PfsHa_SPEC,
5658        crate::common::RW,
5659    > {
5660        crate::common::RegisterField::<
5661            4,
5662            0x1,
5663            1,
5664            0,
5665            p10pfs_ha::Pcr,
5666            p10pfs_ha::Pcr,
5667            P10PfsHa_SPEC,
5668            crate::common::RW,
5669        >::from_register(self, 0)
5670    }
5671
5672    #[doc = "N-Channel Open-Drain Control"]
5673    #[inline(always)]
5674    pub fn ncodr(
5675        self,
5676    ) -> crate::common::RegisterField<
5677        6,
5678        0x1,
5679        1,
5680        0,
5681        p10pfs_ha::Ncodr,
5682        p10pfs_ha::Ncodr,
5683        P10PfsHa_SPEC,
5684        crate::common::RW,
5685    > {
5686        crate::common::RegisterField::<
5687            6,
5688            0x1,
5689            1,
5690            0,
5691            p10pfs_ha::Ncodr,
5692            p10pfs_ha::Ncodr,
5693            P10PfsHa_SPEC,
5694            crate::common::RW,
5695        >::from_register(self, 0)
5696    }
5697
5698    #[doc = "Event on Falling/Event on Rising"]
5699    #[inline(always)]
5700    pub fn eofr(
5701        self,
5702    ) -> crate::common::RegisterField<
5703        12,
5704        0x3,
5705        1,
5706        0,
5707        p10pfs_ha::Eofr,
5708        p10pfs_ha::Eofr,
5709        P10PfsHa_SPEC,
5710        crate::common::RW,
5711    > {
5712        crate::common::RegisterField::<
5713            12,
5714            0x3,
5715            1,
5716            0,
5717            p10pfs_ha::Eofr,
5718            p10pfs_ha::Eofr,
5719            P10PfsHa_SPEC,
5720            crate::common::RW,
5721        >::from_register(self, 0)
5722    }
5723
5724    #[doc = "IRQ Input Enable"]
5725    #[inline(always)]
5726    pub fn isel(
5727        self,
5728    ) -> crate::common::RegisterField<
5729        14,
5730        0x1,
5731        1,
5732        0,
5733        p10pfs_ha::Isel,
5734        p10pfs_ha::Isel,
5735        P10PfsHa_SPEC,
5736        crate::common::RW,
5737    > {
5738        crate::common::RegisterField::<
5739            14,
5740            0x1,
5741            1,
5742            0,
5743            p10pfs_ha::Isel,
5744            p10pfs_ha::Isel,
5745            P10PfsHa_SPEC,
5746            crate::common::RW,
5747        >::from_register(self, 0)
5748    }
5749
5750    #[doc = "Analog Input Enable"]
5751    #[inline(always)]
5752    pub fn asel(
5753        self,
5754    ) -> crate::common::RegisterField<
5755        15,
5756        0x1,
5757        1,
5758        0,
5759        p10pfs_ha::Asel,
5760        p10pfs_ha::Asel,
5761        P10PfsHa_SPEC,
5762        crate::common::RW,
5763    > {
5764        crate::common::RegisterField::<
5765            15,
5766            0x1,
5767            1,
5768            0,
5769            p10pfs_ha::Asel,
5770            p10pfs_ha::Asel,
5771            P10PfsHa_SPEC,
5772            crate::common::RW,
5773        >::from_register(self, 0)
5774    }
5775}
5776impl ::core::default::Default for P10PfsHa {
5777    #[inline(always)]
5778    fn default() -> P10PfsHa {
5779        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
5780    }
5781}
5782pub mod p10pfs_ha {
5783
5784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5785    pub struct Podr_SPEC;
5786    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5787    impl Podr {
5788        #[doc = "Output low"]
5789        pub const _0: Self = Self::new(0);
5790
5791        #[doc = "Output high"]
5792        pub const _1: Self = Self::new(1);
5793    }
5794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5795    pub struct Pidr_SPEC;
5796    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5797    impl Pidr {
5798        #[doc = "Low level"]
5799        pub const _0: Self = Self::new(0);
5800
5801        #[doc = "High level"]
5802        pub const _1: Self = Self::new(1);
5803    }
5804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5805    pub struct Pdr_SPEC;
5806    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5807    impl Pdr {
5808        #[doc = "Input (functions as an input pin)"]
5809        pub const _0: Self = Self::new(0);
5810
5811        #[doc = "Output (functions as an output pin)"]
5812        pub const _1: Self = Self::new(1);
5813    }
5814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5815    pub struct Pcr_SPEC;
5816    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5817    impl Pcr {
5818        #[doc = "Disable input pull-up"]
5819        pub const _0: Self = Self::new(0);
5820
5821        #[doc = "Enable input pull-up"]
5822        pub const _1: Self = Self::new(1);
5823    }
5824    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5825    pub struct Ncodr_SPEC;
5826    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5827    impl Ncodr {
5828        #[doc = "Output CMOS"]
5829        pub const _0: Self = Self::new(0);
5830
5831        #[doc = "Output NMOS open-drain"]
5832        pub const _1: Self = Self::new(1);
5833    }
5834    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5835    pub struct Eofr_SPEC;
5836    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5837    impl Eofr {
5838        #[doc = "Don\'t care"]
5839        pub const _00: Self = Self::new(0);
5840
5841        #[doc = "Detect rising edge"]
5842        pub const _01: Self = Self::new(1);
5843
5844        #[doc = "Detect falling edge"]
5845        pub const _10: Self = Self::new(2);
5846
5847        #[doc = "Detect both edges"]
5848        pub const _11: Self = Self::new(3);
5849    }
5850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5851    pub struct Isel_SPEC;
5852    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5853    impl Isel {
5854        #[doc = "Do not use as IRQn input pin"]
5855        pub const _0: Self = Self::new(0);
5856
5857        #[doc = "Use as IRQn input pin"]
5858        pub const _1: Self = Self::new(1);
5859    }
5860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5861    pub struct Asel_SPEC;
5862    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5863    impl Asel {
5864        #[doc = "Do not use as analog pin"]
5865        pub const _0: Self = Self::new(0);
5866
5867        #[doc = "Use as analog pin"]
5868        pub const _1: Self = Self::new(1);
5869    }
5870}
5871#[doc(hidden)]
5872#[derive(Copy, Clone, Eq, PartialEq)]
5873pub struct P10PfsBy_SPEC;
5874impl crate::sealed::RegSpec for P10PfsBy_SPEC {
5875    type DataType = u8;
5876}
5877
5878#[doc = "Port 10%s Pin Function Select Register"]
5879pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
5880
5881impl P10PfsBy {
5882    #[doc = "Port Output Data"]
5883    #[inline(always)]
5884    pub fn podr(
5885        self,
5886    ) -> crate::common::RegisterField<
5887        0,
5888        0x1,
5889        1,
5890        0,
5891        p10pfs_by::Podr,
5892        p10pfs_by::Podr,
5893        P10PfsBy_SPEC,
5894        crate::common::RW,
5895    > {
5896        crate::common::RegisterField::<
5897            0,
5898            0x1,
5899            1,
5900            0,
5901            p10pfs_by::Podr,
5902            p10pfs_by::Podr,
5903            P10PfsBy_SPEC,
5904            crate::common::RW,
5905        >::from_register(self, 0)
5906    }
5907
5908    #[doc = "Port State"]
5909    #[inline(always)]
5910    pub fn pidr(
5911        self,
5912    ) -> crate::common::RegisterField<
5913        1,
5914        0x1,
5915        1,
5916        0,
5917        p10pfs_by::Pidr,
5918        p10pfs_by::Pidr,
5919        P10PfsBy_SPEC,
5920        crate::common::R,
5921    > {
5922        crate::common::RegisterField::<
5923            1,
5924            0x1,
5925            1,
5926            0,
5927            p10pfs_by::Pidr,
5928            p10pfs_by::Pidr,
5929            P10PfsBy_SPEC,
5930            crate::common::R,
5931        >::from_register(self, 0)
5932    }
5933
5934    #[doc = "Port Direction"]
5935    #[inline(always)]
5936    pub fn pdr(
5937        self,
5938    ) -> crate::common::RegisterField<
5939        2,
5940        0x1,
5941        1,
5942        0,
5943        p10pfs_by::Pdr,
5944        p10pfs_by::Pdr,
5945        P10PfsBy_SPEC,
5946        crate::common::RW,
5947    > {
5948        crate::common::RegisterField::<
5949            2,
5950            0x1,
5951            1,
5952            0,
5953            p10pfs_by::Pdr,
5954            p10pfs_by::Pdr,
5955            P10PfsBy_SPEC,
5956            crate::common::RW,
5957        >::from_register(self, 0)
5958    }
5959
5960    #[doc = "Pull-up Control"]
5961    #[inline(always)]
5962    pub fn pcr(
5963        self,
5964    ) -> crate::common::RegisterField<
5965        4,
5966        0x1,
5967        1,
5968        0,
5969        p10pfs_by::Pcr,
5970        p10pfs_by::Pcr,
5971        P10PfsBy_SPEC,
5972        crate::common::RW,
5973    > {
5974        crate::common::RegisterField::<
5975            4,
5976            0x1,
5977            1,
5978            0,
5979            p10pfs_by::Pcr,
5980            p10pfs_by::Pcr,
5981            P10PfsBy_SPEC,
5982            crate::common::RW,
5983        >::from_register(self, 0)
5984    }
5985
5986    #[doc = "N-Channel Open-Drain Control"]
5987    #[inline(always)]
5988    pub fn ncodr(
5989        self,
5990    ) -> crate::common::RegisterField<
5991        6,
5992        0x1,
5993        1,
5994        0,
5995        p10pfs_by::Ncodr,
5996        p10pfs_by::Ncodr,
5997        P10PfsBy_SPEC,
5998        crate::common::RW,
5999    > {
6000        crate::common::RegisterField::<
6001            6,
6002            0x1,
6003            1,
6004            0,
6005            p10pfs_by::Ncodr,
6006            p10pfs_by::Ncodr,
6007            P10PfsBy_SPEC,
6008            crate::common::RW,
6009        >::from_register(self, 0)
6010    }
6011}
6012impl ::core::default::Default for P10PfsBy {
6013    #[inline(always)]
6014    fn default() -> P10PfsBy {
6015        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
6016    }
6017}
6018pub mod p10pfs_by {
6019
6020    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6021    pub struct Podr_SPEC;
6022    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6023    impl Podr {
6024        #[doc = "Output low"]
6025        pub const _0: Self = Self::new(0);
6026
6027        #[doc = "Output high"]
6028        pub const _1: Self = Self::new(1);
6029    }
6030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6031    pub struct Pidr_SPEC;
6032    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6033    impl Pidr {
6034        #[doc = "Low level"]
6035        pub const _0: Self = Self::new(0);
6036
6037        #[doc = "High level"]
6038        pub const _1: Self = Self::new(1);
6039    }
6040    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6041    pub struct Pdr_SPEC;
6042    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6043    impl Pdr {
6044        #[doc = "Input (functions as an input pin)"]
6045        pub const _0: Self = Self::new(0);
6046
6047        #[doc = "Output (functions as an output pin)"]
6048        pub const _1: Self = Self::new(1);
6049    }
6050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6051    pub struct Pcr_SPEC;
6052    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6053    impl Pcr {
6054        #[doc = "Disable input pull-up"]
6055        pub const _0: Self = Self::new(0);
6056
6057        #[doc = "Enable input pull-up"]
6058        pub const _1: Self = Self::new(1);
6059    }
6060    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6061    pub struct Ncodr_SPEC;
6062    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6063    impl Ncodr {
6064        #[doc = "Output CMOS"]
6065        pub const _0: Self = Self::new(0);
6066
6067        #[doc = "Output NMOS open-drain"]
6068        pub const _1: Self = Self::new(1);
6069    }
6070}
6071#[doc(hidden)]
6072#[derive(Copy, Clone, Eq, PartialEq)]
6073pub struct P1Pfs_SPEC;
6074impl crate::sealed::RegSpec for P1Pfs_SPEC {
6075    type DataType = u32;
6076}
6077
6078#[doc = "Port 1%s Pin Function Select Register"]
6079pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
6080
6081impl P1Pfs {
6082    #[doc = "Port Output Data"]
6083    #[inline(always)]
6084    pub fn podr(
6085        self,
6086    ) -> crate::common::RegisterField<
6087        0,
6088        0x1,
6089        1,
6090        0,
6091        p1pfs::Podr,
6092        p1pfs::Podr,
6093        P1Pfs_SPEC,
6094        crate::common::RW,
6095    > {
6096        crate::common::RegisterField::<
6097            0,
6098            0x1,
6099            1,
6100            0,
6101            p1pfs::Podr,
6102            p1pfs::Podr,
6103            P1Pfs_SPEC,
6104            crate::common::RW,
6105        >::from_register(self, 0)
6106    }
6107
6108    #[doc = "Port State"]
6109    #[inline(always)]
6110    pub fn pidr(
6111        self,
6112    ) -> crate::common::RegisterField<
6113        1,
6114        0x1,
6115        1,
6116        0,
6117        p1pfs::Pidr,
6118        p1pfs::Pidr,
6119        P1Pfs_SPEC,
6120        crate::common::R,
6121    > {
6122        crate::common::RegisterField::<
6123            1,
6124            0x1,
6125            1,
6126            0,
6127            p1pfs::Pidr,
6128            p1pfs::Pidr,
6129            P1Pfs_SPEC,
6130            crate::common::R,
6131        >::from_register(self, 0)
6132    }
6133
6134    #[doc = "Port Direction"]
6135    #[inline(always)]
6136    pub fn pdr(
6137        self,
6138    ) -> crate::common::RegisterField<
6139        2,
6140        0x1,
6141        1,
6142        0,
6143        p1pfs::Pdr,
6144        p1pfs::Pdr,
6145        P1Pfs_SPEC,
6146        crate::common::RW,
6147    > {
6148        crate::common::RegisterField::<
6149            2,
6150            0x1,
6151            1,
6152            0,
6153            p1pfs::Pdr,
6154            p1pfs::Pdr,
6155            P1Pfs_SPEC,
6156            crate::common::RW,
6157        >::from_register(self, 0)
6158    }
6159
6160    #[doc = "Pull-up Control"]
6161    #[inline(always)]
6162    pub fn pcr(
6163        self,
6164    ) -> crate::common::RegisterField<
6165        4,
6166        0x1,
6167        1,
6168        0,
6169        p1pfs::Pcr,
6170        p1pfs::Pcr,
6171        P1Pfs_SPEC,
6172        crate::common::RW,
6173    > {
6174        crate::common::RegisterField::<
6175            4,
6176            0x1,
6177            1,
6178            0,
6179            p1pfs::Pcr,
6180            p1pfs::Pcr,
6181            P1Pfs_SPEC,
6182            crate::common::RW,
6183        >::from_register(self, 0)
6184    }
6185
6186    #[doc = "N-Channel Open-Drain Control"]
6187    #[inline(always)]
6188    pub fn ncodr(
6189        self,
6190    ) -> crate::common::RegisterField<
6191        6,
6192        0x1,
6193        1,
6194        0,
6195        p1pfs::Ncodr,
6196        p1pfs::Ncodr,
6197        P1Pfs_SPEC,
6198        crate::common::RW,
6199    > {
6200        crate::common::RegisterField::<
6201            6,
6202            0x1,
6203            1,
6204            0,
6205            p1pfs::Ncodr,
6206            p1pfs::Ncodr,
6207            P1Pfs_SPEC,
6208            crate::common::RW,
6209        >::from_register(self, 0)
6210    }
6211
6212    #[doc = "Event on Falling/Event on Rising"]
6213    #[inline(always)]
6214    pub fn eofr(
6215        self,
6216    ) -> crate::common::RegisterField<
6217        12,
6218        0x3,
6219        1,
6220        0,
6221        p1pfs::Eofr,
6222        p1pfs::Eofr,
6223        P1Pfs_SPEC,
6224        crate::common::RW,
6225    > {
6226        crate::common::RegisterField::<
6227            12,
6228            0x3,
6229            1,
6230            0,
6231            p1pfs::Eofr,
6232            p1pfs::Eofr,
6233            P1Pfs_SPEC,
6234            crate::common::RW,
6235        >::from_register(self, 0)
6236    }
6237
6238    #[doc = "IRQ Input Enable"]
6239    #[inline(always)]
6240    pub fn isel(
6241        self,
6242    ) -> crate::common::RegisterField<
6243        14,
6244        0x1,
6245        1,
6246        0,
6247        p1pfs::Isel,
6248        p1pfs::Isel,
6249        P1Pfs_SPEC,
6250        crate::common::RW,
6251    > {
6252        crate::common::RegisterField::<
6253            14,
6254            0x1,
6255            1,
6256            0,
6257            p1pfs::Isel,
6258            p1pfs::Isel,
6259            P1Pfs_SPEC,
6260            crate::common::RW,
6261        >::from_register(self, 0)
6262    }
6263
6264    #[doc = "Analog Input Enable"]
6265    #[inline(always)]
6266    pub fn asel(
6267        self,
6268    ) -> crate::common::RegisterField<
6269        15,
6270        0x1,
6271        1,
6272        0,
6273        p1pfs::Asel,
6274        p1pfs::Asel,
6275        P1Pfs_SPEC,
6276        crate::common::RW,
6277    > {
6278        crate::common::RegisterField::<
6279            15,
6280            0x1,
6281            1,
6282            0,
6283            p1pfs::Asel,
6284            p1pfs::Asel,
6285            P1Pfs_SPEC,
6286            crate::common::RW,
6287        >::from_register(self, 0)
6288    }
6289
6290    #[doc = "Port Mode Control"]
6291    #[inline(always)]
6292    pub fn pmr(
6293        self,
6294    ) -> crate::common::RegisterField<
6295        16,
6296        0x1,
6297        1,
6298        0,
6299        p1pfs::Pmr,
6300        p1pfs::Pmr,
6301        P1Pfs_SPEC,
6302        crate::common::RW,
6303    > {
6304        crate::common::RegisterField::<
6305            16,
6306            0x1,
6307            1,
6308            0,
6309            p1pfs::Pmr,
6310            p1pfs::Pmr,
6311            P1Pfs_SPEC,
6312            crate::common::RW,
6313        >::from_register(self, 0)
6314    }
6315
6316    #[doc = "Peripheral Select"]
6317    #[inline(always)]
6318    pub fn psel(
6319        self,
6320    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
6321        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
6322    }
6323}
6324impl ::core::default::Default for P1Pfs {
6325    #[inline(always)]
6326    fn default() -> P1Pfs {
6327        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
6328    }
6329}
6330pub mod p1pfs {
6331
6332    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6333    pub struct Podr_SPEC;
6334    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6335    impl Podr {
6336        #[doc = "Output low"]
6337        pub const _0: Self = Self::new(0);
6338
6339        #[doc = "Output high"]
6340        pub const _1: Self = Self::new(1);
6341    }
6342    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6343    pub struct Pidr_SPEC;
6344    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6345    impl Pidr {
6346        #[doc = "Low level"]
6347        pub const _0: Self = Self::new(0);
6348
6349        #[doc = "High level"]
6350        pub const _1: Self = Self::new(1);
6351    }
6352    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6353    pub struct Pdr_SPEC;
6354    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6355    impl Pdr {
6356        #[doc = "Input (functions as an input pin)"]
6357        pub const _0: Self = Self::new(0);
6358
6359        #[doc = "Output (functions as an output pin)"]
6360        pub const _1: Self = Self::new(1);
6361    }
6362    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6363    pub struct Pcr_SPEC;
6364    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6365    impl Pcr {
6366        #[doc = "Disable input pull-up"]
6367        pub const _0: Self = Self::new(0);
6368
6369        #[doc = "Enable input pull-up"]
6370        pub const _1: Self = Self::new(1);
6371    }
6372    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6373    pub struct Ncodr_SPEC;
6374    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6375    impl Ncodr {
6376        #[doc = "Output CMOS"]
6377        pub const _0: Self = Self::new(0);
6378
6379        #[doc = "Output NMOS open-drain"]
6380        pub const _1: Self = Self::new(1);
6381    }
6382    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6383    pub struct Eofr_SPEC;
6384    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6385    impl Eofr {
6386        #[doc = "Don\'t care"]
6387        pub const _00: Self = Self::new(0);
6388
6389        #[doc = "Detect rising edge"]
6390        pub const _01: Self = Self::new(1);
6391
6392        #[doc = "Detect falling edge"]
6393        pub const _10: Self = Self::new(2);
6394
6395        #[doc = "Detect both edges"]
6396        pub const _11: Self = Self::new(3);
6397    }
6398    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6399    pub struct Isel_SPEC;
6400    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6401    impl Isel {
6402        #[doc = "Do not use as IRQn input pin"]
6403        pub const _0: Self = Self::new(0);
6404
6405        #[doc = "Use as IRQn input pin"]
6406        pub const _1: Self = Self::new(1);
6407    }
6408    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6409    pub struct Asel_SPEC;
6410    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6411    impl Asel {
6412        #[doc = "Do not use as analog pin"]
6413        pub const _0: Self = Self::new(0);
6414
6415        #[doc = "Use as analog pin"]
6416        pub const _1: Self = Self::new(1);
6417    }
6418    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6419    pub struct Pmr_SPEC;
6420    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6421    impl Pmr {
6422        #[doc = "Use as general I/O pin"]
6423        pub const _0: Self = Self::new(0);
6424
6425        #[doc = "Use as I/O port for peripheral functions"]
6426        pub const _1: Self = Self::new(1);
6427    }
6428}
6429#[doc(hidden)]
6430#[derive(Copy, Clone, Eq, PartialEq)]
6431pub struct P1PfsHa_SPEC;
6432impl crate::sealed::RegSpec for P1PfsHa_SPEC {
6433    type DataType = u16;
6434}
6435
6436#[doc = "Port 1%s Pin Function Select Register"]
6437pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
6438
6439impl P1PfsHa {
6440    #[doc = "Port Output Data"]
6441    #[inline(always)]
6442    pub fn podr(
6443        self,
6444    ) -> crate::common::RegisterField<
6445        0,
6446        0x1,
6447        1,
6448        0,
6449        p1pfs_ha::Podr,
6450        p1pfs_ha::Podr,
6451        P1PfsHa_SPEC,
6452        crate::common::RW,
6453    > {
6454        crate::common::RegisterField::<
6455            0,
6456            0x1,
6457            1,
6458            0,
6459            p1pfs_ha::Podr,
6460            p1pfs_ha::Podr,
6461            P1PfsHa_SPEC,
6462            crate::common::RW,
6463        >::from_register(self, 0)
6464    }
6465
6466    #[doc = "Port State"]
6467    #[inline(always)]
6468    pub fn pidr(
6469        self,
6470    ) -> crate::common::RegisterField<
6471        1,
6472        0x1,
6473        1,
6474        0,
6475        p1pfs_ha::Pidr,
6476        p1pfs_ha::Pidr,
6477        P1PfsHa_SPEC,
6478        crate::common::R,
6479    > {
6480        crate::common::RegisterField::<
6481            1,
6482            0x1,
6483            1,
6484            0,
6485            p1pfs_ha::Pidr,
6486            p1pfs_ha::Pidr,
6487            P1PfsHa_SPEC,
6488            crate::common::R,
6489        >::from_register(self, 0)
6490    }
6491
6492    #[doc = "Port Direction"]
6493    #[inline(always)]
6494    pub fn pdr(
6495        self,
6496    ) -> crate::common::RegisterField<
6497        2,
6498        0x1,
6499        1,
6500        0,
6501        p1pfs_ha::Pdr,
6502        p1pfs_ha::Pdr,
6503        P1PfsHa_SPEC,
6504        crate::common::RW,
6505    > {
6506        crate::common::RegisterField::<
6507            2,
6508            0x1,
6509            1,
6510            0,
6511            p1pfs_ha::Pdr,
6512            p1pfs_ha::Pdr,
6513            P1PfsHa_SPEC,
6514            crate::common::RW,
6515        >::from_register(self, 0)
6516    }
6517
6518    #[doc = "Pull-up Control"]
6519    #[inline(always)]
6520    pub fn pcr(
6521        self,
6522    ) -> crate::common::RegisterField<
6523        4,
6524        0x1,
6525        1,
6526        0,
6527        p1pfs_ha::Pcr,
6528        p1pfs_ha::Pcr,
6529        P1PfsHa_SPEC,
6530        crate::common::RW,
6531    > {
6532        crate::common::RegisterField::<
6533            4,
6534            0x1,
6535            1,
6536            0,
6537            p1pfs_ha::Pcr,
6538            p1pfs_ha::Pcr,
6539            P1PfsHa_SPEC,
6540            crate::common::RW,
6541        >::from_register(self, 0)
6542    }
6543
6544    #[doc = "N-Channel Open-Drain Control"]
6545    #[inline(always)]
6546    pub fn ncodr(
6547        self,
6548    ) -> crate::common::RegisterField<
6549        6,
6550        0x1,
6551        1,
6552        0,
6553        p1pfs_ha::Ncodr,
6554        p1pfs_ha::Ncodr,
6555        P1PfsHa_SPEC,
6556        crate::common::RW,
6557    > {
6558        crate::common::RegisterField::<
6559            6,
6560            0x1,
6561            1,
6562            0,
6563            p1pfs_ha::Ncodr,
6564            p1pfs_ha::Ncodr,
6565            P1PfsHa_SPEC,
6566            crate::common::RW,
6567        >::from_register(self, 0)
6568    }
6569
6570    #[doc = "Event on Falling/Event on Rising"]
6571    #[inline(always)]
6572    pub fn eofr(
6573        self,
6574    ) -> crate::common::RegisterField<
6575        12,
6576        0x3,
6577        1,
6578        0,
6579        p1pfs_ha::Eofr,
6580        p1pfs_ha::Eofr,
6581        P1PfsHa_SPEC,
6582        crate::common::RW,
6583    > {
6584        crate::common::RegisterField::<
6585            12,
6586            0x3,
6587            1,
6588            0,
6589            p1pfs_ha::Eofr,
6590            p1pfs_ha::Eofr,
6591            P1PfsHa_SPEC,
6592            crate::common::RW,
6593        >::from_register(self, 0)
6594    }
6595
6596    #[doc = "IRQ Input Enable"]
6597    #[inline(always)]
6598    pub fn isel(
6599        self,
6600    ) -> crate::common::RegisterField<
6601        14,
6602        0x1,
6603        1,
6604        0,
6605        p1pfs_ha::Isel,
6606        p1pfs_ha::Isel,
6607        P1PfsHa_SPEC,
6608        crate::common::RW,
6609    > {
6610        crate::common::RegisterField::<
6611            14,
6612            0x1,
6613            1,
6614            0,
6615            p1pfs_ha::Isel,
6616            p1pfs_ha::Isel,
6617            P1PfsHa_SPEC,
6618            crate::common::RW,
6619        >::from_register(self, 0)
6620    }
6621
6622    #[doc = "Analog Input Enable"]
6623    #[inline(always)]
6624    pub fn asel(
6625        self,
6626    ) -> crate::common::RegisterField<
6627        15,
6628        0x1,
6629        1,
6630        0,
6631        p1pfs_ha::Asel,
6632        p1pfs_ha::Asel,
6633        P1PfsHa_SPEC,
6634        crate::common::RW,
6635    > {
6636        crate::common::RegisterField::<
6637            15,
6638            0x1,
6639            1,
6640            0,
6641            p1pfs_ha::Asel,
6642            p1pfs_ha::Asel,
6643            P1PfsHa_SPEC,
6644            crate::common::RW,
6645        >::from_register(self, 0)
6646    }
6647}
6648impl ::core::default::Default for P1PfsHa {
6649    #[inline(always)]
6650    fn default() -> P1PfsHa {
6651        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
6652    }
6653}
6654pub mod p1pfs_ha {
6655
6656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6657    pub struct Podr_SPEC;
6658    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6659    impl Podr {
6660        #[doc = "Output low"]
6661        pub const _0: Self = Self::new(0);
6662
6663        #[doc = "Output high"]
6664        pub const _1: Self = Self::new(1);
6665    }
6666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6667    pub struct Pidr_SPEC;
6668    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6669    impl Pidr {
6670        #[doc = "Low level"]
6671        pub const _0: Self = Self::new(0);
6672
6673        #[doc = "High level"]
6674        pub const _1: Self = Self::new(1);
6675    }
6676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6677    pub struct Pdr_SPEC;
6678    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6679    impl Pdr {
6680        #[doc = "Input (functions as an input pin)"]
6681        pub const _0: Self = Self::new(0);
6682
6683        #[doc = "Output (functions as an output pin)"]
6684        pub const _1: Self = Self::new(1);
6685    }
6686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6687    pub struct Pcr_SPEC;
6688    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6689    impl Pcr {
6690        #[doc = "Disable input pull-up"]
6691        pub const _0: Self = Self::new(0);
6692
6693        #[doc = "Enable input pull-up"]
6694        pub const _1: Self = Self::new(1);
6695    }
6696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6697    pub struct Ncodr_SPEC;
6698    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6699    impl Ncodr {
6700        #[doc = "Output CMOS"]
6701        pub const _0: Self = Self::new(0);
6702
6703        #[doc = "Output NMOS open-drain"]
6704        pub const _1: Self = Self::new(1);
6705    }
6706    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6707    pub struct Eofr_SPEC;
6708    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6709    impl Eofr {
6710        #[doc = "Don\'t care"]
6711        pub const _00: Self = Self::new(0);
6712
6713        #[doc = "Detect rising edge"]
6714        pub const _01: Self = Self::new(1);
6715
6716        #[doc = "Detect falling edge"]
6717        pub const _10: Self = Self::new(2);
6718
6719        #[doc = "Detect both edges"]
6720        pub const _11: Self = Self::new(3);
6721    }
6722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6723    pub struct Isel_SPEC;
6724    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6725    impl Isel {
6726        #[doc = "Do not use as IRQn input pin"]
6727        pub const _0: Self = Self::new(0);
6728
6729        #[doc = "Use as IRQn input pin"]
6730        pub const _1: Self = Self::new(1);
6731    }
6732    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6733    pub struct Asel_SPEC;
6734    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6735    impl Asel {
6736        #[doc = "Do not use as analog pin"]
6737        pub const _0: Self = Self::new(0);
6738
6739        #[doc = "Use as analog pin"]
6740        pub const _1: Self = Self::new(1);
6741    }
6742}
6743#[doc(hidden)]
6744#[derive(Copy, Clone, Eq, PartialEq)]
6745pub struct P1PfsBy_SPEC;
6746impl crate::sealed::RegSpec for P1PfsBy_SPEC {
6747    type DataType = u8;
6748}
6749
6750#[doc = "Port 1%s Pin Function Select Register"]
6751pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
6752
6753impl P1PfsBy {
6754    #[doc = "Port Output Data"]
6755    #[inline(always)]
6756    pub fn podr(
6757        self,
6758    ) -> crate::common::RegisterField<
6759        0,
6760        0x1,
6761        1,
6762        0,
6763        p1pfs_by::Podr,
6764        p1pfs_by::Podr,
6765        P1PfsBy_SPEC,
6766        crate::common::RW,
6767    > {
6768        crate::common::RegisterField::<
6769            0,
6770            0x1,
6771            1,
6772            0,
6773            p1pfs_by::Podr,
6774            p1pfs_by::Podr,
6775            P1PfsBy_SPEC,
6776            crate::common::RW,
6777        >::from_register(self, 0)
6778    }
6779
6780    #[doc = "Port State"]
6781    #[inline(always)]
6782    pub fn pidr(
6783        self,
6784    ) -> crate::common::RegisterField<
6785        1,
6786        0x1,
6787        1,
6788        0,
6789        p1pfs_by::Pidr,
6790        p1pfs_by::Pidr,
6791        P1PfsBy_SPEC,
6792        crate::common::R,
6793    > {
6794        crate::common::RegisterField::<
6795            1,
6796            0x1,
6797            1,
6798            0,
6799            p1pfs_by::Pidr,
6800            p1pfs_by::Pidr,
6801            P1PfsBy_SPEC,
6802            crate::common::R,
6803        >::from_register(self, 0)
6804    }
6805
6806    #[doc = "Port Direction"]
6807    #[inline(always)]
6808    pub fn pdr(
6809        self,
6810    ) -> crate::common::RegisterField<
6811        2,
6812        0x1,
6813        1,
6814        0,
6815        p1pfs_by::Pdr,
6816        p1pfs_by::Pdr,
6817        P1PfsBy_SPEC,
6818        crate::common::RW,
6819    > {
6820        crate::common::RegisterField::<
6821            2,
6822            0x1,
6823            1,
6824            0,
6825            p1pfs_by::Pdr,
6826            p1pfs_by::Pdr,
6827            P1PfsBy_SPEC,
6828            crate::common::RW,
6829        >::from_register(self, 0)
6830    }
6831
6832    #[doc = "Pull-up Control"]
6833    #[inline(always)]
6834    pub fn pcr(
6835        self,
6836    ) -> crate::common::RegisterField<
6837        4,
6838        0x1,
6839        1,
6840        0,
6841        p1pfs_by::Pcr,
6842        p1pfs_by::Pcr,
6843        P1PfsBy_SPEC,
6844        crate::common::RW,
6845    > {
6846        crate::common::RegisterField::<
6847            4,
6848            0x1,
6849            1,
6850            0,
6851            p1pfs_by::Pcr,
6852            p1pfs_by::Pcr,
6853            P1PfsBy_SPEC,
6854            crate::common::RW,
6855        >::from_register(self, 0)
6856    }
6857
6858    #[doc = "N-Channel Open-Drain Control"]
6859    #[inline(always)]
6860    pub fn ncodr(
6861        self,
6862    ) -> crate::common::RegisterField<
6863        6,
6864        0x1,
6865        1,
6866        0,
6867        p1pfs_by::Ncodr,
6868        p1pfs_by::Ncodr,
6869        P1PfsBy_SPEC,
6870        crate::common::RW,
6871    > {
6872        crate::common::RegisterField::<
6873            6,
6874            0x1,
6875            1,
6876            0,
6877            p1pfs_by::Ncodr,
6878            p1pfs_by::Ncodr,
6879            P1PfsBy_SPEC,
6880            crate::common::RW,
6881        >::from_register(self, 0)
6882    }
6883}
6884impl ::core::default::Default for P1PfsBy {
6885    #[inline(always)]
6886    fn default() -> P1PfsBy {
6887        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
6888    }
6889}
6890pub mod p1pfs_by {
6891
6892    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6893    pub struct Podr_SPEC;
6894    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6895    impl Podr {
6896        #[doc = "Output low"]
6897        pub const _0: Self = Self::new(0);
6898
6899        #[doc = "Output high"]
6900        pub const _1: Self = Self::new(1);
6901    }
6902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6903    pub struct Pidr_SPEC;
6904    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6905    impl Pidr {
6906        #[doc = "Low level"]
6907        pub const _0: Self = Self::new(0);
6908
6909        #[doc = "High level"]
6910        pub const _1: Self = Self::new(1);
6911    }
6912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6913    pub struct Pdr_SPEC;
6914    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6915    impl Pdr {
6916        #[doc = "Input (functions as an input pin)"]
6917        pub const _0: Self = Self::new(0);
6918
6919        #[doc = "Output (functions as an output pin)"]
6920        pub const _1: Self = Self::new(1);
6921    }
6922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6923    pub struct Pcr_SPEC;
6924    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6925    impl Pcr {
6926        #[doc = "Disable input pull-up"]
6927        pub const _0: Self = Self::new(0);
6928
6929        #[doc = "Enable input pull-up"]
6930        pub const _1: Self = Self::new(1);
6931    }
6932    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6933    pub struct Ncodr_SPEC;
6934    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6935    impl Ncodr {
6936        #[doc = "Output CMOS"]
6937        pub const _0: Self = Self::new(0);
6938
6939        #[doc = "Output NMOS open-drain"]
6940        pub const _1: Self = Self::new(1);
6941    }
6942}
6943#[doc(hidden)]
6944#[derive(Copy, Clone, Eq, PartialEq)]
6945pub struct P200Pfs_SPEC;
6946impl crate::sealed::RegSpec for P200Pfs_SPEC {
6947    type DataType = u32;
6948}
6949
6950#[doc = "Port 200 Pin Function Select Register"]
6951pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
6952
6953impl P200Pfs {
6954    #[doc = "Port Output Data"]
6955    #[inline(always)]
6956    pub fn podr(
6957        self,
6958    ) -> crate::common::RegisterField<
6959        0,
6960        0x1,
6961        1,
6962        0,
6963        p200pfs::Podr,
6964        p200pfs::Podr,
6965        P200Pfs_SPEC,
6966        crate::common::RW,
6967    > {
6968        crate::common::RegisterField::<
6969            0,
6970            0x1,
6971            1,
6972            0,
6973            p200pfs::Podr,
6974            p200pfs::Podr,
6975            P200Pfs_SPEC,
6976            crate::common::RW,
6977        >::from_register(self, 0)
6978    }
6979
6980    #[doc = "Port State"]
6981    #[inline(always)]
6982    pub fn pidr(
6983        self,
6984    ) -> crate::common::RegisterField<
6985        1,
6986        0x1,
6987        1,
6988        0,
6989        p200pfs::Pidr,
6990        p200pfs::Pidr,
6991        P200Pfs_SPEC,
6992        crate::common::R,
6993    > {
6994        crate::common::RegisterField::<
6995            1,
6996            0x1,
6997            1,
6998            0,
6999            p200pfs::Pidr,
7000            p200pfs::Pidr,
7001            P200Pfs_SPEC,
7002            crate::common::R,
7003        >::from_register(self, 0)
7004    }
7005
7006    #[doc = "Port Direction"]
7007    #[inline(always)]
7008    pub fn pdr(
7009        self,
7010    ) -> crate::common::RegisterField<
7011        2,
7012        0x1,
7013        1,
7014        0,
7015        p200pfs::Pdr,
7016        p200pfs::Pdr,
7017        P200Pfs_SPEC,
7018        crate::common::RW,
7019    > {
7020        crate::common::RegisterField::<
7021            2,
7022            0x1,
7023            1,
7024            0,
7025            p200pfs::Pdr,
7026            p200pfs::Pdr,
7027            P200Pfs_SPEC,
7028            crate::common::RW,
7029        >::from_register(self, 0)
7030    }
7031
7032    #[doc = "Pull-up Control"]
7033    #[inline(always)]
7034    pub fn pcr(
7035        self,
7036    ) -> crate::common::RegisterField<
7037        4,
7038        0x1,
7039        1,
7040        0,
7041        p200pfs::Pcr,
7042        p200pfs::Pcr,
7043        P200Pfs_SPEC,
7044        crate::common::RW,
7045    > {
7046        crate::common::RegisterField::<
7047            4,
7048            0x1,
7049            1,
7050            0,
7051            p200pfs::Pcr,
7052            p200pfs::Pcr,
7053            P200Pfs_SPEC,
7054            crate::common::RW,
7055        >::from_register(self, 0)
7056    }
7057
7058    #[doc = "N-Channel Open-Drain Control"]
7059    #[inline(always)]
7060    pub fn ncodr(
7061        self,
7062    ) -> crate::common::RegisterField<
7063        6,
7064        0x1,
7065        1,
7066        0,
7067        p200pfs::Ncodr,
7068        p200pfs::Ncodr,
7069        P200Pfs_SPEC,
7070        crate::common::RW,
7071    > {
7072        crate::common::RegisterField::<
7073            6,
7074            0x1,
7075            1,
7076            0,
7077            p200pfs::Ncodr,
7078            p200pfs::Ncodr,
7079            P200Pfs_SPEC,
7080            crate::common::RW,
7081        >::from_register(self, 0)
7082    }
7083
7084    #[doc = "Event on Falling/Event on Rising"]
7085    #[inline(always)]
7086    pub fn eofr(
7087        self,
7088    ) -> crate::common::RegisterField<
7089        12,
7090        0x3,
7091        1,
7092        0,
7093        p200pfs::Eofr,
7094        p200pfs::Eofr,
7095        P200Pfs_SPEC,
7096        crate::common::RW,
7097    > {
7098        crate::common::RegisterField::<
7099            12,
7100            0x3,
7101            1,
7102            0,
7103            p200pfs::Eofr,
7104            p200pfs::Eofr,
7105            P200Pfs_SPEC,
7106            crate::common::RW,
7107        >::from_register(self, 0)
7108    }
7109
7110    #[doc = "IRQ Input Enable"]
7111    #[inline(always)]
7112    pub fn isel(
7113        self,
7114    ) -> crate::common::RegisterField<
7115        14,
7116        0x1,
7117        1,
7118        0,
7119        p200pfs::Isel,
7120        p200pfs::Isel,
7121        P200Pfs_SPEC,
7122        crate::common::RW,
7123    > {
7124        crate::common::RegisterField::<
7125            14,
7126            0x1,
7127            1,
7128            0,
7129            p200pfs::Isel,
7130            p200pfs::Isel,
7131            P200Pfs_SPEC,
7132            crate::common::RW,
7133        >::from_register(self, 0)
7134    }
7135
7136    #[doc = "Analog Input Enable"]
7137    #[inline(always)]
7138    pub fn asel(
7139        self,
7140    ) -> crate::common::RegisterField<
7141        15,
7142        0x1,
7143        1,
7144        0,
7145        p200pfs::Asel,
7146        p200pfs::Asel,
7147        P200Pfs_SPEC,
7148        crate::common::RW,
7149    > {
7150        crate::common::RegisterField::<
7151            15,
7152            0x1,
7153            1,
7154            0,
7155            p200pfs::Asel,
7156            p200pfs::Asel,
7157            P200Pfs_SPEC,
7158            crate::common::RW,
7159        >::from_register(self, 0)
7160    }
7161
7162    #[doc = "Port Mode Control"]
7163    #[inline(always)]
7164    pub fn pmr(
7165        self,
7166    ) -> crate::common::RegisterField<
7167        16,
7168        0x1,
7169        1,
7170        0,
7171        p200pfs::Pmr,
7172        p200pfs::Pmr,
7173        P200Pfs_SPEC,
7174        crate::common::RW,
7175    > {
7176        crate::common::RegisterField::<
7177            16,
7178            0x1,
7179            1,
7180            0,
7181            p200pfs::Pmr,
7182            p200pfs::Pmr,
7183            P200Pfs_SPEC,
7184            crate::common::RW,
7185        >::from_register(self, 0)
7186    }
7187
7188    #[doc = "Peripheral Select"]
7189    #[inline(always)]
7190    pub fn psel(
7191        self,
7192    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
7193        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
7194    }
7195}
7196impl ::core::default::Default for P200Pfs {
7197    #[inline(always)]
7198    fn default() -> P200Pfs {
7199        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
7200    }
7201}
7202pub mod p200pfs {
7203
7204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7205    pub struct Podr_SPEC;
7206    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7207    impl Podr {
7208        #[doc = "Output low"]
7209        pub const _0: Self = Self::new(0);
7210
7211        #[doc = "Output high"]
7212        pub const _1: Self = Self::new(1);
7213    }
7214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7215    pub struct Pidr_SPEC;
7216    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7217    impl Pidr {
7218        #[doc = "Low level"]
7219        pub const _0: Self = Self::new(0);
7220
7221        #[doc = "High level"]
7222        pub const _1: Self = Self::new(1);
7223    }
7224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7225    pub struct Pdr_SPEC;
7226    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7227    impl Pdr {
7228        #[doc = "Input (functions as an input pin)"]
7229        pub const _0: Self = Self::new(0);
7230
7231        #[doc = "Output (functions as an output pin)"]
7232        pub const _1: Self = Self::new(1);
7233    }
7234    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7235    pub struct Pcr_SPEC;
7236    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7237    impl Pcr {
7238        #[doc = "Disable input pull-up"]
7239        pub const _0: Self = Self::new(0);
7240
7241        #[doc = "Enable input pull-up"]
7242        pub const _1: Self = Self::new(1);
7243    }
7244    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7245    pub struct Ncodr_SPEC;
7246    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7247    impl Ncodr {
7248        #[doc = "Output CMOS"]
7249        pub const _0: Self = Self::new(0);
7250
7251        #[doc = "Output NMOS open-drain"]
7252        pub const _1: Self = Self::new(1);
7253    }
7254    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7255    pub struct Eofr_SPEC;
7256    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7257    impl Eofr {
7258        #[doc = "Don\'t care"]
7259        pub const _00: Self = Self::new(0);
7260
7261        #[doc = "Detect rising edge"]
7262        pub const _01: Self = Self::new(1);
7263
7264        #[doc = "Detect falling edge"]
7265        pub const _10: Self = Self::new(2);
7266
7267        #[doc = "Detect both edges"]
7268        pub const _11: Self = Self::new(3);
7269    }
7270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7271    pub struct Isel_SPEC;
7272    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7273    impl Isel {
7274        #[doc = "Do not use as IRQn input pin"]
7275        pub const _0: Self = Self::new(0);
7276
7277        #[doc = "Use as IRQn input pin"]
7278        pub const _1: Self = Self::new(1);
7279    }
7280    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7281    pub struct Asel_SPEC;
7282    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7283    impl Asel {
7284        #[doc = "Do not use as analog pin"]
7285        pub const _0: Self = Self::new(0);
7286
7287        #[doc = "Use as analog pin"]
7288        pub const _1: Self = Self::new(1);
7289    }
7290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7291    pub struct Pmr_SPEC;
7292    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7293    impl Pmr {
7294        #[doc = "Use as general I/O pin"]
7295        pub const _0: Self = Self::new(0);
7296
7297        #[doc = "Use as I/O port for peripheral functions"]
7298        pub const _1: Self = Self::new(1);
7299    }
7300}
7301#[doc(hidden)]
7302#[derive(Copy, Clone, Eq, PartialEq)]
7303pub struct P200PfsHa_SPEC;
7304impl crate::sealed::RegSpec for P200PfsHa_SPEC {
7305    type DataType = u16;
7306}
7307
7308#[doc = "Port 200 Pin Function Select Register"]
7309pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
7310
7311impl P200PfsHa {
7312    #[doc = "Port Output Data"]
7313    #[inline(always)]
7314    pub fn podr(
7315        self,
7316    ) -> crate::common::RegisterField<
7317        0,
7318        0x1,
7319        1,
7320        0,
7321        p200pfs_ha::Podr,
7322        p200pfs_ha::Podr,
7323        P200PfsHa_SPEC,
7324        crate::common::RW,
7325    > {
7326        crate::common::RegisterField::<
7327            0,
7328            0x1,
7329            1,
7330            0,
7331            p200pfs_ha::Podr,
7332            p200pfs_ha::Podr,
7333            P200PfsHa_SPEC,
7334            crate::common::RW,
7335        >::from_register(self, 0)
7336    }
7337
7338    #[doc = "Port State"]
7339    #[inline(always)]
7340    pub fn pidr(
7341        self,
7342    ) -> crate::common::RegisterField<
7343        1,
7344        0x1,
7345        1,
7346        0,
7347        p200pfs_ha::Pidr,
7348        p200pfs_ha::Pidr,
7349        P200PfsHa_SPEC,
7350        crate::common::R,
7351    > {
7352        crate::common::RegisterField::<
7353            1,
7354            0x1,
7355            1,
7356            0,
7357            p200pfs_ha::Pidr,
7358            p200pfs_ha::Pidr,
7359            P200PfsHa_SPEC,
7360            crate::common::R,
7361        >::from_register(self, 0)
7362    }
7363
7364    #[doc = "Port Direction"]
7365    #[inline(always)]
7366    pub fn pdr(
7367        self,
7368    ) -> crate::common::RegisterField<
7369        2,
7370        0x1,
7371        1,
7372        0,
7373        p200pfs_ha::Pdr,
7374        p200pfs_ha::Pdr,
7375        P200PfsHa_SPEC,
7376        crate::common::RW,
7377    > {
7378        crate::common::RegisterField::<
7379            2,
7380            0x1,
7381            1,
7382            0,
7383            p200pfs_ha::Pdr,
7384            p200pfs_ha::Pdr,
7385            P200PfsHa_SPEC,
7386            crate::common::RW,
7387        >::from_register(self, 0)
7388    }
7389
7390    #[doc = "Pull-up Control"]
7391    #[inline(always)]
7392    pub fn pcr(
7393        self,
7394    ) -> crate::common::RegisterField<
7395        4,
7396        0x1,
7397        1,
7398        0,
7399        p200pfs_ha::Pcr,
7400        p200pfs_ha::Pcr,
7401        P200PfsHa_SPEC,
7402        crate::common::RW,
7403    > {
7404        crate::common::RegisterField::<
7405            4,
7406            0x1,
7407            1,
7408            0,
7409            p200pfs_ha::Pcr,
7410            p200pfs_ha::Pcr,
7411            P200PfsHa_SPEC,
7412            crate::common::RW,
7413        >::from_register(self, 0)
7414    }
7415
7416    #[doc = "N-Channel Open-Drain Control"]
7417    #[inline(always)]
7418    pub fn ncodr(
7419        self,
7420    ) -> crate::common::RegisterField<
7421        6,
7422        0x1,
7423        1,
7424        0,
7425        p200pfs_ha::Ncodr,
7426        p200pfs_ha::Ncodr,
7427        P200PfsHa_SPEC,
7428        crate::common::RW,
7429    > {
7430        crate::common::RegisterField::<
7431            6,
7432            0x1,
7433            1,
7434            0,
7435            p200pfs_ha::Ncodr,
7436            p200pfs_ha::Ncodr,
7437            P200PfsHa_SPEC,
7438            crate::common::RW,
7439        >::from_register(self, 0)
7440    }
7441
7442    #[doc = "Event on Falling/Event on Rising"]
7443    #[inline(always)]
7444    pub fn eofr(
7445        self,
7446    ) -> crate::common::RegisterField<
7447        12,
7448        0x3,
7449        1,
7450        0,
7451        p200pfs_ha::Eofr,
7452        p200pfs_ha::Eofr,
7453        P200PfsHa_SPEC,
7454        crate::common::RW,
7455    > {
7456        crate::common::RegisterField::<
7457            12,
7458            0x3,
7459            1,
7460            0,
7461            p200pfs_ha::Eofr,
7462            p200pfs_ha::Eofr,
7463            P200PfsHa_SPEC,
7464            crate::common::RW,
7465        >::from_register(self, 0)
7466    }
7467
7468    #[doc = "IRQ Input Enable"]
7469    #[inline(always)]
7470    pub fn isel(
7471        self,
7472    ) -> crate::common::RegisterField<
7473        14,
7474        0x1,
7475        1,
7476        0,
7477        p200pfs_ha::Isel,
7478        p200pfs_ha::Isel,
7479        P200PfsHa_SPEC,
7480        crate::common::RW,
7481    > {
7482        crate::common::RegisterField::<
7483            14,
7484            0x1,
7485            1,
7486            0,
7487            p200pfs_ha::Isel,
7488            p200pfs_ha::Isel,
7489            P200PfsHa_SPEC,
7490            crate::common::RW,
7491        >::from_register(self, 0)
7492    }
7493
7494    #[doc = "Analog Input Enable"]
7495    #[inline(always)]
7496    pub fn asel(
7497        self,
7498    ) -> crate::common::RegisterField<
7499        15,
7500        0x1,
7501        1,
7502        0,
7503        p200pfs_ha::Asel,
7504        p200pfs_ha::Asel,
7505        P200PfsHa_SPEC,
7506        crate::common::RW,
7507    > {
7508        crate::common::RegisterField::<
7509            15,
7510            0x1,
7511            1,
7512            0,
7513            p200pfs_ha::Asel,
7514            p200pfs_ha::Asel,
7515            P200PfsHa_SPEC,
7516            crate::common::RW,
7517        >::from_register(self, 0)
7518    }
7519}
7520impl ::core::default::Default for P200PfsHa {
7521    #[inline(always)]
7522    fn default() -> P200PfsHa {
7523        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
7524    }
7525}
7526pub mod p200pfs_ha {
7527
7528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7529    pub struct Podr_SPEC;
7530    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7531    impl Podr {
7532        #[doc = "Output low"]
7533        pub const _0: Self = Self::new(0);
7534
7535        #[doc = "Output high"]
7536        pub const _1: Self = Self::new(1);
7537    }
7538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7539    pub struct Pidr_SPEC;
7540    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7541    impl Pidr {
7542        #[doc = "Low level"]
7543        pub const _0: Self = Self::new(0);
7544
7545        #[doc = "High level"]
7546        pub const _1: Self = Self::new(1);
7547    }
7548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7549    pub struct Pdr_SPEC;
7550    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7551    impl Pdr {
7552        #[doc = "Input (functions as an input pin)"]
7553        pub const _0: Self = Self::new(0);
7554
7555        #[doc = "Output (functions as an output pin)"]
7556        pub const _1: Self = Self::new(1);
7557    }
7558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7559    pub struct Pcr_SPEC;
7560    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7561    impl Pcr {
7562        #[doc = "Disable input pull-up"]
7563        pub const _0: Self = Self::new(0);
7564
7565        #[doc = "Enable input pull-up"]
7566        pub const _1: Self = Self::new(1);
7567    }
7568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7569    pub struct Ncodr_SPEC;
7570    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7571    impl Ncodr {
7572        #[doc = "Output CMOS"]
7573        pub const _0: Self = Self::new(0);
7574
7575        #[doc = "Output NMOS open-drain"]
7576        pub const _1: Self = Self::new(1);
7577    }
7578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7579    pub struct Eofr_SPEC;
7580    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7581    impl Eofr {
7582        #[doc = "Don\'t care"]
7583        pub const _00: Self = Self::new(0);
7584
7585        #[doc = "Detect rising edge"]
7586        pub const _01: Self = Self::new(1);
7587
7588        #[doc = "Detect falling edge"]
7589        pub const _10: Self = Self::new(2);
7590
7591        #[doc = "Detect both edges"]
7592        pub const _11: Self = Self::new(3);
7593    }
7594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7595    pub struct Isel_SPEC;
7596    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7597    impl Isel {
7598        #[doc = "Do not use as IRQn input pin"]
7599        pub const _0: Self = Self::new(0);
7600
7601        #[doc = "Use as IRQn input pin"]
7602        pub const _1: Self = Self::new(1);
7603    }
7604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7605    pub struct Asel_SPEC;
7606    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7607    impl Asel {
7608        #[doc = "Do not use as analog pin"]
7609        pub const _0: Self = Self::new(0);
7610
7611        #[doc = "Use as analog pin"]
7612        pub const _1: Self = Self::new(1);
7613    }
7614}
7615#[doc(hidden)]
7616#[derive(Copy, Clone, Eq, PartialEq)]
7617pub struct P200PfsBy_SPEC;
7618impl crate::sealed::RegSpec for P200PfsBy_SPEC {
7619    type DataType = u8;
7620}
7621
7622#[doc = "Port 200 Pin Function Select Register"]
7623pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
7624
7625impl P200PfsBy {
7626    #[doc = "Port Output Data"]
7627    #[inline(always)]
7628    pub fn podr(
7629        self,
7630    ) -> crate::common::RegisterField<
7631        0,
7632        0x1,
7633        1,
7634        0,
7635        p200pfs_by::Podr,
7636        p200pfs_by::Podr,
7637        P200PfsBy_SPEC,
7638        crate::common::RW,
7639    > {
7640        crate::common::RegisterField::<
7641            0,
7642            0x1,
7643            1,
7644            0,
7645            p200pfs_by::Podr,
7646            p200pfs_by::Podr,
7647            P200PfsBy_SPEC,
7648            crate::common::RW,
7649        >::from_register(self, 0)
7650    }
7651
7652    #[doc = "Port State"]
7653    #[inline(always)]
7654    pub fn pidr(
7655        self,
7656    ) -> crate::common::RegisterField<
7657        1,
7658        0x1,
7659        1,
7660        0,
7661        p200pfs_by::Pidr,
7662        p200pfs_by::Pidr,
7663        P200PfsBy_SPEC,
7664        crate::common::R,
7665    > {
7666        crate::common::RegisterField::<
7667            1,
7668            0x1,
7669            1,
7670            0,
7671            p200pfs_by::Pidr,
7672            p200pfs_by::Pidr,
7673            P200PfsBy_SPEC,
7674            crate::common::R,
7675        >::from_register(self, 0)
7676    }
7677
7678    #[doc = "Port Direction"]
7679    #[inline(always)]
7680    pub fn pdr(
7681        self,
7682    ) -> crate::common::RegisterField<
7683        2,
7684        0x1,
7685        1,
7686        0,
7687        p200pfs_by::Pdr,
7688        p200pfs_by::Pdr,
7689        P200PfsBy_SPEC,
7690        crate::common::RW,
7691    > {
7692        crate::common::RegisterField::<
7693            2,
7694            0x1,
7695            1,
7696            0,
7697            p200pfs_by::Pdr,
7698            p200pfs_by::Pdr,
7699            P200PfsBy_SPEC,
7700            crate::common::RW,
7701        >::from_register(self, 0)
7702    }
7703
7704    #[doc = "Pull-up Control"]
7705    #[inline(always)]
7706    pub fn pcr(
7707        self,
7708    ) -> crate::common::RegisterField<
7709        4,
7710        0x1,
7711        1,
7712        0,
7713        p200pfs_by::Pcr,
7714        p200pfs_by::Pcr,
7715        P200PfsBy_SPEC,
7716        crate::common::RW,
7717    > {
7718        crate::common::RegisterField::<
7719            4,
7720            0x1,
7721            1,
7722            0,
7723            p200pfs_by::Pcr,
7724            p200pfs_by::Pcr,
7725            P200PfsBy_SPEC,
7726            crate::common::RW,
7727        >::from_register(self, 0)
7728    }
7729
7730    #[doc = "N-Channel Open-Drain Control"]
7731    #[inline(always)]
7732    pub fn ncodr(
7733        self,
7734    ) -> crate::common::RegisterField<
7735        6,
7736        0x1,
7737        1,
7738        0,
7739        p200pfs_by::Ncodr,
7740        p200pfs_by::Ncodr,
7741        P200PfsBy_SPEC,
7742        crate::common::RW,
7743    > {
7744        crate::common::RegisterField::<
7745            6,
7746            0x1,
7747            1,
7748            0,
7749            p200pfs_by::Ncodr,
7750            p200pfs_by::Ncodr,
7751            P200PfsBy_SPEC,
7752            crate::common::RW,
7753        >::from_register(self, 0)
7754    }
7755}
7756impl ::core::default::Default for P200PfsBy {
7757    #[inline(always)]
7758    fn default() -> P200PfsBy {
7759        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
7760    }
7761}
7762pub mod p200pfs_by {
7763
7764    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7765    pub struct Podr_SPEC;
7766    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7767    impl Podr {
7768        #[doc = "Output low"]
7769        pub const _0: Self = Self::new(0);
7770
7771        #[doc = "Output high"]
7772        pub const _1: Self = Self::new(1);
7773    }
7774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7775    pub struct Pidr_SPEC;
7776    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7777    impl Pidr {
7778        #[doc = "Low level"]
7779        pub const _0: Self = Self::new(0);
7780
7781        #[doc = "High level"]
7782        pub const _1: Self = Self::new(1);
7783    }
7784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7785    pub struct Pdr_SPEC;
7786    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7787    impl Pdr {
7788        #[doc = "Input (functions as an input pin)"]
7789        pub const _0: Self = Self::new(0);
7790
7791        #[doc = "Output (functions as an output pin)"]
7792        pub const _1: Self = Self::new(1);
7793    }
7794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7795    pub struct Pcr_SPEC;
7796    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7797    impl Pcr {
7798        #[doc = "Disable input pull-up"]
7799        pub const _0: Self = Self::new(0);
7800
7801        #[doc = "Enable input pull-up"]
7802        pub const _1: Self = Self::new(1);
7803    }
7804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7805    pub struct Ncodr_SPEC;
7806    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7807    impl Ncodr {
7808        #[doc = "Output CMOS"]
7809        pub const _0: Self = Self::new(0);
7810
7811        #[doc = "Output NMOS open-drain"]
7812        pub const _1: Self = Self::new(1);
7813    }
7814}
7815#[doc(hidden)]
7816#[derive(Copy, Clone, Eq, PartialEq)]
7817pub struct P201Pfs_SPEC;
7818impl crate::sealed::RegSpec for P201Pfs_SPEC {
7819    type DataType = u32;
7820}
7821
7822#[doc = "Port 201 Pin Function Select Register"]
7823pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
7824
7825impl P201Pfs {
7826    #[doc = "Port Output Data"]
7827    #[inline(always)]
7828    pub fn podr(
7829        self,
7830    ) -> crate::common::RegisterField<
7831        0,
7832        0x1,
7833        1,
7834        0,
7835        p201pfs::Podr,
7836        p201pfs::Podr,
7837        P201Pfs_SPEC,
7838        crate::common::RW,
7839    > {
7840        crate::common::RegisterField::<
7841            0,
7842            0x1,
7843            1,
7844            0,
7845            p201pfs::Podr,
7846            p201pfs::Podr,
7847            P201Pfs_SPEC,
7848            crate::common::RW,
7849        >::from_register(self, 0)
7850    }
7851
7852    #[doc = "Port State"]
7853    #[inline(always)]
7854    pub fn pidr(
7855        self,
7856    ) -> crate::common::RegisterField<
7857        1,
7858        0x1,
7859        1,
7860        0,
7861        p201pfs::Pidr,
7862        p201pfs::Pidr,
7863        P201Pfs_SPEC,
7864        crate::common::R,
7865    > {
7866        crate::common::RegisterField::<
7867            1,
7868            0x1,
7869            1,
7870            0,
7871            p201pfs::Pidr,
7872            p201pfs::Pidr,
7873            P201Pfs_SPEC,
7874            crate::common::R,
7875        >::from_register(self, 0)
7876    }
7877
7878    #[doc = "Port Direction"]
7879    #[inline(always)]
7880    pub fn pdr(
7881        self,
7882    ) -> crate::common::RegisterField<
7883        2,
7884        0x1,
7885        1,
7886        0,
7887        p201pfs::Pdr,
7888        p201pfs::Pdr,
7889        P201Pfs_SPEC,
7890        crate::common::RW,
7891    > {
7892        crate::common::RegisterField::<
7893            2,
7894            0x1,
7895            1,
7896            0,
7897            p201pfs::Pdr,
7898            p201pfs::Pdr,
7899            P201Pfs_SPEC,
7900            crate::common::RW,
7901        >::from_register(self, 0)
7902    }
7903
7904    #[doc = "Pull-up Control"]
7905    #[inline(always)]
7906    pub fn pcr(
7907        self,
7908    ) -> crate::common::RegisterField<
7909        4,
7910        0x1,
7911        1,
7912        0,
7913        p201pfs::Pcr,
7914        p201pfs::Pcr,
7915        P201Pfs_SPEC,
7916        crate::common::RW,
7917    > {
7918        crate::common::RegisterField::<
7919            4,
7920            0x1,
7921            1,
7922            0,
7923            p201pfs::Pcr,
7924            p201pfs::Pcr,
7925            P201Pfs_SPEC,
7926            crate::common::RW,
7927        >::from_register(self, 0)
7928    }
7929
7930    #[doc = "N-Channel Open-Drain Control"]
7931    #[inline(always)]
7932    pub fn ncodr(
7933        self,
7934    ) -> crate::common::RegisterField<
7935        6,
7936        0x1,
7937        1,
7938        0,
7939        p201pfs::Ncodr,
7940        p201pfs::Ncodr,
7941        P201Pfs_SPEC,
7942        crate::common::RW,
7943    > {
7944        crate::common::RegisterField::<
7945            6,
7946            0x1,
7947            1,
7948            0,
7949            p201pfs::Ncodr,
7950            p201pfs::Ncodr,
7951            P201Pfs_SPEC,
7952            crate::common::RW,
7953        >::from_register(self, 0)
7954    }
7955
7956    #[doc = "Event on Falling/Event on Rising"]
7957    #[inline(always)]
7958    pub fn eofr(
7959        self,
7960    ) -> crate::common::RegisterField<
7961        12,
7962        0x3,
7963        1,
7964        0,
7965        p201pfs::Eofr,
7966        p201pfs::Eofr,
7967        P201Pfs_SPEC,
7968        crate::common::RW,
7969    > {
7970        crate::common::RegisterField::<
7971            12,
7972            0x3,
7973            1,
7974            0,
7975            p201pfs::Eofr,
7976            p201pfs::Eofr,
7977            P201Pfs_SPEC,
7978            crate::common::RW,
7979        >::from_register(self, 0)
7980    }
7981
7982    #[doc = "IRQ Input Enable"]
7983    #[inline(always)]
7984    pub fn isel(
7985        self,
7986    ) -> crate::common::RegisterField<
7987        14,
7988        0x1,
7989        1,
7990        0,
7991        p201pfs::Isel,
7992        p201pfs::Isel,
7993        P201Pfs_SPEC,
7994        crate::common::RW,
7995    > {
7996        crate::common::RegisterField::<
7997            14,
7998            0x1,
7999            1,
8000            0,
8001            p201pfs::Isel,
8002            p201pfs::Isel,
8003            P201Pfs_SPEC,
8004            crate::common::RW,
8005        >::from_register(self, 0)
8006    }
8007
8008    #[doc = "Analog Input Enable"]
8009    #[inline(always)]
8010    pub fn asel(
8011        self,
8012    ) -> crate::common::RegisterField<
8013        15,
8014        0x1,
8015        1,
8016        0,
8017        p201pfs::Asel,
8018        p201pfs::Asel,
8019        P201Pfs_SPEC,
8020        crate::common::RW,
8021    > {
8022        crate::common::RegisterField::<
8023            15,
8024            0x1,
8025            1,
8026            0,
8027            p201pfs::Asel,
8028            p201pfs::Asel,
8029            P201Pfs_SPEC,
8030            crate::common::RW,
8031        >::from_register(self, 0)
8032    }
8033
8034    #[doc = "Port Mode Control"]
8035    #[inline(always)]
8036    pub fn pmr(
8037        self,
8038    ) -> crate::common::RegisterField<
8039        16,
8040        0x1,
8041        1,
8042        0,
8043        p201pfs::Pmr,
8044        p201pfs::Pmr,
8045        P201Pfs_SPEC,
8046        crate::common::RW,
8047    > {
8048        crate::common::RegisterField::<
8049            16,
8050            0x1,
8051            1,
8052            0,
8053            p201pfs::Pmr,
8054            p201pfs::Pmr,
8055            P201Pfs_SPEC,
8056            crate::common::RW,
8057        >::from_register(self, 0)
8058    }
8059
8060    #[doc = "Peripheral Select"]
8061    #[inline(always)]
8062    pub fn psel(
8063        self,
8064    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
8065        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
8066    }
8067}
8068impl ::core::default::Default for P201Pfs {
8069    #[inline(always)]
8070    fn default() -> P201Pfs {
8071        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
8072    }
8073}
8074pub mod p201pfs {
8075
8076    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8077    pub struct Podr_SPEC;
8078    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8079    impl Podr {
8080        #[doc = "Output low"]
8081        pub const _0: Self = Self::new(0);
8082
8083        #[doc = "Output high"]
8084        pub const _1: Self = Self::new(1);
8085    }
8086    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8087    pub struct Pidr_SPEC;
8088    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8089    impl Pidr {
8090        #[doc = "Low level"]
8091        pub const _0: Self = Self::new(0);
8092
8093        #[doc = "High level"]
8094        pub const _1: Self = Self::new(1);
8095    }
8096    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8097    pub struct Pdr_SPEC;
8098    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8099    impl Pdr {
8100        #[doc = "Input (functions as an input pin)"]
8101        pub const _0: Self = Self::new(0);
8102
8103        #[doc = "Output (functions as an output pin)"]
8104        pub const _1: Self = Self::new(1);
8105    }
8106    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8107    pub struct Pcr_SPEC;
8108    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8109    impl Pcr {
8110        #[doc = "Disable input pull-up"]
8111        pub const _0: Self = Self::new(0);
8112
8113        #[doc = "Enable input pull-up"]
8114        pub const _1: Self = Self::new(1);
8115    }
8116    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8117    pub struct Ncodr_SPEC;
8118    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8119    impl Ncodr {
8120        #[doc = "Output CMOS"]
8121        pub const _0: Self = Self::new(0);
8122
8123        #[doc = "Output NMOS open-drain"]
8124        pub const _1: Self = Self::new(1);
8125    }
8126    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8127    pub struct Eofr_SPEC;
8128    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8129    impl Eofr {
8130        #[doc = "Don\'t care"]
8131        pub const _00: Self = Self::new(0);
8132
8133        #[doc = "Detect rising edge"]
8134        pub const _01: Self = Self::new(1);
8135
8136        #[doc = "Detect falling edge"]
8137        pub const _10: Self = Self::new(2);
8138
8139        #[doc = "Detect both edges"]
8140        pub const _11: Self = Self::new(3);
8141    }
8142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8143    pub struct Isel_SPEC;
8144    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8145    impl Isel {
8146        #[doc = "Do not use as IRQn input pin"]
8147        pub const _0: Self = Self::new(0);
8148
8149        #[doc = "Use as IRQn input pin"]
8150        pub const _1: Self = Self::new(1);
8151    }
8152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8153    pub struct Asel_SPEC;
8154    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8155    impl Asel {
8156        #[doc = "Do not use as analog pin"]
8157        pub const _0: Self = Self::new(0);
8158
8159        #[doc = "Use as analog pin"]
8160        pub const _1: Self = Self::new(1);
8161    }
8162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8163    pub struct Pmr_SPEC;
8164    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8165    impl Pmr {
8166        #[doc = "Use as general I/O pin"]
8167        pub const _0: Self = Self::new(0);
8168
8169        #[doc = "Use as I/O port for peripheral functions"]
8170        pub const _1: Self = Self::new(1);
8171    }
8172}
8173#[doc(hidden)]
8174#[derive(Copy, Clone, Eq, PartialEq)]
8175pub struct P201PfsHa_SPEC;
8176impl crate::sealed::RegSpec for P201PfsHa_SPEC {
8177    type DataType = u16;
8178}
8179
8180#[doc = "Port 201 Pin Function Select Register"]
8181pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
8182
8183impl P201PfsHa {
8184    #[doc = "Port Output Data"]
8185    #[inline(always)]
8186    pub fn podr(
8187        self,
8188    ) -> crate::common::RegisterField<
8189        0,
8190        0x1,
8191        1,
8192        0,
8193        p201pfs_ha::Podr,
8194        p201pfs_ha::Podr,
8195        P201PfsHa_SPEC,
8196        crate::common::RW,
8197    > {
8198        crate::common::RegisterField::<
8199            0,
8200            0x1,
8201            1,
8202            0,
8203            p201pfs_ha::Podr,
8204            p201pfs_ha::Podr,
8205            P201PfsHa_SPEC,
8206            crate::common::RW,
8207        >::from_register(self, 0)
8208    }
8209
8210    #[doc = "Port State"]
8211    #[inline(always)]
8212    pub fn pidr(
8213        self,
8214    ) -> crate::common::RegisterField<
8215        1,
8216        0x1,
8217        1,
8218        0,
8219        p201pfs_ha::Pidr,
8220        p201pfs_ha::Pidr,
8221        P201PfsHa_SPEC,
8222        crate::common::R,
8223    > {
8224        crate::common::RegisterField::<
8225            1,
8226            0x1,
8227            1,
8228            0,
8229            p201pfs_ha::Pidr,
8230            p201pfs_ha::Pidr,
8231            P201PfsHa_SPEC,
8232            crate::common::R,
8233        >::from_register(self, 0)
8234    }
8235
8236    #[doc = "Port Direction"]
8237    #[inline(always)]
8238    pub fn pdr(
8239        self,
8240    ) -> crate::common::RegisterField<
8241        2,
8242        0x1,
8243        1,
8244        0,
8245        p201pfs_ha::Pdr,
8246        p201pfs_ha::Pdr,
8247        P201PfsHa_SPEC,
8248        crate::common::RW,
8249    > {
8250        crate::common::RegisterField::<
8251            2,
8252            0x1,
8253            1,
8254            0,
8255            p201pfs_ha::Pdr,
8256            p201pfs_ha::Pdr,
8257            P201PfsHa_SPEC,
8258            crate::common::RW,
8259        >::from_register(self, 0)
8260    }
8261
8262    #[doc = "Pull-up Control"]
8263    #[inline(always)]
8264    pub fn pcr(
8265        self,
8266    ) -> crate::common::RegisterField<
8267        4,
8268        0x1,
8269        1,
8270        0,
8271        p201pfs_ha::Pcr,
8272        p201pfs_ha::Pcr,
8273        P201PfsHa_SPEC,
8274        crate::common::RW,
8275    > {
8276        crate::common::RegisterField::<
8277            4,
8278            0x1,
8279            1,
8280            0,
8281            p201pfs_ha::Pcr,
8282            p201pfs_ha::Pcr,
8283            P201PfsHa_SPEC,
8284            crate::common::RW,
8285        >::from_register(self, 0)
8286    }
8287
8288    #[doc = "N-Channel Open-Drain Control"]
8289    #[inline(always)]
8290    pub fn ncodr(
8291        self,
8292    ) -> crate::common::RegisterField<
8293        6,
8294        0x1,
8295        1,
8296        0,
8297        p201pfs_ha::Ncodr,
8298        p201pfs_ha::Ncodr,
8299        P201PfsHa_SPEC,
8300        crate::common::RW,
8301    > {
8302        crate::common::RegisterField::<
8303            6,
8304            0x1,
8305            1,
8306            0,
8307            p201pfs_ha::Ncodr,
8308            p201pfs_ha::Ncodr,
8309            P201PfsHa_SPEC,
8310            crate::common::RW,
8311        >::from_register(self, 0)
8312    }
8313
8314    #[doc = "Event on Falling/Event on Rising"]
8315    #[inline(always)]
8316    pub fn eofr(
8317        self,
8318    ) -> crate::common::RegisterField<
8319        12,
8320        0x3,
8321        1,
8322        0,
8323        p201pfs_ha::Eofr,
8324        p201pfs_ha::Eofr,
8325        P201PfsHa_SPEC,
8326        crate::common::RW,
8327    > {
8328        crate::common::RegisterField::<
8329            12,
8330            0x3,
8331            1,
8332            0,
8333            p201pfs_ha::Eofr,
8334            p201pfs_ha::Eofr,
8335            P201PfsHa_SPEC,
8336            crate::common::RW,
8337        >::from_register(self, 0)
8338    }
8339
8340    #[doc = "IRQ Input Enable"]
8341    #[inline(always)]
8342    pub fn isel(
8343        self,
8344    ) -> crate::common::RegisterField<
8345        14,
8346        0x1,
8347        1,
8348        0,
8349        p201pfs_ha::Isel,
8350        p201pfs_ha::Isel,
8351        P201PfsHa_SPEC,
8352        crate::common::RW,
8353    > {
8354        crate::common::RegisterField::<
8355            14,
8356            0x1,
8357            1,
8358            0,
8359            p201pfs_ha::Isel,
8360            p201pfs_ha::Isel,
8361            P201PfsHa_SPEC,
8362            crate::common::RW,
8363        >::from_register(self, 0)
8364    }
8365
8366    #[doc = "Analog Input Enable"]
8367    #[inline(always)]
8368    pub fn asel(
8369        self,
8370    ) -> crate::common::RegisterField<
8371        15,
8372        0x1,
8373        1,
8374        0,
8375        p201pfs_ha::Asel,
8376        p201pfs_ha::Asel,
8377        P201PfsHa_SPEC,
8378        crate::common::RW,
8379    > {
8380        crate::common::RegisterField::<
8381            15,
8382            0x1,
8383            1,
8384            0,
8385            p201pfs_ha::Asel,
8386            p201pfs_ha::Asel,
8387            P201PfsHa_SPEC,
8388            crate::common::RW,
8389        >::from_register(self, 0)
8390    }
8391}
8392impl ::core::default::Default for P201PfsHa {
8393    #[inline(always)]
8394    fn default() -> P201PfsHa {
8395        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
8396    }
8397}
8398pub mod p201pfs_ha {
8399
8400    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8401    pub struct Podr_SPEC;
8402    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8403    impl Podr {
8404        #[doc = "Output low"]
8405        pub const _0: Self = Self::new(0);
8406
8407        #[doc = "Output high"]
8408        pub const _1: Self = Self::new(1);
8409    }
8410    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8411    pub struct Pidr_SPEC;
8412    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8413    impl Pidr {
8414        #[doc = "Low level"]
8415        pub const _0: Self = Self::new(0);
8416
8417        #[doc = "High level"]
8418        pub const _1: Self = Self::new(1);
8419    }
8420    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8421    pub struct Pdr_SPEC;
8422    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8423    impl Pdr {
8424        #[doc = "Input (functions as an input pin)"]
8425        pub const _0: Self = Self::new(0);
8426
8427        #[doc = "Output (functions as an output pin)"]
8428        pub const _1: Self = Self::new(1);
8429    }
8430    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8431    pub struct Pcr_SPEC;
8432    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8433    impl Pcr {
8434        #[doc = "Disable input pull-up"]
8435        pub const _0: Self = Self::new(0);
8436
8437        #[doc = "Enable input pull-up"]
8438        pub const _1: Self = Self::new(1);
8439    }
8440    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8441    pub struct Ncodr_SPEC;
8442    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8443    impl Ncodr {
8444        #[doc = "Output CMOS"]
8445        pub const _0: Self = Self::new(0);
8446
8447        #[doc = "Output NMOS open-drain"]
8448        pub const _1: Self = Self::new(1);
8449    }
8450    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8451    pub struct Eofr_SPEC;
8452    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8453    impl Eofr {
8454        #[doc = "Don\'t care"]
8455        pub const _00: Self = Self::new(0);
8456
8457        #[doc = "Detect rising edge"]
8458        pub const _01: Self = Self::new(1);
8459
8460        #[doc = "Detect falling edge"]
8461        pub const _10: Self = Self::new(2);
8462
8463        #[doc = "Detect both edges"]
8464        pub const _11: Self = Self::new(3);
8465    }
8466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8467    pub struct Isel_SPEC;
8468    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8469    impl Isel {
8470        #[doc = "Do not use as IRQn input pin"]
8471        pub const _0: Self = Self::new(0);
8472
8473        #[doc = "Use as IRQn input pin"]
8474        pub const _1: Self = Self::new(1);
8475    }
8476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8477    pub struct Asel_SPEC;
8478    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8479    impl Asel {
8480        #[doc = "Do not use as analog pin"]
8481        pub const _0: Self = Self::new(0);
8482
8483        #[doc = "Use as analog pin"]
8484        pub const _1: Self = Self::new(1);
8485    }
8486}
8487#[doc(hidden)]
8488#[derive(Copy, Clone, Eq, PartialEq)]
8489pub struct P201PfsBy_SPEC;
8490impl crate::sealed::RegSpec for P201PfsBy_SPEC {
8491    type DataType = u8;
8492}
8493
8494#[doc = "Port 201 Pin Function Select Register"]
8495pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
8496
8497impl P201PfsBy {
8498    #[doc = "Port Output Data"]
8499    #[inline(always)]
8500    pub fn podr(
8501        self,
8502    ) -> crate::common::RegisterField<
8503        0,
8504        0x1,
8505        1,
8506        0,
8507        p201pfs_by::Podr,
8508        p201pfs_by::Podr,
8509        P201PfsBy_SPEC,
8510        crate::common::RW,
8511    > {
8512        crate::common::RegisterField::<
8513            0,
8514            0x1,
8515            1,
8516            0,
8517            p201pfs_by::Podr,
8518            p201pfs_by::Podr,
8519            P201PfsBy_SPEC,
8520            crate::common::RW,
8521        >::from_register(self, 0)
8522    }
8523
8524    #[doc = "Port State"]
8525    #[inline(always)]
8526    pub fn pidr(
8527        self,
8528    ) -> crate::common::RegisterField<
8529        1,
8530        0x1,
8531        1,
8532        0,
8533        p201pfs_by::Pidr,
8534        p201pfs_by::Pidr,
8535        P201PfsBy_SPEC,
8536        crate::common::R,
8537    > {
8538        crate::common::RegisterField::<
8539            1,
8540            0x1,
8541            1,
8542            0,
8543            p201pfs_by::Pidr,
8544            p201pfs_by::Pidr,
8545            P201PfsBy_SPEC,
8546            crate::common::R,
8547        >::from_register(self, 0)
8548    }
8549
8550    #[doc = "Port Direction"]
8551    #[inline(always)]
8552    pub fn pdr(
8553        self,
8554    ) -> crate::common::RegisterField<
8555        2,
8556        0x1,
8557        1,
8558        0,
8559        p201pfs_by::Pdr,
8560        p201pfs_by::Pdr,
8561        P201PfsBy_SPEC,
8562        crate::common::RW,
8563    > {
8564        crate::common::RegisterField::<
8565            2,
8566            0x1,
8567            1,
8568            0,
8569            p201pfs_by::Pdr,
8570            p201pfs_by::Pdr,
8571            P201PfsBy_SPEC,
8572            crate::common::RW,
8573        >::from_register(self, 0)
8574    }
8575
8576    #[doc = "Pull-up Control"]
8577    #[inline(always)]
8578    pub fn pcr(
8579        self,
8580    ) -> crate::common::RegisterField<
8581        4,
8582        0x1,
8583        1,
8584        0,
8585        p201pfs_by::Pcr,
8586        p201pfs_by::Pcr,
8587        P201PfsBy_SPEC,
8588        crate::common::RW,
8589    > {
8590        crate::common::RegisterField::<
8591            4,
8592            0x1,
8593            1,
8594            0,
8595            p201pfs_by::Pcr,
8596            p201pfs_by::Pcr,
8597            P201PfsBy_SPEC,
8598            crate::common::RW,
8599        >::from_register(self, 0)
8600    }
8601
8602    #[doc = "N-Channel Open-Drain Control"]
8603    #[inline(always)]
8604    pub fn ncodr(
8605        self,
8606    ) -> crate::common::RegisterField<
8607        6,
8608        0x1,
8609        1,
8610        0,
8611        p201pfs_by::Ncodr,
8612        p201pfs_by::Ncodr,
8613        P201PfsBy_SPEC,
8614        crate::common::RW,
8615    > {
8616        crate::common::RegisterField::<
8617            6,
8618            0x1,
8619            1,
8620            0,
8621            p201pfs_by::Ncodr,
8622            p201pfs_by::Ncodr,
8623            P201PfsBy_SPEC,
8624            crate::common::RW,
8625        >::from_register(self, 0)
8626    }
8627}
8628impl ::core::default::Default for P201PfsBy {
8629    #[inline(always)]
8630    fn default() -> P201PfsBy {
8631        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
8632    }
8633}
8634pub mod p201pfs_by {
8635
8636    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8637    pub struct Podr_SPEC;
8638    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8639    impl Podr {
8640        #[doc = "Output low"]
8641        pub const _0: Self = Self::new(0);
8642
8643        #[doc = "Output high"]
8644        pub const _1: Self = Self::new(1);
8645    }
8646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8647    pub struct Pidr_SPEC;
8648    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8649    impl Pidr {
8650        #[doc = "Low level"]
8651        pub const _0: Self = Self::new(0);
8652
8653        #[doc = "High level"]
8654        pub const _1: Self = Self::new(1);
8655    }
8656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8657    pub struct Pdr_SPEC;
8658    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8659    impl Pdr {
8660        #[doc = "Input (functions as an input pin)"]
8661        pub const _0: Self = Self::new(0);
8662
8663        #[doc = "Output (functions as an output pin)"]
8664        pub const _1: Self = Self::new(1);
8665    }
8666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8667    pub struct Pcr_SPEC;
8668    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8669    impl Pcr {
8670        #[doc = "Disable input pull-up"]
8671        pub const _0: Self = Self::new(0);
8672
8673        #[doc = "Enable input pull-up"]
8674        pub const _1: Self = Self::new(1);
8675    }
8676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8677    pub struct Ncodr_SPEC;
8678    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8679    impl Ncodr {
8680        #[doc = "Output CMOS"]
8681        pub const _0: Self = Self::new(0);
8682
8683        #[doc = "Output NMOS open-drain"]
8684        pub const _1: Self = Self::new(1);
8685    }
8686}
8687#[doc(hidden)]
8688#[derive(Copy, Clone, Eq, PartialEq)]
8689pub struct P20Pfs_SPEC;
8690impl crate::sealed::RegSpec for P20Pfs_SPEC {
8691    type DataType = u32;
8692}
8693
8694#[doc = "Port 20%s Pin Function Select Register"]
8695pub type P20Pfs = crate::RegValueT<P20Pfs_SPEC>;
8696
8697impl P20Pfs {
8698    #[doc = "Port Output Data"]
8699    #[inline(always)]
8700    pub fn podr(
8701        self,
8702    ) -> crate::common::RegisterField<
8703        0,
8704        0x1,
8705        1,
8706        0,
8707        p20pfs::Podr,
8708        p20pfs::Podr,
8709        P20Pfs_SPEC,
8710        crate::common::RW,
8711    > {
8712        crate::common::RegisterField::<
8713            0,
8714            0x1,
8715            1,
8716            0,
8717            p20pfs::Podr,
8718            p20pfs::Podr,
8719            P20Pfs_SPEC,
8720            crate::common::RW,
8721        >::from_register(self, 0)
8722    }
8723
8724    #[doc = "Port State"]
8725    #[inline(always)]
8726    pub fn pidr(
8727        self,
8728    ) -> crate::common::RegisterField<
8729        1,
8730        0x1,
8731        1,
8732        0,
8733        p20pfs::Pidr,
8734        p20pfs::Pidr,
8735        P20Pfs_SPEC,
8736        crate::common::R,
8737    > {
8738        crate::common::RegisterField::<
8739            1,
8740            0x1,
8741            1,
8742            0,
8743            p20pfs::Pidr,
8744            p20pfs::Pidr,
8745            P20Pfs_SPEC,
8746            crate::common::R,
8747        >::from_register(self, 0)
8748    }
8749
8750    #[doc = "Port Direction"]
8751    #[inline(always)]
8752    pub fn pdr(
8753        self,
8754    ) -> crate::common::RegisterField<
8755        2,
8756        0x1,
8757        1,
8758        0,
8759        p20pfs::Pdr,
8760        p20pfs::Pdr,
8761        P20Pfs_SPEC,
8762        crate::common::RW,
8763    > {
8764        crate::common::RegisterField::<
8765            2,
8766            0x1,
8767            1,
8768            0,
8769            p20pfs::Pdr,
8770            p20pfs::Pdr,
8771            P20Pfs_SPEC,
8772            crate::common::RW,
8773        >::from_register(self, 0)
8774    }
8775
8776    #[doc = "Pull-up Control"]
8777    #[inline(always)]
8778    pub fn pcr(
8779        self,
8780    ) -> crate::common::RegisterField<
8781        4,
8782        0x1,
8783        1,
8784        0,
8785        p20pfs::Pcr,
8786        p20pfs::Pcr,
8787        P20Pfs_SPEC,
8788        crate::common::RW,
8789    > {
8790        crate::common::RegisterField::<
8791            4,
8792            0x1,
8793            1,
8794            0,
8795            p20pfs::Pcr,
8796            p20pfs::Pcr,
8797            P20Pfs_SPEC,
8798            crate::common::RW,
8799        >::from_register(self, 0)
8800    }
8801
8802    #[doc = "N-Channel Open-Drain Control"]
8803    #[inline(always)]
8804    pub fn ncodr(
8805        self,
8806    ) -> crate::common::RegisterField<
8807        6,
8808        0x1,
8809        1,
8810        0,
8811        p20pfs::Ncodr,
8812        p20pfs::Ncodr,
8813        P20Pfs_SPEC,
8814        crate::common::RW,
8815    > {
8816        crate::common::RegisterField::<
8817            6,
8818            0x1,
8819            1,
8820            0,
8821            p20pfs::Ncodr,
8822            p20pfs::Ncodr,
8823            P20Pfs_SPEC,
8824            crate::common::RW,
8825        >::from_register(self, 0)
8826    }
8827
8828    #[doc = "Event on Falling/Event on Rising"]
8829    #[inline(always)]
8830    pub fn eofr(
8831        self,
8832    ) -> crate::common::RegisterField<
8833        12,
8834        0x3,
8835        1,
8836        0,
8837        p20pfs::Eofr,
8838        p20pfs::Eofr,
8839        P20Pfs_SPEC,
8840        crate::common::RW,
8841    > {
8842        crate::common::RegisterField::<
8843            12,
8844            0x3,
8845            1,
8846            0,
8847            p20pfs::Eofr,
8848            p20pfs::Eofr,
8849            P20Pfs_SPEC,
8850            crate::common::RW,
8851        >::from_register(self, 0)
8852    }
8853
8854    #[doc = "IRQ Input Enable"]
8855    #[inline(always)]
8856    pub fn isel(
8857        self,
8858    ) -> crate::common::RegisterField<
8859        14,
8860        0x1,
8861        1,
8862        0,
8863        p20pfs::Isel,
8864        p20pfs::Isel,
8865        P20Pfs_SPEC,
8866        crate::common::RW,
8867    > {
8868        crate::common::RegisterField::<
8869            14,
8870            0x1,
8871            1,
8872            0,
8873            p20pfs::Isel,
8874            p20pfs::Isel,
8875            P20Pfs_SPEC,
8876            crate::common::RW,
8877        >::from_register(self, 0)
8878    }
8879
8880    #[doc = "Analog Input Enable"]
8881    #[inline(always)]
8882    pub fn asel(
8883        self,
8884    ) -> crate::common::RegisterField<
8885        15,
8886        0x1,
8887        1,
8888        0,
8889        p20pfs::Asel,
8890        p20pfs::Asel,
8891        P20Pfs_SPEC,
8892        crate::common::RW,
8893    > {
8894        crate::common::RegisterField::<
8895            15,
8896            0x1,
8897            1,
8898            0,
8899            p20pfs::Asel,
8900            p20pfs::Asel,
8901            P20Pfs_SPEC,
8902            crate::common::RW,
8903        >::from_register(self, 0)
8904    }
8905
8906    #[doc = "Port Mode Control"]
8907    #[inline(always)]
8908    pub fn pmr(
8909        self,
8910    ) -> crate::common::RegisterField<
8911        16,
8912        0x1,
8913        1,
8914        0,
8915        p20pfs::Pmr,
8916        p20pfs::Pmr,
8917        P20Pfs_SPEC,
8918        crate::common::RW,
8919    > {
8920        crate::common::RegisterField::<
8921            16,
8922            0x1,
8923            1,
8924            0,
8925            p20pfs::Pmr,
8926            p20pfs::Pmr,
8927            P20Pfs_SPEC,
8928            crate::common::RW,
8929        >::from_register(self, 0)
8930    }
8931
8932    #[doc = "Peripheral Select"]
8933    #[inline(always)]
8934    pub fn psel(
8935        self,
8936    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P20Pfs_SPEC, crate::common::RW> {
8937        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P20Pfs_SPEC,crate::common::RW>::from_register(self,0)
8938    }
8939}
8940impl ::core::default::Default for P20Pfs {
8941    #[inline(always)]
8942    fn default() -> P20Pfs {
8943        <crate::RegValueT<P20Pfs_SPEC> as RegisterValue<_>>::new(0)
8944    }
8945}
8946pub mod p20pfs {
8947
8948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8949    pub struct Podr_SPEC;
8950    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8951    impl Podr {
8952        #[doc = "Output low"]
8953        pub const _0: Self = Self::new(0);
8954
8955        #[doc = "Output high"]
8956        pub const _1: Self = Self::new(1);
8957    }
8958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8959    pub struct Pidr_SPEC;
8960    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8961    impl Pidr {
8962        #[doc = "Low level"]
8963        pub const _0: Self = Self::new(0);
8964
8965        #[doc = "High level"]
8966        pub const _1: Self = Self::new(1);
8967    }
8968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8969    pub struct Pdr_SPEC;
8970    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8971    impl Pdr {
8972        #[doc = "Input (functions as an input pin)"]
8973        pub const _0: Self = Self::new(0);
8974
8975        #[doc = "Output (functions as an output pin)"]
8976        pub const _1: Self = Self::new(1);
8977    }
8978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8979    pub struct Pcr_SPEC;
8980    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8981    impl Pcr {
8982        #[doc = "Disable input pull-up"]
8983        pub const _0: Self = Self::new(0);
8984
8985        #[doc = "Enable input pull-up"]
8986        pub const _1: Self = Self::new(1);
8987    }
8988    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8989    pub struct Ncodr_SPEC;
8990    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8991    impl Ncodr {
8992        #[doc = "Output CMOS"]
8993        pub const _0: Self = Self::new(0);
8994
8995        #[doc = "Output NMOS open-drain"]
8996        pub const _1: Self = Self::new(1);
8997    }
8998    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8999    pub struct Eofr_SPEC;
9000    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9001    impl Eofr {
9002        #[doc = "Don\'t care"]
9003        pub const _00: Self = Self::new(0);
9004
9005        #[doc = "Detect rising edge"]
9006        pub const _01: Self = Self::new(1);
9007
9008        #[doc = "Detect falling edge"]
9009        pub const _10: Self = Self::new(2);
9010
9011        #[doc = "Detect both edges"]
9012        pub const _11: Self = Self::new(3);
9013    }
9014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9015    pub struct Isel_SPEC;
9016    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9017    impl Isel {
9018        #[doc = "Do not use as IRQn input pin"]
9019        pub const _0: Self = Self::new(0);
9020
9021        #[doc = "Use as IRQn input pin"]
9022        pub const _1: Self = Self::new(1);
9023    }
9024    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9025    pub struct Asel_SPEC;
9026    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9027    impl Asel {
9028        #[doc = "Do not use as analog pin"]
9029        pub const _0: Self = Self::new(0);
9030
9031        #[doc = "Use as analog pin"]
9032        pub const _1: Self = Self::new(1);
9033    }
9034    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9035    pub struct Pmr_SPEC;
9036    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9037    impl Pmr {
9038        #[doc = "Use as general I/O pin"]
9039        pub const _0: Self = Self::new(0);
9040
9041        #[doc = "Use as I/O port for peripheral functions"]
9042        pub const _1: Self = Self::new(1);
9043    }
9044}
9045#[doc(hidden)]
9046#[derive(Copy, Clone, Eq, PartialEq)]
9047pub struct P20PfsHa_SPEC;
9048impl crate::sealed::RegSpec for P20PfsHa_SPEC {
9049    type DataType = u16;
9050}
9051
9052#[doc = "Port 20%s Pin Function Select Register"]
9053pub type P20PfsHa = crate::RegValueT<P20PfsHa_SPEC>;
9054
9055impl P20PfsHa {
9056    #[doc = "Port Output Data"]
9057    #[inline(always)]
9058    pub fn podr(
9059        self,
9060    ) -> crate::common::RegisterField<
9061        0,
9062        0x1,
9063        1,
9064        0,
9065        p20pfs_ha::Podr,
9066        p20pfs_ha::Podr,
9067        P20PfsHa_SPEC,
9068        crate::common::RW,
9069    > {
9070        crate::common::RegisterField::<
9071            0,
9072            0x1,
9073            1,
9074            0,
9075            p20pfs_ha::Podr,
9076            p20pfs_ha::Podr,
9077            P20PfsHa_SPEC,
9078            crate::common::RW,
9079        >::from_register(self, 0)
9080    }
9081
9082    #[doc = "Port State"]
9083    #[inline(always)]
9084    pub fn pidr(
9085        self,
9086    ) -> crate::common::RegisterField<
9087        1,
9088        0x1,
9089        1,
9090        0,
9091        p20pfs_ha::Pidr,
9092        p20pfs_ha::Pidr,
9093        P20PfsHa_SPEC,
9094        crate::common::R,
9095    > {
9096        crate::common::RegisterField::<
9097            1,
9098            0x1,
9099            1,
9100            0,
9101            p20pfs_ha::Pidr,
9102            p20pfs_ha::Pidr,
9103            P20PfsHa_SPEC,
9104            crate::common::R,
9105        >::from_register(self, 0)
9106    }
9107
9108    #[doc = "Port Direction"]
9109    #[inline(always)]
9110    pub fn pdr(
9111        self,
9112    ) -> crate::common::RegisterField<
9113        2,
9114        0x1,
9115        1,
9116        0,
9117        p20pfs_ha::Pdr,
9118        p20pfs_ha::Pdr,
9119        P20PfsHa_SPEC,
9120        crate::common::RW,
9121    > {
9122        crate::common::RegisterField::<
9123            2,
9124            0x1,
9125            1,
9126            0,
9127            p20pfs_ha::Pdr,
9128            p20pfs_ha::Pdr,
9129            P20PfsHa_SPEC,
9130            crate::common::RW,
9131        >::from_register(self, 0)
9132    }
9133
9134    #[doc = "Pull-up Control"]
9135    #[inline(always)]
9136    pub fn pcr(
9137        self,
9138    ) -> crate::common::RegisterField<
9139        4,
9140        0x1,
9141        1,
9142        0,
9143        p20pfs_ha::Pcr,
9144        p20pfs_ha::Pcr,
9145        P20PfsHa_SPEC,
9146        crate::common::RW,
9147    > {
9148        crate::common::RegisterField::<
9149            4,
9150            0x1,
9151            1,
9152            0,
9153            p20pfs_ha::Pcr,
9154            p20pfs_ha::Pcr,
9155            P20PfsHa_SPEC,
9156            crate::common::RW,
9157        >::from_register(self, 0)
9158    }
9159
9160    #[doc = "N-Channel Open-Drain Control"]
9161    #[inline(always)]
9162    pub fn ncodr(
9163        self,
9164    ) -> crate::common::RegisterField<
9165        6,
9166        0x1,
9167        1,
9168        0,
9169        p20pfs_ha::Ncodr,
9170        p20pfs_ha::Ncodr,
9171        P20PfsHa_SPEC,
9172        crate::common::RW,
9173    > {
9174        crate::common::RegisterField::<
9175            6,
9176            0x1,
9177            1,
9178            0,
9179            p20pfs_ha::Ncodr,
9180            p20pfs_ha::Ncodr,
9181            P20PfsHa_SPEC,
9182            crate::common::RW,
9183        >::from_register(self, 0)
9184    }
9185
9186    #[doc = "Event on Falling/Event on Rising"]
9187    #[inline(always)]
9188    pub fn eofr(
9189        self,
9190    ) -> crate::common::RegisterField<
9191        12,
9192        0x3,
9193        1,
9194        0,
9195        p20pfs_ha::Eofr,
9196        p20pfs_ha::Eofr,
9197        P20PfsHa_SPEC,
9198        crate::common::RW,
9199    > {
9200        crate::common::RegisterField::<
9201            12,
9202            0x3,
9203            1,
9204            0,
9205            p20pfs_ha::Eofr,
9206            p20pfs_ha::Eofr,
9207            P20PfsHa_SPEC,
9208            crate::common::RW,
9209        >::from_register(self, 0)
9210    }
9211
9212    #[doc = "IRQ Input Enable"]
9213    #[inline(always)]
9214    pub fn isel(
9215        self,
9216    ) -> crate::common::RegisterField<
9217        14,
9218        0x1,
9219        1,
9220        0,
9221        p20pfs_ha::Isel,
9222        p20pfs_ha::Isel,
9223        P20PfsHa_SPEC,
9224        crate::common::RW,
9225    > {
9226        crate::common::RegisterField::<
9227            14,
9228            0x1,
9229            1,
9230            0,
9231            p20pfs_ha::Isel,
9232            p20pfs_ha::Isel,
9233            P20PfsHa_SPEC,
9234            crate::common::RW,
9235        >::from_register(self, 0)
9236    }
9237
9238    #[doc = "Analog Input Enable"]
9239    #[inline(always)]
9240    pub fn asel(
9241        self,
9242    ) -> crate::common::RegisterField<
9243        15,
9244        0x1,
9245        1,
9246        0,
9247        p20pfs_ha::Asel,
9248        p20pfs_ha::Asel,
9249        P20PfsHa_SPEC,
9250        crate::common::RW,
9251    > {
9252        crate::common::RegisterField::<
9253            15,
9254            0x1,
9255            1,
9256            0,
9257            p20pfs_ha::Asel,
9258            p20pfs_ha::Asel,
9259            P20PfsHa_SPEC,
9260            crate::common::RW,
9261        >::from_register(self, 0)
9262    }
9263}
9264impl ::core::default::Default for P20PfsHa {
9265    #[inline(always)]
9266    fn default() -> P20PfsHa {
9267        <crate::RegValueT<P20PfsHa_SPEC> as RegisterValue<_>>::new(0)
9268    }
9269}
9270pub mod p20pfs_ha {
9271
9272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9273    pub struct Podr_SPEC;
9274    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9275    impl Podr {
9276        #[doc = "Output low"]
9277        pub const _0: Self = Self::new(0);
9278
9279        #[doc = "Output high"]
9280        pub const _1: Self = Self::new(1);
9281    }
9282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9283    pub struct Pidr_SPEC;
9284    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9285    impl Pidr {
9286        #[doc = "Low level"]
9287        pub const _0: Self = Self::new(0);
9288
9289        #[doc = "High level"]
9290        pub const _1: Self = Self::new(1);
9291    }
9292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9293    pub struct Pdr_SPEC;
9294    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9295    impl Pdr {
9296        #[doc = "Input (functions as an input pin)"]
9297        pub const _0: Self = Self::new(0);
9298
9299        #[doc = "Output (functions as an output pin)"]
9300        pub const _1: Self = Self::new(1);
9301    }
9302    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9303    pub struct Pcr_SPEC;
9304    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9305    impl Pcr {
9306        #[doc = "Disable input pull-up"]
9307        pub const _0: Self = Self::new(0);
9308
9309        #[doc = "Enable input pull-up"]
9310        pub const _1: Self = Self::new(1);
9311    }
9312    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9313    pub struct Ncodr_SPEC;
9314    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9315    impl Ncodr {
9316        #[doc = "Output CMOS"]
9317        pub const _0: Self = Self::new(0);
9318
9319        #[doc = "Output NMOS open-drain"]
9320        pub const _1: Self = Self::new(1);
9321    }
9322    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9323    pub struct Eofr_SPEC;
9324    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9325    impl Eofr {
9326        #[doc = "Don\'t care"]
9327        pub const _00: Self = Self::new(0);
9328
9329        #[doc = "Detect rising edge"]
9330        pub const _01: Self = Self::new(1);
9331
9332        #[doc = "Detect falling edge"]
9333        pub const _10: Self = Self::new(2);
9334
9335        #[doc = "Detect both edges"]
9336        pub const _11: Self = Self::new(3);
9337    }
9338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9339    pub struct Isel_SPEC;
9340    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9341    impl Isel {
9342        #[doc = "Do not use as IRQn input pin"]
9343        pub const _0: Self = Self::new(0);
9344
9345        #[doc = "Use as IRQn input pin"]
9346        pub const _1: Self = Self::new(1);
9347    }
9348    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9349    pub struct Asel_SPEC;
9350    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9351    impl Asel {
9352        #[doc = "Do not use as analog pin"]
9353        pub const _0: Self = Self::new(0);
9354
9355        #[doc = "Use as analog pin"]
9356        pub const _1: Self = Self::new(1);
9357    }
9358}
9359#[doc(hidden)]
9360#[derive(Copy, Clone, Eq, PartialEq)]
9361pub struct P20PfsBy_SPEC;
9362impl crate::sealed::RegSpec for P20PfsBy_SPEC {
9363    type DataType = u8;
9364}
9365
9366#[doc = "Port 20%s Pin Function Select Register"]
9367pub type P20PfsBy = crate::RegValueT<P20PfsBy_SPEC>;
9368
9369impl P20PfsBy {
9370    #[doc = "Port Output Data"]
9371    #[inline(always)]
9372    pub fn podr(
9373        self,
9374    ) -> crate::common::RegisterField<
9375        0,
9376        0x1,
9377        1,
9378        0,
9379        p20pfs_by::Podr,
9380        p20pfs_by::Podr,
9381        P20PfsBy_SPEC,
9382        crate::common::RW,
9383    > {
9384        crate::common::RegisterField::<
9385            0,
9386            0x1,
9387            1,
9388            0,
9389            p20pfs_by::Podr,
9390            p20pfs_by::Podr,
9391            P20PfsBy_SPEC,
9392            crate::common::RW,
9393        >::from_register(self, 0)
9394    }
9395
9396    #[doc = "Port State"]
9397    #[inline(always)]
9398    pub fn pidr(
9399        self,
9400    ) -> crate::common::RegisterField<
9401        1,
9402        0x1,
9403        1,
9404        0,
9405        p20pfs_by::Pidr,
9406        p20pfs_by::Pidr,
9407        P20PfsBy_SPEC,
9408        crate::common::R,
9409    > {
9410        crate::common::RegisterField::<
9411            1,
9412            0x1,
9413            1,
9414            0,
9415            p20pfs_by::Pidr,
9416            p20pfs_by::Pidr,
9417            P20PfsBy_SPEC,
9418            crate::common::R,
9419        >::from_register(self, 0)
9420    }
9421
9422    #[doc = "Port Direction"]
9423    #[inline(always)]
9424    pub fn pdr(
9425        self,
9426    ) -> crate::common::RegisterField<
9427        2,
9428        0x1,
9429        1,
9430        0,
9431        p20pfs_by::Pdr,
9432        p20pfs_by::Pdr,
9433        P20PfsBy_SPEC,
9434        crate::common::RW,
9435    > {
9436        crate::common::RegisterField::<
9437            2,
9438            0x1,
9439            1,
9440            0,
9441            p20pfs_by::Pdr,
9442            p20pfs_by::Pdr,
9443            P20PfsBy_SPEC,
9444            crate::common::RW,
9445        >::from_register(self, 0)
9446    }
9447
9448    #[doc = "Pull-up Control"]
9449    #[inline(always)]
9450    pub fn pcr(
9451        self,
9452    ) -> crate::common::RegisterField<
9453        4,
9454        0x1,
9455        1,
9456        0,
9457        p20pfs_by::Pcr,
9458        p20pfs_by::Pcr,
9459        P20PfsBy_SPEC,
9460        crate::common::RW,
9461    > {
9462        crate::common::RegisterField::<
9463            4,
9464            0x1,
9465            1,
9466            0,
9467            p20pfs_by::Pcr,
9468            p20pfs_by::Pcr,
9469            P20PfsBy_SPEC,
9470            crate::common::RW,
9471        >::from_register(self, 0)
9472    }
9473
9474    #[doc = "N-Channel Open-Drain Control"]
9475    #[inline(always)]
9476    pub fn ncodr(
9477        self,
9478    ) -> crate::common::RegisterField<
9479        6,
9480        0x1,
9481        1,
9482        0,
9483        p20pfs_by::Ncodr,
9484        p20pfs_by::Ncodr,
9485        P20PfsBy_SPEC,
9486        crate::common::RW,
9487    > {
9488        crate::common::RegisterField::<
9489            6,
9490            0x1,
9491            1,
9492            0,
9493            p20pfs_by::Ncodr,
9494            p20pfs_by::Ncodr,
9495            P20PfsBy_SPEC,
9496            crate::common::RW,
9497        >::from_register(self, 0)
9498    }
9499}
9500impl ::core::default::Default for P20PfsBy {
9501    #[inline(always)]
9502    fn default() -> P20PfsBy {
9503        <crate::RegValueT<P20PfsBy_SPEC> as RegisterValue<_>>::new(0)
9504    }
9505}
9506pub mod p20pfs_by {
9507
9508    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9509    pub struct Podr_SPEC;
9510    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9511    impl Podr {
9512        #[doc = "Output low"]
9513        pub const _0: Self = Self::new(0);
9514
9515        #[doc = "Output high"]
9516        pub const _1: Self = Self::new(1);
9517    }
9518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9519    pub struct Pidr_SPEC;
9520    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9521    impl Pidr {
9522        #[doc = "Low level"]
9523        pub const _0: Self = Self::new(0);
9524
9525        #[doc = "High level"]
9526        pub const _1: Self = Self::new(1);
9527    }
9528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9529    pub struct Pdr_SPEC;
9530    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9531    impl Pdr {
9532        #[doc = "Input (functions as an input pin)"]
9533        pub const _0: Self = Self::new(0);
9534
9535        #[doc = "Output (functions as an output pin)"]
9536        pub const _1: Self = Self::new(1);
9537    }
9538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9539    pub struct Pcr_SPEC;
9540    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9541    impl Pcr {
9542        #[doc = "Disable input pull-up"]
9543        pub const _0: Self = Self::new(0);
9544
9545        #[doc = "Enable input pull-up"]
9546        pub const _1: Self = Self::new(1);
9547    }
9548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9549    pub struct Ncodr_SPEC;
9550    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9551    impl Ncodr {
9552        #[doc = "Output CMOS"]
9553        pub const _0: Self = Self::new(0);
9554
9555        #[doc = "Output NMOS open-drain"]
9556        pub const _1: Self = Self::new(1);
9557    }
9558}
9559#[doc(hidden)]
9560#[derive(Copy, Clone, Eq, PartialEq)]
9561pub struct P2Pfs_SPEC;
9562impl crate::sealed::RegSpec for P2Pfs_SPEC {
9563    type DataType = u32;
9564}
9565
9566#[doc = "Port 2%s Pin Function Select Register"]
9567pub type P2Pfs = crate::RegValueT<P2Pfs_SPEC>;
9568
9569impl P2Pfs {
9570    #[doc = "Port Output Data"]
9571    #[inline(always)]
9572    pub fn podr(
9573        self,
9574    ) -> crate::common::RegisterField<
9575        0,
9576        0x1,
9577        1,
9578        0,
9579        p2pfs::Podr,
9580        p2pfs::Podr,
9581        P2Pfs_SPEC,
9582        crate::common::RW,
9583    > {
9584        crate::common::RegisterField::<
9585            0,
9586            0x1,
9587            1,
9588            0,
9589            p2pfs::Podr,
9590            p2pfs::Podr,
9591            P2Pfs_SPEC,
9592            crate::common::RW,
9593        >::from_register(self, 0)
9594    }
9595
9596    #[doc = "Port State"]
9597    #[inline(always)]
9598    pub fn pidr(
9599        self,
9600    ) -> crate::common::RegisterField<
9601        1,
9602        0x1,
9603        1,
9604        0,
9605        p2pfs::Pidr,
9606        p2pfs::Pidr,
9607        P2Pfs_SPEC,
9608        crate::common::R,
9609    > {
9610        crate::common::RegisterField::<
9611            1,
9612            0x1,
9613            1,
9614            0,
9615            p2pfs::Pidr,
9616            p2pfs::Pidr,
9617            P2Pfs_SPEC,
9618            crate::common::R,
9619        >::from_register(self, 0)
9620    }
9621
9622    #[doc = "Port Direction"]
9623    #[inline(always)]
9624    pub fn pdr(
9625        self,
9626    ) -> crate::common::RegisterField<
9627        2,
9628        0x1,
9629        1,
9630        0,
9631        p2pfs::Pdr,
9632        p2pfs::Pdr,
9633        P2Pfs_SPEC,
9634        crate::common::RW,
9635    > {
9636        crate::common::RegisterField::<
9637            2,
9638            0x1,
9639            1,
9640            0,
9641            p2pfs::Pdr,
9642            p2pfs::Pdr,
9643            P2Pfs_SPEC,
9644            crate::common::RW,
9645        >::from_register(self, 0)
9646    }
9647
9648    #[doc = "Pull-up Control"]
9649    #[inline(always)]
9650    pub fn pcr(
9651        self,
9652    ) -> crate::common::RegisterField<
9653        4,
9654        0x1,
9655        1,
9656        0,
9657        p2pfs::Pcr,
9658        p2pfs::Pcr,
9659        P2Pfs_SPEC,
9660        crate::common::RW,
9661    > {
9662        crate::common::RegisterField::<
9663            4,
9664            0x1,
9665            1,
9666            0,
9667            p2pfs::Pcr,
9668            p2pfs::Pcr,
9669            P2Pfs_SPEC,
9670            crate::common::RW,
9671        >::from_register(self, 0)
9672    }
9673
9674    #[doc = "N-Channel Open-Drain Control"]
9675    #[inline(always)]
9676    pub fn ncodr(
9677        self,
9678    ) -> crate::common::RegisterField<
9679        6,
9680        0x1,
9681        1,
9682        0,
9683        p2pfs::Ncodr,
9684        p2pfs::Ncodr,
9685        P2Pfs_SPEC,
9686        crate::common::RW,
9687    > {
9688        crate::common::RegisterField::<
9689            6,
9690            0x1,
9691            1,
9692            0,
9693            p2pfs::Ncodr,
9694            p2pfs::Ncodr,
9695            P2Pfs_SPEC,
9696            crate::common::RW,
9697        >::from_register(self, 0)
9698    }
9699
9700    #[doc = "Event on Falling/Event on Rising"]
9701    #[inline(always)]
9702    pub fn eofr(
9703        self,
9704    ) -> crate::common::RegisterField<
9705        12,
9706        0x3,
9707        1,
9708        0,
9709        p2pfs::Eofr,
9710        p2pfs::Eofr,
9711        P2Pfs_SPEC,
9712        crate::common::RW,
9713    > {
9714        crate::common::RegisterField::<
9715            12,
9716            0x3,
9717            1,
9718            0,
9719            p2pfs::Eofr,
9720            p2pfs::Eofr,
9721            P2Pfs_SPEC,
9722            crate::common::RW,
9723        >::from_register(self, 0)
9724    }
9725
9726    #[doc = "IRQ Input Enable"]
9727    #[inline(always)]
9728    pub fn isel(
9729        self,
9730    ) -> crate::common::RegisterField<
9731        14,
9732        0x1,
9733        1,
9734        0,
9735        p2pfs::Isel,
9736        p2pfs::Isel,
9737        P2Pfs_SPEC,
9738        crate::common::RW,
9739    > {
9740        crate::common::RegisterField::<
9741            14,
9742            0x1,
9743            1,
9744            0,
9745            p2pfs::Isel,
9746            p2pfs::Isel,
9747            P2Pfs_SPEC,
9748            crate::common::RW,
9749        >::from_register(self, 0)
9750    }
9751
9752    #[doc = "Analog Input Enable"]
9753    #[inline(always)]
9754    pub fn asel(
9755        self,
9756    ) -> crate::common::RegisterField<
9757        15,
9758        0x1,
9759        1,
9760        0,
9761        p2pfs::Asel,
9762        p2pfs::Asel,
9763        P2Pfs_SPEC,
9764        crate::common::RW,
9765    > {
9766        crate::common::RegisterField::<
9767            15,
9768            0x1,
9769            1,
9770            0,
9771            p2pfs::Asel,
9772            p2pfs::Asel,
9773            P2Pfs_SPEC,
9774            crate::common::RW,
9775        >::from_register(self, 0)
9776    }
9777
9778    #[doc = "Port Mode Control"]
9779    #[inline(always)]
9780    pub fn pmr(
9781        self,
9782    ) -> crate::common::RegisterField<
9783        16,
9784        0x1,
9785        1,
9786        0,
9787        p2pfs::Pmr,
9788        p2pfs::Pmr,
9789        P2Pfs_SPEC,
9790        crate::common::RW,
9791    > {
9792        crate::common::RegisterField::<
9793            16,
9794            0x1,
9795            1,
9796            0,
9797            p2pfs::Pmr,
9798            p2pfs::Pmr,
9799            P2Pfs_SPEC,
9800            crate::common::RW,
9801        >::from_register(self, 0)
9802    }
9803
9804    #[doc = "Peripheral Select"]
9805    #[inline(always)]
9806    pub fn psel(
9807        self,
9808    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P2Pfs_SPEC, crate::common::RW> {
9809        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P2Pfs_SPEC,crate::common::RW>::from_register(self,0)
9810    }
9811}
9812impl ::core::default::Default for P2Pfs {
9813    #[inline(always)]
9814    fn default() -> P2Pfs {
9815        <crate::RegValueT<P2Pfs_SPEC> as RegisterValue<_>>::new(0)
9816    }
9817}
9818pub mod p2pfs {
9819
9820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9821    pub struct Podr_SPEC;
9822    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9823    impl Podr {
9824        #[doc = "Output low"]
9825        pub const _0: Self = Self::new(0);
9826
9827        #[doc = "Output high"]
9828        pub const _1: Self = Self::new(1);
9829    }
9830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9831    pub struct Pidr_SPEC;
9832    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9833    impl Pidr {
9834        #[doc = "Low level"]
9835        pub const _0: Self = Self::new(0);
9836
9837        #[doc = "High level"]
9838        pub const _1: Self = Self::new(1);
9839    }
9840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9841    pub struct Pdr_SPEC;
9842    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9843    impl Pdr {
9844        #[doc = "Input (functions as an input pin)"]
9845        pub const _0: Self = Self::new(0);
9846
9847        #[doc = "Output (functions as an output pin)"]
9848        pub const _1: Self = Self::new(1);
9849    }
9850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9851    pub struct Pcr_SPEC;
9852    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9853    impl Pcr {
9854        #[doc = "Disable input pull-up"]
9855        pub const _0: Self = Self::new(0);
9856
9857        #[doc = "Enable input pull-up"]
9858        pub const _1: Self = Self::new(1);
9859    }
9860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9861    pub struct Ncodr_SPEC;
9862    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9863    impl Ncodr {
9864        #[doc = "Output CMOS"]
9865        pub const _0: Self = Self::new(0);
9866
9867        #[doc = "Output NMOS open-drain"]
9868        pub const _1: Self = Self::new(1);
9869    }
9870    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9871    pub struct Eofr_SPEC;
9872    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9873    impl Eofr {
9874        #[doc = "Don\'t care"]
9875        pub const _00: Self = Self::new(0);
9876
9877        #[doc = "Detect rising edge"]
9878        pub const _01: Self = Self::new(1);
9879
9880        #[doc = "Detect falling edge"]
9881        pub const _10: Self = Self::new(2);
9882
9883        #[doc = "Detect both edges"]
9884        pub const _11: Self = Self::new(3);
9885    }
9886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9887    pub struct Isel_SPEC;
9888    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9889    impl Isel {
9890        #[doc = "Do not use as IRQn input pin"]
9891        pub const _0: Self = Self::new(0);
9892
9893        #[doc = "Use as IRQn input pin"]
9894        pub const _1: Self = Self::new(1);
9895    }
9896    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9897    pub struct Asel_SPEC;
9898    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9899    impl Asel {
9900        #[doc = "Do not use as analog pin"]
9901        pub const _0: Self = Self::new(0);
9902
9903        #[doc = "Use as analog pin"]
9904        pub const _1: Self = Self::new(1);
9905    }
9906    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9907    pub struct Pmr_SPEC;
9908    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9909    impl Pmr {
9910        #[doc = "Use as general I/O pin"]
9911        pub const _0: Self = Self::new(0);
9912
9913        #[doc = "Use as I/O port for peripheral functions"]
9914        pub const _1: Self = Self::new(1);
9915    }
9916}
9917#[doc(hidden)]
9918#[derive(Copy, Clone, Eq, PartialEq)]
9919pub struct P2PfsHa_SPEC;
9920impl crate::sealed::RegSpec for P2PfsHa_SPEC {
9921    type DataType = u16;
9922}
9923
9924#[doc = "Port 2%s Pin Function Select Register"]
9925pub type P2PfsHa = crate::RegValueT<P2PfsHa_SPEC>;
9926
9927impl P2PfsHa {
9928    #[doc = "Port Output Data"]
9929    #[inline(always)]
9930    pub fn podr(
9931        self,
9932    ) -> crate::common::RegisterField<
9933        0,
9934        0x1,
9935        1,
9936        0,
9937        p2pfs_ha::Podr,
9938        p2pfs_ha::Podr,
9939        P2PfsHa_SPEC,
9940        crate::common::RW,
9941    > {
9942        crate::common::RegisterField::<
9943            0,
9944            0x1,
9945            1,
9946            0,
9947            p2pfs_ha::Podr,
9948            p2pfs_ha::Podr,
9949            P2PfsHa_SPEC,
9950            crate::common::RW,
9951        >::from_register(self, 0)
9952    }
9953
9954    #[doc = "Port State"]
9955    #[inline(always)]
9956    pub fn pidr(
9957        self,
9958    ) -> crate::common::RegisterField<
9959        1,
9960        0x1,
9961        1,
9962        0,
9963        p2pfs_ha::Pidr,
9964        p2pfs_ha::Pidr,
9965        P2PfsHa_SPEC,
9966        crate::common::R,
9967    > {
9968        crate::common::RegisterField::<
9969            1,
9970            0x1,
9971            1,
9972            0,
9973            p2pfs_ha::Pidr,
9974            p2pfs_ha::Pidr,
9975            P2PfsHa_SPEC,
9976            crate::common::R,
9977        >::from_register(self, 0)
9978    }
9979
9980    #[doc = "Port Direction"]
9981    #[inline(always)]
9982    pub fn pdr(
9983        self,
9984    ) -> crate::common::RegisterField<
9985        2,
9986        0x1,
9987        1,
9988        0,
9989        p2pfs_ha::Pdr,
9990        p2pfs_ha::Pdr,
9991        P2PfsHa_SPEC,
9992        crate::common::RW,
9993    > {
9994        crate::common::RegisterField::<
9995            2,
9996            0x1,
9997            1,
9998            0,
9999            p2pfs_ha::Pdr,
10000            p2pfs_ha::Pdr,
10001            P2PfsHa_SPEC,
10002            crate::common::RW,
10003        >::from_register(self, 0)
10004    }
10005
10006    #[doc = "Pull-up Control"]
10007    #[inline(always)]
10008    pub fn pcr(
10009        self,
10010    ) -> crate::common::RegisterField<
10011        4,
10012        0x1,
10013        1,
10014        0,
10015        p2pfs_ha::Pcr,
10016        p2pfs_ha::Pcr,
10017        P2PfsHa_SPEC,
10018        crate::common::RW,
10019    > {
10020        crate::common::RegisterField::<
10021            4,
10022            0x1,
10023            1,
10024            0,
10025            p2pfs_ha::Pcr,
10026            p2pfs_ha::Pcr,
10027            P2PfsHa_SPEC,
10028            crate::common::RW,
10029        >::from_register(self, 0)
10030    }
10031
10032    #[doc = "N-Channel Open-Drain Control"]
10033    #[inline(always)]
10034    pub fn ncodr(
10035        self,
10036    ) -> crate::common::RegisterField<
10037        6,
10038        0x1,
10039        1,
10040        0,
10041        p2pfs_ha::Ncodr,
10042        p2pfs_ha::Ncodr,
10043        P2PfsHa_SPEC,
10044        crate::common::RW,
10045    > {
10046        crate::common::RegisterField::<
10047            6,
10048            0x1,
10049            1,
10050            0,
10051            p2pfs_ha::Ncodr,
10052            p2pfs_ha::Ncodr,
10053            P2PfsHa_SPEC,
10054            crate::common::RW,
10055        >::from_register(self, 0)
10056    }
10057
10058    #[doc = "Event on Falling/Event on Rising"]
10059    #[inline(always)]
10060    pub fn eofr(
10061        self,
10062    ) -> crate::common::RegisterField<
10063        12,
10064        0x3,
10065        1,
10066        0,
10067        p2pfs_ha::Eofr,
10068        p2pfs_ha::Eofr,
10069        P2PfsHa_SPEC,
10070        crate::common::RW,
10071    > {
10072        crate::common::RegisterField::<
10073            12,
10074            0x3,
10075            1,
10076            0,
10077            p2pfs_ha::Eofr,
10078            p2pfs_ha::Eofr,
10079            P2PfsHa_SPEC,
10080            crate::common::RW,
10081        >::from_register(self, 0)
10082    }
10083
10084    #[doc = "IRQ Input Enable"]
10085    #[inline(always)]
10086    pub fn isel(
10087        self,
10088    ) -> crate::common::RegisterField<
10089        14,
10090        0x1,
10091        1,
10092        0,
10093        p2pfs_ha::Isel,
10094        p2pfs_ha::Isel,
10095        P2PfsHa_SPEC,
10096        crate::common::RW,
10097    > {
10098        crate::common::RegisterField::<
10099            14,
10100            0x1,
10101            1,
10102            0,
10103            p2pfs_ha::Isel,
10104            p2pfs_ha::Isel,
10105            P2PfsHa_SPEC,
10106            crate::common::RW,
10107        >::from_register(self, 0)
10108    }
10109
10110    #[doc = "Analog Input Enable"]
10111    #[inline(always)]
10112    pub fn asel(
10113        self,
10114    ) -> crate::common::RegisterField<
10115        15,
10116        0x1,
10117        1,
10118        0,
10119        p2pfs_ha::Asel,
10120        p2pfs_ha::Asel,
10121        P2PfsHa_SPEC,
10122        crate::common::RW,
10123    > {
10124        crate::common::RegisterField::<
10125            15,
10126            0x1,
10127            1,
10128            0,
10129            p2pfs_ha::Asel,
10130            p2pfs_ha::Asel,
10131            P2PfsHa_SPEC,
10132            crate::common::RW,
10133        >::from_register(self, 0)
10134    }
10135}
10136impl ::core::default::Default for P2PfsHa {
10137    #[inline(always)]
10138    fn default() -> P2PfsHa {
10139        <crate::RegValueT<P2PfsHa_SPEC> as RegisterValue<_>>::new(0)
10140    }
10141}
10142pub mod p2pfs_ha {
10143
10144    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10145    pub struct Podr_SPEC;
10146    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10147    impl Podr {
10148        #[doc = "Output low"]
10149        pub const _0: Self = Self::new(0);
10150
10151        #[doc = "Output high"]
10152        pub const _1: Self = Self::new(1);
10153    }
10154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10155    pub struct Pidr_SPEC;
10156    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10157    impl Pidr {
10158        #[doc = "Low level"]
10159        pub const _0: Self = Self::new(0);
10160
10161        #[doc = "High level"]
10162        pub const _1: Self = Self::new(1);
10163    }
10164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10165    pub struct Pdr_SPEC;
10166    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10167    impl Pdr {
10168        #[doc = "Input (functions as an input pin)"]
10169        pub const _0: Self = Self::new(0);
10170
10171        #[doc = "Output (functions as an output pin)"]
10172        pub const _1: Self = Self::new(1);
10173    }
10174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10175    pub struct Pcr_SPEC;
10176    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10177    impl Pcr {
10178        #[doc = "Disable input pull-up"]
10179        pub const _0: Self = Self::new(0);
10180
10181        #[doc = "Enable input pull-up"]
10182        pub const _1: Self = Self::new(1);
10183    }
10184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10185    pub struct Ncodr_SPEC;
10186    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10187    impl Ncodr {
10188        #[doc = "Output CMOS"]
10189        pub const _0: Self = Self::new(0);
10190
10191        #[doc = "Output NMOS open-drain"]
10192        pub const _1: Self = Self::new(1);
10193    }
10194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10195    pub struct Eofr_SPEC;
10196    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10197    impl Eofr {
10198        #[doc = "Don\'t care"]
10199        pub const _00: Self = Self::new(0);
10200
10201        #[doc = "Detect rising edge"]
10202        pub const _01: Self = Self::new(1);
10203
10204        #[doc = "Detect falling edge"]
10205        pub const _10: Self = Self::new(2);
10206
10207        #[doc = "Detect both edges"]
10208        pub const _11: Self = Self::new(3);
10209    }
10210    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10211    pub struct Isel_SPEC;
10212    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10213    impl Isel {
10214        #[doc = "Do not use as IRQn input pin"]
10215        pub const _0: Self = Self::new(0);
10216
10217        #[doc = "Use as IRQn input pin"]
10218        pub const _1: Self = Self::new(1);
10219    }
10220    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10221    pub struct Asel_SPEC;
10222    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10223    impl Asel {
10224        #[doc = "Do not use as analog pin"]
10225        pub const _0: Self = Self::new(0);
10226
10227        #[doc = "Use as analog pin"]
10228        pub const _1: Self = Self::new(1);
10229    }
10230}
10231#[doc(hidden)]
10232#[derive(Copy, Clone, Eq, PartialEq)]
10233pub struct P2PfsBy_SPEC;
10234impl crate::sealed::RegSpec for P2PfsBy_SPEC {
10235    type DataType = u8;
10236}
10237
10238#[doc = "Port 2%s Pin Function Select Register"]
10239pub type P2PfsBy = crate::RegValueT<P2PfsBy_SPEC>;
10240
10241impl P2PfsBy {
10242    #[doc = "Port Output Data"]
10243    #[inline(always)]
10244    pub fn podr(
10245        self,
10246    ) -> crate::common::RegisterField<
10247        0,
10248        0x1,
10249        1,
10250        0,
10251        p2pfs_by::Podr,
10252        p2pfs_by::Podr,
10253        P2PfsBy_SPEC,
10254        crate::common::RW,
10255    > {
10256        crate::common::RegisterField::<
10257            0,
10258            0x1,
10259            1,
10260            0,
10261            p2pfs_by::Podr,
10262            p2pfs_by::Podr,
10263            P2PfsBy_SPEC,
10264            crate::common::RW,
10265        >::from_register(self, 0)
10266    }
10267
10268    #[doc = "Port State"]
10269    #[inline(always)]
10270    pub fn pidr(
10271        self,
10272    ) -> crate::common::RegisterField<
10273        1,
10274        0x1,
10275        1,
10276        0,
10277        p2pfs_by::Pidr,
10278        p2pfs_by::Pidr,
10279        P2PfsBy_SPEC,
10280        crate::common::R,
10281    > {
10282        crate::common::RegisterField::<
10283            1,
10284            0x1,
10285            1,
10286            0,
10287            p2pfs_by::Pidr,
10288            p2pfs_by::Pidr,
10289            P2PfsBy_SPEC,
10290            crate::common::R,
10291        >::from_register(self, 0)
10292    }
10293
10294    #[doc = "Port Direction"]
10295    #[inline(always)]
10296    pub fn pdr(
10297        self,
10298    ) -> crate::common::RegisterField<
10299        2,
10300        0x1,
10301        1,
10302        0,
10303        p2pfs_by::Pdr,
10304        p2pfs_by::Pdr,
10305        P2PfsBy_SPEC,
10306        crate::common::RW,
10307    > {
10308        crate::common::RegisterField::<
10309            2,
10310            0x1,
10311            1,
10312            0,
10313            p2pfs_by::Pdr,
10314            p2pfs_by::Pdr,
10315            P2PfsBy_SPEC,
10316            crate::common::RW,
10317        >::from_register(self, 0)
10318    }
10319
10320    #[doc = "Pull-up Control"]
10321    #[inline(always)]
10322    pub fn pcr(
10323        self,
10324    ) -> crate::common::RegisterField<
10325        4,
10326        0x1,
10327        1,
10328        0,
10329        p2pfs_by::Pcr,
10330        p2pfs_by::Pcr,
10331        P2PfsBy_SPEC,
10332        crate::common::RW,
10333    > {
10334        crate::common::RegisterField::<
10335            4,
10336            0x1,
10337            1,
10338            0,
10339            p2pfs_by::Pcr,
10340            p2pfs_by::Pcr,
10341            P2PfsBy_SPEC,
10342            crate::common::RW,
10343        >::from_register(self, 0)
10344    }
10345
10346    #[doc = "N-Channel Open-Drain Control"]
10347    #[inline(always)]
10348    pub fn ncodr(
10349        self,
10350    ) -> crate::common::RegisterField<
10351        6,
10352        0x1,
10353        1,
10354        0,
10355        p2pfs_by::Ncodr,
10356        p2pfs_by::Ncodr,
10357        P2PfsBy_SPEC,
10358        crate::common::RW,
10359    > {
10360        crate::common::RegisterField::<
10361            6,
10362            0x1,
10363            1,
10364            0,
10365            p2pfs_by::Ncodr,
10366            p2pfs_by::Ncodr,
10367            P2PfsBy_SPEC,
10368            crate::common::RW,
10369        >::from_register(self, 0)
10370    }
10371}
10372impl ::core::default::Default for P2PfsBy {
10373    #[inline(always)]
10374    fn default() -> P2PfsBy {
10375        <crate::RegValueT<P2PfsBy_SPEC> as RegisterValue<_>>::new(0)
10376    }
10377}
10378pub mod p2pfs_by {
10379
10380    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10381    pub struct Podr_SPEC;
10382    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10383    impl Podr {
10384        #[doc = "Output low"]
10385        pub const _0: Self = Self::new(0);
10386
10387        #[doc = "Output high"]
10388        pub const _1: Self = Self::new(1);
10389    }
10390    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10391    pub struct Pidr_SPEC;
10392    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10393    impl Pidr {
10394        #[doc = "Low level"]
10395        pub const _0: Self = Self::new(0);
10396
10397        #[doc = "High level"]
10398        pub const _1: Self = Self::new(1);
10399    }
10400    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10401    pub struct Pdr_SPEC;
10402    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10403    impl Pdr {
10404        #[doc = "Input (functions as an input pin)"]
10405        pub const _0: Self = Self::new(0);
10406
10407        #[doc = "Output (functions as an output pin)"]
10408        pub const _1: Self = Self::new(1);
10409    }
10410    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10411    pub struct Pcr_SPEC;
10412    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10413    impl Pcr {
10414        #[doc = "Disable input pull-up"]
10415        pub const _0: Self = Self::new(0);
10416
10417        #[doc = "Enable input pull-up"]
10418        pub const _1: Self = Self::new(1);
10419    }
10420    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10421    pub struct Ncodr_SPEC;
10422    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10423    impl Ncodr {
10424        #[doc = "Output CMOS"]
10425        pub const _0: Self = Self::new(0);
10426
10427        #[doc = "Output NMOS open-drain"]
10428        pub const _1: Self = Self::new(1);
10429    }
10430}
10431#[doc(hidden)]
10432#[derive(Copy, Clone, Eq, PartialEq)]
10433pub struct P300Pfs_SPEC;
10434impl crate::sealed::RegSpec for P300Pfs_SPEC {
10435    type DataType = u32;
10436}
10437
10438#[doc = "Port 300 Pin Function Select Register"]
10439pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
10440
10441impl P300Pfs {
10442    #[doc = "Port Output Data"]
10443    #[inline(always)]
10444    pub fn podr(
10445        self,
10446    ) -> crate::common::RegisterField<
10447        0,
10448        0x1,
10449        1,
10450        0,
10451        p300pfs::Podr,
10452        p300pfs::Podr,
10453        P300Pfs_SPEC,
10454        crate::common::RW,
10455    > {
10456        crate::common::RegisterField::<
10457            0,
10458            0x1,
10459            1,
10460            0,
10461            p300pfs::Podr,
10462            p300pfs::Podr,
10463            P300Pfs_SPEC,
10464            crate::common::RW,
10465        >::from_register(self, 0)
10466    }
10467
10468    #[doc = "Port State"]
10469    #[inline(always)]
10470    pub fn pidr(
10471        self,
10472    ) -> crate::common::RegisterField<
10473        1,
10474        0x1,
10475        1,
10476        0,
10477        p300pfs::Pidr,
10478        p300pfs::Pidr,
10479        P300Pfs_SPEC,
10480        crate::common::R,
10481    > {
10482        crate::common::RegisterField::<
10483            1,
10484            0x1,
10485            1,
10486            0,
10487            p300pfs::Pidr,
10488            p300pfs::Pidr,
10489            P300Pfs_SPEC,
10490            crate::common::R,
10491        >::from_register(self, 0)
10492    }
10493
10494    #[doc = "Port Direction"]
10495    #[inline(always)]
10496    pub fn pdr(
10497        self,
10498    ) -> crate::common::RegisterField<
10499        2,
10500        0x1,
10501        1,
10502        0,
10503        p300pfs::Pdr,
10504        p300pfs::Pdr,
10505        P300Pfs_SPEC,
10506        crate::common::RW,
10507    > {
10508        crate::common::RegisterField::<
10509            2,
10510            0x1,
10511            1,
10512            0,
10513            p300pfs::Pdr,
10514            p300pfs::Pdr,
10515            P300Pfs_SPEC,
10516            crate::common::RW,
10517        >::from_register(self, 0)
10518    }
10519
10520    #[doc = "Pull-up Control"]
10521    #[inline(always)]
10522    pub fn pcr(
10523        self,
10524    ) -> crate::common::RegisterField<
10525        4,
10526        0x1,
10527        1,
10528        0,
10529        p300pfs::Pcr,
10530        p300pfs::Pcr,
10531        P300Pfs_SPEC,
10532        crate::common::RW,
10533    > {
10534        crate::common::RegisterField::<
10535            4,
10536            0x1,
10537            1,
10538            0,
10539            p300pfs::Pcr,
10540            p300pfs::Pcr,
10541            P300Pfs_SPEC,
10542            crate::common::RW,
10543        >::from_register(self, 0)
10544    }
10545
10546    #[doc = "N-Channel Open-Drain Control"]
10547    #[inline(always)]
10548    pub fn ncodr(
10549        self,
10550    ) -> crate::common::RegisterField<
10551        6,
10552        0x1,
10553        1,
10554        0,
10555        p300pfs::Ncodr,
10556        p300pfs::Ncodr,
10557        P300Pfs_SPEC,
10558        crate::common::RW,
10559    > {
10560        crate::common::RegisterField::<
10561            6,
10562            0x1,
10563            1,
10564            0,
10565            p300pfs::Ncodr,
10566            p300pfs::Ncodr,
10567            P300Pfs_SPEC,
10568            crate::common::RW,
10569        >::from_register(self, 0)
10570    }
10571
10572    #[doc = "Event on Falling/Event on Rising"]
10573    #[inline(always)]
10574    pub fn eofr(
10575        self,
10576    ) -> crate::common::RegisterField<
10577        12,
10578        0x3,
10579        1,
10580        0,
10581        p300pfs::Eofr,
10582        p300pfs::Eofr,
10583        P300Pfs_SPEC,
10584        crate::common::RW,
10585    > {
10586        crate::common::RegisterField::<
10587            12,
10588            0x3,
10589            1,
10590            0,
10591            p300pfs::Eofr,
10592            p300pfs::Eofr,
10593            P300Pfs_SPEC,
10594            crate::common::RW,
10595        >::from_register(self, 0)
10596    }
10597
10598    #[doc = "IRQ Input Enable"]
10599    #[inline(always)]
10600    pub fn isel(
10601        self,
10602    ) -> crate::common::RegisterField<
10603        14,
10604        0x1,
10605        1,
10606        0,
10607        p300pfs::Isel,
10608        p300pfs::Isel,
10609        P300Pfs_SPEC,
10610        crate::common::RW,
10611    > {
10612        crate::common::RegisterField::<
10613            14,
10614            0x1,
10615            1,
10616            0,
10617            p300pfs::Isel,
10618            p300pfs::Isel,
10619            P300Pfs_SPEC,
10620            crate::common::RW,
10621        >::from_register(self, 0)
10622    }
10623
10624    #[doc = "Analog Input Enable"]
10625    #[inline(always)]
10626    pub fn asel(
10627        self,
10628    ) -> crate::common::RegisterField<
10629        15,
10630        0x1,
10631        1,
10632        0,
10633        p300pfs::Asel,
10634        p300pfs::Asel,
10635        P300Pfs_SPEC,
10636        crate::common::RW,
10637    > {
10638        crate::common::RegisterField::<
10639            15,
10640            0x1,
10641            1,
10642            0,
10643            p300pfs::Asel,
10644            p300pfs::Asel,
10645            P300Pfs_SPEC,
10646            crate::common::RW,
10647        >::from_register(self, 0)
10648    }
10649
10650    #[doc = "Port Mode Control"]
10651    #[inline(always)]
10652    pub fn pmr(
10653        self,
10654    ) -> crate::common::RegisterField<
10655        16,
10656        0x1,
10657        1,
10658        0,
10659        p300pfs::Pmr,
10660        p300pfs::Pmr,
10661        P300Pfs_SPEC,
10662        crate::common::RW,
10663    > {
10664        crate::common::RegisterField::<
10665            16,
10666            0x1,
10667            1,
10668            0,
10669            p300pfs::Pmr,
10670            p300pfs::Pmr,
10671            P300Pfs_SPEC,
10672            crate::common::RW,
10673        >::from_register(self, 0)
10674    }
10675
10676    #[doc = "Peripheral Select"]
10677    #[inline(always)]
10678    pub fn psel(
10679        self,
10680    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
10681        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
10682    }
10683}
10684impl ::core::default::Default for P300Pfs {
10685    #[inline(always)]
10686    fn default() -> P300Pfs {
10687        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65552)
10688    }
10689}
10690pub mod p300pfs {
10691
10692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10693    pub struct Podr_SPEC;
10694    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10695    impl Podr {
10696        #[doc = "Output low"]
10697        pub const _0: Self = Self::new(0);
10698
10699        #[doc = "Output high"]
10700        pub const _1: Self = Self::new(1);
10701    }
10702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10703    pub struct Pidr_SPEC;
10704    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10705    impl Pidr {
10706        #[doc = "Low level"]
10707        pub const _0: Self = Self::new(0);
10708
10709        #[doc = "High level"]
10710        pub const _1: Self = Self::new(1);
10711    }
10712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10713    pub struct Pdr_SPEC;
10714    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10715    impl Pdr {
10716        #[doc = "Input (functions as an input pin)"]
10717        pub const _0: Self = Self::new(0);
10718
10719        #[doc = "Output (functions as an output pin)"]
10720        pub const _1: Self = Self::new(1);
10721    }
10722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10723    pub struct Pcr_SPEC;
10724    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10725    impl Pcr {
10726        #[doc = "Disable input pull-up"]
10727        pub const _0: Self = Self::new(0);
10728
10729        #[doc = "Enable input pull-up"]
10730        pub const _1: Self = Self::new(1);
10731    }
10732    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10733    pub struct Ncodr_SPEC;
10734    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10735    impl Ncodr {
10736        #[doc = "Output CMOS"]
10737        pub const _0: Self = Self::new(0);
10738
10739        #[doc = "Output NMOS open-drain"]
10740        pub const _1: Self = Self::new(1);
10741    }
10742    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10743    pub struct Eofr_SPEC;
10744    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10745    impl Eofr {
10746        #[doc = "Don\'t care"]
10747        pub const _00: Self = Self::new(0);
10748
10749        #[doc = "Detect rising edge"]
10750        pub const _01: Self = Self::new(1);
10751
10752        #[doc = "Detect falling edge"]
10753        pub const _10: Self = Self::new(2);
10754
10755        #[doc = "Detect both edges"]
10756        pub const _11: Self = Self::new(3);
10757    }
10758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10759    pub struct Isel_SPEC;
10760    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10761    impl Isel {
10762        #[doc = "Do not use as IRQn input pin"]
10763        pub const _0: Self = Self::new(0);
10764
10765        #[doc = "Use as IRQn input pin"]
10766        pub const _1: Self = Self::new(1);
10767    }
10768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10769    pub struct Asel_SPEC;
10770    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10771    impl Asel {
10772        #[doc = "Do not use as analog pin"]
10773        pub const _0: Self = Self::new(0);
10774
10775        #[doc = "Use as analog pin"]
10776        pub const _1: Self = Self::new(1);
10777    }
10778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10779    pub struct Pmr_SPEC;
10780    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
10781    impl Pmr {
10782        #[doc = "Use as general I/O pin"]
10783        pub const _0: Self = Self::new(0);
10784
10785        #[doc = "Use as I/O port for peripheral functions"]
10786        pub const _1: Self = Self::new(1);
10787    }
10788}
10789#[doc(hidden)]
10790#[derive(Copy, Clone, Eq, PartialEq)]
10791pub struct P300PfsHa_SPEC;
10792impl crate::sealed::RegSpec for P300PfsHa_SPEC {
10793    type DataType = u16;
10794}
10795
10796#[doc = "Port 300 Pin Function Select Register"]
10797pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
10798
10799impl P300PfsHa {
10800    #[doc = "Port Output Data"]
10801    #[inline(always)]
10802    pub fn podr(
10803        self,
10804    ) -> crate::common::RegisterField<
10805        0,
10806        0x1,
10807        1,
10808        0,
10809        p300pfs_ha::Podr,
10810        p300pfs_ha::Podr,
10811        P300PfsHa_SPEC,
10812        crate::common::RW,
10813    > {
10814        crate::common::RegisterField::<
10815            0,
10816            0x1,
10817            1,
10818            0,
10819            p300pfs_ha::Podr,
10820            p300pfs_ha::Podr,
10821            P300PfsHa_SPEC,
10822            crate::common::RW,
10823        >::from_register(self, 0)
10824    }
10825
10826    #[doc = "Port State"]
10827    #[inline(always)]
10828    pub fn pidr(
10829        self,
10830    ) -> crate::common::RegisterField<
10831        1,
10832        0x1,
10833        1,
10834        0,
10835        p300pfs_ha::Pidr,
10836        p300pfs_ha::Pidr,
10837        P300PfsHa_SPEC,
10838        crate::common::R,
10839    > {
10840        crate::common::RegisterField::<
10841            1,
10842            0x1,
10843            1,
10844            0,
10845            p300pfs_ha::Pidr,
10846            p300pfs_ha::Pidr,
10847            P300PfsHa_SPEC,
10848            crate::common::R,
10849        >::from_register(self, 0)
10850    }
10851
10852    #[doc = "Port Direction"]
10853    #[inline(always)]
10854    pub fn pdr(
10855        self,
10856    ) -> crate::common::RegisterField<
10857        2,
10858        0x1,
10859        1,
10860        0,
10861        p300pfs_ha::Pdr,
10862        p300pfs_ha::Pdr,
10863        P300PfsHa_SPEC,
10864        crate::common::RW,
10865    > {
10866        crate::common::RegisterField::<
10867            2,
10868            0x1,
10869            1,
10870            0,
10871            p300pfs_ha::Pdr,
10872            p300pfs_ha::Pdr,
10873            P300PfsHa_SPEC,
10874            crate::common::RW,
10875        >::from_register(self, 0)
10876    }
10877
10878    #[doc = "Pull-up Control"]
10879    #[inline(always)]
10880    pub fn pcr(
10881        self,
10882    ) -> crate::common::RegisterField<
10883        4,
10884        0x1,
10885        1,
10886        0,
10887        p300pfs_ha::Pcr,
10888        p300pfs_ha::Pcr,
10889        P300PfsHa_SPEC,
10890        crate::common::RW,
10891    > {
10892        crate::common::RegisterField::<
10893            4,
10894            0x1,
10895            1,
10896            0,
10897            p300pfs_ha::Pcr,
10898            p300pfs_ha::Pcr,
10899            P300PfsHa_SPEC,
10900            crate::common::RW,
10901        >::from_register(self, 0)
10902    }
10903
10904    #[doc = "N-Channel Open-Drain Control"]
10905    #[inline(always)]
10906    pub fn ncodr(
10907        self,
10908    ) -> crate::common::RegisterField<
10909        6,
10910        0x1,
10911        1,
10912        0,
10913        p300pfs_ha::Ncodr,
10914        p300pfs_ha::Ncodr,
10915        P300PfsHa_SPEC,
10916        crate::common::RW,
10917    > {
10918        crate::common::RegisterField::<
10919            6,
10920            0x1,
10921            1,
10922            0,
10923            p300pfs_ha::Ncodr,
10924            p300pfs_ha::Ncodr,
10925            P300PfsHa_SPEC,
10926            crate::common::RW,
10927        >::from_register(self, 0)
10928    }
10929
10930    #[doc = "Event on Falling/Event on Rising"]
10931    #[inline(always)]
10932    pub fn eofr(
10933        self,
10934    ) -> crate::common::RegisterField<
10935        12,
10936        0x3,
10937        1,
10938        0,
10939        p300pfs_ha::Eofr,
10940        p300pfs_ha::Eofr,
10941        P300PfsHa_SPEC,
10942        crate::common::RW,
10943    > {
10944        crate::common::RegisterField::<
10945            12,
10946            0x3,
10947            1,
10948            0,
10949            p300pfs_ha::Eofr,
10950            p300pfs_ha::Eofr,
10951            P300PfsHa_SPEC,
10952            crate::common::RW,
10953        >::from_register(self, 0)
10954    }
10955
10956    #[doc = "IRQ Input Enable"]
10957    #[inline(always)]
10958    pub fn isel(
10959        self,
10960    ) -> crate::common::RegisterField<
10961        14,
10962        0x1,
10963        1,
10964        0,
10965        p300pfs_ha::Isel,
10966        p300pfs_ha::Isel,
10967        P300PfsHa_SPEC,
10968        crate::common::RW,
10969    > {
10970        crate::common::RegisterField::<
10971            14,
10972            0x1,
10973            1,
10974            0,
10975            p300pfs_ha::Isel,
10976            p300pfs_ha::Isel,
10977            P300PfsHa_SPEC,
10978            crate::common::RW,
10979        >::from_register(self, 0)
10980    }
10981
10982    #[doc = "Analog Input Enable"]
10983    #[inline(always)]
10984    pub fn asel(
10985        self,
10986    ) -> crate::common::RegisterField<
10987        15,
10988        0x1,
10989        1,
10990        0,
10991        p300pfs_ha::Asel,
10992        p300pfs_ha::Asel,
10993        P300PfsHa_SPEC,
10994        crate::common::RW,
10995    > {
10996        crate::common::RegisterField::<
10997            15,
10998            0x1,
10999            1,
11000            0,
11001            p300pfs_ha::Asel,
11002            p300pfs_ha::Asel,
11003            P300PfsHa_SPEC,
11004            crate::common::RW,
11005        >::from_register(self, 0)
11006    }
11007}
11008impl ::core::default::Default for P300PfsHa {
11009    #[inline(always)]
11010    fn default() -> P300PfsHa {
11011        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(16)
11012    }
11013}
11014pub mod p300pfs_ha {
11015
11016    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11017    pub struct Podr_SPEC;
11018    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11019    impl Podr {
11020        #[doc = "Output low"]
11021        pub const _0: Self = Self::new(0);
11022
11023        #[doc = "Output high"]
11024        pub const _1: Self = Self::new(1);
11025    }
11026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11027    pub struct Pidr_SPEC;
11028    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11029    impl Pidr {
11030        #[doc = "Low level"]
11031        pub const _0: Self = Self::new(0);
11032
11033        #[doc = "High level"]
11034        pub const _1: Self = Self::new(1);
11035    }
11036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11037    pub struct Pdr_SPEC;
11038    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11039    impl Pdr {
11040        #[doc = "Input (functions as an input pin)"]
11041        pub const _0: Self = Self::new(0);
11042
11043        #[doc = "Output (functions as an output pin)"]
11044        pub const _1: Self = Self::new(1);
11045    }
11046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11047    pub struct Pcr_SPEC;
11048    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11049    impl Pcr {
11050        #[doc = "Disable input pull-up"]
11051        pub const _0: Self = Self::new(0);
11052
11053        #[doc = "Enable input pull-up"]
11054        pub const _1: Self = Self::new(1);
11055    }
11056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11057    pub struct Ncodr_SPEC;
11058    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11059    impl Ncodr {
11060        #[doc = "Output CMOS"]
11061        pub const _0: Self = Self::new(0);
11062
11063        #[doc = "Output NMOS open-drain"]
11064        pub const _1: Self = Self::new(1);
11065    }
11066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11067    pub struct Eofr_SPEC;
11068    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11069    impl Eofr {
11070        #[doc = "Don\'t care"]
11071        pub const _00: Self = Self::new(0);
11072
11073        #[doc = "Detect rising edge"]
11074        pub const _01: Self = Self::new(1);
11075
11076        #[doc = "Detect falling edge"]
11077        pub const _10: Self = Self::new(2);
11078
11079        #[doc = "Detect both edges"]
11080        pub const _11: Self = Self::new(3);
11081    }
11082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11083    pub struct Isel_SPEC;
11084    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11085    impl Isel {
11086        #[doc = "Do not use as IRQn input pin"]
11087        pub const _0: Self = Self::new(0);
11088
11089        #[doc = "Use as IRQn input pin"]
11090        pub const _1: Self = Self::new(1);
11091    }
11092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11093    pub struct Asel_SPEC;
11094    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11095    impl Asel {
11096        #[doc = "Do not use as analog pin"]
11097        pub const _0: Self = Self::new(0);
11098
11099        #[doc = "Use as analog pin"]
11100        pub const _1: Self = Self::new(1);
11101    }
11102}
11103#[doc(hidden)]
11104#[derive(Copy, Clone, Eq, PartialEq)]
11105pub struct P300PfsBy_SPEC;
11106impl crate::sealed::RegSpec for P300PfsBy_SPEC {
11107    type DataType = u8;
11108}
11109
11110#[doc = "Port 300 Pin Function Select Register"]
11111pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
11112
11113impl P300PfsBy {
11114    #[doc = "Port Output Data"]
11115    #[inline(always)]
11116    pub fn podr(
11117        self,
11118    ) -> crate::common::RegisterField<
11119        0,
11120        0x1,
11121        1,
11122        0,
11123        p300pfs_by::Podr,
11124        p300pfs_by::Podr,
11125        P300PfsBy_SPEC,
11126        crate::common::RW,
11127    > {
11128        crate::common::RegisterField::<
11129            0,
11130            0x1,
11131            1,
11132            0,
11133            p300pfs_by::Podr,
11134            p300pfs_by::Podr,
11135            P300PfsBy_SPEC,
11136            crate::common::RW,
11137        >::from_register(self, 0)
11138    }
11139
11140    #[doc = "Port State"]
11141    #[inline(always)]
11142    pub fn pidr(
11143        self,
11144    ) -> crate::common::RegisterField<
11145        1,
11146        0x1,
11147        1,
11148        0,
11149        p300pfs_by::Pidr,
11150        p300pfs_by::Pidr,
11151        P300PfsBy_SPEC,
11152        crate::common::R,
11153    > {
11154        crate::common::RegisterField::<
11155            1,
11156            0x1,
11157            1,
11158            0,
11159            p300pfs_by::Pidr,
11160            p300pfs_by::Pidr,
11161            P300PfsBy_SPEC,
11162            crate::common::R,
11163        >::from_register(self, 0)
11164    }
11165
11166    #[doc = "Port Direction"]
11167    #[inline(always)]
11168    pub fn pdr(
11169        self,
11170    ) -> crate::common::RegisterField<
11171        2,
11172        0x1,
11173        1,
11174        0,
11175        p300pfs_by::Pdr,
11176        p300pfs_by::Pdr,
11177        P300PfsBy_SPEC,
11178        crate::common::RW,
11179    > {
11180        crate::common::RegisterField::<
11181            2,
11182            0x1,
11183            1,
11184            0,
11185            p300pfs_by::Pdr,
11186            p300pfs_by::Pdr,
11187            P300PfsBy_SPEC,
11188            crate::common::RW,
11189        >::from_register(self, 0)
11190    }
11191
11192    #[doc = "Pull-up Control"]
11193    #[inline(always)]
11194    pub fn pcr(
11195        self,
11196    ) -> crate::common::RegisterField<
11197        4,
11198        0x1,
11199        1,
11200        0,
11201        p300pfs_by::Pcr,
11202        p300pfs_by::Pcr,
11203        P300PfsBy_SPEC,
11204        crate::common::RW,
11205    > {
11206        crate::common::RegisterField::<
11207            4,
11208            0x1,
11209            1,
11210            0,
11211            p300pfs_by::Pcr,
11212            p300pfs_by::Pcr,
11213            P300PfsBy_SPEC,
11214            crate::common::RW,
11215        >::from_register(self, 0)
11216    }
11217
11218    #[doc = "N-Channel Open-Drain Control"]
11219    #[inline(always)]
11220    pub fn ncodr(
11221        self,
11222    ) -> crate::common::RegisterField<
11223        6,
11224        0x1,
11225        1,
11226        0,
11227        p300pfs_by::Ncodr,
11228        p300pfs_by::Ncodr,
11229        P300PfsBy_SPEC,
11230        crate::common::RW,
11231    > {
11232        crate::common::RegisterField::<
11233            6,
11234            0x1,
11235            1,
11236            0,
11237            p300pfs_by::Ncodr,
11238            p300pfs_by::Ncodr,
11239            P300PfsBy_SPEC,
11240            crate::common::RW,
11241        >::from_register(self, 0)
11242    }
11243}
11244impl ::core::default::Default for P300PfsBy {
11245    #[inline(always)]
11246    fn default() -> P300PfsBy {
11247        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(16)
11248    }
11249}
11250pub mod p300pfs_by {
11251
11252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11253    pub struct Podr_SPEC;
11254    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11255    impl Podr {
11256        #[doc = "Output low"]
11257        pub const _0: Self = Self::new(0);
11258
11259        #[doc = "Output high"]
11260        pub const _1: Self = Self::new(1);
11261    }
11262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11263    pub struct Pidr_SPEC;
11264    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11265    impl Pidr {
11266        #[doc = "Low level"]
11267        pub const _0: Self = Self::new(0);
11268
11269        #[doc = "High level"]
11270        pub const _1: Self = Self::new(1);
11271    }
11272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11273    pub struct Pdr_SPEC;
11274    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11275    impl Pdr {
11276        #[doc = "Input (functions as an input pin)"]
11277        pub const _0: Self = Self::new(0);
11278
11279        #[doc = "Output (functions as an output pin)"]
11280        pub const _1: Self = Self::new(1);
11281    }
11282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11283    pub struct Pcr_SPEC;
11284    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11285    impl Pcr {
11286        #[doc = "Disable input pull-up"]
11287        pub const _0: Self = Self::new(0);
11288
11289        #[doc = "Enable input pull-up"]
11290        pub const _1: Self = Self::new(1);
11291    }
11292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11293    pub struct Ncodr_SPEC;
11294    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11295    impl Ncodr {
11296        #[doc = "Output CMOS"]
11297        pub const _0: Self = Self::new(0);
11298
11299        #[doc = "Output NMOS open-drain"]
11300        pub const _1: Self = Self::new(1);
11301    }
11302}
11303#[doc(hidden)]
11304#[derive(Copy, Clone, Eq, PartialEq)]
11305pub struct P30Pfs_SPEC;
11306impl crate::sealed::RegSpec for P30Pfs_SPEC {
11307    type DataType = u32;
11308}
11309
11310#[doc = "Port 30%s Pin Function Select Register"]
11311pub type P30Pfs = crate::RegValueT<P30Pfs_SPEC>;
11312
11313impl P30Pfs {
11314    #[doc = "Port Output Data"]
11315    #[inline(always)]
11316    pub fn podr(
11317        self,
11318    ) -> crate::common::RegisterField<
11319        0,
11320        0x1,
11321        1,
11322        0,
11323        p30pfs::Podr,
11324        p30pfs::Podr,
11325        P30Pfs_SPEC,
11326        crate::common::RW,
11327    > {
11328        crate::common::RegisterField::<
11329            0,
11330            0x1,
11331            1,
11332            0,
11333            p30pfs::Podr,
11334            p30pfs::Podr,
11335            P30Pfs_SPEC,
11336            crate::common::RW,
11337        >::from_register(self, 0)
11338    }
11339
11340    #[doc = "Port State"]
11341    #[inline(always)]
11342    pub fn pidr(
11343        self,
11344    ) -> crate::common::RegisterField<
11345        1,
11346        0x1,
11347        1,
11348        0,
11349        p30pfs::Pidr,
11350        p30pfs::Pidr,
11351        P30Pfs_SPEC,
11352        crate::common::R,
11353    > {
11354        crate::common::RegisterField::<
11355            1,
11356            0x1,
11357            1,
11358            0,
11359            p30pfs::Pidr,
11360            p30pfs::Pidr,
11361            P30Pfs_SPEC,
11362            crate::common::R,
11363        >::from_register(self, 0)
11364    }
11365
11366    #[doc = "Port Direction"]
11367    #[inline(always)]
11368    pub fn pdr(
11369        self,
11370    ) -> crate::common::RegisterField<
11371        2,
11372        0x1,
11373        1,
11374        0,
11375        p30pfs::Pdr,
11376        p30pfs::Pdr,
11377        P30Pfs_SPEC,
11378        crate::common::RW,
11379    > {
11380        crate::common::RegisterField::<
11381            2,
11382            0x1,
11383            1,
11384            0,
11385            p30pfs::Pdr,
11386            p30pfs::Pdr,
11387            P30Pfs_SPEC,
11388            crate::common::RW,
11389        >::from_register(self, 0)
11390    }
11391
11392    #[doc = "Pull-up Control"]
11393    #[inline(always)]
11394    pub fn pcr(
11395        self,
11396    ) -> crate::common::RegisterField<
11397        4,
11398        0x1,
11399        1,
11400        0,
11401        p30pfs::Pcr,
11402        p30pfs::Pcr,
11403        P30Pfs_SPEC,
11404        crate::common::RW,
11405    > {
11406        crate::common::RegisterField::<
11407            4,
11408            0x1,
11409            1,
11410            0,
11411            p30pfs::Pcr,
11412            p30pfs::Pcr,
11413            P30Pfs_SPEC,
11414            crate::common::RW,
11415        >::from_register(self, 0)
11416    }
11417
11418    #[doc = "N-Channel Open-Drain Control"]
11419    #[inline(always)]
11420    pub fn ncodr(
11421        self,
11422    ) -> crate::common::RegisterField<
11423        6,
11424        0x1,
11425        1,
11426        0,
11427        p30pfs::Ncodr,
11428        p30pfs::Ncodr,
11429        P30Pfs_SPEC,
11430        crate::common::RW,
11431    > {
11432        crate::common::RegisterField::<
11433            6,
11434            0x1,
11435            1,
11436            0,
11437            p30pfs::Ncodr,
11438            p30pfs::Ncodr,
11439            P30Pfs_SPEC,
11440            crate::common::RW,
11441        >::from_register(self, 0)
11442    }
11443
11444    #[doc = "Event on Falling/Event on Rising"]
11445    #[inline(always)]
11446    pub fn eofr(
11447        self,
11448    ) -> crate::common::RegisterField<
11449        12,
11450        0x3,
11451        1,
11452        0,
11453        p30pfs::Eofr,
11454        p30pfs::Eofr,
11455        P30Pfs_SPEC,
11456        crate::common::RW,
11457    > {
11458        crate::common::RegisterField::<
11459            12,
11460            0x3,
11461            1,
11462            0,
11463            p30pfs::Eofr,
11464            p30pfs::Eofr,
11465            P30Pfs_SPEC,
11466            crate::common::RW,
11467        >::from_register(self, 0)
11468    }
11469
11470    #[doc = "IRQ Input Enable"]
11471    #[inline(always)]
11472    pub fn isel(
11473        self,
11474    ) -> crate::common::RegisterField<
11475        14,
11476        0x1,
11477        1,
11478        0,
11479        p30pfs::Isel,
11480        p30pfs::Isel,
11481        P30Pfs_SPEC,
11482        crate::common::RW,
11483    > {
11484        crate::common::RegisterField::<
11485            14,
11486            0x1,
11487            1,
11488            0,
11489            p30pfs::Isel,
11490            p30pfs::Isel,
11491            P30Pfs_SPEC,
11492            crate::common::RW,
11493        >::from_register(self, 0)
11494    }
11495
11496    #[doc = "Analog Input Enable"]
11497    #[inline(always)]
11498    pub fn asel(
11499        self,
11500    ) -> crate::common::RegisterField<
11501        15,
11502        0x1,
11503        1,
11504        0,
11505        p30pfs::Asel,
11506        p30pfs::Asel,
11507        P30Pfs_SPEC,
11508        crate::common::RW,
11509    > {
11510        crate::common::RegisterField::<
11511            15,
11512            0x1,
11513            1,
11514            0,
11515            p30pfs::Asel,
11516            p30pfs::Asel,
11517            P30Pfs_SPEC,
11518            crate::common::RW,
11519        >::from_register(self, 0)
11520    }
11521
11522    #[doc = "Port Mode Control"]
11523    #[inline(always)]
11524    pub fn pmr(
11525        self,
11526    ) -> crate::common::RegisterField<
11527        16,
11528        0x1,
11529        1,
11530        0,
11531        p30pfs::Pmr,
11532        p30pfs::Pmr,
11533        P30Pfs_SPEC,
11534        crate::common::RW,
11535    > {
11536        crate::common::RegisterField::<
11537            16,
11538            0x1,
11539            1,
11540            0,
11541            p30pfs::Pmr,
11542            p30pfs::Pmr,
11543            P30Pfs_SPEC,
11544            crate::common::RW,
11545        >::from_register(self, 0)
11546    }
11547
11548    #[doc = "Peripheral Select"]
11549    #[inline(always)]
11550    pub fn psel(
11551        self,
11552    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P30Pfs_SPEC, crate::common::RW> {
11553        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P30Pfs_SPEC,crate::common::RW>::from_register(self,0)
11554    }
11555}
11556impl ::core::default::Default for P30Pfs {
11557    #[inline(always)]
11558    fn default() -> P30Pfs {
11559        <crate::RegValueT<P30Pfs_SPEC> as RegisterValue<_>>::new(0)
11560    }
11561}
11562pub mod p30pfs {
11563
11564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11565    pub struct Podr_SPEC;
11566    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11567    impl Podr {
11568        #[doc = "Output low"]
11569        pub const _0: Self = Self::new(0);
11570
11571        #[doc = "Output high"]
11572        pub const _1: Self = Self::new(1);
11573    }
11574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11575    pub struct Pidr_SPEC;
11576    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11577    impl Pidr {
11578        #[doc = "Low level"]
11579        pub const _0: Self = Self::new(0);
11580
11581        #[doc = "High level"]
11582        pub const _1: Self = Self::new(1);
11583    }
11584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11585    pub struct Pdr_SPEC;
11586    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11587    impl Pdr {
11588        #[doc = "Input (functions as an input pin)"]
11589        pub const _0: Self = Self::new(0);
11590
11591        #[doc = "Output (functions as an output pin)"]
11592        pub const _1: Self = Self::new(1);
11593    }
11594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11595    pub struct Pcr_SPEC;
11596    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11597    impl Pcr {
11598        #[doc = "Disable input pull-up"]
11599        pub const _0: Self = Self::new(0);
11600
11601        #[doc = "Enable input pull-up"]
11602        pub const _1: Self = Self::new(1);
11603    }
11604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11605    pub struct Ncodr_SPEC;
11606    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11607    impl Ncodr {
11608        #[doc = "Output CMOS"]
11609        pub const _0: Self = Self::new(0);
11610
11611        #[doc = "Output NMOS open-drain"]
11612        pub const _1: Self = Self::new(1);
11613    }
11614    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11615    pub struct Eofr_SPEC;
11616    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11617    impl Eofr {
11618        #[doc = "Don\'t care"]
11619        pub const _00: Self = Self::new(0);
11620
11621        #[doc = "Detect rising edge"]
11622        pub const _01: Self = Self::new(1);
11623
11624        #[doc = "Detect falling edge"]
11625        pub const _10: Self = Self::new(2);
11626
11627        #[doc = "Detect both edges"]
11628        pub const _11: Self = Self::new(3);
11629    }
11630    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11631    pub struct Isel_SPEC;
11632    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11633    impl Isel {
11634        #[doc = "Do not use as IRQn input pin"]
11635        pub const _0: Self = Self::new(0);
11636
11637        #[doc = "Use as IRQn input pin"]
11638        pub const _1: Self = Self::new(1);
11639    }
11640    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11641    pub struct Asel_SPEC;
11642    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11643    impl Asel {
11644        #[doc = "Do not use as analog pin"]
11645        pub const _0: Self = Self::new(0);
11646
11647        #[doc = "Use as analog pin"]
11648        pub const _1: Self = Self::new(1);
11649    }
11650    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11651    pub struct Pmr_SPEC;
11652    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11653    impl Pmr {
11654        #[doc = "Use as general I/O pin"]
11655        pub const _0: Self = Self::new(0);
11656
11657        #[doc = "Use as I/O port for peripheral functions"]
11658        pub const _1: Self = Self::new(1);
11659    }
11660}
11661#[doc(hidden)]
11662#[derive(Copy, Clone, Eq, PartialEq)]
11663pub struct P30PfsHa_SPEC;
11664impl crate::sealed::RegSpec for P30PfsHa_SPEC {
11665    type DataType = u16;
11666}
11667
11668#[doc = "Port 30%s Pin Function Select Register"]
11669pub type P30PfsHa = crate::RegValueT<P30PfsHa_SPEC>;
11670
11671impl P30PfsHa {
11672    #[doc = "Port Output Data"]
11673    #[inline(always)]
11674    pub fn podr(
11675        self,
11676    ) -> crate::common::RegisterField<
11677        0,
11678        0x1,
11679        1,
11680        0,
11681        p30pfs_ha::Podr,
11682        p30pfs_ha::Podr,
11683        P30PfsHa_SPEC,
11684        crate::common::RW,
11685    > {
11686        crate::common::RegisterField::<
11687            0,
11688            0x1,
11689            1,
11690            0,
11691            p30pfs_ha::Podr,
11692            p30pfs_ha::Podr,
11693            P30PfsHa_SPEC,
11694            crate::common::RW,
11695        >::from_register(self, 0)
11696    }
11697
11698    #[doc = "Port State"]
11699    #[inline(always)]
11700    pub fn pidr(
11701        self,
11702    ) -> crate::common::RegisterField<
11703        1,
11704        0x1,
11705        1,
11706        0,
11707        p30pfs_ha::Pidr,
11708        p30pfs_ha::Pidr,
11709        P30PfsHa_SPEC,
11710        crate::common::R,
11711    > {
11712        crate::common::RegisterField::<
11713            1,
11714            0x1,
11715            1,
11716            0,
11717            p30pfs_ha::Pidr,
11718            p30pfs_ha::Pidr,
11719            P30PfsHa_SPEC,
11720            crate::common::R,
11721        >::from_register(self, 0)
11722    }
11723
11724    #[doc = "Port Direction"]
11725    #[inline(always)]
11726    pub fn pdr(
11727        self,
11728    ) -> crate::common::RegisterField<
11729        2,
11730        0x1,
11731        1,
11732        0,
11733        p30pfs_ha::Pdr,
11734        p30pfs_ha::Pdr,
11735        P30PfsHa_SPEC,
11736        crate::common::RW,
11737    > {
11738        crate::common::RegisterField::<
11739            2,
11740            0x1,
11741            1,
11742            0,
11743            p30pfs_ha::Pdr,
11744            p30pfs_ha::Pdr,
11745            P30PfsHa_SPEC,
11746            crate::common::RW,
11747        >::from_register(self, 0)
11748    }
11749
11750    #[doc = "Pull-up Control"]
11751    #[inline(always)]
11752    pub fn pcr(
11753        self,
11754    ) -> crate::common::RegisterField<
11755        4,
11756        0x1,
11757        1,
11758        0,
11759        p30pfs_ha::Pcr,
11760        p30pfs_ha::Pcr,
11761        P30PfsHa_SPEC,
11762        crate::common::RW,
11763    > {
11764        crate::common::RegisterField::<
11765            4,
11766            0x1,
11767            1,
11768            0,
11769            p30pfs_ha::Pcr,
11770            p30pfs_ha::Pcr,
11771            P30PfsHa_SPEC,
11772            crate::common::RW,
11773        >::from_register(self, 0)
11774    }
11775
11776    #[doc = "N-Channel Open-Drain Control"]
11777    #[inline(always)]
11778    pub fn ncodr(
11779        self,
11780    ) -> crate::common::RegisterField<
11781        6,
11782        0x1,
11783        1,
11784        0,
11785        p30pfs_ha::Ncodr,
11786        p30pfs_ha::Ncodr,
11787        P30PfsHa_SPEC,
11788        crate::common::RW,
11789    > {
11790        crate::common::RegisterField::<
11791            6,
11792            0x1,
11793            1,
11794            0,
11795            p30pfs_ha::Ncodr,
11796            p30pfs_ha::Ncodr,
11797            P30PfsHa_SPEC,
11798            crate::common::RW,
11799        >::from_register(self, 0)
11800    }
11801
11802    #[doc = "Event on Falling/Event on Rising"]
11803    #[inline(always)]
11804    pub fn eofr(
11805        self,
11806    ) -> crate::common::RegisterField<
11807        12,
11808        0x3,
11809        1,
11810        0,
11811        p30pfs_ha::Eofr,
11812        p30pfs_ha::Eofr,
11813        P30PfsHa_SPEC,
11814        crate::common::RW,
11815    > {
11816        crate::common::RegisterField::<
11817            12,
11818            0x3,
11819            1,
11820            0,
11821            p30pfs_ha::Eofr,
11822            p30pfs_ha::Eofr,
11823            P30PfsHa_SPEC,
11824            crate::common::RW,
11825        >::from_register(self, 0)
11826    }
11827
11828    #[doc = "IRQ Input Enable"]
11829    #[inline(always)]
11830    pub fn isel(
11831        self,
11832    ) -> crate::common::RegisterField<
11833        14,
11834        0x1,
11835        1,
11836        0,
11837        p30pfs_ha::Isel,
11838        p30pfs_ha::Isel,
11839        P30PfsHa_SPEC,
11840        crate::common::RW,
11841    > {
11842        crate::common::RegisterField::<
11843            14,
11844            0x1,
11845            1,
11846            0,
11847            p30pfs_ha::Isel,
11848            p30pfs_ha::Isel,
11849            P30PfsHa_SPEC,
11850            crate::common::RW,
11851        >::from_register(self, 0)
11852    }
11853
11854    #[doc = "Analog Input Enable"]
11855    #[inline(always)]
11856    pub fn asel(
11857        self,
11858    ) -> crate::common::RegisterField<
11859        15,
11860        0x1,
11861        1,
11862        0,
11863        p30pfs_ha::Asel,
11864        p30pfs_ha::Asel,
11865        P30PfsHa_SPEC,
11866        crate::common::RW,
11867    > {
11868        crate::common::RegisterField::<
11869            15,
11870            0x1,
11871            1,
11872            0,
11873            p30pfs_ha::Asel,
11874            p30pfs_ha::Asel,
11875            P30PfsHa_SPEC,
11876            crate::common::RW,
11877        >::from_register(self, 0)
11878    }
11879}
11880impl ::core::default::Default for P30PfsHa {
11881    #[inline(always)]
11882    fn default() -> P30PfsHa {
11883        <crate::RegValueT<P30PfsHa_SPEC> as RegisterValue<_>>::new(0)
11884    }
11885}
11886pub mod p30pfs_ha {
11887
11888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11889    pub struct Podr_SPEC;
11890    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11891    impl Podr {
11892        #[doc = "Output low"]
11893        pub const _0: Self = Self::new(0);
11894
11895        #[doc = "Output high"]
11896        pub const _1: Self = Self::new(1);
11897    }
11898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11899    pub struct Pidr_SPEC;
11900    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11901    impl Pidr {
11902        #[doc = "Low level"]
11903        pub const _0: Self = Self::new(0);
11904
11905        #[doc = "High level"]
11906        pub const _1: Self = Self::new(1);
11907    }
11908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11909    pub struct Pdr_SPEC;
11910    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11911    impl Pdr {
11912        #[doc = "Input (functions as an input pin)"]
11913        pub const _0: Self = Self::new(0);
11914
11915        #[doc = "Output (functions as an output pin)"]
11916        pub const _1: Self = Self::new(1);
11917    }
11918    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11919    pub struct Pcr_SPEC;
11920    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11921    impl Pcr {
11922        #[doc = "Disable input pull-up"]
11923        pub const _0: Self = Self::new(0);
11924
11925        #[doc = "Enable input pull-up"]
11926        pub const _1: Self = Self::new(1);
11927    }
11928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11929    pub struct Ncodr_SPEC;
11930    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11931    impl Ncodr {
11932        #[doc = "Output CMOS"]
11933        pub const _0: Self = Self::new(0);
11934
11935        #[doc = "Output NMOS open-drain"]
11936        pub const _1: Self = Self::new(1);
11937    }
11938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11939    pub struct Eofr_SPEC;
11940    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11941    impl Eofr {
11942        #[doc = "Don\'t care"]
11943        pub const _00: Self = Self::new(0);
11944
11945        #[doc = "Detect rising edge"]
11946        pub const _01: Self = Self::new(1);
11947
11948        #[doc = "Detect falling edge"]
11949        pub const _10: Self = Self::new(2);
11950
11951        #[doc = "Detect both edges"]
11952        pub const _11: Self = Self::new(3);
11953    }
11954    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11955    pub struct Isel_SPEC;
11956    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11957    impl Isel {
11958        #[doc = "Do not use as IRQn input pin"]
11959        pub const _0: Self = Self::new(0);
11960
11961        #[doc = "Use as IRQn input pin"]
11962        pub const _1: Self = Self::new(1);
11963    }
11964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11965    pub struct Asel_SPEC;
11966    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11967    impl Asel {
11968        #[doc = "Do not use as analog pin"]
11969        pub const _0: Self = Self::new(0);
11970
11971        #[doc = "Use as analog pin"]
11972        pub const _1: Self = Self::new(1);
11973    }
11974}
11975#[doc(hidden)]
11976#[derive(Copy, Clone, Eq, PartialEq)]
11977pub struct P30PfsBy_SPEC;
11978impl crate::sealed::RegSpec for P30PfsBy_SPEC {
11979    type DataType = u8;
11980}
11981
11982#[doc = "Port 30%s Pin Function Select Register"]
11983pub type P30PfsBy = crate::RegValueT<P30PfsBy_SPEC>;
11984
11985impl P30PfsBy {
11986    #[doc = "Port Output Data"]
11987    #[inline(always)]
11988    pub fn podr(
11989        self,
11990    ) -> crate::common::RegisterField<
11991        0,
11992        0x1,
11993        1,
11994        0,
11995        p30pfs_by::Podr,
11996        p30pfs_by::Podr,
11997        P30PfsBy_SPEC,
11998        crate::common::RW,
11999    > {
12000        crate::common::RegisterField::<
12001            0,
12002            0x1,
12003            1,
12004            0,
12005            p30pfs_by::Podr,
12006            p30pfs_by::Podr,
12007            P30PfsBy_SPEC,
12008            crate::common::RW,
12009        >::from_register(self, 0)
12010    }
12011
12012    #[doc = "Port State"]
12013    #[inline(always)]
12014    pub fn pidr(
12015        self,
12016    ) -> crate::common::RegisterField<
12017        1,
12018        0x1,
12019        1,
12020        0,
12021        p30pfs_by::Pidr,
12022        p30pfs_by::Pidr,
12023        P30PfsBy_SPEC,
12024        crate::common::R,
12025    > {
12026        crate::common::RegisterField::<
12027            1,
12028            0x1,
12029            1,
12030            0,
12031            p30pfs_by::Pidr,
12032            p30pfs_by::Pidr,
12033            P30PfsBy_SPEC,
12034            crate::common::R,
12035        >::from_register(self, 0)
12036    }
12037
12038    #[doc = "Port Direction"]
12039    #[inline(always)]
12040    pub fn pdr(
12041        self,
12042    ) -> crate::common::RegisterField<
12043        2,
12044        0x1,
12045        1,
12046        0,
12047        p30pfs_by::Pdr,
12048        p30pfs_by::Pdr,
12049        P30PfsBy_SPEC,
12050        crate::common::RW,
12051    > {
12052        crate::common::RegisterField::<
12053            2,
12054            0x1,
12055            1,
12056            0,
12057            p30pfs_by::Pdr,
12058            p30pfs_by::Pdr,
12059            P30PfsBy_SPEC,
12060            crate::common::RW,
12061        >::from_register(self, 0)
12062    }
12063
12064    #[doc = "Pull-up Control"]
12065    #[inline(always)]
12066    pub fn pcr(
12067        self,
12068    ) -> crate::common::RegisterField<
12069        4,
12070        0x1,
12071        1,
12072        0,
12073        p30pfs_by::Pcr,
12074        p30pfs_by::Pcr,
12075        P30PfsBy_SPEC,
12076        crate::common::RW,
12077    > {
12078        crate::common::RegisterField::<
12079            4,
12080            0x1,
12081            1,
12082            0,
12083            p30pfs_by::Pcr,
12084            p30pfs_by::Pcr,
12085            P30PfsBy_SPEC,
12086            crate::common::RW,
12087        >::from_register(self, 0)
12088    }
12089
12090    #[doc = "N-Channel Open-Drain Control"]
12091    #[inline(always)]
12092    pub fn ncodr(
12093        self,
12094    ) -> crate::common::RegisterField<
12095        6,
12096        0x1,
12097        1,
12098        0,
12099        p30pfs_by::Ncodr,
12100        p30pfs_by::Ncodr,
12101        P30PfsBy_SPEC,
12102        crate::common::RW,
12103    > {
12104        crate::common::RegisterField::<
12105            6,
12106            0x1,
12107            1,
12108            0,
12109            p30pfs_by::Ncodr,
12110            p30pfs_by::Ncodr,
12111            P30PfsBy_SPEC,
12112            crate::common::RW,
12113        >::from_register(self, 0)
12114    }
12115}
12116impl ::core::default::Default for P30PfsBy {
12117    #[inline(always)]
12118    fn default() -> P30PfsBy {
12119        <crate::RegValueT<P30PfsBy_SPEC> as RegisterValue<_>>::new(0)
12120    }
12121}
12122pub mod p30pfs_by {
12123
12124    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12125    pub struct Podr_SPEC;
12126    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12127    impl Podr {
12128        #[doc = "Output low"]
12129        pub const _0: Self = Self::new(0);
12130
12131        #[doc = "Output high"]
12132        pub const _1: Self = Self::new(1);
12133    }
12134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12135    pub struct Pidr_SPEC;
12136    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12137    impl Pidr {
12138        #[doc = "Low level"]
12139        pub const _0: Self = Self::new(0);
12140
12141        #[doc = "High level"]
12142        pub const _1: Self = Self::new(1);
12143    }
12144    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12145    pub struct Pdr_SPEC;
12146    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12147    impl Pdr {
12148        #[doc = "Input (functions as an input pin)"]
12149        pub const _0: Self = Self::new(0);
12150
12151        #[doc = "Output (functions as an output pin)"]
12152        pub const _1: Self = Self::new(1);
12153    }
12154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12155    pub struct Pcr_SPEC;
12156    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12157    impl Pcr {
12158        #[doc = "Disable input pull-up"]
12159        pub const _0: Self = Self::new(0);
12160
12161        #[doc = "Enable input pull-up"]
12162        pub const _1: Self = Self::new(1);
12163    }
12164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12165    pub struct Ncodr_SPEC;
12166    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12167    impl Ncodr {
12168        #[doc = "Output CMOS"]
12169        pub const _0: Self = Self::new(0);
12170
12171        #[doc = "Output NMOS open-drain"]
12172        pub const _1: Self = Self::new(1);
12173    }
12174}
12175#[doc(hidden)]
12176#[derive(Copy, Clone, Eq, PartialEq)]
12177pub struct P40Pfs_SPEC;
12178impl crate::sealed::RegSpec for P40Pfs_SPEC {
12179    type DataType = u32;
12180}
12181
12182#[doc = "Port 40%s Pin Function Select Register"]
12183pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
12184
12185impl P40Pfs {
12186    #[doc = "Port Output Data"]
12187    #[inline(always)]
12188    pub fn podr(
12189        self,
12190    ) -> crate::common::RegisterField<
12191        0,
12192        0x1,
12193        1,
12194        0,
12195        p40pfs::Podr,
12196        p40pfs::Podr,
12197        P40Pfs_SPEC,
12198        crate::common::RW,
12199    > {
12200        crate::common::RegisterField::<
12201            0,
12202            0x1,
12203            1,
12204            0,
12205            p40pfs::Podr,
12206            p40pfs::Podr,
12207            P40Pfs_SPEC,
12208            crate::common::RW,
12209        >::from_register(self, 0)
12210    }
12211
12212    #[doc = "Port State"]
12213    #[inline(always)]
12214    pub fn pidr(
12215        self,
12216    ) -> crate::common::RegisterField<
12217        1,
12218        0x1,
12219        1,
12220        0,
12221        p40pfs::Pidr,
12222        p40pfs::Pidr,
12223        P40Pfs_SPEC,
12224        crate::common::R,
12225    > {
12226        crate::common::RegisterField::<
12227            1,
12228            0x1,
12229            1,
12230            0,
12231            p40pfs::Pidr,
12232            p40pfs::Pidr,
12233            P40Pfs_SPEC,
12234            crate::common::R,
12235        >::from_register(self, 0)
12236    }
12237
12238    #[doc = "Port Direction"]
12239    #[inline(always)]
12240    pub fn pdr(
12241        self,
12242    ) -> crate::common::RegisterField<
12243        2,
12244        0x1,
12245        1,
12246        0,
12247        p40pfs::Pdr,
12248        p40pfs::Pdr,
12249        P40Pfs_SPEC,
12250        crate::common::RW,
12251    > {
12252        crate::common::RegisterField::<
12253            2,
12254            0x1,
12255            1,
12256            0,
12257            p40pfs::Pdr,
12258            p40pfs::Pdr,
12259            P40Pfs_SPEC,
12260            crate::common::RW,
12261        >::from_register(self, 0)
12262    }
12263
12264    #[doc = "Pull-up Control"]
12265    #[inline(always)]
12266    pub fn pcr(
12267        self,
12268    ) -> crate::common::RegisterField<
12269        4,
12270        0x1,
12271        1,
12272        0,
12273        p40pfs::Pcr,
12274        p40pfs::Pcr,
12275        P40Pfs_SPEC,
12276        crate::common::RW,
12277    > {
12278        crate::common::RegisterField::<
12279            4,
12280            0x1,
12281            1,
12282            0,
12283            p40pfs::Pcr,
12284            p40pfs::Pcr,
12285            P40Pfs_SPEC,
12286            crate::common::RW,
12287        >::from_register(self, 0)
12288    }
12289
12290    #[doc = "N-Channel Open-Drain Control"]
12291    #[inline(always)]
12292    pub fn ncodr(
12293        self,
12294    ) -> crate::common::RegisterField<
12295        6,
12296        0x1,
12297        1,
12298        0,
12299        p40pfs::Ncodr,
12300        p40pfs::Ncodr,
12301        P40Pfs_SPEC,
12302        crate::common::RW,
12303    > {
12304        crate::common::RegisterField::<
12305            6,
12306            0x1,
12307            1,
12308            0,
12309            p40pfs::Ncodr,
12310            p40pfs::Ncodr,
12311            P40Pfs_SPEC,
12312            crate::common::RW,
12313        >::from_register(self, 0)
12314    }
12315
12316    #[doc = "Event on Falling/Event on Rising"]
12317    #[inline(always)]
12318    pub fn eofr(
12319        self,
12320    ) -> crate::common::RegisterField<
12321        12,
12322        0x3,
12323        1,
12324        0,
12325        p40pfs::Eofr,
12326        p40pfs::Eofr,
12327        P40Pfs_SPEC,
12328        crate::common::RW,
12329    > {
12330        crate::common::RegisterField::<
12331            12,
12332            0x3,
12333            1,
12334            0,
12335            p40pfs::Eofr,
12336            p40pfs::Eofr,
12337            P40Pfs_SPEC,
12338            crate::common::RW,
12339        >::from_register(self, 0)
12340    }
12341
12342    #[doc = "IRQ Input Enable"]
12343    #[inline(always)]
12344    pub fn isel(
12345        self,
12346    ) -> crate::common::RegisterField<
12347        14,
12348        0x1,
12349        1,
12350        0,
12351        p40pfs::Isel,
12352        p40pfs::Isel,
12353        P40Pfs_SPEC,
12354        crate::common::RW,
12355    > {
12356        crate::common::RegisterField::<
12357            14,
12358            0x1,
12359            1,
12360            0,
12361            p40pfs::Isel,
12362            p40pfs::Isel,
12363            P40Pfs_SPEC,
12364            crate::common::RW,
12365        >::from_register(self, 0)
12366    }
12367
12368    #[doc = "Analog Input Enable"]
12369    #[inline(always)]
12370    pub fn asel(
12371        self,
12372    ) -> crate::common::RegisterField<
12373        15,
12374        0x1,
12375        1,
12376        0,
12377        p40pfs::Asel,
12378        p40pfs::Asel,
12379        P40Pfs_SPEC,
12380        crate::common::RW,
12381    > {
12382        crate::common::RegisterField::<
12383            15,
12384            0x1,
12385            1,
12386            0,
12387            p40pfs::Asel,
12388            p40pfs::Asel,
12389            P40Pfs_SPEC,
12390            crate::common::RW,
12391        >::from_register(self, 0)
12392    }
12393
12394    #[doc = "Port Mode Control"]
12395    #[inline(always)]
12396    pub fn pmr(
12397        self,
12398    ) -> crate::common::RegisterField<
12399        16,
12400        0x1,
12401        1,
12402        0,
12403        p40pfs::Pmr,
12404        p40pfs::Pmr,
12405        P40Pfs_SPEC,
12406        crate::common::RW,
12407    > {
12408        crate::common::RegisterField::<
12409            16,
12410            0x1,
12411            1,
12412            0,
12413            p40pfs::Pmr,
12414            p40pfs::Pmr,
12415            P40Pfs_SPEC,
12416            crate::common::RW,
12417        >::from_register(self, 0)
12418    }
12419
12420    #[doc = "Peripheral Select"]
12421    #[inline(always)]
12422    pub fn psel(
12423        self,
12424    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
12425        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
12426    }
12427}
12428impl ::core::default::Default for P40Pfs {
12429    #[inline(always)]
12430    fn default() -> P40Pfs {
12431        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
12432    }
12433}
12434pub mod p40pfs {
12435
12436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12437    pub struct Podr_SPEC;
12438    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12439    impl Podr {
12440        #[doc = "Output low"]
12441        pub const _0: Self = Self::new(0);
12442
12443        #[doc = "Output high"]
12444        pub const _1: Self = Self::new(1);
12445    }
12446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12447    pub struct Pidr_SPEC;
12448    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12449    impl Pidr {
12450        #[doc = "Low level"]
12451        pub const _0: Self = Self::new(0);
12452
12453        #[doc = "High level"]
12454        pub const _1: Self = Self::new(1);
12455    }
12456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12457    pub struct Pdr_SPEC;
12458    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12459    impl Pdr {
12460        #[doc = "Input (functions as an input pin)"]
12461        pub const _0: Self = Self::new(0);
12462
12463        #[doc = "Output (functions as an output pin)"]
12464        pub const _1: Self = Self::new(1);
12465    }
12466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12467    pub struct Pcr_SPEC;
12468    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12469    impl Pcr {
12470        #[doc = "Disable input pull-up"]
12471        pub const _0: Self = Self::new(0);
12472
12473        #[doc = "Enable input pull-up"]
12474        pub const _1: Self = Self::new(1);
12475    }
12476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12477    pub struct Ncodr_SPEC;
12478    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12479    impl Ncodr {
12480        #[doc = "Output CMOS"]
12481        pub const _0: Self = Self::new(0);
12482
12483        #[doc = "Output NMOS open-drain"]
12484        pub const _1: Self = Self::new(1);
12485    }
12486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12487    pub struct Eofr_SPEC;
12488    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
12489    impl Eofr {
12490        #[doc = "Don\'t care"]
12491        pub const _00: Self = Self::new(0);
12492
12493        #[doc = "Detect rising edge"]
12494        pub const _01: Self = Self::new(1);
12495
12496        #[doc = "Detect falling edge"]
12497        pub const _10: Self = Self::new(2);
12498
12499        #[doc = "Detect both edges"]
12500        pub const _11: Self = Self::new(3);
12501    }
12502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12503    pub struct Isel_SPEC;
12504    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12505    impl Isel {
12506        #[doc = "Do not use as IRQn input pin"]
12507        pub const _0: Self = Self::new(0);
12508
12509        #[doc = "Use as IRQn input pin"]
12510        pub const _1: Self = Self::new(1);
12511    }
12512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12513    pub struct Asel_SPEC;
12514    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12515    impl Asel {
12516        #[doc = "Do not use as analog pin"]
12517        pub const _0: Self = Self::new(0);
12518
12519        #[doc = "Use as analog pin"]
12520        pub const _1: Self = Self::new(1);
12521    }
12522    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12523    pub struct Pmr_SPEC;
12524    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
12525    impl Pmr {
12526        #[doc = "Use as general I/O pin"]
12527        pub const _0: Self = Self::new(0);
12528
12529        #[doc = "Use as I/O port for peripheral functions"]
12530        pub const _1: Self = Self::new(1);
12531    }
12532}
12533#[doc(hidden)]
12534#[derive(Copy, Clone, Eq, PartialEq)]
12535pub struct P40PfsHa_SPEC;
12536impl crate::sealed::RegSpec for P40PfsHa_SPEC {
12537    type DataType = u16;
12538}
12539
12540#[doc = "Port 40%s Pin Function Select Register"]
12541pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
12542
12543impl P40PfsHa {
12544    #[doc = "Port Output Data"]
12545    #[inline(always)]
12546    pub fn podr(
12547        self,
12548    ) -> crate::common::RegisterField<
12549        0,
12550        0x1,
12551        1,
12552        0,
12553        p40pfs_ha::Podr,
12554        p40pfs_ha::Podr,
12555        P40PfsHa_SPEC,
12556        crate::common::RW,
12557    > {
12558        crate::common::RegisterField::<
12559            0,
12560            0x1,
12561            1,
12562            0,
12563            p40pfs_ha::Podr,
12564            p40pfs_ha::Podr,
12565            P40PfsHa_SPEC,
12566            crate::common::RW,
12567        >::from_register(self, 0)
12568    }
12569
12570    #[doc = "Port State"]
12571    #[inline(always)]
12572    pub fn pidr(
12573        self,
12574    ) -> crate::common::RegisterField<
12575        1,
12576        0x1,
12577        1,
12578        0,
12579        p40pfs_ha::Pidr,
12580        p40pfs_ha::Pidr,
12581        P40PfsHa_SPEC,
12582        crate::common::R,
12583    > {
12584        crate::common::RegisterField::<
12585            1,
12586            0x1,
12587            1,
12588            0,
12589            p40pfs_ha::Pidr,
12590            p40pfs_ha::Pidr,
12591            P40PfsHa_SPEC,
12592            crate::common::R,
12593        >::from_register(self, 0)
12594    }
12595
12596    #[doc = "Port Direction"]
12597    #[inline(always)]
12598    pub fn pdr(
12599        self,
12600    ) -> crate::common::RegisterField<
12601        2,
12602        0x1,
12603        1,
12604        0,
12605        p40pfs_ha::Pdr,
12606        p40pfs_ha::Pdr,
12607        P40PfsHa_SPEC,
12608        crate::common::RW,
12609    > {
12610        crate::common::RegisterField::<
12611            2,
12612            0x1,
12613            1,
12614            0,
12615            p40pfs_ha::Pdr,
12616            p40pfs_ha::Pdr,
12617            P40PfsHa_SPEC,
12618            crate::common::RW,
12619        >::from_register(self, 0)
12620    }
12621
12622    #[doc = "Pull-up Control"]
12623    #[inline(always)]
12624    pub fn pcr(
12625        self,
12626    ) -> crate::common::RegisterField<
12627        4,
12628        0x1,
12629        1,
12630        0,
12631        p40pfs_ha::Pcr,
12632        p40pfs_ha::Pcr,
12633        P40PfsHa_SPEC,
12634        crate::common::RW,
12635    > {
12636        crate::common::RegisterField::<
12637            4,
12638            0x1,
12639            1,
12640            0,
12641            p40pfs_ha::Pcr,
12642            p40pfs_ha::Pcr,
12643            P40PfsHa_SPEC,
12644            crate::common::RW,
12645        >::from_register(self, 0)
12646    }
12647
12648    #[doc = "N-Channel Open-Drain Control"]
12649    #[inline(always)]
12650    pub fn ncodr(
12651        self,
12652    ) -> crate::common::RegisterField<
12653        6,
12654        0x1,
12655        1,
12656        0,
12657        p40pfs_ha::Ncodr,
12658        p40pfs_ha::Ncodr,
12659        P40PfsHa_SPEC,
12660        crate::common::RW,
12661    > {
12662        crate::common::RegisterField::<
12663            6,
12664            0x1,
12665            1,
12666            0,
12667            p40pfs_ha::Ncodr,
12668            p40pfs_ha::Ncodr,
12669            P40PfsHa_SPEC,
12670            crate::common::RW,
12671        >::from_register(self, 0)
12672    }
12673
12674    #[doc = "Event on Falling/Event on Rising"]
12675    #[inline(always)]
12676    pub fn eofr(
12677        self,
12678    ) -> crate::common::RegisterField<
12679        12,
12680        0x3,
12681        1,
12682        0,
12683        p40pfs_ha::Eofr,
12684        p40pfs_ha::Eofr,
12685        P40PfsHa_SPEC,
12686        crate::common::RW,
12687    > {
12688        crate::common::RegisterField::<
12689            12,
12690            0x3,
12691            1,
12692            0,
12693            p40pfs_ha::Eofr,
12694            p40pfs_ha::Eofr,
12695            P40PfsHa_SPEC,
12696            crate::common::RW,
12697        >::from_register(self, 0)
12698    }
12699
12700    #[doc = "IRQ Input Enable"]
12701    #[inline(always)]
12702    pub fn isel(
12703        self,
12704    ) -> crate::common::RegisterField<
12705        14,
12706        0x1,
12707        1,
12708        0,
12709        p40pfs_ha::Isel,
12710        p40pfs_ha::Isel,
12711        P40PfsHa_SPEC,
12712        crate::common::RW,
12713    > {
12714        crate::common::RegisterField::<
12715            14,
12716            0x1,
12717            1,
12718            0,
12719            p40pfs_ha::Isel,
12720            p40pfs_ha::Isel,
12721            P40PfsHa_SPEC,
12722            crate::common::RW,
12723        >::from_register(self, 0)
12724    }
12725
12726    #[doc = "Analog Input Enable"]
12727    #[inline(always)]
12728    pub fn asel(
12729        self,
12730    ) -> crate::common::RegisterField<
12731        15,
12732        0x1,
12733        1,
12734        0,
12735        p40pfs_ha::Asel,
12736        p40pfs_ha::Asel,
12737        P40PfsHa_SPEC,
12738        crate::common::RW,
12739    > {
12740        crate::common::RegisterField::<
12741            15,
12742            0x1,
12743            1,
12744            0,
12745            p40pfs_ha::Asel,
12746            p40pfs_ha::Asel,
12747            P40PfsHa_SPEC,
12748            crate::common::RW,
12749        >::from_register(self, 0)
12750    }
12751}
12752impl ::core::default::Default for P40PfsHa {
12753    #[inline(always)]
12754    fn default() -> P40PfsHa {
12755        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
12756    }
12757}
12758pub mod p40pfs_ha {
12759
12760    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12761    pub struct Podr_SPEC;
12762    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12763    impl Podr {
12764        #[doc = "Output low"]
12765        pub const _0: Self = Self::new(0);
12766
12767        #[doc = "Output high"]
12768        pub const _1: Self = Self::new(1);
12769    }
12770    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12771    pub struct Pidr_SPEC;
12772    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12773    impl Pidr {
12774        #[doc = "Low level"]
12775        pub const _0: Self = Self::new(0);
12776
12777        #[doc = "High level"]
12778        pub const _1: Self = Self::new(1);
12779    }
12780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12781    pub struct Pdr_SPEC;
12782    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12783    impl Pdr {
12784        #[doc = "Input (functions as an input pin)"]
12785        pub const _0: Self = Self::new(0);
12786
12787        #[doc = "Output (functions as an output pin)"]
12788        pub const _1: Self = Self::new(1);
12789    }
12790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12791    pub struct Pcr_SPEC;
12792    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12793    impl Pcr {
12794        #[doc = "Disable input pull-up"]
12795        pub const _0: Self = Self::new(0);
12796
12797        #[doc = "Enable input pull-up"]
12798        pub const _1: Self = Self::new(1);
12799    }
12800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12801    pub struct Ncodr_SPEC;
12802    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12803    impl Ncodr {
12804        #[doc = "Output CMOS"]
12805        pub const _0: Self = Self::new(0);
12806
12807        #[doc = "Output NMOS open-drain"]
12808        pub const _1: Self = Self::new(1);
12809    }
12810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12811    pub struct Eofr_SPEC;
12812    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
12813    impl Eofr {
12814        #[doc = "Don\'t care"]
12815        pub const _00: Self = Self::new(0);
12816
12817        #[doc = "Detect rising edge"]
12818        pub const _01: Self = Self::new(1);
12819
12820        #[doc = "Detect falling edge"]
12821        pub const _10: Self = Self::new(2);
12822
12823        #[doc = "Detect both edges"]
12824        pub const _11: Self = Self::new(3);
12825    }
12826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12827    pub struct Isel_SPEC;
12828    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12829    impl Isel {
12830        #[doc = "Do not use as IRQn input pin"]
12831        pub const _0: Self = Self::new(0);
12832
12833        #[doc = "Use as IRQn input pin"]
12834        pub const _1: Self = Self::new(1);
12835    }
12836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12837    pub struct Asel_SPEC;
12838    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12839    impl Asel {
12840        #[doc = "Do not use as analog pin"]
12841        pub const _0: Self = Self::new(0);
12842
12843        #[doc = "Use as analog pin"]
12844        pub const _1: Self = Self::new(1);
12845    }
12846}
12847#[doc(hidden)]
12848#[derive(Copy, Clone, Eq, PartialEq)]
12849pub struct P40PfsBy_SPEC;
12850impl crate::sealed::RegSpec for P40PfsBy_SPEC {
12851    type DataType = u8;
12852}
12853
12854#[doc = "Port 40%s Pin Function Select Register"]
12855pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
12856
12857impl P40PfsBy {
12858    #[doc = "Port Output Data"]
12859    #[inline(always)]
12860    pub fn podr(
12861        self,
12862    ) -> crate::common::RegisterField<
12863        0,
12864        0x1,
12865        1,
12866        0,
12867        p40pfs_by::Podr,
12868        p40pfs_by::Podr,
12869        P40PfsBy_SPEC,
12870        crate::common::RW,
12871    > {
12872        crate::common::RegisterField::<
12873            0,
12874            0x1,
12875            1,
12876            0,
12877            p40pfs_by::Podr,
12878            p40pfs_by::Podr,
12879            P40PfsBy_SPEC,
12880            crate::common::RW,
12881        >::from_register(self, 0)
12882    }
12883
12884    #[doc = "Port State"]
12885    #[inline(always)]
12886    pub fn pidr(
12887        self,
12888    ) -> crate::common::RegisterField<
12889        1,
12890        0x1,
12891        1,
12892        0,
12893        p40pfs_by::Pidr,
12894        p40pfs_by::Pidr,
12895        P40PfsBy_SPEC,
12896        crate::common::R,
12897    > {
12898        crate::common::RegisterField::<
12899            1,
12900            0x1,
12901            1,
12902            0,
12903            p40pfs_by::Pidr,
12904            p40pfs_by::Pidr,
12905            P40PfsBy_SPEC,
12906            crate::common::R,
12907        >::from_register(self, 0)
12908    }
12909
12910    #[doc = "Port Direction"]
12911    #[inline(always)]
12912    pub fn pdr(
12913        self,
12914    ) -> crate::common::RegisterField<
12915        2,
12916        0x1,
12917        1,
12918        0,
12919        p40pfs_by::Pdr,
12920        p40pfs_by::Pdr,
12921        P40PfsBy_SPEC,
12922        crate::common::RW,
12923    > {
12924        crate::common::RegisterField::<
12925            2,
12926            0x1,
12927            1,
12928            0,
12929            p40pfs_by::Pdr,
12930            p40pfs_by::Pdr,
12931            P40PfsBy_SPEC,
12932            crate::common::RW,
12933        >::from_register(self, 0)
12934    }
12935
12936    #[doc = "Pull-up Control"]
12937    #[inline(always)]
12938    pub fn pcr(
12939        self,
12940    ) -> crate::common::RegisterField<
12941        4,
12942        0x1,
12943        1,
12944        0,
12945        p40pfs_by::Pcr,
12946        p40pfs_by::Pcr,
12947        P40PfsBy_SPEC,
12948        crate::common::RW,
12949    > {
12950        crate::common::RegisterField::<
12951            4,
12952            0x1,
12953            1,
12954            0,
12955            p40pfs_by::Pcr,
12956            p40pfs_by::Pcr,
12957            P40PfsBy_SPEC,
12958            crate::common::RW,
12959        >::from_register(self, 0)
12960    }
12961
12962    #[doc = "N-Channel Open-Drain Control"]
12963    #[inline(always)]
12964    pub fn ncodr(
12965        self,
12966    ) -> crate::common::RegisterField<
12967        6,
12968        0x1,
12969        1,
12970        0,
12971        p40pfs_by::Ncodr,
12972        p40pfs_by::Ncodr,
12973        P40PfsBy_SPEC,
12974        crate::common::RW,
12975    > {
12976        crate::common::RegisterField::<
12977            6,
12978            0x1,
12979            1,
12980            0,
12981            p40pfs_by::Ncodr,
12982            p40pfs_by::Ncodr,
12983            P40PfsBy_SPEC,
12984            crate::common::RW,
12985        >::from_register(self, 0)
12986    }
12987}
12988impl ::core::default::Default for P40PfsBy {
12989    #[inline(always)]
12990    fn default() -> P40PfsBy {
12991        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
12992    }
12993}
12994pub mod p40pfs_by {
12995
12996    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12997    pub struct Podr_SPEC;
12998    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12999    impl Podr {
13000        #[doc = "Output low"]
13001        pub const _0: Self = Self::new(0);
13002
13003        #[doc = "Output high"]
13004        pub const _1: Self = Self::new(1);
13005    }
13006    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13007    pub struct Pidr_SPEC;
13008    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13009    impl Pidr {
13010        #[doc = "Low level"]
13011        pub const _0: Self = Self::new(0);
13012
13013        #[doc = "High level"]
13014        pub const _1: Self = Self::new(1);
13015    }
13016    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13017    pub struct Pdr_SPEC;
13018    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13019    impl Pdr {
13020        #[doc = "Input (functions as an input pin)"]
13021        pub const _0: Self = Self::new(0);
13022
13023        #[doc = "Output (functions as an output pin)"]
13024        pub const _1: Self = Self::new(1);
13025    }
13026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13027    pub struct Pcr_SPEC;
13028    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13029    impl Pcr {
13030        #[doc = "Disable input pull-up"]
13031        pub const _0: Self = Self::new(0);
13032
13033        #[doc = "Enable input pull-up"]
13034        pub const _1: Self = Self::new(1);
13035    }
13036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13037    pub struct Ncodr_SPEC;
13038    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13039    impl Ncodr {
13040        #[doc = "Output CMOS"]
13041        pub const _0: Self = Self::new(0);
13042
13043        #[doc = "Output NMOS open-drain"]
13044        pub const _1: Self = Self::new(1);
13045    }
13046}
13047#[doc(hidden)]
13048#[derive(Copy, Clone, Eq, PartialEq)]
13049pub struct P4Pfs_SPEC;
13050impl crate::sealed::RegSpec for P4Pfs_SPEC {
13051    type DataType = u32;
13052}
13053
13054#[doc = "Port 4%s Pin Function Select Register"]
13055pub type P4Pfs = crate::RegValueT<P4Pfs_SPEC>;
13056
13057impl P4Pfs {
13058    #[doc = "Port Output Data"]
13059    #[inline(always)]
13060    pub fn podr(
13061        self,
13062    ) -> crate::common::RegisterField<
13063        0,
13064        0x1,
13065        1,
13066        0,
13067        p4pfs::Podr,
13068        p4pfs::Podr,
13069        P4Pfs_SPEC,
13070        crate::common::RW,
13071    > {
13072        crate::common::RegisterField::<
13073            0,
13074            0x1,
13075            1,
13076            0,
13077            p4pfs::Podr,
13078            p4pfs::Podr,
13079            P4Pfs_SPEC,
13080            crate::common::RW,
13081        >::from_register(self, 0)
13082    }
13083
13084    #[doc = "Port State"]
13085    #[inline(always)]
13086    pub fn pidr(
13087        self,
13088    ) -> crate::common::RegisterField<
13089        1,
13090        0x1,
13091        1,
13092        0,
13093        p4pfs::Pidr,
13094        p4pfs::Pidr,
13095        P4Pfs_SPEC,
13096        crate::common::R,
13097    > {
13098        crate::common::RegisterField::<
13099            1,
13100            0x1,
13101            1,
13102            0,
13103            p4pfs::Pidr,
13104            p4pfs::Pidr,
13105            P4Pfs_SPEC,
13106            crate::common::R,
13107        >::from_register(self, 0)
13108    }
13109
13110    #[doc = "Port Direction"]
13111    #[inline(always)]
13112    pub fn pdr(
13113        self,
13114    ) -> crate::common::RegisterField<
13115        2,
13116        0x1,
13117        1,
13118        0,
13119        p4pfs::Pdr,
13120        p4pfs::Pdr,
13121        P4Pfs_SPEC,
13122        crate::common::RW,
13123    > {
13124        crate::common::RegisterField::<
13125            2,
13126            0x1,
13127            1,
13128            0,
13129            p4pfs::Pdr,
13130            p4pfs::Pdr,
13131            P4Pfs_SPEC,
13132            crate::common::RW,
13133        >::from_register(self, 0)
13134    }
13135
13136    #[doc = "Pull-up Control"]
13137    #[inline(always)]
13138    pub fn pcr(
13139        self,
13140    ) -> crate::common::RegisterField<
13141        4,
13142        0x1,
13143        1,
13144        0,
13145        p4pfs::Pcr,
13146        p4pfs::Pcr,
13147        P4Pfs_SPEC,
13148        crate::common::RW,
13149    > {
13150        crate::common::RegisterField::<
13151            4,
13152            0x1,
13153            1,
13154            0,
13155            p4pfs::Pcr,
13156            p4pfs::Pcr,
13157            P4Pfs_SPEC,
13158            crate::common::RW,
13159        >::from_register(self, 0)
13160    }
13161
13162    #[doc = "N-Channel Open-Drain Control"]
13163    #[inline(always)]
13164    pub fn ncodr(
13165        self,
13166    ) -> crate::common::RegisterField<
13167        6,
13168        0x1,
13169        1,
13170        0,
13171        p4pfs::Ncodr,
13172        p4pfs::Ncodr,
13173        P4Pfs_SPEC,
13174        crate::common::RW,
13175    > {
13176        crate::common::RegisterField::<
13177            6,
13178            0x1,
13179            1,
13180            0,
13181            p4pfs::Ncodr,
13182            p4pfs::Ncodr,
13183            P4Pfs_SPEC,
13184            crate::common::RW,
13185        >::from_register(self, 0)
13186    }
13187
13188    #[doc = "Event on Falling/Event on Rising"]
13189    #[inline(always)]
13190    pub fn eofr(
13191        self,
13192    ) -> crate::common::RegisterField<
13193        12,
13194        0x3,
13195        1,
13196        0,
13197        p4pfs::Eofr,
13198        p4pfs::Eofr,
13199        P4Pfs_SPEC,
13200        crate::common::RW,
13201    > {
13202        crate::common::RegisterField::<
13203            12,
13204            0x3,
13205            1,
13206            0,
13207            p4pfs::Eofr,
13208            p4pfs::Eofr,
13209            P4Pfs_SPEC,
13210            crate::common::RW,
13211        >::from_register(self, 0)
13212    }
13213
13214    #[doc = "IRQ Input Enable"]
13215    #[inline(always)]
13216    pub fn isel(
13217        self,
13218    ) -> crate::common::RegisterField<
13219        14,
13220        0x1,
13221        1,
13222        0,
13223        p4pfs::Isel,
13224        p4pfs::Isel,
13225        P4Pfs_SPEC,
13226        crate::common::RW,
13227    > {
13228        crate::common::RegisterField::<
13229            14,
13230            0x1,
13231            1,
13232            0,
13233            p4pfs::Isel,
13234            p4pfs::Isel,
13235            P4Pfs_SPEC,
13236            crate::common::RW,
13237        >::from_register(self, 0)
13238    }
13239
13240    #[doc = "Analog Input Enable"]
13241    #[inline(always)]
13242    pub fn asel(
13243        self,
13244    ) -> crate::common::RegisterField<
13245        15,
13246        0x1,
13247        1,
13248        0,
13249        p4pfs::Asel,
13250        p4pfs::Asel,
13251        P4Pfs_SPEC,
13252        crate::common::RW,
13253    > {
13254        crate::common::RegisterField::<
13255            15,
13256            0x1,
13257            1,
13258            0,
13259            p4pfs::Asel,
13260            p4pfs::Asel,
13261            P4Pfs_SPEC,
13262            crate::common::RW,
13263        >::from_register(self, 0)
13264    }
13265
13266    #[doc = "Port Mode Control"]
13267    #[inline(always)]
13268    pub fn pmr(
13269        self,
13270    ) -> crate::common::RegisterField<
13271        16,
13272        0x1,
13273        1,
13274        0,
13275        p4pfs::Pmr,
13276        p4pfs::Pmr,
13277        P4Pfs_SPEC,
13278        crate::common::RW,
13279    > {
13280        crate::common::RegisterField::<
13281            16,
13282            0x1,
13283            1,
13284            0,
13285            p4pfs::Pmr,
13286            p4pfs::Pmr,
13287            P4Pfs_SPEC,
13288            crate::common::RW,
13289        >::from_register(self, 0)
13290    }
13291
13292    #[doc = "Peripheral Select"]
13293    #[inline(always)]
13294    pub fn psel(
13295        self,
13296    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P4Pfs_SPEC, crate::common::RW> {
13297        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P4Pfs_SPEC,crate::common::RW>::from_register(self,0)
13298    }
13299}
13300impl ::core::default::Default for P4Pfs {
13301    #[inline(always)]
13302    fn default() -> P4Pfs {
13303        <crate::RegValueT<P4Pfs_SPEC> as RegisterValue<_>>::new(0)
13304    }
13305}
13306pub mod p4pfs {
13307
13308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13309    pub struct Podr_SPEC;
13310    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13311    impl Podr {
13312        #[doc = "Output low"]
13313        pub const _0: Self = Self::new(0);
13314
13315        #[doc = "Output high"]
13316        pub const _1: Self = Self::new(1);
13317    }
13318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13319    pub struct Pidr_SPEC;
13320    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13321    impl Pidr {
13322        #[doc = "Low level"]
13323        pub const _0: Self = Self::new(0);
13324
13325        #[doc = "High level"]
13326        pub const _1: Self = Self::new(1);
13327    }
13328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13329    pub struct Pdr_SPEC;
13330    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13331    impl Pdr {
13332        #[doc = "Input (functions as an input pin)"]
13333        pub const _0: Self = Self::new(0);
13334
13335        #[doc = "Output (functions as an output pin)"]
13336        pub const _1: Self = Self::new(1);
13337    }
13338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13339    pub struct Pcr_SPEC;
13340    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13341    impl Pcr {
13342        #[doc = "Disable input pull-up"]
13343        pub const _0: Self = Self::new(0);
13344
13345        #[doc = "Enable input pull-up"]
13346        pub const _1: Self = Self::new(1);
13347    }
13348    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13349    pub struct Ncodr_SPEC;
13350    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13351    impl Ncodr {
13352        #[doc = "Output CMOS"]
13353        pub const _0: Self = Self::new(0);
13354
13355        #[doc = "Output NMOS open-drain"]
13356        pub const _1: Self = Self::new(1);
13357    }
13358    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13359    pub struct Eofr_SPEC;
13360    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
13361    impl Eofr {
13362        #[doc = "Don\'t care"]
13363        pub const _00: Self = Self::new(0);
13364
13365        #[doc = "Detect rising edge"]
13366        pub const _01: Self = Self::new(1);
13367
13368        #[doc = "Detect falling edge"]
13369        pub const _10: Self = Self::new(2);
13370
13371        #[doc = "Detect both edges"]
13372        pub const _11: Self = Self::new(3);
13373    }
13374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13375    pub struct Isel_SPEC;
13376    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13377    impl Isel {
13378        #[doc = "Do not use as IRQn input pin"]
13379        pub const _0: Self = Self::new(0);
13380
13381        #[doc = "Use as IRQn input pin"]
13382        pub const _1: Self = Self::new(1);
13383    }
13384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13385    pub struct Asel_SPEC;
13386    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13387    impl Asel {
13388        #[doc = "Do not use as analog pin"]
13389        pub const _0: Self = Self::new(0);
13390
13391        #[doc = "Use as analog pin"]
13392        pub const _1: Self = Self::new(1);
13393    }
13394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13395    pub struct Pmr_SPEC;
13396    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13397    impl Pmr {
13398        #[doc = "Use as general I/O pin"]
13399        pub const _0: Self = Self::new(0);
13400
13401        #[doc = "Use as I/O port for peripheral functions"]
13402        pub const _1: Self = Self::new(1);
13403    }
13404}
13405#[doc(hidden)]
13406#[derive(Copy, Clone, Eq, PartialEq)]
13407pub struct P4PfsHa_SPEC;
13408impl crate::sealed::RegSpec for P4PfsHa_SPEC {
13409    type DataType = u16;
13410}
13411
13412#[doc = "Port 4%s Pin Function Select Register"]
13413pub type P4PfsHa = crate::RegValueT<P4PfsHa_SPEC>;
13414
13415impl P4PfsHa {
13416    #[doc = "Port Output Data"]
13417    #[inline(always)]
13418    pub fn podr(
13419        self,
13420    ) -> crate::common::RegisterField<
13421        0,
13422        0x1,
13423        1,
13424        0,
13425        p4pfs_ha::Podr,
13426        p4pfs_ha::Podr,
13427        P4PfsHa_SPEC,
13428        crate::common::RW,
13429    > {
13430        crate::common::RegisterField::<
13431            0,
13432            0x1,
13433            1,
13434            0,
13435            p4pfs_ha::Podr,
13436            p4pfs_ha::Podr,
13437            P4PfsHa_SPEC,
13438            crate::common::RW,
13439        >::from_register(self, 0)
13440    }
13441
13442    #[doc = "Port State"]
13443    #[inline(always)]
13444    pub fn pidr(
13445        self,
13446    ) -> crate::common::RegisterField<
13447        1,
13448        0x1,
13449        1,
13450        0,
13451        p4pfs_ha::Pidr,
13452        p4pfs_ha::Pidr,
13453        P4PfsHa_SPEC,
13454        crate::common::R,
13455    > {
13456        crate::common::RegisterField::<
13457            1,
13458            0x1,
13459            1,
13460            0,
13461            p4pfs_ha::Pidr,
13462            p4pfs_ha::Pidr,
13463            P4PfsHa_SPEC,
13464            crate::common::R,
13465        >::from_register(self, 0)
13466    }
13467
13468    #[doc = "Port Direction"]
13469    #[inline(always)]
13470    pub fn pdr(
13471        self,
13472    ) -> crate::common::RegisterField<
13473        2,
13474        0x1,
13475        1,
13476        0,
13477        p4pfs_ha::Pdr,
13478        p4pfs_ha::Pdr,
13479        P4PfsHa_SPEC,
13480        crate::common::RW,
13481    > {
13482        crate::common::RegisterField::<
13483            2,
13484            0x1,
13485            1,
13486            0,
13487            p4pfs_ha::Pdr,
13488            p4pfs_ha::Pdr,
13489            P4PfsHa_SPEC,
13490            crate::common::RW,
13491        >::from_register(self, 0)
13492    }
13493
13494    #[doc = "Pull-up Control"]
13495    #[inline(always)]
13496    pub fn pcr(
13497        self,
13498    ) -> crate::common::RegisterField<
13499        4,
13500        0x1,
13501        1,
13502        0,
13503        p4pfs_ha::Pcr,
13504        p4pfs_ha::Pcr,
13505        P4PfsHa_SPEC,
13506        crate::common::RW,
13507    > {
13508        crate::common::RegisterField::<
13509            4,
13510            0x1,
13511            1,
13512            0,
13513            p4pfs_ha::Pcr,
13514            p4pfs_ha::Pcr,
13515            P4PfsHa_SPEC,
13516            crate::common::RW,
13517        >::from_register(self, 0)
13518    }
13519
13520    #[doc = "N-Channel Open-Drain Control"]
13521    #[inline(always)]
13522    pub fn ncodr(
13523        self,
13524    ) -> crate::common::RegisterField<
13525        6,
13526        0x1,
13527        1,
13528        0,
13529        p4pfs_ha::Ncodr,
13530        p4pfs_ha::Ncodr,
13531        P4PfsHa_SPEC,
13532        crate::common::RW,
13533    > {
13534        crate::common::RegisterField::<
13535            6,
13536            0x1,
13537            1,
13538            0,
13539            p4pfs_ha::Ncodr,
13540            p4pfs_ha::Ncodr,
13541            P4PfsHa_SPEC,
13542            crate::common::RW,
13543        >::from_register(self, 0)
13544    }
13545
13546    #[doc = "Event on Falling/Event on Rising"]
13547    #[inline(always)]
13548    pub fn eofr(
13549        self,
13550    ) -> crate::common::RegisterField<
13551        12,
13552        0x3,
13553        1,
13554        0,
13555        p4pfs_ha::Eofr,
13556        p4pfs_ha::Eofr,
13557        P4PfsHa_SPEC,
13558        crate::common::RW,
13559    > {
13560        crate::common::RegisterField::<
13561            12,
13562            0x3,
13563            1,
13564            0,
13565            p4pfs_ha::Eofr,
13566            p4pfs_ha::Eofr,
13567            P4PfsHa_SPEC,
13568            crate::common::RW,
13569        >::from_register(self, 0)
13570    }
13571
13572    #[doc = "IRQ Input Enable"]
13573    #[inline(always)]
13574    pub fn isel(
13575        self,
13576    ) -> crate::common::RegisterField<
13577        14,
13578        0x1,
13579        1,
13580        0,
13581        p4pfs_ha::Isel,
13582        p4pfs_ha::Isel,
13583        P4PfsHa_SPEC,
13584        crate::common::RW,
13585    > {
13586        crate::common::RegisterField::<
13587            14,
13588            0x1,
13589            1,
13590            0,
13591            p4pfs_ha::Isel,
13592            p4pfs_ha::Isel,
13593            P4PfsHa_SPEC,
13594            crate::common::RW,
13595        >::from_register(self, 0)
13596    }
13597
13598    #[doc = "Analog Input Enable"]
13599    #[inline(always)]
13600    pub fn asel(
13601        self,
13602    ) -> crate::common::RegisterField<
13603        15,
13604        0x1,
13605        1,
13606        0,
13607        p4pfs_ha::Asel,
13608        p4pfs_ha::Asel,
13609        P4PfsHa_SPEC,
13610        crate::common::RW,
13611    > {
13612        crate::common::RegisterField::<
13613            15,
13614            0x1,
13615            1,
13616            0,
13617            p4pfs_ha::Asel,
13618            p4pfs_ha::Asel,
13619            P4PfsHa_SPEC,
13620            crate::common::RW,
13621        >::from_register(self, 0)
13622    }
13623}
13624impl ::core::default::Default for P4PfsHa {
13625    #[inline(always)]
13626    fn default() -> P4PfsHa {
13627        <crate::RegValueT<P4PfsHa_SPEC> as RegisterValue<_>>::new(0)
13628    }
13629}
13630pub mod p4pfs_ha {
13631
13632    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13633    pub struct Podr_SPEC;
13634    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13635    impl Podr {
13636        #[doc = "Output low"]
13637        pub const _0: Self = Self::new(0);
13638
13639        #[doc = "Output high"]
13640        pub const _1: Self = Self::new(1);
13641    }
13642    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13643    pub struct Pidr_SPEC;
13644    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13645    impl Pidr {
13646        #[doc = "Low level"]
13647        pub const _0: Self = Self::new(0);
13648
13649        #[doc = "High level"]
13650        pub const _1: Self = Self::new(1);
13651    }
13652    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13653    pub struct Pdr_SPEC;
13654    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13655    impl Pdr {
13656        #[doc = "Input (functions as an input pin)"]
13657        pub const _0: Self = Self::new(0);
13658
13659        #[doc = "Output (functions as an output pin)"]
13660        pub const _1: Self = Self::new(1);
13661    }
13662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13663    pub struct Pcr_SPEC;
13664    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13665    impl Pcr {
13666        #[doc = "Disable input pull-up"]
13667        pub const _0: Self = Self::new(0);
13668
13669        #[doc = "Enable input pull-up"]
13670        pub const _1: Self = Self::new(1);
13671    }
13672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13673    pub struct Ncodr_SPEC;
13674    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13675    impl Ncodr {
13676        #[doc = "Output CMOS"]
13677        pub const _0: Self = Self::new(0);
13678
13679        #[doc = "Output NMOS open-drain"]
13680        pub const _1: Self = Self::new(1);
13681    }
13682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13683    pub struct Eofr_SPEC;
13684    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
13685    impl Eofr {
13686        #[doc = "Don\'t care"]
13687        pub const _00: Self = Self::new(0);
13688
13689        #[doc = "Detect rising edge"]
13690        pub const _01: Self = Self::new(1);
13691
13692        #[doc = "Detect falling edge"]
13693        pub const _10: Self = Self::new(2);
13694
13695        #[doc = "Detect both edges"]
13696        pub const _11: Self = Self::new(3);
13697    }
13698    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13699    pub struct Isel_SPEC;
13700    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13701    impl Isel {
13702        #[doc = "Do not use as IRQn input pin"]
13703        pub const _0: Self = Self::new(0);
13704
13705        #[doc = "Use as IRQn input pin"]
13706        pub const _1: Self = Self::new(1);
13707    }
13708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13709    pub struct Asel_SPEC;
13710    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13711    impl Asel {
13712        #[doc = "Do not use as analog pin"]
13713        pub const _0: Self = Self::new(0);
13714
13715        #[doc = "Use as analog pin"]
13716        pub const _1: Self = Self::new(1);
13717    }
13718}
13719#[doc(hidden)]
13720#[derive(Copy, Clone, Eq, PartialEq)]
13721pub struct P4PfsBy_SPEC;
13722impl crate::sealed::RegSpec for P4PfsBy_SPEC {
13723    type DataType = u8;
13724}
13725
13726#[doc = "Port 4%s Pin Function Select Register"]
13727pub type P4PfsBy = crate::RegValueT<P4PfsBy_SPEC>;
13728
13729impl P4PfsBy {
13730    #[doc = "Port Output Data"]
13731    #[inline(always)]
13732    pub fn podr(
13733        self,
13734    ) -> crate::common::RegisterField<
13735        0,
13736        0x1,
13737        1,
13738        0,
13739        p4pfs_by::Podr,
13740        p4pfs_by::Podr,
13741        P4PfsBy_SPEC,
13742        crate::common::RW,
13743    > {
13744        crate::common::RegisterField::<
13745            0,
13746            0x1,
13747            1,
13748            0,
13749            p4pfs_by::Podr,
13750            p4pfs_by::Podr,
13751            P4PfsBy_SPEC,
13752            crate::common::RW,
13753        >::from_register(self, 0)
13754    }
13755
13756    #[doc = "Port State"]
13757    #[inline(always)]
13758    pub fn pidr(
13759        self,
13760    ) -> crate::common::RegisterField<
13761        1,
13762        0x1,
13763        1,
13764        0,
13765        p4pfs_by::Pidr,
13766        p4pfs_by::Pidr,
13767        P4PfsBy_SPEC,
13768        crate::common::R,
13769    > {
13770        crate::common::RegisterField::<
13771            1,
13772            0x1,
13773            1,
13774            0,
13775            p4pfs_by::Pidr,
13776            p4pfs_by::Pidr,
13777            P4PfsBy_SPEC,
13778            crate::common::R,
13779        >::from_register(self, 0)
13780    }
13781
13782    #[doc = "Port Direction"]
13783    #[inline(always)]
13784    pub fn pdr(
13785        self,
13786    ) -> crate::common::RegisterField<
13787        2,
13788        0x1,
13789        1,
13790        0,
13791        p4pfs_by::Pdr,
13792        p4pfs_by::Pdr,
13793        P4PfsBy_SPEC,
13794        crate::common::RW,
13795    > {
13796        crate::common::RegisterField::<
13797            2,
13798            0x1,
13799            1,
13800            0,
13801            p4pfs_by::Pdr,
13802            p4pfs_by::Pdr,
13803            P4PfsBy_SPEC,
13804            crate::common::RW,
13805        >::from_register(self, 0)
13806    }
13807
13808    #[doc = "Pull-up Control"]
13809    #[inline(always)]
13810    pub fn pcr(
13811        self,
13812    ) -> crate::common::RegisterField<
13813        4,
13814        0x1,
13815        1,
13816        0,
13817        p4pfs_by::Pcr,
13818        p4pfs_by::Pcr,
13819        P4PfsBy_SPEC,
13820        crate::common::RW,
13821    > {
13822        crate::common::RegisterField::<
13823            4,
13824            0x1,
13825            1,
13826            0,
13827            p4pfs_by::Pcr,
13828            p4pfs_by::Pcr,
13829            P4PfsBy_SPEC,
13830            crate::common::RW,
13831        >::from_register(self, 0)
13832    }
13833
13834    #[doc = "N-Channel Open-Drain Control"]
13835    #[inline(always)]
13836    pub fn ncodr(
13837        self,
13838    ) -> crate::common::RegisterField<
13839        6,
13840        0x1,
13841        1,
13842        0,
13843        p4pfs_by::Ncodr,
13844        p4pfs_by::Ncodr,
13845        P4PfsBy_SPEC,
13846        crate::common::RW,
13847    > {
13848        crate::common::RegisterField::<
13849            6,
13850            0x1,
13851            1,
13852            0,
13853            p4pfs_by::Ncodr,
13854            p4pfs_by::Ncodr,
13855            P4PfsBy_SPEC,
13856            crate::common::RW,
13857        >::from_register(self, 0)
13858    }
13859}
13860impl ::core::default::Default for P4PfsBy {
13861    #[inline(always)]
13862    fn default() -> P4PfsBy {
13863        <crate::RegValueT<P4PfsBy_SPEC> as RegisterValue<_>>::new(0)
13864    }
13865}
13866pub mod p4pfs_by {
13867
13868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13869    pub struct Podr_SPEC;
13870    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13871    impl Podr {
13872        #[doc = "Output low"]
13873        pub const _0: Self = Self::new(0);
13874
13875        #[doc = "Output high"]
13876        pub const _1: Self = Self::new(1);
13877    }
13878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13879    pub struct Pidr_SPEC;
13880    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13881    impl Pidr {
13882        #[doc = "Low level"]
13883        pub const _0: Self = Self::new(0);
13884
13885        #[doc = "High level"]
13886        pub const _1: Self = Self::new(1);
13887    }
13888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13889    pub struct Pdr_SPEC;
13890    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13891    impl Pdr {
13892        #[doc = "Input (functions as an input pin)"]
13893        pub const _0: Self = Self::new(0);
13894
13895        #[doc = "Output (functions as an output pin)"]
13896        pub const _1: Self = Self::new(1);
13897    }
13898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13899    pub struct Pcr_SPEC;
13900    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13901    impl Pcr {
13902        #[doc = "Disable input pull-up"]
13903        pub const _0: Self = Self::new(0);
13904
13905        #[doc = "Enable input pull-up"]
13906        pub const _1: Self = Self::new(1);
13907    }
13908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13909    pub struct Ncodr_SPEC;
13910    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13911    impl Ncodr {
13912        #[doc = "Output CMOS"]
13913        pub const _0: Self = Self::new(0);
13914
13915        #[doc = "Output NMOS open-drain"]
13916        pub const _1: Self = Self::new(1);
13917    }
13918}
13919#[doc(hidden)]
13920#[derive(Copy, Clone, Eq, PartialEq)]
13921pub struct P50Pfs_SPEC;
13922impl crate::sealed::RegSpec for P50Pfs_SPEC {
13923    type DataType = u32;
13924}
13925
13926#[doc = "Port 50%s Pin Function Select Register"]
13927pub type P50Pfs = crate::RegValueT<P50Pfs_SPEC>;
13928
13929impl P50Pfs {
13930    #[doc = "Port Output Data"]
13931    #[inline(always)]
13932    pub fn podr(
13933        self,
13934    ) -> crate::common::RegisterField<
13935        0,
13936        0x1,
13937        1,
13938        0,
13939        p50pfs::Podr,
13940        p50pfs::Podr,
13941        P50Pfs_SPEC,
13942        crate::common::RW,
13943    > {
13944        crate::common::RegisterField::<
13945            0,
13946            0x1,
13947            1,
13948            0,
13949            p50pfs::Podr,
13950            p50pfs::Podr,
13951            P50Pfs_SPEC,
13952            crate::common::RW,
13953        >::from_register(self, 0)
13954    }
13955
13956    #[doc = "Port State"]
13957    #[inline(always)]
13958    pub fn pidr(
13959        self,
13960    ) -> crate::common::RegisterField<
13961        1,
13962        0x1,
13963        1,
13964        0,
13965        p50pfs::Pidr,
13966        p50pfs::Pidr,
13967        P50Pfs_SPEC,
13968        crate::common::R,
13969    > {
13970        crate::common::RegisterField::<
13971            1,
13972            0x1,
13973            1,
13974            0,
13975            p50pfs::Pidr,
13976            p50pfs::Pidr,
13977            P50Pfs_SPEC,
13978            crate::common::R,
13979        >::from_register(self, 0)
13980    }
13981
13982    #[doc = "Port Direction"]
13983    #[inline(always)]
13984    pub fn pdr(
13985        self,
13986    ) -> crate::common::RegisterField<
13987        2,
13988        0x1,
13989        1,
13990        0,
13991        p50pfs::Pdr,
13992        p50pfs::Pdr,
13993        P50Pfs_SPEC,
13994        crate::common::RW,
13995    > {
13996        crate::common::RegisterField::<
13997            2,
13998            0x1,
13999            1,
14000            0,
14001            p50pfs::Pdr,
14002            p50pfs::Pdr,
14003            P50Pfs_SPEC,
14004            crate::common::RW,
14005        >::from_register(self, 0)
14006    }
14007
14008    #[doc = "Pull-up Control"]
14009    #[inline(always)]
14010    pub fn pcr(
14011        self,
14012    ) -> crate::common::RegisterField<
14013        4,
14014        0x1,
14015        1,
14016        0,
14017        p50pfs::Pcr,
14018        p50pfs::Pcr,
14019        P50Pfs_SPEC,
14020        crate::common::RW,
14021    > {
14022        crate::common::RegisterField::<
14023            4,
14024            0x1,
14025            1,
14026            0,
14027            p50pfs::Pcr,
14028            p50pfs::Pcr,
14029            P50Pfs_SPEC,
14030            crate::common::RW,
14031        >::from_register(self, 0)
14032    }
14033
14034    #[doc = "N-Channel Open-Drain Control"]
14035    #[inline(always)]
14036    pub fn ncodr(
14037        self,
14038    ) -> crate::common::RegisterField<
14039        6,
14040        0x1,
14041        1,
14042        0,
14043        p50pfs::Ncodr,
14044        p50pfs::Ncodr,
14045        P50Pfs_SPEC,
14046        crate::common::RW,
14047    > {
14048        crate::common::RegisterField::<
14049            6,
14050            0x1,
14051            1,
14052            0,
14053            p50pfs::Ncodr,
14054            p50pfs::Ncodr,
14055            P50Pfs_SPEC,
14056            crate::common::RW,
14057        >::from_register(self, 0)
14058    }
14059
14060    #[doc = "IRQ Input Enable"]
14061    #[inline(always)]
14062    pub fn isel(
14063        self,
14064    ) -> crate::common::RegisterField<
14065        14,
14066        0x1,
14067        1,
14068        0,
14069        p50pfs::Isel,
14070        p50pfs::Isel,
14071        P50Pfs_SPEC,
14072        crate::common::RW,
14073    > {
14074        crate::common::RegisterField::<
14075            14,
14076            0x1,
14077            1,
14078            0,
14079            p50pfs::Isel,
14080            p50pfs::Isel,
14081            P50Pfs_SPEC,
14082            crate::common::RW,
14083        >::from_register(self, 0)
14084    }
14085
14086    #[doc = "Analog Input Enable"]
14087    #[inline(always)]
14088    pub fn asel(
14089        self,
14090    ) -> crate::common::RegisterField<
14091        15,
14092        0x1,
14093        1,
14094        0,
14095        p50pfs::Asel,
14096        p50pfs::Asel,
14097        P50Pfs_SPEC,
14098        crate::common::RW,
14099    > {
14100        crate::common::RegisterField::<
14101            15,
14102            0x1,
14103            1,
14104            0,
14105            p50pfs::Asel,
14106            p50pfs::Asel,
14107            P50Pfs_SPEC,
14108            crate::common::RW,
14109        >::from_register(self, 0)
14110    }
14111
14112    #[doc = "Port Mode Control"]
14113    #[inline(always)]
14114    pub fn pmr(
14115        self,
14116    ) -> crate::common::RegisterField<
14117        16,
14118        0x1,
14119        1,
14120        0,
14121        p50pfs::Pmr,
14122        p50pfs::Pmr,
14123        P50Pfs_SPEC,
14124        crate::common::RW,
14125    > {
14126        crate::common::RegisterField::<
14127            16,
14128            0x1,
14129            1,
14130            0,
14131            p50pfs::Pmr,
14132            p50pfs::Pmr,
14133            P50Pfs_SPEC,
14134            crate::common::RW,
14135        >::from_register(self, 0)
14136    }
14137
14138    #[doc = "Peripheral Select"]
14139    #[inline(always)]
14140    pub fn psel(
14141        self,
14142    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P50Pfs_SPEC, crate::common::RW> {
14143        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P50Pfs_SPEC,crate::common::RW>::from_register(self,0)
14144    }
14145}
14146impl ::core::default::Default for P50Pfs {
14147    #[inline(always)]
14148    fn default() -> P50Pfs {
14149        <crate::RegValueT<P50Pfs_SPEC> as RegisterValue<_>>::new(0)
14150    }
14151}
14152pub mod p50pfs {
14153
14154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14155    pub struct Podr_SPEC;
14156    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14157    impl Podr {
14158        #[doc = "Output low"]
14159        pub const _0: Self = Self::new(0);
14160
14161        #[doc = "Output high"]
14162        pub const _1: Self = Self::new(1);
14163    }
14164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14165    pub struct Pidr_SPEC;
14166    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14167    impl Pidr {
14168        #[doc = "Low level"]
14169        pub const _0: Self = Self::new(0);
14170
14171        #[doc = "High level"]
14172        pub const _1: Self = Self::new(1);
14173    }
14174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14175    pub struct Pdr_SPEC;
14176    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14177    impl Pdr {
14178        #[doc = "Input (functions as an input pin)"]
14179        pub const _0: Self = Self::new(0);
14180
14181        #[doc = "Output (functions as an output pin)"]
14182        pub const _1: Self = Self::new(1);
14183    }
14184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14185    pub struct Pcr_SPEC;
14186    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14187    impl Pcr {
14188        #[doc = "Disable input pull-up"]
14189        pub const _0: Self = Self::new(0);
14190
14191        #[doc = "Enable input pull-up"]
14192        pub const _1: Self = Self::new(1);
14193    }
14194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14195    pub struct Ncodr_SPEC;
14196    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14197    impl Ncodr {
14198        #[doc = "Output CMOS"]
14199        pub const _0: Self = Self::new(0);
14200
14201        #[doc = "Output NMOS open-drain"]
14202        pub const _1: Self = Self::new(1);
14203    }
14204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14205    pub struct Isel_SPEC;
14206    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14207    impl Isel {
14208        #[doc = "Do not use as IRQn input pin"]
14209        pub const _0: Self = Self::new(0);
14210
14211        #[doc = "Use as IRQn input pin"]
14212        pub const _1: Self = Self::new(1);
14213    }
14214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14215    pub struct Asel_SPEC;
14216    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14217    impl Asel {
14218        #[doc = "Do not use as analog pin"]
14219        pub const _0: Self = Self::new(0);
14220
14221        #[doc = "Use as analog pin"]
14222        pub const _1: Self = Self::new(1);
14223    }
14224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14225    pub struct Pmr_SPEC;
14226    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
14227    impl Pmr {
14228        #[doc = "Use as general I/O pin"]
14229        pub const _0: Self = Self::new(0);
14230
14231        #[doc = "Use as I/O port for peripheral functions"]
14232        pub const _1: Self = Self::new(1);
14233    }
14234}
14235#[doc(hidden)]
14236#[derive(Copy, Clone, Eq, PartialEq)]
14237pub struct P50PfsHa_SPEC;
14238impl crate::sealed::RegSpec for P50PfsHa_SPEC {
14239    type DataType = u16;
14240}
14241
14242#[doc = "Port 50%s Pin Function Select Register"]
14243pub type P50PfsHa = crate::RegValueT<P50PfsHa_SPEC>;
14244
14245impl P50PfsHa {
14246    #[doc = "Port Output Data"]
14247    #[inline(always)]
14248    pub fn podr(
14249        self,
14250    ) -> crate::common::RegisterField<
14251        0,
14252        0x1,
14253        1,
14254        0,
14255        p50pfs_ha::Podr,
14256        p50pfs_ha::Podr,
14257        P50PfsHa_SPEC,
14258        crate::common::RW,
14259    > {
14260        crate::common::RegisterField::<
14261            0,
14262            0x1,
14263            1,
14264            0,
14265            p50pfs_ha::Podr,
14266            p50pfs_ha::Podr,
14267            P50PfsHa_SPEC,
14268            crate::common::RW,
14269        >::from_register(self, 0)
14270    }
14271
14272    #[doc = "Port State"]
14273    #[inline(always)]
14274    pub fn pidr(
14275        self,
14276    ) -> crate::common::RegisterField<
14277        1,
14278        0x1,
14279        1,
14280        0,
14281        p50pfs_ha::Pidr,
14282        p50pfs_ha::Pidr,
14283        P50PfsHa_SPEC,
14284        crate::common::R,
14285    > {
14286        crate::common::RegisterField::<
14287            1,
14288            0x1,
14289            1,
14290            0,
14291            p50pfs_ha::Pidr,
14292            p50pfs_ha::Pidr,
14293            P50PfsHa_SPEC,
14294            crate::common::R,
14295        >::from_register(self, 0)
14296    }
14297
14298    #[doc = "Port Direction"]
14299    #[inline(always)]
14300    pub fn pdr(
14301        self,
14302    ) -> crate::common::RegisterField<
14303        2,
14304        0x1,
14305        1,
14306        0,
14307        p50pfs_ha::Pdr,
14308        p50pfs_ha::Pdr,
14309        P50PfsHa_SPEC,
14310        crate::common::RW,
14311    > {
14312        crate::common::RegisterField::<
14313            2,
14314            0x1,
14315            1,
14316            0,
14317            p50pfs_ha::Pdr,
14318            p50pfs_ha::Pdr,
14319            P50PfsHa_SPEC,
14320            crate::common::RW,
14321        >::from_register(self, 0)
14322    }
14323
14324    #[doc = "Pull-up Control"]
14325    #[inline(always)]
14326    pub fn pcr(
14327        self,
14328    ) -> crate::common::RegisterField<
14329        4,
14330        0x1,
14331        1,
14332        0,
14333        p50pfs_ha::Pcr,
14334        p50pfs_ha::Pcr,
14335        P50PfsHa_SPEC,
14336        crate::common::RW,
14337    > {
14338        crate::common::RegisterField::<
14339            4,
14340            0x1,
14341            1,
14342            0,
14343            p50pfs_ha::Pcr,
14344            p50pfs_ha::Pcr,
14345            P50PfsHa_SPEC,
14346            crate::common::RW,
14347        >::from_register(self, 0)
14348    }
14349
14350    #[doc = "N-Channel Open-Drain Control"]
14351    #[inline(always)]
14352    pub fn ncodr(
14353        self,
14354    ) -> crate::common::RegisterField<
14355        6,
14356        0x1,
14357        1,
14358        0,
14359        p50pfs_ha::Ncodr,
14360        p50pfs_ha::Ncodr,
14361        P50PfsHa_SPEC,
14362        crate::common::RW,
14363    > {
14364        crate::common::RegisterField::<
14365            6,
14366            0x1,
14367            1,
14368            0,
14369            p50pfs_ha::Ncodr,
14370            p50pfs_ha::Ncodr,
14371            P50PfsHa_SPEC,
14372            crate::common::RW,
14373        >::from_register(self, 0)
14374    }
14375
14376    #[doc = "IRQ Input Enable"]
14377    #[inline(always)]
14378    pub fn isel(
14379        self,
14380    ) -> crate::common::RegisterField<
14381        14,
14382        0x1,
14383        1,
14384        0,
14385        p50pfs_ha::Isel,
14386        p50pfs_ha::Isel,
14387        P50PfsHa_SPEC,
14388        crate::common::RW,
14389    > {
14390        crate::common::RegisterField::<
14391            14,
14392            0x1,
14393            1,
14394            0,
14395            p50pfs_ha::Isel,
14396            p50pfs_ha::Isel,
14397            P50PfsHa_SPEC,
14398            crate::common::RW,
14399        >::from_register(self, 0)
14400    }
14401
14402    #[doc = "Analog Input Enable"]
14403    #[inline(always)]
14404    pub fn asel(
14405        self,
14406    ) -> crate::common::RegisterField<
14407        15,
14408        0x1,
14409        1,
14410        0,
14411        p50pfs_ha::Asel,
14412        p50pfs_ha::Asel,
14413        P50PfsHa_SPEC,
14414        crate::common::RW,
14415    > {
14416        crate::common::RegisterField::<
14417            15,
14418            0x1,
14419            1,
14420            0,
14421            p50pfs_ha::Asel,
14422            p50pfs_ha::Asel,
14423            P50PfsHa_SPEC,
14424            crate::common::RW,
14425        >::from_register(self, 0)
14426    }
14427}
14428impl ::core::default::Default for P50PfsHa {
14429    #[inline(always)]
14430    fn default() -> P50PfsHa {
14431        <crate::RegValueT<P50PfsHa_SPEC> as RegisterValue<_>>::new(0)
14432    }
14433}
14434pub mod p50pfs_ha {
14435
14436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14437    pub struct Podr_SPEC;
14438    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14439    impl Podr {
14440        #[doc = "Output low"]
14441        pub const _0: Self = Self::new(0);
14442
14443        #[doc = "Output high"]
14444        pub const _1: Self = Self::new(1);
14445    }
14446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14447    pub struct Pidr_SPEC;
14448    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14449    impl Pidr {
14450        #[doc = "Low level"]
14451        pub const _0: Self = Self::new(0);
14452
14453        #[doc = "High level"]
14454        pub const _1: Self = Self::new(1);
14455    }
14456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14457    pub struct Pdr_SPEC;
14458    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14459    impl Pdr {
14460        #[doc = "Input (functions as an input pin)"]
14461        pub const _0: Self = Self::new(0);
14462
14463        #[doc = "Output (functions as an output pin)"]
14464        pub const _1: Self = Self::new(1);
14465    }
14466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14467    pub struct Pcr_SPEC;
14468    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14469    impl Pcr {
14470        #[doc = "Disable input pull-up"]
14471        pub const _0: Self = Self::new(0);
14472
14473        #[doc = "Enable input pull-up"]
14474        pub const _1: Self = Self::new(1);
14475    }
14476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14477    pub struct Ncodr_SPEC;
14478    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14479    impl Ncodr {
14480        #[doc = "Output CMOS"]
14481        pub const _0: Self = Self::new(0);
14482
14483        #[doc = "Output NMOS open-drain"]
14484        pub const _1: Self = Self::new(1);
14485    }
14486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14487    pub struct Isel_SPEC;
14488    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14489    impl Isel {
14490        #[doc = "Do not use as IRQn input pin"]
14491        pub const _0: Self = Self::new(0);
14492
14493        #[doc = "Use as IRQn input pin"]
14494        pub const _1: Self = Self::new(1);
14495    }
14496    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14497    pub struct Asel_SPEC;
14498    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14499    impl Asel {
14500        #[doc = "Do not use as analog pin"]
14501        pub const _0: Self = Self::new(0);
14502
14503        #[doc = "Use as analog pin"]
14504        pub const _1: Self = Self::new(1);
14505    }
14506}
14507#[doc(hidden)]
14508#[derive(Copy, Clone, Eq, PartialEq)]
14509pub struct P50PfsBy_SPEC;
14510impl crate::sealed::RegSpec for P50PfsBy_SPEC {
14511    type DataType = u8;
14512}
14513
14514#[doc = "Port 50%s Pin Function Select Register"]
14515pub type P50PfsBy = crate::RegValueT<P50PfsBy_SPEC>;
14516
14517impl P50PfsBy {
14518    #[doc = "Port Output Data"]
14519    #[inline(always)]
14520    pub fn podr(
14521        self,
14522    ) -> crate::common::RegisterField<
14523        0,
14524        0x1,
14525        1,
14526        0,
14527        p50pfs_by::Podr,
14528        p50pfs_by::Podr,
14529        P50PfsBy_SPEC,
14530        crate::common::RW,
14531    > {
14532        crate::common::RegisterField::<
14533            0,
14534            0x1,
14535            1,
14536            0,
14537            p50pfs_by::Podr,
14538            p50pfs_by::Podr,
14539            P50PfsBy_SPEC,
14540            crate::common::RW,
14541        >::from_register(self, 0)
14542    }
14543
14544    #[doc = "Port State"]
14545    #[inline(always)]
14546    pub fn pidr(
14547        self,
14548    ) -> crate::common::RegisterField<
14549        1,
14550        0x1,
14551        1,
14552        0,
14553        p50pfs_by::Pidr,
14554        p50pfs_by::Pidr,
14555        P50PfsBy_SPEC,
14556        crate::common::R,
14557    > {
14558        crate::common::RegisterField::<
14559            1,
14560            0x1,
14561            1,
14562            0,
14563            p50pfs_by::Pidr,
14564            p50pfs_by::Pidr,
14565            P50PfsBy_SPEC,
14566            crate::common::R,
14567        >::from_register(self, 0)
14568    }
14569
14570    #[doc = "Port Direction"]
14571    #[inline(always)]
14572    pub fn pdr(
14573        self,
14574    ) -> crate::common::RegisterField<
14575        2,
14576        0x1,
14577        1,
14578        0,
14579        p50pfs_by::Pdr,
14580        p50pfs_by::Pdr,
14581        P50PfsBy_SPEC,
14582        crate::common::RW,
14583    > {
14584        crate::common::RegisterField::<
14585            2,
14586            0x1,
14587            1,
14588            0,
14589            p50pfs_by::Pdr,
14590            p50pfs_by::Pdr,
14591            P50PfsBy_SPEC,
14592            crate::common::RW,
14593        >::from_register(self, 0)
14594    }
14595
14596    #[doc = "Pull-up Control"]
14597    #[inline(always)]
14598    pub fn pcr(
14599        self,
14600    ) -> crate::common::RegisterField<
14601        4,
14602        0x1,
14603        1,
14604        0,
14605        p50pfs_by::Pcr,
14606        p50pfs_by::Pcr,
14607        P50PfsBy_SPEC,
14608        crate::common::RW,
14609    > {
14610        crate::common::RegisterField::<
14611            4,
14612            0x1,
14613            1,
14614            0,
14615            p50pfs_by::Pcr,
14616            p50pfs_by::Pcr,
14617            P50PfsBy_SPEC,
14618            crate::common::RW,
14619        >::from_register(self, 0)
14620    }
14621
14622    #[doc = "N-Channel Open-Drain Control"]
14623    #[inline(always)]
14624    pub fn ncodr(
14625        self,
14626    ) -> crate::common::RegisterField<
14627        6,
14628        0x1,
14629        1,
14630        0,
14631        p50pfs_by::Ncodr,
14632        p50pfs_by::Ncodr,
14633        P50PfsBy_SPEC,
14634        crate::common::RW,
14635    > {
14636        crate::common::RegisterField::<
14637            6,
14638            0x1,
14639            1,
14640            0,
14641            p50pfs_by::Ncodr,
14642            p50pfs_by::Ncodr,
14643            P50PfsBy_SPEC,
14644            crate::common::RW,
14645        >::from_register(self, 0)
14646    }
14647}
14648impl ::core::default::Default for P50PfsBy {
14649    #[inline(always)]
14650    fn default() -> P50PfsBy {
14651        <crate::RegValueT<P50PfsBy_SPEC> as RegisterValue<_>>::new(0)
14652    }
14653}
14654pub mod p50pfs_by {
14655
14656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14657    pub struct Podr_SPEC;
14658    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14659    impl Podr {
14660        #[doc = "Output low"]
14661        pub const _0: Self = Self::new(0);
14662
14663        #[doc = "Output high"]
14664        pub const _1: Self = Self::new(1);
14665    }
14666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14667    pub struct Pidr_SPEC;
14668    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14669    impl Pidr {
14670        #[doc = "Low level"]
14671        pub const _0: Self = Self::new(0);
14672
14673        #[doc = "High level"]
14674        pub const _1: Self = Self::new(1);
14675    }
14676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14677    pub struct Pdr_SPEC;
14678    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14679    impl Pdr {
14680        #[doc = "Input (functions as an input pin)"]
14681        pub const _0: Self = Self::new(0);
14682
14683        #[doc = "Output (functions as an output pin)"]
14684        pub const _1: Self = Self::new(1);
14685    }
14686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14687    pub struct Pcr_SPEC;
14688    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14689    impl Pcr {
14690        #[doc = "Disable input pull-up"]
14691        pub const _0: Self = Self::new(0);
14692
14693        #[doc = "Enable input pull-up"]
14694        pub const _1: Self = Self::new(1);
14695    }
14696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14697    pub struct Ncodr_SPEC;
14698    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14699    impl Ncodr {
14700        #[doc = "Output CMOS"]
14701        pub const _0: Self = Self::new(0);
14702
14703        #[doc = "Output NMOS open-drain"]
14704        pub const _1: Self = Self::new(1);
14705    }
14706}
14707#[doc(hidden)]
14708#[derive(Copy, Clone, Eq, PartialEq)]
14709pub struct P60Pfs_SPEC;
14710impl crate::sealed::RegSpec for P60Pfs_SPEC {
14711    type DataType = u32;
14712}
14713
14714#[doc = "Port 60%s Pin Function Select Register"]
14715pub type P60Pfs = crate::RegValueT<P60Pfs_SPEC>;
14716
14717impl P60Pfs {
14718    #[doc = "Port Output Data"]
14719    #[inline(always)]
14720    pub fn podr(
14721        self,
14722    ) -> crate::common::RegisterField<
14723        0,
14724        0x1,
14725        1,
14726        0,
14727        p60pfs::Podr,
14728        p60pfs::Podr,
14729        P60Pfs_SPEC,
14730        crate::common::RW,
14731    > {
14732        crate::common::RegisterField::<
14733            0,
14734            0x1,
14735            1,
14736            0,
14737            p60pfs::Podr,
14738            p60pfs::Podr,
14739            P60Pfs_SPEC,
14740            crate::common::RW,
14741        >::from_register(self, 0)
14742    }
14743
14744    #[doc = "Port State"]
14745    #[inline(always)]
14746    pub fn pidr(
14747        self,
14748    ) -> crate::common::RegisterField<
14749        1,
14750        0x1,
14751        1,
14752        0,
14753        p60pfs::Pidr,
14754        p60pfs::Pidr,
14755        P60Pfs_SPEC,
14756        crate::common::R,
14757    > {
14758        crate::common::RegisterField::<
14759            1,
14760            0x1,
14761            1,
14762            0,
14763            p60pfs::Pidr,
14764            p60pfs::Pidr,
14765            P60Pfs_SPEC,
14766            crate::common::R,
14767        >::from_register(self, 0)
14768    }
14769
14770    #[doc = "Port Direction"]
14771    #[inline(always)]
14772    pub fn pdr(
14773        self,
14774    ) -> crate::common::RegisterField<
14775        2,
14776        0x1,
14777        1,
14778        0,
14779        p60pfs::Pdr,
14780        p60pfs::Pdr,
14781        P60Pfs_SPEC,
14782        crate::common::RW,
14783    > {
14784        crate::common::RegisterField::<
14785            2,
14786            0x1,
14787            1,
14788            0,
14789            p60pfs::Pdr,
14790            p60pfs::Pdr,
14791            P60Pfs_SPEC,
14792            crate::common::RW,
14793        >::from_register(self, 0)
14794    }
14795
14796    #[doc = "Pull-up Control"]
14797    #[inline(always)]
14798    pub fn pcr(
14799        self,
14800    ) -> crate::common::RegisterField<
14801        4,
14802        0x1,
14803        1,
14804        0,
14805        p60pfs::Pcr,
14806        p60pfs::Pcr,
14807        P60Pfs_SPEC,
14808        crate::common::RW,
14809    > {
14810        crate::common::RegisterField::<
14811            4,
14812            0x1,
14813            1,
14814            0,
14815            p60pfs::Pcr,
14816            p60pfs::Pcr,
14817            P60Pfs_SPEC,
14818            crate::common::RW,
14819        >::from_register(self, 0)
14820    }
14821
14822    #[doc = "N-Channel Open-Drain Control"]
14823    #[inline(always)]
14824    pub fn ncodr(
14825        self,
14826    ) -> crate::common::RegisterField<
14827        6,
14828        0x1,
14829        1,
14830        0,
14831        p60pfs::Ncodr,
14832        p60pfs::Ncodr,
14833        P60Pfs_SPEC,
14834        crate::common::RW,
14835    > {
14836        crate::common::RegisterField::<
14837            6,
14838            0x1,
14839            1,
14840            0,
14841            p60pfs::Ncodr,
14842            p60pfs::Ncodr,
14843            P60Pfs_SPEC,
14844            crate::common::RW,
14845        >::from_register(self, 0)
14846    }
14847
14848    #[doc = "IRQ Input Enable"]
14849    #[inline(always)]
14850    pub fn isel(
14851        self,
14852    ) -> crate::common::RegisterField<
14853        14,
14854        0x1,
14855        1,
14856        0,
14857        p60pfs::Isel,
14858        p60pfs::Isel,
14859        P60Pfs_SPEC,
14860        crate::common::RW,
14861    > {
14862        crate::common::RegisterField::<
14863            14,
14864            0x1,
14865            1,
14866            0,
14867            p60pfs::Isel,
14868            p60pfs::Isel,
14869            P60Pfs_SPEC,
14870            crate::common::RW,
14871        >::from_register(self, 0)
14872    }
14873
14874    #[doc = "Analog Input Enable"]
14875    #[inline(always)]
14876    pub fn asel(
14877        self,
14878    ) -> crate::common::RegisterField<
14879        15,
14880        0x1,
14881        1,
14882        0,
14883        p60pfs::Asel,
14884        p60pfs::Asel,
14885        P60Pfs_SPEC,
14886        crate::common::RW,
14887    > {
14888        crate::common::RegisterField::<
14889            15,
14890            0x1,
14891            1,
14892            0,
14893            p60pfs::Asel,
14894            p60pfs::Asel,
14895            P60Pfs_SPEC,
14896            crate::common::RW,
14897        >::from_register(self, 0)
14898    }
14899
14900    #[doc = "Port Mode Control"]
14901    #[inline(always)]
14902    pub fn pmr(
14903        self,
14904    ) -> crate::common::RegisterField<
14905        16,
14906        0x1,
14907        1,
14908        0,
14909        p60pfs::Pmr,
14910        p60pfs::Pmr,
14911        P60Pfs_SPEC,
14912        crate::common::RW,
14913    > {
14914        crate::common::RegisterField::<
14915            16,
14916            0x1,
14917            1,
14918            0,
14919            p60pfs::Pmr,
14920            p60pfs::Pmr,
14921            P60Pfs_SPEC,
14922            crate::common::RW,
14923        >::from_register(self, 0)
14924    }
14925
14926    #[doc = "Peripheral Select"]
14927    #[inline(always)]
14928    pub fn psel(
14929        self,
14930    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P60Pfs_SPEC, crate::common::RW> {
14931        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P60Pfs_SPEC,crate::common::RW>::from_register(self,0)
14932    }
14933}
14934impl ::core::default::Default for P60Pfs {
14935    #[inline(always)]
14936    fn default() -> P60Pfs {
14937        <crate::RegValueT<P60Pfs_SPEC> as RegisterValue<_>>::new(0)
14938    }
14939}
14940pub mod p60pfs {
14941
14942    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14943    pub struct Podr_SPEC;
14944    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14945    impl Podr {
14946        #[doc = "Output low"]
14947        pub const _0: Self = Self::new(0);
14948
14949        #[doc = "Output high"]
14950        pub const _1: Self = Self::new(1);
14951    }
14952    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14953    pub struct Pidr_SPEC;
14954    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14955    impl Pidr {
14956        #[doc = "Low level"]
14957        pub const _0: Self = Self::new(0);
14958
14959        #[doc = "High level"]
14960        pub const _1: Self = Self::new(1);
14961    }
14962    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14963    pub struct Pdr_SPEC;
14964    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14965    impl Pdr {
14966        #[doc = "Input (functions as an input pin)"]
14967        pub const _0: Self = Self::new(0);
14968
14969        #[doc = "Output (functions as an output pin)"]
14970        pub const _1: Self = Self::new(1);
14971    }
14972    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14973    pub struct Pcr_SPEC;
14974    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14975    impl Pcr {
14976        #[doc = "Disable input pull-up"]
14977        pub const _0: Self = Self::new(0);
14978
14979        #[doc = "Enable input pull-up"]
14980        pub const _1: Self = Self::new(1);
14981    }
14982    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14983    pub struct Ncodr_SPEC;
14984    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14985    impl Ncodr {
14986        #[doc = "Output CMOS"]
14987        pub const _0: Self = Self::new(0);
14988
14989        #[doc = "Output NMOS open-drain"]
14990        pub const _1: Self = Self::new(1);
14991    }
14992    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14993    pub struct Isel_SPEC;
14994    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14995    impl Isel {
14996        #[doc = "Do not use as IRQn input pin"]
14997        pub const _0: Self = Self::new(0);
14998
14999        #[doc = "Use as IRQn input pin"]
15000        pub const _1: Self = Self::new(1);
15001    }
15002    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15003    pub struct Asel_SPEC;
15004    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15005    impl Asel {
15006        #[doc = "Do not use as analog pin"]
15007        pub const _0: Self = Self::new(0);
15008
15009        #[doc = "Use as analog pin"]
15010        pub const _1: Self = Self::new(1);
15011    }
15012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15013    pub struct Pmr_SPEC;
15014    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15015    impl Pmr {
15016        #[doc = "Use as general I/O pin"]
15017        pub const _0: Self = Self::new(0);
15018
15019        #[doc = "Use as I/O port for peripheral functions"]
15020        pub const _1: Self = Self::new(1);
15021    }
15022}
15023#[doc(hidden)]
15024#[derive(Copy, Clone, Eq, PartialEq)]
15025pub struct P60PfsHa_SPEC;
15026impl crate::sealed::RegSpec for P60PfsHa_SPEC {
15027    type DataType = u16;
15028}
15029
15030#[doc = "Port 60%s Pin Function Select Register"]
15031pub type P60PfsHa = crate::RegValueT<P60PfsHa_SPEC>;
15032
15033impl P60PfsHa {
15034    #[doc = "Port Output Data"]
15035    #[inline(always)]
15036    pub fn podr(
15037        self,
15038    ) -> crate::common::RegisterField<
15039        0,
15040        0x1,
15041        1,
15042        0,
15043        p60pfs_ha::Podr,
15044        p60pfs_ha::Podr,
15045        P60PfsHa_SPEC,
15046        crate::common::RW,
15047    > {
15048        crate::common::RegisterField::<
15049            0,
15050            0x1,
15051            1,
15052            0,
15053            p60pfs_ha::Podr,
15054            p60pfs_ha::Podr,
15055            P60PfsHa_SPEC,
15056            crate::common::RW,
15057        >::from_register(self, 0)
15058    }
15059
15060    #[doc = "Port State"]
15061    #[inline(always)]
15062    pub fn pidr(
15063        self,
15064    ) -> crate::common::RegisterField<
15065        1,
15066        0x1,
15067        1,
15068        0,
15069        p60pfs_ha::Pidr,
15070        p60pfs_ha::Pidr,
15071        P60PfsHa_SPEC,
15072        crate::common::R,
15073    > {
15074        crate::common::RegisterField::<
15075            1,
15076            0x1,
15077            1,
15078            0,
15079            p60pfs_ha::Pidr,
15080            p60pfs_ha::Pidr,
15081            P60PfsHa_SPEC,
15082            crate::common::R,
15083        >::from_register(self, 0)
15084    }
15085
15086    #[doc = "Port Direction"]
15087    #[inline(always)]
15088    pub fn pdr(
15089        self,
15090    ) -> crate::common::RegisterField<
15091        2,
15092        0x1,
15093        1,
15094        0,
15095        p60pfs_ha::Pdr,
15096        p60pfs_ha::Pdr,
15097        P60PfsHa_SPEC,
15098        crate::common::RW,
15099    > {
15100        crate::common::RegisterField::<
15101            2,
15102            0x1,
15103            1,
15104            0,
15105            p60pfs_ha::Pdr,
15106            p60pfs_ha::Pdr,
15107            P60PfsHa_SPEC,
15108            crate::common::RW,
15109        >::from_register(self, 0)
15110    }
15111
15112    #[doc = "Pull-up Control"]
15113    #[inline(always)]
15114    pub fn pcr(
15115        self,
15116    ) -> crate::common::RegisterField<
15117        4,
15118        0x1,
15119        1,
15120        0,
15121        p60pfs_ha::Pcr,
15122        p60pfs_ha::Pcr,
15123        P60PfsHa_SPEC,
15124        crate::common::RW,
15125    > {
15126        crate::common::RegisterField::<
15127            4,
15128            0x1,
15129            1,
15130            0,
15131            p60pfs_ha::Pcr,
15132            p60pfs_ha::Pcr,
15133            P60PfsHa_SPEC,
15134            crate::common::RW,
15135        >::from_register(self, 0)
15136    }
15137
15138    #[doc = "N-Channel Open-Drain Control"]
15139    #[inline(always)]
15140    pub fn ncodr(
15141        self,
15142    ) -> crate::common::RegisterField<
15143        6,
15144        0x1,
15145        1,
15146        0,
15147        p60pfs_ha::Ncodr,
15148        p60pfs_ha::Ncodr,
15149        P60PfsHa_SPEC,
15150        crate::common::RW,
15151    > {
15152        crate::common::RegisterField::<
15153            6,
15154            0x1,
15155            1,
15156            0,
15157            p60pfs_ha::Ncodr,
15158            p60pfs_ha::Ncodr,
15159            P60PfsHa_SPEC,
15160            crate::common::RW,
15161        >::from_register(self, 0)
15162    }
15163
15164    #[doc = "IRQ Input Enable"]
15165    #[inline(always)]
15166    pub fn isel(
15167        self,
15168    ) -> crate::common::RegisterField<
15169        14,
15170        0x1,
15171        1,
15172        0,
15173        p60pfs_ha::Isel,
15174        p60pfs_ha::Isel,
15175        P60PfsHa_SPEC,
15176        crate::common::RW,
15177    > {
15178        crate::common::RegisterField::<
15179            14,
15180            0x1,
15181            1,
15182            0,
15183            p60pfs_ha::Isel,
15184            p60pfs_ha::Isel,
15185            P60PfsHa_SPEC,
15186            crate::common::RW,
15187        >::from_register(self, 0)
15188    }
15189
15190    #[doc = "Analog Input Enable"]
15191    #[inline(always)]
15192    pub fn asel(
15193        self,
15194    ) -> crate::common::RegisterField<
15195        15,
15196        0x1,
15197        1,
15198        0,
15199        p60pfs_ha::Asel,
15200        p60pfs_ha::Asel,
15201        P60PfsHa_SPEC,
15202        crate::common::RW,
15203    > {
15204        crate::common::RegisterField::<
15205            15,
15206            0x1,
15207            1,
15208            0,
15209            p60pfs_ha::Asel,
15210            p60pfs_ha::Asel,
15211            P60PfsHa_SPEC,
15212            crate::common::RW,
15213        >::from_register(self, 0)
15214    }
15215}
15216impl ::core::default::Default for P60PfsHa {
15217    #[inline(always)]
15218    fn default() -> P60PfsHa {
15219        <crate::RegValueT<P60PfsHa_SPEC> as RegisterValue<_>>::new(0)
15220    }
15221}
15222pub mod p60pfs_ha {
15223
15224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15225    pub struct Podr_SPEC;
15226    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15227    impl Podr {
15228        #[doc = "Output low"]
15229        pub const _0: Self = Self::new(0);
15230
15231        #[doc = "Output high"]
15232        pub const _1: Self = Self::new(1);
15233    }
15234    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15235    pub struct Pidr_SPEC;
15236    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15237    impl Pidr {
15238        #[doc = "Low level"]
15239        pub const _0: Self = Self::new(0);
15240
15241        #[doc = "High level"]
15242        pub const _1: Self = Self::new(1);
15243    }
15244    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15245    pub struct Pdr_SPEC;
15246    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15247    impl Pdr {
15248        #[doc = "Input (functions as an input pin)"]
15249        pub const _0: Self = Self::new(0);
15250
15251        #[doc = "Output (functions as an output pin)"]
15252        pub const _1: Self = Self::new(1);
15253    }
15254    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15255    pub struct Pcr_SPEC;
15256    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15257    impl Pcr {
15258        #[doc = "Disable input pull-up"]
15259        pub const _0: Self = Self::new(0);
15260
15261        #[doc = "Enable input pull-up"]
15262        pub const _1: Self = Self::new(1);
15263    }
15264    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15265    pub struct Ncodr_SPEC;
15266    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15267    impl Ncodr {
15268        #[doc = "Output CMOS"]
15269        pub const _0: Self = Self::new(0);
15270
15271        #[doc = "Output NMOS open-drain"]
15272        pub const _1: Self = Self::new(1);
15273    }
15274    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15275    pub struct Isel_SPEC;
15276    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15277    impl Isel {
15278        #[doc = "Do not use as IRQn input pin"]
15279        pub const _0: Self = Self::new(0);
15280
15281        #[doc = "Use as IRQn input pin"]
15282        pub const _1: Self = Self::new(1);
15283    }
15284    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15285    pub struct Asel_SPEC;
15286    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15287    impl Asel {
15288        #[doc = "Do not use as analog pin"]
15289        pub const _0: Self = Self::new(0);
15290
15291        #[doc = "Use as analog pin"]
15292        pub const _1: Self = Self::new(1);
15293    }
15294}
15295#[doc(hidden)]
15296#[derive(Copy, Clone, Eq, PartialEq)]
15297pub struct P60PfsBy_SPEC;
15298impl crate::sealed::RegSpec for P60PfsBy_SPEC {
15299    type DataType = u8;
15300}
15301
15302#[doc = "Port 60%s Pin Function Select Register"]
15303pub type P60PfsBy = crate::RegValueT<P60PfsBy_SPEC>;
15304
15305impl P60PfsBy {
15306    #[doc = "Port Output Data"]
15307    #[inline(always)]
15308    pub fn podr(
15309        self,
15310    ) -> crate::common::RegisterField<
15311        0,
15312        0x1,
15313        1,
15314        0,
15315        p60pfs_by::Podr,
15316        p60pfs_by::Podr,
15317        P60PfsBy_SPEC,
15318        crate::common::RW,
15319    > {
15320        crate::common::RegisterField::<
15321            0,
15322            0x1,
15323            1,
15324            0,
15325            p60pfs_by::Podr,
15326            p60pfs_by::Podr,
15327            P60PfsBy_SPEC,
15328            crate::common::RW,
15329        >::from_register(self, 0)
15330    }
15331
15332    #[doc = "Port State"]
15333    #[inline(always)]
15334    pub fn pidr(
15335        self,
15336    ) -> crate::common::RegisterField<
15337        1,
15338        0x1,
15339        1,
15340        0,
15341        p60pfs_by::Pidr,
15342        p60pfs_by::Pidr,
15343        P60PfsBy_SPEC,
15344        crate::common::R,
15345    > {
15346        crate::common::RegisterField::<
15347            1,
15348            0x1,
15349            1,
15350            0,
15351            p60pfs_by::Pidr,
15352            p60pfs_by::Pidr,
15353            P60PfsBy_SPEC,
15354            crate::common::R,
15355        >::from_register(self, 0)
15356    }
15357
15358    #[doc = "Port Direction"]
15359    #[inline(always)]
15360    pub fn pdr(
15361        self,
15362    ) -> crate::common::RegisterField<
15363        2,
15364        0x1,
15365        1,
15366        0,
15367        p60pfs_by::Pdr,
15368        p60pfs_by::Pdr,
15369        P60PfsBy_SPEC,
15370        crate::common::RW,
15371    > {
15372        crate::common::RegisterField::<
15373            2,
15374            0x1,
15375            1,
15376            0,
15377            p60pfs_by::Pdr,
15378            p60pfs_by::Pdr,
15379            P60PfsBy_SPEC,
15380            crate::common::RW,
15381        >::from_register(self, 0)
15382    }
15383
15384    #[doc = "Pull-up Control"]
15385    #[inline(always)]
15386    pub fn pcr(
15387        self,
15388    ) -> crate::common::RegisterField<
15389        4,
15390        0x1,
15391        1,
15392        0,
15393        p60pfs_by::Pcr,
15394        p60pfs_by::Pcr,
15395        P60PfsBy_SPEC,
15396        crate::common::RW,
15397    > {
15398        crate::common::RegisterField::<
15399            4,
15400            0x1,
15401            1,
15402            0,
15403            p60pfs_by::Pcr,
15404            p60pfs_by::Pcr,
15405            P60PfsBy_SPEC,
15406            crate::common::RW,
15407        >::from_register(self, 0)
15408    }
15409
15410    #[doc = "N-Channel Open-Drain Control"]
15411    #[inline(always)]
15412    pub fn ncodr(
15413        self,
15414    ) -> crate::common::RegisterField<
15415        6,
15416        0x1,
15417        1,
15418        0,
15419        p60pfs_by::Ncodr,
15420        p60pfs_by::Ncodr,
15421        P60PfsBy_SPEC,
15422        crate::common::RW,
15423    > {
15424        crate::common::RegisterField::<
15425            6,
15426            0x1,
15427            1,
15428            0,
15429            p60pfs_by::Ncodr,
15430            p60pfs_by::Ncodr,
15431            P60PfsBy_SPEC,
15432            crate::common::RW,
15433        >::from_register(self, 0)
15434    }
15435}
15436impl ::core::default::Default for P60PfsBy {
15437    #[inline(always)]
15438    fn default() -> P60PfsBy {
15439        <crate::RegValueT<P60PfsBy_SPEC> as RegisterValue<_>>::new(0)
15440    }
15441}
15442pub mod p60pfs_by {
15443
15444    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15445    pub struct Podr_SPEC;
15446    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15447    impl Podr {
15448        #[doc = "Output low"]
15449        pub const _0: Self = Self::new(0);
15450
15451        #[doc = "Output high"]
15452        pub const _1: Self = Self::new(1);
15453    }
15454    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15455    pub struct Pidr_SPEC;
15456    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15457    impl Pidr {
15458        #[doc = "Low level"]
15459        pub const _0: Self = Self::new(0);
15460
15461        #[doc = "High level"]
15462        pub const _1: Self = Self::new(1);
15463    }
15464    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15465    pub struct Pdr_SPEC;
15466    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15467    impl Pdr {
15468        #[doc = "Input (functions as an input pin)"]
15469        pub const _0: Self = Self::new(0);
15470
15471        #[doc = "Output (functions as an output pin)"]
15472        pub const _1: Self = Self::new(1);
15473    }
15474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15475    pub struct Pcr_SPEC;
15476    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15477    impl Pcr {
15478        #[doc = "Disable input pull-up"]
15479        pub const _0: Self = Self::new(0);
15480
15481        #[doc = "Enable input pull-up"]
15482        pub const _1: Self = Self::new(1);
15483    }
15484    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15485    pub struct Ncodr_SPEC;
15486    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15487    impl Ncodr {
15488        #[doc = "Output CMOS"]
15489        pub const _0: Self = Self::new(0);
15490
15491        #[doc = "Output NMOS open-drain"]
15492        pub const _1: Self = Self::new(1);
15493    }
15494}
15495#[doc(hidden)]
15496#[derive(Copy, Clone, Eq, PartialEq)]
15497pub struct P610Pfs_SPEC;
15498impl crate::sealed::RegSpec for P610Pfs_SPEC {
15499    type DataType = u32;
15500}
15501
15502#[doc = "Port 610 Pin Function Select Register"]
15503pub type P610Pfs = crate::RegValueT<P610Pfs_SPEC>;
15504
15505impl P610Pfs {
15506    #[doc = "Port Output Data"]
15507    #[inline(always)]
15508    pub fn podr(
15509        self,
15510    ) -> crate::common::RegisterField<
15511        0,
15512        0x1,
15513        1,
15514        0,
15515        p610pfs::Podr,
15516        p610pfs::Podr,
15517        P610Pfs_SPEC,
15518        crate::common::RW,
15519    > {
15520        crate::common::RegisterField::<
15521            0,
15522            0x1,
15523            1,
15524            0,
15525            p610pfs::Podr,
15526            p610pfs::Podr,
15527            P610Pfs_SPEC,
15528            crate::common::RW,
15529        >::from_register(self, 0)
15530    }
15531
15532    #[doc = "Port State"]
15533    #[inline(always)]
15534    pub fn pidr(
15535        self,
15536    ) -> crate::common::RegisterField<
15537        1,
15538        0x1,
15539        1,
15540        0,
15541        p610pfs::Pidr,
15542        p610pfs::Pidr,
15543        P610Pfs_SPEC,
15544        crate::common::R,
15545    > {
15546        crate::common::RegisterField::<
15547            1,
15548            0x1,
15549            1,
15550            0,
15551            p610pfs::Pidr,
15552            p610pfs::Pidr,
15553            P610Pfs_SPEC,
15554            crate::common::R,
15555        >::from_register(self, 0)
15556    }
15557
15558    #[doc = "Port Direction"]
15559    #[inline(always)]
15560    pub fn pdr(
15561        self,
15562    ) -> crate::common::RegisterField<
15563        2,
15564        0x1,
15565        1,
15566        0,
15567        p610pfs::Pdr,
15568        p610pfs::Pdr,
15569        P610Pfs_SPEC,
15570        crate::common::RW,
15571    > {
15572        crate::common::RegisterField::<
15573            2,
15574            0x1,
15575            1,
15576            0,
15577            p610pfs::Pdr,
15578            p610pfs::Pdr,
15579            P610Pfs_SPEC,
15580            crate::common::RW,
15581        >::from_register(self, 0)
15582    }
15583
15584    #[doc = "Pull-up Control"]
15585    #[inline(always)]
15586    pub fn pcr(
15587        self,
15588    ) -> crate::common::RegisterField<
15589        4,
15590        0x1,
15591        1,
15592        0,
15593        p610pfs::Pcr,
15594        p610pfs::Pcr,
15595        P610Pfs_SPEC,
15596        crate::common::RW,
15597    > {
15598        crate::common::RegisterField::<
15599            4,
15600            0x1,
15601            1,
15602            0,
15603            p610pfs::Pcr,
15604            p610pfs::Pcr,
15605            P610Pfs_SPEC,
15606            crate::common::RW,
15607        >::from_register(self, 0)
15608    }
15609
15610    #[doc = "N-Channel Open-Drain Control"]
15611    #[inline(always)]
15612    pub fn ncodr(
15613        self,
15614    ) -> crate::common::RegisterField<
15615        6,
15616        0x1,
15617        1,
15618        0,
15619        p610pfs::Ncodr,
15620        p610pfs::Ncodr,
15621        P610Pfs_SPEC,
15622        crate::common::RW,
15623    > {
15624        crate::common::RegisterField::<
15625            6,
15626            0x1,
15627            1,
15628            0,
15629            p610pfs::Ncodr,
15630            p610pfs::Ncodr,
15631            P610Pfs_SPEC,
15632            crate::common::RW,
15633        >::from_register(self, 0)
15634    }
15635
15636    #[doc = "IRQ Input Enable"]
15637    #[inline(always)]
15638    pub fn isel(
15639        self,
15640    ) -> crate::common::RegisterField<
15641        14,
15642        0x1,
15643        1,
15644        0,
15645        p610pfs::Isel,
15646        p610pfs::Isel,
15647        P610Pfs_SPEC,
15648        crate::common::RW,
15649    > {
15650        crate::common::RegisterField::<
15651            14,
15652            0x1,
15653            1,
15654            0,
15655            p610pfs::Isel,
15656            p610pfs::Isel,
15657            P610Pfs_SPEC,
15658            crate::common::RW,
15659        >::from_register(self, 0)
15660    }
15661
15662    #[doc = "Analog Input Enable"]
15663    #[inline(always)]
15664    pub fn asel(
15665        self,
15666    ) -> crate::common::RegisterField<
15667        15,
15668        0x1,
15669        1,
15670        0,
15671        p610pfs::Asel,
15672        p610pfs::Asel,
15673        P610Pfs_SPEC,
15674        crate::common::RW,
15675    > {
15676        crate::common::RegisterField::<
15677            15,
15678            0x1,
15679            1,
15680            0,
15681            p610pfs::Asel,
15682            p610pfs::Asel,
15683            P610Pfs_SPEC,
15684            crate::common::RW,
15685        >::from_register(self, 0)
15686    }
15687
15688    #[doc = "Port Mode Control"]
15689    #[inline(always)]
15690    pub fn pmr(
15691        self,
15692    ) -> crate::common::RegisterField<
15693        16,
15694        0x1,
15695        1,
15696        0,
15697        p610pfs::Pmr,
15698        p610pfs::Pmr,
15699        P610Pfs_SPEC,
15700        crate::common::RW,
15701    > {
15702        crate::common::RegisterField::<
15703            16,
15704            0x1,
15705            1,
15706            0,
15707            p610pfs::Pmr,
15708            p610pfs::Pmr,
15709            P610Pfs_SPEC,
15710            crate::common::RW,
15711        >::from_register(self, 0)
15712    }
15713
15714    #[doc = "Peripheral Select"]
15715    #[inline(always)]
15716    pub fn psel(
15717        self,
15718    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P610Pfs_SPEC, crate::common::RW> {
15719        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P610Pfs_SPEC,crate::common::RW>::from_register(self,0)
15720    }
15721}
15722impl ::core::default::Default for P610Pfs {
15723    #[inline(always)]
15724    fn default() -> P610Pfs {
15725        <crate::RegValueT<P610Pfs_SPEC> as RegisterValue<_>>::new(0)
15726    }
15727}
15728pub mod p610pfs {
15729
15730    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15731    pub struct Podr_SPEC;
15732    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15733    impl Podr {
15734        #[doc = "Output low"]
15735        pub const _0: Self = Self::new(0);
15736
15737        #[doc = "Output high"]
15738        pub const _1: Self = Self::new(1);
15739    }
15740    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15741    pub struct Pidr_SPEC;
15742    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15743    impl Pidr {
15744        #[doc = "Low level"]
15745        pub const _0: Self = Self::new(0);
15746
15747        #[doc = "High level"]
15748        pub const _1: Self = Self::new(1);
15749    }
15750    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15751    pub struct Pdr_SPEC;
15752    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15753    impl Pdr {
15754        #[doc = "Input (functions as an input pin)"]
15755        pub const _0: Self = Self::new(0);
15756
15757        #[doc = "Output (functions as an output pin)"]
15758        pub const _1: Self = Self::new(1);
15759    }
15760    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15761    pub struct Pcr_SPEC;
15762    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15763    impl Pcr {
15764        #[doc = "Disable input pull-up"]
15765        pub const _0: Self = Self::new(0);
15766
15767        #[doc = "Enable input pull-up"]
15768        pub const _1: Self = Self::new(1);
15769    }
15770    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15771    pub struct Ncodr_SPEC;
15772    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15773    impl Ncodr {
15774        #[doc = "Output CMOS"]
15775        pub const _0: Self = Self::new(0);
15776
15777        #[doc = "Output NMOS open-drain"]
15778        pub const _1: Self = Self::new(1);
15779    }
15780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15781    pub struct Isel_SPEC;
15782    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15783    impl Isel {
15784        #[doc = "Do not use as IRQn input pin"]
15785        pub const _0: Self = Self::new(0);
15786
15787        #[doc = "Use as IRQn input pin"]
15788        pub const _1: Self = Self::new(1);
15789    }
15790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15791    pub struct Asel_SPEC;
15792    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15793    impl Asel {
15794        #[doc = "Do not use as analog pin"]
15795        pub const _0: Self = Self::new(0);
15796
15797        #[doc = "Use as analog pin"]
15798        pub const _1: Self = Self::new(1);
15799    }
15800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15801    pub struct Pmr_SPEC;
15802    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15803    impl Pmr {
15804        #[doc = "Use as general I/O pin"]
15805        pub const _0: Self = Self::new(0);
15806
15807        #[doc = "Use as I/O port for peripheral functions"]
15808        pub const _1: Self = Self::new(1);
15809    }
15810}
15811#[doc(hidden)]
15812#[derive(Copy, Clone, Eq, PartialEq)]
15813pub struct P610PfsHa_SPEC;
15814impl crate::sealed::RegSpec for P610PfsHa_SPEC {
15815    type DataType = u16;
15816}
15817
15818#[doc = "Port 610 Pin Function Select Register"]
15819pub type P610PfsHa = crate::RegValueT<P610PfsHa_SPEC>;
15820
15821impl P610PfsHa {
15822    #[doc = "Port Output Data"]
15823    #[inline(always)]
15824    pub fn podr(
15825        self,
15826    ) -> crate::common::RegisterField<
15827        0,
15828        0x1,
15829        1,
15830        0,
15831        p610pfs_ha::Podr,
15832        p610pfs_ha::Podr,
15833        P610PfsHa_SPEC,
15834        crate::common::RW,
15835    > {
15836        crate::common::RegisterField::<
15837            0,
15838            0x1,
15839            1,
15840            0,
15841            p610pfs_ha::Podr,
15842            p610pfs_ha::Podr,
15843            P610PfsHa_SPEC,
15844            crate::common::RW,
15845        >::from_register(self, 0)
15846    }
15847
15848    #[doc = "Port State"]
15849    #[inline(always)]
15850    pub fn pidr(
15851        self,
15852    ) -> crate::common::RegisterField<
15853        1,
15854        0x1,
15855        1,
15856        0,
15857        p610pfs_ha::Pidr,
15858        p610pfs_ha::Pidr,
15859        P610PfsHa_SPEC,
15860        crate::common::R,
15861    > {
15862        crate::common::RegisterField::<
15863            1,
15864            0x1,
15865            1,
15866            0,
15867            p610pfs_ha::Pidr,
15868            p610pfs_ha::Pidr,
15869            P610PfsHa_SPEC,
15870            crate::common::R,
15871        >::from_register(self, 0)
15872    }
15873
15874    #[doc = "Port Direction"]
15875    #[inline(always)]
15876    pub fn pdr(
15877        self,
15878    ) -> crate::common::RegisterField<
15879        2,
15880        0x1,
15881        1,
15882        0,
15883        p610pfs_ha::Pdr,
15884        p610pfs_ha::Pdr,
15885        P610PfsHa_SPEC,
15886        crate::common::RW,
15887    > {
15888        crate::common::RegisterField::<
15889            2,
15890            0x1,
15891            1,
15892            0,
15893            p610pfs_ha::Pdr,
15894            p610pfs_ha::Pdr,
15895            P610PfsHa_SPEC,
15896            crate::common::RW,
15897        >::from_register(self, 0)
15898    }
15899
15900    #[doc = "Pull-up Control"]
15901    #[inline(always)]
15902    pub fn pcr(
15903        self,
15904    ) -> crate::common::RegisterField<
15905        4,
15906        0x1,
15907        1,
15908        0,
15909        p610pfs_ha::Pcr,
15910        p610pfs_ha::Pcr,
15911        P610PfsHa_SPEC,
15912        crate::common::RW,
15913    > {
15914        crate::common::RegisterField::<
15915            4,
15916            0x1,
15917            1,
15918            0,
15919            p610pfs_ha::Pcr,
15920            p610pfs_ha::Pcr,
15921            P610PfsHa_SPEC,
15922            crate::common::RW,
15923        >::from_register(self, 0)
15924    }
15925
15926    #[doc = "N-Channel Open-Drain Control"]
15927    #[inline(always)]
15928    pub fn ncodr(
15929        self,
15930    ) -> crate::common::RegisterField<
15931        6,
15932        0x1,
15933        1,
15934        0,
15935        p610pfs_ha::Ncodr,
15936        p610pfs_ha::Ncodr,
15937        P610PfsHa_SPEC,
15938        crate::common::RW,
15939    > {
15940        crate::common::RegisterField::<
15941            6,
15942            0x1,
15943            1,
15944            0,
15945            p610pfs_ha::Ncodr,
15946            p610pfs_ha::Ncodr,
15947            P610PfsHa_SPEC,
15948            crate::common::RW,
15949        >::from_register(self, 0)
15950    }
15951
15952    #[doc = "IRQ Input Enable"]
15953    #[inline(always)]
15954    pub fn isel(
15955        self,
15956    ) -> crate::common::RegisterField<
15957        14,
15958        0x1,
15959        1,
15960        0,
15961        p610pfs_ha::Isel,
15962        p610pfs_ha::Isel,
15963        P610PfsHa_SPEC,
15964        crate::common::RW,
15965    > {
15966        crate::common::RegisterField::<
15967            14,
15968            0x1,
15969            1,
15970            0,
15971            p610pfs_ha::Isel,
15972            p610pfs_ha::Isel,
15973            P610PfsHa_SPEC,
15974            crate::common::RW,
15975        >::from_register(self, 0)
15976    }
15977
15978    #[doc = "Analog Input Enable"]
15979    #[inline(always)]
15980    pub fn asel(
15981        self,
15982    ) -> crate::common::RegisterField<
15983        15,
15984        0x1,
15985        1,
15986        0,
15987        p610pfs_ha::Asel,
15988        p610pfs_ha::Asel,
15989        P610PfsHa_SPEC,
15990        crate::common::RW,
15991    > {
15992        crate::common::RegisterField::<
15993            15,
15994            0x1,
15995            1,
15996            0,
15997            p610pfs_ha::Asel,
15998            p610pfs_ha::Asel,
15999            P610PfsHa_SPEC,
16000            crate::common::RW,
16001        >::from_register(self, 0)
16002    }
16003}
16004impl ::core::default::Default for P610PfsHa {
16005    #[inline(always)]
16006    fn default() -> P610PfsHa {
16007        <crate::RegValueT<P610PfsHa_SPEC> as RegisterValue<_>>::new(0)
16008    }
16009}
16010pub mod p610pfs_ha {
16011
16012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16013    pub struct Podr_SPEC;
16014    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16015    impl Podr {
16016        #[doc = "Output low"]
16017        pub const _0: Self = Self::new(0);
16018
16019        #[doc = "Output high"]
16020        pub const _1: Self = Self::new(1);
16021    }
16022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16023    pub struct Pidr_SPEC;
16024    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16025    impl Pidr {
16026        #[doc = "Low level"]
16027        pub const _0: Self = Self::new(0);
16028
16029        #[doc = "High level"]
16030        pub const _1: Self = Self::new(1);
16031    }
16032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16033    pub struct Pdr_SPEC;
16034    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16035    impl Pdr {
16036        #[doc = "Input (functions as an input pin)"]
16037        pub const _0: Self = Self::new(0);
16038
16039        #[doc = "Output (functions as an output pin)"]
16040        pub const _1: Self = Self::new(1);
16041    }
16042    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16043    pub struct Pcr_SPEC;
16044    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16045    impl Pcr {
16046        #[doc = "Disable input pull-up"]
16047        pub const _0: Self = Self::new(0);
16048
16049        #[doc = "Enable input pull-up"]
16050        pub const _1: Self = Self::new(1);
16051    }
16052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16053    pub struct Ncodr_SPEC;
16054    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16055    impl Ncodr {
16056        #[doc = "Output CMOS"]
16057        pub const _0: Self = Self::new(0);
16058
16059        #[doc = "Output NMOS open-drain"]
16060        pub const _1: Self = Self::new(1);
16061    }
16062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16063    pub struct Isel_SPEC;
16064    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16065    impl Isel {
16066        #[doc = "Do not use as IRQn input pin"]
16067        pub const _0: Self = Self::new(0);
16068
16069        #[doc = "Use as IRQn input pin"]
16070        pub const _1: Self = Self::new(1);
16071    }
16072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16073    pub struct Asel_SPEC;
16074    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16075    impl Asel {
16076        #[doc = "Do not use as analog pin"]
16077        pub const _0: Self = Self::new(0);
16078
16079        #[doc = "Use as analog pin"]
16080        pub const _1: Self = Self::new(1);
16081    }
16082}
16083#[doc(hidden)]
16084#[derive(Copy, Clone, Eq, PartialEq)]
16085pub struct P610PfsBy_SPEC;
16086impl crate::sealed::RegSpec for P610PfsBy_SPEC {
16087    type DataType = u8;
16088}
16089
16090#[doc = "Port 610 Pin Function Select Register"]
16091pub type P610PfsBy = crate::RegValueT<P610PfsBy_SPEC>;
16092
16093impl P610PfsBy {
16094    #[doc = "Port Output Data"]
16095    #[inline(always)]
16096    pub fn podr(
16097        self,
16098    ) -> crate::common::RegisterField<
16099        0,
16100        0x1,
16101        1,
16102        0,
16103        p610pfs_by::Podr,
16104        p610pfs_by::Podr,
16105        P610PfsBy_SPEC,
16106        crate::common::RW,
16107    > {
16108        crate::common::RegisterField::<
16109            0,
16110            0x1,
16111            1,
16112            0,
16113            p610pfs_by::Podr,
16114            p610pfs_by::Podr,
16115            P610PfsBy_SPEC,
16116            crate::common::RW,
16117        >::from_register(self, 0)
16118    }
16119
16120    #[doc = "Port State"]
16121    #[inline(always)]
16122    pub fn pidr(
16123        self,
16124    ) -> crate::common::RegisterField<
16125        1,
16126        0x1,
16127        1,
16128        0,
16129        p610pfs_by::Pidr,
16130        p610pfs_by::Pidr,
16131        P610PfsBy_SPEC,
16132        crate::common::R,
16133    > {
16134        crate::common::RegisterField::<
16135            1,
16136            0x1,
16137            1,
16138            0,
16139            p610pfs_by::Pidr,
16140            p610pfs_by::Pidr,
16141            P610PfsBy_SPEC,
16142            crate::common::R,
16143        >::from_register(self, 0)
16144    }
16145
16146    #[doc = "Port Direction"]
16147    #[inline(always)]
16148    pub fn pdr(
16149        self,
16150    ) -> crate::common::RegisterField<
16151        2,
16152        0x1,
16153        1,
16154        0,
16155        p610pfs_by::Pdr,
16156        p610pfs_by::Pdr,
16157        P610PfsBy_SPEC,
16158        crate::common::RW,
16159    > {
16160        crate::common::RegisterField::<
16161            2,
16162            0x1,
16163            1,
16164            0,
16165            p610pfs_by::Pdr,
16166            p610pfs_by::Pdr,
16167            P610PfsBy_SPEC,
16168            crate::common::RW,
16169        >::from_register(self, 0)
16170    }
16171
16172    #[doc = "Pull-up Control"]
16173    #[inline(always)]
16174    pub fn pcr(
16175        self,
16176    ) -> crate::common::RegisterField<
16177        4,
16178        0x1,
16179        1,
16180        0,
16181        p610pfs_by::Pcr,
16182        p610pfs_by::Pcr,
16183        P610PfsBy_SPEC,
16184        crate::common::RW,
16185    > {
16186        crate::common::RegisterField::<
16187            4,
16188            0x1,
16189            1,
16190            0,
16191            p610pfs_by::Pcr,
16192            p610pfs_by::Pcr,
16193            P610PfsBy_SPEC,
16194            crate::common::RW,
16195        >::from_register(self, 0)
16196    }
16197
16198    #[doc = "N-Channel Open-Drain Control"]
16199    #[inline(always)]
16200    pub fn ncodr(
16201        self,
16202    ) -> crate::common::RegisterField<
16203        6,
16204        0x1,
16205        1,
16206        0,
16207        p610pfs_by::Ncodr,
16208        p610pfs_by::Ncodr,
16209        P610PfsBy_SPEC,
16210        crate::common::RW,
16211    > {
16212        crate::common::RegisterField::<
16213            6,
16214            0x1,
16215            1,
16216            0,
16217            p610pfs_by::Ncodr,
16218            p610pfs_by::Ncodr,
16219            P610PfsBy_SPEC,
16220            crate::common::RW,
16221        >::from_register(self, 0)
16222    }
16223}
16224impl ::core::default::Default for P610PfsBy {
16225    #[inline(always)]
16226    fn default() -> P610PfsBy {
16227        <crate::RegValueT<P610PfsBy_SPEC> as RegisterValue<_>>::new(0)
16228    }
16229}
16230pub mod p610pfs_by {
16231
16232    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16233    pub struct Podr_SPEC;
16234    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16235    impl Podr {
16236        #[doc = "Output low"]
16237        pub const _0: Self = Self::new(0);
16238
16239        #[doc = "Output high"]
16240        pub const _1: Self = Self::new(1);
16241    }
16242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16243    pub struct Pidr_SPEC;
16244    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16245    impl Pidr {
16246        #[doc = "Low level"]
16247        pub const _0: Self = Self::new(0);
16248
16249        #[doc = "High level"]
16250        pub const _1: Self = Self::new(1);
16251    }
16252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16253    pub struct Pdr_SPEC;
16254    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16255    impl Pdr {
16256        #[doc = "Input (functions as an input pin)"]
16257        pub const _0: Self = Self::new(0);
16258
16259        #[doc = "Output (functions as an output pin)"]
16260        pub const _1: Self = Self::new(1);
16261    }
16262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16263    pub struct Pcr_SPEC;
16264    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16265    impl Pcr {
16266        #[doc = "Disable input pull-up"]
16267        pub const _0: Self = Self::new(0);
16268
16269        #[doc = "Enable input pull-up"]
16270        pub const _1: Self = Self::new(1);
16271    }
16272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16273    pub struct Ncodr_SPEC;
16274    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16275    impl Ncodr {
16276        #[doc = "Output CMOS"]
16277        pub const _0: Self = Self::new(0);
16278
16279        #[doc = "Output NMOS open-drain"]
16280        pub const _1: Self = Self::new(1);
16281    }
16282}
16283#[doc(hidden)]
16284#[derive(Copy, Clone, Eq, PartialEq)]
16285pub struct P708Pfs_SPEC;
16286impl crate::sealed::RegSpec for P708Pfs_SPEC {
16287    type DataType = u32;
16288}
16289
16290#[doc = "Port 708 Pin Function Select Register"]
16291pub type P708Pfs = crate::RegValueT<P708Pfs_SPEC>;
16292
16293impl P708Pfs {
16294    #[doc = "Port Output Data"]
16295    #[inline(always)]
16296    pub fn podr(
16297        self,
16298    ) -> crate::common::RegisterField<
16299        0,
16300        0x1,
16301        1,
16302        0,
16303        p708pfs::Podr,
16304        p708pfs::Podr,
16305        P708Pfs_SPEC,
16306        crate::common::RW,
16307    > {
16308        crate::common::RegisterField::<
16309            0,
16310            0x1,
16311            1,
16312            0,
16313            p708pfs::Podr,
16314            p708pfs::Podr,
16315            P708Pfs_SPEC,
16316            crate::common::RW,
16317        >::from_register(self, 0)
16318    }
16319
16320    #[doc = "Port State"]
16321    #[inline(always)]
16322    pub fn pidr(
16323        self,
16324    ) -> crate::common::RegisterField<
16325        1,
16326        0x1,
16327        1,
16328        0,
16329        p708pfs::Pidr,
16330        p708pfs::Pidr,
16331        P708Pfs_SPEC,
16332        crate::common::R,
16333    > {
16334        crate::common::RegisterField::<
16335            1,
16336            0x1,
16337            1,
16338            0,
16339            p708pfs::Pidr,
16340            p708pfs::Pidr,
16341            P708Pfs_SPEC,
16342            crate::common::R,
16343        >::from_register(self, 0)
16344    }
16345
16346    #[doc = "Port Direction"]
16347    #[inline(always)]
16348    pub fn pdr(
16349        self,
16350    ) -> crate::common::RegisterField<
16351        2,
16352        0x1,
16353        1,
16354        0,
16355        p708pfs::Pdr,
16356        p708pfs::Pdr,
16357        P708Pfs_SPEC,
16358        crate::common::RW,
16359    > {
16360        crate::common::RegisterField::<
16361            2,
16362            0x1,
16363            1,
16364            0,
16365            p708pfs::Pdr,
16366            p708pfs::Pdr,
16367            P708Pfs_SPEC,
16368            crate::common::RW,
16369        >::from_register(self, 0)
16370    }
16371
16372    #[doc = "Pull-up Control"]
16373    #[inline(always)]
16374    pub fn pcr(
16375        self,
16376    ) -> crate::common::RegisterField<
16377        4,
16378        0x1,
16379        1,
16380        0,
16381        p708pfs::Pcr,
16382        p708pfs::Pcr,
16383        P708Pfs_SPEC,
16384        crate::common::RW,
16385    > {
16386        crate::common::RegisterField::<
16387            4,
16388            0x1,
16389            1,
16390            0,
16391            p708pfs::Pcr,
16392            p708pfs::Pcr,
16393            P708Pfs_SPEC,
16394            crate::common::RW,
16395        >::from_register(self, 0)
16396    }
16397
16398    #[doc = "N-Channel Open-Drain Control"]
16399    #[inline(always)]
16400    pub fn ncodr(
16401        self,
16402    ) -> crate::common::RegisterField<
16403        6,
16404        0x1,
16405        1,
16406        0,
16407        p708pfs::Ncodr,
16408        p708pfs::Ncodr,
16409        P708Pfs_SPEC,
16410        crate::common::RW,
16411    > {
16412        crate::common::RegisterField::<
16413            6,
16414            0x1,
16415            1,
16416            0,
16417            p708pfs::Ncodr,
16418            p708pfs::Ncodr,
16419            P708Pfs_SPEC,
16420            crate::common::RW,
16421        >::from_register(self, 0)
16422    }
16423
16424    #[doc = "IRQ Input Enable"]
16425    #[inline(always)]
16426    pub fn isel(
16427        self,
16428    ) -> crate::common::RegisterField<
16429        14,
16430        0x1,
16431        1,
16432        0,
16433        p708pfs::Isel,
16434        p708pfs::Isel,
16435        P708Pfs_SPEC,
16436        crate::common::RW,
16437    > {
16438        crate::common::RegisterField::<
16439            14,
16440            0x1,
16441            1,
16442            0,
16443            p708pfs::Isel,
16444            p708pfs::Isel,
16445            P708Pfs_SPEC,
16446            crate::common::RW,
16447        >::from_register(self, 0)
16448    }
16449
16450    #[doc = "Analog Input Enable"]
16451    #[inline(always)]
16452    pub fn asel(
16453        self,
16454    ) -> crate::common::RegisterField<
16455        15,
16456        0x1,
16457        1,
16458        0,
16459        p708pfs::Asel,
16460        p708pfs::Asel,
16461        P708Pfs_SPEC,
16462        crate::common::RW,
16463    > {
16464        crate::common::RegisterField::<
16465            15,
16466            0x1,
16467            1,
16468            0,
16469            p708pfs::Asel,
16470            p708pfs::Asel,
16471            P708Pfs_SPEC,
16472            crate::common::RW,
16473        >::from_register(self, 0)
16474    }
16475
16476    #[doc = "Port Mode Control"]
16477    #[inline(always)]
16478    pub fn pmr(
16479        self,
16480    ) -> crate::common::RegisterField<
16481        16,
16482        0x1,
16483        1,
16484        0,
16485        p708pfs::Pmr,
16486        p708pfs::Pmr,
16487        P708Pfs_SPEC,
16488        crate::common::RW,
16489    > {
16490        crate::common::RegisterField::<
16491            16,
16492            0x1,
16493            1,
16494            0,
16495            p708pfs::Pmr,
16496            p708pfs::Pmr,
16497            P708Pfs_SPEC,
16498            crate::common::RW,
16499        >::from_register(self, 0)
16500    }
16501
16502    #[doc = "Peripheral Select"]
16503    #[inline(always)]
16504    pub fn psel(
16505        self,
16506    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P708Pfs_SPEC, crate::common::RW> {
16507        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P708Pfs_SPEC,crate::common::RW>::from_register(self,0)
16508    }
16509}
16510impl ::core::default::Default for P708Pfs {
16511    #[inline(always)]
16512    fn default() -> P708Pfs {
16513        <crate::RegValueT<P708Pfs_SPEC> as RegisterValue<_>>::new(0)
16514    }
16515}
16516pub mod p708pfs {
16517
16518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16519    pub struct Podr_SPEC;
16520    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16521    impl Podr {
16522        #[doc = "Output low"]
16523        pub const _0: Self = Self::new(0);
16524
16525        #[doc = "Output high"]
16526        pub const _1: Self = Self::new(1);
16527    }
16528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16529    pub struct Pidr_SPEC;
16530    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16531    impl Pidr {
16532        #[doc = "Low level"]
16533        pub const _0: Self = Self::new(0);
16534
16535        #[doc = "High level"]
16536        pub const _1: Self = Self::new(1);
16537    }
16538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16539    pub struct Pdr_SPEC;
16540    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16541    impl Pdr {
16542        #[doc = "Input (functions as an input pin)"]
16543        pub const _0: Self = Self::new(0);
16544
16545        #[doc = "Output (functions as an output pin)"]
16546        pub const _1: Self = Self::new(1);
16547    }
16548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16549    pub struct Pcr_SPEC;
16550    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16551    impl Pcr {
16552        #[doc = "Disable input pull-up"]
16553        pub const _0: Self = Self::new(0);
16554
16555        #[doc = "Enable input pull-up"]
16556        pub const _1: Self = Self::new(1);
16557    }
16558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16559    pub struct Ncodr_SPEC;
16560    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16561    impl Ncodr {
16562        #[doc = "Output CMOS"]
16563        pub const _0: Self = Self::new(0);
16564
16565        #[doc = "Output NMOS open-drain"]
16566        pub const _1: Self = Self::new(1);
16567    }
16568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16569    pub struct Isel_SPEC;
16570    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16571    impl Isel {
16572        #[doc = "Do not use as IRQn input pin"]
16573        pub const _0: Self = Self::new(0);
16574
16575        #[doc = "Use as IRQn input pin"]
16576        pub const _1: Self = Self::new(1);
16577    }
16578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16579    pub struct Asel_SPEC;
16580    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16581    impl Asel {
16582        #[doc = "Do not use as analog pin"]
16583        pub const _0: Self = Self::new(0);
16584
16585        #[doc = "Use as analog pin"]
16586        pub const _1: Self = Self::new(1);
16587    }
16588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16589    pub struct Pmr_SPEC;
16590    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
16591    impl Pmr {
16592        #[doc = "Use as general I/O pin"]
16593        pub const _0: Self = Self::new(0);
16594
16595        #[doc = "Use as I/O port for peripheral functions"]
16596        pub const _1: Self = Self::new(1);
16597    }
16598}
16599#[doc(hidden)]
16600#[derive(Copy, Clone, Eq, PartialEq)]
16601pub struct P708PfsHa_SPEC;
16602impl crate::sealed::RegSpec for P708PfsHa_SPEC {
16603    type DataType = u16;
16604}
16605
16606#[doc = "Port 708 Pin Function Select Register"]
16607pub type P708PfsHa = crate::RegValueT<P708PfsHa_SPEC>;
16608
16609impl P708PfsHa {
16610    #[doc = "Port Output Data"]
16611    #[inline(always)]
16612    pub fn podr(
16613        self,
16614    ) -> crate::common::RegisterField<
16615        0,
16616        0x1,
16617        1,
16618        0,
16619        p708pfs_ha::Podr,
16620        p708pfs_ha::Podr,
16621        P708PfsHa_SPEC,
16622        crate::common::RW,
16623    > {
16624        crate::common::RegisterField::<
16625            0,
16626            0x1,
16627            1,
16628            0,
16629            p708pfs_ha::Podr,
16630            p708pfs_ha::Podr,
16631            P708PfsHa_SPEC,
16632            crate::common::RW,
16633        >::from_register(self, 0)
16634    }
16635
16636    #[doc = "Port State"]
16637    #[inline(always)]
16638    pub fn pidr(
16639        self,
16640    ) -> crate::common::RegisterField<
16641        1,
16642        0x1,
16643        1,
16644        0,
16645        p708pfs_ha::Pidr,
16646        p708pfs_ha::Pidr,
16647        P708PfsHa_SPEC,
16648        crate::common::R,
16649    > {
16650        crate::common::RegisterField::<
16651            1,
16652            0x1,
16653            1,
16654            0,
16655            p708pfs_ha::Pidr,
16656            p708pfs_ha::Pidr,
16657            P708PfsHa_SPEC,
16658            crate::common::R,
16659        >::from_register(self, 0)
16660    }
16661
16662    #[doc = "Port Direction"]
16663    #[inline(always)]
16664    pub fn pdr(
16665        self,
16666    ) -> crate::common::RegisterField<
16667        2,
16668        0x1,
16669        1,
16670        0,
16671        p708pfs_ha::Pdr,
16672        p708pfs_ha::Pdr,
16673        P708PfsHa_SPEC,
16674        crate::common::RW,
16675    > {
16676        crate::common::RegisterField::<
16677            2,
16678            0x1,
16679            1,
16680            0,
16681            p708pfs_ha::Pdr,
16682            p708pfs_ha::Pdr,
16683            P708PfsHa_SPEC,
16684            crate::common::RW,
16685        >::from_register(self, 0)
16686    }
16687
16688    #[doc = "Pull-up Control"]
16689    #[inline(always)]
16690    pub fn pcr(
16691        self,
16692    ) -> crate::common::RegisterField<
16693        4,
16694        0x1,
16695        1,
16696        0,
16697        p708pfs_ha::Pcr,
16698        p708pfs_ha::Pcr,
16699        P708PfsHa_SPEC,
16700        crate::common::RW,
16701    > {
16702        crate::common::RegisterField::<
16703            4,
16704            0x1,
16705            1,
16706            0,
16707            p708pfs_ha::Pcr,
16708            p708pfs_ha::Pcr,
16709            P708PfsHa_SPEC,
16710            crate::common::RW,
16711        >::from_register(self, 0)
16712    }
16713
16714    #[doc = "N-Channel Open-Drain Control"]
16715    #[inline(always)]
16716    pub fn ncodr(
16717        self,
16718    ) -> crate::common::RegisterField<
16719        6,
16720        0x1,
16721        1,
16722        0,
16723        p708pfs_ha::Ncodr,
16724        p708pfs_ha::Ncodr,
16725        P708PfsHa_SPEC,
16726        crate::common::RW,
16727    > {
16728        crate::common::RegisterField::<
16729            6,
16730            0x1,
16731            1,
16732            0,
16733            p708pfs_ha::Ncodr,
16734            p708pfs_ha::Ncodr,
16735            P708PfsHa_SPEC,
16736            crate::common::RW,
16737        >::from_register(self, 0)
16738    }
16739
16740    #[doc = "IRQ Input Enable"]
16741    #[inline(always)]
16742    pub fn isel(
16743        self,
16744    ) -> crate::common::RegisterField<
16745        14,
16746        0x1,
16747        1,
16748        0,
16749        p708pfs_ha::Isel,
16750        p708pfs_ha::Isel,
16751        P708PfsHa_SPEC,
16752        crate::common::RW,
16753    > {
16754        crate::common::RegisterField::<
16755            14,
16756            0x1,
16757            1,
16758            0,
16759            p708pfs_ha::Isel,
16760            p708pfs_ha::Isel,
16761            P708PfsHa_SPEC,
16762            crate::common::RW,
16763        >::from_register(self, 0)
16764    }
16765
16766    #[doc = "Analog Input Enable"]
16767    #[inline(always)]
16768    pub fn asel(
16769        self,
16770    ) -> crate::common::RegisterField<
16771        15,
16772        0x1,
16773        1,
16774        0,
16775        p708pfs_ha::Asel,
16776        p708pfs_ha::Asel,
16777        P708PfsHa_SPEC,
16778        crate::common::RW,
16779    > {
16780        crate::common::RegisterField::<
16781            15,
16782            0x1,
16783            1,
16784            0,
16785            p708pfs_ha::Asel,
16786            p708pfs_ha::Asel,
16787            P708PfsHa_SPEC,
16788            crate::common::RW,
16789        >::from_register(self, 0)
16790    }
16791}
16792impl ::core::default::Default for P708PfsHa {
16793    #[inline(always)]
16794    fn default() -> P708PfsHa {
16795        <crate::RegValueT<P708PfsHa_SPEC> as RegisterValue<_>>::new(0)
16796    }
16797}
16798pub mod p708pfs_ha {
16799
16800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16801    pub struct Podr_SPEC;
16802    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16803    impl Podr {
16804        #[doc = "Output low"]
16805        pub const _0: Self = Self::new(0);
16806
16807        #[doc = "Output high"]
16808        pub const _1: Self = Self::new(1);
16809    }
16810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16811    pub struct Pidr_SPEC;
16812    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16813    impl Pidr {
16814        #[doc = "Low level"]
16815        pub const _0: Self = Self::new(0);
16816
16817        #[doc = "High level"]
16818        pub const _1: Self = Self::new(1);
16819    }
16820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16821    pub struct Pdr_SPEC;
16822    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16823    impl Pdr {
16824        #[doc = "Input (functions as an input pin)"]
16825        pub const _0: Self = Self::new(0);
16826
16827        #[doc = "Output (functions as an output pin)"]
16828        pub const _1: Self = Self::new(1);
16829    }
16830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16831    pub struct Pcr_SPEC;
16832    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16833    impl Pcr {
16834        #[doc = "Disable input pull-up"]
16835        pub const _0: Self = Self::new(0);
16836
16837        #[doc = "Enable input pull-up"]
16838        pub const _1: Self = Self::new(1);
16839    }
16840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16841    pub struct Ncodr_SPEC;
16842    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16843    impl Ncodr {
16844        #[doc = "Output CMOS"]
16845        pub const _0: Self = Self::new(0);
16846
16847        #[doc = "Output NMOS open-drain"]
16848        pub const _1: Self = Self::new(1);
16849    }
16850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16851    pub struct Isel_SPEC;
16852    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16853    impl Isel {
16854        #[doc = "Do not use as IRQn input pin"]
16855        pub const _0: Self = Self::new(0);
16856
16857        #[doc = "Use as IRQn input pin"]
16858        pub const _1: Self = Self::new(1);
16859    }
16860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16861    pub struct Asel_SPEC;
16862    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16863    impl Asel {
16864        #[doc = "Do not use as analog pin"]
16865        pub const _0: Self = Self::new(0);
16866
16867        #[doc = "Use as analog pin"]
16868        pub const _1: Self = Self::new(1);
16869    }
16870}
16871#[doc(hidden)]
16872#[derive(Copy, Clone, Eq, PartialEq)]
16873pub struct P708PfsBy_SPEC;
16874impl crate::sealed::RegSpec for P708PfsBy_SPEC {
16875    type DataType = u8;
16876}
16877
16878#[doc = "Port 708 Pin Function Select Register"]
16879pub type P708PfsBy = crate::RegValueT<P708PfsBy_SPEC>;
16880
16881impl P708PfsBy {
16882    #[doc = "Port Output Data"]
16883    #[inline(always)]
16884    pub fn podr(
16885        self,
16886    ) -> crate::common::RegisterField<
16887        0,
16888        0x1,
16889        1,
16890        0,
16891        p708pfs_by::Podr,
16892        p708pfs_by::Podr,
16893        P708PfsBy_SPEC,
16894        crate::common::RW,
16895    > {
16896        crate::common::RegisterField::<
16897            0,
16898            0x1,
16899            1,
16900            0,
16901            p708pfs_by::Podr,
16902            p708pfs_by::Podr,
16903            P708PfsBy_SPEC,
16904            crate::common::RW,
16905        >::from_register(self, 0)
16906    }
16907
16908    #[doc = "Port State"]
16909    #[inline(always)]
16910    pub fn pidr(
16911        self,
16912    ) -> crate::common::RegisterField<
16913        1,
16914        0x1,
16915        1,
16916        0,
16917        p708pfs_by::Pidr,
16918        p708pfs_by::Pidr,
16919        P708PfsBy_SPEC,
16920        crate::common::R,
16921    > {
16922        crate::common::RegisterField::<
16923            1,
16924            0x1,
16925            1,
16926            0,
16927            p708pfs_by::Pidr,
16928            p708pfs_by::Pidr,
16929            P708PfsBy_SPEC,
16930            crate::common::R,
16931        >::from_register(self, 0)
16932    }
16933
16934    #[doc = "Port Direction"]
16935    #[inline(always)]
16936    pub fn pdr(
16937        self,
16938    ) -> crate::common::RegisterField<
16939        2,
16940        0x1,
16941        1,
16942        0,
16943        p708pfs_by::Pdr,
16944        p708pfs_by::Pdr,
16945        P708PfsBy_SPEC,
16946        crate::common::RW,
16947    > {
16948        crate::common::RegisterField::<
16949            2,
16950            0x1,
16951            1,
16952            0,
16953            p708pfs_by::Pdr,
16954            p708pfs_by::Pdr,
16955            P708PfsBy_SPEC,
16956            crate::common::RW,
16957        >::from_register(self, 0)
16958    }
16959
16960    #[doc = "Pull-up Control"]
16961    #[inline(always)]
16962    pub fn pcr(
16963        self,
16964    ) -> crate::common::RegisterField<
16965        4,
16966        0x1,
16967        1,
16968        0,
16969        p708pfs_by::Pcr,
16970        p708pfs_by::Pcr,
16971        P708PfsBy_SPEC,
16972        crate::common::RW,
16973    > {
16974        crate::common::RegisterField::<
16975            4,
16976            0x1,
16977            1,
16978            0,
16979            p708pfs_by::Pcr,
16980            p708pfs_by::Pcr,
16981            P708PfsBy_SPEC,
16982            crate::common::RW,
16983        >::from_register(self, 0)
16984    }
16985
16986    #[doc = "N-Channel Open-Drain Control"]
16987    #[inline(always)]
16988    pub fn ncodr(
16989        self,
16990    ) -> crate::common::RegisterField<
16991        6,
16992        0x1,
16993        1,
16994        0,
16995        p708pfs_by::Ncodr,
16996        p708pfs_by::Ncodr,
16997        P708PfsBy_SPEC,
16998        crate::common::RW,
16999    > {
17000        crate::common::RegisterField::<
17001            6,
17002            0x1,
17003            1,
17004            0,
17005            p708pfs_by::Ncodr,
17006            p708pfs_by::Ncodr,
17007            P708PfsBy_SPEC,
17008            crate::common::RW,
17009        >::from_register(self, 0)
17010    }
17011}
17012impl ::core::default::Default for P708PfsBy {
17013    #[inline(always)]
17014    fn default() -> P708PfsBy {
17015        <crate::RegValueT<P708PfsBy_SPEC> as RegisterValue<_>>::new(0)
17016    }
17017}
17018pub mod p708pfs_by {
17019
17020    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17021    pub struct Podr_SPEC;
17022    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17023    impl Podr {
17024        #[doc = "Output low"]
17025        pub const _0: Self = Self::new(0);
17026
17027        #[doc = "Output high"]
17028        pub const _1: Self = Self::new(1);
17029    }
17030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17031    pub struct Pidr_SPEC;
17032    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17033    impl Pidr {
17034        #[doc = "Low level"]
17035        pub const _0: Self = Self::new(0);
17036
17037        #[doc = "High level"]
17038        pub const _1: Self = Self::new(1);
17039    }
17040    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17041    pub struct Pdr_SPEC;
17042    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17043    impl Pdr {
17044        #[doc = "Input (functions as an input pin)"]
17045        pub const _0: Self = Self::new(0);
17046
17047        #[doc = "Output (functions as an output pin)"]
17048        pub const _1: Self = Self::new(1);
17049    }
17050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17051    pub struct Pcr_SPEC;
17052    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17053    impl Pcr {
17054        #[doc = "Disable input pull-up"]
17055        pub const _0: Self = Self::new(0);
17056
17057        #[doc = "Enable input pull-up"]
17058        pub const _1: Self = Self::new(1);
17059    }
17060    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17061    pub struct Ncodr_SPEC;
17062    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17063    impl Ncodr {
17064        #[doc = "Output CMOS"]
17065        pub const _0: Self = Self::new(0);
17066
17067        #[doc = "Output NMOS open-drain"]
17068        pub const _1: Self = Self::new(1);
17069    }
17070}
17071#[doc(hidden)]
17072#[derive(Copy, Clone, Eq, PartialEq)]
17073pub struct Pfenet_SPEC;
17074impl crate::sealed::RegSpec for Pfenet_SPEC {
17075    type DataType = u8;
17076}
17077
17078#[doc = "Ethernet Control Register"]
17079pub type Pfenet = crate::RegValueT<Pfenet_SPEC>;
17080
17081impl Pfenet {
17082    #[doc = "Ethernet Mode Setting ch0"]
17083    #[inline(always)]
17084    pub fn phymode0(
17085        self,
17086    ) -> crate::common::RegisterField<
17087        4,
17088        0x1,
17089        1,
17090        0,
17091        pfenet::Phymode0,
17092        pfenet::Phymode0,
17093        Pfenet_SPEC,
17094        crate::common::RW,
17095    > {
17096        crate::common::RegisterField::<
17097            4,
17098            0x1,
17099            1,
17100            0,
17101            pfenet::Phymode0,
17102            pfenet::Phymode0,
17103            Pfenet_SPEC,
17104            crate::common::RW,
17105        >::from_register(self, 0)
17106    }
17107}
17108impl ::core::default::Default for Pfenet {
17109    #[inline(always)]
17110    fn default() -> Pfenet {
17111        <crate::RegValueT<Pfenet_SPEC> as RegisterValue<_>>::new(0)
17112    }
17113}
17114pub mod pfenet {
17115
17116    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17117    pub struct Phymode0_SPEC;
17118    pub type Phymode0 = crate::EnumBitfieldStruct<u8, Phymode0_SPEC>;
17119    impl Phymode0 {
17120        #[doc = "RMII mode (ETHERC channel 0)"]
17121        pub const _0: Self = Self::new(0);
17122
17123        #[doc = "Setting prohibited"]
17124        pub const _1: Self = Self::new(1);
17125    }
17126}
17127#[doc(hidden)]
17128#[derive(Copy, Clone, Eq, PartialEq)]
17129pub struct Pwpr_SPEC;
17130impl crate::sealed::RegSpec for Pwpr_SPEC {
17131    type DataType = u8;
17132}
17133
17134#[doc = "Write-Protect Register"]
17135pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
17136
17137impl Pwpr {
17138    #[doc = "PmnPFS Register Write Enable"]
17139    #[inline(always)]
17140    pub fn pfswe(
17141        self,
17142    ) -> crate::common::RegisterField<
17143        6,
17144        0x1,
17145        1,
17146        0,
17147        pwpr::Pfswe,
17148        pwpr::Pfswe,
17149        Pwpr_SPEC,
17150        crate::common::RW,
17151    > {
17152        crate::common::RegisterField::<
17153            6,
17154            0x1,
17155            1,
17156            0,
17157            pwpr::Pfswe,
17158            pwpr::Pfswe,
17159            Pwpr_SPEC,
17160            crate::common::RW,
17161        >::from_register(self, 0)
17162    }
17163
17164    #[doc = "PFSWE Bit Write Disable"]
17165    #[inline(always)]
17166    pub fn b0wi(
17167        self,
17168    ) -> crate::common::RegisterField<
17169        7,
17170        0x1,
17171        1,
17172        0,
17173        pwpr::B0Wi,
17174        pwpr::B0Wi,
17175        Pwpr_SPEC,
17176        crate::common::RW,
17177    > {
17178        crate::common::RegisterField::<
17179            7,
17180            0x1,
17181            1,
17182            0,
17183            pwpr::B0Wi,
17184            pwpr::B0Wi,
17185            Pwpr_SPEC,
17186            crate::common::RW,
17187        >::from_register(self, 0)
17188    }
17189}
17190impl ::core::default::Default for Pwpr {
17191    #[inline(always)]
17192    fn default() -> Pwpr {
17193        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
17194    }
17195}
17196pub mod pwpr {
17197
17198    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17199    pub struct Pfswe_SPEC;
17200    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
17201    impl Pfswe {
17202        #[doc = "Writing to the PmnPFS register is disabled"]
17203        pub const _0: Self = Self::new(0);
17204
17205        #[doc = "Writing to the PmnPFS register is enabled"]
17206        pub const _1: Self = Self::new(1);
17207    }
17208    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17209    pub struct B0Wi_SPEC;
17210    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
17211    impl B0Wi {
17212        #[doc = "Writing to the PFSWE bit is enabled"]
17213        pub const _0: Self = Self::new(0);
17214
17215        #[doc = "Writing to the PFSWE bit is disabled"]
17216        pub const _1: Self = Self::new(1);
17217    }
17218}
17219#[doc(hidden)]
17220#[derive(Copy, Clone, Eq, PartialEq)]
17221pub struct Pwprs_SPEC;
17222impl crate::sealed::RegSpec for Pwprs_SPEC {
17223    type DataType = u8;
17224}
17225
17226#[doc = "Write-Protect Register for Secure"]
17227pub type Pwprs = crate::RegValueT<Pwprs_SPEC>;
17228
17229impl Pwprs {
17230    #[doc = "PmnPFS Register Write Enable"]
17231    #[inline(always)]
17232    pub fn pfswe(
17233        self,
17234    ) -> crate::common::RegisterField<
17235        6,
17236        0x1,
17237        1,
17238        0,
17239        pwprs::Pfswe,
17240        pwprs::Pfswe,
17241        Pwprs_SPEC,
17242        crate::common::RW,
17243    > {
17244        crate::common::RegisterField::<
17245            6,
17246            0x1,
17247            1,
17248            0,
17249            pwprs::Pfswe,
17250            pwprs::Pfswe,
17251            Pwprs_SPEC,
17252            crate::common::RW,
17253        >::from_register(self, 0)
17254    }
17255
17256    #[doc = "PFSWE Bit Write Disable"]
17257    #[inline(always)]
17258    pub fn b0wi(
17259        self,
17260    ) -> crate::common::RegisterField<
17261        7,
17262        0x1,
17263        1,
17264        0,
17265        pwprs::B0Wi,
17266        pwprs::B0Wi,
17267        Pwprs_SPEC,
17268        crate::common::RW,
17269    > {
17270        crate::common::RegisterField::<
17271            7,
17272            0x1,
17273            1,
17274            0,
17275            pwprs::B0Wi,
17276            pwprs::B0Wi,
17277            Pwprs_SPEC,
17278            crate::common::RW,
17279        >::from_register(self, 0)
17280    }
17281}
17282impl ::core::default::Default for Pwprs {
17283    #[inline(always)]
17284    fn default() -> Pwprs {
17285        <crate::RegValueT<Pwprs_SPEC> as RegisterValue<_>>::new(128)
17286    }
17287}
17288pub mod pwprs {
17289
17290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17291    pub struct Pfswe_SPEC;
17292    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
17293    impl Pfswe {
17294        #[doc = "Disable writes to the PmnPFS register"]
17295        pub const _0: Self = Self::new(0);
17296
17297        #[doc = "Enable writes to the PmnPFS register"]
17298        pub const _1: Self = Self::new(1);
17299    }
17300    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17301    pub struct B0Wi_SPEC;
17302    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
17303    impl B0Wi {
17304        #[doc = "Enable writes the PFSWE bit"]
17305        pub const _0: Self = Self::new(0);
17306
17307        #[doc = "Disable writes to the PFSWE bit"]
17308        pub const _1: Self = Self::new(1);
17309    }
17310}
17311#[doc(hidden)]
17312#[derive(Copy, Clone, Eq, PartialEq)]
17313pub struct Psar_SPEC;
17314impl crate::sealed::RegSpec for Psar_SPEC {
17315    type DataType = u16;
17316}
17317
17318#[doc = "Port Security Attribution register"]
17319pub type Psar = crate::RegValueT<Psar_SPEC>;
17320
17321impl Psar {
17322    #[doc = "Pmn Security Attribution"]
17323    #[inline(always)]
17324    pub fn pmnsa(
17325        self,
17326    ) -> crate::common::RegisterField<
17327        0,
17328        0xffff,
17329        1,
17330        0,
17331        psar::Pmnsa,
17332        psar::Pmnsa,
17333        Psar_SPEC,
17334        crate::common::RW,
17335    > {
17336        crate::common::RegisterField::<
17337            0,
17338            0xffff,
17339            1,
17340            0,
17341            psar::Pmnsa,
17342            psar::Pmnsa,
17343            Psar_SPEC,
17344            crate::common::RW,
17345        >::from_register(self, 0)
17346    }
17347}
17348impl ::core::default::Default for Psar {
17349    #[inline(always)]
17350    fn default() -> Psar {
17351        <crate::RegValueT<Psar_SPEC> as RegisterValue<_>>::new(65535)
17352    }
17353}
17354pub mod psar {
17355
17356    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17357    pub struct Pmnsa_SPEC;
17358    pub type Pmnsa = crate::EnumBitfieldStruct<u8, Pmnsa_SPEC>;
17359    impl Pmnsa {
17360        #[doc = "Secure"]
17361        pub const _0: Self = Self::new(0);
17362
17363        #[doc = "Non Secure"]
17364        pub const _1: Self = Self::new(1);
17365    }
17366}