Skip to main content

ra2e1_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.51.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:01:43 +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"Pmn Pin Function 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        9,
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    #[inline(always)]
131    pub const fn p008pfs(
132        &self,
133    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
134        unsafe {
135            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
136                self._svd2pac_as_ptr().add(0x20usize),
137            )
138        }
139    }
140
141    #[doc = "Port 00%s Pin Function Select Register"]
142    #[inline(always)]
143    pub const fn p00pfs_ha(
144        &self,
145    ) -> &'static crate::common::ClusterRegisterArray<
146        crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW>,
147        9,
148        0x4,
149    > {
150        unsafe {
151            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2usize))
152        }
153    }
154    #[inline(always)]
155    pub const fn p000pfs_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(0x2usize),
161            )
162        }
163    }
164    #[inline(always)]
165    pub const fn p001pfs_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(0x6usize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn p002pfs_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(0xausize),
181            )
182        }
183    }
184    #[inline(always)]
185    pub const fn p003pfs_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(0xeusize),
191            )
192        }
193    }
194    #[inline(always)]
195    pub const fn p004pfs_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(0x12usize),
201            )
202        }
203    }
204    #[inline(always)]
205    pub const fn p005pfs_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(0x16usize),
211            )
212        }
213    }
214    #[inline(always)]
215    pub const fn p006pfs_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(0x1ausize),
221            )
222        }
223    }
224    #[inline(always)]
225    pub const fn p007pfs_ha(
226        &self,
227    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
228        unsafe {
229            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
230                self._svd2pac_as_ptr().add(0x1eusize),
231            )
232        }
233    }
234    #[inline(always)]
235    pub const fn p008pfs_ha(
236        &self,
237    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
238        unsafe {
239            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
240                self._svd2pac_as_ptr().add(0x22usize),
241            )
242        }
243    }
244
245    #[doc = "Port 00%s Pin Function Select Register"]
246    #[inline(always)]
247    pub const fn p00pfs_by(
248        &self,
249    ) -> &'static crate::common::ClusterRegisterArray<
250        crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW>,
251        9,
252        0x4,
253    > {
254        unsafe {
255            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3usize))
256        }
257    }
258    #[inline(always)]
259    pub const fn p000pfs_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(0x3usize),
265            )
266        }
267    }
268    #[inline(always)]
269    pub const fn p001pfs_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(0x7usize),
275            )
276        }
277    }
278    #[inline(always)]
279    pub const fn p002pfs_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(0xbusize),
285            )
286        }
287    }
288    #[inline(always)]
289    pub const fn p003pfs_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(0xfusize),
295            )
296        }
297    }
298    #[inline(always)]
299    pub const fn p004pfs_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(0x13usize),
305            )
306        }
307    }
308    #[inline(always)]
309    pub const fn p005pfs_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(0x17usize),
315            )
316        }
317    }
318    #[inline(always)]
319    pub const fn p006pfs_by(
320        &self,
321    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
322        unsafe {
323            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
324                self._svd2pac_as_ptr().add(0x1busize),
325            )
326        }
327    }
328    #[inline(always)]
329    pub const fn p007pfs_by(
330        &self,
331    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
332        unsafe {
333            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
334                self._svd2pac_as_ptr().add(0x1fusize),
335            )
336        }
337    }
338    #[inline(always)]
339    pub const fn p008pfs_by(
340        &self,
341    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
342        unsafe {
343            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
344                self._svd2pac_as_ptr().add(0x23usize),
345            )
346        }
347    }
348
349    #[doc = "Port 0%s Pin Function Select Register"]
350    #[inline(always)]
351    pub const fn p0pfs(
352        &self,
353    ) -> &'static crate::common::ClusterRegisterArray<
354        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
355        6,
356        0x4,
357    > {
358        unsafe {
359            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x28usize))
360        }
361    }
362    #[inline(always)]
363    pub const fn p010pfs(
364        &self,
365    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
366        unsafe {
367            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
368                self._svd2pac_as_ptr().add(0x28usize),
369            )
370        }
371    }
372    #[inline(always)]
373    pub const fn p011pfs(
374        &self,
375    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
376        unsafe {
377            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
378                self._svd2pac_as_ptr().add(0x2cusize),
379            )
380        }
381    }
382    #[inline(always)]
383    pub const fn p012pfs(
384        &self,
385    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
386        unsafe {
387            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
388                self._svd2pac_as_ptr().add(0x30usize),
389            )
390        }
391    }
392    #[inline(always)]
393    pub const fn p013pfs(
394        &self,
395    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
396        unsafe {
397            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
398                self._svd2pac_as_ptr().add(0x34usize),
399            )
400        }
401    }
402    #[inline(always)]
403    pub const fn p014pfs(
404        &self,
405    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
406        unsafe {
407            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
408                self._svd2pac_as_ptr().add(0x38usize),
409            )
410        }
411    }
412    #[inline(always)]
413    pub const fn p015pfs(
414        &self,
415    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
416        unsafe {
417            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
418                self._svd2pac_as_ptr().add(0x3cusize),
419            )
420        }
421    }
422
423    #[doc = "Port 0%s Pin Function Select Register"]
424    #[inline(always)]
425    pub const fn p0pfs_ha(
426        &self,
427    ) -> &'static crate::common::ClusterRegisterArray<
428        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
429        6,
430        0x4,
431    > {
432        unsafe {
433            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2ausize))
434        }
435    }
436    #[inline(always)]
437    pub const fn p010pfs_ha(
438        &self,
439    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
440        unsafe {
441            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
442                self._svd2pac_as_ptr().add(0x2ausize),
443            )
444        }
445    }
446    #[inline(always)]
447    pub const fn p011pfs_ha(
448        &self,
449    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
450        unsafe {
451            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
452                self._svd2pac_as_ptr().add(0x2eusize),
453            )
454        }
455    }
456    #[inline(always)]
457    pub const fn p012pfs_ha(
458        &self,
459    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
460        unsafe {
461            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
462                self._svd2pac_as_ptr().add(0x32usize),
463            )
464        }
465    }
466    #[inline(always)]
467    pub const fn p013pfs_ha(
468        &self,
469    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
470        unsafe {
471            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
472                self._svd2pac_as_ptr().add(0x36usize),
473            )
474        }
475    }
476    #[inline(always)]
477    pub const fn p014pfs_ha(
478        &self,
479    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
480        unsafe {
481            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
482                self._svd2pac_as_ptr().add(0x3ausize),
483            )
484        }
485    }
486    #[inline(always)]
487    pub const fn p015pfs_ha(
488        &self,
489    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
490        unsafe {
491            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
492                self._svd2pac_as_ptr().add(0x3eusize),
493            )
494        }
495    }
496
497    #[doc = "Port 0%s Pin Function Select Register"]
498    #[inline(always)]
499    pub const fn p0pfs_by(
500        &self,
501    ) -> &'static crate::common::ClusterRegisterArray<
502        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
503        6,
504        0x4,
505    > {
506        unsafe {
507            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2busize))
508        }
509    }
510    #[inline(always)]
511    pub const fn p010pfs_by(
512        &self,
513    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
514        unsafe {
515            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
516                self._svd2pac_as_ptr().add(0x2busize),
517            )
518        }
519    }
520    #[inline(always)]
521    pub const fn p011pfs_by(
522        &self,
523    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
524        unsafe {
525            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
526                self._svd2pac_as_ptr().add(0x2fusize),
527            )
528        }
529    }
530    #[inline(always)]
531    pub const fn p012pfs_by(
532        &self,
533    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
534        unsafe {
535            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
536                self._svd2pac_as_ptr().add(0x33usize),
537            )
538        }
539    }
540    #[inline(always)]
541    pub const fn p013pfs_by(
542        &self,
543    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
544        unsafe {
545            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
546                self._svd2pac_as_ptr().add(0x37usize),
547            )
548        }
549    }
550    #[inline(always)]
551    pub const fn p014pfs_by(
552        &self,
553    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
554        unsafe {
555            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
556                self._svd2pac_as_ptr().add(0x3busize),
557            )
558        }
559    }
560    #[inline(always)]
561    pub const fn p015pfs_by(
562        &self,
563    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
564        unsafe {
565            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
566                self._svd2pac_as_ptr().add(0x3fusize),
567            )
568        }
569    }
570
571    #[doc = "Port 10%s Pin Function Select Register"]
572    #[inline(always)]
573    pub const fn p10pfs(
574        &self,
575    ) -> &'static crate::common::ClusterRegisterArray<
576        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
577        8,
578        0x4,
579    > {
580        unsafe {
581            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
582        }
583    }
584    #[inline(always)]
585    pub const fn p100pfs(
586        &self,
587    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
588        unsafe {
589            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
590                self._svd2pac_as_ptr().add(0x40usize),
591            )
592        }
593    }
594    #[inline(always)]
595    pub const fn p101pfs(
596        &self,
597    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
598        unsafe {
599            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
600                self._svd2pac_as_ptr().add(0x44usize),
601            )
602        }
603    }
604    #[inline(always)]
605    pub const fn p102pfs(
606        &self,
607    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
608        unsafe {
609            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
610                self._svd2pac_as_ptr().add(0x48usize),
611            )
612        }
613    }
614    #[inline(always)]
615    pub const fn p103pfs(
616        &self,
617    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
618        unsafe {
619            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
620                self._svd2pac_as_ptr().add(0x4cusize),
621            )
622        }
623    }
624    #[inline(always)]
625    pub const fn p104pfs(
626        &self,
627    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
628        unsafe {
629            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
630                self._svd2pac_as_ptr().add(0x50usize),
631            )
632        }
633    }
634    #[inline(always)]
635    pub const fn p105pfs(
636        &self,
637    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
638        unsafe {
639            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
640                self._svd2pac_as_ptr().add(0x54usize),
641            )
642        }
643    }
644    #[inline(always)]
645    pub const fn p106pfs(
646        &self,
647    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
648        unsafe {
649            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
650                self._svd2pac_as_ptr().add(0x58usize),
651            )
652        }
653    }
654    #[inline(always)]
655    pub const fn p107pfs(
656        &self,
657    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
658        unsafe {
659            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
660                self._svd2pac_as_ptr().add(0x5cusize),
661            )
662        }
663    }
664
665    #[doc = "Port 10%s Pin Function Select Register"]
666    #[inline(always)]
667    pub const fn p10pfs_ha(
668        &self,
669    ) -> &'static crate::common::ClusterRegisterArray<
670        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
671        8,
672        0x4,
673    > {
674        unsafe {
675            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
676        }
677    }
678    #[inline(always)]
679    pub const fn p100pfs_ha(
680        &self,
681    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
682        unsafe {
683            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
684                self._svd2pac_as_ptr().add(0x42usize),
685            )
686        }
687    }
688    #[inline(always)]
689    pub const fn p101pfs_ha(
690        &self,
691    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
692        unsafe {
693            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
694                self._svd2pac_as_ptr().add(0x46usize),
695            )
696        }
697    }
698    #[inline(always)]
699    pub const fn p102pfs_ha(
700        &self,
701    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
702        unsafe {
703            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
704                self._svd2pac_as_ptr().add(0x4ausize),
705            )
706        }
707    }
708    #[inline(always)]
709    pub const fn p103pfs_ha(
710        &self,
711    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
712        unsafe {
713            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
714                self._svd2pac_as_ptr().add(0x4eusize),
715            )
716        }
717    }
718    #[inline(always)]
719    pub const fn p104pfs_ha(
720        &self,
721    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
722        unsafe {
723            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
724                self._svd2pac_as_ptr().add(0x52usize),
725            )
726        }
727    }
728    #[inline(always)]
729    pub const fn p105pfs_ha(
730        &self,
731    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
732        unsafe {
733            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
734                self._svd2pac_as_ptr().add(0x56usize),
735            )
736        }
737    }
738    #[inline(always)]
739    pub const fn p106pfs_ha(
740        &self,
741    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
742        unsafe {
743            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
744                self._svd2pac_as_ptr().add(0x5ausize),
745            )
746        }
747    }
748    #[inline(always)]
749    pub const fn p107pfs_ha(
750        &self,
751    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
752        unsafe {
753            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
754                self._svd2pac_as_ptr().add(0x5eusize),
755            )
756        }
757    }
758
759    #[doc = "Port 10%s Pin Function Select Register"]
760    #[inline(always)]
761    pub const fn p10pfs_by(
762        &self,
763    ) -> &'static crate::common::ClusterRegisterArray<
764        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
765        8,
766        0x4,
767    > {
768        unsafe {
769            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
770        }
771    }
772    #[inline(always)]
773    pub const fn p100pfs_by(
774        &self,
775    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
776        unsafe {
777            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
778                self._svd2pac_as_ptr().add(0x43usize),
779            )
780        }
781    }
782    #[inline(always)]
783    pub const fn p101pfs_by(
784        &self,
785    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
786        unsafe {
787            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
788                self._svd2pac_as_ptr().add(0x47usize),
789            )
790        }
791    }
792    #[inline(always)]
793    pub const fn p102pfs_by(
794        &self,
795    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
796        unsafe {
797            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
798                self._svd2pac_as_ptr().add(0x4busize),
799            )
800        }
801    }
802    #[inline(always)]
803    pub const fn p103pfs_by(
804        &self,
805    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
806        unsafe {
807            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
808                self._svd2pac_as_ptr().add(0x4fusize),
809            )
810        }
811    }
812    #[inline(always)]
813    pub const fn p104pfs_by(
814        &self,
815    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
816        unsafe {
817            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
818                self._svd2pac_as_ptr().add(0x53usize),
819            )
820        }
821    }
822    #[inline(always)]
823    pub const fn p105pfs_by(
824        &self,
825    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
826        unsafe {
827            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
828                self._svd2pac_as_ptr().add(0x57usize),
829            )
830        }
831    }
832    #[inline(always)]
833    pub const fn p106pfs_by(
834        &self,
835    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
836        unsafe {
837            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
838                self._svd2pac_as_ptr().add(0x5busize),
839            )
840        }
841    }
842    #[inline(always)]
843    pub const fn p107pfs_by(
844        &self,
845    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
846        unsafe {
847            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
848                self._svd2pac_as_ptr().add(0x5fusize),
849            )
850        }
851    }
852
853    #[doc = "Port 108 Pin Function Select Register"]
854    #[inline(always)]
855    pub const fn p108pfs(
856        &self,
857    ) -> &'static crate::common::Reg<self::P108Pfs_SPEC, crate::common::RW> {
858        unsafe {
859            crate::common::Reg::<self::P108Pfs_SPEC, crate::common::RW>::from_ptr(
860                self._svd2pac_as_ptr().add(96usize),
861            )
862        }
863    }
864
865    #[doc = "Port 108 Pin Function Select Register"]
866    #[inline(always)]
867    pub const fn p108pfs_ha(
868        &self,
869    ) -> &'static crate::common::Reg<self::P108PfsHa_SPEC, crate::common::RW> {
870        unsafe {
871            crate::common::Reg::<self::P108PfsHa_SPEC, crate::common::RW>::from_ptr(
872                self._svd2pac_as_ptr().add(98usize),
873            )
874        }
875    }
876
877    #[doc = "Port 108 Pin Function Select Register"]
878    #[inline(always)]
879    pub const fn p108pfs_by(
880        &self,
881    ) -> &'static crate::common::Reg<self::P108PfsBy_SPEC, crate::common::RW> {
882        unsafe {
883            crate::common::Reg::<self::P108PfsBy_SPEC, crate::common::RW>::from_ptr(
884                self._svd2pac_as_ptr().add(99usize),
885            )
886        }
887    }
888
889    #[doc = "Port 109 Pin Function Select Register"]
890    #[inline(always)]
891    pub const fn p109pfs(
892        &self,
893    ) -> &'static crate::common::Reg<self::P109Pfs_SPEC, crate::common::RW> {
894        unsafe {
895            crate::common::Reg::<self::P109Pfs_SPEC, crate::common::RW>::from_ptr(
896                self._svd2pac_as_ptr().add(100usize),
897            )
898        }
899    }
900
901    #[doc = "Port 109 Pin Function Select Register"]
902    #[inline(always)]
903    pub const fn p109pfs_ha(
904        &self,
905    ) -> &'static crate::common::Reg<self::P109PfsHa_SPEC, crate::common::RW> {
906        unsafe {
907            crate::common::Reg::<self::P109PfsHa_SPEC, crate::common::RW>::from_ptr(
908                self._svd2pac_as_ptr().add(102usize),
909            )
910        }
911    }
912
913    #[doc = "Port 109 Pin Function Select Register"]
914    #[inline(always)]
915    pub const fn p109pfs_by(
916        &self,
917    ) -> &'static crate::common::Reg<self::P109PfsBy_SPEC, crate::common::RW> {
918        unsafe {
919            crate::common::Reg::<self::P109PfsBy_SPEC, crate::common::RW>::from_ptr(
920                self._svd2pac_as_ptr().add(103usize),
921            )
922        }
923    }
924
925    #[doc = "Port 1%s Pin Function Select Register"]
926    #[inline(always)]
927    pub const fn p1pfs(
928        &self,
929    ) -> &'static crate::common::ClusterRegisterArray<
930        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
931        6,
932        0x4,
933    > {
934        unsafe {
935            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
936        }
937    }
938    #[inline(always)]
939    pub const fn p110pfs(
940        &self,
941    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
942        unsafe {
943            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
944                self._svd2pac_as_ptr().add(0x68usize),
945            )
946        }
947    }
948    #[inline(always)]
949    pub const fn p111pfs(
950        &self,
951    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
952        unsafe {
953            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
954                self._svd2pac_as_ptr().add(0x6cusize),
955            )
956        }
957    }
958    #[inline(always)]
959    pub const fn p112pfs(
960        &self,
961    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
962        unsafe {
963            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
964                self._svd2pac_as_ptr().add(0x70usize),
965            )
966        }
967    }
968    #[inline(always)]
969    pub const fn p113pfs(
970        &self,
971    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
972        unsafe {
973            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
974                self._svd2pac_as_ptr().add(0x74usize),
975            )
976        }
977    }
978    #[inline(always)]
979    pub const fn p114pfs(
980        &self,
981    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
982        unsafe {
983            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
984                self._svd2pac_as_ptr().add(0x78usize),
985            )
986        }
987    }
988    #[inline(always)]
989    pub const fn p115pfs(
990        &self,
991    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
992        unsafe {
993            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
994                self._svd2pac_as_ptr().add(0x7cusize),
995            )
996        }
997    }
998
999    #[doc = "Port 1%s Pin Function Select Register"]
1000    #[inline(always)]
1001    pub const fn p1pfs_ha(
1002        &self,
1003    ) -> &'static crate::common::ClusterRegisterArray<
1004        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
1005        6,
1006        0x4,
1007    > {
1008        unsafe {
1009            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
1010        }
1011    }
1012    #[inline(always)]
1013    pub const fn p110pfs_ha(
1014        &self,
1015    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1016        unsafe {
1017            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1018                self._svd2pac_as_ptr().add(0x6ausize),
1019            )
1020        }
1021    }
1022    #[inline(always)]
1023    pub const fn p111pfs_ha(
1024        &self,
1025    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1026        unsafe {
1027            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1028                self._svd2pac_as_ptr().add(0x6eusize),
1029            )
1030        }
1031    }
1032    #[inline(always)]
1033    pub const fn p112pfs_ha(
1034        &self,
1035    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1036        unsafe {
1037            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1038                self._svd2pac_as_ptr().add(0x72usize),
1039            )
1040        }
1041    }
1042    #[inline(always)]
1043    pub const fn p113pfs_ha(
1044        &self,
1045    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1046        unsafe {
1047            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1048                self._svd2pac_as_ptr().add(0x76usize),
1049            )
1050        }
1051    }
1052    #[inline(always)]
1053    pub const fn p114pfs_ha(
1054        &self,
1055    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1056        unsafe {
1057            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1058                self._svd2pac_as_ptr().add(0x7ausize),
1059            )
1060        }
1061    }
1062    #[inline(always)]
1063    pub const fn p115pfs_ha(
1064        &self,
1065    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1066        unsafe {
1067            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1068                self._svd2pac_as_ptr().add(0x7eusize),
1069            )
1070        }
1071    }
1072
1073    #[doc = "Port 1%s Pin Function Select Register"]
1074    #[inline(always)]
1075    pub const fn p1pfs_by(
1076        &self,
1077    ) -> &'static crate::common::ClusterRegisterArray<
1078        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
1079        6,
1080        0x4,
1081    > {
1082        unsafe {
1083            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
1084        }
1085    }
1086    #[inline(always)]
1087    pub const fn p110pfs_by(
1088        &self,
1089    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1090        unsafe {
1091            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1092                self._svd2pac_as_ptr().add(0x6busize),
1093            )
1094        }
1095    }
1096    #[inline(always)]
1097    pub const fn p111pfs_by(
1098        &self,
1099    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1100        unsafe {
1101            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1102                self._svd2pac_as_ptr().add(0x6fusize),
1103            )
1104        }
1105    }
1106    #[inline(always)]
1107    pub const fn p112pfs_by(
1108        &self,
1109    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1110        unsafe {
1111            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1112                self._svd2pac_as_ptr().add(0x73usize),
1113            )
1114        }
1115    }
1116    #[inline(always)]
1117    pub const fn p113pfs_by(
1118        &self,
1119    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1120        unsafe {
1121            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1122                self._svd2pac_as_ptr().add(0x77usize),
1123            )
1124        }
1125    }
1126    #[inline(always)]
1127    pub const fn p114pfs_by(
1128        &self,
1129    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1130        unsafe {
1131            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1132                self._svd2pac_as_ptr().add(0x7busize),
1133            )
1134        }
1135    }
1136    #[inline(always)]
1137    pub const fn p115pfs_by(
1138        &self,
1139    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1140        unsafe {
1141            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1142                self._svd2pac_as_ptr().add(0x7fusize),
1143            )
1144        }
1145    }
1146
1147    #[doc = "Port 200 Pin Function Select Register"]
1148    #[inline(always)]
1149    pub const fn p200pfs(
1150        &self,
1151    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
1152        unsafe {
1153            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
1154                self._svd2pac_as_ptr().add(128usize),
1155            )
1156        }
1157    }
1158
1159    #[doc = "Port 200 Pin Function Select Register"]
1160    #[inline(always)]
1161    pub const fn p200pfs_ha(
1162        &self,
1163    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
1164        unsafe {
1165            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
1166                self._svd2pac_as_ptr().add(130usize),
1167            )
1168        }
1169    }
1170
1171    #[doc = "Port 200 Pin Function Select Register"]
1172    #[inline(always)]
1173    pub const fn p200pfs_by(
1174        &self,
1175    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
1176        unsafe {
1177            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
1178                self._svd2pac_as_ptr().add(131usize),
1179            )
1180        }
1181    }
1182
1183    #[doc = "Port 201 Pin Function Select Register"]
1184    #[inline(always)]
1185    pub const fn p201pfs(
1186        &self,
1187    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
1188        unsafe {
1189            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
1190                self._svd2pac_as_ptr().add(132usize),
1191            )
1192        }
1193    }
1194
1195    #[doc = "Port 201 Pin Function Select Register"]
1196    #[inline(always)]
1197    pub const fn p201pfs_ha(
1198        &self,
1199    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
1200        unsafe {
1201            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
1202                self._svd2pac_as_ptr().add(134usize),
1203            )
1204        }
1205    }
1206
1207    #[doc = "Port 201 Pin Function Select Register"]
1208    #[inline(always)]
1209    pub const fn p201pfs_by(
1210        &self,
1211    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
1212        unsafe {
1213            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
1214                self._svd2pac_as_ptr().add(135usize),
1215            )
1216        }
1217    }
1218
1219    #[doc = "Port 20%s Pin Function Select Register"]
1220    #[inline(always)]
1221    pub const fn p20pfs(
1222        &self,
1223    ) -> &'static crate::common::ClusterRegisterArray<
1224        crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW>,
1225        7,
1226        0x4,
1227    > {
1228        unsafe {
1229            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x88usize))
1230        }
1231    }
1232    #[inline(always)]
1233    pub const fn p202pfs(
1234        &self,
1235    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1236        unsafe {
1237            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1238                self._svd2pac_as_ptr().add(0x88usize),
1239            )
1240        }
1241    }
1242    #[inline(always)]
1243    pub const fn p203pfs(
1244        &self,
1245    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1246        unsafe {
1247            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1248                self._svd2pac_as_ptr().add(0x8cusize),
1249            )
1250        }
1251    }
1252    #[inline(always)]
1253    pub const fn p204pfs(
1254        &self,
1255    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1256        unsafe {
1257            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1258                self._svd2pac_as_ptr().add(0x90usize),
1259            )
1260        }
1261    }
1262    #[inline(always)]
1263    pub const fn p205pfs(
1264        &self,
1265    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1266        unsafe {
1267            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1268                self._svd2pac_as_ptr().add(0x94usize),
1269            )
1270        }
1271    }
1272    #[inline(always)]
1273    pub const fn p206pfs(
1274        &self,
1275    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1276        unsafe {
1277            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1278                self._svd2pac_as_ptr().add(0x98usize),
1279            )
1280        }
1281    }
1282    #[inline(always)]
1283    pub const fn p207pfs(
1284        &self,
1285    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1286        unsafe {
1287            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1288                self._svd2pac_as_ptr().add(0x9cusize),
1289            )
1290        }
1291    }
1292    #[inline(always)]
1293    pub const fn p208pfs(
1294        &self,
1295    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1296        unsafe {
1297            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1298                self._svd2pac_as_ptr().add(0xa0usize),
1299            )
1300        }
1301    }
1302
1303    #[doc = "Port 20%s Pin Function Select Register"]
1304    #[inline(always)]
1305    pub const fn p20pfs_ha(
1306        &self,
1307    ) -> &'static crate::common::ClusterRegisterArray<
1308        crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW>,
1309        7,
1310        0x4,
1311    > {
1312        unsafe {
1313            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8ausize))
1314        }
1315    }
1316    #[inline(always)]
1317    pub const fn p202pfs_ha(
1318        &self,
1319    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1320        unsafe {
1321            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1322                self._svd2pac_as_ptr().add(0x8ausize),
1323            )
1324        }
1325    }
1326    #[inline(always)]
1327    pub const fn p203pfs_ha(
1328        &self,
1329    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1330        unsafe {
1331            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1332                self._svd2pac_as_ptr().add(0x8eusize),
1333            )
1334        }
1335    }
1336    #[inline(always)]
1337    pub const fn p204pfs_ha(
1338        &self,
1339    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1340        unsafe {
1341            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1342                self._svd2pac_as_ptr().add(0x92usize),
1343            )
1344        }
1345    }
1346    #[inline(always)]
1347    pub const fn p205pfs_ha(
1348        &self,
1349    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1350        unsafe {
1351            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1352                self._svd2pac_as_ptr().add(0x96usize),
1353            )
1354        }
1355    }
1356    #[inline(always)]
1357    pub const fn p206pfs_ha(
1358        &self,
1359    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1360        unsafe {
1361            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1362                self._svd2pac_as_ptr().add(0x9ausize),
1363            )
1364        }
1365    }
1366    #[inline(always)]
1367    pub const fn p207pfs_ha(
1368        &self,
1369    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1370        unsafe {
1371            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1372                self._svd2pac_as_ptr().add(0x9eusize),
1373            )
1374        }
1375    }
1376    #[inline(always)]
1377    pub const fn p208pfs_ha(
1378        &self,
1379    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1380        unsafe {
1381            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1382                self._svd2pac_as_ptr().add(0xa2usize),
1383            )
1384        }
1385    }
1386
1387    #[doc = "Port 20%s Pin Function Select Register"]
1388    #[inline(always)]
1389    pub const fn p20pfs_by(
1390        &self,
1391    ) -> &'static crate::common::ClusterRegisterArray<
1392        crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW>,
1393        7,
1394        0x4,
1395    > {
1396        unsafe {
1397            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8busize))
1398        }
1399    }
1400    #[inline(always)]
1401    pub const fn p202pfs_by(
1402        &self,
1403    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1404        unsafe {
1405            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1406                self._svd2pac_as_ptr().add(0x8busize),
1407            )
1408        }
1409    }
1410    #[inline(always)]
1411    pub const fn p203pfs_by(
1412        &self,
1413    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1414        unsafe {
1415            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1416                self._svd2pac_as_ptr().add(0x8fusize),
1417            )
1418        }
1419    }
1420    #[inline(always)]
1421    pub const fn p204pfs_by(
1422        &self,
1423    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1424        unsafe {
1425            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1426                self._svd2pac_as_ptr().add(0x93usize),
1427            )
1428        }
1429    }
1430    #[inline(always)]
1431    pub const fn p205pfs_by(
1432        &self,
1433    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1434        unsafe {
1435            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1436                self._svd2pac_as_ptr().add(0x97usize),
1437            )
1438        }
1439    }
1440    #[inline(always)]
1441    pub const fn p206pfs_by(
1442        &self,
1443    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1444        unsafe {
1445            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1446                self._svd2pac_as_ptr().add(0x9busize),
1447            )
1448        }
1449    }
1450    #[inline(always)]
1451    pub const fn p207pfs_by(
1452        &self,
1453    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1454        unsafe {
1455            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1456                self._svd2pac_as_ptr().add(0x9fusize),
1457            )
1458        }
1459    }
1460    #[inline(always)]
1461    pub const fn p208pfs_by(
1462        &self,
1463    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1464        unsafe {
1465            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1466                self._svd2pac_as_ptr().add(0xa3usize),
1467            )
1468        }
1469    }
1470
1471    #[doc = "Port 2%s Pin Function Select Register"]
1472    #[inline(always)]
1473    pub const fn p2pfs(
1474        &self,
1475    ) -> &'static crate::common::ClusterRegisterArray<
1476        crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW>,
1477        4,
1478        0x4,
1479    > {
1480        unsafe {
1481            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xb0usize))
1482        }
1483    }
1484    #[inline(always)]
1485    pub const fn p212pfs(
1486        &self,
1487    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1488        unsafe {
1489            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1490                self._svd2pac_as_ptr().add(0xb0usize),
1491            )
1492        }
1493    }
1494    #[inline(always)]
1495    pub const fn p213pfs(
1496        &self,
1497    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1498        unsafe {
1499            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1500                self._svd2pac_as_ptr().add(0xb4usize),
1501            )
1502        }
1503    }
1504    #[inline(always)]
1505    pub const fn p214pfs(
1506        &self,
1507    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1508        unsafe {
1509            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1510                self._svd2pac_as_ptr().add(0xb8usize),
1511            )
1512        }
1513    }
1514    #[inline(always)]
1515    pub const fn p215pfs(
1516        &self,
1517    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1518        unsafe {
1519            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1520                self._svd2pac_as_ptr().add(0xbcusize),
1521            )
1522        }
1523    }
1524
1525    #[doc = "Port 2%s Pin Function Select Register"]
1526    #[inline(always)]
1527    pub const fn p2pfs_ha(
1528        &self,
1529    ) -> &'static crate::common::ClusterRegisterArray<
1530        crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW>,
1531        4,
1532        0x4,
1533    > {
1534        unsafe {
1535            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xb2usize))
1536        }
1537    }
1538    #[inline(always)]
1539    pub const fn p212pfs_ha(
1540        &self,
1541    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1542        unsafe {
1543            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1544                self._svd2pac_as_ptr().add(0xb2usize),
1545            )
1546        }
1547    }
1548    #[inline(always)]
1549    pub const fn p213pfs_ha(
1550        &self,
1551    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1552        unsafe {
1553            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1554                self._svd2pac_as_ptr().add(0xb6usize),
1555            )
1556        }
1557    }
1558    #[inline(always)]
1559    pub const fn p214pfs_ha(
1560        &self,
1561    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1562        unsafe {
1563            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1564                self._svd2pac_as_ptr().add(0xbausize),
1565            )
1566        }
1567    }
1568    #[inline(always)]
1569    pub const fn p215pfs_ha(
1570        &self,
1571    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1572        unsafe {
1573            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1574                self._svd2pac_as_ptr().add(0xbeusize),
1575            )
1576        }
1577    }
1578
1579    #[doc = "Port 2%s Pin Function Select Register"]
1580    #[inline(always)]
1581    pub const fn p2pfs_by(
1582        &self,
1583    ) -> &'static crate::common::ClusterRegisterArray<
1584        crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW>,
1585        4,
1586        0x4,
1587    > {
1588        unsafe {
1589            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xb3usize))
1590        }
1591    }
1592    #[inline(always)]
1593    pub const fn p212pfs_by(
1594        &self,
1595    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1596        unsafe {
1597            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1598                self._svd2pac_as_ptr().add(0xb3usize),
1599            )
1600        }
1601    }
1602    #[inline(always)]
1603    pub const fn p213pfs_by(
1604        &self,
1605    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1606        unsafe {
1607            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1608                self._svd2pac_as_ptr().add(0xb7usize),
1609            )
1610        }
1611    }
1612    #[inline(always)]
1613    pub const fn p214pfs_by(
1614        &self,
1615    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1616        unsafe {
1617            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1618                self._svd2pac_as_ptr().add(0xbbusize),
1619            )
1620        }
1621    }
1622    #[inline(always)]
1623    pub const fn p215pfs_by(
1624        &self,
1625    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1626        unsafe {
1627            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1628                self._svd2pac_as_ptr().add(0xbfusize),
1629            )
1630        }
1631    }
1632
1633    #[doc = "Port 300 Pin Function Select Register"]
1634    #[inline(always)]
1635    pub const fn p300pfs(
1636        &self,
1637    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
1638        unsafe {
1639            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
1640                self._svd2pac_as_ptr().add(192usize),
1641            )
1642        }
1643    }
1644
1645    #[doc = "Port 300 Pin Function Select Register"]
1646    #[inline(always)]
1647    pub const fn p300pfs_ha(
1648        &self,
1649    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
1650        unsafe {
1651            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
1652                self._svd2pac_as_ptr().add(194usize),
1653            )
1654        }
1655    }
1656
1657    #[doc = "Port 300 Pin Function Select Register"]
1658    #[inline(always)]
1659    pub const fn p300pfs_by(
1660        &self,
1661    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
1662        unsafe {
1663            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
1664                self._svd2pac_as_ptr().add(195usize),
1665            )
1666        }
1667    }
1668
1669    #[doc = "Port 30%s Pin Function Select Register"]
1670    #[inline(always)]
1671    pub const fn p30pfs(
1672        &self,
1673    ) -> &'static crate::common::ClusterRegisterArray<
1674        crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW>,
1675        7,
1676        0x4,
1677    > {
1678        unsafe {
1679            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc4usize))
1680        }
1681    }
1682    #[inline(always)]
1683    pub const fn p301pfs(
1684        &self,
1685    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1686        unsafe {
1687            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1688                self._svd2pac_as_ptr().add(0xc4usize),
1689            )
1690        }
1691    }
1692    #[inline(always)]
1693    pub const fn p302pfs(
1694        &self,
1695    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1696        unsafe {
1697            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1698                self._svd2pac_as_ptr().add(0xc8usize),
1699            )
1700        }
1701    }
1702    #[inline(always)]
1703    pub const fn p303pfs(
1704        &self,
1705    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1706        unsafe {
1707            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1708                self._svd2pac_as_ptr().add(0xccusize),
1709            )
1710        }
1711    }
1712    #[inline(always)]
1713    pub const fn p304pfs(
1714        &self,
1715    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1716        unsafe {
1717            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1718                self._svd2pac_as_ptr().add(0xd0usize),
1719            )
1720        }
1721    }
1722    #[inline(always)]
1723    pub const fn p305pfs(
1724        &self,
1725    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1726        unsafe {
1727            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1728                self._svd2pac_as_ptr().add(0xd4usize),
1729            )
1730        }
1731    }
1732    #[inline(always)]
1733    pub const fn p306pfs(
1734        &self,
1735    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1736        unsafe {
1737            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1738                self._svd2pac_as_ptr().add(0xd8usize),
1739            )
1740        }
1741    }
1742    #[inline(always)]
1743    pub const fn p307pfs(
1744        &self,
1745    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1746        unsafe {
1747            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1748                self._svd2pac_as_ptr().add(0xdcusize),
1749            )
1750        }
1751    }
1752
1753    #[doc = "Port 30%s Pin Function Select Register"]
1754    #[inline(always)]
1755    pub const fn p30pfs_ha(
1756        &self,
1757    ) -> &'static crate::common::ClusterRegisterArray<
1758        crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW>,
1759        7,
1760        0x4,
1761    > {
1762        unsafe {
1763            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc6usize))
1764        }
1765    }
1766    #[inline(always)]
1767    pub const fn p301pfs_ha(
1768        &self,
1769    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1770        unsafe {
1771            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1772                self._svd2pac_as_ptr().add(0xc6usize),
1773            )
1774        }
1775    }
1776    #[inline(always)]
1777    pub const fn p302pfs_ha(
1778        &self,
1779    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1780        unsafe {
1781            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1782                self._svd2pac_as_ptr().add(0xcausize),
1783            )
1784        }
1785    }
1786    #[inline(always)]
1787    pub const fn p303pfs_ha(
1788        &self,
1789    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1790        unsafe {
1791            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1792                self._svd2pac_as_ptr().add(0xceusize),
1793            )
1794        }
1795    }
1796    #[inline(always)]
1797    pub const fn p304pfs_ha(
1798        &self,
1799    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1800        unsafe {
1801            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1802                self._svd2pac_as_ptr().add(0xd2usize),
1803            )
1804        }
1805    }
1806    #[inline(always)]
1807    pub const fn p305pfs_ha(
1808        &self,
1809    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1810        unsafe {
1811            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1812                self._svd2pac_as_ptr().add(0xd6usize),
1813            )
1814        }
1815    }
1816    #[inline(always)]
1817    pub const fn p306pfs_ha(
1818        &self,
1819    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1820        unsafe {
1821            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1822                self._svd2pac_as_ptr().add(0xdausize),
1823            )
1824        }
1825    }
1826    #[inline(always)]
1827    pub const fn p307pfs_ha(
1828        &self,
1829    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1830        unsafe {
1831            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1832                self._svd2pac_as_ptr().add(0xdeusize),
1833            )
1834        }
1835    }
1836
1837    #[doc = "Port 30%s Pin Function Select Register"]
1838    #[inline(always)]
1839    pub const fn p30pfs_by(
1840        &self,
1841    ) -> &'static crate::common::ClusterRegisterArray<
1842        crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW>,
1843        7,
1844        0x4,
1845    > {
1846        unsafe {
1847            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc7usize))
1848        }
1849    }
1850    #[inline(always)]
1851    pub const fn p301pfs_by(
1852        &self,
1853    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1854        unsafe {
1855            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1856                self._svd2pac_as_ptr().add(0xc7usize),
1857            )
1858        }
1859    }
1860    #[inline(always)]
1861    pub const fn p302pfs_by(
1862        &self,
1863    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1864        unsafe {
1865            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1866                self._svd2pac_as_ptr().add(0xcbusize),
1867            )
1868        }
1869    }
1870    #[inline(always)]
1871    pub const fn p303pfs_by(
1872        &self,
1873    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1874        unsafe {
1875            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1876                self._svd2pac_as_ptr().add(0xcfusize),
1877            )
1878        }
1879    }
1880    #[inline(always)]
1881    pub const fn p304pfs_by(
1882        &self,
1883    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1884        unsafe {
1885            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1886                self._svd2pac_as_ptr().add(0xd3usize),
1887            )
1888        }
1889    }
1890    #[inline(always)]
1891    pub const fn p305pfs_by(
1892        &self,
1893    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1894        unsafe {
1895            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1896                self._svd2pac_as_ptr().add(0xd7usize),
1897            )
1898        }
1899    }
1900    #[inline(always)]
1901    pub const fn p306pfs_by(
1902        &self,
1903    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1904        unsafe {
1905            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1906                self._svd2pac_as_ptr().add(0xdbusize),
1907            )
1908        }
1909    }
1910    #[inline(always)]
1911    pub const fn p307pfs_by(
1912        &self,
1913    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1914        unsafe {
1915            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1916                self._svd2pac_as_ptr().add(0xdfusize),
1917            )
1918        }
1919    }
1920
1921    #[doc = "Port 40%s Pin Function Select Register"]
1922    #[inline(always)]
1923    pub const fn p40pfs(
1924        &self,
1925    ) -> &'static crate::common::ClusterRegisterArray<
1926        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
1927        10,
1928        0x4,
1929    > {
1930        unsafe {
1931            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x100usize))
1932        }
1933    }
1934    #[inline(always)]
1935    pub const fn p400pfs(
1936        &self,
1937    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1938        unsafe {
1939            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1940                self._svd2pac_as_ptr().add(0x100usize),
1941            )
1942        }
1943    }
1944    #[inline(always)]
1945    pub const fn p401pfs(
1946        &self,
1947    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1948        unsafe {
1949            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1950                self._svd2pac_as_ptr().add(0x104usize),
1951            )
1952        }
1953    }
1954    #[inline(always)]
1955    pub const fn p402pfs(
1956        &self,
1957    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1958        unsafe {
1959            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1960                self._svd2pac_as_ptr().add(0x108usize),
1961            )
1962        }
1963    }
1964    #[inline(always)]
1965    pub const fn p403pfs(
1966        &self,
1967    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1968        unsafe {
1969            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1970                self._svd2pac_as_ptr().add(0x10cusize),
1971            )
1972        }
1973    }
1974    #[inline(always)]
1975    pub const fn p404pfs(
1976        &self,
1977    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1978        unsafe {
1979            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1980                self._svd2pac_as_ptr().add(0x110usize),
1981            )
1982        }
1983    }
1984    #[inline(always)]
1985    pub const fn p405pfs(
1986        &self,
1987    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1988        unsafe {
1989            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1990                self._svd2pac_as_ptr().add(0x114usize),
1991            )
1992        }
1993    }
1994    #[inline(always)]
1995    pub const fn p406pfs(
1996        &self,
1997    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1998        unsafe {
1999            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2000                self._svd2pac_as_ptr().add(0x118usize),
2001            )
2002        }
2003    }
2004    #[inline(always)]
2005    pub const fn p407pfs(
2006        &self,
2007    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2008        unsafe {
2009            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2010                self._svd2pac_as_ptr().add(0x11cusize),
2011            )
2012        }
2013    }
2014    #[inline(always)]
2015    pub const fn p408pfs(
2016        &self,
2017    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2018        unsafe {
2019            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2020                self._svd2pac_as_ptr().add(0x120usize),
2021            )
2022        }
2023    }
2024    #[inline(always)]
2025    pub const fn p409pfs(
2026        &self,
2027    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2028        unsafe {
2029            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2030                self._svd2pac_as_ptr().add(0x124usize),
2031            )
2032        }
2033    }
2034
2035    #[doc = "Port 40%s Pin Function Select Register"]
2036    #[inline(always)]
2037    pub const fn p40pfs_ha(
2038        &self,
2039    ) -> &'static crate::common::ClusterRegisterArray<
2040        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
2041        10,
2042        0x4,
2043    > {
2044        unsafe {
2045            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x102usize))
2046        }
2047    }
2048    #[inline(always)]
2049    pub const fn p400pfs_ha(
2050        &self,
2051    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2052        unsafe {
2053            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2054                self._svd2pac_as_ptr().add(0x102usize),
2055            )
2056        }
2057    }
2058    #[inline(always)]
2059    pub const fn p401pfs_ha(
2060        &self,
2061    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2062        unsafe {
2063            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2064                self._svd2pac_as_ptr().add(0x106usize),
2065            )
2066        }
2067    }
2068    #[inline(always)]
2069    pub const fn p402pfs_ha(
2070        &self,
2071    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2072        unsafe {
2073            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2074                self._svd2pac_as_ptr().add(0x10ausize),
2075            )
2076        }
2077    }
2078    #[inline(always)]
2079    pub const fn p403pfs_ha(
2080        &self,
2081    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2082        unsafe {
2083            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2084                self._svd2pac_as_ptr().add(0x10eusize),
2085            )
2086        }
2087    }
2088    #[inline(always)]
2089    pub const fn p404pfs_ha(
2090        &self,
2091    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2092        unsafe {
2093            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2094                self._svd2pac_as_ptr().add(0x112usize),
2095            )
2096        }
2097    }
2098    #[inline(always)]
2099    pub const fn p405pfs_ha(
2100        &self,
2101    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2102        unsafe {
2103            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2104                self._svd2pac_as_ptr().add(0x116usize),
2105            )
2106        }
2107    }
2108    #[inline(always)]
2109    pub const fn p406pfs_ha(
2110        &self,
2111    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2112        unsafe {
2113            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2114                self._svd2pac_as_ptr().add(0x11ausize),
2115            )
2116        }
2117    }
2118    #[inline(always)]
2119    pub const fn p407pfs_ha(
2120        &self,
2121    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2122        unsafe {
2123            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2124                self._svd2pac_as_ptr().add(0x11eusize),
2125            )
2126        }
2127    }
2128    #[inline(always)]
2129    pub const fn p408pfs_ha(
2130        &self,
2131    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2132        unsafe {
2133            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2134                self._svd2pac_as_ptr().add(0x122usize),
2135            )
2136        }
2137    }
2138    #[inline(always)]
2139    pub const fn p409pfs_ha(
2140        &self,
2141    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2142        unsafe {
2143            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2144                self._svd2pac_as_ptr().add(0x126usize),
2145            )
2146        }
2147    }
2148
2149    #[doc = "Port 40%s Pin Function Select Register"]
2150    #[inline(always)]
2151    pub const fn p40pfs_by(
2152        &self,
2153    ) -> &'static crate::common::ClusterRegisterArray<
2154        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
2155        10,
2156        0x4,
2157    > {
2158        unsafe {
2159            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x103usize))
2160        }
2161    }
2162    #[inline(always)]
2163    pub const fn p400pfs_by(
2164        &self,
2165    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2166        unsafe {
2167            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2168                self._svd2pac_as_ptr().add(0x103usize),
2169            )
2170        }
2171    }
2172    #[inline(always)]
2173    pub const fn p401pfs_by(
2174        &self,
2175    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2176        unsafe {
2177            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2178                self._svd2pac_as_ptr().add(0x107usize),
2179            )
2180        }
2181    }
2182    #[inline(always)]
2183    pub const fn p402pfs_by(
2184        &self,
2185    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2186        unsafe {
2187            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2188                self._svd2pac_as_ptr().add(0x10busize),
2189            )
2190        }
2191    }
2192    #[inline(always)]
2193    pub const fn p403pfs_by(
2194        &self,
2195    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2196        unsafe {
2197            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2198                self._svd2pac_as_ptr().add(0x10fusize),
2199            )
2200        }
2201    }
2202    #[inline(always)]
2203    pub const fn p404pfs_by(
2204        &self,
2205    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2206        unsafe {
2207            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2208                self._svd2pac_as_ptr().add(0x113usize),
2209            )
2210        }
2211    }
2212    #[inline(always)]
2213    pub const fn p405pfs_by(
2214        &self,
2215    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2216        unsafe {
2217            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2218                self._svd2pac_as_ptr().add(0x117usize),
2219            )
2220        }
2221    }
2222    #[inline(always)]
2223    pub const fn p406pfs_by(
2224        &self,
2225    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2226        unsafe {
2227            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2228                self._svd2pac_as_ptr().add(0x11busize),
2229            )
2230        }
2231    }
2232    #[inline(always)]
2233    pub const fn p407pfs_by(
2234        &self,
2235    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2236        unsafe {
2237            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2238                self._svd2pac_as_ptr().add(0x11fusize),
2239            )
2240        }
2241    }
2242    #[inline(always)]
2243    pub const fn p408pfs_by(
2244        &self,
2245    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2246        unsafe {
2247            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2248                self._svd2pac_as_ptr().add(0x123usize),
2249            )
2250        }
2251    }
2252    #[inline(always)]
2253    pub const fn p409pfs_by(
2254        &self,
2255    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2256        unsafe {
2257            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2258                self._svd2pac_as_ptr().add(0x127usize),
2259            )
2260        }
2261    }
2262
2263    #[doc = "Port 4%s Pin Function Select Register"]
2264    #[inline(always)]
2265    pub const fn p4pfs(
2266        &self,
2267    ) -> &'static crate::common::ClusterRegisterArray<
2268        crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW>,
2269        2,
2270        0x4,
2271    > {
2272        unsafe {
2273            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x128usize))
2274        }
2275    }
2276    #[inline(always)]
2277    pub const fn p410pfs(
2278        &self,
2279    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2280        unsafe {
2281            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2282                self._svd2pac_as_ptr().add(0x128usize),
2283            )
2284        }
2285    }
2286    #[inline(always)]
2287    pub const fn p411pfs(
2288        &self,
2289    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2290        unsafe {
2291            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2292                self._svd2pac_as_ptr().add(0x12cusize),
2293            )
2294        }
2295    }
2296
2297    #[doc = "Port 4%s Pin Function Select Register"]
2298    #[inline(always)]
2299    pub const fn p4pfs_ha(
2300        &self,
2301    ) -> &'static crate::common::ClusterRegisterArray<
2302        crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW>,
2303        2,
2304        0x4,
2305    > {
2306        unsafe {
2307            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12ausize))
2308        }
2309    }
2310    #[inline(always)]
2311    pub const fn p410pfs_ha(
2312        &self,
2313    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2314        unsafe {
2315            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2316                self._svd2pac_as_ptr().add(0x12ausize),
2317            )
2318        }
2319    }
2320    #[inline(always)]
2321    pub const fn p411pfs_ha(
2322        &self,
2323    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2324        unsafe {
2325            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2326                self._svd2pac_as_ptr().add(0x12eusize),
2327            )
2328        }
2329    }
2330
2331    #[doc = "Port 4%s Pin Function Select Register"]
2332    #[inline(always)]
2333    pub const fn p4pfs_by(
2334        &self,
2335    ) -> &'static crate::common::ClusterRegisterArray<
2336        crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW>,
2337        2,
2338        0x4,
2339    > {
2340        unsafe {
2341            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12busize))
2342        }
2343    }
2344    #[inline(always)]
2345    pub const fn p410pfs_by(
2346        &self,
2347    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2348        unsafe {
2349            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2350                self._svd2pac_as_ptr().add(0x12busize),
2351            )
2352        }
2353    }
2354    #[inline(always)]
2355    pub const fn p411pfs_by(
2356        &self,
2357    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2358        unsafe {
2359            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2360                self._svd2pac_as_ptr().add(0x12fusize),
2361            )
2362        }
2363    }
2364
2365    #[doc = "Port 50%s Pin Function Select Register"]
2366    #[inline(always)]
2367    pub const fn p50pfs(
2368        &self,
2369    ) -> &'static crate::common::ClusterRegisterArray<
2370        crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW>,
2371        6,
2372        0x4,
2373    > {
2374        unsafe {
2375            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x140usize))
2376        }
2377    }
2378    #[inline(always)]
2379    pub const fn p500pfs(
2380        &self,
2381    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2382        unsafe {
2383            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2384                self._svd2pac_as_ptr().add(0x140usize),
2385            )
2386        }
2387    }
2388    #[inline(always)]
2389    pub const fn p501pfs(
2390        &self,
2391    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2392        unsafe {
2393            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2394                self._svd2pac_as_ptr().add(0x144usize),
2395            )
2396        }
2397    }
2398    #[inline(always)]
2399    pub const fn p502pfs(
2400        &self,
2401    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2402        unsafe {
2403            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2404                self._svd2pac_as_ptr().add(0x148usize),
2405            )
2406        }
2407    }
2408    #[inline(always)]
2409    pub const fn p503pfs(
2410        &self,
2411    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2412        unsafe {
2413            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2414                self._svd2pac_as_ptr().add(0x14cusize),
2415            )
2416        }
2417    }
2418    #[inline(always)]
2419    pub const fn p504pfs(
2420        &self,
2421    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2422        unsafe {
2423            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2424                self._svd2pac_as_ptr().add(0x150usize),
2425            )
2426        }
2427    }
2428    #[inline(always)]
2429    pub const fn p505pfs(
2430        &self,
2431    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2432        unsafe {
2433            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2434                self._svd2pac_as_ptr().add(0x154usize),
2435            )
2436        }
2437    }
2438
2439    #[doc = "Port 50%s Pin Function Select Register"]
2440    #[inline(always)]
2441    pub const fn p50pfs_ha(
2442        &self,
2443    ) -> &'static crate::common::ClusterRegisterArray<
2444        crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW>,
2445        6,
2446        0x4,
2447    > {
2448        unsafe {
2449            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x142usize))
2450        }
2451    }
2452    #[inline(always)]
2453    pub const fn p500pfs_ha(
2454        &self,
2455    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2456        unsafe {
2457            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2458                self._svd2pac_as_ptr().add(0x142usize),
2459            )
2460        }
2461    }
2462    #[inline(always)]
2463    pub const fn p501pfs_ha(
2464        &self,
2465    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2466        unsafe {
2467            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2468                self._svd2pac_as_ptr().add(0x146usize),
2469            )
2470        }
2471    }
2472    #[inline(always)]
2473    pub const fn p502pfs_ha(
2474        &self,
2475    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2476        unsafe {
2477            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2478                self._svd2pac_as_ptr().add(0x14ausize),
2479            )
2480        }
2481    }
2482    #[inline(always)]
2483    pub const fn p503pfs_ha(
2484        &self,
2485    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2486        unsafe {
2487            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2488                self._svd2pac_as_ptr().add(0x14eusize),
2489            )
2490        }
2491    }
2492    #[inline(always)]
2493    pub const fn p504pfs_ha(
2494        &self,
2495    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2496        unsafe {
2497            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2498                self._svd2pac_as_ptr().add(0x152usize),
2499            )
2500        }
2501    }
2502    #[inline(always)]
2503    pub const fn p505pfs_ha(
2504        &self,
2505    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2506        unsafe {
2507            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2508                self._svd2pac_as_ptr().add(0x156usize),
2509            )
2510        }
2511    }
2512
2513    #[doc = "Port 50%s Pin Function Select Register"]
2514    #[inline(always)]
2515    pub const fn p50pfs_by(
2516        &self,
2517    ) -> &'static crate::common::ClusterRegisterArray<
2518        crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW>,
2519        6,
2520        0x4,
2521    > {
2522        unsafe {
2523            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x143usize))
2524        }
2525    }
2526    #[inline(always)]
2527    pub const fn p500pfs_by(
2528        &self,
2529    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2530        unsafe {
2531            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2532                self._svd2pac_as_ptr().add(0x143usize),
2533            )
2534        }
2535    }
2536    #[inline(always)]
2537    pub const fn p501pfs_by(
2538        &self,
2539    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2540        unsafe {
2541            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2542                self._svd2pac_as_ptr().add(0x147usize),
2543            )
2544        }
2545    }
2546    #[inline(always)]
2547    pub const fn p502pfs_by(
2548        &self,
2549    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2550        unsafe {
2551            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2552                self._svd2pac_as_ptr().add(0x14busize),
2553            )
2554        }
2555    }
2556    #[inline(always)]
2557    pub const fn p503pfs_by(
2558        &self,
2559    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2560        unsafe {
2561            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2562                self._svd2pac_as_ptr().add(0x14fusize),
2563            )
2564        }
2565    }
2566    #[inline(always)]
2567    pub const fn p504pfs_by(
2568        &self,
2569    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2570        unsafe {
2571            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2572                self._svd2pac_as_ptr().add(0x153usize),
2573            )
2574        }
2575    }
2576    #[inline(always)]
2577    pub const fn p505pfs_by(
2578        &self,
2579    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2580        unsafe {
2581            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2582                self._svd2pac_as_ptr().add(0x157usize),
2583            )
2584        }
2585    }
2586
2587    #[doc = "Port 9%s Pin Function Select Register"]
2588    #[inline(always)]
2589    pub const fn p9pfs(
2590        &self,
2591    ) -> &'static crate::common::ClusterRegisterArray<
2592        crate::common::Reg<self::P9Pfs_SPEC, crate::common::RW>,
2593        3,
2594        0x4,
2595    > {
2596        unsafe {
2597            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x274usize))
2598        }
2599    }
2600    #[inline(always)]
2601    pub const fn p913pfs(
2602        &self,
2603    ) -> &'static crate::common::Reg<self::P9Pfs_SPEC, crate::common::RW> {
2604        unsafe {
2605            crate::common::Reg::<self::P9Pfs_SPEC, crate::common::RW>::from_ptr(
2606                self._svd2pac_as_ptr().add(0x274usize),
2607            )
2608        }
2609    }
2610    #[inline(always)]
2611    pub const fn p914pfs(
2612        &self,
2613    ) -> &'static crate::common::Reg<self::P9Pfs_SPEC, crate::common::RW> {
2614        unsafe {
2615            crate::common::Reg::<self::P9Pfs_SPEC, crate::common::RW>::from_ptr(
2616                self._svd2pac_as_ptr().add(0x278usize),
2617            )
2618        }
2619    }
2620    #[inline(always)]
2621    pub const fn p915pfs(
2622        &self,
2623    ) -> &'static crate::common::Reg<self::P9Pfs_SPEC, crate::common::RW> {
2624        unsafe {
2625            crate::common::Reg::<self::P9Pfs_SPEC, crate::common::RW>::from_ptr(
2626                self._svd2pac_as_ptr().add(0x27cusize),
2627            )
2628        }
2629    }
2630
2631    #[doc = "Port 9%s Pin Function Select Register"]
2632    #[inline(always)]
2633    pub const fn p9pfs_ha(
2634        &self,
2635    ) -> &'static crate::common::ClusterRegisterArray<
2636        crate::common::Reg<self::P9PfsHa_SPEC, crate::common::RW>,
2637        3,
2638        0x4,
2639    > {
2640        unsafe {
2641            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x276usize))
2642        }
2643    }
2644    #[inline(always)]
2645    pub const fn p913pfs_ha(
2646        &self,
2647    ) -> &'static crate::common::Reg<self::P9PfsHa_SPEC, crate::common::RW> {
2648        unsafe {
2649            crate::common::Reg::<self::P9PfsHa_SPEC, crate::common::RW>::from_ptr(
2650                self._svd2pac_as_ptr().add(0x276usize),
2651            )
2652        }
2653    }
2654    #[inline(always)]
2655    pub const fn p914pfs_ha(
2656        &self,
2657    ) -> &'static crate::common::Reg<self::P9PfsHa_SPEC, crate::common::RW> {
2658        unsafe {
2659            crate::common::Reg::<self::P9PfsHa_SPEC, crate::common::RW>::from_ptr(
2660                self._svd2pac_as_ptr().add(0x27ausize),
2661            )
2662        }
2663    }
2664    #[inline(always)]
2665    pub const fn p915pfs_ha(
2666        &self,
2667    ) -> &'static crate::common::Reg<self::P9PfsHa_SPEC, crate::common::RW> {
2668        unsafe {
2669            crate::common::Reg::<self::P9PfsHa_SPEC, crate::common::RW>::from_ptr(
2670                self._svd2pac_as_ptr().add(0x27eusize),
2671            )
2672        }
2673    }
2674
2675    #[doc = "Port 9%s Pin Function Select Register"]
2676    #[inline(always)]
2677    pub const fn p9pfs_by(
2678        &self,
2679    ) -> &'static crate::common::ClusterRegisterArray<
2680        crate::common::Reg<self::P9PfsBy_SPEC, crate::common::RW>,
2681        3,
2682        0x4,
2683    > {
2684        unsafe {
2685            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x277usize))
2686        }
2687    }
2688    #[inline(always)]
2689    pub const fn p913pfs_by(
2690        &self,
2691    ) -> &'static crate::common::Reg<self::P9PfsBy_SPEC, crate::common::RW> {
2692        unsafe {
2693            crate::common::Reg::<self::P9PfsBy_SPEC, crate::common::RW>::from_ptr(
2694                self._svd2pac_as_ptr().add(0x277usize),
2695            )
2696        }
2697    }
2698    #[inline(always)]
2699    pub const fn p914pfs_by(
2700        &self,
2701    ) -> &'static crate::common::Reg<self::P9PfsBy_SPEC, crate::common::RW> {
2702        unsafe {
2703            crate::common::Reg::<self::P9PfsBy_SPEC, crate::common::RW>::from_ptr(
2704                self._svd2pac_as_ptr().add(0x27busize),
2705            )
2706        }
2707    }
2708    #[inline(always)]
2709    pub const fn p915pfs_by(
2710        &self,
2711    ) -> &'static crate::common::Reg<self::P9PfsBy_SPEC, crate::common::RW> {
2712        unsafe {
2713            crate::common::Reg::<self::P9PfsBy_SPEC, crate::common::RW>::from_ptr(
2714                self._svd2pac_as_ptr().add(0x27fusize),
2715            )
2716        }
2717    }
2718
2719    #[doc = "Write-Protect Register"]
2720    #[inline(always)]
2721    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
2722        unsafe {
2723            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
2724                self._svd2pac_as_ptr().add(1283usize),
2725            )
2726        }
2727    }
2728
2729    #[doc = "Port Read Wait Control Register"]
2730    #[inline(always)]
2731    pub const fn prwcntr(
2732        &self,
2733    ) -> &'static crate::common::Reg<self::Prwcntr_SPEC, crate::common::RW> {
2734        unsafe {
2735            crate::common::Reg::<self::Prwcntr_SPEC, crate::common::RW>::from_ptr(
2736                self._svd2pac_as_ptr().add(1295usize),
2737            )
2738        }
2739    }
2740}
2741#[doc(hidden)]
2742#[derive(Copy, Clone, Eq, PartialEq)]
2743pub struct P00Pfs_SPEC;
2744impl crate::sealed::RegSpec for P00Pfs_SPEC {
2745    type DataType = u32;
2746}
2747
2748#[doc = "Port 00%s Pin Function Select Register"]
2749pub type P00Pfs = crate::RegValueT<P00Pfs_SPEC>;
2750
2751impl P00Pfs {
2752    #[doc = "Port Output Data"]
2753    #[inline(always)]
2754    pub fn podr(
2755        self,
2756    ) -> crate::common::RegisterField<
2757        0,
2758        0x1,
2759        1,
2760        0,
2761        p00pfs::Podr,
2762        p00pfs::Podr,
2763        P00Pfs_SPEC,
2764        crate::common::RW,
2765    > {
2766        crate::common::RegisterField::<
2767            0,
2768            0x1,
2769            1,
2770            0,
2771            p00pfs::Podr,
2772            p00pfs::Podr,
2773            P00Pfs_SPEC,
2774            crate::common::RW,
2775        >::from_register(self, 0)
2776    }
2777
2778    #[doc = "Port State"]
2779    #[inline(always)]
2780    pub fn pidr(
2781        self,
2782    ) -> crate::common::RegisterField<
2783        1,
2784        0x1,
2785        1,
2786        0,
2787        p00pfs::Pidr,
2788        p00pfs::Pidr,
2789        P00Pfs_SPEC,
2790        crate::common::R,
2791    > {
2792        crate::common::RegisterField::<
2793            1,
2794            0x1,
2795            1,
2796            0,
2797            p00pfs::Pidr,
2798            p00pfs::Pidr,
2799            P00Pfs_SPEC,
2800            crate::common::R,
2801        >::from_register(self, 0)
2802    }
2803
2804    #[doc = "Port Direction"]
2805    #[inline(always)]
2806    pub fn pdr(
2807        self,
2808    ) -> crate::common::RegisterField<
2809        2,
2810        0x1,
2811        1,
2812        0,
2813        p00pfs::Pdr,
2814        p00pfs::Pdr,
2815        P00Pfs_SPEC,
2816        crate::common::RW,
2817    > {
2818        crate::common::RegisterField::<
2819            2,
2820            0x1,
2821            1,
2822            0,
2823            p00pfs::Pdr,
2824            p00pfs::Pdr,
2825            P00Pfs_SPEC,
2826            crate::common::RW,
2827        >::from_register(self, 0)
2828    }
2829
2830    #[doc = "Pull-up Control"]
2831    #[inline(always)]
2832    pub fn pcr(
2833        self,
2834    ) -> crate::common::RegisterField<
2835        4,
2836        0x1,
2837        1,
2838        0,
2839        p00pfs::Pcr,
2840        p00pfs::Pcr,
2841        P00Pfs_SPEC,
2842        crate::common::RW,
2843    > {
2844        crate::common::RegisterField::<
2845            4,
2846            0x1,
2847            1,
2848            0,
2849            p00pfs::Pcr,
2850            p00pfs::Pcr,
2851            P00Pfs_SPEC,
2852            crate::common::RW,
2853        >::from_register(self, 0)
2854    }
2855
2856    #[doc = "N-Channel Open-Drain Control"]
2857    #[inline(always)]
2858    pub fn ncodr(
2859        self,
2860    ) -> crate::common::RegisterField<
2861        6,
2862        0x1,
2863        1,
2864        0,
2865        p00pfs::Ncodr,
2866        p00pfs::Ncodr,
2867        P00Pfs_SPEC,
2868        crate::common::RW,
2869    > {
2870        crate::common::RegisterField::<
2871            6,
2872            0x1,
2873            1,
2874            0,
2875            p00pfs::Ncodr,
2876            p00pfs::Ncodr,
2877            P00Pfs_SPEC,
2878            crate::common::RW,
2879        >::from_register(self, 0)
2880    }
2881
2882    #[doc = "IRQ Input Enable"]
2883    #[inline(always)]
2884    pub fn isel(
2885        self,
2886    ) -> crate::common::RegisterField<
2887        14,
2888        0x1,
2889        1,
2890        0,
2891        p00pfs::Isel,
2892        p00pfs::Isel,
2893        P00Pfs_SPEC,
2894        crate::common::RW,
2895    > {
2896        crate::common::RegisterField::<
2897            14,
2898            0x1,
2899            1,
2900            0,
2901            p00pfs::Isel,
2902            p00pfs::Isel,
2903            P00Pfs_SPEC,
2904            crate::common::RW,
2905        >::from_register(self, 0)
2906    }
2907
2908    #[doc = "Analog Input Enable"]
2909    #[inline(always)]
2910    pub fn asel(
2911        self,
2912    ) -> crate::common::RegisterField<
2913        15,
2914        0x1,
2915        1,
2916        0,
2917        p00pfs::Asel,
2918        p00pfs::Asel,
2919        P00Pfs_SPEC,
2920        crate::common::RW,
2921    > {
2922        crate::common::RegisterField::<
2923            15,
2924            0x1,
2925            1,
2926            0,
2927            p00pfs::Asel,
2928            p00pfs::Asel,
2929            P00Pfs_SPEC,
2930            crate::common::RW,
2931        >::from_register(self, 0)
2932    }
2933
2934    #[doc = "Port Mode Control"]
2935    #[inline(always)]
2936    pub fn pmr(
2937        self,
2938    ) -> crate::common::RegisterField<
2939        16,
2940        0x1,
2941        1,
2942        0,
2943        p00pfs::Pmr,
2944        p00pfs::Pmr,
2945        P00Pfs_SPEC,
2946        crate::common::RW,
2947    > {
2948        crate::common::RegisterField::<
2949            16,
2950            0x1,
2951            1,
2952            0,
2953            p00pfs::Pmr,
2954            p00pfs::Pmr,
2955            P00Pfs_SPEC,
2956            crate::common::RW,
2957        >::from_register(self, 0)
2958    }
2959
2960    #[doc = "Peripheral Select"]
2961    #[inline(always)]
2962    pub fn psel(
2963        self,
2964    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P00Pfs_SPEC, crate::common::RW> {
2965        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P00Pfs_SPEC,crate::common::RW>::from_register(self,0)
2966    }
2967}
2968impl ::core::default::Default for P00Pfs {
2969    #[inline(always)]
2970    fn default() -> P00Pfs {
2971        <crate::RegValueT<P00Pfs_SPEC> as RegisterValue<_>>::new(0)
2972    }
2973}
2974pub mod p00pfs {
2975
2976    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2977    pub struct Podr_SPEC;
2978    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
2979    impl Podr {
2980        #[doc = "Output low"]
2981        pub const _0: Self = Self::new(0);
2982
2983        #[doc = "Output high"]
2984        pub const _1: Self = Self::new(1);
2985    }
2986    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2987    pub struct Pidr_SPEC;
2988    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
2989    impl Pidr {
2990        #[doc = "Low level"]
2991        pub const _0: Self = Self::new(0);
2992
2993        #[doc = "High level"]
2994        pub const _1: Self = Self::new(1);
2995    }
2996    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2997    pub struct Pdr_SPEC;
2998    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
2999    impl Pdr {
3000        #[doc = "Input (functions as an input pin)"]
3001        pub const _0: Self = Self::new(0);
3002
3003        #[doc = "Output (functions as an output pin)"]
3004        pub const _1: Self = Self::new(1);
3005    }
3006    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3007    pub struct Pcr_SPEC;
3008    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3009    impl Pcr {
3010        #[doc = "Disable input pull-up"]
3011        pub const _0: Self = Self::new(0);
3012
3013        #[doc = "Enable input pull-up"]
3014        pub const _1: Self = Self::new(1);
3015    }
3016    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3017    pub struct Ncodr_SPEC;
3018    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3019    impl Ncodr {
3020        #[doc = "Output CMOS"]
3021        pub const _0: Self = Self::new(0);
3022
3023        #[doc = "Output NMOS open-drain"]
3024        pub const _1: Self = Self::new(1);
3025    }
3026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3027    pub struct Isel_SPEC;
3028    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3029    impl Isel {
3030        #[doc = "Do not use as IRQn input pin"]
3031        pub const _0: Self = Self::new(0);
3032
3033        #[doc = "Use as IRQn input pin"]
3034        pub const _1: Self = Self::new(1);
3035    }
3036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3037    pub struct Asel_SPEC;
3038    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3039    impl Asel {
3040        #[doc = "Do not use as analog pin"]
3041        pub const _0: Self = Self::new(0);
3042
3043        #[doc = "Use as analog pin"]
3044        pub const _1: Self = Self::new(1);
3045    }
3046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3047    pub struct Pmr_SPEC;
3048    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3049    impl Pmr {
3050        #[doc = "Use as general I/O pin"]
3051        pub const _0: Self = Self::new(0);
3052
3053        #[doc = "Use as I/O port for peripheral functions"]
3054        pub const _1: Self = Self::new(1);
3055    }
3056}
3057#[doc(hidden)]
3058#[derive(Copy, Clone, Eq, PartialEq)]
3059pub struct P00PfsHa_SPEC;
3060impl crate::sealed::RegSpec for P00PfsHa_SPEC {
3061    type DataType = u16;
3062}
3063
3064#[doc = "Port 00%s Pin Function Select Register"]
3065pub type P00PfsHa = crate::RegValueT<P00PfsHa_SPEC>;
3066
3067impl P00PfsHa {
3068    #[doc = "Port Output Data"]
3069    #[inline(always)]
3070    pub fn podr(
3071        self,
3072    ) -> crate::common::RegisterField<
3073        0,
3074        0x1,
3075        1,
3076        0,
3077        p00pfs_ha::Podr,
3078        p00pfs_ha::Podr,
3079        P00PfsHa_SPEC,
3080        crate::common::RW,
3081    > {
3082        crate::common::RegisterField::<
3083            0,
3084            0x1,
3085            1,
3086            0,
3087            p00pfs_ha::Podr,
3088            p00pfs_ha::Podr,
3089            P00PfsHa_SPEC,
3090            crate::common::RW,
3091        >::from_register(self, 0)
3092    }
3093
3094    #[doc = "Port State"]
3095    #[inline(always)]
3096    pub fn pidr(
3097        self,
3098    ) -> crate::common::RegisterField<
3099        1,
3100        0x1,
3101        1,
3102        0,
3103        p00pfs_ha::Pidr,
3104        p00pfs_ha::Pidr,
3105        P00PfsHa_SPEC,
3106        crate::common::R,
3107    > {
3108        crate::common::RegisterField::<
3109            1,
3110            0x1,
3111            1,
3112            0,
3113            p00pfs_ha::Pidr,
3114            p00pfs_ha::Pidr,
3115            P00PfsHa_SPEC,
3116            crate::common::R,
3117        >::from_register(self, 0)
3118    }
3119
3120    #[doc = "Port Direction"]
3121    #[inline(always)]
3122    pub fn pdr(
3123        self,
3124    ) -> crate::common::RegisterField<
3125        2,
3126        0x1,
3127        1,
3128        0,
3129        p00pfs_ha::Pdr,
3130        p00pfs_ha::Pdr,
3131        P00PfsHa_SPEC,
3132        crate::common::RW,
3133    > {
3134        crate::common::RegisterField::<
3135            2,
3136            0x1,
3137            1,
3138            0,
3139            p00pfs_ha::Pdr,
3140            p00pfs_ha::Pdr,
3141            P00PfsHa_SPEC,
3142            crate::common::RW,
3143        >::from_register(self, 0)
3144    }
3145
3146    #[doc = "Pull-up Control"]
3147    #[inline(always)]
3148    pub fn pcr(
3149        self,
3150    ) -> crate::common::RegisterField<
3151        4,
3152        0x1,
3153        1,
3154        0,
3155        p00pfs_ha::Pcr,
3156        p00pfs_ha::Pcr,
3157        P00PfsHa_SPEC,
3158        crate::common::RW,
3159    > {
3160        crate::common::RegisterField::<
3161            4,
3162            0x1,
3163            1,
3164            0,
3165            p00pfs_ha::Pcr,
3166            p00pfs_ha::Pcr,
3167            P00PfsHa_SPEC,
3168            crate::common::RW,
3169        >::from_register(self, 0)
3170    }
3171
3172    #[doc = "N-Channel Open-Drain Control"]
3173    #[inline(always)]
3174    pub fn ncodr(
3175        self,
3176    ) -> crate::common::RegisterField<
3177        6,
3178        0x1,
3179        1,
3180        0,
3181        p00pfs_ha::Ncodr,
3182        p00pfs_ha::Ncodr,
3183        P00PfsHa_SPEC,
3184        crate::common::RW,
3185    > {
3186        crate::common::RegisterField::<
3187            6,
3188            0x1,
3189            1,
3190            0,
3191            p00pfs_ha::Ncodr,
3192            p00pfs_ha::Ncodr,
3193            P00PfsHa_SPEC,
3194            crate::common::RW,
3195        >::from_register(self, 0)
3196    }
3197
3198    #[doc = "IRQ Input Enable"]
3199    #[inline(always)]
3200    pub fn isel(
3201        self,
3202    ) -> crate::common::RegisterField<
3203        14,
3204        0x1,
3205        1,
3206        0,
3207        p00pfs_ha::Isel,
3208        p00pfs_ha::Isel,
3209        P00PfsHa_SPEC,
3210        crate::common::RW,
3211    > {
3212        crate::common::RegisterField::<
3213            14,
3214            0x1,
3215            1,
3216            0,
3217            p00pfs_ha::Isel,
3218            p00pfs_ha::Isel,
3219            P00PfsHa_SPEC,
3220            crate::common::RW,
3221        >::from_register(self, 0)
3222    }
3223
3224    #[doc = "Analog Input Enable"]
3225    #[inline(always)]
3226    pub fn asel(
3227        self,
3228    ) -> crate::common::RegisterField<
3229        15,
3230        0x1,
3231        1,
3232        0,
3233        p00pfs_ha::Asel,
3234        p00pfs_ha::Asel,
3235        P00PfsHa_SPEC,
3236        crate::common::RW,
3237    > {
3238        crate::common::RegisterField::<
3239            15,
3240            0x1,
3241            1,
3242            0,
3243            p00pfs_ha::Asel,
3244            p00pfs_ha::Asel,
3245            P00PfsHa_SPEC,
3246            crate::common::RW,
3247        >::from_register(self, 0)
3248    }
3249}
3250impl ::core::default::Default for P00PfsHa {
3251    #[inline(always)]
3252    fn default() -> P00PfsHa {
3253        <crate::RegValueT<P00PfsHa_SPEC> as RegisterValue<_>>::new(0)
3254    }
3255}
3256pub mod p00pfs_ha {
3257
3258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3259    pub struct Podr_SPEC;
3260    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3261    impl Podr {
3262        #[doc = "Output low"]
3263        pub const _0: Self = Self::new(0);
3264
3265        #[doc = "Output high"]
3266        pub const _1: Self = Self::new(1);
3267    }
3268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3269    pub struct Pidr_SPEC;
3270    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3271    impl Pidr {
3272        #[doc = "Low level"]
3273        pub const _0: Self = Self::new(0);
3274
3275        #[doc = "High level"]
3276        pub const _1: Self = Self::new(1);
3277    }
3278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3279    pub struct Pdr_SPEC;
3280    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3281    impl Pdr {
3282        #[doc = "Input (functions as an input pin)"]
3283        pub const _0: Self = Self::new(0);
3284
3285        #[doc = "Output (functions as an output pin)"]
3286        pub const _1: Self = Self::new(1);
3287    }
3288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3289    pub struct Pcr_SPEC;
3290    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3291    impl Pcr {
3292        #[doc = "Disable input pull-up"]
3293        pub const _0: Self = Self::new(0);
3294
3295        #[doc = "Enable input pull-up"]
3296        pub const _1: Self = Self::new(1);
3297    }
3298    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3299    pub struct Ncodr_SPEC;
3300    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3301    impl Ncodr {
3302        #[doc = "Output CMOS"]
3303        pub const _0: Self = Self::new(0);
3304
3305        #[doc = "Output NMOS open-drain"]
3306        pub const _1: Self = Self::new(1);
3307    }
3308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3309    pub struct Isel_SPEC;
3310    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3311    impl Isel {
3312        #[doc = "Do not use as IRQn input pin"]
3313        pub const _0: Self = Self::new(0);
3314
3315        #[doc = "Use as IRQn input pin"]
3316        pub const _1: Self = Self::new(1);
3317    }
3318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3319    pub struct Asel_SPEC;
3320    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3321    impl Asel {
3322        #[doc = "Do not use as analog pin"]
3323        pub const _0: Self = Self::new(0);
3324
3325        #[doc = "Use as analog pin"]
3326        pub const _1: Self = Self::new(1);
3327    }
3328}
3329#[doc(hidden)]
3330#[derive(Copy, Clone, Eq, PartialEq)]
3331pub struct P00PfsBy_SPEC;
3332impl crate::sealed::RegSpec for P00PfsBy_SPEC {
3333    type DataType = u8;
3334}
3335
3336#[doc = "Port 00%s Pin Function Select Register"]
3337pub type P00PfsBy = crate::RegValueT<P00PfsBy_SPEC>;
3338
3339impl P00PfsBy {
3340    #[doc = "Port Output Data"]
3341    #[inline(always)]
3342    pub fn podr(
3343        self,
3344    ) -> crate::common::RegisterField<
3345        0,
3346        0x1,
3347        1,
3348        0,
3349        p00pfs_by::Podr,
3350        p00pfs_by::Podr,
3351        P00PfsBy_SPEC,
3352        crate::common::RW,
3353    > {
3354        crate::common::RegisterField::<
3355            0,
3356            0x1,
3357            1,
3358            0,
3359            p00pfs_by::Podr,
3360            p00pfs_by::Podr,
3361            P00PfsBy_SPEC,
3362            crate::common::RW,
3363        >::from_register(self, 0)
3364    }
3365
3366    #[doc = "Port State"]
3367    #[inline(always)]
3368    pub fn pidr(
3369        self,
3370    ) -> crate::common::RegisterField<
3371        1,
3372        0x1,
3373        1,
3374        0,
3375        p00pfs_by::Pidr,
3376        p00pfs_by::Pidr,
3377        P00PfsBy_SPEC,
3378        crate::common::R,
3379    > {
3380        crate::common::RegisterField::<
3381            1,
3382            0x1,
3383            1,
3384            0,
3385            p00pfs_by::Pidr,
3386            p00pfs_by::Pidr,
3387            P00PfsBy_SPEC,
3388            crate::common::R,
3389        >::from_register(self, 0)
3390    }
3391
3392    #[doc = "Port Direction"]
3393    #[inline(always)]
3394    pub fn pdr(
3395        self,
3396    ) -> crate::common::RegisterField<
3397        2,
3398        0x1,
3399        1,
3400        0,
3401        p00pfs_by::Pdr,
3402        p00pfs_by::Pdr,
3403        P00PfsBy_SPEC,
3404        crate::common::RW,
3405    > {
3406        crate::common::RegisterField::<
3407            2,
3408            0x1,
3409            1,
3410            0,
3411            p00pfs_by::Pdr,
3412            p00pfs_by::Pdr,
3413            P00PfsBy_SPEC,
3414            crate::common::RW,
3415        >::from_register(self, 0)
3416    }
3417
3418    #[doc = "Pull-up Control"]
3419    #[inline(always)]
3420    pub fn pcr(
3421        self,
3422    ) -> crate::common::RegisterField<
3423        4,
3424        0x1,
3425        1,
3426        0,
3427        p00pfs_by::Pcr,
3428        p00pfs_by::Pcr,
3429        P00PfsBy_SPEC,
3430        crate::common::RW,
3431    > {
3432        crate::common::RegisterField::<
3433            4,
3434            0x1,
3435            1,
3436            0,
3437            p00pfs_by::Pcr,
3438            p00pfs_by::Pcr,
3439            P00PfsBy_SPEC,
3440            crate::common::RW,
3441        >::from_register(self, 0)
3442    }
3443
3444    #[doc = "N-Channel Open-Drain Control"]
3445    #[inline(always)]
3446    pub fn ncodr(
3447        self,
3448    ) -> crate::common::RegisterField<
3449        6,
3450        0x1,
3451        1,
3452        0,
3453        p00pfs_by::Ncodr,
3454        p00pfs_by::Ncodr,
3455        P00PfsBy_SPEC,
3456        crate::common::RW,
3457    > {
3458        crate::common::RegisterField::<
3459            6,
3460            0x1,
3461            1,
3462            0,
3463            p00pfs_by::Ncodr,
3464            p00pfs_by::Ncodr,
3465            P00PfsBy_SPEC,
3466            crate::common::RW,
3467        >::from_register(self, 0)
3468    }
3469}
3470impl ::core::default::Default for P00PfsBy {
3471    #[inline(always)]
3472    fn default() -> P00PfsBy {
3473        <crate::RegValueT<P00PfsBy_SPEC> as RegisterValue<_>>::new(0)
3474    }
3475}
3476pub mod p00pfs_by {
3477
3478    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3479    pub struct Podr_SPEC;
3480    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3481    impl Podr {
3482        #[doc = "Output low"]
3483        pub const _0: Self = Self::new(0);
3484
3485        #[doc = "Output high"]
3486        pub const _1: Self = Self::new(1);
3487    }
3488    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3489    pub struct Pidr_SPEC;
3490    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3491    impl Pidr {
3492        #[doc = "Low level"]
3493        pub const _0: Self = Self::new(0);
3494
3495        #[doc = "High level"]
3496        pub const _1: Self = Self::new(1);
3497    }
3498    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3499    pub struct Pdr_SPEC;
3500    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3501    impl Pdr {
3502        #[doc = "Input (functions as an input pin)"]
3503        pub const _0: Self = Self::new(0);
3504
3505        #[doc = "Output (functions as an output pin)"]
3506        pub const _1: Self = Self::new(1);
3507    }
3508    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3509    pub struct Pcr_SPEC;
3510    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3511    impl Pcr {
3512        #[doc = "Disable input pull-up"]
3513        pub const _0: Self = Self::new(0);
3514
3515        #[doc = "Enable input pull-up"]
3516        pub const _1: Self = Self::new(1);
3517    }
3518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3519    pub struct Ncodr_SPEC;
3520    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3521    impl Ncodr {
3522        #[doc = "Output CMOS"]
3523        pub const _0: Self = Self::new(0);
3524
3525        #[doc = "Output NMOS open-drain"]
3526        pub const _1: Self = Self::new(1);
3527    }
3528}
3529#[doc(hidden)]
3530#[derive(Copy, Clone, Eq, PartialEq)]
3531pub struct P0Pfs_SPEC;
3532impl crate::sealed::RegSpec for P0Pfs_SPEC {
3533    type DataType = u32;
3534}
3535
3536#[doc = "Port 0%s Pin Function Select Register"]
3537pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
3538
3539impl P0Pfs {
3540    #[doc = "Port Output Data"]
3541    #[inline(always)]
3542    pub fn podr(
3543        self,
3544    ) -> crate::common::RegisterField<
3545        0,
3546        0x1,
3547        1,
3548        0,
3549        p0pfs::Podr,
3550        p0pfs::Podr,
3551        P0Pfs_SPEC,
3552        crate::common::RW,
3553    > {
3554        crate::common::RegisterField::<
3555            0,
3556            0x1,
3557            1,
3558            0,
3559            p0pfs::Podr,
3560            p0pfs::Podr,
3561            P0Pfs_SPEC,
3562            crate::common::RW,
3563        >::from_register(self, 0)
3564    }
3565
3566    #[doc = "Port State"]
3567    #[inline(always)]
3568    pub fn pidr(
3569        self,
3570    ) -> crate::common::RegisterField<
3571        1,
3572        0x1,
3573        1,
3574        0,
3575        p0pfs::Pidr,
3576        p0pfs::Pidr,
3577        P0Pfs_SPEC,
3578        crate::common::R,
3579    > {
3580        crate::common::RegisterField::<
3581            1,
3582            0x1,
3583            1,
3584            0,
3585            p0pfs::Pidr,
3586            p0pfs::Pidr,
3587            P0Pfs_SPEC,
3588            crate::common::R,
3589        >::from_register(self, 0)
3590    }
3591
3592    #[doc = "Port Direction"]
3593    #[inline(always)]
3594    pub fn pdr(
3595        self,
3596    ) -> crate::common::RegisterField<
3597        2,
3598        0x1,
3599        1,
3600        0,
3601        p0pfs::Pdr,
3602        p0pfs::Pdr,
3603        P0Pfs_SPEC,
3604        crate::common::RW,
3605    > {
3606        crate::common::RegisterField::<
3607            2,
3608            0x1,
3609            1,
3610            0,
3611            p0pfs::Pdr,
3612            p0pfs::Pdr,
3613            P0Pfs_SPEC,
3614            crate::common::RW,
3615        >::from_register(self, 0)
3616    }
3617
3618    #[doc = "Pull-up Control"]
3619    #[inline(always)]
3620    pub fn pcr(
3621        self,
3622    ) -> crate::common::RegisterField<
3623        4,
3624        0x1,
3625        1,
3626        0,
3627        p0pfs::Pcr,
3628        p0pfs::Pcr,
3629        P0Pfs_SPEC,
3630        crate::common::RW,
3631    > {
3632        crate::common::RegisterField::<
3633            4,
3634            0x1,
3635            1,
3636            0,
3637            p0pfs::Pcr,
3638            p0pfs::Pcr,
3639            P0Pfs_SPEC,
3640            crate::common::RW,
3641        >::from_register(self, 0)
3642    }
3643
3644    #[doc = "N-Channel Open-Drain Control"]
3645    #[inline(always)]
3646    pub fn ncodr(
3647        self,
3648    ) -> crate::common::RegisterField<
3649        6,
3650        0x1,
3651        1,
3652        0,
3653        p0pfs::Ncodr,
3654        p0pfs::Ncodr,
3655        P0Pfs_SPEC,
3656        crate::common::RW,
3657    > {
3658        crate::common::RegisterField::<
3659            6,
3660            0x1,
3661            1,
3662            0,
3663            p0pfs::Ncodr,
3664            p0pfs::Ncodr,
3665            P0Pfs_SPEC,
3666            crate::common::RW,
3667        >::from_register(self, 0)
3668    }
3669
3670    #[doc = "IRQ Input Enable"]
3671    #[inline(always)]
3672    pub fn isel(
3673        self,
3674    ) -> crate::common::RegisterField<
3675        14,
3676        0x1,
3677        1,
3678        0,
3679        p0pfs::Isel,
3680        p0pfs::Isel,
3681        P0Pfs_SPEC,
3682        crate::common::RW,
3683    > {
3684        crate::common::RegisterField::<
3685            14,
3686            0x1,
3687            1,
3688            0,
3689            p0pfs::Isel,
3690            p0pfs::Isel,
3691            P0Pfs_SPEC,
3692            crate::common::RW,
3693        >::from_register(self, 0)
3694    }
3695
3696    #[doc = "Analog Input Enable"]
3697    #[inline(always)]
3698    pub fn asel(
3699        self,
3700    ) -> crate::common::RegisterField<
3701        15,
3702        0x1,
3703        1,
3704        0,
3705        p0pfs::Asel,
3706        p0pfs::Asel,
3707        P0Pfs_SPEC,
3708        crate::common::RW,
3709    > {
3710        crate::common::RegisterField::<
3711            15,
3712            0x1,
3713            1,
3714            0,
3715            p0pfs::Asel,
3716            p0pfs::Asel,
3717            P0Pfs_SPEC,
3718            crate::common::RW,
3719        >::from_register(self, 0)
3720    }
3721
3722    #[doc = "Port Mode Control"]
3723    #[inline(always)]
3724    pub fn pmr(
3725        self,
3726    ) -> crate::common::RegisterField<
3727        16,
3728        0x1,
3729        1,
3730        0,
3731        p0pfs::Pmr,
3732        p0pfs::Pmr,
3733        P0Pfs_SPEC,
3734        crate::common::RW,
3735    > {
3736        crate::common::RegisterField::<
3737            16,
3738            0x1,
3739            1,
3740            0,
3741            p0pfs::Pmr,
3742            p0pfs::Pmr,
3743            P0Pfs_SPEC,
3744            crate::common::RW,
3745        >::from_register(self, 0)
3746    }
3747
3748    #[doc = "Peripheral Select"]
3749    #[inline(always)]
3750    pub fn psel(
3751        self,
3752    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
3753        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
3754    }
3755}
3756impl ::core::default::Default for P0Pfs {
3757    #[inline(always)]
3758    fn default() -> P0Pfs {
3759        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
3760    }
3761}
3762pub mod p0pfs {
3763
3764    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3765    pub struct Podr_SPEC;
3766    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3767    impl Podr {
3768        #[doc = "Output low"]
3769        pub const _0: Self = Self::new(0);
3770
3771        #[doc = "Output high"]
3772        pub const _1: Self = Self::new(1);
3773    }
3774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3775    pub struct Pidr_SPEC;
3776    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3777    impl Pidr {
3778        #[doc = "Low level"]
3779        pub const _0: Self = Self::new(0);
3780
3781        #[doc = "High level"]
3782        pub const _1: Self = Self::new(1);
3783    }
3784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3785    pub struct Pdr_SPEC;
3786    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3787    impl Pdr {
3788        #[doc = "Input (functions as an input pin)"]
3789        pub const _0: Self = Self::new(0);
3790
3791        #[doc = "Output (functions as an output pin)"]
3792        pub const _1: Self = Self::new(1);
3793    }
3794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3795    pub struct Pcr_SPEC;
3796    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3797    impl Pcr {
3798        #[doc = "Disable input pull-up"]
3799        pub const _0: Self = Self::new(0);
3800
3801        #[doc = "Enable input pull-up"]
3802        pub const _1: Self = Self::new(1);
3803    }
3804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3805    pub struct Ncodr_SPEC;
3806    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3807    impl Ncodr {
3808        #[doc = "Output CMOS"]
3809        pub const _0: Self = Self::new(0);
3810
3811        #[doc = "Output NMOS open-drain"]
3812        pub const _1: Self = Self::new(1);
3813    }
3814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3815    pub struct Isel_SPEC;
3816    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3817    impl Isel {
3818        #[doc = "Do not use as IRQn input pin"]
3819        pub const _0: Self = Self::new(0);
3820
3821        #[doc = "Use as IRQn input pin"]
3822        pub const _1: Self = Self::new(1);
3823    }
3824    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3825    pub struct Asel_SPEC;
3826    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3827    impl Asel {
3828        #[doc = "Do not use as analog pin"]
3829        pub const _0: Self = Self::new(0);
3830
3831        #[doc = "Use as analog pin"]
3832        pub const _1: Self = Self::new(1);
3833    }
3834    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3835    pub struct Pmr_SPEC;
3836    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3837    impl Pmr {
3838        #[doc = "Use as general I/O pin"]
3839        pub const _0: Self = Self::new(0);
3840
3841        #[doc = "Use as I/O port for peripheral functions"]
3842        pub const _1: Self = Self::new(1);
3843    }
3844}
3845#[doc(hidden)]
3846#[derive(Copy, Clone, Eq, PartialEq)]
3847pub struct P0PfsHa_SPEC;
3848impl crate::sealed::RegSpec for P0PfsHa_SPEC {
3849    type DataType = u16;
3850}
3851
3852#[doc = "Port 0%s Pin Function Select Register"]
3853pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
3854
3855impl P0PfsHa {
3856    #[doc = "Port Output Data"]
3857    #[inline(always)]
3858    pub fn podr(
3859        self,
3860    ) -> crate::common::RegisterField<
3861        0,
3862        0x1,
3863        1,
3864        0,
3865        p0pfs_ha::Podr,
3866        p0pfs_ha::Podr,
3867        P0PfsHa_SPEC,
3868        crate::common::RW,
3869    > {
3870        crate::common::RegisterField::<
3871            0,
3872            0x1,
3873            1,
3874            0,
3875            p0pfs_ha::Podr,
3876            p0pfs_ha::Podr,
3877            P0PfsHa_SPEC,
3878            crate::common::RW,
3879        >::from_register(self, 0)
3880    }
3881
3882    #[doc = "Port State"]
3883    #[inline(always)]
3884    pub fn pidr(
3885        self,
3886    ) -> crate::common::RegisterField<
3887        1,
3888        0x1,
3889        1,
3890        0,
3891        p0pfs_ha::Pidr,
3892        p0pfs_ha::Pidr,
3893        P0PfsHa_SPEC,
3894        crate::common::R,
3895    > {
3896        crate::common::RegisterField::<
3897            1,
3898            0x1,
3899            1,
3900            0,
3901            p0pfs_ha::Pidr,
3902            p0pfs_ha::Pidr,
3903            P0PfsHa_SPEC,
3904            crate::common::R,
3905        >::from_register(self, 0)
3906    }
3907
3908    #[doc = "Port Direction"]
3909    #[inline(always)]
3910    pub fn pdr(
3911        self,
3912    ) -> crate::common::RegisterField<
3913        2,
3914        0x1,
3915        1,
3916        0,
3917        p0pfs_ha::Pdr,
3918        p0pfs_ha::Pdr,
3919        P0PfsHa_SPEC,
3920        crate::common::RW,
3921    > {
3922        crate::common::RegisterField::<
3923            2,
3924            0x1,
3925            1,
3926            0,
3927            p0pfs_ha::Pdr,
3928            p0pfs_ha::Pdr,
3929            P0PfsHa_SPEC,
3930            crate::common::RW,
3931        >::from_register(self, 0)
3932    }
3933
3934    #[doc = "Pull-up Control"]
3935    #[inline(always)]
3936    pub fn pcr(
3937        self,
3938    ) -> crate::common::RegisterField<
3939        4,
3940        0x1,
3941        1,
3942        0,
3943        p0pfs_ha::Pcr,
3944        p0pfs_ha::Pcr,
3945        P0PfsHa_SPEC,
3946        crate::common::RW,
3947    > {
3948        crate::common::RegisterField::<
3949            4,
3950            0x1,
3951            1,
3952            0,
3953            p0pfs_ha::Pcr,
3954            p0pfs_ha::Pcr,
3955            P0PfsHa_SPEC,
3956            crate::common::RW,
3957        >::from_register(self, 0)
3958    }
3959
3960    #[doc = "N-Channel Open-Drain Control"]
3961    #[inline(always)]
3962    pub fn ncodr(
3963        self,
3964    ) -> crate::common::RegisterField<
3965        6,
3966        0x1,
3967        1,
3968        0,
3969        p0pfs_ha::Ncodr,
3970        p0pfs_ha::Ncodr,
3971        P0PfsHa_SPEC,
3972        crate::common::RW,
3973    > {
3974        crate::common::RegisterField::<
3975            6,
3976            0x1,
3977            1,
3978            0,
3979            p0pfs_ha::Ncodr,
3980            p0pfs_ha::Ncodr,
3981            P0PfsHa_SPEC,
3982            crate::common::RW,
3983        >::from_register(self, 0)
3984    }
3985
3986    #[doc = "IRQ Input Enable"]
3987    #[inline(always)]
3988    pub fn isel(
3989        self,
3990    ) -> crate::common::RegisterField<
3991        14,
3992        0x1,
3993        1,
3994        0,
3995        p0pfs_ha::Isel,
3996        p0pfs_ha::Isel,
3997        P0PfsHa_SPEC,
3998        crate::common::RW,
3999    > {
4000        crate::common::RegisterField::<
4001            14,
4002            0x1,
4003            1,
4004            0,
4005            p0pfs_ha::Isel,
4006            p0pfs_ha::Isel,
4007            P0PfsHa_SPEC,
4008            crate::common::RW,
4009        >::from_register(self, 0)
4010    }
4011
4012    #[doc = "Analog Input Enable"]
4013    #[inline(always)]
4014    pub fn asel(
4015        self,
4016    ) -> crate::common::RegisterField<
4017        15,
4018        0x1,
4019        1,
4020        0,
4021        p0pfs_ha::Asel,
4022        p0pfs_ha::Asel,
4023        P0PfsHa_SPEC,
4024        crate::common::RW,
4025    > {
4026        crate::common::RegisterField::<
4027            15,
4028            0x1,
4029            1,
4030            0,
4031            p0pfs_ha::Asel,
4032            p0pfs_ha::Asel,
4033            P0PfsHa_SPEC,
4034            crate::common::RW,
4035        >::from_register(self, 0)
4036    }
4037}
4038impl ::core::default::Default for P0PfsHa {
4039    #[inline(always)]
4040    fn default() -> P0PfsHa {
4041        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
4042    }
4043}
4044pub mod p0pfs_ha {
4045
4046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4047    pub struct Podr_SPEC;
4048    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4049    impl Podr {
4050        #[doc = "Output low"]
4051        pub const _0: Self = Self::new(0);
4052
4053        #[doc = "Output high"]
4054        pub const _1: Self = Self::new(1);
4055    }
4056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4057    pub struct Pidr_SPEC;
4058    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4059    impl Pidr {
4060        #[doc = "Low level"]
4061        pub const _0: Self = Self::new(0);
4062
4063        #[doc = "High level"]
4064        pub const _1: Self = Self::new(1);
4065    }
4066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4067    pub struct Pdr_SPEC;
4068    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4069    impl Pdr {
4070        #[doc = "Input (functions as an input pin)"]
4071        pub const _0: Self = Self::new(0);
4072
4073        #[doc = "Output (functions as an output pin)"]
4074        pub const _1: Self = Self::new(1);
4075    }
4076    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4077    pub struct Pcr_SPEC;
4078    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4079    impl Pcr {
4080        #[doc = "Disable input pull-up"]
4081        pub const _0: Self = Self::new(0);
4082
4083        #[doc = "Enable input pull-up"]
4084        pub const _1: Self = Self::new(1);
4085    }
4086    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4087    pub struct Ncodr_SPEC;
4088    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4089    impl Ncodr {
4090        #[doc = "Output CMOS"]
4091        pub const _0: Self = Self::new(0);
4092
4093        #[doc = "Output NMOS open-drain"]
4094        pub const _1: Self = Self::new(1);
4095    }
4096    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4097    pub struct Isel_SPEC;
4098    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4099    impl Isel {
4100        #[doc = "Do not use as IRQn input pin"]
4101        pub const _0: Self = Self::new(0);
4102
4103        #[doc = "Use as IRQn input pin"]
4104        pub const _1: Self = Self::new(1);
4105    }
4106    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4107    pub struct Asel_SPEC;
4108    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4109    impl Asel {
4110        #[doc = "Do not use as analog pin"]
4111        pub const _0: Self = Self::new(0);
4112
4113        #[doc = "Use as analog pin"]
4114        pub const _1: Self = Self::new(1);
4115    }
4116}
4117#[doc(hidden)]
4118#[derive(Copy, Clone, Eq, PartialEq)]
4119pub struct P0PfsBy_SPEC;
4120impl crate::sealed::RegSpec for P0PfsBy_SPEC {
4121    type DataType = u8;
4122}
4123
4124#[doc = "Port 0%s Pin Function Select Register"]
4125pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
4126
4127impl P0PfsBy {
4128    #[doc = "Port Output Data"]
4129    #[inline(always)]
4130    pub fn podr(
4131        self,
4132    ) -> crate::common::RegisterField<
4133        0,
4134        0x1,
4135        1,
4136        0,
4137        p0pfs_by::Podr,
4138        p0pfs_by::Podr,
4139        P0PfsBy_SPEC,
4140        crate::common::RW,
4141    > {
4142        crate::common::RegisterField::<
4143            0,
4144            0x1,
4145            1,
4146            0,
4147            p0pfs_by::Podr,
4148            p0pfs_by::Podr,
4149            P0PfsBy_SPEC,
4150            crate::common::RW,
4151        >::from_register(self, 0)
4152    }
4153
4154    #[doc = "Port State"]
4155    #[inline(always)]
4156    pub fn pidr(
4157        self,
4158    ) -> crate::common::RegisterField<
4159        1,
4160        0x1,
4161        1,
4162        0,
4163        p0pfs_by::Pidr,
4164        p0pfs_by::Pidr,
4165        P0PfsBy_SPEC,
4166        crate::common::R,
4167    > {
4168        crate::common::RegisterField::<
4169            1,
4170            0x1,
4171            1,
4172            0,
4173            p0pfs_by::Pidr,
4174            p0pfs_by::Pidr,
4175            P0PfsBy_SPEC,
4176            crate::common::R,
4177        >::from_register(self, 0)
4178    }
4179
4180    #[doc = "Port Direction"]
4181    #[inline(always)]
4182    pub fn pdr(
4183        self,
4184    ) -> crate::common::RegisterField<
4185        2,
4186        0x1,
4187        1,
4188        0,
4189        p0pfs_by::Pdr,
4190        p0pfs_by::Pdr,
4191        P0PfsBy_SPEC,
4192        crate::common::RW,
4193    > {
4194        crate::common::RegisterField::<
4195            2,
4196            0x1,
4197            1,
4198            0,
4199            p0pfs_by::Pdr,
4200            p0pfs_by::Pdr,
4201            P0PfsBy_SPEC,
4202            crate::common::RW,
4203        >::from_register(self, 0)
4204    }
4205
4206    #[doc = "Pull-up Control"]
4207    #[inline(always)]
4208    pub fn pcr(
4209        self,
4210    ) -> crate::common::RegisterField<
4211        4,
4212        0x1,
4213        1,
4214        0,
4215        p0pfs_by::Pcr,
4216        p0pfs_by::Pcr,
4217        P0PfsBy_SPEC,
4218        crate::common::RW,
4219    > {
4220        crate::common::RegisterField::<
4221            4,
4222            0x1,
4223            1,
4224            0,
4225            p0pfs_by::Pcr,
4226            p0pfs_by::Pcr,
4227            P0PfsBy_SPEC,
4228            crate::common::RW,
4229        >::from_register(self, 0)
4230    }
4231
4232    #[doc = "N-Channel Open-Drain Control"]
4233    #[inline(always)]
4234    pub fn ncodr(
4235        self,
4236    ) -> crate::common::RegisterField<
4237        6,
4238        0x1,
4239        1,
4240        0,
4241        p0pfs_by::Ncodr,
4242        p0pfs_by::Ncodr,
4243        P0PfsBy_SPEC,
4244        crate::common::RW,
4245    > {
4246        crate::common::RegisterField::<
4247            6,
4248            0x1,
4249            1,
4250            0,
4251            p0pfs_by::Ncodr,
4252            p0pfs_by::Ncodr,
4253            P0PfsBy_SPEC,
4254            crate::common::RW,
4255        >::from_register(self, 0)
4256    }
4257}
4258impl ::core::default::Default for P0PfsBy {
4259    #[inline(always)]
4260    fn default() -> P0PfsBy {
4261        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
4262    }
4263}
4264pub mod p0pfs_by {
4265
4266    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4267    pub struct Podr_SPEC;
4268    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4269    impl Podr {
4270        #[doc = "Output low"]
4271        pub const _0: Self = Self::new(0);
4272
4273        #[doc = "Output high"]
4274        pub const _1: Self = Self::new(1);
4275    }
4276    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4277    pub struct Pidr_SPEC;
4278    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4279    impl Pidr {
4280        #[doc = "Low level"]
4281        pub const _0: Self = Self::new(0);
4282
4283        #[doc = "High level"]
4284        pub const _1: Self = Self::new(1);
4285    }
4286    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4287    pub struct Pdr_SPEC;
4288    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4289    impl Pdr {
4290        #[doc = "Input (functions as an input pin)"]
4291        pub const _0: Self = Self::new(0);
4292
4293        #[doc = "Output (functions as an output pin)"]
4294        pub const _1: Self = Self::new(1);
4295    }
4296    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4297    pub struct Pcr_SPEC;
4298    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4299    impl Pcr {
4300        #[doc = "Disable input pull-up"]
4301        pub const _0: Self = Self::new(0);
4302
4303        #[doc = "Enable input pull-up"]
4304        pub const _1: Self = Self::new(1);
4305    }
4306    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4307    pub struct Ncodr_SPEC;
4308    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4309    impl Ncodr {
4310        #[doc = "Output CMOS"]
4311        pub const _0: Self = Self::new(0);
4312
4313        #[doc = "Output NMOS open-drain"]
4314        pub const _1: Self = Self::new(1);
4315    }
4316}
4317#[doc(hidden)]
4318#[derive(Copy, Clone, Eq, PartialEq)]
4319pub struct P10Pfs_SPEC;
4320impl crate::sealed::RegSpec for P10Pfs_SPEC {
4321    type DataType = u32;
4322}
4323
4324#[doc = "Port 10%s Pin Function Select Register"]
4325pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
4326
4327impl P10Pfs {
4328    #[doc = "Port Output Data"]
4329    #[inline(always)]
4330    pub fn podr(
4331        self,
4332    ) -> crate::common::RegisterField<
4333        0,
4334        0x1,
4335        1,
4336        0,
4337        p10pfs::Podr,
4338        p10pfs::Podr,
4339        P10Pfs_SPEC,
4340        crate::common::RW,
4341    > {
4342        crate::common::RegisterField::<
4343            0,
4344            0x1,
4345            1,
4346            0,
4347            p10pfs::Podr,
4348            p10pfs::Podr,
4349            P10Pfs_SPEC,
4350            crate::common::RW,
4351        >::from_register(self, 0)
4352    }
4353
4354    #[doc = "Port State"]
4355    #[inline(always)]
4356    pub fn pidr(
4357        self,
4358    ) -> crate::common::RegisterField<
4359        1,
4360        0x1,
4361        1,
4362        0,
4363        p10pfs::Pidr,
4364        p10pfs::Pidr,
4365        P10Pfs_SPEC,
4366        crate::common::R,
4367    > {
4368        crate::common::RegisterField::<
4369            1,
4370            0x1,
4371            1,
4372            0,
4373            p10pfs::Pidr,
4374            p10pfs::Pidr,
4375            P10Pfs_SPEC,
4376            crate::common::R,
4377        >::from_register(self, 0)
4378    }
4379
4380    #[doc = "Port Direction"]
4381    #[inline(always)]
4382    pub fn pdr(
4383        self,
4384    ) -> crate::common::RegisterField<
4385        2,
4386        0x1,
4387        1,
4388        0,
4389        p10pfs::Pdr,
4390        p10pfs::Pdr,
4391        P10Pfs_SPEC,
4392        crate::common::RW,
4393    > {
4394        crate::common::RegisterField::<
4395            2,
4396            0x1,
4397            1,
4398            0,
4399            p10pfs::Pdr,
4400            p10pfs::Pdr,
4401            P10Pfs_SPEC,
4402            crate::common::RW,
4403        >::from_register(self, 0)
4404    }
4405
4406    #[doc = "Pull-up Control"]
4407    #[inline(always)]
4408    pub fn pcr(
4409        self,
4410    ) -> crate::common::RegisterField<
4411        4,
4412        0x1,
4413        1,
4414        0,
4415        p10pfs::Pcr,
4416        p10pfs::Pcr,
4417        P10Pfs_SPEC,
4418        crate::common::RW,
4419    > {
4420        crate::common::RegisterField::<
4421            4,
4422            0x1,
4423            1,
4424            0,
4425            p10pfs::Pcr,
4426            p10pfs::Pcr,
4427            P10Pfs_SPEC,
4428            crate::common::RW,
4429        >::from_register(self, 0)
4430    }
4431
4432    #[doc = "N-Channel Open-Drain Control"]
4433    #[inline(always)]
4434    pub fn ncodr(
4435        self,
4436    ) -> crate::common::RegisterField<
4437        6,
4438        0x1,
4439        1,
4440        0,
4441        p10pfs::Ncodr,
4442        p10pfs::Ncodr,
4443        P10Pfs_SPEC,
4444        crate::common::RW,
4445    > {
4446        crate::common::RegisterField::<
4447            6,
4448            0x1,
4449            1,
4450            0,
4451            p10pfs::Ncodr,
4452            p10pfs::Ncodr,
4453            P10Pfs_SPEC,
4454            crate::common::RW,
4455        >::from_register(self, 0)
4456    }
4457
4458    #[doc = "Event on Falling/Event on Rising"]
4459    #[inline(always)]
4460    pub fn eofr(
4461        self,
4462    ) -> crate::common::RegisterField<
4463        12,
4464        0x3,
4465        1,
4466        0,
4467        p10pfs::Eofr,
4468        p10pfs::Eofr,
4469        P10Pfs_SPEC,
4470        crate::common::RW,
4471    > {
4472        crate::common::RegisterField::<
4473            12,
4474            0x3,
4475            1,
4476            0,
4477            p10pfs::Eofr,
4478            p10pfs::Eofr,
4479            P10Pfs_SPEC,
4480            crate::common::RW,
4481        >::from_register(self, 0)
4482    }
4483
4484    #[doc = "IRQ Input Enable"]
4485    #[inline(always)]
4486    pub fn isel(
4487        self,
4488    ) -> crate::common::RegisterField<
4489        14,
4490        0x1,
4491        1,
4492        0,
4493        p10pfs::Isel,
4494        p10pfs::Isel,
4495        P10Pfs_SPEC,
4496        crate::common::RW,
4497    > {
4498        crate::common::RegisterField::<
4499            14,
4500            0x1,
4501            1,
4502            0,
4503            p10pfs::Isel,
4504            p10pfs::Isel,
4505            P10Pfs_SPEC,
4506            crate::common::RW,
4507        >::from_register(self, 0)
4508    }
4509
4510    #[doc = "Analog Input Enable"]
4511    #[inline(always)]
4512    pub fn asel(
4513        self,
4514    ) -> crate::common::RegisterField<
4515        15,
4516        0x1,
4517        1,
4518        0,
4519        p10pfs::Asel,
4520        p10pfs::Asel,
4521        P10Pfs_SPEC,
4522        crate::common::RW,
4523    > {
4524        crate::common::RegisterField::<
4525            15,
4526            0x1,
4527            1,
4528            0,
4529            p10pfs::Asel,
4530            p10pfs::Asel,
4531            P10Pfs_SPEC,
4532            crate::common::RW,
4533        >::from_register(self, 0)
4534    }
4535
4536    #[doc = "Port Mode Control"]
4537    #[inline(always)]
4538    pub fn pmr(
4539        self,
4540    ) -> crate::common::RegisterField<
4541        16,
4542        0x1,
4543        1,
4544        0,
4545        p10pfs::Pmr,
4546        p10pfs::Pmr,
4547        P10Pfs_SPEC,
4548        crate::common::RW,
4549    > {
4550        crate::common::RegisterField::<
4551            16,
4552            0x1,
4553            1,
4554            0,
4555            p10pfs::Pmr,
4556            p10pfs::Pmr,
4557            P10Pfs_SPEC,
4558            crate::common::RW,
4559        >::from_register(self, 0)
4560    }
4561
4562    #[doc = "Peripheral Select"]
4563    #[inline(always)]
4564    pub fn psel(
4565        self,
4566    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
4567        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
4568    }
4569}
4570impl ::core::default::Default for P10Pfs {
4571    #[inline(always)]
4572    fn default() -> P10Pfs {
4573        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
4574    }
4575}
4576pub mod p10pfs {
4577
4578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4579    pub struct Podr_SPEC;
4580    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4581    impl Podr {
4582        #[doc = "Output low"]
4583        pub const _0: Self = Self::new(0);
4584
4585        #[doc = "Output high"]
4586        pub const _1: Self = Self::new(1);
4587    }
4588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4589    pub struct Pidr_SPEC;
4590    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4591    impl Pidr {
4592        #[doc = "Low level"]
4593        pub const _0: Self = Self::new(0);
4594
4595        #[doc = "High level"]
4596        pub const _1: Self = Self::new(1);
4597    }
4598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4599    pub struct Pdr_SPEC;
4600    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4601    impl Pdr {
4602        #[doc = "Input (functions as an input pin)"]
4603        pub const _0: Self = Self::new(0);
4604
4605        #[doc = "Output (functions as an output pin)"]
4606        pub const _1: Self = Self::new(1);
4607    }
4608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4609    pub struct Pcr_SPEC;
4610    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4611    impl Pcr {
4612        #[doc = "Disable input pull-up"]
4613        pub const _0: Self = Self::new(0);
4614
4615        #[doc = "Enable input pull-up"]
4616        pub const _1: Self = Self::new(1);
4617    }
4618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4619    pub struct Ncodr_SPEC;
4620    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4621    impl Ncodr {
4622        #[doc = "Output CMOS"]
4623        pub const _0: Self = Self::new(0);
4624
4625        #[doc = "Output NMOS open-drain"]
4626        pub const _1: Self = Self::new(1);
4627    }
4628    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4629    pub struct Eofr_SPEC;
4630    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4631    impl Eofr {
4632        #[doc = "Don\'t care"]
4633        pub const _00: Self = Self::new(0);
4634
4635        #[doc = "Detect rising edge"]
4636        pub const _01: Self = Self::new(1);
4637
4638        #[doc = "Detect falling edge"]
4639        pub const _10: Self = Self::new(2);
4640
4641        #[doc = "Detect both edges"]
4642        pub const _11: Self = Self::new(3);
4643    }
4644    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4645    pub struct Isel_SPEC;
4646    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4647    impl Isel {
4648        #[doc = "Do not use as IRQn input pin"]
4649        pub const _0: Self = Self::new(0);
4650
4651        #[doc = "Use as IRQn input pin"]
4652        pub const _1: Self = Self::new(1);
4653    }
4654    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4655    pub struct Asel_SPEC;
4656    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4657    impl Asel {
4658        #[doc = "Do not use as analog pin"]
4659        pub const _0: Self = Self::new(0);
4660
4661        #[doc = "Use as analog pin"]
4662        pub const _1: Self = Self::new(1);
4663    }
4664    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4665    pub struct Pmr_SPEC;
4666    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4667    impl Pmr {
4668        #[doc = "Use as general I/O pin"]
4669        pub const _0: Self = Self::new(0);
4670
4671        #[doc = "Use as I/O port for peripheral functions"]
4672        pub const _1: Self = Self::new(1);
4673    }
4674}
4675#[doc(hidden)]
4676#[derive(Copy, Clone, Eq, PartialEq)]
4677pub struct P10PfsHa_SPEC;
4678impl crate::sealed::RegSpec for P10PfsHa_SPEC {
4679    type DataType = u16;
4680}
4681
4682#[doc = "Port 10%s Pin Function Select Register"]
4683pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
4684
4685impl P10PfsHa {
4686    #[doc = "Port Output Data"]
4687    #[inline(always)]
4688    pub fn podr(
4689        self,
4690    ) -> crate::common::RegisterField<
4691        0,
4692        0x1,
4693        1,
4694        0,
4695        p10pfs_ha::Podr,
4696        p10pfs_ha::Podr,
4697        P10PfsHa_SPEC,
4698        crate::common::RW,
4699    > {
4700        crate::common::RegisterField::<
4701            0,
4702            0x1,
4703            1,
4704            0,
4705            p10pfs_ha::Podr,
4706            p10pfs_ha::Podr,
4707            P10PfsHa_SPEC,
4708            crate::common::RW,
4709        >::from_register(self, 0)
4710    }
4711
4712    #[doc = "Port State"]
4713    #[inline(always)]
4714    pub fn pidr(
4715        self,
4716    ) -> crate::common::RegisterField<
4717        1,
4718        0x1,
4719        1,
4720        0,
4721        p10pfs_ha::Pidr,
4722        p10pfs_ha::Pidr,
4723        P10PfsHa_SPEC,
4724        crate::common::R,
4725    > {
4726        crate::common::RegisterField::<
4727            1,
4728            0x1,
4729            1,
4730            0,
4731            p10pfs_ha::Pidr,
4732            p10pfs_ha::Pidr,
4733            P10PfsHa_SPEC,
4734            crate::common::R,
4735        >::from_register(self, 0)
4736    }
4737
4738    #[doc = "Port Direction"]
4739    #[inline(always)]
4740    pub fn pdr(
4741        self,
4742    ) -> crate::common::RegisterField<
4743        2,
4744        0x1,
4745        1,
4746        0,
4747        p10pfs_ha::Pdr,
4748        p10pfs_ha::Pdr,
4749        P10PfsHa_SPEC,
4750        crate::common::RW,
4751    > {
4752        crate::common::RegisterField::<
4753            2,
4754            0x1,
4755            1,
4756            0,
4757            p10pfs_ha::Pdr,
4758            p10pfs_ha::Pdr,
4759            P10PfsHa_SPEC,
4760            crate::common::RW,
4761        >::from_register(self, 0)
4762    }
4763
4764    #[doc = "Pull-up Control"]
4765    #[inline(always)]
4766    pub fn pcr(
4767        self,
4768    ) -> crate::common::RegisterField<
4769        4,
4770        0x1,
4771        1,
4772        0,
4773        p10pfs_ha::Pcr,
4774        p10pfs_ha::Pcr,
4775        P10PfsHa_SPEC,
4776        crate::common::RW,
4777    > {
4778        crate::common::RegisterField::<
4779            4,
4780            0x1,
4781            1,
4782            0,
4783            p10pfs_ha::Pcr,
4784            p10pfs_ha::Pcr,
4785            P10PfsHa_SPEC,
4786            crate::common::RW,
4787        >::from_register(self, 0)
4788    }
4789
4790    #[doc = "N-Channel Open-Drain Control"]
4791    #[inline(always)]
4792    pub fn ncodr(
4793        self,
4794    ) -> crate::common::RegisterField<
4795        6,
4796        0x1,
4797        1,
4798        0,
4799        p10pfs_ha::Ncodr,
4800        p10pfs_ha::Ncodr,
4801        P10PfsHa_SPEC,
4802        crate::common::RW,
4803    > {
4804        crate::common::RegisterField::<
4805            6,
4806            0x1,
4807            1,
4808            0,
4809            p10pfs_ha::Ncodr,
4810            p10pfs_ha::Ncodr,
4811            P10PfsHa_SPEC,
4812            crate::common::RW,
4813        >::from_register(self, 0)
4814    }
4815
4816    #[doc = "Event on Falling/Event on Rising"]
4817    #[inline(always)]
4818    pub fn eofr(
4819        self,
4820    ) -> crate::common::RegisterField<
4821        12,
4822        0x3,
4823        1,
4824        0,
4825        p10pfs_ha::Eofr,
4826        p10pfs_ha::Eofr,
4827        P10PfsHa_SPEC,
4828        crate::common::RW,
4829    > {
4830        crate::common::RegisterField::<
4831            12,
4832            0x3,
4833            1,
4834            0,
4835            p10pfs_ha::Eofr,
4836            p10pfs_ha::Eofr,
4837            P10PfsHa_SPEC,
4838            crate::common::RW,
4839        >::from_register(self, 0)
4840    }
4841
4842    #[doc = "IRQ Input Enable"]
4843    #[inline(always)]
4844    pub fn isel(
4845        self,
4846    ) -> crate::common::RegisterField<
4847        14,
4848        0x1,
4849        1,
4850        0,
4851        p10pfs_ha::Isel,
4852        p10pfs_ha::Isel,
4853        P10PfsHa_SPEC,
4854        crate::common::RW,
4855    > {
4856        crate::common::RegisterField::<
4857            14,
4858            0x1,
4859            1,
4860            0,
4861            p10pfs_ha::Isel,
4862            p10pfs_ha::Isel,
4863            P10PfsHa_SPEC,
4864            crate::common::RW,
4865        >::from_register(self, 0)
4866    }
4867
4868    #[doc = "Analog Input Enable"]
4869    #[inline(always)]
4870    pub fn asel(
4871        self,
4872    ) -> crate::common::RegisterField<
4873        15,
4874        0x1,
4875        1,
4876        0,
4877        p10pfs_ha::Asel,
4878        p10pfs_ha::Asel,
4879        P10PfsHa_SPEC,
4880        crate::common::RW,
4881    > {
4882        crate::common::RegisterField::<
4883            15,
4884            0x1,
4885            1,
4886            0,
4887            p10pfs_ha::Asel,
4888            p10pfs_ha::Asel,
4889            P10PfsHa_SPEC,
4890            crate::common::RW,
4891        >::from_register(self, 0)
4892    }
4893}
4894impl ::core::default::Default for P10PfsHa {
4895    #[inline(always)]
4896    fn default() -> P10PfsHa {
4897        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
4898    }
4899}
4900pub mod p10pfs_ha {
4901
4902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4903    pub struct Podr_SPEC;
4904    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4905    impl Podr {
4906        #[doc = "Output low"]
4907        pub const _0: Self = Self::new(0);
4908
4909        #[doc = "Output high"]
4910        pub const _1: Self = Self::new(1);
4911    }
4912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4913    pub struct Pidr_SPEC;
4914    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4915    impl Pidr {
4916        #[doc = "Low level"]
4917        pub const _0: Self = Self::new(0);
4918
4919        #[doc = "High level"]
4920        pub const _1: Self = Self::new(1);
4921    }
4922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4923    pub struct Pdr_SPEC;
4924    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4925    impl Pdr {
4926        #[doc = "Input (functions as an input pin)"]
4927        pub const _0: Self = Self::new(0);
4928
4929        #[doc = "Output (functions as an output pin)"]
4930        pub const _1: Self = Self::new(1);
4931    }
4932    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4933    pub struct Pcr_SPEC;
4934    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4935    impl Pcr {
4936        #[doc = "Disable input pull-up"]
4937        pub const _0: Self = Self::new(0);
4938
4939        #[doc = "Enable input pull-up"]
4940        pub const _1: Self = Self::new(1);
4941    }
4942    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4943    pub struct Ncodr_SPEC;
4944    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4945    impl Ncodr {
4946        #[doc = "Output CMOS"]
4947        pub const _0: Self = Self::new(0);
4948
4949        #[doc = "Output NMOS open-drain"]
4950        pub const _1: Self = Self::new(1);
4951    }
4952    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4953    pub struct Eofr_SPEC;
4954    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4955    impl Eofr {
4956        #[doc = "Don\'t care"]
4957        pub const _00: Self = Self::new(0);
4958
4959        #[doc = "Detect rising edge"]
4960        pub const _01: Self = Self::new(1);
4961
4962        #[doc = "Detect falling edge"]
4963        pub const _10: Self = Self::new(2);
4964
4965        #[doc = "Detect both edges"]
4966        pub const _11: Self = Self::new(3);
4967    }
4968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4969    pub struct Isel_SPEC;
4970    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4971    impl Isel {
4972        #[doc = "Do not use as IRQn input pin"]
4973        pub const _0: Self = Self::new(0);
4974
4975        #[doc = "Use as IRQn input pin"]
4976        pub const _1: Self = Self::new(1);
4977    }
4978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4979    pub struct Asel_SPEC;
4980    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4981    impl Asel {
4982        #[doc = "Do not use as analog pin"]
4983        pub const _0: Self = Self::new(0);
4984
4985        #[doc = "Use as analog pin"]
4986        pub const _1: Self = Self::new(1);
4987    }
4988}
4989#[doc(hidden)]
4990#[derive(Copy, Clone, Eq, PartialEq)]
4991pub struct P10PfsBy_SPEC;
4992impl crate::sealed::RegSpec for P10PfsBy_SPEC {
4993    type DataType = u8;
4994}
4995
4996#[doc = "Port 10%s Pin Function Select Register"]
4997pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
4998
4999impl P10PfsBy {
5000    #[doc = "Port Output Data"]
5001    #[inline(always)]
5002    pub fn podr(
5003        self,
5004    ) -> crate::common::RegisterField<
5005        0,
5006        0x1,
5007        1,
5008        0,
5009        p10pfs_by::Podr,
5010        p10pfs_by::Podr,
5011        P10PfsBy_SPEC,
5012        crate::common::RW,
5013    > {
5014        crate::common::RegisterField::<
5015            0,
5016            0x1,
5017            1,
5018            0,
5019            p10pfs_by::Podr,
5020            p10pfs_by::Podr,
5021            P10PfsBy_SPEC,
5022            crate::common::RW,
5023        >::from_register(self, 0)
5024    }
5025
5026    #[doc = "Port State"]
5027    #[inline(always)]
5028    pub fn pidr(
5029        self,
5030    ) -> crate::common::RegisterField<
5031        1,
5032        0x1,
5033        1,
5034        0,
5035        p10pfs_by::Pidr,
5036        p10pfs_by::Pidr,
5037        P10PfsBy_SPEC,
5038        crate::common::R,
5039    > {
5040        crate::common::RegisterField::<
5041            1,
5042            0x1,
5043            1,
5044            0,
5045            p10pfs_by::Pidr,
5046            p10pfs_by::Pidr,
5047            P10PfsBy_SPEC,
5048            crate::common::R,
5049        >::from_register(self, 0)
5050    }
5051
5052    #[doc = "Port Direction"]
5053    #[inline(always)]
5054    pub fn pdr(
5055        self,
5056    ) -> crate::common::RegisterField<
5057        2,
5058        0x1,
5059        1,
5060        0,
5061        p10pfs_by::Pdr,
5062        p10pfs_by::Pdr,
5063        P10PfsBy_SPEC,
5064        crate::common::RW,
5065    > {
5066        crate::common::RegisterField::<
5067            2,
5068            0x1,
5069            1,
5070            0,
5071            p10pfs_by::Pdr,
5072            p10pfs_by::Pdr,
5073            P10PfsBy_SPEC,
5074            crate::common::RW,
5075        >::from_register(self, 0)
5076    }
5077
5078    #[doc = "Pull-up Control"]
5079    #[inline(always)]
5080    pub fn pcr(
5081        self,
5082    ) -> crate::common::RegisterField<
5083        4,
5084        0x1,
5085        1,
5086        0,
5087        p10pfs_by::Pcr,
5088        p10pfs_by::Pcr,
5089        P10PfsBy_SPEC,
5090        crate::common::RW,
5091    > {
5092        crate::common::RegisterField::<
5093            4,
5094            0x1,
5095            1,
5096            0,
5097            p10pfs_by::Pcr,
5098            p10pfs_by::Pcr,
5099            P10PfsBy_SPEC,
5100            crate::common::RW,
5101        >::from_register(self, 0)
5102    }
5103
5104    #[doc = "N-Channel Open-Drain Control"]
5105    #[inline(always)]
5106    pub fn ncodr(
5107        self,
5108    ) -> crate::common::RegisterField<
5109        6,
5110        0x1,
5111        1,
5112        0,
5113        p10pfs_by::Ncodr,
5114        p10pfs_by::Ncodr,
5115        P10PfsBy_SPEC,
5116        crate::common::RW,
5117    > {
5118        crate::common::RegisterField::<
5119            6,
5120            0x1,
5121            1,
5122            0,
5123            p10pfs_by::Ncodr,
5124            p10pfs_by::Ncodr,
5125            P10PfsBy_SPEC,
5126            crate::common::RW,
5127        >::from_register(self, 0)
5128    }
5129}
5130impl ::core::default::Default for P10PfsBy {
5131    #[inline(always)]
5132    fn default() -> P10PfsBy {
5133        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
5134    }
5135}
5136pub mod p10pfs_by {
5137
5138    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5139    pub struct Podr_SPEC;
5140    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5141    impl Podr {
5142        #[doc = "Output low"]
5143        pub const _0: Self = Self::new(0);
5144
5145        #[doc = "Output high"]
5146        pub const _1: Self = Self::new(1);
5147    }
5148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5149    pub struct Pidr_SPEC;
5150    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5151    impl Pidr {
5152        #[doc = "Low level"]
5153        pub const _0: Self = Self::new(0);
5154
5155        #[doc = "High level"]
5156        pub const _1: Self = Self::new(1);
5157    }
5158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5159    pub struct Pdr_SPEC;
5160    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5161    impl Pdr {
5162        #[doc = "Input (functions as an input pin)"]
5163        pub const _0: Self = Self::new(0);
5164
5165        #[doc = "Output (functions as an output pin)"]
5166        pub const _1: Self = Self::new(1);
5167    }
5168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5169    pub struct Pcr_SPEC;
5170    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5171    impl Pcr {
5172        #[doc = "Disable input pull-up"]
5173        pub const _0: Self = Self::new(0);
5174
5175        #[doc = "Enable input pull-up"]
5176        pub const _1: Self = Self::new(1);
5177    }
5178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5179    pub struct Ncodr_SPEC;
5180    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5181    impl Ncodr {
5182        #[doc = "Output CMOS"]
5183        pub const _0: Self = Self::new(0);
5184
5185        #[doc = "Output NMOS open-drain"]
5186        pub const _1: Self = Self::new(1);
5187    }
5188}
5189#[doc(hidden)]
5190#[derive(Copy, Clone, Eq, PartialEq)]
5191pub struct P108Pfs_SPEC;
5192impl crate::sealed::RegSpec for P108Pfs_SPEC {
5193    type DataType = u32;
5194}
5195
5196#[doc = "Port 108 Pin Function Select Register"]
5197pub type P108Pfs = crate::RegValueT<P108Pfs_SPEC>;
5198
5199impl P108Pfs {
5200    #[doc = "Port Output Data"]
5201    #[inline(always)]
5202    pub fn podr(
5203        self,
5204    ) -> crate::common::RegisterField<
5205        0,
5206        0x1,
5207        1,
5208        0,
5209        p108pfs::Podr,
5210        p108pfs::Podr,
5211        P108Pfs_SPEC,
5212        crate::common::RW,
5213    > {
5214        crate::common::RegisterField::<
5215            0,
5216            0x1,
5217            1,
5218            0,
5219            p108pfs::Podr,
5220            p108pfs::Podr,
5221            P108Pfs_SPEC,
5222            crate::common::RW,
5223        >::from_register(self, 0)
5224    }
5225
5226    #[doc = "Port State"]
5227    #[inline(always)]
5228    pub fn pidr(
5229        self,
5230    ) -> crate::common::RegisterField<
5231        1,
5232        0x1,
5233        1,
5234        0,
5235        p108pfs::Pidr,
5236        p108pfs::Pidr,
5237        P108Pfs_SPEC,
5238        crate::common::R,
5239    > {
5240        crate::common::RegisterField::<
5241            1,
5242            0x1,
5243            1,
5244            0,
5245            p108pfs::Pidr,
5246            p108pfs::Pidr,
5247            P108Pfs_SPEC,
5248            crate::common::R,
5249        >::from_register(self, 0)
5250    }
5251
5252    #[doc = "Port Direction"]
5253    #[inline(always)]
5254    pub fn pdr(
5255        self,
5256    ) -> crate::common::RegisterField<
5257        2,
5258        0x1,
5259        1,
5260        0,
5261        p108pfs::Pdr,
5262        p108pfs::Pdr,
5263        P108Pfs_SPEC,
5264        crate::common::RW,
5265    > {
5266        crate::common::RegisterField::<
5267            2,
5268            0x1,
5269            1,
5270            0,
5271            p108pfs::Pdr,
5272            p108pfs::Pdr,
5273            P108Pfs_SPEC,
5274            crate::common::RW,
5275        >::from_register(self, 0)
5276    }
5277
5278    #[doc = "Pull-up Control"]
5279    #[inline(always)]
5280    pub fn pcr(
5281        self,
5282    ) -> crate::common::RegisterField<
5283        4,
5284        0x1,
5285        1,
5286        0,
5287        p108pfs::Pcr,
5288        p108pfs::Pcr,
5289        P108Pfs_SPEC,
5290        crate::common::RW,
5291    > {
5292        crate::common::RegisterField::<
5293            4,
5294            0x1,
5295            1,
5296            0,
5297            p108pfs::Pcr,
5298            p108pfs::Pcr,
5299            P108Pfs_SPEC,
5300            crate::common::RW,
5301        >::from_register(self, 0)
5302    }
5303
5304    #[doc = "N-Channel Open-Drain Control"]
5305    #[inline(always)]
5306    pub fn ncodr(
5307        self,
5308    ) -> crate::common::RegisterField<
5309        6,
5310        0x1,
5311        1,
5312        0,
5313        p108pfs::Ncodr,
5314        p108pfs::Ncodr,
5315        P108Pfs_SPEC,
5316        crate::common::RW,
5317    > {
5318        crate::common::RegisterField::<
5319            6,
5320            0x1,
5321            1,
5322            0,
5323            p108pfs::Ncodr,
5324            p108pfs::Ncodr,
5325            P108Pfs_SPEC,
5326            crate::common::RW,
5327        >::from_register(self, 0)
5328    }
5329
5330    #[doc = "Event on Falling/Event on Rising"]
5331    #[inline(always)]
5332    pub fn eofr(
5333        self,
5334    ) -> crate::common::RegisterField<
5335        12,
5336        0x3,
5337        1,
5338        0,
5339        p108pfs::Eofr,
5340        p108pfs::Eofr,
5341        P108Pfs_SPEC,
5342        crate::common::RW,
5343    > {
5344        crate::common::RegisterField::<
5345            12,
5346            0x3,
5347            1,
5348            0,
5349            p108pfs::Eofr,
5350            p108pfs::Eofr,
5351            P108Pfs_SPEC,
5352            crate::common::RW,
5353        >::from_register(self, 0)
5354    }
5355
5356    #[doc = "IRQ Input Enable"]
5357    #[inline(always)]
5358    pub fn isel(
5359        self,
5360    ) -> crate::common::RegisterField<
5361        14,
5362        0x1,
5363        1,
5364        0,
5365        p108pfs::Isel,
5366        p108pfs::Isel,
5367        P108Pfs_SPEC,
5368        crate::common::RW,
5369    > {
5370        crate::common::RegisterField::<
5371            14,
5372            0x1,
5373            1,
5374            0,
5375            p108pfs::Isel,
5376            p108pfs::Isel,
5377            P108Pfs_SPEC,
5378            crate::common::RW,
5379        >::from_register(self, 0)
5380    }
5381
5382    #[doc = "Analog Input Enable"]
5383    #[inline(always)]
5384    pub fn asel(
5385        self,
5386    ) -> crate::common::RegisterField<
5387        15,
5388        0x1,
5389        1,
5390        0,
5391        p108pfs::Asel,
5392        p108pfs::Asel,
5393        P108Pfs_SPEC,
5394        crate::common::RW,
5395    > {
5396        crate::common::RegisterField::<
5397            15,
5398            0x1,
5399            1,
5400            0,
5401            p108pfs::Asel,
5402            p108pfs::Asel,
5403            P108Pfs_SPEC,
5404            crate::common::RW,
5405        >::from_register(self, 0)
5406    }
5407
5408    #[doc = "Port Mode Control"]
5409    #[inline(always)]
5410    pub fn pmr(
5411        self,
5412    ) -> crate::common::RegisterField<
5413        16,
5414        0x1,
5415        1,
5416        0,
5417        p108pfs::Pmr,
5418        p108pfs::Pmr,
5419        P108Pfs_SPEC,
5420        crate::common::RW,
5421    > {
5422        crate::common::RegisterField::<
5423            16,
5424            0x1,
5425            1,
5426            0,
5427            p108pfs::Pmr,
5428            p108pfs::Pmr,
5429            P108Pfs_SPEC,
5430            crate::common::RW,
5431        >::from_register(self, 0)
5432    }
5433
5434    #[doc = "Peripheral Select"]
5435    #[inline(always)]
5436    pub fn psel(
5437        self,
5438    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P108Pfs_SPEC, crate::common::RW> {
5439        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P108Pfs_SPEC,crate::common::RW>::from_register(self,0)
5440    }
5441}
5442impl ::core::default::Default for P108Pfs {
5443    #[inline(always)]
5444    fn default() -> P108Pfs {
5445        <crate::RegValueT<P108Pfs_SPEC> as RegisterValue<_>>::new(65552)
5446    }
5447}
5448pub mod p108pfs {
5449
5450    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5451    pub struct Podr_SPEC;
5452    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5453    impl Podr {
5454        #[doc = "Output low"]
5455        pub const _0: Self = Self::new(0);
5456
5457        #[doc = "Output high"]
5458        pub const _1: Self = Self::new(1);
5459    }
5460    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5461    pub struct Pidr_SPEC;
5462    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5463    impl Pidr {
5464        #[doc = "Low level"]
5465        pub const _0: Self = Self::new(0);
5466
5467        #[doc = "High level"]
5468        pub const _1: Self = Self::new(1);
5469    }
5470    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5471    pub struct Pdr_SPEC;
5472    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5473    impl Pdr {
5474        #[doc = "Input (functions as an input pin)"]
5475        pub const _0: Self = Self::new(0);
5476
5477        #[doc = "Output (functions as an output pin)"]
5478        pub const _1: Self = Self::new(1);
5479    }
5480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5481    pub struct Pcr_SPEC;
5482    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5483    impl Pcr {
5484        #[doc = "Disable input pull-up"]
5485        pub const _0: Self = Self::new(0);
5486
5487        #[doc = "Enable input pull-up"]
5488        pub const _1: Self = Self::new(1);
5489    }
5490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5491    pub struct Ncodr_SPEC;
5492    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5493    impl Ncodr {
5494        #[doc = "Output CMOS"]
5495        pub const _0: Self = Self::new(0);
5496
5497        #[doc = "Output NMOS open-drain"]
5498        pub const _1: Self = Self::new(1);
5499    }
5500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5501    pub struct Eofr_SPEC;
5502    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5503    impl Eofr {
5504        #[doc = "Don\'t care"]
5505        pub const _00: Self = Self::new(0);
5506
5507        #[doc = "Detect rising edge"]
5508        pub const _01: Self = Self::new(1);
5509
5510        #[doc = "Detect falling edge"]
5511        pub const _10: Self = Self::new(2);
5512
5513        #[doc = "Detect both edges"]
5514        pub const _11: Self = Self::new(3);
5515    }
5516    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5517    pub struct Isel_SPEC;
5518    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5519    impl Isel {
5520        #[doc = "Do not use as IRQn input pin"]
5521        pub const _0: Self = Self::new(0);
5522
5523        #[doc = "Use as IRQn input pin"]
5524        pub const _1: Self = Self::new(1);
5525    }
5526    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5527    pub struct Asel_SPEC;
5528    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5529    impl Asel {
5530        #[doc = "Do not use as analog pin"]
5531        pub const _0: Self = Self::new(0);
5532
5533        #[doc = "Use as analog pin"]
5534        pub const _1: Self = Self::new(1);
5535    }
5536    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5537    pub struct Pmr_SPEC;
5538    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5539    impl Pmr {
5540        #[doc = "Use as general I/O pin"]
5541        pub const _0: Self = Self::new(0);
5542
5543        #[doc = "Use as I/O port for peripheral functions"]
5544        pub const _1: Self = Self::new(1);
5545    }
5546}
5547#[doc(hidden)]
5548#[derive(Copy, Clone, Eq, PartialEq)]
5549pub struct P108PfsHa_SPEC;
5550impl crate::sealed::RegSpec for P108PfsHa_SPEC {
5551    type DataType = u16;
5552}
5553
5554#[doc = "Port 108 Pin Function Select Register"]
5555pub type P108PfsHa = crate::RegValueT<P108PfsHa_SPEC>;
5556
5557impl P108PfsHa {
5558    #[doc = "Port Output Data"]
5559    #[inline(always)]
5560    pub fn podr(
5561        self,
5562    ) -> crate::common::RegisterField<
5563        0,
5564        0x1,
5565        1,
5566        0,
5567        p108pfs_ha::Podr,
5568        p108pfs_ha::Podr,
5569        P108PfsHa_SPEC,
5570        crate::common::RW,
5571    > {
5572        crate::common::RegisterField::<
5573            0,
5574            0x1,
5575            1,
5576            0,
5577            p108pfs_ha::Podr,
5578            p108pfs_ha::Podr,
5579            P108PfsHa_SPEC,
5580            crate::common::RW,
5581        >::from_register(self, 0)
5582    }
5583
5584    #[doc = "Port State"]
5585    #[inline(always)]
5586    pub fn pidr(
5587        self,
5588    ) -> crate::common::RegisterField<
5589        1,
5590        0x1,
5591        1,
5592        0,
5593        p108pfs_ha::Pidr,
5594        p108pfs_ha::Pidr,
5595        P108PfsHa_SPEC,
5596        crate::common::R,
5597    > {
5598        crate::common::RegisterField::<
5599            1,
5600            0x1,
5601            1,
5602            0,
5603            p108pfs_ha::Pidr,
5604            p108pfs_ha::Pidr,
5605            P108PfsHa_SPEC,
5606            crate::common::R,
5607        >::from_register(self, 0)
5608    }
5609
5610    #[doc = "Port Direction"]
5611    #[inline(always)]
5612    pub fn pdr(
5613        self,
5614    ) -> crate::common::RegisterField<
5615        2,
5616        0x1,
5617        1,
5618        0,
5619        p108pfs_ha::Pdr,
5620        p108pfs_ha::Pdr,
5621        P108PfsHa_SPEC,
5622        crate::common::RW,
5623    > {
5624        crate::common::RegisterField::<
5625            2,
5626            0x1,
5627            1,
5628            0,
5629            p108pfs_ha::Pdr,
5630            p108pfs_ha::Pdr,
5631            P108PfsHa_SPEC,
5632            crate::common::RW,
5633        >::from_register(self, 0)
5634    }
5635
5636    #[doc = "Pull-up Control"]
5637    #[inline(always)]
5638    pub fn pcr(
5639        self,
5640    ) -> crate::common::RegisterField<
5641        4,
5642        0x1,
5643        1,
5644        0,
5645        p108pfs_ha::Pcr,
5646        p108pfs_ha::Pcr,
5647        P108PfsHa_SPEC,
5648        crate::common::RW,
5649    > {
5650        crate::common::RegisterField::<
5651            4,
5652            0x1,
5653            1,
5654            0,
5655            p108pfs_ha::Pcr,
5656            p108pfs_ha::Pcr,
5657            P108PfsHa_SPEC,
5658            crate::common::RW,
5659        >::from_register(self, 0)
5660    }
5661
5662    #[doc = "N-Channel Open-Drain Control"]
5663    #[inline(always)]
5664    pub fn ncodr(
5665        self,
5666    ) -> crate::common::RegisterField<
5667        6,
5668        0x1,
5669        1,
5670        0,
5671        p108pfs_ha::Ncodr,
5672        p108pfs_ha::Ncodr,
5673        P108PfsHa_SPEC,
5674        crate::common::RW,
5675    > {
5676        crate::common::RegisterField::<
5677            6,
5678            0x1,
5679            1,
5680            0,
5681            p108pfs_ha::Ncodr,
5682            p108pfs_ha::Ncodr,
5683            P108PfsHa_SPEC,
5684            crate::common::RW,
5685        >::from_register(self, 0)
5686    }
5687
5688    #[doc = "Event on Falling/Event on Rising"]
5689    #[inline(always)]
5690    pub fn eofr(
5691        self,
5692    ) -> crate::common::RegisterField<
5693        12,
5694        0x3,
5695        1,
5696        0,
5697        p108pfs_ha::Eofr,
5698        p108pfs_ha::Eofr,
5699        P108PfsHa_SPEC,
5700        crate::common::RW,
5701    > {
5702        crate::common::RegisterField::<
5703            12,
5704            0x3,
5705            1,
5706            0,
5707            p108pfs_ha::Eofr,
5708            p108pfs_ha::Eofr,
5709            P108PfsHa_SPEC,
5710            crate::common::RW,
5711        >::from_register(self, 0)
5712    }
5713
5714    #[doc = "IRQ Input Enable"]
5715    #[inline(always)]
5716    pub fn isel(
5717        self,
5718    ) -> crate::common::RegisterField<
5719        14,
5720        0x1,
5721        1,
5722        0,
5723        p108pfs_ha::Isel,
5724        p108pfs_ha::Isel,
5725        P108PfsHa_SPEC,
5726        crate::common::RW,
5727    > {
5728        crate::common::RegisterField::<
5729            14,
5730            0x1,
5731            1,
5732            0,
5733            p108pfs_ha::Isel,
5734            p108pfs_ha::Isel,
5735            P108PfsHa_SPEC,
5736            crate::common::RW,
5737        >::from_register(self, 0)
5738    }
5739
5740    #[doc = "Analog Input Enable"]
5741    #[inline(always)]
5742    pub fn asel(
5743        self,
5744    ) -> crate::common::RegisterField<
5745        15,
5746        0x1,
5747        1,
5748        0,
5749        p108pfs_ha::Asel,
5750        p108pfs_ha::Asel,
5751        P108PfsHa_SPEC,
5752        crate::common::RW,
5753    > {
5754        crate::common::RegisterField::<
5755            15,
5756            0x1,
5757            1,
5758            0,
5759            p108pfs_ha::Asel,
5760            p108pfs_ha::Asel,
5761            P108PfsHa_SPEC,
5762            crate::common::RW,
5763        >::from_register(self, 0)
5764    }
5765}
5766impl ::core::default::Default for P108PfsHa {
5767    #[inline(always)]
5768    fn default() -> P108PfsHa {
5769        <crate::RegValueT<P108PfsHa_SPEC> as RegisterValue<_>>::new(16)
5770    }
5771}
5772pub mod p108pfs_ha {
5773
5774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5775    pub struct Podr_SPEC;
5776    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5777    impl Podr {
5778        #[doc = "Output low"]
5779        pub const _0: Self = Self::new(0);
5780
5781        #[doc = "Output high"]
5782        pub const _1: Self = Self::new(1);
5783    }
5784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5785    pub struct Pidr_SPEC;
5786    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5787    impl Pidr {
5788        #[doc = "Low level"]
5789        pub const _0: Self = Self::new(0);
5790
5791        #[doc = "High level"]
5792        pub const _1: Self = Self::new(1);
5793    }
5794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5795    pub struct Pdr_SPEC;
5796    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5797    impl Pdr {
5798        #[doc = "Input (functions as an input pin)"]
5799        pub const _0: Self = Self::new(0);
5800
5801        #[doc = "Output (functions as an output pin)"]
5802        pub const _1: Self = Self::new(1);
5803    }
5804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5805    pub struct Pcr_SPEC;
5806    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5807    impl Pcr {
5808        #[doc = "Disable input pull-up"]
5809        pub const _0: Self = Self::new(0);
5810
5811        #[doc = "Enable input pull-up"]
5812        pub const _1: Self = Self::new(1);
5813    }
5814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5815    pub struct Ncodr_SPEC;
5816    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5817    impl Ncodr {
5818        #[doc = "Output CMOS"]
5819        pub const _0: Self = Self::new(0);
5820
5821        #[doc = "Output NMOS open-drain"]
5822        pub const _1: Self = Self::new(1);
5823    }
5824    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5825    pub struct Eofr_SPEC;
5826    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5827    impl Eofr {
5828        #[doc = "Don\'t care"]
5829        pub const _00: Self = Self::new(0);
5830
5831        #[doc = "Detect rising edge"]
5832        pub const _01: Self = Self::new(1);
5833
5834        #[doc = "Detect falling edge"]
5835        pub const _10: Self = Self::new(2);
5836
5837        #[doc = "Detect both edges"]
5838        pub const _11: Self = Self::new(3);
5839    }
5840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5841    pub struct Isel_SPEC;
5842    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5843    impl Isel {
5844        #[doc = "Do not use as IRQn input pin"]
5845        pub const _0: Self = Self::new(0);
5846
5847        #[doc = "Use as IRQn input pin"]
5848        pub const _1: Self = Self::new(1);
5849    }
5850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5851    pub struct Asel_SPEC;
5852    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5853    impl Asel {
5854        #[doc = "Do not use as analog pin"]
5855        pub const _0: Self = Self::new(0);
5856
5857        #[doc = "Use as analog pin"]
5858        pub const _1: Self = Self::new(1);
5859    }
5860}
5861#[doc(hidden)]
5862#[derive(Copy, Clone, Eq, PartialEq)]
5863pub struct P108PfsBy_SPEC;
5864impl crate::sealed::RegSpec for P108PfsBy_SPEC {
5865    type DataType = u8;
5866}
5867
5868#[doc = "Port 108 Pin Function Select Register"]
5869pub type P108PfsBy = crate::RegValueT<P108PfsBy_SPEC>;
5870
5871impl P108PfsBy {
5872    #[doc = "Port Output Data"]
5873    #[inline(always)]
5874    pub fn podr(
5875        self,
5876    ) -> crate::common::RegisterField<
5877        0,
5878        0x1,
5879        1,
5880        0,
5881        p108pfs_by::Podr,
5882        p108pfs_by::Podr,
5883        P108PfsBy_SPEC,
5884        crate::common::RW,
5885    > {
5886        crate::common::RegisterField::<
5887            0,
5888            0x1,
5889            1,
5890            0,
5891            p108pfs_by::Podr,
5892            p108pfs_by::Podr,
5893            P108PfsBy_SPEC,
5894            crate::common::RW,
5895        >::from_register(self, 0)
5896    }
5897
5898    #[doc = "Port State"]
5899    #[inline(always)]
5900    pub fn pidr(
5901        self,
5902    ) -> crate::common::RegisterField<
5903        1,
5904        0x1,
5905        1,
5906        0,
5907        p108pfs_by::Pidr,
5908        p108pfs_by::Pidr,
5909        P108PfsBy_SPEC,
5910        crate::common::R,
5911    > {
5912        crate::common::RegisterField::<
5913            1,
5914            0x1,
5915            1,
5916            0,
5917            p108pfs_by::Pidr,
5918            p108pfs_by::Pidr,
5919            P108PfsBy_SPEC,
5920            crate::common::R,
5921        >::from_register(self, 0)
5922    }
5923
5924    #[doc = "Port Direction"]
5925    #[inline(always)]
5926    pub fn pdr(
5927        self,
5928    ) -> crate::common::RegisterField<
5929        2,
5930        0x1,
5931        1,
5932        0,
5933        p108pfs_by::Pdr,
5934        p108pfs_by::Pdr,
5935        P108PfsBy_SPEC,
5936        crate::common::RW,
5937    > {
5938        crate::common::RegisterField::<
5939            2,
5940            0x1,
5941            1,
5942            0,
5943            p108pfs_by::Pdr,
5944            p108pfs_by::Pdr,
5945            P108PfsBy_SPEC,
5946            crate::common::RW,
5947        >::from_register(self, 0)
5948    }
5949
5950    #[doc = "Pull-up Control"]
5951    #[inline(always)]
5952    pub fn pcr(
5953        self,
5954    ) -> crate::common::RegisterField<
5955        4,
5956        0x1,
5957        1,
5958        0,
5959        p108pfs_by::Pcr,
5960        p108pfs_by::Pcr,
5961        P108PfsBy_SPEC,
5962        crate::common::RW,
5963    > {
5964        crate::common::RegisterField::<
5965            4,
5966            0x1,
5967            1,
5968            0,
5969            p108pfs_by::Pcr,
5970            p108pfs_by::Pcr,
5971            P108PfsBy_SPEC,
5972            crate::common::RW,
5973        >::from_register(self, 0)
5974    }
5975
5976    #[doc = "N-Channel Open-Drain Control"]
5977    #[inline(always)]
5978    pub fn ncodr(
5979        self,
5980    ) -> crate::common::RegisterField<
5981        6,
5982        0x1,
5983        1,
5984        0,
5985        p108pfs_by::Ncodr,
5986        p108pfs_by::Ncodr,
5987        P108PfsBy_SPEC,
5988        crate::common::RW,
5989    > {
5990        crate::common::RegisterField::<
5991            6,
5992            0x1,
5993            1,
5994            0,
5995            p108pfs_by::Ncodr,
5996            p108pfs_by::Ncodr,
5997            P108PfsBy_SPEC,
5998            crate::common::RW,
5999        >::from_register(self, 0)
6000    }
6001}
6002impl ::core::default::Default for P108PfsBy {
6003    #[inline(always)]
6004    fn default() -> P108PfsBy {
6005        <crate::RegValueT<P108PfsBy_SPEC> as RegisterValue<_>>::new(16)
6006    }
6007}
6008pub mod p108pfs_by {
6009
6010    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6011    pub struct Podr_SPEC;
6012    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6013    impl Podr {
6014        #[doc = "Output low"]
6015        pub const _0: Self = Self::new(0);
6016
6017        #[doc = "Output high"]
6018        pub const _1: Self = Self::new(1);
6019    }
6020    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6021    pub struct Pidr_SPEC;
6022    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6023    impl Pidr {
6024        #[doc = "Low level"]
6025        pub const _0: Self = Self::new(0);
6026
6027        #[doc = "High level"]
6028        pub const _1: Self = Self::new(1);
6029    }
6030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6031    pub struct Pdr_SPEC;
6032    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6033    impl Pdr {
6034        #[doc = "Input (functions as an input pin)"]
6035        pub const _0: Self = Self::new(0);
6036
6037        #[doc = "Output (functions as an output pin)"]
6038        pub const _1: Self = Self::new(1);
6039    }
6040    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6041    pub struct Pcr_SPEC;
6042    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6043    impl Pcr {
6044        #[doc = "Disable input pull-up"]
6045        pub const _0: Self = Self::new(0);
6046
6047        #[doc = "Enable input pull-up"]
6048        pub const _1: Self = Self::new(1);
6049    }
6050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6051    pub struct Ncodr_SPEC;
6052    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6053    impl Ncodr {
6054        #[doc = "Output CMOS"]
6055        pub const _0: Self = Self::new(0);
6056
6057        #[doc = "Output NMOS open-drain"]
6058        pub const _1: Self = Self::new(1);
6059    }
6060}
6061#[doc(hidden)]
6062#[derive(Copy, Clone, Eq, PartialEq)]
6063pub struct P109Pfs_SPEC;
6064impl crate::sealed::RegSpec for P109Pfs_SPEC {
6065    type DataType = u32;
6066}
6067
6068#[doc = "Port 109 Pin Function Select Register"]
6069pub type P109Pfs = crate::RegValueT<P109Pfs_SPEC>;
6070
6071impl P109Pfs {
6072    #[doc = "Port Output Data"]
6073    #[inline(always)]
6074    pub fn podr(
6075        self,
6076    ) -> crate::common::RegisterField<
6077        0,
6078        0x1,
6079        1,
6080        0,
6081        p109pfs::Podr,
6082        p109pfs::Podr,
6083        P109Pfs_SPEC,
6084        crate::common::RW,
6085    > {
6086        crate::common::RegisterField::<
6087            0,
6088            0x1,
6089            1,
6090            0,
6091            p109pfs::Podr,
6092            p109pfs::Podr,
6093            P109Pfs_SPEC,
6094            crate::common::RW,
6095        >::from_register(self, 0)
6096    }
6097
6098    #[doc = "Port State"]
6099    #[inline(always)]
6100    pub fn pidr(
6101        self,
6102    ) -> crate::common::RegisterField<
6103        1,
6104        0x1,
6105        1,
6106        0,
6107        p109pfs::Pidr,
6108        p109pfs::Pidr,
6109        P109Pfs_SPEC,
6110        crate::common::R,
6111    > {
6112        crate::common::RegisterField::<
6113            1,
6114            0x1,
6115            1,
6116            0,
6117            p109pfs::Pidr,
6118            p109pfs::Pidr,
6119            P109Pfs_SPEC,
6120            crate::common::R,
6121        >::from_register(self, 0)
6122    }
6123
6124    #[doc = "Port Direction"]
6125    #[inline(always)]
6126    pub fn pdr(
6127        self,
6128    ) -> crate::common::RegisterField<
6129        2,
6130        0x1,
6131        1,
6132        0,
6133        p109pfs::Pdr,
6134        p109pfs::Pdr,
6135        P109Pfs_SPEC,
6136        crate::common::RW,
6137    > {
6138        crate::common::RegisterField::<
6139            2,
6140            0x1,
6141            1,
6142            0,
6143            p109pfs::Pdr,
6144            p109pfs::Pdr,
6145            P109Pfs_SPEC,
6146            crate::common::RW,
6147        >::from_register(self, 0)
6148    }
6149
6150    #[doc = "Pull-up Control"]
6151    #[inline(always)]
6152    pub fn pcr(
6153        self,
6154    ) -> crate::common::RegisterField<
6155        4,
6156        0x1,
6157        1,
6158        0,
6159        p109pfs::Pcr,
6160        p109pfs::Pcr,
6161        P109Pfs_SPEC,
6162        crate::common::RW,
6163    > {
6164        crate::common::RegisterField::<
6165            4,
6166            0x1,
6167            1,
6168            0,
6169            p109pfs::Pcr,
6170            p109pfs::Pcr,
6171            P109Pfs_SPEC,
6172            crate::common::RW,
6173        >::from_register(self, 0)
6174    }
6175
6176    #[doc = "N-Channel Open-Drain Control"]
6177    #[inline(always)]
6178    pub fn ncodr(
6179        self,
6180    ) -> crate::common::RegisterField<
6181        6,
6182        0x1,
6183        1,
6184        0,
6185        p109pfs::Ncodr,
6186        p109pfs::Ncodr,
6187        P109Pfs_SPEC,
6188        crate::common::RW,
6189    > {
6190        crate::common::RegisterField::<
6191            6,
6192            0x1,
6193            1,
6194            0,
6195            p109pfs::Ncodr,
6196            p109pfs::Ncodr,
6197            P109Pfs_SPEC,
6198            crate::common::RW,
6199        >::from_register(self, 0)
6200    }
6201
6202    #[doc = "Event on Falling/Event on Rising"]
6203    #[inline(always)]
6204    pub fn eofr(
6205        self,
6206    ) -> crate::common::RegisterField<
6207        12,
6208        0x3,
6209        1,
6210        0,
6211        p109pfs::Eofr,
6212        p109pfs::Eofr,
6213        P109Pfs_SPEC,
6214        crate::common::RW,
6215    > {
6216        crate::common::RegisterField::<
6217            12,
6218            0x3,
6219            1,
6220            0,
6221            p109pfs::Eofr,
6222            p109pfs::Eofr,
6223            P109Pfs_SPEC,
6224            crate::common::RW,
6225        >::from_register(self, 0)
6226    }
6227
6228    #[doc = "IRQ Input Enable"]
6229    #[inline(always)]
6230    pub fn isel(
6231        self,
6232    ) -> crate::common::RegisterField<
6233        14,
6234        0x1,
6235        1,
6236        0,
6237        p109pfs::Isel,
6238        p109pfs::Isel,
6239        P109Pfs_SPEC,
6240        crate::common::RW,
6241    > {
6242        crate::common::RegisterField::<
6243            14,
6244            0x1,
6245            1,
6246            0,
6247            p109pfs::Isel,
6248            p109pfs::Isel,
6249            P109Pfs_SPEC,
6250            crate::common::RW,
6251        >::from_register(self, 0)
6252    }
6253
6254    #[doc = "Analog Input Enable"]
6255    #[inline(always)]
6256    pub fn asel(
6257        self,
6258    ) -> crate::common::RegisterField<
6259        15,
6260        0x1,
6261        1,
6262        0,
6263        p109pfs::Asel,
6264        p109pfs::Asel,
6265        P109Pfs_SPEC,
6266        crate::common::RW,
6267    > {
6268        crate::common::RegisterField::<
6269            15,
6270            0x1,
6271            1,
6272            0,
6273            p109pfs::Asel,
6274            p109pfs::Asel,
6275            P109Pfs_SPEC,
6276            crate::common::RW,
6277        >::from_register(self, 0)
6278    }
6279
6280    #[doc = "Port Mode Control"]
6281    #[inline(always)]
6282    pub fn pmr(
6283        self,
6284    ) -> crate::common::RegisterField<
6285        16,
6286        0x1,
6287        1,
6288        0,
6289        p109pfs::Pmr,
6290        p109pfs::Pmr,
6291        P109Pfs_SPEC,
6292        crate::common::RW,
6293    > {
6294        crate::common::RegisterField::<
6295            16,
6296            0x1,
6297            1,
6298            0,
6299            p109pfs::Pmr,
6300            p109pfs::Pmr,
6301            P109Pfs_SPEC,
6302            crate::common::RW,
6303        >::from_register(self, 0)
6304    }
6305
6306    #[doc = "Peripheral Select"]
6307    #[inline(always)]
6308    pub fn psel(
6309        self,
6310    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P109Pfs_SPEC, crate::common::RW> {
6311        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P109Pfs_SPEC,crate::common::RW>::from_register(self,0)
6312    }
6313}
6314impl ::core::default::Default for P109Pfs {
6315    #[inline(always)]
6316    fn default() -> P109Pfs {
6317        <crate::RegValueT<P109Pfs_SPEC> as RegisterValue<_>>::new(0)
6318    }
6319}
6320pub mod p109pfs {
6321
6322    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6323    pub struct Podr_SPEC;
6324    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6325    impl Podr {
6326        #[doc = "Output low"]
6327        pub const _0: Self = Self::new(0);
6328
6329        #[doc = "Output high"]
6330        pub const _1: Self = Self::new(1);
6331    }
6332    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6333    pub struct Pidr_SPEC;
6334    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6335    impl Pidr {
6336        #[doc = "Low level"]
6337        pub const _0: Self = Self::new(0);
6338
6339        #[doc = "High level"]
6340        pub const _1: Self = Self::new(1);
6341    }
6342    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6343    pub struct Pdr_SPEC;
6344    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6345    impl Pdr {
6346        #[doc = "Input (functions as an input pin)"]
6347        pub const _0: Self = Self::new(0);
6348
6349        #[doc = "Output (functions as an output pin)"]
6350        pub const _1: Self = Self::new(1);
6351    }
6352    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6353    pub struct Pcr_SPEC;
6354    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6355    impl Pcr {
6356        #[doc = "Disable input pull-up"]
6357        pub const _0: Self = Self::new(0);
6358
6359        #[doc = "Enable input pull-up"]
6360        pub const _1: Self = Self::new(1);
6361    }
6362    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6363    pub struct Ncodr_SPEC;
6364    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6365    impl Ncodr {
6366        #[doc = "Output CMOS"]
6367        pub const _0: Self = Self::new(0);
6368
6369        #[doc = "Output NMOS open-drain"]
6370        pub const _1: Self = Self::new(1);
6371    }
6372    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6373    pub struct Eofr_SPEC;
6374    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6375    impl Eofr {
6376        #[doc = "Don\'t care"]
6377        pub const _00: Self = Self::new(0);
6378
6379        #[doc = "Detect rising edge"]
6380        pub const _01: Self = Self::new(1);
6381
6382        #[doc = "Detect falling edge"]
6383        pub const _10: Self = Self::new(2);
6384
6385        #[doc = "Detect both edges"]
6386        pub const _11: Self = Self::new(3);
6387    }
6388    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6389    pub struct Isel_SPEC;
6390    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6391    impl Isel {
6392        #[doc = "Do not use as IRQn input pin"]
6393        pub const _0: Self = Self::new(0);
6394
6395        #[doc = "Use as IRQn input pin"]
6396        pub const _1: Self = Self::new(1);
6397    }
6398    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6399    pub struct Asel_SPEC;
6400    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6401    impl Asel {
6402        #[doc = "Do not use as analog pin"]
6403        pub const _0: Self = Self::new(0);
6404
6405        #[doc = "Use as analog pin"]
6406        pub const _1: Self = Self::new(1);
6407    }
6408    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6409    pub struct Pmr_SPEC;
6410    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6411    impl Pmr {
6412        #[doc = "Use as general I/O pin"]
6413        pub const _0: Self = Self::new(0);
6414
6415        #[doc = "Use as I/O port for peripheral functions"]
6416        pub const _1: Self = Self::new(1);
6417    }
6418}
6419#[doc(hidden)]
6420#[derive(Copy, Clone, Eq, PartialEq)]
6421pub struct P109PfsHa_SPEC;
6422impl crate::sealed::RegSpec for P109PfsHa_SPEC {
6423    type DataType = u16;
6424}
6425
6426#[doc = "Port 109 Pin Function Select Register"]
6427pub type P109PfsHa = crate::RegValueT<P109PfsHa_SPEC>;
6428
6429impl P109PfsHa {
6430    #[doc = "Port Output Data"]
6431    #[inline(always)]
6432    pub fn podr(
6433        self,
6434    ) -> crate::common::RegisterField<
6435        0,
6436        0x1,
6437        1,
6438        0,
6439        p109pfs_ha::Podr,
6440        p109pfs_ha::Podr,
6441        P109PfsHa_SPEC,
6442        crate::common::RW,
6443    > {
6444        crate::common::RegisterField::<
6445            0,
6446            0x1,
6447            1,
6448            0,
6449            p109pfs_ha::Podr,
6450            p109pfs_ha::Podr,
6451            P109PfsHa_SPEC,
6452            crate::common::RW,
6453        >::from_register(self, 0)
6454    }
6455
6456    #[doc = "Port State"]
6457    #[inline(always)]
6458    pub fn pidr(
6459        self,
6460    ) -> crate::common::RegisterField<
6461        1,
6462        0x1,
6463        1,
6464        0,
6465        p109pfs_ha::Pidr,
6466        p109pfs_ha::Pidr,
6467        P109PfsHa_SPEC,
6468        crate::common::R,
6469    > {
6470        crate::common::RegisterField::<
6471            1,
6472            0x1,
6473            1,
6474            0,
6475            p109pfs_ha::Pidr,
6476            p109pfs_ha::Pidr,
6477            P109PfsHa_SPEC,
6478            crate::common::R,
6479        >::from_register(self, 0)
6480    }
6481
6482    #[doc = "Port Direction"]
6483    #[inline(always)]
6484    pub fn pdr(
6485        self,
6486    ) -> crate::common::RegisterField<
6487        2,
6488        0x1,
6489        1,
6490        0,
6491        p109pfs_ha::Pdr,
6492        p109pfs_ha::Pdr,
6493        P109PfsHa_SPEC,
6494        crate::common::RW,
6495    > {
6496        crate::common::RegisterField::<
6497            2,
6498            0x1,
6499            1,
6500            0,
6501            p109pfs_ha::Pdr,
6502            p109pfs_ha::Pdr,
6503            P109PfsHa_SPEC,
6504            crate::common::RW,
6505        >::from_register(self, 0)
6506    }
6507
6508    #[doc = "Pull-up Control"]
6509    #[inline(always)]
6510    pub fn pcr(
6511        self,
6512    ) -> crate::common::RegisterField<
6513        4,
6514        0x1,
6515        1,
6516        0,
6517        p109pfs_ha::Pcr,
6518        p109pfs_ha::Pcr,
6519        P109PfsHa_SPEC,
6520        crate::common::RW,
6521    > {
6522        crate::common::RegisterField::<
6523            4,
6524            0x1,
6525            1,
6526            0,
6527            p109pfs_ha::Pcr,
6528            p109pfs_ha::Pcr,
6529            P109PfsHa_SPEC,
6530            crate::common::RW,
6531        >::from_register(self, 0)
6532    }
6533
6534    #[doc = "N-Channel Open-Drain Control"]
6535    #[inline(always)]
6536    pub fn ncodr(
6537        self,
6538    ) -> crate::common::RegisterField<
6539        6,
6540        0x1,
6541        1,
6542        0,
6543        p109pfs_ha::Ncodr,
6544        p109pfs_ha::Ncodr,
6545        P109PfsHa_SPEC,
6546        crate::common::RW,
6547    > {
6548        crate::common::RegisterField::<
6549            6,
6550            0x1,
6551            1,
6552            0,
6553            p109pfs_ha::Ncodr,
6554            p109pfs_ha::Ncodr,
6555            P109PfsHa_SPEC,
6556            crate::common::RW,
6557        >::from_register(self, 0)
6558    }
6559
6560    #[doc = "Event on Falling/Event on Rising"]
6561    #[inline(always)]
6562    pub fn eofr(
6563        self,
6564    ) -> crate::common::RegisterField<
6565        12,
6566        0x3,
6567        1,
6568        0,
6569        p109pfs_ha::Eofr,
6570        p109pfs_ha::Eofr,
6571        P109PfsHa_SPEC,
6572        crate::common::RW,
6573    > {
6574        crate::common::RegisterField::<
6575            12,
6576            0x3,
6577            1,
6578            0,
6579            p109pfs_ha::Eofr,
6580            p109pfs_ha::Eofr,
6581            P109PfsHa_SPEC,
6582            crate::common::RW,
6583        >::from_register(self, 0)
6584    }
6585
6586    #[doc = "IRQ Input Enable"]
6587    #[inline(always)]
6588    pub fn isel(
6589        self,
6590    ) -> crate::common::RegisterField<
6591        14,
6592        0x1,
6593        1,
6594        0,
6595        p109pfs_ha::Isel,
6596        p109pfs_ha::Isel,
6597        P109PfsHa_SPEC,
6598        crate::common::RW,
6599    > {
6600        crate::common::RegisterField::<
6601            14,
6602            0x1,
6603            1,
6604            0,
6605            p109pfs_ha::Isel,
6606            p109pfs_ha::Isel,
6607            P109PfsHa_SPEC,
6608            crate::common::RW,
6609        >::from_register(self, 0)
6610    }
6611
6612    #[doc = "Analog Input Enable"]
6613    #[inline(always)]
6614    pub fn asel(
6615        self,
6616    ) -> crate::common::RegisterField<
6617        15,
6618        0x1,
6619        1,
6620        0,
6621        p109pfs_ha::Asel,
6622        p109pfs_ha::Asel,
6623        P109PfsHa_SPEC,
6624        crate::common::RW,
6625    > {
6626        crate::common::RegisterField::<
6627            15,
6628            0x1,
6629            1,
6630            0,
6631            p109pfs_ha::Asel,
6632            p109pfs_ha::Asel,
6633            P109PfsHa_SPEC,
6634            crate::common::RW,
6635        >::from_register(self, 0)
6636    }
6637}
6638impl ::core::default::Default for P109PfsHa {
6639    #[inline(always)]
6640    fn default() -> P109PfsHa {
6641        <crate::RegValueT<P109PfsHa_SPEC> as RegisterValue<_>>::new(0)
6642    }
6643}
6644pub mod p109pfs_ha {
6645
6646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6647    pub struct Podr_SPEC;
6648    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6649    impl Podr {
6650        #[doc = "Output low"]
6651        pub const _0: Self = Self::new(0);
6652
6653        #[doc = "Output high"]
6654        pub const _1: Self = Self::new(1);
6655    }
6656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6657    pub struct Pidr_SPEC;
6658    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6659    impl Pidr {
6660        #[doc = "Low level"]
6661        pub const _0: Self = Self::new(0);
6662
6663        #[doc = "High level"]
6664        pub const _1: Self = Self::new(1);
6665    }
6666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6667    pub struct Pdr_SPEC;
6668    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6669    impl Pdr {
6670        #[doc = "Input (functions as an input pin)"]
6671        pub const _0: Self = Self::new(0);
6672
6673        #[doc = "Output (functions as an output pin)"]
6674        pub const _1: Self = Self::new(1);
6675    }
6676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6677    pub struct Pcr_SPEC;
6678    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6679    impl Pcr {
6680        #[doc = "Disable input pull-up"]
6681        pub const _0: Self = Self::new(0);
6682
6683        #[doc = "Enable input pull-up"]
6684        pub const _1: Self = Self::new(1);
6685    }
6686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6687    pub struct Ncodr_SPEC;
6688    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6689    impl Ncodr {
6690        #[doc = "Output CMOS"]
6691        pub const _0: Self = Self::new(0);
6692
6693        #[doc = "Output NMOS open-drain"]
6694        pub const _1: Self = Self::new(1);
6695    }
6696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6697    pub struct Eofr_SPEC;
6698    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6699    impl Eofr {
6700        #[doc = "Don\'t care"]
6701        pub const _00: Self = Self::new(0);
6702
6703        #[doc = "Detect rising edge"]
6704        pub const _01: Self = Self::new(1);
6705
6706        #[doc = "Detect falling edge"]
6707        pub const _10: Self = Self::new(2);
6708
6709        #[doc = "Detect both edges"]
6710        pub const _11: Self = Self::new(3);
6711    }
6712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6713    pub struct Isel_SPEC;
6714    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6715    impl Isel {
6716        #[doc = "Do not use as IRQn input pin"]
6717        pub const _0: Self = Self::new(0);
6718
6719        #[doc = "Use as IRQn input pin"]
6720        pub const _1: Self = Self::new(1);
6721    }
6722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6723    pub struct Asel_SPEC;
6724    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6725    impl Asel {
6726        #[doc = "Do not use as analog pin"]
6727        pub const _0: Self = Self::new(0);
6728
6729        #[doc = "Use as analog pin"]
6730        pub const _1: Self = Self::new(1);
6731    }
6732}
6733#[doc(hidden)]
6734#[derive(Copy, Clone, Eq, PartialEq)]
6735pub struct P109PfsBy_SPEC;
6736impl crate::sealed::RegSpec for P109PfsBy_SPEC {
6737    type DataType = u8;
6738}
6739
6740#[doc = "Port 109 Pin Function Select Register"]
6741pub type P109PfsBy = crate::RegValueT<P109PfsBy_SPEC>;
6742
6743impl P109PfsBy {
6744    #[doc = "Port Output Data"]
6745    #[inline(always)]
6746    pub fn podr(
6747        self,
6748    ) -> crate::common::RegisterField<
6749        0,
6750        0x1,
6751        1,
6752        0,
6753        p109pfs_by::Podr,
6754        p109pfs_by::Podr,
6755        P109PfsBy_SPEC,
6756        crate::common::RW,
6757    > {
6758        crate::common::RegisterField::<
6759            0,
6760            0x1,
6761            1,
6762            0,
6763            p109pfs_by::Podr,
6764            p109pfs_by::Podr,
6765            P109PfsBy_SPEC,
6766            crate::common::RW,
6767        >::from_register(self, 0)
6768    }
6769
6770    #[doc = "Port State"]
6771    #[inline(always)]
6772    pub fn pidr(
6773        self,
6774    ) -> crate::common::RegisterField<
6775        1,
6776        0x1,
6777        1,
6778        0,
6779        p109pfs_by::Pidr,
6780        p109pfs_by::Pidr,
6781        P109PfsBy_SPEC,
6782        crate::common::R,
6783    > {
6784        crate::common::RegisterField::<
6785            1,
6786            0x1,
6787            1,
6788            0,
6789            p109pfs_by::Pidr,
6790            p109pfs_by::Pidr,
6791            P109PfsBy_SPEC,
6792            crate::common::R,
6793        >::from_register(self, 0)
6794    }
6795
6796    #[doc = "Port Direction"]
6797    #[inline(always)]
6798    pub fn pdr(
6799        self,
6800    ) -> crate::common::RegisterField<
6801        2,
6802        0x1,
6803        1,
6804        0,
6805        p109pfs_by::Pdr,
6806        p109pfs_by::Pdr,
6807        P109PfsBy_SPEC,
6808        crate::common::RW,
6809    > {
6810        crate::common::RegisterField::<
6811            2,
6812            0x1,
6813            1,
6814            0,
6815            p109pfs_by::Pdr,
6816            p109pfs_by::Pdr,
6817            P109PfsBy_SPEC,
6818            crate::common::RW,
6819        >::from_register(self, 0)
6820    }
6821
6822    #[doc = "Pull-up Control"]
6823    #[inline(always)]
6824    pub fn pcr(
6825        self,
6826    ) -> crate::common::RegisterField<
6827        4,
6828        0x1,
6829        1,
6830        0,
6831        p109pfs_by::Pcr,
6832        p109pfs_by::Pcr,
6833        P109PfsBy_SPEC,
6834        crate::common::RW,
6835    > {
6836        crate::common::RegisterField::<
6837            4,
6838            0x1,
6839            1,
6840            0,
6841            p109pfs_by::Pcr,
6842            p109pfs_by::Pcr,
6843            P109PfsBy_SPEC,
6844            crate::common::RW,
6845        >::from_register(self, 0)
6846    }
6847
6848    #[doc = "N-Channel Open-Drain Control"]
6849    #[inline(always)]
6850    pub fn ncodr(
6851        self,
6852    ) -> crate::common::RegisterField<
6853        6,
6854        0x1,
6855        1,
6856        0,
6857        p109pfs_by::Ncodr,
6858        p109pfs_by::Ncodr,
6859        P109PfsBy_SPEC,
6860        crate::common::RW,
6861    > {
6862        crate::common::RegisterField::<
6863            6,
6864            0x1,
6865            1,
6866            0,
6867            p109pfs_by::Ncodr,
6868            p109pfs_by::Ncodr,
6869            P109PfsBy_SPEC,
6870            crate::common::RW,
6871        >::from_register(self, 0)
6872    }
6873}
6874impl ::core::default::Default for P109PfsBy {
6875    #[inline(always)]
6876    fn default() -> P109PfsBy {
6877        <crate::RegValueT<P109PfsBy_SPEC> as RegisterValue<_>>::new(0)
6878    }
6879}
6880pub mod p109pfs_by {
6881
6882    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6883    pub struct Podr_SPEC;
6884    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6885    impl Podr {
6886        #[doc = "Output low"]
6887        pub const _0: Self = Self::new(0);
6888
6889        #[doc = "Output high"]
6890        pub const _1: Self = Self::new(1);
6891    }
6892    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6893    pub struct Pidr_SPEC;
6894    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6895    impl Pidr {
6896        #[doc = "Low level"]
6897        pub const _0: Self = Self::new(0);
6898
6899        #[doc = "High level"]
6900        pub const _1: Self = Self::new(1);
6901    }
6902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6903    pub struct Pdr_SPEC;
6904    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6905    impl Pdr {
6906        #[doc = "Input (functions as an input pin)"]
6907        pub const _0: Self = Self::new(0);
6908
6909        #[doc = "Output (functions as an output pin)"]
6910        pub const _1: Self = Self::new(1);
6911    }
6912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6913    pub struct Pcr_SPEC;
6914    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6915    impl Pcr {
6916        #[doc = "Disable input pull-up"]
6917        pub const _0: Self = Self::new(0);
6918
6919        #[doc = "Enable input pull-up"]
6920        pub const _1: Self = Self::new(1);
6921    }
6922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6923    pub struct Ncodr_SPEC;
6924    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6925    impl Ncodr {
6926        #[doc = "Output CMOS"]
6927        pub const _0: Self = Self::new(0);
6928
6929        #[doc = "Output NMOS open-drain"]
6930        pub const _1: Self = Self::new(1);
6931    }
6932}
6933#[doc(hidden)]
6934#[derive(Copy, Clone, Eq, PartialEq)]
6935pub struct P1Pfs_SPEC;
6936impl crate::sealed::RegSpec for P1Pfs_SPEC {
6937    type DataType = u32;
6938}
6939
6940#[doc = "Port 1%s Pin Function Select Register"]
6941pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
6942
6943impl P1Pfs {
6944    #[doc = "Port Output Data"]
6945    #[inline(always)]
6946    pub fn podr(
6947        self,
6948    ) -> crate::common::RegisterField<
6949        0,
6950        0x1,
6951        1,
6952        0,
6953        p1pfs::Podr,
6954        p1pfs::Podr,
6955        P1Pfs_SPEC,
6956        crate::common::RW,
6957    > {
6958        crate::common::RegisterField::<
6959            0,
6960            0x1,
6961            1,
6962            0,
6963            p1pfs::Podr,
6964            p1pfs::Podr,
6965            P1Pfs_SPEC,
6966            crate::common::RW,
6967        >::from_register(self, 0)
6968    }
6969
6970    #[doc = "Port State"]
6971    #[inline(always)]
6972    pub fn pidr(
6973        self,
6974    ) -> crate::common::RegisterField<
6975        1,
6976        0x1,
6977        1,
6978        0,
6979        p1pfs::Pidr,
6980        p1pfs::Pidr,
6981        P1Pfs_SPEC,
6982        crate::common::R,
6983    > {
6984        crate::common::RegisterField::<
6985            1,
6986            0x1,
6987            1,
6988            0,
6989            p1pfs::Pidr,
6990            p1pfs::Pidr,
6991            P1Pfs_SPEC,
6992            crate::common::R,
6993        >::from_register(self, 0)
6994    }
6995
6996    #[doc = "Port Direction"]
6997    #[inline(always)]
6998    pub fn pdr(
6999        self,
7000    ) -> crate::common::RegisterField<
7001        2,
7002        0x1,
7003        1,
7004        0,
7005        p1pfs::Pdr,
7006        p1pfs::Pdr,
7007        P1Pfs_SPEC,
7008        crate::common::RW,
7009    > {
7010        crate::common::RegisterField::<
7011            2,
7012            0x1,
7013            1,
7014            0,
7015            p1pfs::Pdr,
7016            p1pfs::Pdr,
7017            P1Pfs_SPEC,
7018            crate::common::RW,
7019        >::from_register(self, 0)
7020    }
7021
7022    #[doc = "Pull-up Control"]
7023    #[inline(always)]
7024    pub fn pcr(
7025        self,
7026    ) -> crate::common::RegisterField<
7027        4,
7028        0x1,
7029        1,
7030        0,
7031        p1pfs::Pcr,
7032        p1pfs::Pcr,
7033        P1Pfs_SPEC,
7034        crate::common::RW,
7035    > {
7036        crate::common::RegisterField::<
7037            4,
7038            0x1,
7039            1,
7040            0,
7041            p1pfs::Pcr,
7042            p1pfs::Pcr,
7043            P1Pfs_SPEC,
7044            crate::common::RW,
7045        >::from_register(self, 0)
7046    }
7047
7048    #[doc = "N-Channel Open-Drain Control"]
7049    #[inline(always)]
7050    pub fn ncodr(
7051        self,
7052    ) -> crate::common::RegisterField<
7053        6,
7054        0x1,
7055        1,
7056        0,
7057        p1pfs::Ncodr,
7058        p1pfs::Ncodr,
7059        P1Pfs_SPEC,
7060        crate::common::RW,
7061    > {
7062        crate::common::RegisterField::<
7063            6,
7064            0x1,
7065            1,
7066            0,
7067            p1pfs::Ncodr,
7068            p1pfs::Ncodr,
7069            P1Pfs_SPEC,
7070            crate::common::RW,
7071        >::from_register(self, 0)
7072    }
7073
7074    #[doc = "Event on Falling/Event on Rising"]
7075    #[inline(always)]
7076    pub fn eofr(
7077        self,
7078    ) -> crate::common::RegisterField<
7079        12,
7080        0x3,
7081        1,
7082        0,
7083        p1pfs::Eofr,
7084        p1pfs::Eofr,
7085        P1Pfs_SPEC,
7086        crate::common::RW,
7087    > {
7088        crate::common::RegisterField::<
7089            12,
7090            0x3,
7091            1,
7092            0,
7093            p1pfs::Eofr,
7094            p1pfs::Eofr,
7095            P1Pfs_SPEC,
7096            crate::common::RW,
7097        >::from_register(self, 0)
7098    }
7099
7100    #[doc = "IRQ Input Enable"]
7101    #[inline(always)]
7102    pub fn isel(
7103        self,
7104    ) -> crate::common::RegisterField<
7105        14,
7106        0x1,
7107        1,
7108        0,
7109        p1pfs::Isel,
7110        p1pfs::Isel,
7111        P1Pfs_SPEC,
7112        crate::common::RW,
7113    > {
7114        crate::common::RegisterField::<
7115            14,
7116            0x1,
7117            1,
7118            0,
7119            p1pfs::Isel,
7120            p1pfs::Isel,
7121            P1Pfs_SPEC,
7122            crate::common::RW,
7123        >::from_register(self, 0)
7124    }
7125
7126    #[doc = "Analog Input Enable"]
7127    #[inline(always)]
7128    pub fn asel(
7129        self,
7130    ) -> crate::common::RegisterField<
7131        15,
7132        0x1,
7133        1,
7134        0,
7135        p1pfs::Asel,
7136        p1pfs::Asel,
7137        P1Pfs_SPEC,
7138        crate::common::RW,
7139    > {
7140        crate::common::RegisterField::<
7141            15,
7142            0x1,
7143            1,
7144            0,
7145            p1pfs::Asel,
7146            p1pfs::Asel,
7147            P1Pfs_SPEC,
7148            crate::common::RW,
7149        >::from_register(self, 0)
7150    }
7151
7152    #[doc = "Port Mode Control"]
7153    #[inline(always)]
7154    pub fn pmr(
7155        self,
7156    ) -> crate::common::RegisterField<
7157        16,
7158        0x1,
7159        1,
7160        0,
7161        p1pfs::Pmr,
7162        p1pfs::Pmr,
7163        P1Pfs_SPEC,
7164        crate::common::RW,
7165    > {
7166        crate::common::RegisterField::<
7167            16,
7168            0x1,
7169            1,
7170            0,
7171            p1pfs::Pmr,
7172            p1pfs::Pmr,
7173            P1Pfs_SPEC,
7174            crate::common::RW,
7175        >::from_register(self, 0)
7176    }
7177
7178    #[doc = "Peripheral Select"]
7179    #[inline(always)]
7180    pub fn psel(
7181        self,
7182    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
7183        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
7184    }
7185}
7186impl ::core::default::Default for P1Pfs {
7187    #[inline(always)]
7188    fn default() -> P1Pfs {
7189        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
7190    }
7191}
7192pub mod p1pfs {
7193
7194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7195    pub struct Podr_SPEC;
7196    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7197    impl Podr {
7198        #[doc = "Output low"]
7199        pub const _0: Self = Self::new(0);
7200
7201        #[doc = "Output high"]
7202        pub const _1: Self = Self::new(1);
7203    }
7204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7205    pub struct Pidr_SPEC;
7206    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7207    impl Pidr {
7208        #[doc = "Low level"]
7209        pub const _0: Self = Self::new(0);
7210
7211        #[doc = "High level"]
7212        pub const _1: Self = Self::new(1);
7213    }
7214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7215    pub struct Pdr_SPEC;
7216    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7217    impl Pdr {
7218        #[doc = "Input (functions as an input pin)"]
7219        pub const _0: Self = Self::new(0);
7220
7221        #[doc = "Output (functions as an output pin)"]
7222        pub const _1: Self = Self::new(1);
7223    }
7224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7225    pub struct Pcr_SPEC;
7226    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7227    impl Pcr {
7228        #[doc = "Disable input pull-up"]
7229        pub const _0: Self = Self::new(0);
7230
7231        #[doc = "Enable input pull-up"]
7232        pub const _1: Self = Self::new(1);
7233    }
7234    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7235    pub struct Ncodr_SPEC;
7236    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7237    impl Ncodr {
7238        #[doc = "Output CMOS"]
7239        pub const _0: Self = Self::new(0);
7240
7241        #[doc = "Output NMOS open-drain"]
7242        pub const _1: Self = Self::new(1);
7243    }
7244    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7245    pub struct Eofr_SPEC;
7246    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7247    impl Eofr {
7248        #[doc = "Don\'t care"]
7249        pub const _00: Self = Self::new(0);
7250
7251        #[doc = "Detect rising edge"]
7252        pub const _01: Self = Self::new(1);
7253
7254        #[doc = "Detect falling edge"]
7255        pub const _10: Self = Self::new(2);
7256
7257        #[doc = "Detect both edges"]
7258        pub const _11: Self = Self::new(3);
7259    }
7260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7261    pub struct Isel_SPEC;
7262    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7263    impl Isel {
7264        #[doc = "Do not use as IRQn input pin"]
7265        pub const _0: Self = Self::new(0);
7266
7267        #[doc = "Use as IRQn input pin"]
7268        pub const _1: Self = Self::new(1);
7269    }
7270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7271    pub struct Asel_SPEC;
7272    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7273    impl Asel {
7274        #[doc = "Do not use as analog pin"]
7275        pub const _0: Self = Self::new(0);
7276
7277        #[doc = "Use as analog pin"]
7278        pub const _1: Self = Self::new(1);
7279    }
7280    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7281    pub struct Pmr_SPEC;
7282    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7283    impl Pmr {
7284        #[doc = "Use as general I/O pin"]
7285        pub const _0: Self = Self::new(0);
7286
7287        #[doc = "Use as I/O port for peripheral functions"]
7288        pub const _1: Self = Self::new(1);
7289    }
7290}
7291#[doc(hidden)]
7292#[derive(Copy, Clone, Eq, PartialEq)]
7293pub struct P1PfsHa_SPEC;
7294impl crate::sealed::RegSpec for P1PfsHa_SPEC {
7295    type DataType = u16;
7296}
7297
7298#[doc = "Port 1%s Pin Function Select Register"]
7299pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
7300
7301impl P1PfsHa {
7302    #[doc = "Port Output Data"]
7303    #[inline(always)]
7304    pub fn podr(
7305        self,
7306    ) -> crate::common::RegisterField<
7307        0,
7308        0x1,
7309        1,
7310        0,
7311        p1pfs_ha::Podr,
7312        p1pfs_ha::Podr,
7313        P1PfsHa_SPEC,
7314        crate::common::RW,
7315    > {
7316        crate::common::RegisterField::<
7317            0,
7318            0x1,
7319            1,
7320            0,
7321            p1pfs_ha::Podr,
7322            p1pfs_ha::Podr,
7323            P1PfsHa_SPEC,
7324            crate::common::RW,
7325        >::from_register(self, 0)
7326    }
7327
7328    #[doc = "Port State"]
7329    #[inline(always)]
7330    pub fn pidr(
7331        self,
7332    ) -> crate::common::RegisterField<
7333        1,
7334        0x1,
7335        1,
7336        0,
7337        p1pfs_ha::Pidr,
7338        p1pfs_ha::Pidr,
7339        P1PfsHa_SPEC,
7340        crate::common::R,
7341    > {
7342        crate::common::RegisterField::<
7343            1,
7344            0x1,
7345            1,
7346            0,
7347            p1pfs_ha::Pidr,
7348            p1pfs_ha::Pidr,
7349            P1PfsHa_SPEC,
7350            crate::common::R,
7351        >::from_register(self, 0)
7352    }
7353
7354    #[doc = "Port Direction"]
7355    #[inline(always)]
7356    pub fn pdr(
7357        self,
7358    ) -> crate::common::RegisterField<
7359        2,
7360        0x1,
7361        1,
7362        0,
7363        p1pfs_ha::Pdr,
7364        p1pfs_ha::Pdr,
7365        P1PfsHa_SPEC,
7366        crate::common::RW,
7367    > {
7368        crate::common::RegisterField::<
7369            2,
7370            0x1,
7371            1,
7372            0,
7373            p1pfs_ha::Pdr,
7374            p1pfs_ha::Pdr,
7375            P1PfsHa_SPEC,
7376            crate::common::RW,
7377        >::from_register(self, 0)
7378    }
7379
7380    #[doc = "Pull-up Control"]
7381    #[inline(always)]
7382    pub fn pcr(
7383        self,
7384    ) -> crate::common::RegisterField<
7385        4,
7386        0x1,
7387        1,
7388        0,
7389        p1pfs_ha::Pcr,
7390        p1pfs_ha::Pcr,
7391        P1PfsHa_SPEC,
7392        crate::common::RW,
7393    > {
7394        crate::common::RegisterField::<
7395            4,
7396            0x1,
7397            1,
7398            0,
7399            p1pfs_ha::Pcr,
7400            p1pfs_ha::Pcr,
7401            P1PfsHa_SPEC,
7402            crate::common::RW,
7403        >::from_register(self, 0)
7404    }
7405
7406    #[doc = "N-Channel Open-Drain Control"]
7407    #[inline(always)]
7408    pub fn ncodr(
7409        self,
7410    ) -> crate::common::RegisterField<
7411        6,
7412        0x1,
7413        1,
7414        0,
7415        p1pfs_ha::Ncodr,
7416        p1pfs_ha::Ncodr,
7417        P1PfsHa_SPEC,
7418        crate::common::RW,
7419    > {
7420        crate::common::RegisterField::<
7421            6,
7422            0x1,
7423            1,
7424            0,
7425            p1pfs_ha::Ncodr,
7426            p1pfs_ha::Ncodr,
7427            P1PfsHa_SPEC,
7428            crate::common::RW,
7429        >::from_register(self, 0)
7430    }
7431
7432    #[doc = "Event on Falling/Event on Rising"]
7433    #[inline(always)]
7434    pub fn eofr(
7435        self,
7436    ) -> crate::common::RegisterField<
7437        12,
7438        0x3,
7439        1,
7440        0,
7441        p1pfs_ha::Eofr,
7442        p1pfs_ha::Eofr,
7443        P1PfsHa_SPEC,
7444        crate::common::RW,
7445    > {
7446        crate::common::RegisterField::<
7447            12,
7448            0x3,
7449            1,
7450            0,
7451            p1pfs_ha::Eofr,
7452            p1pfs_ha::Eofr,
7453            P1PfsHa_SPEC,
7454            crate::common::RW,
7455        >::from_register(self, 0)
7456    }
7457
7458    #[doc = "IRQ Input Enable"]
7459    #[inline(always)]
7460    pub fn isel(
7461        self,
7462    ) -> crate::common::RegisterField<
7463        14,
7464        0x1,
7465        1,
7466        0,
7467        p1pfs_ha::Isel,
7468        p1pfs_ha::Isel,
7469        P1PfsHa_SPEC,
7470        crate::common::RW,
7471    > {
7472        crate::common::RegisterField::<
7473            14,
7474            0x1,
7475            1,
7476            0,
7477            p1pfs_ha::Isel,
7478            p1pfs_ha::Isel,
7479            P1PfsHa_SPEC,
7480            crate::common::RW,
7481        >::from_register(self, 0)
7482    }
7483
7484    #[doc = "Analog Input Enable"]
7485    #[inline(always)]
7486    pub fn asel(
7487        self,
7488    ) -> crate::common::RegisterField<
7489        15,
7490        0x1,
7491        1,
7492        0,
7493        p1pfs_ha::Asel,
7494        p1pfs_ha::Asel,
7495        P1PfsHa_SPEC,
7496        crate::common::RW,
7497    > {
7498        crate::common::RegisterField::<
7499            15,
7500            0x1,
7501            1,
7502            0,
7503            p1pfs_ha::Asel,
7504            p1pfs_ha::Asel,
7505            P1PfsHa_SPEC,
7506            crate::common::RW,
7507        >::from_register(self, 0)
7508    }
7509}
7510impl ::core::default::Default for P1PfsHa {
7511    #[inline(always)]
7512    fn default() -> P1PfsHa {
7513        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
7514    }
7515}
7516pub mod p1pfs_ha {
7517
7518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7519    pub struct Podr_SPEC;
7520    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7521    impl Podr {
7522        #[doc = "Output low"]
7523        pub const _0: Self = Self::new(0);
7524
7525        #[doc = "Output high"]
7526        pub const _1: Self = Self::new(1);
7527    }
7528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7529    pub struct Pidr_SPEC;
7530    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7531    impl Pidr {
7532        #[doc = "Low level"]
7533        pub const _0: Self = Self::new(0);
7534
7535        #[doc = "High level"]
7536        pub const _1: Self = Self::new(1);
7537    }
7538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7539    pub struct Pdr_SPEC;
7540    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7541    impl Pdr {
7542        #[doc = "Input (functions as an input pin)"]
7543        pub const _0: Self = Self::new(0);
7544
7545        #[doc = "Output (functions as an output pin)"]
7546        pub const _1: Self = Self::new(1);
7547    }
7548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7549    pub struct Pcr_SPEC;
7550    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7551    impl Pcr {
7552        #[doc = "Disable input pull-up"]
7553        pub const _0: Self = Self::new(0);
7554
7555        #[doc = "Enable input pull-up"]
7556        pub const _1: Self = Self::new(1);
7557    }
7558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7559    pub struct Ncodr_SPEC;
7560    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7561    impl Ncodr {
7562        #[doc = "Output CMOS"]
7563        pub const _0: Self = Self::new(0);
7564
7565        #[doc = "Output NMOS open-drain"]
7566        pub const _1: Self = Self::new(1);
7567    }
7568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7569    pub struct Eofr_SPEC;
7570    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7571    impl Eofr {
7572        #[doc = "Don\'t care"]
7573        pub const _00: Self = Self::new(0);
7574
7575        #[doc = "Detect rising edge"]
7576        pub const _01: Self = Self::new(1);
7577
7578        #[doc = "Detect falling edge"]
7579        pub const _10: Self = Self::new(2);
7580
7581        #[doc = "Detect both edges"]
7582        pub const _11: Self = Self::new(3);
7583    }
7584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7585    pub struct Isel_SPEC;
7586    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7587    impl Isel {
7588        #[doc = "Do not use as IRQn input pin"]
7589        pub const _0: Self = Self::new(0);
7590
7591        #[doc = "Use as IRQn input pin"]
7592        pub const _1: Self = Self::new(1);
7593    }
7594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7595    pub struct Asel_SPEC;
7596    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7597    impl Asel {
7598        #[doc = "Do not use as analog pin"]
7599        pub const _0: Self = Self::new(0);
7600
7601        #[doc = "Use as analog pin"]
7602        pub const _1: Self = Self::new(1);
7603    }
7604}
7605#[doc(hidden)]
7606#[derive(Copy, Clone, Eq, PartialEq)]
7607pub struct P1PfsBy_SPEC;
7608impl crate::sealed::RegSpec for P1PfsBy_SPEC {
7609    type DataType = u8;
7610}
7611
7612#[doc = "Port 1%s Pin Function Select Register"]
7613pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
7614
7615impl P1PfsBy {
7616    #[doc = "Port Output Data"]
7617    #[inline(always)]
7618    pub fn podr(
7619        self,
7620    ) -> crate::common::RegisterField<
7621        0,
7622        0x1,
7623        1,
7624        0,
7625        p1pfs_by::Podr,
7626        p1pfs_by::Podr,
7627        P1PfsBy_SPEC,
7628        crate::common::RW,
7629    > {
7630        crate::common::RegisterField::<
7631            0,
7632            0x1,
7633            1,
7634            0,
7635            p1pfs_by::Podr,
7636            p1pfs_by::Podr,
7637            P1PfsBy_SPEC,
7638            crate::common::RW,
7639        >::from_register(self, 0)
7640    }
7641
7642    #[doc = "Port State"]
7643    #[inline(always)]
7644    pub fn pidr(
7645        self,
7646    ) -> crate::common::RegisterField<
7647        1,
7648        0x1,
7649        1,
7650        0,
7651        p1pfs_by::Pidr,
7652        p1pfs_by::Pidr,
7653        P1PfsBy_SPEC,
7654        crate::common::R,
7655    > {
7656        crate::common::RegisterField::<
7657            1,
7658            0x1,
7659            1,
7660            0,
7661            p1pfs_by::Pidr,
7662            p1pfs_by::Pidr,
7663            P1PfsBy_SPEC,
7664            crate::common::R,
7665        >::from_register(self, 0)
7666    }
7667
7668    #[doc = "Port Direction"]
7669    #[inline(always)]
7670    pub fn pdr(
7671        self,
7672    ) -> crate::common::RegisterField<
7673        2,
7674        0x1,
7675        1,
7676        0,
7677        p1pfs_by::Pdr,
7678        p1pfs_by::Pdr,
7679        P1PfsBy_SPEC,
7680        crate::common::RW,
7681    > {
7682        crate::common::RegisterField::<
7683            2,
7684            0x1,
7685            1,
7686            0,
7687            p1pfs_by::Pdr,
7688            p1pfs_by::Pdr,
7689            P1PfsBy_SPEC,
7690            crate::common::RW,
7691        >::from_register(self, 0)
7692    }
7693
7694    #[doc = "Pull-up Control"]
7695    #[inline(always)]
7696    pub fn pcr(
7697        self,
7698    ) -> crate::common::RegisterField<
7699        4,
7700        0x1,
7701        1,
7702        0,
7703        p1pfs_by::Pcr,
7704        p1pfs_by::Pcr,
7705        P1PfsBy_SPEC,
7706        crate::common::RW,
7707    > {
7708        crate::common::RegisterField::<
7709            4,
7710            0x1,
7711            1,
7712            0,
7713            p1pfs_by::Pcr,
7714            p1pfs_by::Pcr,
7715            P1PfsBy_SPEC,
7716            crate::common::RW,
7717        >::from_register(self, 0)
7718    }
7719
7720    #[doc = "N-Channel Open-Drain Control"]
7721    #[inline(always)]
7722    pub fn ncodr(
7723        self,
7724    ) -> crate::common::RegisterField<
7725        6,
7726        0x1,
7727        1,
7728        0,
7729        p1pfs_by::Ncodr,
7730        p1pfs_by::Ncodr,
7731        P1PfsBy_SPEC,
7732        crate::common::RW,
7733    > {
7734        crate::common::RegisterField::<
7735            6,
7736            0x1,
7737            1,
7738            0,
7739            p1pfs_by::Ncodr,
7740            p1pfs_by::Ncodr,
7741            P1PfsBy_SPEC,
7742            crate::common::RW,
7743        >::from_register(self, 0)
7744    }
7745}
7746impl ::core::default::Default for P1PfsBy {
7747    #[inline(always)]
7748    fn default() -> P1PfsBy {
7749        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
7750    }
7751}
7752pub mod p1pfs_by {
7753
7754    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7755    pub struct Podr_SPEC;
7756    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7757    impl Podr {
7758        #[doc = "Output low"]
7759        pub const _0: Self = Self::new(0);
7760
7761        #[doc = "Output high"]
7762        pub const _1: Self = Self::new(1);
7763    }
7764    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7765    pub struct Pidr_SPEC;
7766    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7767    impl Pidr {
7768        #[doc = "Low level"]
7769        pub const _0: Self = Self::new(0);
7770
7771        #[doc = "High level"]
7772        pub const _1: Self = Self::new(1);
7773    }
7774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7775    pub struct Pdr_SPEC;
7776    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7777    impl Pdr {
7778        #[doc = "Input (functions as an input pin)"]
7779        pub const _0: Self = Self::new(0);
7780
7781        #[doc = "Output (functions as an output pin)"]
7782        pub const _1: Self = Self::new(1);
7783    }
7784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7785    pub struct Pcr_SPEC;
7786    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7787    impl Pcr {
7788        #[doc = "Disable input pull-up"]
7789        pub const _0: Self = Self::new(0);
7790
7791        #[doc = "Enable input pull-up"]
7792        pub const _1: Self = Self::new(1);
7793    }
7794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7795    pub struct Ncodr_SPEC;
7796    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7797    impl Ncodr {
7798        #[doc = "Output CMOS"]
7799        pub const _0: Self = Self::new(0);
7800
7801        #[doc = "Output NMOS open-drain"]
7802        pub const _1: Self = Self::new(1);
7803    }
7804}
7805#[doc(hidden)]
7806#[derive(Copy, Clone, Eq, PartialEq)]
7807pub struct P200Pfs_SPEC;
7808impl crate::sealed::RegSpec for P200Pfs_SPEC {
7809    type DataType = u32;
7810}
7811
7812#[doc = "Port 200 Pin Function Select Register"]
7813pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
7814
7815impl P200Pfs {
7816    #[doc = "Port Output Data"]
7817    #[inline(always)]
7818    pub fn podr(
7819        self,
7820    ) -> crate::common::RegisterField<
7821        0,
7822        0x1,
7823        1,
7824        0,
7825        p200pfs::Podr,
7826        p200pfs::Podr,
7827        P200Pfs_SPEC,
7828        crate::common::RW,
7829    > {
7830        crate::common::RegisterField::<
7831            0,
7832            0x1,
7833            1,
7834            0,
7835            p200pfs::Podr,
7836            p200pfs::Podr,
7837            P200Pfs_SPEC,
7838            crate::common::RW,
7839        >::from_register(self, 0)
7840    }
7841
7842    #[doc = "Port State"]
7843    #[inline(always)]
7844    pub fn pidr(
7845        self,
7846    ) -> crate::common::RegisterField<
7847        1,
7848        0x1,
7849        1,
7850        0,
7851        p200pfs::Pidr,
7852        p200pfs::Pidr,
7853        P200Pfs_SPEC,
7854        crate::common::R,
7855    > {
7856        crate::common::RegisterField::<
7857            1,
7858            0x1,
7859            1,
7860            0,
7861            p200pfs::Pidr,
7862            p200pfs::Pidr,
7863            P200Pfs_SPEC,
7864            crate::common::R,
7865        >::from_register(self, 0)
7866    }
7867
7868    #[doc = "Port Direction"]
7869    #[inline(always)]
7870    pub fn pdr(
7871        self,
7872    ) -> crate::common::RegisterField<
7873        2,
7874        0x1,
7875        1,
7876        0,
7877        p200pfs::Pdr,
7878        p200pfs::Pdr,
7879        P200Pfs_SPEC,
7880        crate::common::RW,
7881    > {
7882        crate::common::RegisterField::<
7883            2,
7884            0x1,
7885            1,
7886            0,
7887            p200pfs::Pdr,
7888            p200pfs::Pdr,
7889            P200Pfs_SPEC,
7890            crate::common::RW,
7891        >::from_register(self, 0)
7892    }
7893
7894    #[doc = "Pull-up Control"]
7895    #[inline(always)]
7896    pub fn pcr(
7897        self,
7898    ) -> crate::common::RegisterField<
7899        4,
7900        0x1,
7901        1,
7902        0,
7903        p200pfs::Pcr,
7904        p200pfs::Pcr,
7905        P200Pfs_SPEC,
7906        crate::common::RW,
7907    > {
7908        crate::common::RegisterField::<
7909            4,
7910            0x1,
7911            1,
7912            0,
7913            p200pfs::Pcr,
7914            p200pfs::Pcr,
7915            P200Pfs_SPEC,
7916            crate::common::RW,
7917        >::from_register(self, 0)
7918    }
7919
7920    #[doc = "N-Channel Open-Drain Control"]
7921    #[inline(always)]
7922    pub fn ncodr(
7923        self,
7924    ) -> crate::common::RegisterField<
7925        6,
7926        0x1,
7927        1,
7928        0,
7929        p200pfs::Ncodr,
7930        p200pfs::Ncodr,
7931        P200Pfs_SPEC,
7932        crate::common::RW,
7933    > {
7934        crate::common::RegisterField::<
7935            6,
7936            0x1,
7937            1,
7938            0,
7939            p200pfs::Ncodr,
7940            p200pfs::Ncodr,
7941            P200Pfs_SPEC,
7942            crate::common::RW,
7943        >::from_register(self, 0)
7944    }
7945
7946    #[doc = "Event on Falling/Event on Rising"]
7947    #[inline(always)]
7948    pub fn eofr(
7949        self,
7950    ) -> crate::common::RegisterField<
7951        12,
7952        0x3,
7953        1,
7954        0,
7955        p200pfs::Eofr,
7956        p200pfs::Eofr,
7957        P200Pfs_SPEC,
7958        crate::common::RW,
7959    > {
7960        crate::common::RegisterField::<
7961            12,
7962            0x3,
7963            1,
7964            0,
7965            p200pfs::Eofr,
7966            p200pfs::Eofr,
7967            P200Pfs_SPEC,
7968            crate::common::RW,
7969        >::from_register(self, 0)
7970    }
7971
7972    #[doc = "IRQ Input Enable"]
7973    #[inline(always)]
7974    pub fn isel(
7975        self,
7976    ) -> crate::common::RegisterField<
7977        14,
7978        0x1,
7979        1,
7980        0,
7981        p200pfs::Isel,
7982        p200pfs::Isel,
7983        P200Pfs_SPEC,
7984        crate::common::RW,
7985    > {
7986        crate::common::RegisterField::<
7987            14,
7988            0x1,
7989            1,
7990            0,
7991            p200pfs::Isel,
7992            p200pfs::Isel,
7993            P200Pfs_SPEC,
7994            crate::common::RW,
7995        >::from_register(self, 0)
7996    }
7997
7998    #[doc = "Analog Input Enable"]
7999    #[inline(always)]
8000    pub fn asel(
8001        self,
8002    ) -> crate::common::RegisterField<
8003        15,
8004        0x1,
8005        1,
8006        0,
8007        p200pfs::Asel,
8008        p200pfs::Asel,
8009        P200Pfs_SPEC,
8010        crate::common::RW,
8011    > {
8012        crate::common::RegisterField::<
8013            15,
8014            0x1,
8015            1,
8016            0,
8017            p200pfs::Asel,
8018            p200pfs::Asel,
8019            P200Pfs_SPEC,
8020            crate::common::RW,
8021        >::from_register(self, 0)
8022    }
8023
8024    #[doc = "Port Mode Control"]
8025    #[inline(always)]
8026    pub fn pmr(
8027        self,
8028    ) -> crate::common::RegisterField<
8029        16,
8030        0x1,
8031        1,
8032        0,
8033        p200pfs::Pmr,
8034        p200pfs::Pmr,
8035        P200Pfs_SPEC,
8036        crate::common::RW,
8037    > {
8038        crate::common::RegisterField::<
8039            16,
8040            0x1,
8041            1,
8042            0,
8043            p200pfs::Pmr,
8044            p200pfs::Pmr,
8045            P200Pfs_SPEC,
8046            crate::common::RW,
8047        >::from_register(self, 0)
8048    }
8049
8050    #[doc = "Peripheral Select"]
8051    #[inline(always)]
8052    pub fn psel(
8053        self,
8054    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
8055        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
8056    }
8057}
8058impl ::core::default::Default for P200Pfs {
8059    #[inline(always)]
8060    fn default() -> P200Pfs {
8061        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
8062    }
8063}
8064pub mod p200pfs {
8065
8066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8067    pub struct Podr_SPEC;
8068    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8069    impl Podr {
8070        #[doc = "Output low"]
8071        pub const _0: Self = Self::new(0);
8072
8073        #[doc = "Output high"]
8074        pub const _1: Self = Self::new(1);
8075    }
8076    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8077    pub struct Pidr_SPEC;
8078    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8079    impl Pidr {
8080        #[doc = "Low level"]
8081        pub const _0: Self = Self::new(0);
8082
8083        #[doc = "High level"]
8084        pub const _1: Self = Self::new(1);
8085    }
8086    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8087    pub struct Pdr_SPEC;
8088    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8089    impl Pdr {
8090        #[doc = "Input (functions as an input pin)"]
8091        pub const _0: Self = Self::new(0);
8092
8093        #[doc = "Output (functions as an output pin)"]
8094        pub const _1: Self = Self::new(1);
8095    }
8096    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8097    pub struct Pcr_SPEC;
8098    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8099    impl Pcr {
8100        #[doc = "Disable input pull-up"]
8101        pub const _0: Self = Self::new(0);
8102
8103        #[doc = "Enable input pull-up"]
8104        pub const _1: Self = Self::new(1);
8105    }
8106    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8107    pub struct Ncodr_SPEC;
8108    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8109    impl Ncodr {
8110        #[doc = "Output CMOS"]
8111        pub const _0: Self = Self::new(0);
8112
8113        #[doc = "Output NMOS open-drain"]
8114        pub const _1: Self = Self::new(1);
8115    }
8116    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8117    pub struct Eofr_SPEC;
8118    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8119    impl Eofr {
8120        #[doc = "Don\'t care"]
8121        pub const _00: Self = Self::new(0);
8122
8123        #[doc = "Detect rising edge"]
8124        pub const _01: Self = Self::new(1);
8125
8126        #[doc = "Detect falling edge"]
8127        pub const _10: Self = Self::new(2);
8128
8129        #[doc = "Detect both edges"]
8130        pub const _11: Self = Self::new(3);
8131    }
8132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8133    pub struct Isel_SPEC;
8134    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8135    impl Isel {
8136        #[doc = "Do not use as IRQn input pin"]
8137        pub const _0: Self = Self::new(0);
8138
8139        #[doc = "Use as IRQn input pin"]
8140        pub const _1: Self = Self::new(1);
8141    }
8142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8143    pub struct Asel_SPEC;
8144    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8145    impl Asel {
8146        #[doc = "Do not use as analog pin"]
8147        pub const _0: Self = Self::new(0);
8148
8149        #[doc = "Use as analog pin"]
8150        pub const _1: Self = Self::new(1);
8151    }
8152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8153    pub struct Pmr_SPEC;
8154    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8155    impl Pmr {
8156        #[doc = "Use as general I/O pin"]
8157        pub const _0: Self = Self::new(0);
8158
8159        #[doc = "Use as I/O port for peripheral functions"]
8160        pub const _1: Self = Self::new(1);
8161    }
8162}
8163#[doc(hidden)]
8164#[derive(Copy, Clone, Eq, PartialEq)]
8165pub struct P200PfsHa_SPEC;
8166impl crate::sealed::RegSpec for P200PfsHa_SPEC {
8167    type DataType = u16;
8168}
8169
8170#[doc = "Port 200 Pin Function Select Register"]
8171pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
8172
8173impl P200PfsHa {
8174    #[doc = "Port Output Data"]
8175    #[inline(always)]
8176    pub fn podr(
8177        self,
8178    ) -> crate::common::RegisterField<
8179        0,
8180        0x1,
8181        1,
8182        0,
8183        p200pfs_ha::Podr,
8184        p200pfs_ha::Podr,
8185        P200PfsHa_SPEC,
8186        crate::common::RW,
8187    > {
8188        crate::common::RegisterField::<
8189            0,
8190            0x1,
8191            1,
8192            0,
8193            p200pfs_ha::Podr,
8194            p200pfs_ha::Podr,
8195            P200PfsHa_SPEC,
8196            crate::common::RW,
8197        >::from_register(self, 0)
8198    }
8199
8200    #[doc = "Port State"]
8201    #[inline(always)]
8202    pub fn pidr(
8203        self,
8204    ) -> crate::common::RegisterField<
8205        1,
8206        0x1,
8207        1,
8208        0,
8209        p200pfs_ha::Pidr,
8210        p200pfs_ha::Pidr,
8211        P200PfsHa_SPEC,
8212        crate::common::R,
8213    > {
8214        crate::common::RegisterField::<
8215            1,
8216            0x1,
8217            1,
8218            0,
8219            p200pfs_ha::Pidr,
8220            p200pfs_ha::Pidr,
8221            P200PfsHa_SPEC,
8222            crate::common::R,
8223        >::from_register(self, 0)
8224    }
8225
8226    #[doc = "Port Direction"]
8227    #[inline(always)]
8228    pub fn pdr(
8229        self,
8230    ) -> crate::common::RegisterField<
8231        2,
8232        0x1,
8233        1,
8234        0,
8235        p200pfs_ha::Pdr,
8236        p200pfs_ha::Pdr,
8237        P200PfsHa_SPEC,
8238        crate::common::RW,
8239    > {
8240        crate::common::RegisterField::<
8241            2,
8242            0x1,
8243            1,
8244            0,
8245            p200pfs_ha::Pdr,
8246            p200pfs_ha::Pdr,
8247            P200PfsHa_SPEC,
8248            crate::common::RW,
8249        >::from_register(self, 0)
8250    }
8251
8252    #[doc = "Pull-up Control"]
8253    #[inline(always)]
8254    pub fn pcr(
8255        self,
8256    ) -> crate::common::RegisterField<
8257        4,
8258        0x1,
8259        1,
8260        0,
8261        p200pfs_ha::Pcr,
8262        p200pfs_ha::Pcr,
8263        P200PfsHa_SPEC,
8264        crate::common::RW,
8265    > {
8266        crate::common::RegisterField::<
8267            4,
8268            0x1,
8269            1,
8270            0,
8271            p200pfs_ha::Pcr,
8272            p200pfs_ha::Pcr,
8273            P200PfsHa_SPEC,
8274            crate::common::RW,
8275        >::from_register(self, 0)
8276    }
8277
8278    #[doc = "N-Channel Open-Drain Control"]
8279    #[inline(always)]
8280    pub fn ncodr(
8281        self,
8282    ) -> crate::common::RegisterField<
8283        6,
8284        0x1,
8285        1,
8286        0,
8287        p200pfs_ha::Ncodr,
8288        p200pfs_ha::Ncodr,
8289        P200PfsHa_SPEC,
8290        crate::common::RW,
8291    > {
8292        crate::common::RegisterField::<
8293            6,
8294            0x1,
8295            1,
8296            0,
8297            p200pfs_ha::Ncodr,
8298            p200pfs_ha::Ncodr,
8299            P200PfsHa_SPEC,
8300            crate::common::RW,
8301        >::from_register(self, 0)
8302    }
8303
8304    #[doc = "Event on Falling/Event on Rising"]
8305    #[inline(always)]
8306    pub fn eofr(
8307        self,
8308    ) -> crate::common::RegisterField<
8309        12,
8310        0x3,
8311        1,
8312        0,
8313        p200pfs_ha::Eofr,
8314        p200pfs_ha::Eofr,
8315        P200PfsHa_SPEC,
8316        crate::common::RW,
8317    > {
8318        crate::common::RegisterField::<
8319            12,
8320            0x3,
8321            1,
8322            0,
8323            p200pfs_ha::Eofr,
8324            p200pfs_ha::Eofr,
8325            P200PfsHa_SPEC,
8326            crate::common::RW,
8327        >::from_register(self, 0)
8328    }
8329
8330    #[doc = "IRQ Input Enable"]
8331    #[inline(always)]
8332    pub fn isel(
8333        self,
8334    ) -> crate::common::RegisterField<
8335        14,
8336        0x1,
8337        1,
8338        0,
8339        p200pfs_ha::Isel,
8340        p200pfs_ha::Isel,
8341        P200PfsHa_SPEC,
8342        crate::common::RW,
8343    > {
8344        crate::common::RegisterField::<
8345            14,
8346            0x1,
8347            1,
8348            0,
8349            p200pfs_ha::Isel,
8350            p200pfs_ha::Isel,
8351            P200PfsHa_SPEC,
8352            crate::common::RW,
8353        >::from_register(self, 0)
8354    }
8355
8356    #[doc = "Analog Input Enable"]
8357    #[inline(always)]
8358    pub fn asel(
8359        self,
8360    ) -> crate::common::RegisterField<
8361        15,
8362        0x1,
8363        1,
8364        0,
8365        p200pfs_ha::Asel,
8366        p200pfs_ha::Asel,
8367        P200PfsHa_SPEC,
8368        crate::common::RW,
8369    > {
8370        crate::common::RegisterField::<
8371            15,
8372            0x1,
8373            1,
8374            0,
8375            p200pfs_ha::Asel,
8376            p200pfs_ha::Asel,
8377            P200PfsHa_SPEC,
8378            crate::common::RW,
8379        >::from_register(self, 0)
8380    }
8381}
8382impl ::core::default::Default for P200PfsHa {
8383    #[inline(always)]
8384    fn default() -> P200PfsHa {
8385        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
8386    }
8387}
8388pub mod p200pfs_ha {
8389
8390    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8391    pub struct Podr_SPEC;
8392    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8393    impl Podr {
8394        #[doc = "Output low"]
8395        pub const _0: Self = Self::new(0);
8396
8397        #[doc = "Output high"]
8398        pub const _1: Self = Self::new(1);
8399    }
8400    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8401    pub struct Pidr_SPEC;
8402    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8403    impl Pidr {
8404        #[doc = "Low level"]
8405        pub const _0: Self = Self::new(0);
8406
8407        #[doc = "High level"]
8408        pub const _1: Self = Self::new(1);
8409    }
8410    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8411    pub struct Pdr_SPEC;
8412    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8413    impl Pdr {
8414        #[doc = "Input (functions as an input pin)"]
8415        pub const _0: Self = Self::new(0);
8416
8417        #[doc = "Output (functions as an output pin)"]
8418        pub const _1: Self = Self::new(1);
8419    }
8420    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8421    pub struct Pcr_SPEC;
8422    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8423    impl Pcr {
8424        #[doc = "Disable input pull-up"]
8425        pub const _0: Self = Self::new(0);
8426
8427        #[doc = "Enable input pull-up"]
8428        pub const _1: Self = Self::new(1);
8429    }
8430    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8431    pub struct Ncodr_SPEC;
8432    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8433    impl Ncodr {
8434        #[doc = "Output CMOS"]
8435        pub const _0: Self = Self::new(0);
8436
8437        #[doc = "Output NMOS open-drain"]
8438        pub const _1: Self = Self::new(1);
8439    }
8440    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8441    pub struct Eofr_SPEC;
8442    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8443    impl Eofr {
8444        #[doc = "Don\'t care"]
8445        pub const _00: Self = Self::new(0);
8446
8447        #[doc = "Detect rising edge"]
8448        pub const _01: Self = Self::new(1);
8449
8450        #[doc = "Detect falling edge"]
8451        pub const _10: Self = Self::new(2);
8452
8453        #[doc = "Detect both edges"]
8454        pub const _11: Self = Self::new(3);
8455    }
8456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8457    pub struct Isel_SPEC;
8458    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8459    impl Isel {
8460        #[doc = "Do not use as IRQn input pin"]
8461        pub const _0: Self = Self::new(0);
8462
8463        #[doc = "Use as IRQn input pin"]
8464        pub const _1: Self = Self::new(1);
8465    }
8466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8467    pub struct Asel_SPEC;
8468    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8469    impl Asel {
8470        #[doc = "Do not use as analog pin"]
8471        pub const _0: Self = Self::new(0);
8472
8473        #[doc = "Use as analog pin"]
8474        pub const _1: Self = Self::new(1);
8475    }
8476}
8477#[doc(hidden)]
8478#[derive(Copy, Clone, Eq, PartialEq)]
8479pub struct P200PfsBy_SPEC;
8480impl crate::sealed::RegSpec for P200PfsBy_SPEC {
8481    type DataType = u8;
8482}
8483
8484#[doc = "Port 200 Pin Function Select Register"]
8485pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
8486
8487impl P200PfsBy {
8488    #[doc = "Port Output Data"]
8489    #[inline(always)]
8490    pub fn podr(
8491        self,
8492    ) -> crate::common::RegisterField<
8493        0,
8494        0x1,
8495        1,
8496        0,
8497        p200pfs_by::Podr,
8498        p200pfs_by::Podr,
8499        P200PfsBy_SPEC,
8500        crate::common::RW,
8501    > {
8502        crate::common::RegisterField::<
8503            0,
8504            0x1,
8505            1,
8506            0,
8507            p200pfs_by::Podr,
8508            p200pfs_by::Podr,
8509            P200PfsBy_SPEC,
8510            crate::common::RW,
8511        >::from_register(self, 0)
8512    }
8513
8514    #[doc = "Port State"]
8515    #[inline(always)]
8516    pub fn pidr(
8517        self,
8518    ) -> crate::common::RegisterField<
8519        1,
8520        0x1,
8521        1,
8522        0,
8523        p200pfs_by::Pidr,
8524        p200pfs_by::Pidr,
8525        P200PfsBy_SPEC,
8526        crate::common::R,
8527    > {
8528        crate::common::RegisterField::<
8529            1,
8530            0x1,
8531            1,
8532            0,
8533            p200pfs_by::Pidr,
8534            p200pfs_by::Pidr,
8535            P200PfsBy_SPEC,
8536            crate::common::R,
8537        >::from_register(self, 0)
8538    }
8539
8540    #[doc = "Port Direction"]
8541    #[inline(always)]
8542    pub fn pdr(
8543        self,
8544    ) -> crate::common::RegisterField<
8545        2,
8546        0x1,
8547        1,
8548        0,
8549        p200pfs_by::Pdr,
8550        p200pfs_by::Pdr,
8551        P200PfsBy_SPEC,
8552        crate::common::RW,
8553    > {
8554        crate::common::RegisterField::<
8555            2,
8556            0x1,
8557            1,
8558            0,
8559            p200pfs_by::Pdr,
8560            p200pfs_by::Pdr,
8561            P200PfsBy_SPEC,
8562            crate::common::RW,
8563        >::from_register(self, 0)
8564    }
8565
8566    #[doc = "Pull-up Control"]
8567    #[inline(always)]
8568    pub fn pcr(
8569        self,
8570    ) -> crate::common::RegisterField<
8571        4,
8572        0x1,
8573        1,
8574        0,
8575        p200pfs_by::Pcr,
8576        p200pfs_by::Pcr,
8577        P200PfsBy_SPEC,
8578        crate::common::RW,
8579    > {
8580        crate::common::RegisterField::<
8581            4,
8582            0x1,
8583            1,
8584            0,
8585            p200pfs_by::Pcr,
8586            p200pfs_by::Pcr,
8587            P200PfsBy_SPEC,
8588            crate::common::RW,
8589        >::from_register(self, 0)
8590    }
8591
8592    #[doc = "N-Channel Open-Drain Control"]
8593    #[inline(always)]
8594    pub fn ncodr(
8595        self,
8596    ) -> crate::common::RegisterField<
8597        6,
8598        0x1,
8599        1,
8600        0,
8601        p200pfs_by::Ncodr,
8602        p200pfs_by::Ncodr,
8603        P200PfsBy_SPEC,
8604        crate::common::RW,
8605    > {
8606        crate::common::RegisterField::<
8607            6,
8608            0x1,
8609            1,
8610            0,
8611            p200pfs_by::Ncodr,
8612            p200pfs_by::Ncodr,
8613            P200PfsBy_SPEC,
8614            crate::common::RW,
8615        >::from_register(self, 0)
8616    }
8617}
8618impl ::core::default::Default for P200PfsBy {
8619    #[inline(always)]
8620    fn default() -> P200PfsBy {
8621        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
8622    }
8623}
8624pub mod p200pfs_by {
8625
8626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8627    pub struct Podr_SPEC;
8628    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8629    impl Podr {
8630        #[doc = "Output low"]
8631        pub const _0: Self = Self::new(0);
8632
8633        #[doc = "Output high"]
8634        pub const _1: Self = Self::new(1);
8635    }
8636    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8637    pub struct Pidr_SPEC;
8638    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8639    impl Pidr {
8640        #[doc = "Low level"]
8641        pub const _0: Self = Self::new(0);
8642
8643        #[doc = "High level"]
8644        pub const _1: Self = Self::new(1);
8645    }
8646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8647    pub struct Pdr_SPEC;
8648    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8649    impl Pdr {
8650        #[doc = "Input (functions as an input pin)"]
8651        pub const _0: Self = Self::new(0);
8652
8653        #[doc = "Output (functions as an output pin)"]
8654        pub const _1: Self = Self::new(1);
8655    }
8656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8657    pub struct Pcr_SPEC;
8658    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8659    impl Pcr {
8660        #[doc = "Disable input pull-up"]
8661        pub const _0: Self = Self::new(0);
8662
8663        #[doc = "Enable input pull-up"]
8664        pub const _1: Self = Self::new(1);
8665    }
8666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8667    pub struct Ncodr_SPEC;
8668    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8669    impl Ncodr {
8670        #[doc = "Output CMOS"]
8671        pub const _0: Self = Self::new(0);
8672
8673        #[doc = "Output NMOS open-drain"]
8674        pub const _1: Self = Self::new(1);
8675    }
8676}
8677#[doc(hidden)]
8678#[derive(Copy, Clone, Eq, PartialEq)]
8679pub struct P201Pfs_SPEC;
8680impl crate::sealed::RegSpec for P201Pfs_SPEC {
8681    type DataType = u32;
8682}
8683
8684#[doc = "Port 201 Pin Function Select Register"]
8685pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
8686
8687impl P201Pfs {
8688    #[doc = "Port Output Data"]
8689    #[inline(always)]
8690    pub fn podr(
8691        self,
8692    ) -> crate::common::RegisterField<
8693        0,
8694        0x1,
8695        1,
8696        0,
8697        p201pfs::Podr,
8698        p201pfs::Podr,
8699        P201Pfs_SPEC,
8700        crate::common::RW,
8701    > {
8702        crate::common::RegisterField::<
8703            0,
8704            0x1,
8705            1,
8706            0,
8707            p201pfs::Podr,
8708            p201pfs::Podr,
8709            P201Pfs_SPEC,
8710            crate::common::RW,
8711        >::from_register(self, 0)
8712    }
8713
8714    #[doc = "Port State"]
8715    #[inline(always)]
8716    pub fn pidr(
8717        self,
8718    ) -> crate::common::RegisterField<
8719        1,
8720        0x1,
8721        1,
8722        0,
8723        p201pfs::Pidr,
8724        p201pfs::Pidr,
8725        P201Pfs_SPEC,
8726        crate::common::R,
8727    > {
8728        crate::common::RegisterField::<
8729            1,
8730            0x1,
8731            1,
8732            0,
8733            p201pfs::Pidr,
8734            p201pfs::Pidr,
8735            P201Pfs_SPEC,
8736            crate::common::R,
8737        >::from_register(self, 0)
8738    }
8739
8740    #[doc = "Port Direction"]
8741    #[inline(always)]
8742    pub fn pdr(
8743        self,
8744    ) -> crate::common::RegisterField<
8745        2,
8746        0x1,
8747        1,
8748        0,
8749        p201pfs::Pdr,
8750        p201pfs::Pdr,
8751        P201Pfs_SPEC,
8752        crate::common::RW,
8753    > {
8754        crate::common::RegisterField::<
8755            2,
8756            0x1,
8757            1,
8758            0,
8759            p201pfs::Pdr,
8760            p201pfs::Pdr,
8761            P201Pfs_SPEC,
8762            crate::common::RW,
8763        >::from_register(self, 0)
8764    }
8765
8766    #[doc = "Pull-up Control"]
8767    #[inline(always)]
8768    pub fn pcr(
8769        self,
8770    ) -> crate::common::RegisterField<
8771        4,
8772        0x1,
8773        1,
8774        0,
8775        p201pfs::Pcr,
8776        p201pfs::Pcr,
8777        P201Pfs_SPEC,
8778        crate::common::RW,
8779    > {
8780        crate::common::RegisterField::<
8781            4,
8782            0x1,
8783            1,
8784            0,
8785            p201pfs::Pcr,
8786            p201pfs::Pcr,
8787            P201Pfs_SPEC,
8788            crate::common::RW,
8789        >::from_register(self, 0)
8790    }
8791
8792    #[doc = "N-Channel Open-Drain Control"]
8793    #[inline(always)]
8794    pub fn ncodr(
8795        self,
8796    ) -> crate::common::RegisterField<
8797        6,
8798        0x1,
8799        1,
8800        0,
8801        p201pfs::Ncodr,
8802        p201pfs::Ncodr,
8803        P201Pfs_SPEC,
8804        crate::common::RW,
8805    > {
8806        crate::common::RegisterField::<
8807            6,
8808            0x1,
8809            1,
8810            0,
8811            p201pfs::Ncodr,
8812            p201pfs::Ncodr,
8813            P201Pfs_SPEC,
8814            crate::common::RW,
8815        >::from_register(self, 0)
8816    }
8817
8818    #[doc = "Event on Falling/Event on Rising"]
8819    #[inline(always)]
8820    pub fn eofr(
8821        self,
8822    ) -> crate::common::RegisterField<
8823        12,
8824        0x3,
8825        1,
8826        0,
8827        p201pfs::Eofr,
8828        p201pfs::Eofr,
8829        P201Pfs_SPEC,
8830        crate::common::RW,
8831    > {
8832        crate::common::RegisterField::<
8833            12,
8834            0x3,
8835            1,
8836            0,
8837            p201pfs::Eofr,
8838            p201pfs::Eofr,
8839            P201Pfs_SPEC,
8840            crate::common::RW,
8841        >::from_register(self, 0)
8842    }
8843
8844    #[doc = "IRQ Input Enable"]
8845    #[inline(always)]
8846    pub fn isel(
8847        self,
8848    ) -> crate::common::RegisterField<
8849        14,
8850        0x1,
8851        1,
8852        0,
8853        p201pfs::Isel,
8854        p201pfs::Isel,
8855        P201Pfs_SPEC,
8856        crate::common::RW,
8857    > {
8858        crate::common::RegisterField::<
8859            14,
8860            0x1,
8861            1,
8862            0,
8863            p201pfs::Isel,
8864            p201pfs::Isel,
8865            P201Pfs_SPEC,
8866            crate::common::RW,
8867        >::from_register(self, 0)
8868    }
8869
8870    #[doc = "Analog Input Enable"]
8871    #[inline(always)]
8872    pub fn asel(
8873        self,
8874    ) -> crate::common::RegisterField<
8875        15,
8876        0x1,
8877        1,
8878        0,
8879        p201pfs::Asel,
8880        p201pfs::Asel,
8881        P201Pfs_SPEC,
8882        crate::common::RW,
8883    > {
8884        crate::common::RegisterField::<
8885            15,
8886            0x1,
8887            1,
8888            0,
8889            p201pfs::Asel,
8890            p201pfs::Asel,
8891            P201Pfs_SPEC,
8892            crate::common::RW,
8893        >::from_register(self, 0)
8894    }
8895
8896    #[doc = "Port Mode Control"]
8897    #[inline(always)]
8898    pub fn pmr(
8899        self,
8900    ) -> crate::common::RegisterField<
8901        16,
8902        0x1,
8903        1,
8904        0,
8905        p201pfs::Pmr,
8906        p201pfs::Pmr,
8907        P201Pfs_SPEC,
8908        crate::common::RW,
8909    > {
8910        crate::common::RegisterField::<
8911            16,
8912            0x1,
8913            1,
8914            0,
8915            p201pfs::Pmr,
8916            p201pfs::Pmr,
8917            P201Pfs_SPEC,
8918            crate::common::RW,
8919        >::from_register(self, 0)
8920    }
8921
8922    #[doc = "Peripheral Select"]
8923    #[inline(always)]
8924    pub fn psel(
8925        self,
8926    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
8927        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
8928    }
8929}
8930impl ::core::default::Default for P201Pfs {
8931    #[inline(always)]
8932    fn default() -> P201Pfs {
8933        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
8934    }
8935}
8936pub mod p201pfs {
8937
8938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8939    pub struct Podr_SPEC;
8940    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8941    impl Podr {
8942        #[doc = "Output low"]
8943        pub const _0: Self = Self::new(0);
8944
8945        #[doc = "Output high"]
8946        pub const _1: Self = Self::new(1);
8947    }
8948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8949    pub struct Pidr_SPEC;
8950    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8951    impl Pidr {
8952        #[doc = "Low level"]
8953        pub const _0: Self = Self::new(0);
8954
8955        #[doc = "High level"]
8956        pub const _1: Self = Self::new(1);
8957    }
8958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8959    pub struct Pdr_SPEC;
8960    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8961    impl Pdr {
8962        #[doc = "Input (functions as an input pin)"]
8963        pub const _0: Self = Self::new(0);
8964
8965        #[doc = "Output (functions as an output pin)"]
8966        pub const _1: Self = Self::new(1);
8967    }
8968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8969    pub struct Pcr_SPEC;
8970    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8971    impl Pcr {
8972        #[doc = "Disable input pull-up"]
8973        pub const _0: Self = Self::new(0);
8974
8975        #[doc = "Enable input pull-up"]
8976        pub const _1: Self = Self::new(1);
8977    }
8978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8979    pub struct Ncodr_SPEC;
8980    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8981    impl Ncodr {
8982        #[doc = "Output CMOS"]
8983        pub const _0: Self = Self::new(0);
8984
8985        #[doc = "Output NMOS open-drain"]
8986        pub const _1: Self = Self::new(1);
8987    }
8988    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8989    pub struct Eofr_SPEC;
8990    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8991    impl Eofr {
8992        #[doc = "Don\'t care"]
8993        pub const _00: Self = Self::new(0);
8994
8995        #[doc = "Detect rising edge"]
8996        pub const _01: Self = Self::new(1);
8997
8998        #[doc = "Detect falling edge"]
8999        pub const _10: Self = Self::new(2);
9000
9001        #[doc = "Detect both edges"]
9002        pub const _11: Self = Self::new(3);
9003    }
9004    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9005    pub struct Isel_SPEC;
9006    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9007    impl Isel {
9008        #[doc = "Do not use as IRQn input pin"]
9009        pub const _0: Self = Self::new(0);
9010
9011        #[doc = "Use as IRQn input pin"]
9012        pub const _1: Self = Self::new(1);
9013    }
9014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9015    pub struct Asel_SPEC;
9016    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9017    impl Asel {
9018        #[doc = "Do not use as analog pin"]
9019        pub const _0: Self = Self::new(0);
9020
9021        #[doc = "Use as analog pin"]
9022        pub const _1: Self = Self::new(1);
9023    }
9024    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9025    pub struct Pmr_SPEC;
9026    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9027    impl Pmr {
9028        #[doc = "Use as general I/O pin"]
9029        pub const _0: Self = Self::new(0);
9030
9031        #[doc = "Use as I/O port for peripheral functions"]
9032        pub const _1: Self = Self::new(1);
9033    }
9034}
9035#[doc(hidden)]
9036#[derive(Copy, Clone, Eq, PartialEq)]
9037pub struct P201PfsHa_SPEC;
9038impl crate::sealed::RegSpec for P201PfsHa_SPEC {
9039    type DataType = u16;
9040}
9041
9042#[doc = "Port 201 Pin Function Select Register"]
9043pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
9044
9045impl P201PfsHa {
9046    #[doc = "Port Output Data"]
9047    #[inline(always)]
9048    pub fn podr(
9049        self,
9050    ) -> crate::common::RegisterField<
9051        0,
9052        0x1,
9053        1,
9054        0,
9055        p201pfs_ha::Podr,
9056        p201pfs_ha::Podr,
9057        P201PfsHa_SPEC,
9058        crate::common::RW,
9059    > {
9060        crate::common::RegisterField::<
9061            0,
9062            0x1,
9063            1,
9064            0,
9065            p201pfs_ha::Podr,
9066            p201pfs_ha::Podr,
9067            P201PfsHa_SPEC,
9068            crate::common::RW,
9069        >::from_register(self, 0)
9070    }
9071
9072    #[doc = "Port State"]
9073    #[inline(always)]
9074    pub fn pidr(
9075        self,
9076    ) -> crate::common::RegisterField<
9077        1,
9078        0x1,
9079        1,
9080        0,
9081        p201pfs_ha::Pidr,
9082        p201pfs_ha::Pidr,
9083        P201PfsHa_SPEC,
9084        crate::common::R,
9085    > {
9086        crate::common::RegisterField::<
9087            1,
9088            0x1,
9089            1,
9090            0,
9091            p201pfs_ha::Pidr,
9092            p201pfs_ha::Pidr,
9093            P201PfsHa_SPEC,
9094            crate::common::R,
9095        >::from_register(self, 0)
9096    }
9097
9098    #[doc = "Port Direction"]
9099    #[inline(always)]
9100    pub fn pdr(
9101        self,
9102    ) -> crate::common::RegisterField<
9103        2,
9104        0x1,
9105        1,
9106        0,
9107        p201pfs_ha::Pdr,
9108        p201pfs_ha::Pdr,
9109        P201PfsHa_SPEC,
9110        crate::common::RW,
9111    > {
9112        crate::common::RegisterField::<
9113            2,
9114            0x1,
9115            1,
9116            0,
9117            p201pfs_ha::Pdr,
9118            p201pfs_ha::Pdr,
9119            P201PfsHa_SPEC,
9120            crate::common::RW,
9121        >::from_register(self, 0)
9122    }
9123
9124    #[doc = "Pull-up Control"]
9125    #[inline(always)]
9126    pub fn pcr(
9127        self,
9128    ) -> crate::common::RegisterField<
9129        4,
9130        0x1,
9131        1,
9132        0,
9133        p201pfs_ha::Pcr,
9134        p201pfs_ha::Pcr,
9135        P201PfsHa_SPEC,
9136        crate::common::RW,
9137    > {
9138        crate::common::RegisterField::<
9139            4,
9140            0x1,
9141            1,
9142            0,
9143            p201pfs_ha::Pcr,
9144            p201pfs_ha::Pcr,
9145            P201PfsHa_SPEC,
9146            crate::common::RW,
9147        >::from_register(self, 0)
9148    }
9149
9150    #[doc = "N-Channel Open-Drain Control"]
9151    #[inline(always)]
9152    pub fn ncodr(
9153        self,
9154    ) -> crate::common::RegisterField<
9155        6,
9156        0x1,
9157        1,
9158        0,
9159        p201pfs_ha::Ncodr,
9160        p201pfs_ha::Ncodr,
9161        P201PfsHa_SPEC,
9162        crate::common::RW,
9163    > {
9164        crate::common::RegisterField::<
9165            6,
9166            0x1,
9167            1,
9168            0,
9169            p201pfs_ha::Ncodr,
9170            p201pfs_ha::Ncodr,
9171            P201PfsHa_SPEC,
9172            crate::common::RW,
9173        >::from_register(self, 0)
9174    }
9175
9176    #[doc = "Event on Falling/Event on Rising"]
9177    #[inline(always)]
9178    pub fn eofr(
9179        self,
9180    ) -> crate::common::RegisterField<
9181        12,
9182        0x3,
9183        1,
9184        0,
9185        p201pfs_ha::Eofr,
9186        p201pfs_ha::Eofr,
9187        P201PfsHa_SPEC,
9188        crate::common::RW,
9189    > {
9190        crate::common::RegisterField::<
9191            12,
9192            0x3,
9193            1,
9194            0,
9195            p201pfs_ha::Eofr,
9196            p201pfs_ha::Eofr,
9197            P201PfsHa_SPEC,
9198            crate::common::RW,
9199        >::from_register(self, 0)
9200    }
9201
9202    #[doc = "IRQ Input Enable"]
9203    #[inline(always)]
9204    pub fn isel(
9205        self,
9206    ) -> crate::common::RegisterField<
9207        14,
9208        0x1,
9209        1,
9210        0,
9211        p201pfs_ha::Isel,
9212        p201pfs_ha::Isel,
9213        P201PfsHa_SPEC,
9214        crate::common::RW,
9215    > {
9216        crate::common::RegisterField::<
9217            14,
9218            0x1,
9219            1,
9220            0,
9221            p201pfs_ha::Isel,
9222            p201pfs_ha::Isel,
9223            P201PfsHa_SPEC,
9224            crate::common::RW,
9225        >::from_register(self, 0)
9226    }
9227
9228    #[doc = "Analog Input Enable"]
9229    #[inline(always)]
9230    pub fn asel(
9231        self,
9232    ) -> crate::common::RegisterField<
9233        15,
9234        0x1,
9235        1,
9236        0,
9237        p201pfs_ha::Asel,
9238        p201pfs_ha::Asel,
9239        P201PfsHa_SPEC,
9240        crate::common::RW,
9241    > {
9242        crate::common::RegisterField::<
9243            15,
9244            0x1,
9245            1,
9246            0,
9247            p201pfs_ha::Asel,
9248            p201pfs_ha::Asel,
9249            P201PfsHa_SPEC,
9250            crate::common::RW,
9251        >::from_register(self, 0)
9252    }
9253}
9254impl ::core::default::Default for P201PfsHa {
9255    #[inline(always)]
9256    fn default() -> P201PfsHa {
9257        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
9258    }
9259}
9260pub mod p201pfs_ha {
9261
9262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9263    pub struct Podr_SPEC;
9264    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9265    impl Podr {
9266        #[doc = "Output low"]
9267        pub const _0: Self = Self::new(0);
9268
9269        #[doc = "Output high"]
9270        pub const _1: Self = Self::new(1);
9271    }
9272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9273    pub struct Pidr_SPEC;
9274    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9275    impl Pidr {
9276        #[doc = "Low level"]
9277        pub const _0: Self = Self::new(0);
9278
9279        #[doc = "High level"]
9280        pub const _1: Self = Self::new(1);
9281    }
9282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9283    pub struct Pdr_SPEC;
9284    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9285    impl Pdr {
9286        #[doc = "Input (functions as an input pin)"]
9287        pub const _0: Self = Self::new(0);
9288
9289        #[doc = "Output (functions as an output pin)"]
9290        pub const _1: Self = Self::new(1);
9291    }
9292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9293    pub struct Pcr_SPEC;
9294    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9295    impl Pcr {
9296        #[doc = "Disable input pull-up"]
9297        pub const _0: Self = Self::new(0);
9298
9299        #[doc = "Enable input pull-up"]
9300        pub const _1: Self = Self::new(1);
9301    }
9302    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9303    pub struct Ncodr_SPEC;
9304    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9305    impl Ncodr {
9306        #[doc = "Output CMOS"]
9307        pub const _0: Self = Self::new(0);
9308
9309        #[doc = "Output NMOS open-drain"]
9310        pub const _1: Self = Self::new(1);
9311    }
9312    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9313    pub struct Eofr_SPEC;
9314    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9315    impl Eofr {
9316        #[doc = "Don\'t care"]
9317        pub const _00: Self = Self::new(0);
9318
9319        #[doc = "Detect rising edge"]
9320        pub const _01: Self = Self::new(1);
9321
9322        #[doc = "Detect falling edge"]
9323        pub const _10: Self = Self::new(2);
9324
9325        #[doc = "Detect both edges"]
9326        pub const _11: Self = Self::new(3);
9327    }
9328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9329    pub struct Isel_SPEC;
9330    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9331    impl Isel {
9332        #[doc = "Do not use as IRQn input pin"]
9333        pub const _0: Self = Self::new(0);
9334
9335        #[doc = "Use as IRQn input pin"]
9336        pub const _1: Self = Self::new(1);
9337    }
9338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9339    pub struct Asel_SPEC;
9340    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9341    impl Asel {
9342        #[doc = "Do not use as analog pin"]
9343        pub const _0: Self = Self::new(0);
9344
9345        #[doc = "Use as analog pin"]
9346        pub const _1: Self = Self::new(1);
9347    }
9348}
9349#[doc(hidden)]
9350#[derive(Copy, Clone, Eq, PartialEq)]
9351pub struct P201PfsBy_SPEC;
9352impl crate::sealed::RegSpec for P201PfsBy_SPEC {
9353    type DataType = u8;
9354}
9355
9356#[doc = "Port 201 Pin Function Select Register"]
9357pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
9358
9359impl P201PfsBy {
9360    #[doc = "Port Output Data"]
9361    #[inline(always)]
9362    pub fn podr(
9363        self,
9364    ) -> crate::common::RegisterField<
9365        0,
9366        0x1,
9367        1,
9368        0,
9369        p201pfs_by::Podr,
9370        p201pfs_by::Podr,
9371        P201PfsBy_SPEC,
9372        crate::common::RW,
9373    > {
9374        crate::common::RegisterField::<
9375            0,
9376            0x1,
9377            1,
9378            0,
9379            p201pfs_by::Podr,
9380            p201pfs_by::Podr,
9381            P201PfsBy_SPEC,
9382            crate::common::RW,
9383        >::from_register(self, 0)
9384    }
9385
9386    #[doc = "Port State"]
9387    #[inline(always)]
9388    pub fn pidr(
9389        self,
9390    ) -> crate::common::RegisterField<
9391        1,
9392        0x1,
9393        1,
9394        0,
9395        p201pfs_by::Pidr,
9396        p201pfs_by::Pidr,
9397        P201PfsBy_SPEC,
9398        crate::common::R,
9399    > {
9400        crate::common::RegisterField::<
9401            1,
9402            0x1,
9403            1,
9404            0,
9405            p201pfs_by::Pidr,
9406            p201pfs_by::Pidr,
9407            P201PfsBy_SPEC,
9408            crate::common::R,
9409        >::from_register(self, 0)
9410    }
9411
9412    #[doc = "Port Direction"]
9413    #[inline(always)]
9414    pub fn pdr(
9415        self,
9416    ) -> crate::common::RegisterField<
9417        2,
9418        0x1,
9419        1,
9420        0,
9421        p201pfs_by::Pdr,
9422        p201pfs_by::Pdr,
9423        P201PfsBy_SPEC,
9424        crate::common::RW,
9425    > {
9426        crate::common::RegisterField::<
9427            2,
9428            0x1,
9429            1,
9430            0,
9431            p201pfs_by::Pdr,
9432            p201pfs_by::Pdr,
9433            P201PfsBy_SPEC,
9434            crate::common::RW,
9435        >::from_register(self, 0)
9436    }
9437
9438    #[doc = "Pull-up Control"]
9439    #[inline(always)]
9440    pub fn pcr(
9441        self,
9442    ) -> crate::common::RegisterField<
9443        4,
9444        0x1,
9445        1,
9446        0,
9447        p201pfs_by::Pcr,
9448        p201pfs_by::Pcr,
9449        P201PfsBy_SPEC,
9450        crate::common::RW,
9451    > {
9452        crate::common::RegisterField::<
9453            4,
9454            0x1,
9455            1,
9456            0,
9457            p201pfs_by::Pcr,
9458            p201pfs_by::Pcr,
9459            P201PfsBy_SPEC,
9460            crate::common::RW,
9461        >::from_register(self, 0)
9462    }
9463
9464    #[doc = "N-Channel Open-Drain Control"]
9465    #[inline(always)]
9466    pub fn ncodr(
9467        self,
9468    ) -> crate::common::RegisterField<
9469        6,
9470        0x1,
9471        1,
9472        0,
9473        p201pfs_by::Ncodr,
9474        p201pfs_by::Ncodr,
9475        P201PfsBy_SPEC,
9476        crate::common::RW,
9477    > {
9478        crate::common::RegisterField::<
9479            6,
9480            0x1,
9481            1,
9482            0,
9483            p201pfs_by::Ncodr,
9484            p201pfs_by::Ncodr,
9485            P201PfsBy_SPEC,
9486            crate::common::RW,
9487        >::from_register(self, 0)
9488    }
9489}
9490impl ::core::default::Default for P201PfsBy {
9491    #[inline(always)]
9492    fn default() -> P201PfsBy {
9493        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
9494    }
9495}
9496pub mod p201pfs_by {
9497
9498    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9499    pub struct Podr_SPEC;
9500    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9501    impl Podr {
9502        #[doc = "Output low"]
9503        pub const _0: Self = Self::new(0);
9504
9505        #[doc = "Output high"]
9506        pub const _1: Self = Self::new(1);
9507    }
9508    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9509    pub struct Pidr_SPEC;
9510    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9511    impl Pidr {
9512        #[doc = "Low level"]
9513        pub const _0: Self = Self::new(0);
9514
9515        #[doc = "High level"]
9516        pub const _1: Self = Self::new(1);
9517    }
9518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9519    pub struct Pdr_SPEC;
9520    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9521    impl Pdr {
9522        #[doc = "Input (functions as an input pin)"]
9523        pub const _0: Self = Self::new(0);
9524
9525        #[doc = "Output (functions as an output pin)"]
9526        pub const _1: Self = Self::new(1);
9527    }
9528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9529    pub struct Pcr_SPEC;
9530    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9531    impl Pcr {
9532        #[doc = "Disable input pull-up"]
9533        pub const _0: Self = Self::new(0);
9534
9535        #[doc = "Enable input pull-up"]
9536        pub const _1: Self = Self::new(1);
9537    }
9538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9539    pub struct Ncodr_SPEC;
9540    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9541    impl Ncodr {
9542        #[doc = "Output CMOS"]
9543        pub const _0: Self = Self::new(0);
9544
9545        #[doc = "Output NMOS open-drain"]
9546        pub const _1: Self = Self::new(1);
9547    }
9548}
9549#[doc(hidden)]
9550#[derive(Copy, Clone, Eq, PartialEq)]
9551pub struct P20Pfs_SPEC;
9552impl crate::sealed::RegSpec for P20Pfs_SPEC {
9553    type DataType = u32;
9554}
9555
9556#[doc = "Port 20%s Pin Function Select Register"]
9557pub type P20Pfs = crate::RegValueT<P20Pfs_SPEC>;
9558
9559impl P20Pfs {
9560    #[doc = "Port Output Data"]
9561    #[inline(always)]
9562    pub fn podr(
9563        self,
9564    ) -> crate::common::RegisterField<
9565        0,
9566        0x1,
9567        1,
9568        0,
9569        p20pfs::Podr,
9570        p20pfs::Podr,
9571        P20Pfs_SPEC,
9572        crate::common::RW,
9573    > {
9574        crate::common::RegisterField::<
9575            0,
9576            0x1,
9577            1,
9578            0,
9579            p20pfs::Podr,
9580            p20pfs::Podr,
9581            P20Pfs_SPEC,
9582            crate::common::RW,
9583        >::from_register(self, 0)
9584    }
9585
9586    #[doc = "Port State"]
9587    #[inline(always)]
9588    pub fn pidr(
9589        self,
9590    ) -> crate::common::RegisterField<
9591        1,
9592        0x1,
9593        1,
9594        0,
9595        p20pfs::Pidr,
9596        p20pfs::Pidr,
9597        P20Pfs_SPEC,
9598        crate::common::R,
9599    > {
9600        crate::common::RegisterField::<
9601            1,
9602            0x1,
9603            1,
9604            0,
9605            p20pfs::Pidr,
9606            p20pfs::Pidr,
9607            P20Pfs_SPEC,
9608            crate::common::R,
9609        >::from_register(self, 0)
9610    }
9611
9612    #[doc = "Port Direction"]
9613    #[inline(always)]
9614    pub fn pdr(
9615        self,
9616    ) -> crate::common::RegisterField<
9617        2,
9618        0x1,
9619        1,
9620        0,
9621        p20pfs::Pdr,
9622        p20pfs::Pdr,
9623        P20Pfs_SPEC,
9624        crate::common::RW,
9625    > {
9626        crate::common::RegisterField::<
9627            2,
9628            0x1,
9629            1,
9630            0,
9631            p20pfs::Pdr,
9632            p20pfs::Pdr,
9633            P20Pfs_SPEC,
9634            crate::common::RW,
9635        >::from_register(self, 0)
9636    }
9637
9638    #[doc = "Pull-up Control"]
9639    #[inline(always)]
9640    pub fn pcr(
9641        self,
9642    ) -> crate::common::RegisterField<
9643        4,
9644        0x1,
9645        1,
9646        0,
9647        p20pfs::Pcr,
9648        p20pfs::Pcr,
9649        P20Pfs_SPEC,
9650        crate::common::RW,
9651    > {
9652        crate::common::RegisterField::<
9653            4,
9654            0x1,
9655            1,
9656            0,
9657            p20pfs::Pcr,
9658            p20pfs::Pcr,
9659            P20Pfs_SPEC,
9660            crate::common::RW,
9661        >::from_register(self, 0)
9662    }
9663
9664    #[doc = "N-Channel Open-Drain Control"]
9665    #[inline(always)]
9666    pub fn ncodr(
9667        self,
9668    ) -> crate::common::RegisterField<
9669        6,
9670        0x1,
9671        1,
9672        0,
9673        p20pfs::Ncodr,
9674        p20pfs::Ncodr,
9675        P20Pfs_SPEC,
9676        crate::common::RW,
9677    > {
9678        crate::common::RegisterField::<
9679            6,
9680            0x1,
9681            1,
9682            0,
9683            p20pfs::Ncodr,
9684            p20pfs::Ncodr,
9685            P20Pfs_SPEC,
9686            crate::common::RW,
9687        >::from_register(self, 0)
9688    }
9689
9690    #[doc = "Event on Falling/Event on Rising"]
9691    #[inline(always)]
9692    pub fn eofr(
9693        self,
9694    ) -> crate::common::RegisterField<
9695        12,
9696        0x3,
9697        1,
9698        0,
9699        p20pfs::Eofr,
9700        p20pfs::Eofr,
9701        P20Pfs_SPEC,
9702        crate::common::RW,
9703    > {
9704        crate::common::RegisterField::<
9705            12,
9706            0x3,
9707            1,
9708            0,
9709            p20pfs::Eofr,
9710            p20pfs::Eofr,
9711            P20Pfs_SPEC,
9712            crate::common::RW,
9713        >::from_register(self, 0)
9714    }
9715
9716    #[doc = "IRQ Input Enable"]
9717    #[inline(always)]
9718    pub fn isel(
9719        self,
9720    ) -> crate::common::RegisterField<
9721        14,
9722        0x1,
9723        1,
9724        0,
9725        p20pfs::Isel,
9726        p20pfs::Isel,
9727        P20Pfs_SPEC,
9728        crate::common::RW,
9729    > {
9730        crate::common::RegisterField::<
9731            14,
9732            0x1,
9733            1,
9734            0,
9735            p20pfs::Isel,
9736            p20pfs::Isel,
9737            P20Pfs_SPEC,
9738            crate::common::RW,
9739        >::from_register(self, 0)
9740    }
9741
9742    #[doc = "Analog Input Enable"]
9743    #[inline(always)]
9744    pub fn asel(
9745        self,
9746    ) -> crate::common::RegisterField<
9747        15,
9748        0x1,
9749        1,
9750        0,
9751        p20pfs::Asel,
9752        p20pfs::Asel,
9753        P20Pfs_SPEC,
9754        crate::common::RW,
9755    > {
9756        crate::common::RegisterField::<
9757            15,
9758            0x1,
9759            1,
9760            0,
9761            p20pfs::Asel,
9762            p20pfs::Asel,
9763            P20Pfs_SPEC,
9764            crate::common::RW,
9765        >::from_register(self, 0)
9766    }
9767
9768    #[doc = "Port Mode Control"]
9769    #[inline(always)]
9770    pub fn pmr(
9771        self,
9772    ) -> crate::common::RegisterField<
9773        16,
9774        0x1,
9775        1,
9776        0,
9777        p20pfs::Pmr,
9778        p20pfs::Pmr,
9779        P20Pfs_SPEC,
9780        crate::common::RW,
9781    > {
9782        crate::common::RegisterField::<
9783            16,
9784            0x1,
9785            1,
9786            0,
9787            p20pfs::Pmr,
9788            p20pfs::Pmr,
9789            P20Pfs_SPEC,
9790            crate::common::RW,
9791        >::from_register(self, 0)
9792    }
9793
9794    #[doc = "Peripheral Select"]
9795    #[inline(always)]
9796    pub fn psel(
9797        self,
9798    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P20Pfs_SPEC, crate::common::RW> {
9799        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P20Pfs_SPEC,crate::common::RW>::from_register(self,0)
9800    }
9801}
9802impl ::core::default::Default for P20Pfs {
9803    #[inline(always)]
9804    fn default() -> P20Pfs {
9805        <crate::RegValueT<P20Pfs_SPEC> as RegisterValue<_>>::new(0)
9806    }
9807}
9808pub mod p20pfs {
9809
9810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9811    pub struct Podr_SPEC;
9812    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9813    impl Podr {
9814        #[doc = "Output low"]
9815        pub const _0: Self = Self::new(0);
9816
9817        #[doc = "Output high"]
9818        pub const _1: Self = Self::new(1);
9819    }
9820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9821    pub struct Pidr_SPEC;
9822    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9823    impl Pidr {
9824        #[doc = "Low level"]
9825        pub const _0: Self = Self::new(0);
9826
9827        #[doc = "High level"]
9828        pub const _1: Self = Self::new(1);
9829    }
9830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9831    pub struct Pdr_SPEC;
9832    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9833    impl Pdr {
9834        #[doc = "Input (functions as an input pin)"]
9835        pub const _0: Self = Self::new(0);
9836
9837        #[doc = "Output (functions as an output pin)"]
9838        pub const _1: Self = Self::new(1);
9839    }
9840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9841    pub struct Pcr_SPEC;
9842    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9843    impl Pcr {
9844        #[doc = "Disable input pull-up"]
9845        pub const _0: Self = Self::new(0);
9846
9847        #[doc = "Enable input pull-up"]
9848        pub const _1: Self = Self::new(1);
9849    }
9850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9851    pub struct Ncodr_SPEC;
9852    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9853    impl Ncodr {
9854        #[doc = "Output CMOS"]
9855        pub const _0: Self = Self::new(0);
9856
9857        #[doc = "Output NMOS open-drain"]
9858        pub const _1: Self = Self::new(1);
9859    }
9860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9861    pub struct Eofr_SPEC;
9862    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9863    impl Eofr {
9864        #[doc = "Don\'t care"]
9865        pub const _00: Self = Self::new(0);
9866
9867        #[doc = "Detect rising edge"]
9868        pub const _01: Self = Self::new(1);
9869
9870        #[doc = "Detect falling edge"]
9871        pub const _10: Self = Self::new(2);
9872
9873        #[doc = "Detect both edges"]
9874        pub const _11: Self = Self::new(3);
9875    }
9876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9877    pub struct Isel_SPEC;
9878    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9879    impl Isel {
9880        #[doc = "Do not use as IRQn input pin"]
9881        pub const _0: Self = Self::new(0);
9882
9883        #[doc = "Use as IRQn input pin"]
9884        pub const _1: Self = Self::new(1);
9885    }
9886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9887    pub struct Asel_SPEC;
9888    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9889    impl Asel {
9890        #[doc = "Do not use as analog pin"]
9891        pub const _0: Self = Self::new(0);
9892
9893        #[doc = "Use as analog pin"]
9894        pub const _1: Self = Self::new(1);
9895    }
9896    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9897    pub struct Pmr_SPEC;
9898    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9899    impl Pmr {
9900        #[doc = "Use as general I/O pin"]
9901        pub const _0: Self = Self::new(0);
9902
9903        #[doc = "Use as I/O port for peripheral functions"]
9904        pub const _1: Self = Self::new(1);
9905    }
9906}
9907#[doc(hidden)]
9908#[derive(Copy, Clone, Eq, PartialEq)]
9909pub struct P20PfsHa_SPEC;
9910impl crate::sealed::RegSpec for P20PfsHa_SPEC {
9911    type DataType = u16;
9912}
9913
9914#[doc = "Port 20%s Pin Function Select Register"]
9915pub type P20PfsHa = crate::RegValueT<P20PfsHa_SPEC>;
9916
9917impl P20PfsHa {
9918    #[doc = "Port Output Data"]
9919    #[inline(always)]
9920    pub fn podr(
9921        self,
9922    ) -> crate::common::RegisterField<
9923        0,
9924        0x1,
9925        1,
9926        0,
9927        p20pfs_ha::Podr,
9928        p20pfs_ha::Podr,
9929        P20PfsHa_SPEC,
9930        crate::common::RW,
9931    > {
9932        crate::common::RegisterField::<
9933            0,
9934            0x1,
9935            1,
9936            0,
9937            p20pfs_ha::Podr,
9938            p20pfs_ha::Podr,
9939            P20PfsHa_SPEC,
9940            crate::common::RW,
9941        >::from_register(self, 0)
9942    }
9943
9944    #[doc = "Port State"]
9945    #[inline(always)]
9946    pub fn pidr(
9947        self,
9948    ) -> crate::common::RegisterField<
9949        1,
9950        0x1,
9951        1,
9952        0,
9953        p20pfs_ha::Pidr,
9954        p20pfs_ha::Pidr,
9955        P20PfsHa_SPEC,
9956        crate::common::R,
9957    > {
9958        crate::common::RegisterField::<
9959            1,
9960            0x1,
9961            1,
9962            0,
9963            p20pfs_ha::Pidr,
9964            p20pfs_ha::Pidr,
9965            P20PfsHa_SPEC,
9966            crate::common::R,
9967        >::from_register(self, 0)
9968    }
9969
9970    #[doc = "Port Direction"]
9971    #[inline(always)]
9972    pub fn pdr(
9973        self,
9974    ) -> crate::common::RegisterField<
9975        2,
9976        0x1,
9977        1,
9978        0,
9979        p20pfs_ha::Pdr,
9980        p20pfs_ha::Pdr,
9981        P20PfsHa_SPEC,
9982        crate::common::RW,
9983    > {
9984        crate::common::RegisterField::<
9985            2,
9986            0x1,
9987            1,
9988            0,
9989            p20pfs_ha::Pdr,
9990            p20pfs_ha::Pdr,
9991            P20PfsHa_SPEC,
9992            crate::common::RW,
9993        >::from_register(self, 0)
9994    }
9995
9996    #[doc = "Pull-up Control"]
9997    #[inline(always)]
9998    pub fn pcr(
9999        self,
10000    ) -> crate::common::RegisterField<
10001        4,
10002        0x1,
10003        1,
10004        0,
10005        p20pfs_ha::Pcr,
10006        p20pfs_ha::Pcr,
10007        P20PfsHa_SPEC,
10008        crate::common::RW,
10009    > {
10010        crate::common::RegisterField::<
10011            4,
10012            0x1,
10013            1,
10014            0,
10015            p20pfs_ha::Pcr,
10016            p20pfs_ha::Pcr,
10017            P20PfsHa_SPEC,
10018            crate::common::RW,
10019        >::from_register(self, 0)
10020    }
10021
10022    #[doc = "N-Channel Open-Drain Control"]
10023    #[inline(always)]
10024    pub fn ncodr(
10025        self,
10026    ) -> crate::common::RegisterField<
10027        6,
10028        0x1,
10029        1,
10030        0,
10031        p20pfs_ha::Ncodr,
10032        p20pfs_ha::Ncodr,
10033        P20PfsHa_SPEC,
10034        crate::common::RW,
10035    > {
10036        crate::common::RegisterField::<
10037            6,
10038            0x1,
10039            1,
10040            0,
10041            p20pfs_ha::Ncodr,
10042            p20pfs_ha::Ncodr,
10043            P20PfsHa_SPEC,
10044            crate::common::RW,
10045        >::from_register(self, 0)
10046    }
10047
10048    #[doc = "Event on Falling/Event on Rising"]
10049    #[inline(always)]
10050    pub fn eofr(
10051        self,
10052    ) -> crate::common::RegisterField<
10053        12,
10054        0x3,
10055        1,
10056        0,
10057        p20pfs_ha::Eofr,
10058        p20pfs_ha::Eofr,
10059        P20PfsHa_SPEC,
10060        crate::common::RW,
10061    > {
10062        crate::common::RegisterField::<
10063            12,
10064            0x3,
10065            1,
10066            0,
10067            p20pfs_ha::Eofr,
10068            p20pfs_ha::Eofr,
10069            P20PfsHa_SPEC,
10070            crate::common::RW,
10071        >::from_register(self, 0)
10072    }
10073
10074    #[doc = "IRQ Input Enable"]
10075    #[inline(always)]
10076    pub fn isel(
10077        self,
10078    ) -> crate::common::RegisterField<
10079        14,
10080        0x1,
10081        1,
10082        0,
10083        p20pfs_ha::Isel,
10084        p20pfs_ha::Isel,
10085        P20PfsHa_SPEC,
10086        crate::common::RW,
10087    > {
10088        crate::common::RegisterField::<
10089            14,
10090            0x1,
10091            1,
10092            0,
10093            p20pfs_ha::Isel,
10094            p20pfs_ha::Isel,
10095            P20PfsHa_SPEC,
10096            crate::common::RW,
10097        >::from_register(self, 0)
10098    }
10099
10100    #[doc = "Analog Input Enable"]
10101    #[inline(always)]
10102    pub fn asel(
10103        self,
10104    ) -> crate::common::RegisterField<
10105        15,
10106        0x1,
10107        1,
10108        0,
10109        p20pfs_ha::Asel,
10110        p20pfs_ha::Asel,
10111        P20PfsHa_SPEC,
10112        crate::common::RW,
10113    > {
10114        crate::common::RegisterField::<
10115            15,
10116            0x1,
10117            1,
10118            0,
10119            p20pfs_ha::Asel,
10120            p20pfs_ha::Asel,
10121            P20PfsHa_SPEC,
10122            crate::common::RW,
10123        >::from_register(self, 0)
10124    }
10125}
10126impl ::core::default::Default for P20PfsHa {
10127    #[inline(always)]
10128    fn default() -> P20PfsHa {
10129        <crate::RegValueT<P20PfsHa_SPEC> as RegisterValue<_>>::new(0)
10130    }
10131}
10132pub mod p20pfs_ha {
10133
10134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10135    pub struct Podr_SPEC;
10136    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10137    impl Podr {
10138        #[doc = "Output low"]
10139        pub const _0: Self = Self::new(0);
10140
10141        #[doc = "Output high"]
10142        pub const _1: Self = Self::new(1);
10143    }
10144    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10145    pub struct Pidr_SPEC;
10146    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10147    impl Pidr {
10148        #[doc = "Low level"]
10149        pub const _0: Self = Self::new(0);
10150
10151        #[doc = "High level"]
10152        pub const _1: Self = Self::new(1);
10153    }
10154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10155    pub struct Pdr_SPEC;
10156    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10157    impl Pdr {
10158        #[doc = "Input (functions as an input pin)"]
10159        pub const _0: Self = Self::new(0);
10160
10161        #[doc = "Output (functions as an output pin)"]
10162        pub const _1: Self = Self::new(1);
10163    }
10164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10165    pub struct Pcr_SPEC;
10166    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10167    impl Pcr {
10168        #[doc = "Disable input pull-up"]
10169        pub const _0: Self = Self::new(0);
10170
10171        #[doc = "Enable input pull-up"]
10172        pub const _1: Self = Self::new(1);
10173    }
10174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10175    pub struct Ncodr_SPEC;
10176    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10177    impl Ncodr {
10178        #[doc = "Output CMOS"]
10179        pub const _0: Self = Self::new(0);
10180
10181        #[doc = "Output NMOS open-drain"]
10182        pub const _1: Self = Self::new(1);
10183    }
10184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10185    pub struct Eofr_SPEC;
10186    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10187    impl Eofr {
10188        #[doc = "Don\'t care"]
10189        pub const _00: Self = Self::new(0);
10190
10191        #[doc = "Detect rising edge"]
10192        pub const _01: Self = Self::new(1);
10193
10194        #[doc = "Detect falling edge"]
10195        pub const _10: Self = Self::new(2);
10196
10197        #[doc = "Detect both edges"]
10198        pub const _11: Self = Self::new(3);
10199    }
10200    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10201    pub struct Isel_SPEC;
10202    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10203    impl Isel {
10204        #[doc = "Do not use as IRQn input pin"]
10205        pub const _0: Self = Self::new(0);
10206
10207        #[doc = "Use as IRQn input pin"]
10208        pub const _1: Self = Self::new(1);
10209    }
10210    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10211    pub struct Asel_SPEC;
10212    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10213    impl Asel {
10214        #[doc = "Do not use as analog pin"]
10215        pub const _0: Self = Self::new(0);
10216
10217        #[doc = "Use as analog pin"]
10218        pub const _1: Self = Self::new(1);
10219    }
10220}
10221#[doc(hidden)]
10222#[derive(Copy, Clone, Eq, PartialEq)]
10223pub struct P20PfsBy_SPEC;
10224impl crate::sealed::RegSpec for P20PfsBy_SPEC {
10225    type DataType = u8;
10226}
10227
10228#[doc = "Port 20%s Pin Function Select Register"]
10229pub type P20PfsBy = crate::RegValueT<P20PfsBy_SPEC>;
10230
10231impl P20PfsBy {
10232    #[doc = "Port Output Data"]
10233    #[inline(always)]
10234    pub fn podr(
10235        self,
10236    ) -> crate::common::RegisterField<
10237        0,
10238        0x1,
10239        1,
10240        0,
10241        p20pfs_by::Podr,
10242        p20pfs_by::Podr,
10243        P20PfsBy_SPEC,
10244        crate::common::RW,
10245    > {
10246        crate::common::RegisterField::<
10247            0,
10248            0x1,
10249            1,
10250            0,
10251            p20pfs_by::Podr,
10252            p20pfs_by::Podr,
10253            P20PfsBy_SPEC,
10254            crate::common::RW,
10255        >::from_register(self, 0)
10256    }
10257
10258    #[doc = "Port State"]
10259    #[inline(always)]
10260    pub fn pidr(
10261        self,
10262    ) -> crate::common::RegisterField<
10263        1,
10264        0x1,
10265        1,
10266        0,
10267        p20pfs_by::Pidr,
10268        p20pfs_by::Pidr,
10269        P20PfsBy_SPEC,
10270        crate::common::R,
10271    > {
10272        crate::common::RegisterField::<
10273            1,
10274            0x1,
10275            1,
10276            0,
10277            p20pfs_by::Pidr,
10278            p20pfs_by::Pidr,
10279            P20PfsBy_SPEC,
10280            crate::common::R,
10281        >::from_register(self, 0)
10282    }
10283
10284    #[doc = "Port Direction"]
10285    #[inline(always)]
10286    pub fn pdr(
10287        self,
10288    ) -> crate::common::RegisterField<
10289        2,
10290        0x1,
10291        1,
10292        0,
10293        p20pfs_by::Pdr,
10294        p20pfs_by::Pdr,
10295        P20PfsBy_SPEC,
10296        crate::common::RW,
10297    > {
10298        crate::common::RegisterField::<
10299            2,
10300            0x1,
10301            1,
10302            0,
10303            p20pfs_by::Pdr,
10304            p20pfs_by::Pdr,
10305            P20PfsBy_SPEC,
10306            crate::common::RW,
10307        >::from_register(self, 0)
10308    }
10309
10310    #[doc = "Pull-up Control"]
10311    #[inline(always)]
10312    pub fn pcr(
10313        self,
10314    ) -> crate::common::RegisterField<
10315        4,
10316        0x1,
10317        1,
10318        0,
10319        p20pfs_by::Pcr,
10320        p20pfs_by::Pcr,
10321        P20PfsBy_SPEC,
10322        crate::common::RW,
10323    > {
10324        crate::common::RegisterField::<
10325            4,
10326            0x1,
10327            1,
10328            0,
10329            p20pfs_by::Pcr,
10330            p20pfs_by::Pcr,
10331            P20PfsBy_SPEC,
10332            crate::common::RW,
10333        >::from_register(self, 0)
10334    }
10335
10336    #[doc = "N-Channel Open-Drain Control"]
10337    #[inline(always)]
10338    pub fn ncodr(
10339        self,
10340    ) -> crate::common::RegisterField<
10341        6,
10342        0x1,
10343        1,
10344        0,
10345        p20pfs_by::Ncodr,
10346        p20pfs_by::Ncodr,
10347        P20PfsBy_SPEC,
10348        crate::common::RW,
10349    > {
10350        crate::common::RegisterField::<
10351            6,
10352            0x1,
10353            1,
10354            0,
10355            p20pfs_by::Ncodr,
10356            p20pfs_by::Ncodr,
10357            P20PfsBy_SPEC,
10358            crate::common::RW,
10359        >::from_register(self, 0)
10360    }
10361}
10362impl ::core::default::Default for P20PfsBy {
10363    #[inline(always)]
10364    fn default() -> P20PfsBy {
10365        <crate::RegValueT<P20PfsBy_SPEC> as RegisterValue<_>>::new(0)
10366    }
10367}
10368pub mod p20pfs_by {
10369
10370    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10371    pub struct Podr_SPEC;
10372    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10373    impl Podr {
10374        #[doc = "Output low"]
10375        pub const _0: Self = Self::new(0);
10376
10377        #[doc = "Output high"]
10378        pub const _1: Self = Self::new(1);
10379    }
10380    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10381    pub struct Pidr_SPEC;
10382    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10383    impl Pidr {
10384        #[doc = "Low level"]
10385        pub const _0: Self = Self::new(0);
10386
10387        #[doc = "High level"]
10388        pub const _1: Self = Self::new(1);
10389    }
10390    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10391    pub struct Pdr_SPEC;
10392    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10393    impl Pdr {
10394        #[doc = "Input (functions as an input pin)"]
10395        pub const _0: Self = Self::new(0);
10396
10397        #[doc = "Output (functions as an output pin)"]
10398        pub const _1: Self = Self::new(1);
10399    }
10400    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10401    pub struct Pcr_SPEC;
10402    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10403    impl Pcr {
10404        #[doc = "Disable input pull-up"]
10405        pub const _0: Self = Self::new(0);
10406
10407        #[doc = "Enable input pull-up"]
10408        pub const _1: Self = Self::new(1);
10409    }
10410    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10411    pub struct Ncodr_SPEC;
10412    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10413    impl Ncodr {
10414        #[doc = "Output CMOS"]
10415        pub const _0: Self = Self::new(0);
10416
10417        #[doc = "Output NMOS open-drain"]
10418        pub const _1: Self = Self::new(1);
10419    }
10420}
10421#[doc(hidden)]
10422#[derive(Copy, Clone, Eq, PartialEq)]
10423pub struct P2Pfs_SPEC;
10424impl crate::sealed::RegSpec for P2Pfs_SPEC {
10425    type DataType = u32;
10426}
10427
10428#[doc = "Port 2%s Pin Function Select Register"]
10429pub type P2Pfs = crate::RegValueT<P2Pfs_SPEC>;
10430
10431impl P2Pfs {
10432    #[doc = "Port Output Data"]
10433    #[inline(always)]
10434    pub fn podr(
10435        self,
10436    ) -> crate::common::RegisterField<
10437        0,
10438        0x1,
10439        1,
10440        0,
10441        p2pfs::Podr,
10442        p2pfs::Podr,
10443        P2Pfs_SPEC,
10444        crate::common::RW,
10445    > {
10446        crate::common::RegisterField::<
10447            0,
10448            0x1,
10449            1,
10450            0,
10451            p2pfs::Podr,
10452            p2pfs::Podr,
10453            P2Pfs_SPEC,
10454            crate::common::RW,
10455        >::from_register(self, 0)
10456    }
10457
10458    #[doc = "Port State"]
10459    #[inline(always)]
10460    pub fn pidr(
10461        self,
10462    ) -> crate::common::RegisterField<
10463        1,
10464        0x1,
10465        1,
10466        0,
10467        p2pfs::Pidr,
10468        p2pfs::Pidr,
10469        P2Pfs_SPEC,
10470        crate::common::R,
10471    > {
10472        crate::common::RegisterField::<
10473            1,
10474            0x1,
10475            1,
10476            0,
10477            p2pfs::Pidr,
10478            p2pfs::Pidr,
10479            P2Pfs_SPEC,
10480            crate::common::R,
10481        >::from_register(self, 0)
10482    }
10483
10484    #[doc = "Port Direction"]
10485    #[inline(always)]
10486    pub fn pdr(
10487        self,
10488    ) -> crate::common::RegisterField<
10489        2,
10490        0x1,
10491        1,
10492        0,
10493        p2pfs::Pdr,
10494        p2pfs::Pdr,
10495        P2Pfs_SPEC,
10496        crate::common::RW,
10497    > {
10498        crate::common::RegisterField::<
10499            2,
10500            0x1,
10501            1,
10502            0,
10503            p2pfs::Pdr,
10504            p2pfs::Pdr,
10505            P2Pfs_SPEC,
10506            crate::common::RW,
10507        >::from_register(self, 0)
10508    }
10509
10510    #[doc = "Pull-up Control"]
10511    #[inline(always)]
10512    pub fn pcr(
10513        self,
10514    ) -> crate::common::RegisterField<
10515        4,
10516        0x1,
10517        1,
10518        0,
10519        p2pfs::Pcr,
10520        p2pfs::Pcr,
10521        P2Pfs_SPEC,
10522        crate::common::RW,
10523    > {
10524        crate::common::RegisterField::<
10525            4,
10526            0x1,
10527            1,
10528            0,
10529            p2pfs::Pcr,
10530            p2pfs::Pcr,
10531            P2Pfs_SPEC,
10532            crate::common::RW,
10533        >::from_register(self, 0)
10534    }
10535
10536    #[doc = "N-Channel Open-Drain Control"]
10537    #[inline(always)]
10538    pub fn ncodr(
10539        self,
10540    ) -> crate::common::RegisterField<
10541        6,
10542        0x1,
10543        1,
10544        0,
10545        p2pfs::Ncodr,
10546        p2pfs::Ncodr,
10547        P2Pfs_SPEC,
10548        crate::common::RW,
10549    > {
10550        crate::common::RegisterField::<
10551            6,
10552            0x1,
10553            1,
10554            0,
10555            p2pfs::Ncodr,
10556            p2pfs::Ncodr,
10557            P2Pfs_SPEC,
10558            crate::common::RW,
10559        >::from_register(self, 0)
10560    }
10561
10562    #[doc = "Event on Falling/Event on Rising"]
10563    #[inline(always)]
10564    pub fn eofr(
10565        self,
10566    ) -> crate::common::RegisterField<
10567        12,
10568        0x3,
10569        1,
10570        0,
10571        p2pfs::Eofr,
10572        p2pfs::Eofr,
10573        P2Pfs_SPEC,
10574        crate::common::RW,
10575    > {
10576        crate::common::RegisterField::<
10577            12,
10578            0x3,
10579            1,
10580            0,
10581            p2pfs::Eofr,
10582            p2pfs::Eofr,
10583            P2Pfs_SPEC,
10584            crate::common::RW,
10585        >::from_register(self, 0)
10586    }
10587
10588    #[doc = "IRQ Input Enable"]
10589    #[inline(always)]
10590    pub fn isel(
10591        self,
10592    ) -> crate::common::RegisterField<
10593        14,
10594        0x1,
10595        1,
10596        0,
10597        p2pfs::Isel,
10598        p2pfs::Isel,
10599        P2Pfs_SPEC,
10600        crate::common::RW,
10601    > {
10602        crate::common::RegisterField::<
10603            14,
10604            0x1,
10605            1,
10606            0,
10607            p2pfs::Isel,
10608            p2pfs::Isel,
10609            P2Pfs_SPEC,
10610            crate::common::RW,
10611        >::from_register(self, 0)
10612    }
10613
10614    #[doc = "Analog Input Enable"]
10615    #[inline(always)]
10616    pub fn asel(
10617        self,
10618    ) -> crate::common::RegisterField<
10619        15,
10620        0x1,
10621        1,
10622        0,
10623        p2pfs::Asel,
10624        p2pfs::Asel,
10625        P2Pfs_SPEC,
10626        crate::common::RW,
10627    > {
10628        crate::common::RegisterField::<
10629            15,
10630            0x1,
10631            1,
10632            0,
10633            p2pfs::Asel,
10634            p2pfs::Asel,
10635            P2Pfs_SPEC,
10636            crate::common::RW,
10637        >::from_register(self, 0)
10638    }
10639
10640    #[doc = "Port Mode Control"]
10641    #[inline(always)]
10642    pub fn pmr(
10643        self,
10644    ) -> crate::common::RegisterField<
10645        16,
10646        0x1,
10647        1,
10648        0,
10649        p2pfs::Pmr,
10650        p2pfs::Pmr,
10651        P2Pfs_SPEC,
10652        crate::common::RW,
10653    > {
10654        crate::common::RegisterField::<
10655            16,
10656            0x1,
10657            1,
10658            0,
10659            p2pfs::Pmr,
10660            p2pfs::Pmr,
10661            P2Pfs_SPEC,
10662            crate::common::RW,
10663        >::from_register(self, 0)
10664    }
10665
10666    #[doc = "Peripheral Select"]
10667    #[inline(always)]
10668    pub fn psel(
10669        self,
10670    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P2Pfs_SPEC, crate::common::RW> {
10671        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P2Pfs_SPEC,crate::common::RW>::from_register(self,0)
10672    }
10673}
10674impl ::core::default::Default for P2Pfs {
10675    #[inline(always)]
10676    fn default() -> P2Pfs {
10677        <crate::RegValueT<P2Pfs_SPEC> as RegisterValue<_>>::new(0)
10678    }
10679}
10680pub mod p2pfs {
10681
10682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10683    pub struct Podr_SPEC;
10684    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10685    impl Podr {
10686        #[doc = "Output low"]
10687        pub const _0: Self = Self::new(0);
10688
10689        #[doc = "Output high"]
10690        pub const _1: Self = Self::new(1);
10691    }
10692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10693    pub struct Pidr_SPEC;
10694    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10695    impl Pidr {
10696        #[doc = "Low level"]
10697        pub const _0: Self = Self::new(0);
10698
10699        #[doc = "High level"]
10700        pub const _1: Self = Self::new(1);
10701    }
10702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10703    pub struct Pdr_SPEC;
10704    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10705    impl Pdr {
10706        #[doc = "Input (functions as an input pin)"]
10707        pub const _0: Self = Self::new(0);
10708
10709        #[doc = "Output (functions as an output pin)"]
10710        pub const _1: Self = Self::new(1);
10711    }
10712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10713    pub struct Pcr_SPEC;
10714    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10715    impl Pcr {
10716        #[doc = "Disable input pull-up"]
10717        pub const _0: Self = Self::new(0);
10718
10719        #[doc = "Enable input pull-up"]
10720        pub const _1: Self = Self::new(1);
10721    }
10722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10723    pub struct Ncodr_SPEC;
10724    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10725    impl Ncodr {
10726        #[doc = "Output CMOS"]
10727        pub const _0: Self = Self::new(0);
10728
10729        #[doc = "Output NMOS open-drain"]
10730        pub const _1: Self = Self::new(1);
10731    }
10732    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10733    pub struct Eofr_SPEC;
10734    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10735    impl Eofr {
10736        #[doc = "Don\'t care"]
10737        pub const _00: Self = Self::new(0);
10738
10739        #[doc = "Detect rising edge"]
10740        pub const _01: Self = Self::new(1);
10741
10742        #[doc = "Detect falling edge"]
10743        pub const _10: Self = Self::new(2);
10744
10745        #[doc = "Detect both edges"]
10746        pub const _11: Self = Self::new(3);
10747    }
10748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10749    pub struct Isel_SPEC;
10750    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10751    impl Isel {
10752        #[doc = "Do not use as IRQn input pin"]
10753        pub const _0: Self = Self::new(0);
10754
10755        #[doc = "Use as IRQn input pin"]
10756        pub const _1: Self = Self::new(1);
10757    }
10758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10759    pub struct Asel_SPEC;
10760    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10761    impl Asel {
10762        #[doc = "Do not use as analog pin"]
10763        pub const _0: Self = Self::new(0);
10764
10765        #[doc = "Use as analog pin"]
10766        pub const _1: Self = Self::new(1);
10767    }
10768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10769    pub struct Pmr_SPEC;
10770    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
10771    impl Pmr {
10772        #[doc = "Use as general I/O pin"]
10773        pub const _0: Self = Self::new(0);
10774
10775        #[doc = "Use as I/O port for peripheral functions"]
10776        pub const _1: Self = Self::new(1);
10777    }
10778}
10779#[doc(hidden)]
10780#[derive(Copy, Clone, Eq, PartialEq)]
10781pub struct P2PfsHa_SPEC;
10782impl crate::sealed::RegSpec for P2PfsHa_SPEC {
10783    type DataType = u16;
10784}
10785
10786#[doc = "Port 2%s Pin Function Select Register"]
10787pub type P2PfsHa = crate::RegValueT<P2PfsHa_SPEC>;
10788
10789impl P2PfsHa {
10790    #[doc = "Port Output Data"]
10791    #[inline(always)]
10792    pub fn podr(
10793        self,
10794    ) -> crate::common::RegisterField<
10795        0,
10796        0x1,
10797        1,
10798        0,
10799        p2pfs_ha::Podr,
10800        p2pfs_ha::Podr,
10801        P2PfsHa_SPEC,
10802        crate::common::RW,
10803    > {
10804        crate::common::RegisterField::<
10805            0,
10806            0x1,
10807            1,
10808            0,
10809            p2pfs_ha::Podr,
10810            p2pfs_ha::Podr,
10811            P2PfsHa_SPEC,
10812            crate::common::RW,
10813        >::from_register(self, 0)
10814    }
10815
10816    #[doc = "Port State"]
10817    #[inline(always)]
10818    pub fn pidr(
10819        self,
10820    ) -> crate::common::RegisterField<
10821        1,
10822        0x1,
10823        1,
10824        0,
10825        p2pfs_ha::Pidr,
10826        p2pfs_ha::Pidr,
10827        P2PfsHa_SPEC,
10828        crate::common::R,
10829    > {
10830        crate::common::RegisterField::<
10831            1,
10832            0x1,
10833            1,
10834            0,
10835            p2pfs_ha::Pidr,
10836            p2pfs_ha::Pidr,
10837            P2PfsHa_SPEC,
10838            crate::common::R,
10839        >::from_register(self, 0)
10840    }
10841
10842    #[doc = "Port Direction"]
10843    #[inline(always)]
10844    pub fn pdr(
10845        self,
10846    ) -> crate::common::RegisterField<
10847        2,
10848        0x1,
10849        1,
10850        0,
10851        p2pfs_ha::Pdr,
10852        p2pfs_ha::Pdr,
10853        P2PfsHa_SPEC,
10854        crate::common::RW,
10855    > {
10856        crate::common::RegisterField::<
10857            2,
10858            0x1,
10859            1,
10860            0,
10861            p2pfs_ha::Pdr,
10862            p2pfs_ha::Pdr,
10863            P2PfsHa_SPEC,
10864            crate::common::RW,
10865        >::from_register(self, 0)
10866    }
10867
10868    #[doc = "Pull-up Control"]
10869    #[inline(always)]
10870    pub fn pcr(
10871        self,
10872    ) -> crate::common::RegisterField<
10873        4,
10874        0x1,
10875        1,
10876        0,
10877        p2pfs_ha::Pcr,
10878        p2pfs_ha::Pcr,
10879        P2PfsHa_SPEC,
10880        crate::common::RW,
10881    > {
10882        crate::common::RegisterField::<
10883            4,
10884            0x1,
10885            1,
10886            0,
10887            p2pfs_ha::Pcr,
10888            p2pfs_ha::Pcr,
10889            P2PfsHa_SPEC,
10890            crate::common::RW,
10891        >::from_register(self, 0)
10892    }
10893
10894    #[doc = "N-Channel Open-Drain Control"]
10895    #[inline(always)]
10896    pub fn ncodr(
10897        self,
10898    ) -> crate::common::RegisterField<
10899        6,
10900        0x1,
10901        1,
10902        0,
10903        p2pfs_ha::Ncodr,
10904        p2pfs_ha::Ncodr,
10905        P2PfsHa_SPEC,
10906        crate::common::RW,
10907    > {
10908        crate::common::RegisterField::<
10909            6,
10910            0x1,
10911            1,
10912            0,
10913            p2pfs_ha::Ncodr,
10914            p2pfs_ha::Ncodr,
10915            P2PfsHa_SPEC,
10916            crate::common::RW,
10917        >::from_register(self, 0)
10918    }
10919
10920    #[doc = "Event on Falling/Event on Rising"]
10921    #[inline(always)]
10922    pub fn eofr(
10923        self,
10924    ) -> crate::common::RegisterField<
10925        12,
10926        0x3,
10927        1,
10928        0,
10929        p2pfs_ha::Eofr,
10930        p2pfs_ha::Eofr,
10931        P2PfsHa_SPEC,
10932        crate::common::RW,
10933    > {
10934        crate::common::RegisterField::<
10935            12,
10936            0x3,
10937            1,
10938            0,
10939            p2pfs_ha::Eofr,
10940            p2pfs_ha::Eofr,
10941            P2PfsHa_SPEC,
10942            crate::common::RW,
10943        >::from_register(self, 0)
10944    }
10945
10946    #[doc = "IRQ Input Enable"]
10947    #[inline(always)]
10948    pub fn isel(
10949        self,
10950    ) -> crate::common::RegisterField<
10951        14,
10952        0x1,
10953        1,
10954        0,
10955        p2pfs_ha::Isel,
10956        p2pfs_ha::Isel,
10957        P2PfsHa_SPEC,
10958        crate::common::RW,
10959    > {
10960        crate::common::RegisterField::<
10961            14,
10962            0x1,
10963            1,
10964            0,
10965            p2pfs_ha::Isel,
10966            p2pfs_ha::Isel,
10967            P2PfsHa_SPEC,
10968            crate::common::RW,
10969        >::from_register(self, 0)
10970    }
10971
10972    #[doc = "Analog Input Enable"]
10973    #[inline(always)]
10974    pub fn asel(
10975        self,
10976    ) -> crate::common::RegisterField<
10977        15,
10978        0x1,
10979        1,
10980        0,
10981        p2pfs_ha::Asel,
10982        p2pfs_ha::Asel,
10983        P2PfsHa_SPEC,
10984        crate::common::RW,
10985    > {
10986        crate::common::RegisterField::<
10987            15,
10988            0x1,
10989            1,
10990            0,
10991            p2pfs_ha::Asel,
10992            p2pfs_ha::Asel,
10993            P2PfsHa_SPEC,
10994            crate::common::RW,
10995        >::from_register(self, 0)
10996    }
10997}
10998impl ::core::default::Default for P2PfsHa {
10999    #[inline(always)]
11000    fn default() -> P2PfsHa {
11001        <crate::RegValueT<P2PfsHa_SPEC> as RegisterValue<_>>::new(0)
11002    }
11003}
11004pub mod p2pfs_ha {
11005
11006    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11007    pub struct Podr_SPEC;
11008    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11009    impl Podr {
11010        #[doc = "Output low"]
11011        pub const _0: Self = Self::new(0);
11012
11013        #[doc = "Output high"]
11014        pub const _1: Self = Self::new(1);
11015    }
11016    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11017    pub struct Pidr_SPEC;
11018    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11019    impl Pidr {
11020        #[doc = "Low level"]
11021        pub const _0: Self = Self::new(0);
11022
11023        #[doc = "High level"]
11024        pub const _1: Self = Self::new(1);
11025    }
11026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11027    pub struct Pdr_SPEC;
11028    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11029    impl Pdr {
11030        #[doc = "Input (functions as an input pin)"]
11031        pub const _0: Self = Self::new(0);
11032
11033        #[doc = "Output (functions as an output pin)"]
11034        pub const _1: Self = Self::new(1);
11035    }
11036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11037    pub struct Pcr_SPEC;
11038    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11039    impl Pcr {
11040        #[doc = "Disable input pull-up"]
11041        pub const _0: Self = Self::new(0);
11042
11043        #[doc = "Enable input pull-up"]
11044        pub const _1: Self = Self::new(1);
11045    }
11046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11047    pub struct Ncodr_SPEC;
11048    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11049    impl Ncodr {
11050        #[doc = "Output CMOS"]
11051        pub const _0: Self = Self::new(0);
11052
11053        #[doc = "Output NMOS open-drain"]
11054        pub const _1: Self = Self::new(1);
11055    }
11056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11057    pub struct Eofr_SPEC;
11058    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11059    impl Eofr {
11060        #[doc = "Don\'t care"]
11061        pub const _00: Self = Self::new(0);
11062
11063        #[doc = "Detect rising edge"]
11064        pub const _01: Self = Self::new(1);
11065
11066        #[doc = "Detect falling edge"]
11067        pub const _10: Self = Self::new(2);
11068
11069        #[doc = "Detect both edges"]
11070        pub const _11: Self = Self::new(3);
11071    }
11072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11073    pub struct Isel_SPEC;
11074    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11075    impl Isel {
11076        #[doc = "Do not use as IRQn input pin"]
11077        pub const _0: Self = Self::new(0);
11078
11079        #[doc = "Use as IRQn input pin"]
11080        pub const _1: Self = Self::new(1);
11081    }
11082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11083    pub struct Asel_SPEC;
11084    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11085    impl Asel {
11086        #[doc = "Do not use as analog pin"]
11087        pub const _0: Self = Self::new(0);
11088
11089        #[doc = "Use as analog pin"]
11090        pub const _1: Self = Self::new(1);
11091    }
11092}
11093#[doc(hidden)]
11094#[derive(Copy, Clone, Eq, PartialEq)]
11095pub struct P2PfsBy_SPEC;
11096impl crate::sealed::RegSpec for P2PfsBy_SPEC {
11097    type DataType = u8;
11098}
11099
11100#[doc = "Port 2%s Pin Function Select Register"]
11101pub type P2PfsBy = crate::RegValueT<P2PfsBy_SPEC>;
11102
11103impl P2PfsBy {
11104    #[doc = "Port Output Data"]
11105    #[inline(always)]
11106    pub fn podr(
11107        self,
11108    ) -> crate::common::RegisterField<
11109        0,
11110        0x1,
11111        1,
11112        0,
11113        p2pfs_by::Podr,
11114        p2pfs_by::Podr,
11115        P2PfsBy_SPEC,
11116        crate::common::RW,
11117    > {
11118        crate::common::RegisterField::<
11119            0,
11120            0x1,
11121            1,
11122            0,
11123            p2pfs_by::Podr,
11124            p2pfs_by::Podr,
11125            P2PfsBy_SPEC,
11126            crate::common::RW,
11127        >::from_register(self, 0)
11128    }
11129
11130    #[doc = "Port State"]
11131    #[inline(always)]
11132    pub fn pidr(
11133        self,
11134    ) -> crate::common::RegisterField<
11135        1,
11136        0x1,
11137        1,
11138        0,
11139        p2pfs_by::Pidr,
11140        p2pfs_by::Pidr,
11141        P2PfsBy_SPEC,
11142        crate::common::R,
11143    > {
11144        crate::common::RegisterField::<
11145            1,
11146            0x1,
11147            1,
11148            0,
11149            p2pfs_by::Pidr,
11150            p2pfs_by::Pidr,
11151            P2PfsBy_SPEC,
11152            crate::common::R,
11153        >::from_register(self, 0)
11154    }
11155
11156    #[doc = "Port Direction"]
11157    #[inline(always)]
11158    pub fn pdr(
11159        self,
11160    ) -> crate::common::RegisterField<
11161        2,
11162        0x1,
11163        1,
11164        0,
11165        p2pfs_by::Pdr,
11166        p2pfs_by::Pdr,
11167        P2PfsBy_SPEC,
11168        crate::common::RW,
11169    > {
11170        crate::common::RegisterField::<
11171            2,
11172            0x1,
11173            1,
11174            0,
11175            p2pfs_by::Pdr,
11176            p2pfs_by::Pdr,
11177            P2PfsBy_SPEC,
11178            crate::common::RW,
11179        >::from_register(self, 0)
11180    }
11181
11182    #[doc = "Pull-up Control"]
11183    #[inline(always)]
11184    pub fn pcr(
11185        self,
11186    ) -> crate::common::RegisterField<
11187        4,
11188        0x1,
11189        1,
11190        0,
11191        p2pfs_by::Pcr,
11192        p2pfs_by::Pcr,
11193        P2PfsBy_SPEC,
11194        crate::common::RW,
11195    > {
11196        crate::common::RegisterField::<
11197            4,
11198            0x1,
11199            1,
11200            0,
11201            p2pfs_by::Pcr,
11202            p2pfs_by::Pcr,
11203            P2PfsBy_SPEC,
11204            crate::common::RW,
11205        >::from_register(self, 0)
11206    }
11207
11208    #[doc = "N-Channel Open-Drain Control"]
11209    #[inline(always)]
11210    pub fn ncodr(
11211        self,
11212    ) -> crate::common::RegisterField<
11213        6,
11214        0x1,
11215        1,
11216        0,
11217        p2pfs_by::Ncodr,
11218        p2pfs_by::Ncodr,
11219        P2PfsBy_SPEC,
11220        crate::common::RW,
11221    > {
11222        crate::common::RegisterField::<
11223            6,
11224            0x1,
11225            1,
11226            0,
11227            p2pfs_by::Ncodr,
11228            p2pfs_by::Ncodr,
11229            P2PfsBy_SPEC,
11230            crate::common::RW,
11231        >::from_register(self, 0)
11232    }
11233}
11234impl ::core::default::Default for P2PfsBy {
11235    #[inline(always)]
11236    fn default() -> P2PfsBy {
11237        <crate::RegValueT<P2PfsBy_SPEC> as RegisterValue<_>>::new(0)
11238    }
11239}
11240pub mod p2pfs_by {
11241
11242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11243    pub struct Podr_SPEC;
11244    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11245    impl Podr {
11246        #[doc = "Output low"]
11247        pub const _0: Self = Self::new(0);
11248
11249        #[doc = "Output high"]
11250        pub const _1: Self = Self::new(1);
11251    }
11252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11253    pub struct Pidr_SPEC;
11254    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11255    impl Pidr {
11256        #[doc = "Low level"]
11257        pub const _0: Self = Self::new(0);
11258
11259        #[doc = "High level"]
11260        pub const _1: Self = Self::new(1);
11261    }
11262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11263    pub struct Pdr_SPEC;
11264    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11265    impl Pdr {
11266        #[doc = "Input (functions as an input pin)"]
11267        pub const _0: Self = Self::new(0);
11268
11269        #[doc = "Output (functions as an output pin)"]
11270        pub const _1: Self = Self::new(1);
11271    }
11272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11273    pub struct Pcr_SPEC;
11274    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11275    impl Pcr {
11276        #[doc = "Disable input pull-up"]
11277        pub const _0: Self = Self::new(0);
11278
11279        #[doc = "Enable input pull-up"]
11280        pub const _1: Self = Self::new(1);
11281    }
11282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11283    pub struct Ncodr_SPEC;
11284    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11285    impl Ncodr {
11286        #[doc = "Output CMOS"]
11287        pub const _0: Self = Self::new(0);
11288
11289        #[doc = "Output NMOS open-drain"]
11290        pub const _1: Self = Self::new(1);
11291    }
11292}
11293#[doc(hidden)]
11294#[derive(Copy, Clone, Eq, PartialEq)]
11295pub struct P300Pfs_SPEC;
11296impl crate::sealed::RegSpec for P300Pfs_SPEC {
11297    type DataType = u32;
11298}
11299
11300#[doc = "Port 300 Pin Function Select Register"]
11301pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
11302
11303impl P300Pfs {
11304    #[doc = "Port Output Data"]
11305    #[inline(always)]
11306    pub fn podr(
11307        self,
11308    ) -> crate::common::RegisterField<
11309        0,
11310        0x1,
11311        1,
11312        0,
11313        p300pfs::Podr,
11314        p300pfs::Podr,
11315        P300Pfs_SPEC,
11316        crate::common::RW,
11317    > {
11318        crate::common::RegisterField::<
11319            0,
11320            0x1,
11321            1,
11322            0,
11323            p300pfs::Podr,
11324            p300pfs::Podr,
11325            P300Pfs_SPEC,
11326            crate::common::RW,
11327        >::from_register(self, 0)
11328    }
11329
11330    #[doc = "Port State"]
11331    #[inline(always)]
11332    pub fn pidr(
11333        self,
11334    ) -> crate::common::RegisterField<
11335        1,
11336        0x1,
11337        1,
11338        0,
11339        p300pfs::Pidr,
11340        p300pfs::Pidr,
11341        P300Pfs_SPEC,
11342        crate::common::R,
11343    > {
11344        crate::common::RegisterField::<
11345            1,
11346            0x1,
11347            1,
11348            0,
11349            p300pfs::Pidr,
11350            p300pfs::Pidr,
11351            P300Pfs_SPEC,
11352            crate::common::R,
11353        >::from_register(self, 0)
11354    }
11355
11356    #[doc = "Port Direction"]
11357    #[inline(always)]
11358    pub fn pdr(
11359        self,
11360    ) -> crate::common::RegisterField<
11361        2,
11362        0x1,
11363        1,
11364        0,
11365        p300pfs::Pdr,
11366        p300pfs::Pdr,
11367        P300Pfs_SPEC,
11368        crate::common::RW,
11369    > {
11370        crate::common::RegisterField::<
11371            2,
11372            0x1,
11373            1,
11374            0,
11375            p300pfs::Pdr,
11376            p300pfs::Pdr,
11377            P300Pfs_SPEC,
11378            crate::common::RW,
11379        >::from_register(self, 0)
11380    }
11381
11382    #[doc = "Pull-up Control"]
11383    #[inline(always)]
11384    pub fn pcr(
11385        self,
11386    ) -> crate::common::RegisterField<
11387        4,
11388        0x1,
11389        1,
11390        0,
11391        p300pfs::Pcr,
11392        p300pfs::Pcr,
11393        P300Pfs_SPEC,
11394        crate::common::RW,
11395    > {
11396        crate::common::RegisterField::<
11397            4,
11398            0x1,
11399            1,
11400            0,
11401            p300pfs::Pcr,
11402            p300pfs::Pcr,
11403            P300Pfs_SPEC,
11404            crate::common::RW,
11405        >::from_register(self, 0)
11406    }
11407
11408    #[doc = "N-Channel Open-Drain Control"]
11409    #[inline(always)]
11410    pub fn ncodr(
11411        self,
11412    ) -> crate::common::RegisterField<
11413        6,
11414        0x1,
11415        1,
11416        0,
11417        p300pfs::Ncodr,
11418        p300pfs::Ncodr,
11419        P300Pfs_SPEC,
11420        crate::common::RW,
11421    > {
11422        crate::common::RegisterField::<
11423            6,
11424            0x1,
11425            1,
11426            0,
11427            p300pfs::Ncodr,
11428            p300pfs::Ncodr,
11429            P300Pfs_SPEC,
11430            crate::common::RW,
11431        >::from_register(self, 0)
11432    }
11433
11434    #[doc = "IRQ Input Enable"]
11435    #[inline(always)]
11436    pub fn isel(
11437        self,
11438    ) -> crate::common::RegisterField<
11439        14,
11440        0x1,
11441        1,
11442        0,
11443        p300pfs::Isel,
11444        p300pfs::Isel,
11445        P300Pfs_SPEC,
11446        crate::common::RW,
11447    > {
11448        crate::common::RegisterField::<
11449            14,
11450            0x1,
11451            1,
11452            0,
11453            p300pfs::Isel,
11454            p300pfs::Isel,
11455            P300Pfs_SPEC,
11456            crate::common::RW,
11457        >::from_register(self, 0)
11458    }
11459
11460    #[doc = "Analog Input Enable"]
11461    #[inline(always)]
11462    pub fn asel(
11463        self,
11464    ) -> crate::common::RegisterField<
11465        15,
11466        0x1,
11467        1,
11468        0,
11469        p300pfs::Asel,
11470        p300pfs::Asel,
11471        P300Pfs_SPEC,
11472        crate::common::RW,
11473    > {
11474        crate::common::RegisterField::<
11475            15,
11476            0x1,
11477            1,
11478            0,
11479            p300pfs::Asel,
11480            p300pfs::Asel,
11481            P300Pfs_SPEC,
11482            crate::common::RW,
11483        >::from_register(self, 0)
11484    }
11485
11486    #[doc = "Port Mode Control"]
11487    #[inline(always)]
11488    pub fn pmr(
11489        self,
11490    ) -> crate::common::RegisterField<
11491        16,
11492        0x1,
11493        1,
11494        0,
11495        p300pfs::Pmr,
11496        p300pfs::Pmr,
11497        P300Pfs_SPEC,
11498        crate::common::RW,
11499    > {
11500        crate::common::RegisterField::<
11501            16,
11502            0x1,
11503            1,
11504            0,
11505            p300pfs::Pmr,
11506            p300pfs::Pmr,
11507            P300Pfs_SPEC,
11508            crate::common::RW,
11509        >::from_register(self, 0)
11510    }
11511
11512    #[doc = "Peripheral Select"]
11513    #[inline(always)]
11514    pub fn psel(
11515        self,
11516    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
11517        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
11518    }
11519}
11520impl ::core::default::Default for P300Pfs {
11521    #[inline(always)]
11522    fn default() -> P300Pfs {
11523        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65536)
11524    }
11525}
11526pub mod p300pfs {
11527
11528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11529    pub struct Podr_SPEC;
11530    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11531    impl Podr {
11532        #[doc = "Output low"]
11533        pub const _0: Self = Self::new(0);
11534
11535        #[doc = "Output high"]
11536        pub const _1: Self = Self::new(1);
11537    }
11538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11539    pub struct Pidr_SPEC;
11540    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11541    impl Pidr {
11542        #[doc = "Low level"]
11543        pub const _0: Self = Self::new(0);
11544
11545        #[doc = "High level"]
11546        pub const _1: Self = Self::new(1);
11547    }
11548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11549    pub struct Pdr_SPEC;
11550    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11551    impl Pdr {
11552        #[doc = "Input (functions as an input pin)"]
11553        pub const _0: Self = Self::new(0);
11554
11555        #[doc = "Output (functions as an output pin)"]
11556        pub const _1: Self = Self::new(1);
11557    }
11558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11559    pub struct Pcr_SPEC;
11560    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11561    impl Pcr {
11562        #[doc = "Disable input pull-up"]
11563        pub const _0: Self = Self::new(0);
11564
11565        #[doc = "Enable input pull-up"]
11566        pub const _1: Self = Self::new(1);
11567    }
11568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11569    pub struct Ncodr_SPEC;
11570    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11571    impl Ncodr {
11572        #[doc = "Output CMOS"]
11573        pub const _0: Self = Self::new(0);
11574
11575        #[doc = "Output NMOS open-drain"]
11576        pub const _1: Self = Self::new(1);
11577    }
11578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11579    pub struct Isel_SPEC;
11580    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11581    impl Isel {
11582        #[doc = "Do not use as IRQn input pin"]
11583        pub const _0: Self = Self::new(0);
11584
11585        #[doc = "Use as IRQn input pin"]
11586        pub const _1: Self = Self::new(1);
11587    }
11588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11589    pub struct Asel_SPEC;
11590    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11591    impl Asel {
11592        #[doc = "Do not use as analog pin"]
11593        pub const _0: Self = Self::new(0);
11594
11595        #[doc = "Use as analog pin"]
11596        pub const _1: Self = Self::new(1);
11597    }
11598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11599    pub struct Pmr_SPEC;
11600    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11601    impl Pmr {
11602        #[doc = "Use as general I/O pin"]
11603        pub const _0: Self = Self::new(0);
11604
11605        #[doc = "Use as I/O port for peripheral functions"]
11606        pub const _1: Self = Self::new(1);
11607    }
11608}
11609#[doc(hidden)]
11610#[derive(Copy, Clone, Eq, PartialEq)]
11611pub struct P300PfsHa_SPEC;
11612impl crate::sealed::RegSpec for P300PfsHa_SPEC {
11613    type DataType = u16;
11614}
11615
11616#[doc = "Port 300 Pin Function Select Register"]
11617pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
11618
11619impl P300PfsHa {
11620    #[doc = "Port Output Data"]
11621    #[inline(always)]
11622    pub fn podr(
11623        self,
11624    ) -> crate::common::RegisterField<
11625        0,
11626        0x1,
11627        1,
11628        0,
11629        p300pfs_ha::Podr,
11630        p300pfs_ha::Podr,
11631        P300PfsHa_SPEC,
11632        crate::common::RW,
11633    > {
11634        crate::common::RegisterField::<
11635            0,
11636            0x1,
11637            1,
11638            0,
11639            p300pfs_ha::Podr,
11640            p300pfs_ha::Podr,
11641            P300PfsHa_SPEC,
11642            crate::common::RW,
11643        >::from_register(self, 0)
11644    }
11645
11646    #[doc = "Port State"]
11647    #[inline(always)]
11648    pub fn pidr(
11649        self,
11650    ) -> crate::common::RegisterField<
11651        1,
11652        0x1,
11653        1,
11654        0,
11655        p300pfs_ha::Pidr,
11656        p300pfs_ha::Pidr,
11657        P300PfsHa_SPEC,
11658        crate::common::R,
11659    > {
11660        crate::common::RegisterField::<
11661            1,
11662            0x1,
11663            1,
11664            0,
11665            p300pfs_ha::Pidr,
11666            p300pfs_ha::Pidr,
11667            P300PfsHa_SPEC,
11668            crate::common::R,
11669        >::from_register(self, 0)
11670    }
11671
11672    #[doc = "Port Direction"]
11673    #[inline(always)]
11674    pub fn pdr(
11675        self,
11676    ) -> crate::common::RegisterField<
11677        2,
11678        0x1,
11679        1,
11680        0,
11681        p300pfs_ha::Pdr,
11682        p300pfs_ha::Pdr,
11683        P300PfsHa_SPEC,
11684        crate::common::RW,
11685    > {
11686        crate::common::RegisterField::<
11687            2,
11688            0x1,
11689            1,
11690            0,
11691            p300pfs_ha::Pdr,
11692            p300pfs_ha::Pdr,
11693            P300PfsHa_SPEC,
11694            crate::common::RW,
11695        >::from_register(self, 0)
11696    }
11697
11698    #[doc = "Pull-up Control"]
11699    #[inline(always)]
11700    pub fn pcr(
11701        self,
11702    ) -> crate::common::RegisterField<
11703        4,
11704        0x1,
11705        1,
11706        0,
11707        p300pfs_ha::Pcr,
11708        p300pfs_ha::Pcr,
11709        P300PfsHa_SPEC,
11710        crate::common::RW,
11711    > {
11712        crate::common::RegisterField::<
11713            4,
11714            0x1,
11715            1,
11716            0,
11717            p300pfs_ha::Pcr,
11718            p300pfs_ha::Pcr,
11719            P300PfsHa_SPEC,
11720            crate::common::RW,
11721        >::from_register(self, 0)
11722    }
11723
11724    #[doc = "N-Channel Open-Drain Control"]
11725    #[inline(always)]
11726    pub fn ncodr(
11727        self,
11728    ) -> crate::common::RegisterField<
11729        6,
11730        0x1,
11731        1,
11732        0,
11733        p300pfs_ha::Ncodr,
11734        p300pfs_ha::Ncodr,
11735        P300PfsHa_SPEC,
11736        crate::common::RW,
11737    > {
11738        crate::common::RegisterField::<
11739            6,
11740            0x1,
11741            1,
11742            0,
11743            p300pfs_ha::Ncodr,
11744            p300pfs_ha::Ncodr,
11745            P300PfsHa_SPEC,
11746            crate::common::RW,
11747        >::from_register(self, 0)
11748    }
11749
11750    #[doc = "IRQ Input Enable"]
11751    #[inline(always)]
11752    pub fn isel(
11753        self,
11754    ) -> crate::common::RegisterField<
11755        14,
11756        0x1,
11757        1,
11758        0,
11759        p300pfs_ha::Isel,
11760        p300pfs_ha::Isel,
11761        P300PfsHa_SPEC,
11762        crate::common::RW,
11763    > {
11764        crate::common::RegisterField::<
11765            14,
11766            0x1,
11767            1,
11768            0,
11769            p300pfs_ha::Isel,
11770            p300pfs_ha::Isel,
11771            P300PfsHa_SPEC,
11772            crate::common::RW,
11773        >::from_register(self, 0)
11774    }
11775
11776    #[doc = "Analog Input Enable"]
11777    #[inline(always)]
11778    pub fn asel(
11779        self,
11780    ) -> crate::common::RegisterField<
11781        15,
11782        0x1,
11783        1,
11784        0,
11785        p300pfs_ha::Asel,
11786        p300pfs_ha::Asel,
11787        P300PfsHa_SPEC,
11788        crate::common::RW,
11789    > {
11790        crate::common::RegisterField::<
11791            15,
11792            0x1,
11793            1,
11794            0,
11795            p300pfs_ha::Asel,
11796            p300pfs_ha::Asel,
11797            P300PfsHa_SPEC,
11798            crate::common::RW,
11799        >::from_register(self, 0)
11800    }
11801}
11802impl ::core::default::Default for P300PfsHa {
11803    #[inline(always)]
11804    fn default() -> P300PfsHa {
11805        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(0)
11806    }
11807}
11808pub mod p300pfs_ha {
11809
11810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11811    pub struct Podr_SPEC;
11812    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11813    impl Podr {
11814        #[doc = "Output low"]
11815        pub const _0: Self = Self::new(0);
11816
11817        #[doc = "Output high"]
11818        pub const _1: Self = Self::new(1);
11819    }
11820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11821    pub struct Pidr_SPEC;
11822    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11823    impl Pidr {
11824        #[doc = "Low level"]
11825        pub const _0: Self = Self::new(0);
11826
11827        #[doc = "High level"]
11828        pub const _1: Self = Self::new(1);
11829    }
11830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11831    pub struct Pdr_SPEC;
11832    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11833    impl Pdr {
11834        #[doc = "Input (functions as an input pin)"]
11835        pub const _0: Self = Self::new(0);
11836
11837        #[doc = "Output (functions as an output pin)"]
11838        pub const _1: Self = Self::new(1);
11839    }
11840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11841    pub struct Pcr_SPEC;
11842    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11843    impl Pcr {
11844        #[doc = "Disable input pull-up"]
11845        pub const _0: Self = Self::new(0);
11846
11847        #[doc = "Enable input pull-up"]
11848        pub const _1: Self = Self::new(1);
11849    }
11850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11851    pub struct Ncodr_SPEC;
11852    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11853    impl Ncodr {
11854        #[doc = "Output CMOS"]
11855        pub const _0: Self = Self::new(0);
11856
11857        #[doc = "Output NMOS open-drain"]
11858        pub const _1: Self = Self::new(1);
11859    }
11860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11861    pub struct Isel_SPEC;
11862    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11863    impl Isel {
11864        #[doc = "Do not use as IRQn input pin"]
11865        pub const _0: Self = Self::new(0);
11866
11867        #[doc = "Use as IRQn input pin"]
11868        pub const _1: Self = Self::new(1);
11869    }
11870    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11871    pub struct Asel_SPEC;
11872    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11873    impl Asel {
11874        #[doc = "Do not use as analog pin"]
11875        pub const _0: Self = Self::new(0);
11876
11877        #[doc = "Use as analog pin"]
11878        pub const _1: Self = Self::new(1);
11879    }
11880}
11881#[doc(hidden)]
11882#[derive(Copy, Clone, Eq, PartialEq)]
11883pub struct P300PfsBy_SPEC;
11884impl crate::sealed::RegSpec for P300PfsBy_SPEC {
11885    type DataType = u8;
11886}
11887
11888#[doc = "Port 300 Pin Function Select Register"]
11889pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
11890
11891impl P300PfsBy {
11892    #[doc = "Port Output Data"]
11893    #[inline(always)]
11894    pub fn podr(
11895        self,
11896    ) -> crate::common::RegisterField<
11897        0,
11898        0x1,
11899        1,
11900        0,
11901        p300pfs_by::Podr,
11902        p300pfs_by::Podr,
11903        P300PfsBy_SPEC,
11904        crate::common::RW,
11905    > {
11906        crate::common::RegisterField::<
11907            0,
11908            0x1,
11909            1,
11910            0,
11911            p300pfs_by::Podr,
11912            p300pfs_by::Podr,
11913            P300PfsBy_SPEC,
11914            crate::common::RW,
11915        >::from_register(self, 0)
11916    }
11917
11918    #[doc = "Port State"]
11919    #[inline(always)]
11920    pub fn pidr(
11921        self,
11922    ) -> crate::common::RegisterField<
11923        1,
11924        0x1,
11925        1,
11926        0,
11927        p300pfs_by::Pidr,
11928        p300pfs_by::Pidr,
11929        P300PfsBy_SPEC,
11930        crate::common::R,
11931    > {
11932        crate::common::RegisterField::<
11933            1,
11934            0x1,
11935            1,
11936            0,
11937            p300pfs_by::Pidr,
11938            p300pfs_by::Pidr,
11939            P300PfsBy_SPEC,
11940            crate::common::R,
11941        >::from_register(self, 0)
11942    }
11943
11944    #[doc = "Port Direction"]
11945    #[inline(always)]
11946    pub fn pdr(
11947        self,
11948    ) -> crate::common::RegisterField<
11949        2,
11950        0x1,
11951        1,
11952        0,
11953        p300pfs_by::Pdr,
11954        p300pfs_by::Pdr,
11955        P300PfsBy_SPEC,
11956        crate::common::RW,
11957    > {
11958        crate::common::RegisterField::<
11959            2,
11960            0x1,
11961            1,
11962            0,
11963            p300pfs_by::Pdr,
11964            p300pfs_by::Pdr,
11965            P300PfsBy_SPEC,
11966            crate::common::RW,
11967        >::from_register(self, 0)
11968    }
11969
11970    #[doc = "Pull-up Control"]
11971    #[inline(always)]
11972    pub fn pcr(
11973        self,
11974    ) -> crate::common::RegisterField<
11975        4,
11976        0x1,
11977        1,
11978        0,
11979        p300pfs_by::Pcr,
11980        p300pfs_by::Pcr,
11981        P300PfsBy_SPEC,
11982        crate::common::RW,
11983    > {
11984        crate::common::RegisterField::<
11985            4,
11986            0x1,
11987            1,
11988            0,
11989            p300pfs_by::Pcr,
11990            p300pfs_by::Pcr,
11991            P300PfsBy_SPEC,
11992            crate::common::RW,
11993        >::from_register(self, 0)
11994    }
11995
11996    #[doc = "N-Channel Open-Drain Control"]
11997    #[inline(always)]
11998    pub fn ncodr(
11999        self,
12000    ) -> crate::common::RegisterField<
12001        6,
12002        0x1,
12003        1,
12004        0,
12005        p300pfs_by::Ncodr,
12006        p300pfs_by::Ncodr,
12007        P300PfsBy_SPEC,
12008        crate::common::RW,
12009    > {
12010        crate::common::RegisterField::<
12011            6,
12012            0x1,
12013            1,
12014            0,
12015            p300pfs_by::Ncodr,
12016            p300pfs_by::Ncodr,
12017            P300PfsBy_SPEC,
12018            crate::common::RW,
12019        >::from_register(self, 0)
12020    }
12021}
12022impl ::core::default::Default for P300PfsBy {
12023    #[inline(always)]
12024    fn default() -> P300PfsBy {
12025        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(0)
12026    }
12027}
12028pub mod p300pfs_by {
12029
12030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12031    pub struct Podr_SPEC;
12032    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12033    impl Podr {
12034        #[doc = "Output low"]
12035        pub const _0: Self = Self::new(0);
12036
12037        #[doc = "Output high"]
12038        pub const _1: Self = Self::new(1);
12039    }
12040    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12041    pub struct Pidr_SPEC;
12042    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12043    impl Pidr {
12044        #[doc = "Low level"]
12045        pub const _0: Self = Self::new(0);
12046
12047        #[doc = "High level"]
12048        pub const _1: Self = Self::new(1);
12049    }
12050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12051    pub struct Pdr_SPEC;
12052    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12053    impl Pdr {
12054        #[doc = "Input (functions as an input pin)"]
12055        pub const _0: Self = Self::new(0);
12056
12057        #[doc = "Output (functions as an output pin)"]
12058        pub const _1: Self = Self::new(1);
12059    }
12060    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12061    pub struct Pcr_SPEC;
12062    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12063    impl Pcr {
12064        #[doc = "Disable input pull-up"]
12065        pub const _0: Self = Self::new(0);
12066
12067        #[doc = "Enable input pull-up"]
12068        pub const _1: Self = Self::new(1);
12069    }
12070    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12071    pub struct Ncodr_SPEC;
12072    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12073    impl Ncodr {
12074        #[doc = "Output CMOS"]
12075        pub const _0: Self = Self::new(0);
12076
12077        #[doc = "Output NMOS open-drain"]
12078        pub const _1: Self = Self::new(1);
12079    }
12080}
12081#[doc(hidden)]
12082#[derive(Copy, Clone, Eq, PartialEq)]
12083pub struct P30Pfs_SPEC;
12084impl crate::sealed::RegSpec for P30Pfs_SPEC {
12085    type DataType = u32;
12086}
12087
12088#[doc = "Port 30%s Pin Function Select Register"]
12089pub type P30Pfs = crate::RegValueT<P30Pfs_SPEC>;
12090
12091impl P30Pfs {
12092    #[doc = "Port Output Data"]
12093    #[inline(always)]
12094    pub fn podr(
12095        self,
12096    ) -> crate::common::RegisterField<
12097        0,
12098        0x1,
12099        1,
12100        0,
12101        p30pfs::Podr,
12102        p30pfs::Podr,
12103        P30Pfs_SPEC,
12104        crate::common::RW,
12105    > {
12106        crate::common::RegisterField::<
12107            0,
12108            0x1,
12109            1,
12110            0,
12111            p30pfs::Podr,
12112            p30pfs::Podr,
12113            P30Pfs_SPEC,
12114            crate::common::RW,
12115        >::from_register(self, 0)
12116    }
12117
12118    #[doc = "Port State"]
12119    #[inline(always)]
12120    pub fn pidr(
12121        self,
12122    ) -> crate::common::RegisterField<
12123        1,
12124        0x1,
12125        1,
12126        0,
12127        p30pfs::Pidr,
12128        p30pfs::Pidr,
12129        P30Pfs_SPEC,
12130        crate::common::R,
12131    > {
12132        crate::common::RegisterField::<
12133            1,
12134            0x1,
12135            1,
12136            0,
12137            p30pfs::Pidr,
12138            p30pfs::Pidr,
12139            P30Pfs_SPEC,
12140            crate::common::R,
12141        >::from_register(self, 0)
12142    }
12143
12144    #[doc = "Port Direction"]
12145    #[inline(always)]
12146    pub fn pdr(
12147        self,
12148    ) -> crate::common::RegisterField<
12149        2,
12150        0x1,
12151        1,
12152        0,
12153        p30pfs::Pdr,
12154        p30pfs::Pdr,
12155        P30Pfs_SPEC,
12156        crate::common::RW,
12157    > {
12158        crate::common::RegisterField::<
12159            2,
12160            0x1,
12161            1,
12162            0,
12163            p30pfs::Pdr,
12164            p30pfs::Pdr,
12165            P30Pfs_SPEC,
12166            crate::common::RW,
12167        >::from_register(self, 0)
12168    }
12169
12170    #[doc = "Pull-up Control"]
12171    #[inline(always)]
12172    pub fn pcr(
12173        self,
12174    ) -> crate::common::RegisterField<
12175        4,
12176        0x1,
12177        1,
12178        0,
12179        p30pfs::Pcr,
12180        p30pfs::Pcr,
12181        P30Pfs_SPEC,
12182        crate::common::RW,
12183    > {
12184        crate::common::RegisterField::<
12185            4,
12186            0x1,
12187            1,
12188            0,
12189            p30pfs::Pcr,
12190            p30pfs::Pcr,
12191            P30Pfs_SPEC,
12192            crate::common::RW,
12193        >::from_register(self, 0)
12194    }
12195
12196    #[doc = "N-Channel Open-Drain Control"]
12197    #[inline(always)]
12198    pub fn ncodr(
12199        self,
12200    ) -> crate::common::RegisterField<
12201        6,
12202        0x1,
12203        1,
12204        0,
12205        p30pfs::Ncodr,
12206        p30pfs::Ncodr,
12207        P30Pfs_SPEC,
12208        crate::common::RW,
12209    > {
12210        crate::common::RegisterField::<
12211            6,
12212            0x1,
12213            1,
12214            0,
12215            p30pfs::Ncodr,
12216            p30pfs::Ncodr,
12217            P30Pfs_SPEC,
12218            crate::common::RW,
12219        >::from_register(self, 0)
12220    }
12221
12222    #[doc = "IRQ Input Enable"]
12223    #[inline(always)]
12224    pub fn isel(
12225        self,
12226    ) -> crate::common::RegisterField<
12227        14,
12228        0x1,
12229        1,
12230        0,
12231        p30pfs::Isel,
12232        p30pfs::Isel,
12233        P30Pfs_SPEC,
12234        crate::common::RW,
12235    > {
12236        crate::common::RegisterField::<
12237            14,
12238            0x1,
12239            1,
12240            0,
12241            p30pfs::Isel,
12242            p30pfs::Isel,
12243            P30Pfs_SPEC,
12244            crate::common::RW,
12245        >::from_register(self, 0)
12246    }
12247
12248    #[doc = "Analog Input Enable"]
12249    #[inline(always)]
12250    pub fn asel(
12251        self,
12252    ) -> crate::common::RegisterField<
12253        15,
12254        0x1,
12255        1,
12256        0,
12257        p30pfs::Asel,
12258        p30pfs::Asel,
12259        P30Pfs_SPEC,
12260        crate::common::RW,
12261    > {
12262        crate::common::RegisterField::<
12263            15,
12264            0x1,
12265            1,
12266            0,
12267            p30pfs::Asel,
12268            p30pfs::Asel,
12269            P30Pfs_SPEC,
12270            crate::common::RW,
12271        >::from_register(self, 0)
12272    }
12273
12274    #[doc = "Port Mode Control"]
12275    #[inline(always)]
12276    pub fn pmr(
12277        self,
12278    ) -> crate::common::RegisterField<
12279        16,
12280        0x1,
12281        1,
12282        0,
12283        p30pfs::Pmr,
12284        p30pfs::Pmr,
12285        P30Pfs_SPEC,
12286        crate::common::RW,
12287    > {
12288        crate::common::RegisterField::<
12289            16,
12290            0x1,
12291            1,
12292            0,
12293            p30pfs::Pmr,
12294            p30pfs::Pmr,
12295            P30Pfs_SPEC,
12296            crate::common::RW,
12297        >::from_register(self, 0)
12298    }
12299
12300    #[doc = "Peripheral Select"]
12301    #[inline(always)]
12302    pub fn psel(
12303        self,
12304    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P30Pfs_SPEC, crate::common::RW> {
12305        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P30Pfs_SPEC,crate::common::RW>::from_register(self,0)
12306    }
12307}
12308impl ::core::default::Default for P30Pfs {
12309    #[inline(always)]
12310    fn default() -> P30Pfs {
12311        <crate::RegValueT<P30Pfs_SPEC> as RegisterValue<_>>::new(0)
12312    }
12313}
12314pub mod p30pfs {
12315
12316    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12317    pub struct Podr_SPEC;
12318    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12319    impl Podr {
12320        #[doc = "Output low"]
12321        pub const _0: Self = Self::new(0);
12322
12323        #[doc = "Output high"]
12324        pub const _1: Self = Self::new(1);
12325    }
12326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12327    pub struct Pidr_SPEC;
12328    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12329    impl Pidr {
12330        #[doc = "Low level"]
12331        pub const _0: Self = Self::new(0);
12332
12333        #[doc = "High level"]
12334        pub const _1: Self = Self::new(1);
12335    }
12336    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12337    pub struct Pdr_SPEC;
12338    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12339    impl Pdr {
12340        #[doc = "Input (functions as an input pin)"]
12341        pub const _0: Self = Self::new(0);
12342
12343        #[doc = "Output (functions as an output pin)"]
12344        pub const _1: Self = Self::new(1);
12345    }
12346    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12347    pub struct Pcr_SPEC;
12348    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12349    impl Pcr {
12350        #[doc = "Disable input pull-up"]
12351        pub const _0: Self = Self::new(0);
12352
12353        #[doc = "Enable input pull-up"]
12354        pub const _1: Self = Self::new(1);
12355    }
12356    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12357    pub struct Ncodr_SPEC;
12358    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12359    impl Ncodr {
12360        #[doc = "Output CMOS"]
12361        pub const _0: Self = Self::new(0);
12362
12363        #[doc = "Output NMOS open-drain"]
12364        pub const _1: Self = Self::new(1);
12365    }
12366    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12367    pub struct Isel_SPEC;
12368    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12369    impl Isel {
12370        #[doc = "Do not use as IRQn input pin"]
12371        pub const _0: Self = Self::new(0);
12372
12373        #[doc = "Use as IRQn input pin"]
12374        pub const _1: Self = Self::new(1);
12375    }
12376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12377    pub struct Asel_SPEC;
12378    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12379    impl Asel {
12380        #[doc = "Do not use as analog pin"]
12381        pub const _0: Self = Self::new(0);
12382
12383        #[doc = "Use as analog pin"]
12384        pub const _1: Self = Self::new(1);
12385    }
12386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12387    pub struct Pmr_SPEC;
12388    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
12389    impl Pmr {
12390        #[doc = "Use as general I/O pin"]
12391        pub const _0: Self = Self::new(0);
12392
12393        #[doc = "Use as I/O port for peripheral functions"]
12394        pub const _1: Self = Self::new(1);
12395    }
12396}
12397#[doc(hidden)]
12398#[derive(Copy, Clone, Eq, PartialEq)]
12399pub struct P30PfsHa_SPEC;
12400impl crate::sealed::RegSpec for P30PfsHa_SPEC {
12401    type DataType = u16;
12402}
12403
12404#[doc = "Port 30%s Pin Function Select Register"]
12405pub type P30PfsHa = crate::RegValueT<P30PfsHa_SPEC>;
12406
12407impl P30PfsHa {
12408    #[doc = "Port Output Data"]
12409    #[inline(always)]
12410    pub fn podr(
12411        self,
12412    ) -> crate::common::RegisterField<
12413        0,
12414        0x1,
12415        1,
12416        0,
12417        p30pfs_ha::Podr,
12418        p30pfs_ha::Podr,
12419        P30PfsHa_SPEC,
12420        crate::common::RW,
12421    > {
12422        crate::common::RegisterField::<
12423            0,
12424            0x1,
12425            1,
12426            0,
12427            p30pfs_ha::Podr,
12428            p30pfs_ha::Podr,
12429            P30PfsHa_SPEC,
12430            crate::common::RW,
12431        >::from_register(self, 0)
12432    }
12433
12434    #[doc = "Port State"]
12435    #[inline(always)]
12436    pub fn pidr(
12437        self,
12438    ) -> crate::common::RegisterField<
12439        1,
12440        0x1,
12441        1,
12442        0,
12443        p30pfs_ha::Pidr,
12444        p30pfs_ha::Pidr,
12445        P30PfsHa_SPEC,
12446        crate::common::R,
12447    > {
12448        crate::common::RegisterField::<
12449            1,
12450            0x1,
12451            1,
12452            0,
12453            p30pfs_ha::Pidr,
12454            p30pfs_ha::Pidr,
12455            P30PfsHa_SPEC,
12456            crate::common::R,
12457        >::from_register(self, 0)
12458    }
12459
12460    #[doc = "Port Direction"]
12461    #[inline(always)]
12462    pub fn pdr(
12463        self,
12464    ) -> crate::common::RegisterField<
12465        2,
12466        0x1,
12467        1,
12468        0,
12469        p30pfs_ha::Pdr,
12470        p30pfs_ha::Pdr,
12471        P30PfsHa_SPEC,
12472        crate::common::RW,
12473    > {
12474        crate::common::RegisterField::<
12475            2,
12476            0x1,
12477            1,
12478            0,
12479            p30pfs_ha::Pdr,
12480            p30pfs_ha::Pdr,
12481            P30PfsHa_SPEC,
12482            crate::common::RW,
12483        >::from_register(self, 0)
12484    }
12485
12486    #[doc = "Pull-up Control"]
12487    #[inline(always)]
12488    pub fn pcr(
12489        self,
12490    ) -> crate::common::RegisterField<
12491        4,
12492        0x1,
12493        1,
12494        0,
12495        p30pfs_ha::Pcr,
12496        p30pfs_ha::Pcr,
12497        P30PfsHa_SPEC,
12498        crate::common::RW,
12499    > {
12500        crate::common::RegisterField::<
12501            4,
12502            0x1,
12503            1,
12504            0,
12505            p30pfs_ha::Pcr,
12506            p30pfs_ha::Pcr,
12507            P30PfsHa_SPEC,
12508            crate::common::RW,
12509        >::from_register(self, 0)
12510    }
12511
12512    #[doc = "N-Channel Open-Drain Control"]
12513    #[inline(always)]
12514    pub fn ncodr(
12515        self,
12516    ) -> crate::common::RegisterField<
12517        6,
12518        0x1,
12519        1,
12520        0,
12521        p30pfs_ha::Ncodr,
12522        p30pfs_ha::Ncodr,
12523        P30PfsHa_SPEC,
12524        crate::common::RW,
12525    > {
12526        crate::common::RegisterField::<
12527            6,
12528            0x1,
12529            1,
12530            0,
12531            p30pfs_ha::Ncodr,
12532            p30pfs_ha::Ncodr,
12533            P30PfsHa_SPEC,
12534            crate::common::RW,
12535        >::from_register(self, 0)
12536    }
12537
12538    #[doc = "IRQ Input Enable"]
12539    #[inline(always)]
12540    pub fn isel(
12541        self,
12542    ) -> crate::common::RegisterField<
12543        14,
12544        0x1,
12545        1,
12546        0,
12547        p30pfs_ha::Isel,
12548        p30pfs_ha::Isel,
12549        P30PfsHa_SPEC,
12550        crate::common::RW,
12551    > {
12552        crate::common::RegisterField::<
12553            14,
12554            0x1,
12555            1,
12556            0,
12557            p30pfs_ha::Isel,
12558            p30pfs_ha::Isel,
12559            P30PfsHa_SPEC,
12560            crate::common::RW,
12561        >::from_register(self, 0)
12562    }
12563
12564    #[doc = "Analog Input Enable"]
12565    #[inline(always)]
12566    pub fn asel(
12567        self,
12568    ) -> crate::common::RegisterField<
12569        15,
12570        0x1,
12571        1,
12572        0,
12573        p30pfs_ha::Asel,
12574        p30pfs_ha::Asel,
12575        P30PfsHa_SPEC,
12576        crate::common::RW,
12577    > {
12578        crate::common::RegisterField::<
12579            15,
12580            0x1,
12581            1,
12582            0,
12583            p30pfs_ha::Asel,
12584            p30pfs_ha::Asel,
12585            P30PfsHa_SPEC,
12586            crate::common::RW,
12587        >::from_register(self, 0)
12588    }
12589}
12590impl ::core::default::Default for P30PfsHa {
12591    #[inline(always)]
12592    fn default() -> P30PfsHa {
12593        <crate::RegValueT<P30PfsHa_SPEC> as RegisterValue<_>>::new(0)
12594    }
12595}
12596pub mod p30pfs_ha {
12597
12598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12599    pub struct Podr_SPEC;
12600    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12601    impl Podr {
12602        #[doc = "Output low"]
12603        pub const _0: Self = Self::new(0);
12604
12605        #[doc = "Output high"]
12606        pub const _1: Self = Self::new(1);
12607    }
12608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12609    pub struct Pidr_SPEC;
12610    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12611    impl Pidr {
12612        #[doc = "Low level"]
12613        pub const _0: Self = Self::new(0);
12614
12615        #[doc = "High level"]
12616        pub const _1: Self = Self::new(1);
12617    }
12618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12619    pub struct Pdr_SPEC;
12620    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12621    impl Pdr {
12622        #[doc = "Input (functions as an input pin)"]
12623        pub const _0: Self = Self::new(0);
12624
12625        #[doc = "Output (functions as an output pin)"]
12626        pub const _1: Self = Self::new(1);
12627    }
12628    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12629    pub struct Pcr_SPEC;
12630    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12631    impl Pcr {
12632        #[doc = "Disable input pull-up"]
12633        pub const _0: Self = Self::new(0);
12634
12635        #[doc = "Enable input pull-up"]
12636        pub const _1: Self = Self::new(1);
12637    }
12638    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12639    pub struct Ncodr_SPEC;
12640    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12641    impl Ncodr {
12642        #[doc = "Output CMOS"]
12643        pub const _0: Self = Self::new(0);
12644
12645        #[doc = "Output NMOS open-drain"]
12646        pub const _1: Self = Self::new(1);
12647    }
12648    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12649    pub struct Isel_SPEC;
12650    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12651    impl Isel {
12652        #[doc = "Do not use as IRQn input pin"]
12653        pub const _0: Self = Self::new(0);
12654
12655        #[doc = "Use as IRQn input pin"]
12656        pub const _1: Self = Self::new(1);
12657    }
12658    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12659    pub struct Asel_SPEC;
12660    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12661    impl Asel {
12662        #[doc = "Do not use as analog pin"]
12663        pub const _0: Self = Self::new(0);
12664
12665        #[doc = "Use as analog pin"]
12666        pub const _1: Self = Self::new(1);
12667    }
12668}
12669#[doc(hidden)]
12670#[derive(Copy, Clone, Eq, PartialEq)]
12671pub struct P30PfsBy_SPEC;
12672impl crate::sealed::RegSpec for P30PfsBy_SPEC {
12673    type DataType = u8;
12674}
12675
12676#[doc = "Port 30%s Pin Function Select Register"]
12677pub type P30PfsBy = crate::RegValueT<P30PfsBy_SPEC>;
12678
12679impl P30PfsBy {
12680    #[doc = "Port Output Data"]
12681    #[inline(always)]
12682    pub fn podr(
12683        self,
12684    ) -> crate::common::RegisterField<
12685        0,
12686        0x1,
12687        1,
12688        0,
12689        p30pfs_by::Podr,
12690        p30pfs_by::Podr,
12691        P30PfsBy_SPEC,
12692        crate::common::RW,
12693    > {
12694        crate::common::RegisterField::<
12695            0,
12696            0x1,
12697            1,
12698            0,
12699            p30pfs_by::Podr,
12700            p30pfs_by::Podr,
12701            P30PfsBy_SPEC,
12702            crate::common::RW,
12703        >::from_register(self, 0)
12704    }
12705
12706    #[doc = "Port State"]
12707    #[inline(always)]
12708    pub fn pidr(
12709        self,
12710    ) -> crate::common::RegisterField<
12711        1,
12712        0x1,
12713        1,
12714        0,
12715        p30pfs_by::Pidr,
12716        p30pfs_by::Pidr,
12717        P30PfsBy_SPEC,
12718        crate::common::R,
12719    > {
12720        crate::common::RegisterField::<
12721            1,
12722            0x1,
12723            1,
12724            0,
12725            p30pfs_by::Pidr,
12726            p30pfs_by::Pidr,
12727            P30PfsBy_SPEC,
12728            crate::common::R,
12729        >::from_register(self, 0)
12730    }
12731
12732    #[doc = "Port Direction"]
12733    #[inline(always)]
12734    pub fn pdr(
12735        self,
12736    ) -> crate::common::RegisterField<
12737        2,
12738        0x1,
12739        1,
12740        0,
12741        p30pfs_by::Pdr,
12742        p30pfs_by::Pdr,
12743        P30PfsBy_SPEC,
12744        crate::common::RW,
12745    > {
12746        crate::common::RegisterField::<
12747            2,
12748            0x1,
12749            1,
12750            0,
12751            p30pfs_by::Pdr,
12752            p30pfs_by::Pdr,
12753            P30PfsBy_SPEC,
12754            crate::common::RW,
12755        >::from_register(self, 0)
12756    }
12757
12758    #[doc = "Pull-up Control"]
12759    #[inline(always)]
12760    pub fn pcr(
12761        self,
12762    ) -> crate::common::RegisterField<
12763        4,
12764        0x1,
12765        1,
12766        0,
12767        p30pfs_by::Pcr,
12768        p30pfs_by::Pcr,
12769        P30PfsBy_SPEC,
12770        crate::common::RW,
12771    > {
12772        crate::common::RegisterField::<
12773            4,
12774            0x1,
12775            1,
12776            0,
12777            p30pfs_by::Pcr,
12778            p30pfs_by::Pcr,
12779            P30PfsBy_SPEC,
12780            crate::common::RW,
12781        >::from_register(self, 0)
12782    }
12783
12784    #[doc = "N-Channel Open-Drain Control"]
12785    #[inline(always)]
12786    pub fn ncodr(
12787        self,
12788    ) -> crate::common::RegisterField<
12789        6,
12790        0x1,
12791        1,
12792        0,
12793        p30pfs_by::Ncodr,
12794        p30pfs_by::Ncodr,
12795        P30PfsBy_SPEC,
12796        crate::common::RW,
12797    > {
12798        crate::common::RegisterField::<
12799            6,
12800            0x1,
12801            1,
12802            0,
12803            p30pfs_by::Ncodr,
12804            p30pfs_by::Ncodr,
12805            P30PfsBy_SPEC,
12806            crate::common::RW,
12807        >::from_register(self, 0)
12808    }
12809}
12810impl ::core::default::Default for P30PfsBy {
12811    #[inline(always)]
12812    fn default() -> P30PfsBy {
12813        <crate::RegValueT<P30PfsBy_SPEC> as RegisterValue<_>>::new(0)
12814    }
12815}
12816pub mod p30pfs_by {
12817
12818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12819    pub struct Podr_SPEC;
12820    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12821    impl Podr {
12822        #[doc = "Output low"]
12823        pub const _0: Self = Self::new(0);
12824
12825        #[doc = "Output high"]
12826        pub const _1: Self = Self::new(1);
12827    }
12828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12829    pub struct Pidr_SPEC;
12830    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12831    impl Pidr {
12832        #[doc = "Low level"]
12833        pub const _0: Self = Self::new(0);
12834
12835        #[doc = "High level"]
12836        pub const _1: Self = Self::new(1);
12837    }
12838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12839    pub struct Pdr_SPEC;
12840    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12841    impl Pdr {
12842        #[doc = "Input (functions as an input pin)"]
12843        pub const _0: Self = Self::new(0);
12844
12845        #[doc = "Output (functions as an output pin)"]
12846        pub const _1: Self = Self::new(1);
12847    }
12848    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12849    pub struct Pcr_SPEC;
12850    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12851    impl Pcr {
12852        #[doc = "Disable input pull-up"]
12853        pub const _0: Self = Self::new(0);
12854
12855        #[doc = "Enable input pull-up"]
12856        pub const _1: Self = Self::new(1);
12857    }
12858    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12859    pub struct Ncodr_SPEC;
12860    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12861    impl Ncodr {
12862        #[doc = "Output CMOS"]
12863        pub const _0: Self = Self::new(0);
12864
12865        #[doc = "Output NMOS open-drain"]
12866        pub const _1: Self = Self::new(1);
12867    }
12868}
12869#[doc(hidden)]
12870#[derive(Copy, Clone, Eq, PartialEq)]
12871pub struct P40Pfs_SPEC;
12872impl crate::sealed::RegSpec for P40Pfs_SPEC {
12873    type DataType = u32;
12874}
12875
12876#[doc = "Port 40%s Pin Function Select Register"]
12877pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
12878
12879impl P40Pfs {
12880    #[doc = "Port Output Data"]
12881    #[inline(always)]
12882    pub fn podr(
12883        self,
12884    ) -> crate::common::RegisterField<
12885        0,
12886        0x1,
12887        1,
12888        0,
12889        p40pfs::Podr,
12890        p40pfs::Podr,
12891        P40Pfs_SPEC,
12892        crate::common::RW,
12893    > {
12894        crate::common::RegisterField::<
12895            0,
12896            0x1,
12897            1,
12898            0,
12899            p40pfs::Podr,
12900            p40pfs::Podr,
12901            P40Pfs_SPEC,
12902            crate::common::RW,
12903        >::from_register(self, 0)
12904    }
12905
12906    #[doc = "Port State"]
12907    #[inline(always)]
12908    pub fn pidr(
12909        self,
12910    ) -> crate::common::RegisterField<
12911        1,
12912        0x1,
12913        1,
12914        0,
12915        p40pfs::Pidr,
12916        p40pfs::Pidr,
12917        P40Pfs_SPEC,
12918        crate::common::R,
12919    > {
12920        crate::common::RegisterField::<
12921            1,
12922            0x1,
12923            1,
12924            0,
12925            p40pfs::Pidr,
12926            p40pfs::Pidr,
12927            P40Pfs_SPEC,
12928            crate::common::R,
12929        >::from_register(self, 0)
12930    }
12931
12932    #[doc = "Port Direction"]
12933    #[inline(always)]
12934    pub fn pdr(
12935        self,
12936    ) -> crate::common::RegisterField<
12937        2,
12938        0x1,
12939        1,
12940        0,
12941        p40pfs::Pdr,
12942        p40pfs::Pdr,
12943        P40Pfs_SPEC,
12944        crate::common::RW,
12945    > {
12946        crate::common::RegisterField::<
12947            2,
12948            0x1,
12949            1,
12950            0,
12951            p40pfs::Pdr,
12952            p40pfs::Pdr,
12953            P40Pfs_SPEC,
12954            crate::common::RW,
12955        >::from_register(self, 0)
12956    }
12957
12958    #[doc = "Pull-up Control"]
12959    #[inline(always)]
12960    pub fn pcr(
12961        self,
12962    ) -> crate::common::RegisterField<
12963        4,
12964        0x1,
12965        1,
12966        0,
12967        p40pfs::Pcr,
12968        p40pfs::Pcr,
12969        P40Pfs_SPEC,
12970        crate::common::RW,
12971    > {
12972        crate::common::RegisterField::<
12973            4,
12974            0x1,
12975            1,
12976            0,
12977            p40pfs::Pcr,
12978            p40pfs::Pcr,
12979            P40Pfs_SPEC,
12980            crate::common::RW,
12981        >::from_register(self, 0)
12982    }
12983
12984    #[doc = "N-Channel Open-Drain Control"]
12985    #[inline(always)]
12986    pub fn ncodr(
12987        self,
12988    ) -> crate::common::RegisterField<
12989        6,
12990        0x1,
12991        1,
12992        0,
12993        p40pfs::Ncodr,
12994        p40pfs::Ncodr,
12995        P40Pfs_SPEC,
12996        crate::common::RW,
12997    > {
12998        crate::common::RegisterField::<
12999            6,
13000            0x1,
13001            1,
13002            0,
13003            p40pfs::Ncodr,
13004            p40pfs::Ncodr,
13005            P40Pfs_SPEC,
13006            crate::common::RW,
13007        >::from_register(self, 0)
13008    }
13009
13010    #[doc = "IRQ Input Enable"]
13011    #[inline(always)]
13012    pub fn isel(
13013        self,
13014    ) -> crate::common::RegisterField<
13015        14,
13016        0x1,
13017        1,
13018        0,
13019        p40pfs::Isel,
13020        p40pfs::Isel,
13021        P40Pfs_SPEC,
13022        crate::common::RW,
13023    > {
13024        crate::common::RegisterField::<
13025            14,
13026            0x1,
13027            1,
13028            0,
13029            p40pfs::Isel,
13030            p40pfs::Isel,
13031            P40Pfs_SPEC,
13032            crate::common::RW,
13033        >::from_register(self, 0)
13034    }
13035
13036    #[doc = "Analog Input Enable"]
13037    #[inline(always)]
13038    pub fn asel(
13039        self,
13040    ) -> crate::common::RegisterField<
13041        15,
13042        0x1,
13043        1,
13044        0,
13045        p40pfs::Asel,
13046        p40pfs::Asel,
13047        P40Pfs_SPEC,
13048        crate::common::RW,
13049    > {
13050        crate::common::RegisterField::<
13051            15,
13052            0x1,
13053            1,
13054            0,
13055            p40pfs::Asel,
13056            p40pfs::Asel,
13057            P40Pfs_SPEC,
13058            crate::common::RW,
13059        >::from_register(self, 0)
13060    }
13061
13062    #[doc = "Port Mode Control"]
13063    #[inline(always)]
13064    pub fn pmr(
13065        self,
13066    ) -> crate::common::RegisterField<
13067        16,
13068        0x1,
13069        1,
13070        0,
13071        p40pfs::Pmr,
13072        p40pfs::Pmr,
13073        P40Pfs_SPEC,
13074        crate::common::RW,
13075    > {
13076        crate::common::RegisterField::<
13077            16,
13078            0x1,
13079            1,
13080            0,
13081            p40pfs::Pmr,
13082            p40pfs::Pmr,
13083            P40Pfs_SPEC,
13084            crate::common::RW,
13085        >::from_register(self, 0)
13086    }
13087
13088    #[doc = "Peripheral Select"]
13089    #[inline(always)]
13090    pub fn psel(
13091        self,
13092    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
13093        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
13094    }
13095}
13096impl ::core::default::Default for P40Pfs {
13097    #[inline(always)]
13098    fn default() -> P40Pfs {
13099        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
13100    }
13101}
13102pub mod p40pfs {
13103
13104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13105    pub struct Podr_SPEC;
13106    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13107    impl Podr {
13108        #[doc = "Output low"]
13109        pub const _0: Self = Self::new(0);
13110
13111        #[doc = "Output high"]
13112        pub const _1: Self = Self::new(1);
13113    }
13114    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13115    pub struct Pidr_SPEC;
13116    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13117    impl Pidr {
13118        #[doc = "Low level"]
13119        pub const _0: Self = Self::new(0);
13120
13121        #[doc = "High level"]
13122        pub const _1: Self = Self::new(1);
13123    }
13124    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13125    pub struct Pdr_SPEC;
13126    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13127    impl Pdr {
13128        #[doc = "Input (functions as an input pin)"]
13129        pub const _0: Self = Self::new(0);
13130
13131        #[doc = "Output (functions as an output pin)"]
13132        pub const _1: Self = Self::new(1);
13133    }
13134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13135    pub struct Pcr_SPEC;
13136    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13137    impl Pcr {
13138        #[doc = "Disable input pull-up"]
13139        pub const _0: Self = Self::new(0);
13140
13141        #[doc = "Enable input pull-up"]
13142        pub const _1: Self = Self::new(1);
13143    }
13144    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13145    pub struct Ncodr_SPEC;
13146    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13147    impl Ncodr {
13148        #[doc = "Output CMOS"]
13149        pub const _0: Self = Self::new(0);
13150
13151        #[doc = "Output NMOS open-drain"]
13152        pub const _1: Self = Self::new(1);
13153    }
13154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13155    pub struct Isel_SPEC;
13156    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13157    impl Isel {
13158        #[doc = "Do not use as IRQn input pin"]
13159        pub const _0: Self = Self::new(0);
13160
13161        #[doc = "Use as IRQn input pin"]
13162        pub const _1: Self = Self::new(1);
13163    }
13164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13165    pub struct Asel_SPEC;
13166    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13167    impl Asel {
13168        #[doc = "Do not use as analog pin"]
13169        pub const _0: Self = Self::new(0);
13170
13171        #[doc = "Use as analog pin"]
13172        pub const _1: Self = Self::new(1);
13173    }
13174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13175    pub struct Pmr_SPEC;
13176    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13177    impl Pmr {
13178        #[doc = "Use as general I/O pin"]
13179        pub const _0: Self = Self::new(0);
13180
13181        #[doc = "Use as I/O port for peripheral functions"]
13182        pub const _1: Self = Self::new(1);
13183    }
13184}
13185#[doc(hidden)]
13186#[derive(Copy, Clone, Eq, PartialEq)]
13187pub struct P40PfsHa_SPEC;
13188impl crate::sealed::RegSpec for P40PfsHa_SPEC {
13189    type DataType = u16;
13190}
13191
13192#[doc = "Port 40%s Pin Function Select Register"]
13193pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
13194
13195impl P40PfsHa {
13196    #[doc = "Port Output Data"]
13197    #[inline(always)]
13198    pub fn podr(
13199        self,
13200    ) -> crate::common::RegisterField<
13201        0,
13202        0x1,
13203        1,
13204        0,
13205        p40pfs_ha::Podr,
13206        p40pfs_ha::Podr,
13207        P40PfsHa_SPEC,
13208        crate::common::RW,
13209    > {
13210        crate::common::RegisterField::<
13211            0,
13212            0x1,
13213            1,
13214            0,
13215            p40pfs_ha::Podr,
13216            p40pfs_ha::Podr,
13217            P40PfsHa_SPEC,
13218            crate::common::RW,
13219        >::from_register(self, 0)
13220    }
13221
13222    #[doc = "Port State"]
13223    #[inline(always)]
13224    pub fn pidr(
13225        self,
13226    ) -> crate::common::RegisterField<
13227        1,
13228        0x1,
13229        1,
13230        0,
13231        p40pfs_ha::Pidr,
13232        p40pfs_ha::Pidr,
13233        P40PfsHa_SPEC,
13234        crate::common::R,
13235    > {
13236        crate::common::RegisterField::<
13237            1,
13238            0x1,
13239            1,
13240            0,
13241            p40pfs_ha::Pidr,
13242            p40pfs_ha::Pidr,
13243            P40PfsHa_SPEC,
13244            crate::common::R,
13245        >::from_register(self, 0)
13246    }
13247
13248    #[doc = "Port Direction"]
13249    #[inline(always)]
13250    pub fn pdr(
13251        self,
13252    ) -> crate::common::RegisterField<
13253        2,
13254        0x1,
13255        1,
13256        0,
13257        p40pfs_ha::Pdr,
13258        p40pfs_ha::Pdr,
13259        P40PfsHa_SPEC,
13260        crate::common::RW,
13261    > {
13262        crate::common::RegisterField::<
13263            2,
13264            0x1,
13265            1,
13266            0,
13267            p40pfs_ha::Pdr,
13268            p40pfs_ha::Pdr,
13269            P40PfsHa_SPEC,
13270            crate::common::RW,
13271        >::from_register(self, 0)
13272    }
13273
13274    #[doc = "Pull-up Control"]
13275    #[inline(always)]
13276    pub fn pcr(
13277        self,
13278    ) -> crate::common::RegisterField<
13279        4,
13280        0x1,
13281        1,
13282        0,
13283        p40pfs_ha::Pcr,
13284        p40pfs_ha::Pcr,
13285        P40PfsHa_SPEC,
13286        crate::common::RW,
13287    > {
13288        crate::common::RegisterField::<
13289            4,
13290            0x1,
13291            1,
13292            0,
13293            p40pfs_ha::Pcr,
13294            p40pfs_ha::Pcr,
13295            P40PfsHa_SPEC,
13296            crate::common::RW,
13297        >::from_register(self, 0)
13298    }
13299
13300    #[doc = "N-Channel Open-Drain Control"]
13301    #[inline(always)]
13302    pub fn ncodr(
13303        self,
13304    ) -> crate::common::RegisterField<
13305        6,
13306        0x1,
13307        1,
13308        0,
13309        p40pfs_ha::Ncodr,
13310        p40pfs_ha::Ncodr,
13311        P40PfsHa_SPEC,
13312        crate::common::RW,
13313    > {
13314        crate::common::RegisterField::<
13315            6,
13316            0x1,
13317            1,
13318            0,
13319            p40pfs_ha::Ncodr,
13320            p40pfs_ha::Ncodr,
13321            P40PfsHa_SPEC,
13322            crate::common::RW,
13323        >::from_register(self, 0)
13324    }
13325
13326    #[doc = "IRQ Input Enable"]
13327    #[inline(always)]
13328    pub fn isel(
13329        self,
13330    ) -> crate::common::RegisterField<
13331        14,
13332        0x1,
13333        1,
13334        0,
13335        p40pfs_ha::Isel,
13336        p40pfs_ha::Isel,
13337        P40PfsHa_SPEC,
13338        crate::common::RW,
13339    > {
13340        crate::common::RegisterField::<
13341            14,
13342            0x1,
13343            1,
13344            0,
13345            p40pfs_ha::Isel,
13346            p40pfs_ha::Isel,
13347            P40PfsHa_SPEC,
13348            crate::common::RW,
13349        >::from_register(self, 0)
13350    }
13351
13352    #[doc = "Analog Input Enable"]
13353    #[inline(always)]
13354    pub fn asel(
13355        self,
13356    ) -> crate::common::RegisterField<
13357        15,
13358        0x1,
13359        1,
13360        0,
13361        p40pfs_ha::Asel,
13362        p40pfs_ha::Asel,
13363        P40PfsHa_SPEC,
13364        crate::common::RW,
13365    > {
13366        crate::common::RegisterField::<
13367            15,
13368            0x1,
13369            1,
13370            0,
13371            p40pfs_ha::Asel,
13372            p40pfs_ha::Asel,
13373            P40PfsHa_SPEC,
13374            crate::common::RW,
13375        >::from_register(self, 0)
13376    }
13377}
13378impl ::core::default::Default for P40PfsHa {
13379    #[inline(always)]
13380    fn default() -> P40PfsHa {
13381        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
13382    }
13383}
13384pub mod p40pfs_ha {
13385
13386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13387    pub struct Podr_SPEC;
13388    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13389    impl Podr {
13390        #[doc = "Output low"]
13391        pub const _0: Self = Self::new(0);
13392
13393        #[doc = "Output high"]
13394        pub const _1: Self = Self::new(1);
13395    }
13396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13397    pub struct Pidr_SPEC;
13398    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13399    impl Pidr {
13400        #[doc = "Low level"]
13401        pub const _0: Self = Self::new(0);
13402
13403        #[doc = "High level"]
13404        pub const _1: Self = Self::new(1);
13405    }
13406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13407    pub struct Pdr_SPEC;
13408    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13409    impl Pdr {
13410        #[doc = "Input (functions as an input pin)"]
13411        pub const _0: Self = Self::new(0);
13412
13413        #[doc = "Output (functions as an output pin)"]
13414        pub const _1: Self = Self::new(1);
13415    }
13416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13417    pub struct Pcr_SPEC;
13418    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13419    impl Pcr {
13420        #[doc = "Disable input pull-up"]
13421        pub const _0: Self = Self::new(0);
13422
13423        #[doc = "Enable input pull-up"]
13424        pub const _1: Self = Self::new(1);
13425    }
13426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13427    pub struct Ncodr_SPEC;
13428    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13429    impl Ncodr {
13430        #[doc = "Output CMOS"]
13431        pub const _0: Self = Self::new(0);
13432
13433        #[doc = "Output NMOS open-drain"]
13434        pub const _1: Self = Self::new(1);
13435    }
13436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13437    pub struct Isel_SPEC;
13438    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13439    impl Isel {
13440        #[doc = "Do not use as IRQn input pin"]
13441        pub const _0: Self = Self::new(0);
13442
13443        #[doc = "Use as IRQn input pin"]
13444        pub const _1: Self = Self::new(1);
13445    }
13446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13447    pub struct Asel_SPEC;
13448    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13449    impl Asel {
13450        #[doc = "Do not use as analog pin"]
13451        pub const _0: Self = Self::new(0);
13452
13453        #[doc = "Use as analog pin"]
13454        pub const _1: Self = Self::new(1);
13455    }
13456}
13457#[doc(hidden)]
13458#[derive(Copy, Clone, Eq, PartialEq)]
13459pub struct P40PfsBy_SPEC;
13460impl crate::sealed::RegSpec for P40PfsBy_SPEC {
13461    type DataType = u8;
13462}
13463
13464#[doc = "Port 40%s Pin Function Select Register"]
13465pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
13466
13467impl P40PfsBy {
13468    #[doc = "Port Output Data"]
13469    #[inline(always)]
13470    pub fn podr(
13471        self,
13472    ) -> crate::common::RegisterField<
13473        0,
13474        0x1,
13475        1,
13476        0,
13477        p40pfs_by::Podr,
13478        p40pfs_by::Podr,
13479        P40PfsBy_SPEC,
13480        crate::common::RW,
13481    > {
13482        crate::common::RegisterField::<
13483            0,
13484            0x1,
13485            1,
13486            0,
13487            p40pfs_by::Podr,
13488            p40pfs_by::Podr,
13489            P40PfsBy_SPEC,
13490            crate::common::RW,
13491        >::from_register(self, 0)
13492    }
13493
13494    #[doc = "Port State"]
13495    #[inline(always)]
13496    pub fn pidr(
13497        self,
13498    ) -> crate::common::RegisterField<
13499        1,
13500        0x1,
13501        1,
13502        0,
13503        p40pfs_by::Pidr,
13504        p40pfs_by::Pidr,
13505        P40PfsBy_SPEC,
13506        crate::common::R,
13507    > {
13508        crate::common::RegisterField::<
13509            1,
13510            0x1,
13511            1,
13512            0,
13513            p40pfs_by::Pidr,
13514            p40pfs_by::Pidr,
13515            P40PfsBy_SPEC,
13516            crate::common::R,
13517        >::from_register(self, 0)
13518    }
13519
13520    #[doc = "Port Direction"]
13521    #[inline(always)]
13522    pub fn pdr(
13523        self,
13524    ) -> crate::common::RegisterField<
13525        2,
13526        0x1,
13527        1,
13528        0,
13529        p40pfs_by::Pdr,
13530        p40pfs_by::Pdr,
13531        P40PfsBy_SPEC,
13532        crate::common::RW,
13533    > {
13534        crate::common::RegisterField::<
13535            2,
13536            0x1,
13537            1,
13538            0,
13539            p40pfs_by::Pdr,
13540            p40pfs_by::Pdr,
13541            P40PfsBy_SPEC,
13542            crate::common::RW,
13543        >::from_register(self, 0)
13544    }
13545
13546    #[doc = "Pull-up Control"]
13547    #[inline(always)]
13548    pub fn pcr(
13549        self,
13550    ) -> crate::common::RegisterField<
13551        4,
13552        0x1,
13553        1,
13554        0,
13555        p40pfs_by::Pcr,
13556        p40pfs_by::Pcr,
13557        P40PfsBy_SPEC,
13558        crate::common::RW,
13559    > {
13560        crate::common::RegisterField::<
13561            4,
13562            0x1,
13563            1,
13564            0,
13565            p40pfs_by::Pcr,
13566            p40pfs_by::Pcr,
13567            P40PfsBy_SPEC,
13568            crate::common::RW,
13569        >::from_register(self, 0)
13570    }
13571
13572    #[doc = "N-Channel Open-Drain Control"]
13573    #[inline(always)]
13574    pub fn ncodr(
13575        self,
13576    ) -> crate::common::RegisterField<
13577        6,
13578        0x1,
13579        1,
13580        0,
13581        p40pfs_by::Ncodr,
13582        p40pfs_by::Ncodr,
13583        P40PfsBy_SPEC,
13584        crate::common::RW,
13585    > {
13586        crate::common::RegisterField::<
13587            6,
13588            0x1,
13589            1,
13590            0,
13591            p40pfs_by::Ncodr,
13592            p40pfs_by::Ncodr,
13593            P40PfsBy_SPEC,
13594            crate::common::RW,
13595        >::from_register(self, 0)
13596    }
13597}
13598impl ::core::default::Default for P40PfsBy {
13599    #[inline(always)]
13600    fn default() -> P40PfsBy {
13601        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
13602    }
13603}
13604pub mod p40pfs_by {
13605
13606    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13607    pub struct Podr_SPEC;
13608    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13609    impl Podr {
13610        #[doc = "Output low"]
13611        pub const _0: Self = Self::new(0);
13612
13613        #[doc = "Output high"]
13614        pub const _1: Self = Self::new(1);
13615    }
13616    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13617    pub struct Pidr_SPEC;
13618    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13619    impl Pidr {
13620        #[doc = "Low level"]
13621        pub const _0: Self = Self::new(0);
13622
13623        #[doc = "High level"]
13624        pub const _1: Self = Self::new(1);
13625    }
13626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13627    pub struct Pdr_SPEC;
13628    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13629    impl Pdr {
13630        #[doc = "Input (functions as an input pin)"]
13631        pub const _0: Self = Self::new(0);
13632
13633        #[doc = "Output (functions as an output pin)"]
13634        pub const _1: Self = Self::new(1);
13635    }
13636    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13637    pub struct Pcr_SPEC;
13638    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13639    impl Pcr {
13640        #[doc = "Disable input pull-up"]
13641        pub const _0: Self = Self::new(0);
13642
13643        #[doc = "Enable input pull-up"]
13644        pub const _1: Self = Self::new(1);
13645    }
13646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13647    pub struct Ncodr_SPEC;
13648    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13649    impl Ncodr {
13650        #[doc = "Output CMOS"]
13651        pub const _0: Self = Self::new(0);
13652
13653        #[doc = "Output NMOS open-drain"]
13654        pub const _1: Self = Self::new(1);
13655    }
13656}
13657#[doc(hidden)]
13658#[derive(Copy, Clone, Eq, PartialEq)]
13659pub struct P4Pfs_SPEC;
13660impl crate::sealed::RegSpec for P4Pfs_SPEC {
13661    type DataType = u32;
13662}
13663
13664#[doc = "Port 4%s Pin Function Select Register"]
13665pub type P4Pfs = crate::RegValueT<P4Pfs_SPEC>;
13666
13667impl P4Pfs {
13668    #[doc = "Port Output Data"]
13669    #[inline(always)]
13670    pub fn podr(
13671        self,
13672    ) -> crate::common::RegisterField<
13673        0,
13674        0x1,
13675        1,
13676        0,
13677        p4pfs::Podr,
13678        p4pfs::Podr,
13679        P4Pfs_SPEC,
13680        crate::common::RW,
13681    > {
13682        crate::common::RegisterField::<
13683            0,
13684            0x1,
13685            1,
13686            0,
13687            p4pfs::Podr,
13688            p4pfs::Podr,
13689            P4Pfs_SPEC,
13690            crate::common::RW,
13691        >::from_register(self, 0)
13692    }
13693
13694    #[doc = "Port State"]
13695    #[inline(always)]
13696    pub fn pidr(
13697        self,
13698    ) -> crate::common::RegisterField<
13699        1,
13700        0x1,
13701        1,
13702        0,
13703        p4pfs::Pidr,
13704        p4pfs::Pidr,
13705        P4Pfs_SPEC,
13706        crate::common::R,
13707    > {
13708        crate::common::RegisterField::<
13709            1,
13710            0x1,
13711            1,
13712            0,
13713            p4pfs::Pidr,
13714            p4pfs::Pidr,
13715            P4Pfs_SPEC,
13716            crate::common::R,
13717        >::from_register(self, 0)
13718    }
13719
13720    #[doc = "Port Direction"]
13721    #[inline(always)]
13722    pub fn pdr(
13723        self,
13724    ) -> crate::common::RegisterField<
13725        2,
13726        0x1,
13727        1,
13728        0,
13729        p4pfs::Pdr,
13730        p4pfs::Pdr,
13731        P4Pfs_SPEC,
13732        crate::common::RW,
13733    > {
13734        crate::common::RegisterField::<
13735            2,
13736            0x1,
13737            1,
13738            0,
13739            p4pfs::Pdr,
13740            p4pfs::Pdr,
13741            P4Pfs_SPEC,
13742            crate::common::RW,
13743        >::from_register(self, 0)
13744    }
13745
13746    #[doc = "Pull-up Control"]
13747    #[inline(always)]
13748    pub fn pcr(
13749        self,
13750    ) -> crate::common::RegisterField<
13751        4,
13752        0x1,
13753        1,
13754        0,
13755        p4pfs::Pcr,
13756        p4pfs::Pcr,
13757        P4Pfs_SPEC,
13758        crate::common::RW,
13759    > {
13760        crate::common::RegisterField::<
13761            4,
13762            0x1,
13763            1,
13764            0,
13765            p4pfs::Pcr,
13766            p4pfs::Pcr,
13767            P4Pfs_SPEC,
13768            crate::common::RW,
13769        >::from_register(self, 0)
13770    }
13771
13772    #[doc = "N-Channel Open-Drain Control"]
13773    #[inline(always)]
13774    pub fn ncodr(
13775        self,
13776    ) -> crate::common::RegisterField<
13777        6,
13778        0x1,
13779        1,
13780        0,
13781        p4pfs::Ncodr,
13782        p4pfs::Ncodr,
13783        P4Pfs_SPEC,
13784        crate::common::RW,
13785    > {
13786        crate::common::RegisterField::<
13787            6,
13788            0x1,
13789            1,
13790            0,
13791            p4pfs::Ncodr,
13792            p4pfs::Ncodr,
13793            P4Pfs_SPEC,
13794            crate::common::RW,
13795        >::from_register(self, 0)
13796    }
13797
13798    #[doc = "IRQ Input Enable"]
13799    #[inline(always)]
13800    pub fn isel(
13801        self,
13802    ) -> crate::common::RegisterField<
13803        14,
13804        0x1,
13805        1,
13806        0,
13807        p4pfs::Isel,
13808        p4pfs::Isel,
13809        P4Pfs_SPEC,
13810        crate::common::RW,
13811    > {
13812        crate::common::RegisterField::<
13813            14,
13814            0x1,
13815            1,
13816            0,
13817            p4pfs::Isel,
13818            p4pfs::Isel,
13819            P4Pfs_SPEC,
13820            crate::common::RW,
13821        >::from_register(self, 0)
13822    }
13823
13824    #[doc = "Analog Input Enable"]
13825    #[inline(always)]
13826    pub fn asel(
13827        self,
13828    ) -> crate::common::RegisterField<
13829        15,
13830        0x1,
13831        1,
13832        0,
13833        p4pfs::Asel,
13834        p4pfs::Asel,
13835        P4Pfs_SPEC,
13836        crate::common::RW,
13837    > {
13838        crate::common::RegisterField::<
13839            15,
13840            0x1,
13841            1,
13842            0,
13843            p4pfs::Asel,
13844            p4pfs::Asel,
13845            P4Pfs_SPEC,
13846            crate::common::RW,
13847        >::from_register(self, 0)
13848    }
13849
13850    #[doc = "Port Mode Control"]
13851    #[inline(always)]
13852    pub fn pmr(
13853        self,
13854    ) -> crate::common::RegisterField<
13855        16,
13856        0x1,
13857        1,
13858        0,
13859        p4pfs::Pmr,
13860        p4pfs::Pmr,
13861        P4Pfs_SPEC,
13862        crate::common::RW,
13863    > {
13864        crate::common::RegisterField::<
13865            16,
13866            0x1,
13867            1,
13868            0,
13869            p4pfs::Pmr,
13870            p4pfs::Pmr,
13871            P4Pfs_SPEC,
13872            crate::common::RW,
13873        >::from_register(self, 0)
13874    }
13875
13876    #[doc = "Peripheral Select"]
13877    #[inline(always)]
13878    pub fn psel(
13879        self,
13880    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P4Pfs_SPEC, crate::common::RW> {
13881        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P4Pfs_SPEC,crate::common::RW>::from_register(self,0)
13882    }
13883}
13884impl ::core::default::Default for P4Pfs {
13885    #[inline(always)]
13886    fn default() -> P4Pfs {
13887        <crate::RegValueT<P4Pfs_SPEC> as RegisterValue<_>>::new(0)
13888    }
13889}
13890pub mod p4pfs {
13891
13892    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13893    pub struct Podr_SPEC;
13894    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13895    impl Podr {
13896        #[doc = "Output low"]
13897        pub const _0: Self = Self::new(0);
13898
13899        #[doc = "Output high"]
13900        pub const _1: Self = Self::new(1);
13901    }
13902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13903    pub struct Pidr_SPEC;
13904    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13905    impl Pidr {
13906        #[doc = "Low level"]
13907        pub const _0: Self = Self::new(0);
13908
13909        #[doc = "High level"]
13910        pub const _1: Self = Self::new(1);
13911    }
13912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13913    pub struct Pdr_SPEC;
13914    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13915    impl Pdr {
13916        #[doc = "Input (functions as an input pin)"]
13917        pub const _0: Self = Self::new(0);
13918
13919        #[doc = "Output (functions as an output pin)"]
13920        pub const _1: Self = Self::new(1);
13921    }
13922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13923    pub struct Pcr_SPEC;
13924    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13925    impl Pcr {
13926        #[doc = "Disable input pull-up"]
13927        pub const _0: Self = Self::new(0);
13928
13929        #[doc = "Enable input pull-up"]
13930        pub const _1: Self = Self::new(1);
13931    }
13932    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13933    pub struct Ncodr_SPEC;
13934    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13935    impl Ncodr {
13936        #[doc = "Output CMOS"]
13937        pub const _0: Self = Self::new(0);
13938
13939        #[doc = "Output NMOS open-drain"]
13940        pub const _1: Self = Self::new(1);
13941    }
13942    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13943    pub struct Isel_SPEC;
13944    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13945    impl Isel {
13946        #[doc = "Do not use as IRQn input pin"]
13947        pub const _0: Self = Self::new(0);
13948
13949        #[doc = "Use as IRQn input pin"]
13950        pub const _1: Self = Self::new(1);
13951    }
13952    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13953    pub struct Asel_SPEC;
13954    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13955    impl Asel {
13956        #[doc = "Do not use as analog pin"]
13957        pub const _0: Self = Self::new(0);
13958
13959        #[doc = "Use as analog pin"]
13960        pub const _1: Self = Self::new(1);
13961    }
13962    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13963    pub struct Pmr_SPEC;
13964    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13965    impl Pmr {
13966        #[doc = "Use as general I/O pin"]
13967        pub const _0: Self = Self::new(0);
13968
13969        #[doc = "Use as I/O port for peripheral functions"]
13970        pub const _1: Self = Self::new(1);
13971    }
13972}
13973#[doc(hidden)]
13974#[derive(Copy, Clone, Eq, PartialEq)]
13975pub struct P4PfsHa_SPEC;
13976impl crate::sealed::RegSpec for P4PfsHa_SPEC {
13977    type DataType = u16;
13978}
13979
13980#[doc = "Port 4%s Pin Function Select Register"]
13981pub type P4PfsHa = crate::RegValueT<P4PfsHa_SPEC>;
13982
13983impl P4PfsHa {
13984    #[doc = "Port Output Data"]
13985    #[inline(always)]
13986    pub fn podr(
13987        self,
13988    ) -> crate::common::RegisterField<
13989        0,
13990        0x1,
13991        1,
13992        0,
13993        p4pfs_ha::Podr,
13994        p4pfs_ha::Podr,
13995        P4PfsHa_SPEC,
13996        crate::common::RW,
13997    > {
13998        crate::common::RegisterField::<
13999            0,
14000            0x1,
14001            1,
14002            0,
14003            p4pfs_ha::Podr,
14004            p4pfs_ha::Podr,
14005            P4PfsHa_SPEC,
14006            crate::common::RW,
14007        >::from_register(self, 0)
14008    }
14009
14010    #[doc = "Port State"]
14011    #[inline(always)]
14012    pub fn pidr(
14013        self,
14014    ) -> crate::common::RegisterField<
14015        1,
14016        0x1,
14017        1,
14018        0,
14019        p4pfs_ha::Pidr,
14020        p4pfs_ha::Pidr,
14021        P4PfsHa_SPEC,
14022        crate::common::R,
14023    > {
14024        crate::common::RegisterField::<
14025            1,
14026            0x1,
14027            1,
14028            0,
14029            p4pfs_ha::Pidr,
14030            p4pfs_ha::Pidr,
14031            P4PfsHa_SPEC,
14032            crate::common::R,
14033        >::from_register(self, 0)
14034    }
14035
14036    #[doc = "Port Direction"]
14037    #[inline(always)]
14038    pub fn pdr(
14039        self,
14040    ) -> crate::common::RegisterField<
14041        2,
14042        0x1,
14043        1,
14044        0,
14045        p4pfs_ha::Pdr,
14046        p4pfs_ha::Pdr,
14047        P4PfsHa_SPEC,
14048        crate::common::RW,
14049    > {
14050        crate::common::RegisterField::<
14051            2,
14052            0x1,
14053            1,
14054            0,
14055            p4pfs_ha::Pdr,
14056            p4pfs_ha::Pdr,
14057            P4PfsHa_SPEC,
14058            crate::common::RW,
14059        >::from_register(self, 0)
14060    }
14061
14062    #[doc = "Pull-up Control"]
14063    #[inline(always)]
14064    pub fn pcr(
14065        self,
14066    ) -> crate::common::RegisterField<
14067        4,
14068        0x1,
14069        1,
14070        0,
14071        p4pfs_ha::Pcr,
14072        p4pfs_ha::Pcr,
14073        P4PfsHa_SPEC,
14074        crate::common::RW,
14075    > {
14076        crate::common::RegisterField::<
14077            4,
14078            0x1,
14079            1,
14080            0,
14081            p4pfs_ha::Pcr,
14082            p4pfs_ha::Pcr,
14083            P4PfsHa_SPEC,
14084            crate::common::RW,
14085        >::from_register(self, 0)
14086    }
14087
14088    #[doc = "N-Channel Open-Drain Control"]
14089    #[inline(always)]
14090    pub fn ncodr(
14091        self,
14092    ) -> crate::common::RegisterField<
14093        6,
14094        0x1,
14095        1,
14096        0,
14097        p4pfs_ha::Ncodr,
14098        p4pfs_ha::Ncodr,
14099        P4PfsHa_SPEC,
14100        crate::common::RW,
14101    > {
14102        crate::common::RegisterField::<
14103            6,
14104            0x1,
14105            1,
14106            0,
14107            p4pfs_ha::Ncodr,
14108            p4pfs_ha::Ncodr,
14109            P4PfsHa_SPEC,
14110            crate::common::RW,
14111        >::from_register(self, 0)
14112    }
14113
14114    #[doc = "IRQ Input Enable"]
14115    #[inline(always)]
14116    pub fn isel(
14117        self,
14118    ) -> crate::common::RegisterField<
14119        14,
14120        0x1,
14121        1,
14122        0,
14123        p4pfs_ha::Isel,
14124        p4pfs_ha::Isel,
14125        P4PfsHa_SPEC,
14126        crate::common::RW,
14127    > {
14128        crate::common::RegisterField::<
14129            14,
14130            0x1,
14131            1,
14132            0,
14133            p4pfs_ha::Isel,
14134            p4pfs_ha::Isel,
14135            P4PfsHa_SPEC,
14136            crate::common::RW,
14137        >::from_register(self, 0)
14138    }
14139
14140    #[doc = "Analog Input Enable"]
14141    #[inline(always)]
14142    pub fn asel(
14143        self,
14144    ) -> crate::common::RegisterField<
14145        15,
14146        0x1,
14147        1,
14148        0,
14149        p4pfs_ha::Asel,
14150        p4pfs_ha::Asel,
14151        P4PfsHa_SPEC,
14152        crate::common::RW,
14153    > {
14154        crate::common::RegisterField::<
14155            15,
14156            0x1,
14157            1,
14158            0,
14159            p4pfs_ha::Asel,
14160            p4pfs_ha::Asel,
14161            P4PfsHa_SPEC,
14162            crate::common::RW,
14163        >::from_register(self, 0)
14164    }
14165}
14166impl ::core::default::Default for P4PfsHa {
14167    #[inline(always)]
14168    fn default() -> P4PfsHa {
14169        <crate::RegValueT<P4PfsHa_SPEC> as RegisterValue<_>>::new(0)
14170    }
14171}
14172pub mod p4pfs_ha {
14173
14174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14175    pub struct Podr_SPEC;
14176    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14177    impl Podr {
14178        #[doc = "Output low"]
14179        pub const _0: Self = Self::new(0);
14180
14181        #[doc = "Output high"]
14182        pub const _1: Self = Self::new(1);
14183    }
14184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14185    pub struct Pidr_SPEC;
14186    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14187    impl Pidr {
14188        #[doc = "Low level"]
14189        pub const _0: Self = Self::new(0);
14190
14191        #[doc = "High level"]
14192        pub const _1: Self = Self::new(1);
14193    }
14194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14195    pub struct Pdr_SPEC;
14196    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14197    impl Pdr {
14198        #[doc = "Input (functions as an input pin)"]
14199        pub const _0: Self = Self::new(0);
14200
14201        #[doc = "Output (functions as an output pin)"]
14202        pub const _1: Self = Self::new(1);
14203    }
14204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14205    pub struct Pcr_SPEC;
14206    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14207    impl Pcr {
14208        #[doc = "Disable input pull-up"]
14209        pub const _0: Self = Self::new(0);
14210
14211        #[doc = "Enable input pull-up"]
14212        pub const _1: Self = Self::new(1);
14213    }
14214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14215    pub struct Ncodr_SPEC;
14216    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14217    impl Ncodr {
14218        #[doc = "Output CMOS"]
14219        pub const _0: Self = Self::new(0);
14220
14221        #[doc = "Output NMOS open-drain"]
14222        pub const _1: Self = Self::new(1);
14223    }
14224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14225    pub struct Isel_SPEC;
14226    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14227    impl Isel {
14228        #[doc = "Do not use as IRQn input pin"]
14229        pub const _0: Self = Self::new(0);
14230
14231        #[doc = "Use as IRQn input pin"]
14232        pub const _1: Self = Self::new(1);
14233    }
14234    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14235    pub struct Asel_SPEC;
14236    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14237    impl Asel {
14238        #[doc = "Do not use as analog pin"]
14239        pub const _0: Self = Self::new(0);
14240
14241        #[doc = "Use as analog pin"]
14242        pub const _1: Self = Self::new(1);
14243    }
14244}
14245#[doc(hidden)]
14246#[derive(Copy, Clone, Eq, PartialEq)]
14247pub struct P4PfsBy_SPEC;
14248impl crate::sealed::RegSpec for P4PfsBy_SPEC {
14249    type DataType = u8;
14250}
14251
14252#[doc = "Port 4%s Pin Function Select Register"]
14253pub type P4PfsBy = crate::RegValueT<P4PfsBy_SPEC>;
14254
14255impl P4PfsBy {
14256    #[doc = "Port Output Data"]
14257    #[inline(always)]
14258    pub fn podr(
14259        self,
14260    ) -> crate::common::RegisterField<
14261        0,
14262        0x1,
14263        1,
14264        0,
14265        p4pfs_by::Podr,
14266        p4pfs_by::Podr,
14267        P4PfsBy_SPEC,
14268        crate::common::RW,
14269    > {
14270        crate::common::RegisterField::<
14271            0,
14272            0x1,
14273            1,
14274            0,
14275            p4pfs_by::Podr,
14276            p4pfs_by::Podr,
14277            P4PfsBy_SPEC,
14278            crate::common::RW,
14279        >::from_register(self, 0)
14280    }
14281
14282    #[doc = "Port State"]
14283    #[inline(always)]
14284    pub fn pidr(
14285        self,
14286    ) -> crate::common::RegisterField<
14287        1,
14288        0x1,
14289        1,
14290        0,
14291        p4pfs_by::Pidr,
14292        p4pfs_by::Pidr,
14293        P4PfsBy_SPEC,
14294        crate::common::R,
14295    > {
14296        crate::common::RegisterField::<
14297            1,
14298            0x1,
14299            1,
14300            0,
14301            p4pfs_by::Pidr,
14302            p4pfs_by::Pidr,
14303            P4PfsBy_SPEC,
14304            crate::common::R,
14305        >::from_register(self, 0)
14306    }
14307
14308    #[doc = "Port Direction"]
14309    #[inline(always)]
14310    pub fn pdr(
14311        self,
14312    ) -> crate::common::RegisterField<
14313        2,
14314        0x1,
14315        1,
14316        0,
14317        p4pfs_by::Pdr,
14318        p4pfs_by::Pdr,
14319        P4PfsBy_SPEC,
14320        crate::common::RW,
14321    > {
14322        crate::common::RegisterField::<
14323            2,
14324            0x1,
14325            1,
14326            0,
14327            p4pfs_by::Pdr,
14328            p4pfs_by::Pdr,
14329            P4PfsBy_SPEC,
14330            crate::common::RW,
14331        >::from_register(self, 0)
14332    }
14333
14334    #[doc = "Pull-up Control"]
14335    #[inline(always)]
14336    pub fn pcr(
14337        self,
14338    ) -> crate::common::RegisterField<
14339        4,
14340        0x1,
14341        1,
14342        0,
14343        p4pfs_by::Pcr,
14344        p4pfs_by::Pcr,
14345        P4PfsBy_SPEC,
14346        crate::common::RW,
14347    > {
14348        crate::common::RegisterField::<
14349            4,
14350            0x1,
14351            1,
14352            0,
14353            p4pfs_by::Pcr,
14354            p4pfs_by::Pcr,
14355            P4PfsBy_SPEC,
14356            crate::common::RW,
14357        >::from_register(self, 0)
14358    }
14359
14360    #[doc = "N-Channel Open-Drain Control"]
14361    #[inline(always)]
14362    pub fn ncodr(
14363        self,
14364    ) -> crate::common::RegisterField<
14365        6,
14366        0x1,
14367        1,
14368        0,
14369        p4pfs_by::Ncodr,
14370        p4pfs_by::Ncodr,
14371        P4PfsBy_SPEC,
14372        crate::common::RW,
14373    > {
14374        crate::common::RegisterField::<
14375            6,
14376            0x1,
14377            1,
14378            0,
14379            p4pfs_by::Ncodr,
14380            p4pfs_by::Ncodr,
14381            P4PfsBy_SPEC,
14382            crate::common::RW,
14383        >::from_register(self, 0)
14384    }
14385}
14386impl ::core::default::Default for P4PfsBy {
14387    #[inline(always)]
14388    fn default() -> P4PfsBy {
14389        <crate::RegValueT<P4PfsBy_SPEC> as RegisterValue<_>>::new(0)
14390    }
14391}
14392pub mod p4pfs_by {
14393
14394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14395    pub struct Podr_SPEC;
14396    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14397    impl Podr {
14398        #[doc = "Output low"]
14399        pub const _0: Self = Self::new(0);
14400
14401        #[doc = "Output high"]
14402        pub const _1: Self = Self::new(1);
14403    }
14404    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14405    pub struct Pidr_SPEC;
14406    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14407    impl Pidr {
14408        #[doc = "Low level"]
14409        pub const _0: Self = Self::new(0);
14410
14411        #[doc = "High level"]
14412        pub const _1: Self = Self::new(1);
14413    }
14414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14415    pub struct Pdr_SPEC;
14416    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14417    impl Pdr {
14418        #[doc = "Input (functions as an input pin)"]
14419        pub const _0: Self = Self::new(0);
14420
14421        #[doc = "Output (functions as an output pin)"]
14422        pub const _1: Self = Self::new(1);
14423    }
14424    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14425    pub struct Pcr_SPEC;
14426    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14427    impl Pcr {
14428        #[doc = "Disable input pull-up"]
14429        pub const _0: Self = Self::new(0);
14430
14431        #[doc = "Enable input pull-up"]
14432        pub const _1: Self = Self::new(1);
14433    }
14434    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14435    pub struct Ncodr_SPEC;
14436    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14437    impl Ncodr {
14438        #[doc = "Output CMOS"]
14439        pub const _0: Self = Self::new(0);
14440
14441        #[doc = "Output NMOS open-drain"]
14442        pub const _1: Self = Self::new(1);
14443    }
14444}
14445#[doc(hidden)]
14446#[derive(Copy, Clone, Eq, PartialEq)]
14447pub struct P50Pfs_SPEC;
14448impl crate::sealed::RegSpec for P50Pfs_SPEC {
14449    type DataType = u32;
14450}
14451
14452#[doc = "Port 50%s Pin Function Select Register"]
14453pub type P50Pfs = crate::RegValueT<P50Pfs_SPEC>;
14454
14455impl P50Pfs {
14456    #[doc = "Port Output Data"]
14457    #[inline(always)]
14458    pub fn podr(
14459        self,
14460    ) -> crate::common::RegisterField<
14461        0,
14462        0x1,
14463        1,
14464        0,
14465        p50pfs::Podr,
14466        p50pfs::Podr,
14467        P50Pfs_SPEC,
14468        crate::common::RW,
14469    > {
14470        crate::common::RegisterField::<
14471            0,
14472            0x1,
14473            1,
14474            0,
14475            p50pfs::Podr,
14476            p50pfs::Podr,
14477            P50Pfs_SPEC,
14478            crate::common::RW,
14479        >::from_register(self, 0)
14480    }
14481
14482    #[doc = "Port State"]
14483    #[inline(always)]
14484    pub fn pidr(
14485        self,
14486    ) -> crate::common::RegisterField<
14487        1,
14488        0x1,
14489        1,
14490        0,
14491        p50pfs::Pidr,
14492        p50pfs::Pidr,
14493        P50Pfs_SPEC,
14494        crate::common::R,
14495    > {
14496        crate::common::RegisterField::<
14497            1,
14498            0x1,
14499            1,
14500            0,
14501            p50pfs::Pidr,
14502            p50pfs::Pidr,
14503            P50Pfs_SPEC,
14504            crate::common::R,
14505        >::from_register(self, 0)
14506    }
14507
14508    #[doc = "Port Direction"]
14509    #[inline(always)]
14510    pub fn pdr(
14511        self,
14512    ) -> crate::common::RegisterField<
14513        2,
14514        0x1,
14515        1,
14516        0,
14517        p50pfs::Pdr,
14518        p50pfs::Pdr,
14519        P50Pfs_SPEC,
14520        crate::common::RW,
14521    > {
14522        crate::common::RegisterField::<
14523            2,
14524            0x1,
14525            1,
14526            0,
14527            p50pfs::Pdr,
14528            p50pfs::Pdr,
14529            P50Pfs_SPEC,
14530            crate::common::RW,
14531        >::from_register(self, 0)
14532    }
14533
14534    #[doc = "Pull-up Control"]
14535    #[inline(always)]
14536    pub fn pcr(
14537        self,
14538    ) -> crate::common::RegisterField<
14539        4,
14540        0x1,
14541        1,
14542        0,
14543        p50pfs::Pcr,
14544        p50pfs::Pcr,
14545        P50Pfs_SPEC,
14546        crate::common::RW,
14547    > {
14548        crate::common::RegisterField::<
14549            4,
14550            0x1,
14551            1,
14552            0,
14553            p50pfs::Pcr,
14554            p50pfs::Pcr,
14555            P50Pfs_SPEC,
14556            crate::common::RW,
14557        >::from_register(self, 0)
14558    }
14559
14560    #[doc = "N-Channel Open-Drain Control"]
14561    #[inline(always)]
14562    pub fn ncodr(
14563        self,
14564    ) -> crate::common::RegisterField<
14565        6,
14566        0x1,
14567        1,
14568        0,
14569        p50pfs::Ncodr,
14570        p50pfs::Ncodr,
14571        P50Pfs_SPEC,
14572        crate::common::RW,
14573    > {
14574        crate::common::RegisterField::<
14575            6,
14576            0x1,
14577            1,
14578            0,
14579            p50pfs::Ncodr,
14580            p50pfs::Ncodr,
14581            P50Pfs_SPEC,
14582            crate::common::RW,
14583        >::from_register(self, 0)
14584    }
14585
14586    #[doc = "IRQ Input Enable"]
14587    #[inline(always)]
14588    pub fn isel(
14589        self,
14590    ) -> crate::common::RegisterField<
14591        14,
14592        0x1,
14593        1,
14594        0,
14595        p50pfs::Isel,
14596        p50pfs::Isel,
14597        P50Pfs_SPEC,
14598        crate::common::RW,
14599    > {
14600        crate::common::RegisterField::<
14601            14,
14602            0x1,
14603            1,
14604            0,
14605            p50pfs::Isel,
14606            p50pfs::Isel,
14607            P50Pfs_SPEC,
14608            crate::common::RW,
14609        >::from_register(self, 0)
14610    }
14611
14612    #[doc = "Analog Input Enable"]
14613    #[inline(always)]
14614    pub fn asel(
14615        self,
14616    ) -> crate::common::RegisterField<
14617        15,
14618        0x1,
14619        1,
14620        0,
14621        p50pfs::Asel,
14622        p50pfs::Asel,
14623        P50Pfs_SPEC,
14624        crate::common::RW,
14625    > {
14626        crate::common::RegisterField::<
14627            15,
14628            0x1,
14629            1,
14630            0,
14631            p50pfs::Asel,
14632            p50pfs::Asel,
14633            P50Pfs_SPEC,
14634            crate::common::RW,
14635        >::from_register(self, 0)
14636    }
14637
14638    #[doc = "Port Mode Control"]
14639    #[inline(always)]
14640    pub fn pmr(
14641        self,
14642    ) -> crate::common::RegisterField<
14643        16,
14644        0x1,
14645        1,
14646        0,
14647        p50pfs::Pmr,
14648        p50pfs::Pmr,
14649        P50Pfs_SPEC,
14650        crate::common::RW,
14651    > {
14652        crate::common::RegisterField::<
14653            16,
14654            0x1,
14655            1,
14656            0,
14657            p50pfs::Pmr,
14658            p50pfs::Pmr,
14659            P50Pfs_SPEC,
14660            crate::common::RW,
14661        >::from_register(self, 0)
14662    }
14663
14664    #[doc = "Peripheral Select"]
14665    #[inline(always)]
14666    pub fn psel(
14667        self,
14668    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P50Pfs_SPEC, crate::common::RW> {
14669        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P50Pfs_SPEC,crate::common::RW>::from_register(self,0)
14670    }
14671}
14672impl ::core::default::Default for P50Pfs {
14673    #[inline(always)]
14674    fn default() -> P50Pfs {
14675        <crate::RegValueT<P50Pfs_SPEC> as RegisterValue<_>>::new(0)
14676    }
14677}
14678pub mod p50pfs {
14679
14680    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14681    pub struct Podr_SPEC;
14682    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14683    impl Podr {
14684        #[doc = "Output low"]
14685        pub const _0: Self = Self::new(0);
14686
14687        #[doc = "Output high"]
14688        pub const _1: Self = Self::new(1);
14689    }
14690    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14691    pub struct Pidr_SPEC;
14692    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14693    impl Pidr {
14694        #[doc = "Low level"]
14695        pub const _0: Self = Self::new(0);
14696
14697        #[doc = "High level"]
14698        pub const _1: Self = Self::new(1);
14699    }
14700    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14701    pub struct Pdr_SPEC;
14702    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14703    impl Pdr {
14704        #[doc = "Input (functions as an input pin)"]
14705        pub const _0: Self = Self::new(0);
14706
14707        #[doc = "Output (functions as an output pin)"]
14708        pub const _1: Self = Self::new(1);
14709    }
14710    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14711    pub struct Pcr_SPEC;
14712    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14713    impl Pcr {
14714        #[doc = "Disable input pull-up"]
14715        pub const _0: Self = Self::new(0);
14716
14717        #[doc = "Enable input pull-up"]
14718        pub const _1: Self = Self::new(1);
14719    }
14720    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14721    pub struct Ncodr_SPEC;
14722    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14723    impl Ncodr {
14724        #[doc = "Output CMOS"]
14725        pub const _0: Self = Self::new(0);
14726
14727        #[doc = "Output NMOS open-drain"]
14728        pub const _1: Self = Self::new(1);
14729    }
14730    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14731    pub struct Isel_SPEC;
14732    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14733    impl Isel {
14734        #[doc = "Do not use as IRQn input pin"]
14735        pub const _0: Self = Self::new(0);
14736
14737        #[doc = "Use as IRQn input pin"]
14738        pub const _1: Self = Self::new(1);
14739    }
14740    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14741    pub struct Asel_SPEC;
14742    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14743    impl Asel {
14744        #[doc = "Do not use as analog pin"]
14745        pub const _0: Self = Self::new(0);
14746
14747        #[doc = "Use as analog pin"]
14748        pub const _1: Self = Self::new(1);
14749    }
14750    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14751    pub struct Pmr_SPEC;
14752    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
14753    impl Pmr {
14754        #[doc = "Use as general I/O pin"]
14755        pub const _0: Self = Self::new(0);
14756
14757        #[doc = "Use as I/O port for peripheral functions"]
14758        pub const _1: Self = Self::new(1);
14759    }
14760}
14761#[doc(hidden)]
14762#[derive(Copy, Clone, Eq, PartialEq)]
14763pub struct P50PfsHa_SPEC;
14764impl crate::sealed::RegSpec for P50PfsHa_SPEC {
14765    type DataType = u16;
14766}
14767
14768#[doc = "Port 50%s Pin Function Select Register"]
14769pub type P50PfsHa = crate::RegValueT<P50PfsHa_SPEC>;
14770
14771impl P50PfsHa {
14772    #[doc = "Port Output Data"]
14773    #[inline(always)]
14774    pub fn podr(
14775        self,
14776    ) -> crate::common::RegisterField<
14777        0,
14778        0x1,
14779        1,
14780        0,
14781        p50pfs_ha::Podr,
14782        p50pfs_ha::Podr,
14783        P50PfsHa_SPEC,
14784        crate::common::RW,
14785    > {
14786        crate::common::RegisterField::<
14787            0,
14788            0x1,
14789            1,
14790            0,
14791            p50pfs_ha::Podr,
14792            p50pfs_ha::Podr,
14793            P50PfsHa_SPEC,
14794            crate::common::RW,
14795        >::from_register(self, 0)
14796    }
14797
14798    #[doc = "Port State"]
14799    #[inline(always)]
14800    pub fn pidr(
14801        self,
14802    ) -> crate::common::RegisterField<
14803        1,
14804        0x1,
14805        1,
14806        0,
14807        p50pfs_ha::Pidr,
14808        p50pfs_ha::Pidr,
14809        P50PfsHa_SPEC,
14810        crate::common::R,
14811    > {
14812        crate::common::RegisterField::<
14813            1,
14814            0x1,
14815            1,
14816            0,
14817            p50pfs_ha::Pidr,
14818            p50pfs_ha::Pidr,
14819            P50PfsHa_SPEC,
14820            crate::common::R,
14821        >::from_register(self, 0)
14822    }
14823
14824    #[doc = "Port Direction"]
14825    #[inline(always)]
14826    pub fn pdr(
14827        self,
14828    ) -> crate::common::RegisterField<
14829        2,
14830        0x1,
14831        1,
14832        0,
14833        p50pfs_ha::Pdr,
14834        p50pfs_ha::Pdr,
14835        P50PfsHa_SPEC,
14836        crate::common::RW,
14837    > {
14838        crate::common::RegisterField::<
14839            2,
14840            0x1,
14841            1,
14842            0,
14843            p50pfs_ha::Pdr,
14844            p50pfs_ha::Pdr,
14845            P50PfsHa_SPEC,
14846            crate::common::RW,
14847        >::from_register(self, 0)
14848    }
14849
14850    #[doc = "Pull-up Control"]
14851    #[inline(always)]
14852    pub fn pcr(
14853        self,
14854    ) -> crate::common::RegisterField<
14855        4,
14856        0x1,
14857        1,
14858        0,
14859        p50pfs_ha::Pcr,
14860        p50pfs_ha::Pcr,
14861        P50PfsHa_SPEC,
14862        crate::common::RW,
14863    > {
14864        crate::common::RegisterField::<
14865            4,
14866            0x1,
14867            1,
14868            0,
14869            p50pfs_ha::Pcr,
14870            p50pfs_ha::Pcr,
14871            P50PfsHa_SPEC,
14872            crate::common::RW,
14873        >::from_register(self, 0)
14874    }
14875
14876    #[doc = "N-Channel Open-Drain Control"]
14877    #[inline(always)]
14878    pub fn ncodr(
14879        self,
14880    ) -> crate::common::RegisterField<
14881        6,
14882        0x1,
14883        1,
14884        0,
14885        p50pfs_ha::Ncodr,
14886        p50pfs_ha::Ncodr,
14887        P50PfsHa_SPEC,
14888        crate::common::RW,
14889    > {
14890        crate::common::RegisterField::<
14891            6,
14892            0x1,
14893            1,
14894            0,
14895            p50pfs_ha::Ncodr,
14896            p50pfs_ha::Ncodr,
14897            P50PfsHa_SPEC,
14898            crate::common::RW,
14899        >::from_register(self, 0)
14900    }
14901
14902    #[doc = "IRQ Input Enable"]
14903    #[inline(always)]
14904    pub fn isel(
14905        self,
14906    ) -> crate::common::RegisterField<
14907        14,
14908        0x1,
14909        1,
14910        0,
14911        p50pfs_ha::Isel,
14912        p50pfs_ha::Isel,
14913        P50PfsHa_SPEC,
14914        crate::common::RW,
14915    > {
14916        crate::common::RegisterField::<
14917            14,
14918            0x1,
14919            1,
14920            0,
14921            p50pfs_ha::Isel,
14922            p50pfs_ha::Isel,
14923            P50PfsHa_SPEC,
14924            crate::common::RW,
14925        >::from_register(self, 0)
14926    }
14927
14928    #[doc = "Analog Input Enable"]
14929    #[inline(always)]
14930    pub fn asel(
14931        self,
14932    ) -> crate::common::RegisterField<
14933        15,
14934        0x1,
14935        1,
14936        0,
14937        p50pfs_ha::Asel,
14938        p50pfs_ha::Asel,
14939        P50PfsHa_SPEC,
14940        crate::common::RW,
14941    > {
14942        crate::common::RegisterField::<
14943            15,
14944            0x1,
14945            1,
14946            0,
14947            p50pfs_ha::Asel,
14948            p50pfs_ha::Asel,
14949            P50PfsHa_SPEC,
14950            crate::common::RW,
14951        >::from_register(self, 0)
14952    }
14953}
14954impl ::core::default::Default for P50PfsHa {
14955    #[inline(always)]
14956    fn default() -> P50PfsHa {
14957        <crate::RegValueT<P50PfsHa_SPEC> as RegisterValue<_>>::new(0)
14958    }
14959}
14960pub mod p50pfs_ha {
14961
14962    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14963    pub struct Podr_SPEC;
14964    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14965    impl Podr {
14966        #[doc = "Output low"]
14967        pub const _0: Self = Self::new(0);
14968
14969        #[doc = "Output high"]
14970        pub const _1: Self = Self::new(1);
14971    }
14972    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14973    pub struct Pidr_SPEC;
14974    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14975    impl Pidr {
14976        #[doc = "Low level"]
14977        pub const _0: Self = Self::new(0);
14978
14979        #[doc = "High level"]
14980        pub const _1: Self = Self::new(1);
14981    }
14982    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14983    pub struct Pdr_SPEC;
14984    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14985    impl Pdr {
14986        #[doc = "Input (functions as an input pin)"]
14987        pub const _0: Self = Self::new(0);
14988
14989        #[doc = "Output (functions as an output pin)"]
14990        pub const _1: Self = Self::new(1);
14991    }
14992    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14993    pub struct Pcr_SPEC;
14994    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14995    impl Pcr {
14996        #[doc = "Disable input pull-up"]
14997        pub const _0: Self = Self::new(0);
14998
14999        #[doc = "Enable input pull-up"]
15000        pub const _1: Self = Self::new(1);
15001    }
15002    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15003    pub struct Ncodr_SPEC;
15004    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15005    impl Ncodr {
15006        #[doc = "Output CMOS"]
15007        pub const _0: Self = Self::new(0);
15008
15009        #[doc = "Output NMOS open-drain"]
15010        pub const _1: Self = Self::new(1);
15011    }
15012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15013    pub struct Isel_SPEC;
15014    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15015    impl Isel {
15016        #[doc = "Do not use as IRQn input pin"]
15017        pub const _0: Self = Self::new(0);
15018
15019        #[doc = "Use as IRQn input pin"]
15020        pub const _1: Self = Self::new(1);
15021    }
15022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15023    pub struct Asel_SPEC;
15024    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15025    impl Asel {
15026        #[doc = "Do not use as analog pin"]
15027        pub const _0: Self = Self::new(0);
15028
15029        #[doc = "Use as analog pin"]
15030        pub const _1: Self = Self::new(1);
15031    }
15032}
15033#[doc(hidden)]
15034#[derive(Copy, Clone, Eq, PartialEq)]
15035pub struct P50PfsBy_SPEC;
15036impl crate::sealed::RegSpec for P50PfsBy_SPEC {
15037    type DataType = u8;
15038}
15039
15040#[doc = "Port 50%s Pin Function Select Register"]
15041pub type P50PfsBy = crate::RegValueT<P50PfsBy_SPEC>;
15042
15043impl P50PfsBy {
15044    #[doc = "Port Output Data"]
15045    #[inline(always)]
15046    pub fn podr(
15047        self,
15048    ) -> crate::common::RegisterField<
15049        0,
15050        0x1,
15051        1,
15052        0,
15053        p50pfs_by::Podr,
15054        p50pfs_by::Podr,
15055        P50PfsBy_SPEC,
15056        crate::common::RW,
15057    > {
15058        crate::common::RegisterField::<
15059            0,
15060            0x1,
15061            1,
15062            0,
15063            p50pfs_by::Podr,
15064            p50pfs_by::Podr,
15065            P50PfsBy_SPEC,
15066            crate::common::RW,
15067        >::from_register(self, 0)
15068    }
15069
15070    #[doc = "Port State"]
15071    #[inline(always)]
15072    pub fn pidr(
15073        self,
15074    ) -> crate::common::RegisterField<
15075        1,
15076        0x1,
15077        1,
15078        0,
15079        p50pfs_by::Pidr,
15080        p50pfs_by::Pidr,
15081        P50PfsBy_SPEC,
15082        crate::common::R,
15083    > {
15084        crate::common::RegisterField::<
15085            1,
15086            0x1,
15087            1,
15088            0,
15089            p50pfs_by::Pidr,
15090            p50pfs_by::Pidr,
15091            P50PfsBy_SPEC,
15092            crate::common::R,
15093        >::from_register(self, 0)
15094    }
15095
15096    #[doc = "Port Direction"]
15097    #[inline(always)]
15098    pub fn pdr(
15099        self,
15100    ) -> crate::common::RegisterField<
15101        2,
15102        0x1,
15103        1,
15104        0,
15105        p50pfs_by::Pdr,
15106        p50pfs_by::Pdr,
15107        P50PfsBy_SPEC,
15108        crate::common::RW,
15109    > {
15110        crate::common::RegisterField::<
15111            2,
15112            0x1,
15113            1,
15114            0,
15115            p50pfs_by::Pdr,
15116            p50pfs_by::Pdr,
15117            P50PfsBy_SPEC,
15118            crate::common::RW,
15119        >::from_register(self, 0)
15120    }
15121
15122    #[doc = "Pull-up Control"]
15123    #[inline(always)]
15124    pub fn pcr(
15125        self,
15126    ) -> crate::common::RegisterField<
15127        4,
15128        0x1,
15129        1,
15130        0,
15131        p50pfs_by::Pcr,
15132        p50pfs_by::Pcr,
15133        P50PfsBy_SPEC,
15134        crate::common::RW,
15135    > {
15136        crate::common::RegisterField::<
15137            4,
15138            0x1,
15139            1,
15140            0,
15141            p50pfs_by::Pcr,
15142            p50pfs_by::Pcr,
15143            P50PfsBy_SPEC,
15144            crate::common::RW,
15145        >::from_register(self, 0)
15146    }
15147
15148    #[doc = "N-Channel Open-Drain Control"]
15149    #[inline(always)]
15150    pub fn ncodr(
15151        self,
15152    ) -> crate::common::RegisterField<
15153        6,
15154        0x1,
15155        1,
15156        0,
15157        p50pfs_by::Ncodr,
15158        p50pfs_by::Ncodr,
15159        P50PfsBy_SPEC,
15160        crate::common::RW,
15161    > {
15162        crate::common::RegisterField::<
15163            6,
15164            0x1,
15165            1,
15166            0,
15167            p50pfs_by::Ncodr,
15168            p50pfs_by::Ncodr,
15169            P50PfsBy_SPEC,
15170            crate::common::RW,
15171        >::from_register(self, 0)
15172    }
15173}
15174impl ::core::default::Default for P50PfsBy {
15175    #[inline(always)]
15176    fn default() -> P50PfsBy {
15177        <crate::RegValueT<P50PfsBy_SPEC> as RegisterValue<_>>::new(0)
15178    }
15179}
15180pub mod p50pfs_by {
15181
15182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15183    pub struct Podr_SPEC;
15184    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15185    impl Podr {
15186        #[doc = "Output low"]
15187        pub const _0: Self = Self::new(0);
15188
15189        #[doc = "Output high"]
15190        pub const _1: Self = Self::new(1);
15191    }
15192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15193    pub struct Pidr_SPEC;
15194    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15195    impl Pidr {
15196        #[doc = "Low level"]
15197        pub const _0: Self = Self::new(0);
15198
15199        #[doc = "High level"]
15200        pub const _1: Self = Self::new(1);
15201    }
15202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15203    pub struct Pdr_SPEC;
15204    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15205    impl Pdr {
15206        #[doc = "Input (functions as an input pin)"]
15207        pub const _0: Self = Self::new(0);
15208
15209        #[doc = "Output (functions as an output pin)"]
15210        pub const _1: Self = Self::new(1);
15211    }
15212    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15213    pub struct Pcr_SPEC;
15214    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15215    impl Pcr {
15216        #[doc = "Disable input pull-up"]
15217        pub const _0: Self = Self::new(0);
15218
15219        #[doc = "Enable input pull-up"]
15220        pub const _1: Self = Self::new(1);
15221    }
15222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15223    pub struct Ncodr_SPEC;
15224    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15225    impl Ncodr {
15226        #[doc = "Output CMOS"]
15227        pub const _0: Self = Self::new(0);
15228
15229        #[doc = "Output NMOS open-drain"]
15230        pub const _1: Self = Self::new(1);
15231    }
15232}
15233#[doc(hidden)]
15234#[derive(Copy, Clone, Eq, PartialEq)]
15235pub struct P9Pfs_SPEC;
15236impl crate::sealed::RegSpec for P9Pfs_SPEC {
15237    type DataType = u32;
15238}
15239
15240#[doc = "Port 9%s Pin Function Select Register"]
15241pub type P9Pfs = crate::RegValueT<P9Pfs_SPEC>;
15242
15243impl P9Pfs {
15244    #[doc = "Port Output Data"]
15245    #[inline(always)]
15246    pub fn podr(
15247        self,
15248    ) -> crate::common::RegisterField<
15249        0,
15250        0x1,
15251        1,
15252        0,
15253        p9pfs::Podr,
15254        p9pfs::Podr,
15255        P9Pfs_SPEC,
15256        crate::common::RW,
15257    > {
15258        crate::common::RegisterField::<
15259            0,
15260            0x1,
15261            1,
15262            0,
15263            p9pfs::Podr,
15264            p9pfs::Podr,
15265            P9Pfs_SPEC,
15266            crate::common::RW,
15267        >::from_register(self, 0)
15268    }
15269
15270    #[doc = "Port State"]
15271    #[inline(always)]
15272    pub fn pidr(
15273        self,
15274    ) -> crate::common::RegisterField<
15275        1,
15276        0x1,
15277        1,
15278        0,
15279        p9pfs::Pidr,
15280        p9pfs::Pidr,
15281        P9Pfs_SPEC,
15282        crate::common::R,
15283    > {
15284        crate::common::RegisterField::<
15285            1,
15286            0x1,
15287            1,
15288            0,
15289            p9pfs::Pidr,
15290            p9pfs::Pidr,
15291            P9Pfs_SPEC,
15292            crate::common::R,
15293        >::from_register(self, 0)
15294    }
15295
15296    #[doc = "Port Direction"]
15297    #[inline(always)]
15298    pub fn pdr(
15299        self,
15300    ) -> crate::common::RegisterField<
15301        2,
15302        0x1,
15303        1,
15304        0,
15305        p9pfs::Pdr,
15306        p9pfs::Pdr,
15307        P9Pfs_SPEC,
15308        crate::common::RW,
15309    > {
15310        crate::common::RegisterField::<
15311            2,
15312            0x1,
15313            1,
15314            0,
15315            p9pfs::Pdr,
15316            p9pfs::Pdr,
15317            P9Pfs_SPEC,
15318            crate::common::RW,
15319        >::from_register(self, 0)
15320    }
15321
15322    #[doc = "Pull-up Control"]
15323    #[inline(always)]
15324    pub fn pcr(
15325        self,
15326    ) -> crate::common::RegisterField<
15327        4,
15328        0x1,
15329        1,
15330        0,
15331        p9pfs::Pcr,
15332        p9pfs::Pcr,
15333        P9Pfs_SPEC,
15334        crate::common::RW,
15335    > {
15336        crate::common::RegisterField::<
15337            4,
15338            0x1,
15339            1,
15340            0,
15341            p9pfs::Pcr,
15342            p9pfs::Pcr,
15343            P9Pfs_SPEC,
15344            crate::common::RW,
15345        >::from_register(self, 0)
15346    }
15347
15348    #[doc = "N-Channel Open-Drain Control"]
15349    #[inline(always)]
15350    pub fn ncodr(
15351        self,
15352    ) -> crate::common::RegisterField<
15353        6,
15354        0x1,
15355        1,
15356        0,
15357        p9pfs::Ncodr,
15358        p9pfs::Ncodr,
15359        P9Pfs_SPEC,
15360        crate::common::RW,
15361    > {
15362        crate::common::RegisterField::<
15363            6,
15364            0x1,
15365            1,
15366            0,
15367            p9pfs::Ncodr,
15368            p9pfs::Ncodr,
15369            P9Pfs_SPEC,
15370            crate::common::RW,
15371        >::from_register(self, 0)
15372    }
15373
15374    #[doc = "IRQ Input Enable"]
15375    #[inline(always)]
15376    pub fn isel(
15377        self,
15378    ) -> crate::common::RegisterField<
15379        14,
15380        0x1,
15381        1,
15382        0,
15383        p9pfs::Isel,
15384        p9pfs::Isel,
15385        P9Pfs_SPEC,
15386        crate::common::RW,
15387    > {
15388        crate::common::RegisterField::<
15389            14,
15390            0x1,
15391            1,
15392            0,
15393            p9pfs::Isel,
15394            p9pfs::Isel,
15395            P9Pfs_SPEC,
15396            crate::common::RW,
15397        >::from_register(self, 0)
15398    }
15399
15400    #[doc = "Analog Input Enable"]
15401    #[inline(always)]
15402    pub fn asel(
15403        self,
15404    ) -> crate::common::RegisterField<
15405        15,
15406        0x1,
15407        1,
15408        0,
15409        p9pfs::Asel,
15410        p9pfs::Asel,
15411        P9Pfs_SPEC,
15412        crate::common::RW,
15413    > {
15414        crate::common::RegisterField::<
15415            15,
15416            0x1,
15417            1,
15418            0,
15419            p9pfs::Asel,
15420            p9pfs::Asel,
15421            P9Pfs_SPEC,
15422            crate::common::RW,
15423        >::from_register(self, 0)
15424    }
15425
15426    #[doc = "Port Mode Control"]
15427    #[inline(always)]
15428    pub fn pmr(
15429        self,
15430    ) -> crate::common::RegisterField<
15431        16,
15432        0x1,
15433        1,
15434        0,
15435        p9pfs::Pmr,
15436        p9pfs::Pmr,
15437        P9Pfs_SPEC,
15438        crate::common::RW,
15439    > {
15440        crate::common::RegisterField::<
15441            16,
15442            0x1,
15443            1,
15444            0,
15445            p9pfs::Pmr,
15446            p9pfs::Pmr,
15447            P9Pfs_SPEC,
15448            crate::common::RW,
15449        >::from_register(self, 0)
15450    }
15451
15452    #[doc = "Peripheral Select"]
15453    #[inline(always)]
15454    pub fn psel(
15455        self,
15456    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P9Pfs_SPEC, crate::common::RW> {
15457        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P9Pfs_SPEC,crate::common::RW>::from_register(self,0)
15458    }
15459}
15460impl ::core::default::Default for P9Pfs {
15461    #[inline(always)]
15462    fn default() -> P9Pfs {
15463        <crate::RegValueT<P9Pfs_SPEC> as RegisterValue<_>>::new(0)
15464    }
15465}
15466pub mod p9pfs {
15467
15468    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15469    pub struct Podr_SPEC;
15470    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15471    impl Podr {
15472        #[doc = "Output low"]
15473        pub const _0: Self = Self::new(0);
15474
15475        #[doc = "Output high"]
15476        pub const _1: Self = Self::new(1);
15477    }
15478    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15479    pub struct Pidr_SPEC;
15480    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15481    impl Pidr {
15482        #[doc = "Low level"]
15483        pub const _0: Self = Self::new(0);
15484
15485        #[doc = "High level"]
15486        pub const _1: Self = Self::new(1);
15487    }
15488    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15489    pub struct Pdr_SPEC;
15490    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15491    impl Pdr {
15492        #[doc = "Input (functions as an input pin)"]
15493        pub const _0: Self = Self::new(0);
15494
15495        #[doc = "Output (functions as an output pin)"]
15496        pub const _1: Self = Self::new(1);
15497    }
15498    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15499    pub struct Pcr_SPEC;
15500    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15501    impl Pcr {
15502        #[doc = "Disable input pull-up"]
15503        pub const _0: Self = Self::new(0);
15504
15505        #[doc = "Enable input pull-up"]
15506        pub const _1: Self = Self::new(1);
15507    }
15508    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15509    pub struct Ncodr_SPEC;
15510    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15511    impl Ncodr {
15512        #[doc = "Output CMOS"]
15513        pub const _0: Self = Self::new(0);
15514
15515        #[doc = "Output NMOS open-drain"]
15516        pub const _1: Self = Self::new(1);
15517    }
15518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15519    pub struct Isel_SPEC;
15520    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15521    impl Isel {
15522        #[doc = "Do not use as IRQn input pin"]
15523        pub const _0: Self = Self::new(0);
15524
15525        #[doc = "Use as IRQn input pin"]
15526        pub const _1: Self = Self::new(1);
15527    }
15528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15529    pub struct Asel_SPEC;
15530    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15531    impl Asel {
15532        #[doc = "Do not use as analog pin"]
15533        pub const _0: Self = Self::new(0);
15534
15535        #[doc = "Use as analog pin"]
15536        pub const _1: Self = Self::new(1);
15537    }
15538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15539    pub struct Pmr_SPEC;
15540    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15541    impl Pmr {
15542        #[doc = "Use as general I/O pin"]
15543        pub const _0: Self = Self::new(0);
15544
15545        #[doc = "Use as I/O port for peripheral functions"]
15546        pub const _1: Self = Self::new(1);
15547    }
15548}
15549#[doc(hidden)]
15550#[derive(Copy, Clone, Eq, PartialEq)]
15551pub struct P9PfsHa_SPEC;
15552impl crate::sealed::RegSpec for P9PfsHa_SPEC {
15553    type DataType = u16;
15554}
15555
15556#[doc = "Port 9%s Pin Function Select Register"]
15557pub type P9PfsHa = crate::RegValueT<P9PfsHa_SPEC>;
15558
15559impl P9PfsHa {
15560    #[doc = "Port Output Data"]
15561    #[inline(always)]
15562    pub fn podr(
15563        self,
15564    ) -> crate::common::RegisterField<
15565        0,
15566        0x1,
15567        1,
15568        0,
15569        p9pfs_ha::Podr,
15570        p9pfs_ha::Podr,
15571        P9PfsHa_SPEC,
15572        crate::common::RW,
15573    > {
15574        crate::common::RegisterField::<
15575            0,
15576            0x1,
15577            1,
15578            0,
15579            p9pfs_ha::Podr,
15580            p9pfs_ha::Podr,
15581            P9PfsHa_SPEC,
15582            crate::common::RW,
15583        >::from_register(self, 0)
15584    }
15585
15586    #[doc = "Port State"]
15587    #[inline(always)]
15588    pub fn pidr(
15589        self,
15590    ) -> crate::common::RegisterField<
15591        1,
15592        0x1,
15593        1,
15594        0,
15595        p9pfs_ha::Pidr,
15596        p9pfs_ha::Pidr,
15597        P9PfsHa_SPEC,
15598        crate::common::R,
15599    > {
15600        crate::common::RegisterField::<
15601            1,
15602            0x1,
15603            1,
15604            0,
15605            p9pfs_ha::Pidr,
15606            p9pfs_ha::Pidr,
15607            P9PfsHa_SPEC,
15608            crate::common::R,
15609        >::from_register(self, 0)
15610    }
15611
15612    #[doc = "Port Direction"]
15613    #[inline(always)]
15614    pub fn pdr(
15615        self,
15616    ) -> crate::common::RegisterField<
15617        2,
15618        0x1,
15619        1,
15620        0,
15621        p9pfs_ha::Pdr,
15622        p9pfs_ha::Pdr,
15623        P9PfsHa_SPEC,
15624        crate::common::RW,
15625    > {
15626        crate::common::RegisterField::<
15627            2,
15628            0x1,
15629            1,
15630            0,
15631            p9pfs_ha::Pdr,
15632            p9pfs_ha::Pdr,
15633            P9PfsHa_SPEC,
15634            crate::common::RW,
15635        >::from_register(self, 0)
15636    }
15637
15638    #[doc = "Pull-up Control"]
15639    #[inline(always)]
15640    pub fn pcr(
15641        self,
15642    ) -> crate::common::RegisterField<
15643        4,
15644        0x1,
15645        1,
15646        0,
15647        p9pfs_ha::Pcr,
15648        p9pfs_ha::Pcr,
15649        P9PfsHa_SPEC,
15650        crate::common::RW,
15651    > {
15652        crate::common::RegisterField::<
15653            4,
15654            0x1,
15655            1,
15656            0,
15657            p9pfs_ha::Pcr,
15658            p9pfs_ha::Pcr,
15659            P9PfsHa_SPEC,
15660            crate::common::RW,
15661        >::from_register(self, 0)
15662    }
15663
15664    #[doc = "N-Channel Open-Drain Control"]
15665    #[inline(always)]
15666    pub fn ncodr(
15667        self,
15668    ) -> crate::common::RegisterField<
15669        6,
15670        0x1,
15671        1,
15672        0,
15673        p9pfs_ha::Ncodr,
15674        p9pfs_ha::Ncodr,
15675        P9PfsHa_SPEC,
15676        crate::common::RW,
15677    > {
15678        crate::common::RegisterField::<
15679            6,
15680            0x1,
15681            1,
15682            0,
15683            p9pfs_ha::Ncodr,
15684            p9pfs_ha::Ncodr,
15685            P9PfsHa_SPEC,
15686            crate::common::RW,
15687        >::from_register(self, 0)
15688    }
15689
15690    #[doc = "IRQ Input Enable"]
15691    #[inline(always)]
15692    pub fn isel(
15693        self,
15694    ) -> crate::common::RegisterField<
15695        14,
15696        0x1,
15697        1,
15698        0,
15699        p9pfs_ha::Isel,
15700        p9pfs_ha::Isel,
15701        P9PfsHa_SPEC,
15702        crate::common::RW,
15703    > {
15704        crate::common::RegisterField::<
15705            14,
15706            0x1,
15707            1,
15708            0,
15709            p9pfs_ha::Isel,
15710            p9pfs_ha::Isel,
15711            P9PfsHa_SPEC,
15712            crate::common::RW,
15713        >::from_register(self, 0)
15714    }
15715
15716    #[doc = "Analog Input Enable"]
15717    #[inline(always)]
15718    pub fn asel(
15719        self,
15720    ) -> crate::common::RegisterField<
15721        15,
15722        0x1,
15723        1,
15724        0,
15725        p9pfs_ha::Asel,
15726        p9pfs_ha::Asel,
15727        P9PfsHa_SPEC,
15728        crate::common::RW,
15729    > {
15730        crate::common::RegisterField::<
15731            15,
15732            0x1,
15733            1,
15734            0,
15735            p9pfs_ha::Asel,
15736            p9pfs_ha::Asel,
15737            P9PfsHa_SPEC,
15738            crate::common::RW,
15739        >::from_register(self, 0)
15740    }
15741}
15742impl ::core::default::Default for P9PfsHa {
15743    #[inline(always)]
15744    fn default() -> P9PfsHa {
15745        <crate::RegValueT<P9PfsHa_SPEC> as RegisterValue<_>>::new(0)
15746    }
15747}
15748pub mod p9pfs_ha {
15749
15750    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15751    pub struct Podr_SPEC;
15752    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15753    impl Podr {
15754        #[doc = "Output low"]
15755        pub const _0: Self = Self::new(0);
15756
15757        #[doc = "Output high"]
15758        pub const _1: Self = Self::new(1);
15759    }
15760    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15761    pub struct Pidr_SPEC;
15762    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15763    impl Pidr {
15764        #[doc = "Low level"]
15765        pub const _0: Self = Self::new(0);
15766
15767        #[doc = "High level"]
15768        pub const _1: Self = Self::new(1);
15769    }
15770    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15771    pub struct Pdr_SPEC;
15772    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15773    impl Pdr {
15774        #[doc = "Input (functions as an input pin)"]
15775        pub const _0: Self = Self::new(0);
15776
15777        #[doc = "Output (functions as an output pin)"]
15778        pub const _1: Self = Self::new(1);
15779    }
15780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15781    pub struct Pcr_SPEC;
15782    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15783    impl Pcr {
15784        #[doc = "Disable input pull-up"]
15785        pub const _0: Self = Self::new(0);
15786
15787        #[doc = "Enable input pull-up"]
15788        pub const _1: Self = Self::new(1);
15789    }
15790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15791    pub struct Ncodr_SPEC;
15792    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15793    impl Ncodr {
15794        #[doc = "Output CMOS"]
15795        pub const _0: Self = Self::new(0);
15796
15797        #[doc = "Output NMOS open-drain"]
15798        pub const _1: Self = Self::new(1);
15799    }
15800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15801    pub struct Isel_SPEC;
15802    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15803    impl Isel {
15804        #[doc = "Do not use as IRQn input pin"]
15805        pub const _0: Self = Self::new(0);
15806
15807        #[doc = "Use as IRQn input pin"]
15808        pub const _1: Self = Self::new(1);
15809    }
15810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15811    pub struct Asel_SPEC;
15812    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15813    impl Asel {
15814        #[doc = "Do not use as analog pin"]
15815        pub const _0: Self = Self::new(0);
15816
15817        #[doc = "Use as analog pin"]
15818        pub const _1: Self = Self::new(1);
15819    }
15820}
15821#[doc(hidden)]
15822#[derive(Copy, Clone, Eq, PartialEq)]
15823pub struct P9PfsBy_SPEC;
15824impl crate::sealed::RegSpec for P9PfsBy_SPEC {
15825    type DataType = u8;
15826}
15827
15828#[doc = "Port 9%s Pin Function Select Register"]
15829pub type P9PfsBy = crate::RegValueT<P9PfsBy_SPEC>;
15830
15831impl P9PfsBy {
15832    #[doc = "Port Output Data"]
15833    #[inline(always)]
15834    pub fn podr(
15835        self,
15836    ) -> crate::common::RegisterField<
15837        0,
15838        0x1,
15839        1,
15840        0,
15841        p9pfs_by::Podr,
15842        p9pfs_by::Podr,
15843        P9PfsBy_SPEC,
15844        crate::common::RW,
15845    > {
15846        crate::common::RegisterField::<
15847            0,
15848            0x1,
15849            1,
15850            0,
15851            p9pfs_by::Podr,
15852            p9pfs_by::Podr,
15853            P9PfsBy_SPEC,
15854            crate::common::RW,
15855        >::from_register(self, 0)
15856    }
15857
15858    #[doc = "Port State"]
15859    #[inline(always)]
15860    pub fn pidr(
15861        self,
15862    ) -> crate::common::RegisterField<
15863        1,
15864        0x1,
15865        1,
15866        0,
15867        p9pfs_by::Pidr,
15868        p9pfs_by::Pidr,
15869        P9PfsBy_SPEC,
15870        crate::common::R,
15871    > {
15872        crate::common::RegisterField::<
15873            1,
15874            0x1,
15875            1,
15876            0,
15877            p9pfs_by::Pidr,
15878            p9pfs_by::Pidr,
15879            P9PfsBy_SPEC,
15880            crate::common::R,
15881        >::from_register(self, 0)
15882    }
15883
15884    #[doc = "Port Direction"]
15885    #[inline(always)]
15886    pub fn pdr(
15887        self,
15888    ) -> crate::common::RegisterField<
15889        2,
15890        0x1,
15891        1,
15892        0,
15893        p9pfs_by::Pdr,
15894        p9pfs_by::Pdr,
15895        P9PfsBy_SPEC,
15896        crate::common::RW,
15897    > {
15898        crate::common::RegisterField::<
15899            2,
15900            0x1,
15901            1,
15902            0,
15903            p9pfs_by::Pdr,
15904            p9pfs_by::Pdr,
15905            P9PfsBy_SPEC,
15906            crate::common::RW,
15907        >::from_register(self, 0)
15908    }
15909
15910    #[doc = "Pull-up Control"]
15911    #[inline(always)]
15912    pub fn pcr(
15913        self,
15914    ) -> crate::common::RegisterField<
15915        4,
15916        0x1,
15917        1,
15918        0,
15919        p9pfs_by::Pcr,
15920        p9pfs_by::Pcr,
15921        P9PfsBy_SPEC,
15922        crate::common::RW,
15923    > {
15924        crate::common::RegisterField::<
15925            4,
15926            0x1,
15927            1,
15928            0,
15929            p9pfs_by::Pcr,
15930            p9pfs_by::Pcr,
15931            P9PfsBy_SPEC,
15932            crate::common::RW,
15933        >::from_register(self, 0)
15934    }
15935
15936    #[doc = "N-Channel Open-Drain Control"]
15937    #[inline(always)]
15938    pub fn ncodr(
15939        self,
15940    ) -> crate::common::RegisterField<
15941        6,
15942        0x1,
15943        1,
15944        0,
15945        p9pfs_by::Ncodr,
15946        p9pfs_by::Ncodr,
15947        P9PfsBy_SPEC,
15948        crate::common::RW,
15949    > {
15950        crate::common::RegisterField::<
15951            6,
15952            0x1,
15953            1,
15954            0,
15955            p9pfs_by::Ncodr,
15956            p9pfs_by::Ncodr,
15957            P9PfsBy_SPEC,
15958            crate::common::RW,
15959        >::from_register(self, 0)
15960    }
15961}
15962impl ::core::default::Default for P9PfsBy {
15963    #[inline(always)]
15964    fn default() -> P9PfsBy {
15965        <crate::RegValueT<P9PfsBy_SPEC> as RegisterValue<_>>::new(0)
15966    }
15967}
15968pub mod p9pfs_by {
15969
15970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15971    pub struct Podr_SPEC;
15972    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15973    impl Podr {
15974        #[doc = "Output low"]
15975        pub const _0: Self = Self::new(0);
15976
15977        #[doc = "Output high"]
15978        pub const _1: Self = Self::new(1);
15979    }
15980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15981    pub struct Pidr_SPEC;
15982    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15983    impl Pidr {
15984        #[doc = "Low level"]
15985        pub const _0: Self = Self::new(0);
15986
15987        #[doc = "High level"]
15988        pub const _1: Self = Self::new(1);
15989    }
15990    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15991    pub struct Pdr_SPEC;
15992    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15993    impl Pdr {
15994        #[doc = "Input (functions as an input pin)"]
15995        pub const _0: Self = Self::new(0);
15996
15997        #[doc = "Output (functions as an output pin)"]
15998        pub const _1: Self = Self::new(1);
15999    }
16000    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16001    pub struct Pcr_SPEC;
16002    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16003    impl Pcr {
16004        #[doc = "Disable input pull-up"]
16005        pub const _0: Self = Self::new(0);
16006
16007        #[doc = "Enable input pull-up"]
16008        pub const _1: Self = Self::new(1);
16009    }
16010    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16011    pub struct Ncodr_SPEC;
16012    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16013    impl Ncodr {
16014        #[doc = "Output CMOS"]
16015        pub const _0: Self = Self::new(0);
16016
16017        #[doc = "Output NMOS open-drain"]
16018        pub const _1: Self = Self::new(1);
16019    }
16020}
16021#[doc(hidden)]
16022#[derive(Copy, Clone, Eq, PartialEq)]
16023pub struct Pwpr_SPEC;
16024impl crate::sealed::RegSpec for Pwpr_SPEC {
16025    type DataType = u8;
16026}
16027
16028#[doc = "Write-Protect Register"]
16029pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
16030
16031impl Pwpr {
16032    #[doc = "PmnPFS Register Write Enable"]
16033    #[inline(always)]
16034    pub fn pfswe(
16035        self,
16036    ) -> crate::common::RegisterField<
16037        6,
16038        0x1,
16039        1,
16040        0,
16041        pwpr::Pfswe,
16042        pwpr::Pfswe,
16043        Pwpr_SPEC,
16044        crate::common::RW,
16045    > {
16046        crate::common::RegisterField::<
16047            6,
16048            0x1,
16049            1,
16050            0,
16051            pwpr::Pfswe,
16052            pwpr::Pfswe,
16053            Pwpr_SPEC,
16054            crate::common::RW,
16055        >::from_register(self, 0)
16056    }
16057
16058    #[doc = "PFSWE Bit Write Disable"]
16059    #[inline(always)]
16060    pub fn b0wi(
16061        self,
16062    ) -> crate::common::RegisterField<
16063        7,
16064        0x1,
16065        1,
16066        0,
16067        pwpr::B0Wi,
16068        pwpr::B0Wi,
16069        Pwpr_SPEC,
16070        crate::common::RW,
16071    > {
16072        crate::common::RegisterField::<
16073            7,
16074            0x1,
16075            1,
16076            0,
16077            pwpr::B0Wi,
16078            pwpr::B0Wi,
16079            Pwpr_SPEC,
16080            crate::common::RW,
16081        >::from_register(self, 0)
16082    }
16083}
16084impl ::core::default::Default for Pwpr {
16085    #[inline(always)]
16086    fn default() -> Pwpr {
16087        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
16088    }
16089}
16090pub mod pwpr {
16091
16092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16093    pub struct Pfswe_SPEC;
16094    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
16095    impl Pfswe {
16096        #[doc = "Writing to the PmnPFS register is disabled"]
16097        pub const _0: Self = Self::new(0);
16098
16099        #[doc = "Writing to the PmnPFS register is enabled"]
16100        pub const _1: Self = Self::new(1);
16101    }
16102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16103    pub struct B0Wi_SPEC;
16104    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
16105    impl B0Wi {
16106        #[doc = "Writing to the PFSWE bit is enabled"]
16107        pub const _0: Self = Self::new(0);
16108
16109        #[doc = "Writing to the PFSWE bit is disabled"]
16110        pub const _1: Self = Self::new(1);
16111    }
16112}
16113#[doc(hidden)]
16114#[derive(Copy, Clone, Eq, PartialEq)]
16115pub struct Prwcntr_SPEC;
16116impl crate::sealed::RegSpec for Prwcntr_SPEC {
16117    type DataType = u8;
16118}
16119
16120#[doc = "Port Read Wait Control Register"]
16121pub type Prwcntr = crate::RegValueT<Prwcntr_SPEC>;
16122
16123impl Prwcntr {
16124    #[doc = "Wait Cycle Control"]
16125    #[inline(always)]
16126    pub fn wait(
16127        self,
16128    ) -> crate::common::RegisterField<
16129        0,
16130        0x3,
16131        1,
16132        0,
16133        prwcntr::Wait,
16134        prwcntr::Wait,
16135        Prwcntr_SPEC,
16136        crate::common::RW,
16137    > {
16138        crate::common::RegisterField::<
16139            0,
16140            0x3,
16141            1,
16142            0,
16143            prwcntr::Wait,
16144            prwcntr::Wait,
16145            Prwcntr_SPEC,
16146            crate::common::RW,
16147        >::from_register(self, 0)
16148    }
16149}
16150impl ::core::default::Default for Prwcntr {
16151    #[inline(always)]
16152    fn default() -> Prwcntr {
16153        <crate::RegValueT<Prwcntr_SPEC> as RegisterValue<_>>::new(1)
16154    }
16155}
16156pub mod prwcntr {
16157
16158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16159    pub struct Wait_SPEC;
16160    pub type Wait = crate::EnumBitfieldStruct<u8, Wait_SPEC>;
16161    impl Wait {
16162        #[doc = "Setting prohibited"]
16163        pub const _00: Self = Self::new(0);
16164
16165        #[doc = "Insert a 1-cycle wait"]
16166        pub const _01: Self = Self::new(1);
16167
16168        #[doc = "Insert a 2-cycle wait"]
16169        pub const _10: Self = Self::new(2);
16170
16171        #[doc = "Insert a 3-cycle wait"]
16172        pub const _11: Self = Self::new(3);
16173    }
16174}