Skip to main content

ra2a2_pac/
pfs.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.20.02, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:01:00 +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        6,
44        0x4,
45    > {
46        unsafe {
47            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x10usize))
48        }
49    }
50    #[inline(always)]
51    pub const fn p004pfs(
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(0x10usize),
57            )
58        }
59    }
60    #[inline(always)]
61    pub const fn p005pfs(
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(0x14usize),
67            )
68        }
69    }
70    #[inline(always)]
71    pub const fn p006pfs(
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(0x18usize),
77            )
78        }
79    }
80    #[inline(always)]
81    pub const fn p007pfs(
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(0x1cusize),
87            )
88        }
89    }
90    #[inline(always)]
91    pub const fn p008pfs(
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(0x20usize),
97            )
98        }
99    }
100    #[inline(always)]
101    pub const fn p009pfs(
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(0x24usize),
107            )
108        }
109    }
110
111    #[doc = "Port 00%s Pin Function Select Register"]
112    #[inline(always)]
113    pub const fn p00pfs_ha(
114        &self,
115    ) -> &'static crate::common::ClusterRegisterArray<
116        crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW>,
117        6,
118        0x4,
119    > {
120        unsafe {
121            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12usize))
122        }
123    }
124    #[inline(always)]
125    pub const fn p004pfs_ha(
126        &self,
127    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
128        unsafe {
129            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
130                self._svd2pac_as_ptr().add(0x12usize),
131            )
132        }
133    }
134    #[inline(always)]
135    pub const fn p005pfs_ha(
136        &self,
137    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(0x16usize),
141            )
142        }
143    }
144    #[inline(always)]
145    pub const fn p006pfs_ha(
146        &self,
147    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
148        unsafe {
149            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
150                self._svd2pac_as_ptr().add(0x1ausize),
151            )
152        }
153    }
154    #[inline(always)]
155    pub const fn p007pfs_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(0x1eusize),
161            )
162        }
163    }
164    #[inline(always)]
165    pub const fn p008pfs_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(0x22usize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn p009pfs_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(0x26usize),
181            )
182        }
183    }
184
185    #[doc = "Port 00%s Pin Function Select Register"]
186    #[inline(always)]
187    pub const fn p00pfs_by(
188        &self,
189    ) -> &'static crate::common::ClusterRegisterArray<
190        crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW>,
191        6,
192        0x4,
193    > {
194        unsafe {
195            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x13usize))
196        }
197    }
198    #[inline(always)]
199    pub const fn p004pfs_by(
200        &self,
201    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
202        unsafe {
203            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
204                self._svd2pac_as_ptr().add(0x13usize),
205            )
206        }
207    }
208    #[inline(always)]
209    pub const fn p005pfs_by(
210        &self,
211    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
212        unsafe {
213            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
214                self._svd2pac_as_ptr().add(0x17usize),
215            )
216        }
217    }
218    #[inline(always)]
219    pub const fn p006pfs_by(
220        &self,
221    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
222        unsafe {
223            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
224                self._svd2pac_as_ptr().add(0x1busize),
225            )
226        }
227    }
228    #[inline(always)]
229    pub const fn p007pfs_by(
230        &self,
231    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
232        unsafe {
233            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
234                self._svd2pac_as_ptr().add(0x1fusize),
235            )
236        }
237    }
238    #[inline(always)]
239    pub const fn p008pfs_by(
240        &self,
241    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
242        unsafe {
243            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
244                self._svd2pac_as_ptr().add(0x23usize),
245            )
246        }
247    }
248    #[inline(always)]
249    pub const fn p009pfs_by(
250        &self,
251    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
252        unsafe {
253            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
254                self._svd2pac_as_ptr().add(0x27usize),
255            )
256        }
257    }
258
259    #[doc = "Port 0%s Pin Function Select Register"]
260    #[inline(always)]
261    pub const fn p0pfs(
262        &self,
263    ) -> &'static crate::common::ClusterRegisterArray<
264        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
265        6,
266        0x4,
267    > {
268        unsafe {
269            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x28usize))
270        }
271    }
272    #[inline(always)]
273    pub const fn p010pfs(
274        &self,
275    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
276        unsafe {
277            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
278                self._svd2pac_as_ptr().add(0x28usize),
279            )
280        }
281    }
282    #[inline(always)]
283    pub const fn p011pfs(
284        &self,
285    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
286        unsafe {
287            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
288                self._svd2pac_as_ptr().add(0x2cusize),
289            )
290        }
291    }
292    #[inline(always)]
293    pub const fn p012pfs(
294        &self,
295    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
296        unsafe {
297            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
298                self._svd2pac_as_ptr().add(0x30usize),
299            )
300        }
301    }
302    #[inline(always)]
303    pub const fn p013pfs(
304        &self,
305    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
306        unsafe {
307            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
308                self._svd2pac_as_ptr().add(0x34usize),
309            )
310        }
311    }
312    #[inline(always)]
313    pub const fn p014pfs(
314        &self,
315    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
316        unsafe {
317            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
318                self._svd2pac_as_ptr().add(0x38usize),
319            )
320        }
321    }
322    #[inline(always)]
323    pub const fn p015pfs(
324        &self,
325    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
326        unsafe {
327            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
328                self._svd2pac_as_ptr().add(0x3cusize),
329            )
330        }
331    }
332
333    #[doc = "Port 0%s Pin Function Select Register"]
334    #[inline(always)]
335    pub const fn p0pfs_ha(
336        &self,
337    ) -> &'static crate::common::ClusterRegisterArray<
338        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
339        6,
340        0x4,
341    > {
342        unsafe {
343            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2ausize))
344        }
345    }
346    #[inline(always)]
347    pub const fn p010pfs_ha(
348        &self,
349    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
350        unsafe {
351            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
352                self._svd2pac_as_ptr().add(0x2ausize),
353            )
354        }
355    }
356    #[inline(always)]
357    pub const fn p011pfs_ha(
358        &self,
359    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
360        unsafe {
361            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
362                self._svd2pac_as_ptr().add(0x2eusize),
363            )
364        }
365    }
366    #[inline(always)]
367    pub const fn p012pfs_ha(
368        &self,
369    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
370        unsafe {
371            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
372                self._svd2pac_as_ptr().add(0x32usize),
373            )
374        }
375    }
376    #[inline(always)]
377    pub const fn p013pfs_ha(
378        &self,
379    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
380        unsafe {
381            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
382                self._svd2pac_as_ptr().add(0x36usize),
383            )
384        }
385    }
386    #[inline(always)]
387    pub const fn p014pfs_ha(
388        &self,
389    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
390        unsafe {
391            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
392                self._svd2pac_as_ptr().add(0x3ausize),
393            )
394        }
395    }
396    #[inline(always)]
397    pub const fn p015pfs_ha(
398        &self,
399    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
400        unsafe {
401            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
402                self._svd2pac_as_ptr().add(0x3eusize),
403            )
404        }
405    }
406
407    #[doc = "Port 0%s Pin Function Select Register"]
408    #[inline(always)]
409    pub const fn p0pfs_by(
410        &self,
411    ) -> &'static crate::common::ClusterRegisterArray<
412        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
413        6,
414        0x4,
415    > {
416        unsafe {
417            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2busize))
418        }
419    }
420    #[inline(always)]
421    pub const fn p010pfs_by(
422        &self,
423    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
424        unsafe {
425            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
426                self._svd2pac_as_ptr().add(0x2busize),
427            )
428        }
429    }
430    #[inline(always)]
431    pub const fn p011pfs_by(
432        &self,
433    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
434        unsafe {
435            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
436                self._svd2pac_as_ptr().add(0x2fusize),
437            )
438        }
439    }
440    #[inline(always)]
441    pub const fn p012pfs_by(
442        &self,
443    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
444        unsafe {
445            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
446                self._svd2pac_as_ptr().add(0x33usize),
447            )
448        }
449    }
450    #[inline(always)]
451    pub const fn p013pfs_by(
452        &self,
453    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
454        unsafe {
455            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
456                self._svd2pac_as_ptr().add(0x37usize),
457            )
458        }
459    }
460    #[inline(always)]
461    pub const fn p014pfs_by(
462        &self,
463    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
464        unsafe {
465            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
466                self._svd2pac_as_ptr().add(0x3busize),
467            )
468        }
469    }
470    #[inline(always)]
471    pub const fn p015pfs_by(
472        &self,
473    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
474        unsafe {
475            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
476                self._svd2pac_as_ptr().add(0x3fusize),
477            )
478        }
479    }
480
481    #[doc = "Port 10%s Pin Function Select Register"]
482    #[inline(always)]
483    pub const fn p10pfs(
484        &self,
485    ) -> &'static crate::common::ClusterRegisterArray<
486        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
487        8,
488        0x4,
489    > {
490        unsafe {
491            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
492        }
493    }
494    #[inline(always)]
495    pub const fn p100pfs(
496        &self,
497    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
498        unsafe {
499            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
500                self._svd2pac_as_ptr().add(0x40usize),
501            )
502        }
503    }
504    #[inline(always)]
505    pub const fn p101pfs(
506        &self,
507    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
508        unsafe {
509            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
510                self._svd2pac_as_ptr().add(0x44usize),
511            )
512        }
513    }
514    #[inline(always)]
515    pub const fn p102pfs(
516        &self,
517    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
518        unsafe {
519            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
520                self._svd2pac_as_ptr().add(0x48usize),
521            )
522        }
523    }
524    #[inline(always)]
525    pub const fn p103pfs(
526        &self,
527    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
528        unsafe {
529            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
530                self._svd2pac_as_ptr().add(0x4cusize),
531            )
532        }
533    }
534    #[inline(always)]
535    pub const fn p104pfs(
536        &self,
537    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
538        unsafe {
539            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
540                self._svd2pac_as_ptr().add(0x50usize),
541            )
542        }
543    }
544    #[inline(always)]
545    pub const fn p105pfs(
546        &self,
547    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
548        unsafe {
549            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
550                self._svd2pac_as_ptr().add(0x54usize),
551            )
552        }
553    }
554    #[inline(always)]
555    pub const fn p106pfs(
556        &self,
557    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
558        unsafe {
559            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
560                self._svd2pac_as_ptr().add(0x58usize),
561            )
562        }
563    }
564    #[inline(always)]
565    pub const fn p107pfs(
566        &self,
567    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
568        unsafe {
569            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
570                self._svd2pac_as_ptr().add(0x5cusize),
571            )
572        }
573    }
574
575    #[doc = "Port 10%s Pin Function Select Register"]
576    #[inline(always)]
577    pub const fn p10pfs_ha(
578        &self,
579    ) -> &'static crate::common::ClusterRegisterArray<
580        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
581        8,
582        0x4,
583    > {
584        unsafe {
585            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
586        }
587    }
588    #[inline(always)]
589    pub const fn p100pfs_ha(
590        &self,
591    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
592        unsafe {
593            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
594                self._svd2pac_as_ptr().add(0x42usize),
595            )
596        }
597    }
598    #[inline(always)]
599    pub const fn p101pfs_ha(
600        &self,
601    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
602        unsafe {
603            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
604                self._svd2pac_as_ptr().add(0x46usize),
605            )
606        }
607    }
608    #[inline(always)]
609    pub const fn p102pfs_ha(
610        &self,
611    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
612        unsafe {
613            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
614                self._svd2pac_as_ptr().add(0x4ausize),
615            )
616        }
617    }
618    #[inline(always)]
619    pub const fn p103pfs_ha(
620        &self,
621    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
622        unsafe {
623            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
624                self._svd2pac_as_ptr().add(0x4eusize),
625            )
626        }
627    }
628    #[inline(always)]
629    pub const fn p104pfs_ha(
630        &self,
631    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
632        unsafe {
633            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
634                self._svd2pac_as_ptr().add(0x52usize),
635            )
636        }
637    }
638    #[inline(always)]
639    pub const fn p105pfs_ha(
640        &self,
641    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
642        unsafe {
643            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
644                self._svd2pac_as_ptr().add(0x56usize),
645            )
646        }
647    }
648    #[inline(always)]
649    pub const fn p106pfs_ha(
650        &self,
651    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
652        unsafe {
653            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
654                self._svd2pac_as_ptr().add(0x5ausize),
655            )
656        }
657    }
658    #[inline(always)]
659    pub const fn p107pfs_ha(
660        &self,
661    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
662        unsafe {
663            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
664                self._svd2pac_as_ptr().add(0x5eusize),
665            )
666        }
667    }
668
669    #[doc = "Port 10%s Pin Function Select Register"]
670    #[inline(always)]
671    pub const fn p10pfs_by(
672        &self,
673    ) -> &'static crate::common::ClusterRegisterArray<
674        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
675        8,
676        0x4,
677    > {
678        unsafe {
679            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
680        }
681    }
682    #[inline(always)]
683    pub const fn p100pfs_by(
684        &self,
685    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
686        unsafe {
687            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
688                self._svd2pac_as_ptr().add(0x43usize),
689            )
690        }
691    }
692    #[inline(always)]
693    pub const fn p101pfs_by(
694        &self,
695    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
696        unsafe {
697            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
698                self._svd2pac_as_ptr().add(0x47usize),
699            )
700        }
701    }
702    #[inline(always)]
703    pub const fn p102pfs_by(
704        &self,
705    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
706        unsafe {
707            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
708                self._svd2pac_as_ptr().add(0x4busize),
709            )
710        }
711    }
712    #[inline(always)]
713    pub const fn p103pfs_by(
714        &self,
715    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
716        unsafe {
717            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
718                self._svd2pac_as_ptr().add(0x4fusize),
719            )
720        }
721    }
722    #[inline(always)]
723    pub const fn p104pfs_by(
724        &self,
725    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
726        unsafe {
727            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
728                self._svd2pac_as_ptr().add(0x53usize),
729            )
730        }
731    }
732    #[inline(always)]
733    pub const fn p105pfs_by(
734        &self,
735    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
736        unsafe {
737            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
738                self._svd2pac_as_ptr().add(0x57usize),
739            )
740        }
741    }
742    #[inline(always)]
743    pub const fn p106pfs_by(
744        &self,
745    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
746        unsafe {
747            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
748                self._svd2pac_as_ptr().add(0x5busize),
749            )
750        }
751    }
752    #[inline(always)]
753    pub const fn p107pfs_by(
754        &self,
755    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
756        unsafe {
757            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
758                self._svd2pac_as_ptr().add(0x5fusize),
759            )
760        }
761    }
762
763    #[doc = "Port 108 Pin Function Select Register"]
764    #[inline(always)]
765    pub const fn p108pfs(
766        &self,
767    ) -> &'static crate::common::Reg<self::P108Pfs_SPEC, crate::common::RW> {
768        unsafe {
769            crate::common::Reg::<self::P108Pfs_SPEC, crate::common::RW>::from_ptr(
770                self._svd2pac_as_ptr().add(96usize),
771            )
772        }
773    }
774
775    #[doc = "Port 108 Pin Function Select Register"]
776    #[inline(always)]
777    pub const fn p108pfs_ha(
778        &self,
779    ) -> &'static crate::common::Reg<self::P108PfsHa_SPEC, crate::common::RW> {
780        unsafe {
781            crate::common::Reg::<self::P108PfsHa_SPEC, crate::common::RW>::from_ptr(
782                self._svd2pac_as_ptr().add(98usize),
783            )
784        }
785    }
786
787    #[doc = "Port 108 Pin Function Select Register"]
788    #[inline(always)]
789    pub const fn p108pfs_by(
790        &self,
791    ) -> &'static crate::common::Reg<self::P108PfsBy_SPEC, crate::common::RW> {
792        unsafe {
793            crate::common::Reg::<self::P108PfsBy_SPEC, crate::common::RW>::from_ptr(
794                self._svd2pac_as_ptr().add(99usize),
795            )
796        }
797    }
798
799    #[doc = "Port 109 Pin Function Select Register"]
800    #[inline(always)]
801    pub const fn p109pfs(
802        &self,
803    ) -> &'static crate::common::Reg<self::P109Pfs_SPEC, crate::common::RW> {
804        unsafe {
805            crate::common::Reg::<self::P109Pfs_SPEC, crate::common::RW>::from_ptr(
806                self._svd2pac_as_ptr().add(100usize),
807            )
808        }
809    }
810
811    #[doc = "Port 109 Pin Function Select Register"]
812    #[inline(always)]
813    pub const fn p109pfs_ha(
814        &self,
815    ) -> &'static crate::common::Reg<self::P109PfsHa_SPEC, crate::common::RW> {
816        unsafe {
817            crate::common::Reg::<self::P109PfsHa_SPEC, crate::common::RW>::from_ptr(
818                self._svd2pac_as_ptr().add(102usize),
819            )
820        }
821    }
822
823    #[doc = "Port 109 Pin Function Select Register"]
824    #[inline(always)]
825    pub const fn p109pfs_by(
826        &self,
827    ) -> &'static crate::common::Reg<self::P109PfsBy_SPEC, crate::common::RW> {
828        unsafe {
829            crate::common::Reg::<self::P109PfsBy_SPEC, crate::common::RW>::from_ptr(
830                self._svd2pac_as_ptr().add(103usize),
831            )
832        }
833    }
834
835    #[doc = "Port 1%s Pin Function Select Register"]
836    #[inline(always)]
837    pub const fn p1pfs(
838        &self,
839    ) -> &'static crate::common::ClusterRegisterArray<
840        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
841        6,
842        0x4,
843    > {
844        unsafe {
845            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
846        }
847    }
848    #[inline(always)]
849    pub const fn p110pfs(
850        &self,
851    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
852        unsafe {
853            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
854                self._svd2pac_as_ptr().add(0x68usize),
855            )
856        }
857    }
858    #[inline(always)]
859    pub const fn p111pfs(
860        &self,
861    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
862        unsafe {
863            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
864                self._svd2pac_as_ptr().add(0x6cusize),
865            )
866        }
867    }
868    #[inline(always)]
869    pub const fn p112pfs(
870        &self,
871    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
872        unsafe {
873            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
874                self._svd2pac_as_ptr().add(0x70usize),
875            )
876        }
877    }
878    #[inline(always)]
879    pub const fn p113pfs(
880        &self,
881    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
882        unsafe {
883            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
884                self._svd2pac_as_ptr().add(0x74usize),
885            )
886        }
887    }
888    #[inline(always)]
889    pub const fn p114pfs(
890        &self,
891    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
892        unsafe {
893            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
894                self._svd2pac_as_ptr().add(0x78usize),
895            )
896        }
897    }
898    #[inline(always)]
899    pub const fn p115pfs(
900        &self,
901    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
902        unsafe {
903            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
904                self._svd2pac_as_ptr().add(0x7cusize),
905            )
906        }
907    }
908
909    #[doc = "Port 1%s Pin Function Select Register"]
910    #[inline(always)]
911    pub const fn p1pfs_ha(
912        &self,
913    ) -> &'static crate::common::ClusterRegisterArray<
914        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
915        6,
916        0x4,
917    > {
918        unsafe {
919            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
920        }
921    }
922    #[inline(always)]
923    pub const fn p110pfs_ha(
924        &self,
925    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
926        unsafe {
927            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
928                self._svd2pac_as_ptr().add(0x6ausize),
929            )
930        }
931    }
932    #[inline(always)]
933    pub const fn p111pfs_ha(
934        &self,
935    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
936        unsafe {
937            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
938                self._svd2pac_as_ptr().add(0x6eusize),
939            )
940        }
941    }
942    #[inline(always)]
943    pub const fn p112pfs_ha(
944        &self,
945    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
946        unsafe {
947            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
948                self._svd2pac_as_ptr().add(0x72usize),
949            )
950        }
951    }
952    #[inline(always)]
953    pub const fn p113pfs_ha(
954        &self,
955    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
956        unsafe {
957            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
958                self._svd2pac_as_ptr().add(0x76usize),
959            )
960        }
961    }
962    #[inline(always)]
963    pub const fn p114pfs_ha(
964        &self,
965    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
966        unsafe {
967            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
968                self._svd2pac_as_ptr().add(0x7ausize),
969            )
970        }
971    }
972    #[inline(always)]
973    pub const fn p115pfs_ha(
974        &self,
975    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
976        unsafe {
977            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
978                self._svd2pac_as_ptr().add(0x7eusize),
979            )
980        }
981    }
982
983    #[doc = "Port 1%s Pin Function Select Register"]
984    #[inline(always)]
985    pub const fn p1pfs_by(
986        &self,
987    ) -> &'static crate::common::ClusterRegisterArray<
988        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
989        6,
990        0x4,
991    > {
992        unsafe {
993            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
994        }
995    }
996    #[inline(always)]
997    pub const fn p110pfs_by(
998        &self,
999    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1000        unsafe {
1001            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1002                self._svd2pac_as_ptr().add(0x6busize),
1003            )
1004        }
1005    }
1006    #[inline(always)]
1007    pub const fn p111pfs_by(
1008        &self,
1009    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1010        unsafe {
1011            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1012                self._svd2pac_as_ptr().add(0x6fusize),
1013            )
1014        }
1015    }
1016    #[inline(always)]
1017    pub const fn p112pfs_by(
1018        &self,
1019    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1020        unsafe {
1021            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1022                self._svd2pac_as_ptr().add(0x73usize),
1023            )
1024        }
1025    }
1026    #[inline(always)]
1027    pub const fn p113pfs_by(
1028        &self,
1029    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1030        unsafe {
1031            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1032                self._svd2pac_as_ptr().add(0x77usize),
1033            )
1034        }
1035    }
1036    #[inline(always)]
1037    pub const fn p114pfs_by(
1038        &self,
1039    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1040        unsafe {
1041            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1042                self._svd2pac_as_ptr().add(0x7busize),
1043            )
1044        }
1045    }
1046    #[inline(always)]
1047    pub const fn p115pfs_by(
1048        &self,
1049    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1050        unsafe {
1051            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1052                self._svd2pac_as_ptr().add(0x7fusize),
1053            )
1054        }
1055    }
1056
1057    #[doc = "Port 200 Pin Function Select Register"]
1058    #[inline(always)]
1059    pub const fn p200pfs(
1060        &self,
1061    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
1062        unsafe {
1063            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
1064                self._svd2pac_as_ptr().add(128usize),
1065            )
1066        }
1067    }
1068
1069    #[doc = "Port 200 Pin Function Select Register"]
1070    #[inline(always)]
1071    pub const fn p200pfs_ha(
1072        &self,
1073    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
1074        unsafe {
1075            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
1076                self._svd2pac_as_ptr().add(130usize),
1077            )
1078        }
1079    }
1080
1081    #[doc = "Port 200 Pin Function Select Register"]
1082    #[inline(always)]
1083    pub const fn p200pfs_by(
1084        &self,
1085    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
1086        unsafe {
1087            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
1088                self._svd2pac_as_ptr().add(131usize),
1089            )
1090        }
1091    }
1092
1093    #[doc = "Port 201 Pin Function Select Register"]
1094    #[inline(always)]
1095    pub const fn p201pfs(
1096        &self,
1097    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
1098        unsafe {
1099            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
1100                self._svd2pac_as_ptr().add(132usize),
1101            )
1102        }
1103    }
1104
1105    #[doc = "Port 201 Pin Function Select Register"]
1106    #[inline(always)]
1107    pub const fn p201pfs_ha(
1108        &self,
1109    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
1110        unsafe {
1111            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
1112                self._svd2pac_as_ptr().add(134usize),
1113            )
1114        }
1115    }
1116
1117    #[doc = "Port 201 Pin Function Select Register"]
1118    #[inline(always)]
1119    pub const fn p201pfs_by(
1120        &self,
1121    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
1122        unsafe {
1123            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
1124                self._svd2pac_as_ptr().add(135usize),
1125            )
1126        }
1127    }
1128
1129    #[doc = "Port 20%s Pin Function Select Register"]
1130    #[inline(always)]
1131    pub const fn p20pfs(
1132        &self,
1133    ) -> &'static crate::common::ClusterRegisterArray<
1134        crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW>,
1135        7,
1136        0x4,
1137    > {
1138        unsafe {
1139            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8cusize))
1140        }
1141    }
1142    #[inline(always)]
1143    pub const fn p203pfs(
1144        &self,
1145    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1146        unsafe {
1147            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1148                self._svd2pac_as_ptr().add(0x8cusize),
1149            )
1150        }
1151    }
1152    #[inline(always)]
1153    pub const fn p204pfs(
1154        &self,
1155    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1156        unsafe {
1157            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1158                self._svd2pac_as_ptr().add(0x90usize),
1159            )
1160        }
1161    }
1162    #[inline(always)]
1163    pub const fn p205pfs(
1164        &self,
1165    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1166        unsafe {
1167            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1168                self._svd2pac_as_ptr().add(0x94usize),
1169            )
1170        }
1171    }
1172    #[inline(always)]
1173    pub const fn p206pfs(
1174        &self,
1175    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1176        unsafe {
1177            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1178                self._svd2pac_as_ptr().add(0x98usize),
1179            )
1180        }
1181    }
1182    #[inline(always)]
1183    pub const fn p207pfs(
1184        &self,
1185    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1186        unsafe {
1187            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1188                self._svd2pac_as_ptr().add(0x9cusize),
1189            )
1190        }
1191    }
1192    #[inline(always)]
1193    pub const fn p208pfs(
1194        &self,
1195    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1196        unsafe {
1197            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1198                self._svd2pac_as_ptr().add(0xa0usize),
1199            )
1200        }
1201    }
1202    #[inline(always)]
1203    pub const fn p209pfs(
1204        &self,
1205    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1206        unsafe {
1207            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1208                self._svd2pac_as_ptr().add(0xa4usize),
1209            )
1210        }
1211    }
1212
1213    #[doc = "Port 20%s Pin Function Select Register"]
1214    #[inline(always)]
1215    pub const fn p20pfs_ha(
1216        &self,
1217    ) -> &'static crate::common::ClusterRegisterArray<
1218        crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW>,
1219        7,
1220        0x4,
1221    > {
1222        unsafe {
1223            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8eusize))
1224        }
1225    }
1226    #[inline(always)]
1227    pub const fn p203pfs_ha(
1228        &self,
1229    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1230        unsafe {
1231            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1232                self._svd2pac_as_ptr().add(0x8eusize),
1233            )
1234        }
1235    }
1236    #[inline(always)]
1237    pub const fn p204pfs_ha(
1238        &self,
1239    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1240        unsafe {
1241            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1242                self._svd2pac_as_ptr().add(0x92usize),
1243            )
1244        }
1245    }
1246    #[inline(always)]
1247    pub const fn p205pfs_ha(
1248        &self,
1249    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1250        unsafe {
1251            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1252                self._svd2pac_as_ptr().add(0x96usize),
1253            )
1254        }
1255    }
1256    #[inline(always)]
1257    pub const fn p206pfs_ha(
1258        &self,
1259    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1260        unsafe {
1261            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1262                self._svd2pac_as_ptr().add(0x9ausize),
1263            )
1264        }
1265    }
1266    #[inline(always)]
1267    pub const fn p207pfs_ha(
1268        &self,
1269    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1270        unsafe {
1271            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1272                self._svd2pac_as_ptr().add(0x9eusize),
1273            )
1274        }
1275    }
1276    #[inline(always)]
1277    pub const fn p208pfs_ha(
1278        &self,
1279    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1280        unsafe {
1281            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1282                self._svd2pac_as_ptr().add(0xa2usize),
1283            )
1284        }
1285    }
1286    #[inline(always)]
1287    pub const fn p209pfs_ha(
1288        &self,
1289    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1290        unsafe {
1291            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1292                self._svd2pac_as_ptr().add(0xa6usize),
1293            )
1294        }
1295    }
1296
1297    #[doc = "Port 20%s Pin Function Select Register"]
1298    #[inline(always)]
1299    pub const fn p20pfs_by(
1300        &self,
1301    ) -> &'static crate::common::ClusterRegisterArray<
1302        crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW>,
1303        7,
1304        0x4,
1305    > {
1306        unsafe {
1307            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8fusize))
1308        }
1309    }
1310    #[inline(always)]
1311    pub const fn p203pfs_by(
1312        &self,
1313    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1314        unsafe {
1315            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1316                self._svd2pac_as_ptr().add(0x8fusize),
1317            )
1318        }
1319    }
1320    #[inline(always)]
1321    pub const fn p204pfs_by(
1322        &self,
1323    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1324        unsafe {
1325            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1326                self._svd2pac_as_ptr().add(0x93usize),
1327            )
1328        }
1329    }
1330    #[inline(always)]
1331    pub const fn p205pfs_by(
1332        &self,
1333    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1334        unsafe {
1335            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1336                self._svd2pac_as_ptr().add(0x97usize),
1337            )
1338        }
1339    }
1340    #[inline(always)]
1341    pub const fn p206pfs_by(
1342        &self,
1343    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1344        unsafe {
1345            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1346                self._svd2pac_as_ptr().add(0x9busize),
1347            )
1348        }
1349    }
1350    #[inline(always)]
1351    pub const fn p207pfs_by(
1352        &self,
1353    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1354        unsafe {
1355            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1356                self._svd2pac_as_ptr().add(0x9fusize),
1357            )
1358        }
1359    }
1360    #[inline(always)]
1361    pub const fn p208pfs_by(
1362        &self,
1363    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1364        unsafe {
1365            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1366                self._svd2pac_as_ptr().add(0xa3usize),
1367            )
1368        }
1369    }
1370    #[inline(always)]
1371    pub const fn p209pfs_by(
1372        &self,
1373    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1374        unsafe {
1375            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1376                self._svd2pac_as_ptr().add(0xa7usize),
1377            )
1378        }
1379    }
1380
1381    #[doc = "Port 2%s Pin Function Select Register"]
1382    #[inline(always)]
1383    pub const fn p2pfs(
1384        &self,
1385    ) -> &'static crate::common::ClusterRegisterArray<
1386        crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW>,
1387        6,
1388        0x4,
1389    > {
1390        unsafe {
1391            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xa8usize))
1392        }
1393    }
1394    #[inline(always)]
1395    pub const fn p210pfs(
1396        &self,
1397    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1398        unsafe {
1399            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1400                self._svd2pac_as_ptr().add(0xa8usize),
1401            )
1402        }
1403    }
1404    #[inline(always)]
1405    pub const fn p211pfs(
1406        &self,
1407    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1408        unsafe {
1409            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1410                self._svd2pac_as_ptr().add(0xacusize),
1411            )
1412        }
1413    }
1414    #[inline(always)]
1415    pub const fn p212pfs(
1416        &self,
1417    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1418        unsafe {
1419            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1420                self._svd2pac_as_ptr().add(0xb0usize),
1421            )
1422        }
1423    }
1424    #[inline(always)]
1425    pub const fn p213pfs(
1426        &self,
1427    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1428        unsafe {
1429            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1430                self._svd2pac_as_ptr().add(0xb4usize),
1431            )
1432        }
1433    }
1434    #[inline(always)]
1435    pub const fn p214pfs(
1436        &self,
1437    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1438        unsafe {
1439            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1440                self._svd2pac_as_ptr().add(0xb8usize),
1441            )
1442        }
1443    }
1444    #[inline(always)]
1445    pub const fn p215pfs(
1446        &self,
1447    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1448        unsafe {
1449            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1450                self._svd2pac_as_ptr().add(0xbcusize),
1451            )
1452        }
1453    }
1454
1455    #[doc = "Port 2%s Pin Function Select Register"]
1456    #[inline(always)]
1457    pub const fn p2pfs_ha(
1458        &self,
1459    ) -> &'static crate::common::ClusterRegisterArray<
1460        crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW>,
1461        6,
1462        0x4,
1463    > {
1464        unsafe {
1465            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xaausize))
1466        }
1467    }
1468    #[inline(always)]
1469    pub const fn p210pfs_ha(
1470        &self,
1471    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1472        unsafe {
1473            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1474                self._svd2pac_as_ptr().add(0xaausize),
1475            )
1476        }
1477    }
1478    #[inline(always)]
1479    pub const fn p211pfs_ha(
1480        &self,
1481    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1482        unsafe {
1483            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1484                self._svd2pac_as_ptr().add(0xaeusize),
1485            )
1486        }
1487    }
1488    #[inline(always)]
1489    pub const fn p212pfs_ha(
1490        &self,
1491    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1492        unsafe {
1493            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1494                self._svd2pac_as_ptr().add(0xb2usize),
1495            )
1496        }
1497    }
1498    #[inline(always)]
1499    pub const fn p213pfs_ha(
1500        &self,
1501    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1502        unsafe {
1503            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1504                self._svd2pac_as_ptr().add(0xb6usize),
1505            )
1506        }
1507    }
1508    #[inline(always)]
1509    pub const fn p214pfs_ha(
1510        &self,
1511    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1512        unsafe {
1513            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1514                self._svd2pac_as_ptr().add(0xbausize),
1515            )
1516        }
1517    }
1518    #[inline(always)]
1519    pub const fn p215pfs_ha(
1520        &self,
1521    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1522        unsafe {
1523            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1524                self._svd2pac_as_ptr().add(0xbeusize),
1525            )
1526        }
1527    }
1528
1529    #[doc = "Port 2%s Pin Function Select Register"]
1530    #[inline(always)]
1531    pub const fn p2pfs_by(
1532        &self,
1533    ) -> &'static crate::common::ClusterRegisterArray<
1534        crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW>,
1535        6,
1536        0x4,
1537    > {
1538        unsafe {
1539            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xabusize))
1540        }
1541    }
1542    #[inline(always)]
1543    pub const fn p210pfs_by(
1544        &self,
1545    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1546        unsafe {
1547            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1548                self._svd2pac_as_ptr().add(0xabusize),
1549            )
1550        }
1551    }
1552    #[inline(always)]
1553    pub const fn p211pfs_by(
1554        &self,
1555    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1556        unsafe {
1557            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1558                self._svd2pac_as_ptr().add(0xafusize),
1559            )
1560        }
1561    }
1562    #[inline(always)]
1563    pub const fn p212pfs_by(
1564        &self,
1565    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1566        unsafe {
1567            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1568                self._svd2pac_as_ptr().add(0xb3usize),
1569            )
1570        }
1571    }
1572    #[inline(always)]
1573    pub const fn p213pfs_by(
1574        &self,
1575    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1576        unsafe {
1577            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1578                self._svd2pac_as_ptr().add(0xb7usize),
1579            )
1580        }
1581    }
1582    #[inline(always)]
1583    pub const fn p214pfs_by(
1584        &self,
1585    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1586        unsafe {
1587            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1588                self._svd2pac_as_ptr().add(0xbbusize),
1589            )
1590        }
1591    }
1592    #[inline(always)]
1593    pub const fn p215pfs_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(0xbfusize),
1599            )
1600        }
1601    }
1602
1603    #[doc = "Port 300 Pin Function Select Register"]
1604    #[inline(always)]
1605    pub const fn p300pfs(
1606        &self,
1607    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
1608        unsafe {
1609            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
1610                self._svd2pac_as_ptr().add(192usize),
1611            )
1612        }
1613    }
1614
1615    #[doc = "Port 300 Pin Function Select Register"]
1616    #[inline(always)]
1617    pub const fn p300pfs_ha(
1618        &self,
1619    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
1620        unsafe {
1621            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
1622                self._svd2pac_as_ptr().add(194usize),
1623            )
1624        }
1625    }
1626
1627    #[doc = "Port 300 Pin Function Select Register"]
1628    #[inline(always)]
1629    pub const fn p300pfs_by(
1630        &self,
1631    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
1632        unsafe {
1633            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
1634                self._svd2pac_as_ptr().add(195usize),
1635            )
1636        }
1637    }
1638
1639    #[doc = "Port 30%s Pin Function Select Register"]
1640    #[inline(always)]
1641    pub const fn p30pfs(
1642        &self,
1643    ) -> &'static crate::common::ClusterRegisterArray<
1644        crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW>,
1645        9,
1646        0x4,
1647    > {
1648        unsafe {
1649            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc4usize))
1650        }
1651    }
1652    #[inline(always)]
1653    pub const fn p301pfs(
1654        &self,
1655    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1656        unsafe {
1657            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1658                self._svd2pac_as_ptr().add(0xc4usize),
1659            )
1660        }
1661    }
1662    #[inline(always)]
1663    pub const fn p302pfs(
1664        &self,
1665    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1666        unsafe {
1667            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1668                self._svd2pac_as_ptr().add(0xc8usize),
1669            )
1670        }
1671    }
1672    #[inline(always)]
1673    pub const fn p303pfs(
1674        &self,
1675    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1676        unsafe {
1677            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1678                self._svd2pac_as_ptr().add(0xccusize),
1679            )
1680        }
1681    }
1682    #[inline(always)]
1683    pub const fn p304pfs(
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(0xd0usize),
1689            )
1690        }
1691    }
1692    #[inline(always)]
1693    pub const fn p305pfs(
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(0xd4usize),
1699            )
1700        }
1701    }
1702    #[inline(always)]
1703    pub const fn p306pfs(
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(0xd8usize),
1709            )
1710        }
1711    }
1712    #[inline(always)]
1713    pub const fn p307pfs(
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(0xdcusize),
1719            )
1720        }
1721    }
1722    #[inline(always)]
1723    pub const fn p308pfs(
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(0xe0usize),
1729            )
1730        }
1731    }
1732    #[inline(always)]
1733    pub const fn p309pfs(
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(0xe4usize),
1739            )
1740        }
1741    }
1742
1743    #[doc = "Port 30%s Pin Function Select Register"]
1744    #[inline(always)]
1745    pub const fn p30pfs_ha(
1746        &self,
1747    ) -> &'static crate::common::ClusterRegisterArray<
1748        crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW>,
1749        9,
1750        0x4,
1751    > {
1752        unsafe {
1753            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc6usize))
1754        }
1755    }
1756    #[inline(always)]
1757    pub const fn p301pfs_ha(
1758        &self,
1759    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1760        unsafe {
1761            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1762                self._svd2pac_as_ptr().add(0xc6usize),
1763            )
1764        }
1765    }
1766    #[inline(always)]
1767    pub const fn p302pfs_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(0xcausize),
1773            )
1774        }
1775    }
1776    #[inline(always)]
1777    pub const fn p303pfs_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(0xceusize),
1783            )
1784        }
1785    }
1786    #[inline(always)]
1787    pub const fn p304pfs_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(0xd2usize),
1793            )
1794        }
1795    }
1796    #[inline(always)]
1797    pub const fn p305pfs_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(0xd6usize),
1803            )
1804        }
1805    }
1806    #[inline(always)]
1807    pub const fn p306pfs_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(0xdausize),
1813            )
1814        }
1815    }
1816    #[inline(always)]
1817    pub const fn p307pfs_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(0xdeusize),
1823            )
1824        }
1825    }
1826    #[inline(always)]
1827    pub const fn p308pfs_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(0xe2usize),
1833            )
1834        }
1835    }
1836    #[inline(always)]
1837    pub const fn p309pfs_ha(
1838        &self,
1839    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1840        unsafe {
1841            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1842                self._svd2pac_as_ptr().add(0xe6usize),
1843            )
1844        }
1845    }
1846
1847    #[doc = "Port 30%s Pin Function Select Register"]
1848    #[inline(always)]
1849    pub const fn p30pfs_by(
1850        &self,
1851    ) -> &'static crate::common::ClusterRegisterArray<
1852        crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW>,
1853        9,
1854        0x4,
1855    > {
1856        unsafe {
1857            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc7usize))
1858        }
1859    }
1860    #[inline(always)]
1861    pub const fn p301pfs_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(0xc7usize),
1867            )
1868        }
1869    }
1870    #[inline(always)]
1871    pub const fn p302pfs_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(0xcbusize),
1877            )
1878        }
1879    }
1880    #[inline(always)]
1881    pub const fn p303pfs_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(0xcfusize),
1887            )
1888        }
1889    }
1890    #[inline(always)]
1891    pub const fn p304pfs_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(0xd3usize),
1897            )
1898        }
1899    }
1900    #[inline(always)]
1901    pub const fn p305pfs_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(0xd7usize),
1907            )
1908        }
1909    }
1910    #[inline(always)]
1911    pub const fn p306pfs_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(0xdbusize),
1917            )
1918        }
1919    }
1920    #[inline(always)]
1921    pub const fn p307pfs_by(
1922        &self,
1923    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1924        unsafe {
1925            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1926                self._svd2pac_as_ptr().add(0xdfusize),
1927            )
1928        }
1929    }
1930    #[inline(always)]
1931    pub const fn p308pfs_by(
1932        &self,
1933    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1934        unsafe {
1935            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1936                self._svd2pac_as_ptr().add(0xe3usize),
1937            )
1938        }
1939    }
1940    #[inline(always)]
1941    pub const fn p309pfs_by(
1942        &self,
1943    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1944        unsafe {
1945            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1946                self._svd2pac_as_ptr().add(0xe7usize),
1947            )
1948        }
1949    }
1950
1951    #[doc = "Port 3%s Pin Function Select Register"]
1952    #[inline(always)]
1953    pub const fn p3pfs(
1954        &self,
1955    ) -> &'static crate::common::ClusterRegisterArray<
1956        crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW>,
1957        4,
1958        0x4,
1959    > {
1960        unsafe {
1961            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xe8usize))
1962        }
1963    }
1964    #[inline(always)]
1965    pub const fn p310pfs(
1966        &self,
1967    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1968        unsafe {
1969            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
1970                self._svd2pac_as_ptr().add(0xe8usize),
1971            )
1972        }
1973    }
1974    #[inline(always)]
1975    pub const fn p311pfs(
1976        &self,
1977    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1978        unsafe {
1979            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
1980                self._svd2pac_as_ptr().add(0xecusize),
1981            )
1982        }
1983    }
1984    #[inline(always)]
1985    pub const fn p312pfs(
1986        &self,
1987    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1988        unsafe {
1989            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
1990                self._svd2pac_as_ptr().add(0xf0usize),
1991            )
1992        }
1993    }
1994    #[inline(always)]
1995    pub const fn p313pfs(
1996        &self,
1997    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1998        unsafe {
1999            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
2000                self._svd2pac_as_ptr().add(0xf4usize),
2001            )
2002        }
2003    }
2004
2005    #[doc = "Port 3%s Pin Function Select Register"]
2006    #[inline(always)]
2007    pub const fn p3pfs_ha(
2008        &self,
2009    ) -> &'static crate::common::ClusterRegisterArray<
2010        crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW>,
2011        4,
2012        0x4,
2013    > {
2014        unsafe {
2015            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xeausize))
2016        }
2017    }
2018    #[inline(always)]
2019    pub const fn p310pfs_ha(
2020        &self,
2021    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2022        unsafe {
2023            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2024                self._svd2pac_as_ptr().add(0xeausize),
2025            )
2026        }
2027    }
2028    #[inline(always)]
2029    pub const fn p311pfs_ha(
2030        &self,
2031    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2032        unsafe {
2033            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2034                self._svd2pac_as_ptr().add(0xeeusize),
2035            )
2036        }
2037    }
2038    #[inline(always)]
2039    pub const fn p312pfs_ha(
2040        &self,
2041    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2042        unsafe {
2043            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2044                self._svd2pac_as_ptr().add(0xf2usize),
2045            )
2046        }
2047    }
2048    #[inline(always)]
2049    pub const fn p313pfs_ha(
2050        &self,
2051    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2052        unsafe {
2053            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2054                self._svd2pac_as_ptr().add(0xf6usize),
2055            )
2056        }
2057    }
2058
2059    #[doc = "Port 3%s Pin Function Select Register"]
2060    #[inline(always)]
2061    pub const fn p3pfs_by(
2062        &self,
2063    ) -> &'static crate::common::ClusterRegisterArray<
2064        crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW>,
2065        4,
2066        0x4,
2067    > {
2068        unsafe {
2069            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xebusize))
2070        }
2071    }
2072    #[inline(always)]
2073    pub const fn p310pfs_by(
2074        &self,
2075    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2076        unsafe {
2077            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2078                self._svd2pac_as_ptr().add(0xebusize),
2079            )
2080        }
2081    }
2082    #[inline(always)]
2083    pub const fn p311pfs_by(
2084        &self,
2085    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2086        unsafe {
2087            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2088                self._svd2pac_as_ptr().add(0xefusize),
2089            )
2090        }
2091    }
2092    #[inline(always)]
2093    pub const fn p312pfs_by(
2094        &self,
2095    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2096        unsafe {
2097            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2098                self._svd2pac_as_ptr().add(0xf3usize),
2099            )
2100        }
2101    }
2102    #[inline(always)]
2103    pub const fn p313pfs_by(
2104        &self,
2105    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2106        unsafe {
2107            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2108                self._svd2pac_as_ptr().add(0xf7usize),
2109            )
2110        }
2111    }
2112
2113    #[doc = "Port 40%s Pin Function Select Register"]
2114    #[inline(always)]
2115    pub const fn p40pfs(
2116        &self,
2117    ) -> &'static crate::common::ClusterRegisterArray<
2118        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
2119        2,
2120        0x4,
2121    > {
2122        unsafe {
2123            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x120usize))
2124        }
2125    }
2126    #[inline(always)]
2127    pub const fn p408pfs(
2128        &self,
2129    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2130        unsafe {
2131            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2132                self._svd2pac_as_ptr().add(0x120usize),
2133            )
2134        }
2135    }
2136    #[inline(always)]
2137    pub const fn p409pfs(
2138        &self,
2139    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2140        unsafe {
2141            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2142                self._svd2pac_as_ptr().add(0x124usize),
2143            )
2144        }
2145    }
2146
2147    #[doc = "Port 40%s Pin Function Select Register"]
2148    #[inline(always)]
2149    pub const fn p40pfs_ha(
2150        &self,
2151    ) -> &'static crate::common::ClusterRegisterArray<
2152        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
2153        2,
2154        0x4,
2155    > {
2156        unsafe {
2157            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x122usize))
2158        }
2159    }
2160    #[inline(always)]
2161    pub const fn p408pfs_ha(
2162        &self,
2163    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2164        unsafe {
2165            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2166                self._svd2pac_as_ptr().add(0x122usize),
2167            )
2168        }
2169    }
2170    #[inline(always)]
2171    pub const fn p409pfs_ha(
2172        &self,
2173    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2174        unsafe {
2175            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2176                self._svd2pac_as_ptr().add(0x126usize),
2177            )
2178        }
2179    }
2180
2181    #[doc = "Port 40%s Pin Function Select Register"]
2182    #[inline(always)]
2183    pub const fn p40pfs_by(
2184        &self,
2185    ) -> &'static crate::common::ClusterRegisterArray<
2186        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
2187        2,
2188        0x4,
2189    > {
2190        unsafe {
2191            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x123usize))
2192        }
2193    }
2194    #[inline(always)]
2195    pub const fn p408pfs_by(
2196        &self,
2197    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2198        unsafe {
2199            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2200                self._svd2pac_as_ptr().add(0x123usize),
2201            )
2202        }
2203    }
2204    #[inline(always)]
2205    pub const fn p409pfs_by(
2206        &self,
2207    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2208        unsafe {
2209            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2210                self._svd2pac_as_ptr().add(0x127usize),
2211            )
2212        }
2213    }
2214
2215    #[doc = "Port 4%s Pin Function Select Register"]
2216    #[inline(always)]
2217    pub const fn p4pfs(
2218        &self,
2219    ) -> &'static crate::common::ClusterRegisterArray<
2220        crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW>,
2221        2,
2222        0x4,
2223    > {
2224        unsafe {
2225            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x128usize))
2226        }
2227    }
2228    #[inline(always)]
2229    pub const fn p410pfs(
2230        &self,
2231    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2232        unsafe {
2233            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2234                self._svd2pac_as_ptr().add(0x128usize),
2235            )
2236        }
2237    }
2238    #[inline(always)]
2239    pub const fn p411pfs(
2240        &self,
2241    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2242        unsafe {
2243            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2244                self._svd2pac_as_ptr().add(0x12cusize),
2245            )
2246        }
2247    }
2248
2249    #[doc = "Port 4%s Pin Function Select Register"]
2250    #[inline(always)]
2251    pub const fn p4pfs_ha(
2252        &self,
2253    ) -> &'static crate::common::ClusterRegisterArray<
2254        crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW>,
2255        2,
2256        0x4,
2257    > {
2258        unsafe {
2259            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12ausize))
2260        }
2261    }
2262    #[inline(always)]
2263    pub const fn p410pfs_ha(
2264        &self,
2265    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2266        unsafe {
2267            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2268                self._svd2pac_as_ptr().add(0x12ausize),
2269            )
2270        }
2271    }
2272    #[inline(always)]
2273    pub const fn p411pfs_ha(
2274        &self,
2275    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2276        unsafe {
2277            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2278                self._svd2pac_as_ptr().add(0x12eusize),
2279            )
2280        }
2281    }
2282
2283    #[doc = "Port 4%s Pin Function Select Register"]
2284    #[inline(always)]
2285    pub const fn p4pfs_by(
2286        &self,
2287    ) -> &'static crate::common::ClusterRegisterArray<
2288        crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW>,
2289        2,
2290        0x4,
2291    > {
2292        unsafe {
2293            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12busize))
2294        }
2295    }
2296    #[inline(always)]
2297    pub const fn p410pfs_by(
2298        &self,
2299    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2300        unsafe {
2301            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2302                self._svd2pac_as_ptr().add(0x12busize),
2303            )
2304        }
2305    }
2306    #[inline(always)]
2307    pub const fn p411pfs_by(
2308        &self,
2309    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2310        unsafe {
2311            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2312                self._svd2pac_as_ptr().add(0x12fusize),
2313            )
2314        }
2315    }
2316
2317    #[doc = "Port 50%s Pin Function Select Register"]
2318    #[inline(always)]
2319    pub const fn p50pfs(
2320        &self,
2321    ) -> &'static crate::common::ClusterRegisterArray<
2322        crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW>,
2323        7,
2324        0x4,
2325    > {
2326        unsafe {
2327            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x140usize))
2328        }
2329    }
2330    #[inline(always)]
2331    pub const fn p500pfs(
2332        &self,
2333    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2334        unsafe {
2335            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2336                self._svd2pac_as_ptr().add(0x140usize),
2337            )
2338        }
2339    }
2340    #[inline(always)]
2341    pub const fn p501pfs(
2342        &self,
2343    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2344        unsafe {
2345            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2346                self._svd2pac_as_ptr().add(0x144usize),
2347            )
2348        }
2349    }
2350    #[inline(always)]
2351    pub const fn p502pfs(
2352        &self,
2353    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2354        unsafe {
2355            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2356                self._svd2pac_as_ptr().add(0x148usize),
2357            )
2358        }
2359    }
2360    #[inline(always)]
2361    pub const fn p503pfs(
2362        &self,
2363    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2364        unsafe {
2365            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2366                self._svd2pac_as_ptr().add(0x14cusize),
2367            )
2368        }
2369    }
2370    #[inline(always)]
2371    pub const fn p504pfs(
2372        &self,
2373    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2374        unsafe {
2375            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2376                self._svd2pac_as_ptr().add(0x150usize),
2377            )
2378        }
2379    }
2380    #[inline(always)]
2381    pub const fn p505pfs(
2382        &self,
2383    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2384        unsafe {
2385            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2386                self._svd2pac_as_ptr().add(0x154usize),
2387            )
2388        }
2389    }
2390    #[inline(always)]
2391    pub const fn p506pfs(
2392        &self,
2393    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2394        unsafe {
2395            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2396                self._svd2pac_as_ptr().add(0x158usize),
2397            )
2398        }
2399    }
2400
2401    #[doc = "Port 50%s Pin Function Select Register"]
2402    #[inline(always)]
2403    pub const fn p50pfs_ha(
2404        &self,
2405    ) -> &'static crate::common::ClusterRegisterArray<
2406        crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW>,
2407        7,
2408        0x4,
2409    > {
2410        unsafe {
2411            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x142usize))
2412        }
2413    }
2414    #[inline(always)]
2415    pub const fn p500pfs_ha(
2416        &self,
2417    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2418        unsafe {
2419            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2420                self._svd2pac_as_ptr().add(0x142usize),
2421            )
2422        }
2423    }
2424    #[inline(always)]
2425    pub const fn p501pfs_ha(
2426        &self,
2427    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2428        unsafe {
2429            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2430                self._svd2pac_as_ptr().add(0x146usize),
2431            )
2432        }
2433    }
2434    #[inline(always)]
2435    pub const fn p502pfs_ha(
2436        &self,
2437    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2438        unsafe {
2439            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2440                self._svd2pac_as_ptr().add(0x14ausize),
2441            )
2442        }
2443    }
2444    #[inline(always)]
2445    pub const fn p503pfs_ha(
2446        &self,
2447    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2448        unsafe {
2449            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2450                self._svd2pac_as_ptr().add(0x14eusize),
2451            )
2452        }
2453    }
2454    #[inline(always)]
2455    pub const fn p504pfs_ha(
2456        &self,
2457    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2458        unsafe {
2459            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2460                self._svd2pac_as_ptr().add(0x152usize),
2461            )
2462        }
2463    }
2464    #[inline(always)]
2465    pub const fn p505pfs_ha(
2466        &self,
2467    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2468        unsafe {
2469            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2470                self._svd2pac_as_ptr().add(0x156usize),
2471            )
2472        }
2473    }
2474    #[inline(always)]
2475    pub const fn p506pfs_ha(
2476        &self,
2477    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2478        unsafe {
2479            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2480                self._svd2pac_as_ptr().add(0x15ausize),
2481            )
2482        }
2483    }
2484
2485    #[doc = "Port 50%s Pin Function Select Register"]
2486    #[inline(always)]
2487    pub const fn p50pfs_by(
2488        &self,
2489    ) -> &'static crate::common::ClusterRegisterArray<
2490        crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW>,
2491        7,
2492        0x4,
2493    > {
2494        unsafe {
2495            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x143usize))
2496        }
2497    }
2498    #[inline(always)]
2499    pub const fn p500pfs_by(
2500        &self,
2501    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2502        unsafe {
2503            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2504                self._svd2pac_as_ptr().add(0x143usize),
2505            )
2506        }
2507    }
2508    #[inline(always)]
2509    pub const fn p501pfs_by(
2510        &self,
2511    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2512        unsafe {
2513            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2514                self._svd2pac_as_ptr().add(0x147usize),
2515            )
2516        }
2517    }
2518    #[inline(always)]
2519    pub const fn p502pfs_by(
2520        &self,
2521    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2522        unsafe {
2523            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2524                self._svd2pac_as_ptr().add(0x14busize),
2525            )
2526        }
2527    }
2528    #[inline(always)]
2529    pub const fn p503pfs_by(
2530        &self,
2531    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2532        unsafe {
2533            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2534                self._svd2pac_as_ptr().add(0x14fusize),
2535            )
2536        }
2537    }
2538    #[inline(always)]
2539    pub const fn p504pfs_by(
2540        &self,
2541    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2542        unsafe {
2543            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2544                self._svd2pac_as_ptr().add(0x153usize),
2545            )
2546        }
2547    }
2548    #[inline(always)]
2549    pub const fn p505pfs_by(
2550        &self,
2551    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2552        unsafe {
2553            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2554                self._svd2pac_as_ptr().add(0x157usize),
2555            )
2556        }
2557    }
2558    #[inline(always)]
2559    pub const fn p506pfs_by(
2560        &self,
2561    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2562        unsafe {
2563            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2564                self._svd2pac_as_ptr().add(0x15busize),
2565            )
2566        }
2567    }
2568
2569    #[doc = "Port 600 Pin Function Select Register"]
2570    #[inline(always)]
2571    pub const fn p600pfs(
2572        &self,
2573    ) -> &'static crate::common::Reg<self::P600Pfs_SPEC, crate::common::RW> {
2574        unsafe {
2575            crate::common::Reg::<self::P600Pfs_SPEC, crate::common::RW>::from_ptr(
2576                self._svd2pac_as_ptr().add(384usize),
2577            )
2578        }
2579    }
2580
2581    #[doc = "Port 600 Pin Function Select Register"]
2582    #[inline(always)]
2583    pub const fn p600pfs_ha(
2584        &self,
2585    ) -> &'static crate::common::Reg<self::P600PfsHa_SPEC, crate::common::RW> {
2586        unsafe {
2587            crate::common::Reg::<self::P600PfsHa_SPEC, crate::common::RW>::from_ptr(
2588                self._svd2pac_as_ptr().add(386usize),
2589            )
2590        }
2591    }
2592
2593    #[doc = "Port 600 Pin Function Select Register"]
2594    #[inline(always)]
2595    pub const fn p600pfs_by(
2596        &self,
2597    ) -> &'static crate::common::Reg<self::P600PfsBy_SPEC, crate::common::RW> {
2598        unsafe {
2599            crate::common::Reg::<self::P600PfsBy_SPEC, crate::common::RW>::from_ptr(
2600                self._svd2pac_as_ptr().add(387usize),
2601            )
2602        }
2603    }
2604
2605    #[doc = "VL1 Select Control Register"]
2606    #[inline(always)]
2607    pub const fn vl1sel(
2608        &self,
2609    ) -> &'static crate::common::Reg<self::Vl1Sel_SPEC, crate::common::RW> {
2610        unsafe {
2611            crate::common::Reg::<self::Vl1Sel_SPEC, crate::common::RW>::from_ptr(
2612                self._svd2pac_as_ptr().add(389usize),
2613            )
2614        }
2615    }
2616
2617    #[doc = "Write-Protect Register"]
2618    #[inline(always)]
2619    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
2620        unsafe {
2621            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
2622                self._svd2pac_as_ptr().add(1283usize),
2623            )
2624        }
2625    }
2626
2627    #[doc = "Port Read Wait Control Register"]
2628    #[inline(always)]
2629    pub const fn prwcntr(
2630        &self,
2631    ) -> &'static crate::common::Reg<self::Prwcntr_SPEC, crate::common::RW> {
2632        unsafe {
2633            crate::common::Reg::<self::Prwcntr_SPEC, crate::common::RW>::from_ptr(
2634                self._svd2pac_as_ptr().add(1295usize),
2635            )
2636        }
2637    }
2638}
2639#[doc(hidden)]
2640#[derive(Copy, Clone, Eq, PartialEq)]
2641pub struct P00Pfs_SPEC;
2642impl crate::sealed::RegSpec for P00Pfs_SPEC {
2643    type DataType = u32;
2644}
2645
2646#[doc = "Port 00%s Pin Function Select Register"]
2647pub type P00Pfs = crate::RegValueT<P00Pfs_SPEC>;
2648
2649impl P00Pfs {
2650    #[doc = "Port Output Data"]
2651    #[inline(always)]
2652    pub fn podr(
2653        self,
2654    ) -> crate::common::RegisterField<
2655        0,
2656        0x1,
2657        1,
2658        0,
2659        p00pfs::Podr,
2660        p00pfs::Podr,
2661        P00Pfs_SPEC,
2662        crate::common::RW,
2663    > {
2664        crate::common::RegisterField::<
2665            0,
2666            0x1,
2667            1,
2668            0,
2669            p00pfs::Podr,
2670            p00pfs::Podr,
2671            P00Pfs_SPEC,
2672            crate::common::RW,
2673        >::from_register(self, 0)
2674    }
2675
2676    #[doc = "Port State"]
2677    #[inline(always)]
2678    pub fn pidr(
2679        self,
2680    ) -> crate::common::RegisterField<
2681        1,
2682        0x1,
2683        1,
2684        0,
2685        p00pfs::Pidr,
2686        p00pfs::Pidr,
2687        P00Pfs_SPEC,
2688        crate::common::R,
2689    > {
2690        crate::common::RegisterField::<
2691            1,
2692            0x1,
2693            1,
2694            0,
2695            p00pfs::Pidr,
2696            p00pfs::Pidr,
2697            P00Pfs_SPEC,
2698            crate::common::R,
2699        >::from_register(self, 0)
2700    }
2701
2702    #[doc = "Port Direction"]
2703    #[inline(always)]
2704    pub fn pdr(
2705        self,
2706    ) -> crate::common::RegisterField<
2707        2,
2708        0x1,
2709        1,
2710        0,
2711        p00pfs::Pdr,
2712        p00pfs::Pdr,
2713        P00Pfs_SPEC,
2714        crate::common::RW,
2715    > {
2716        crate::common::RegisterField::<
2717            2,
2718            0x1,
2719            1,
2720            0,
2721            p00pfs::Pdr,
2722            p00pfs::Pdr,
2723            P00Pfs_SPEC,
2724            crate::common::RW,
2725        >::from_register(self, 0)
2726    }
2727
2728    #[doc = "Pull-up Control"]
2729    #[inline(always)]
2730    pub fn pcr(
2731        self,
2732    ) -> crate::common::RegisterField<
2733        4,
2734        0x1,
2735        1,
2736        0,
2737        p00pfs::Pcr,
2738        p00pfs::Pcr,
2739        P00Pfs_SPEC,
2740        crate::common::RW,
2741    > {
2742        crate::common::RegisterField::<
2743            4,
2744            0x1,
2745            1,
2746            0,
2747            p00pfs::Pcr,
2748            p00pfs::Pcr,
2749            P00Pfs_SPEC,
2750            crate::common::RW,
2751        >::from_register(self, 0)
2752    }
2753
2754    #[doc = "N-Channel Open-Drain Control"]
2755    #[inline(always)]
2756    pub fn ncodr(
2757        self,
2758    ) -> crate::common::RegisterField<
2759        6,
2760        0x1,
2761        1,
2762        0,
2763        p00pfs::Ncodr,
2764        p00pfs::Ncodr,
2765        P00Pfs_SPEC,
2766        crate::common::RW,
2767    > {
2768        crate::common::RegisterField::<
2769            6,
2770            0x1,
2771            1,
2772            0,
2773            p00pfs::Ncodr,
2774            p00pfs::Ncodr,
2775            P00Pfs_SPEC,
2776            crate::common::RW,
2777        >::from_register(self, 0)
2778    }
2779
2780    #[doc = "IRQ Input Enable"]
2781    #[inline(always)]
2782    pub fn isel(
2783        self,
2784    ) -> crate::common::RegisterField<
2785        14,
2786        0x1,
2787        1,
2788        0,
2789        p00pfs::Isel,
2790        p00pfs::Isel,
2791        P00Pfs_SPEC,
2792        crate::common::RW,
2793    > {
2794        crate::common::RegisterField::<
2795            14,
2796            0x1,
2797            1,
2798            0,
2799            p00pfs::Isel,
2800            p00pfs::Isel,
2801            P00Pfs_SPEC,
2802            crate::common::RW,
2803        >::from_register(self, 0)
2804    }
2805
2806    #[doc = "Analog Input Enable"]
2807    #[inline(always)]
2808    pub fn asel(
2809        self,
2810    ) -> crate::common::RegisterField<
2811        15,
2812        0x1,
2813        1,
2814        0,
2815        p00pfs::Asel,
2816        p00pfs::Asel,
2817        P00Pfs_SPEC,
2818        crate::common::RW,
2819    > {
2820        crate::common::RegisterField::<
2821            15,
2822            0x1,
2823            1,
2824            0,
2825            p00pfs::Asel,
2826            p00pfs::Asel,
2827            P00Pfs_SPEC,
2828            crate::common::RW,
2829        >::from_register(self, 0)
2830    }
2831
2832    #[doc = "Port Mode Control"]
2833    #[inline(always)]
2834    pub fn pmr(
2835        self,
2836    ) -> crate::common::RegisterField<
2837        16,
2838        0x1,
2839        1,
2840        0,
2841        p00pfs::Pmr,
2842        p00pfs::Pmr,
2843        P00Pfs_SPEC,
2844        crate::common::RW,
2845    > {
2846        crate::common::RegisterField::<
2847            16,
2848            0x1,
2849            1,
2850            0,
2851            p00pfs::Pmr,
2852            p00pfs::Pmr,
2853            P00Pfs_SPEC,
2854            crate::common::RW,
2855        >::from_register(self, 0)
2856    }
2857
2858    #[doc = "Peripheral Select"]
2859    #[inline(always)]
2860    pub fn psel(
2861        self,
2862    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P00Pfs_SPEC, crate::common::RW> {
2863        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P00Pfs_SPEC,crate::common::RW>::from_register(self,0)
2864    }
2865}
2866impl ::core::default::Default for P00Pfs {
2867    #[inline(always)]
2868    fn default() -> P00Pfs {
2869        <crate::RegValueT<P00Pfs_SPEC> as RegisterValue<_>>::new(0)
2870    }
2871}
2872pub mod p00pfs {
2873
2874    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2875    pub struct Podr_SPEC;
2876    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
2877    impl Podr {
2878        #[doc = "Output low"]
2879        pub const _0: Self = Self::new(0);
2880
2881        #[doc = "Output high"]
2882        pub const _1: Self = Self::new(1);
2883    }
2884    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2885    pub struct Pidr_SPEC;
2886    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
2887    impl Pidr {
2888        #[doc = "Low level"]
2889        pub const _0: Self = Self::new(0);
2890
2891        #[doc = "High level"]
2892        pub const _1: Self = Self::new(1);
2893    }
2894    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2895    pub struct Pdr_SPEC;
2896    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
2897    impl Pdr {
2898        #[doc = "Input (functions as an input pin)"]
2899        pub const _0: Self = Self::new(0);
2900
2901        #[doc = "Output (functions as an output pin)"]
2902        pub const _1: Self = Self::new(1);
2903    }
2904    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2905    pub struct Pcr_SPEC;
2906    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
2907    impl Pcr {
2908        #[doc = "Disable input pull-up"]
2909        pub const _0: Self = Self::new(0);
2910
2911        #[doc = "Enable input pull-up"]
2912        pub const _1: Self = Self::new(1);
2913    }
2914    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2915    pub struct Ncodr_SPEC;
2916    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
2917    impl Ncodr {
2918        #[doc = "Output CMOS"]
2919        pub const _0: Self = Self::new(0);
2920
2921        #[doc = "Output NMOS open-drain"]
2922        pub const _1: Self = Self::new(1);
2923    }
2924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2925    pub struct Isel_SPEC;
2926    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
2927    impl Isel {
2928        #[doc = "Do not use as IRQn input pin"]
2929        pub const _0: Self = Self::new(0);
2930
2931        #[doc = "Use as IRQn input pin"]
2932        pub const _1: Self = Self::new(1);
2933    }
2934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2935    pub struct Asel_SPEC;
2936    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
2937    impl Asel {
2938        #[doc = "Do not use as analog pin"]
2939        pub const _0: Self = Self::new(0);
2940
2941        #[doc = "Use as analog pin"]
2942        pub const _1: Self = Self::new(1);
2943    }
2944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2945    pub struct Pmr_SPEC;
2946    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
2947    impl Pmr {
2948        #[doc = "Use as general I/O pin"]
2949        pub const _0: Self = Self::new(0);
2950
2951        #[doc = "Use as I/O port for peripheral functions"]
2952        pub const _1: Self = Self::new(1);
2953    }
2954}
2955#[doc(hidden)]
2956#[derive(Copy, Clone, Eq, PartialEq)]
2957pub struct P00PfsHa_SPEC;
2958impl crate::sealed::RegSpec for P00PfsHa_SPEC {
2959    type DataType = u16;
2960}
2961
2962#[doc = "Port 00%s Pin Function Select Register"]
2963pub type P00PfsHa = crate::RegValueT<P00PfsHa_SPEC>;
2964
2965impl P00PfsHa {
2966    #[doc = "Port Output Data"]
2967    #[inline(always)]
2968    pub fn podr(
2969        self,
2970    ) -> crate::common::RegisterField<
2971        0,
2972        0x1,
2973        1,
2974        0,
2975        p00pfs_ha::Podr,
2976        p00pfs_ha::Podr,
2977        P00PfsHa_SPEC,
2978        crate::common::RW,
2979    > {
2980        crate::common::RegisterField::<
2981            0,
2982            0x1,
2983            1,
2984            0,
2985            p00pfs_ha::Podr,
2986            p00pfs_ha::Podr,
2987            P00PfsHa_SPEC,
2988            crate::common::RW,
2989        >::from_register(self, 0)
2990    }
2991
2992    #[doc = "Port State"]
2993    #[inline(always)]
2994    pub fn pidr(
2995        self,
2996    ) -> crate::common::RegisterField<
2997        1,
2998        0x1,
2999        1,
3000        0,
3001        p00pfs_ha::Pidr,
3002        p00pfs_ha::Pidr,
3003        P00PfsHa_SPEC,
3004        crate::common::R,
3005    > {
3006        crate::common::RegisterField::<
3007            1,
3008            0x1,
3009            1,
3010            0,
3011            p00pfs_ha::Pidr,
3012            p00pfs_ha::Pidr,
3013            P00PfsHa_SPEC,
3014            crate::common::R,
3015        >::from_register(self, 0)
3016    }
3017
3018    #[doc = "Port Direction"]
3019    #[inline(always)]
3020    pub fn pdr(
3021        self,
3022    ) -> crate::common::RegisterField<
3023        2,
3024        0x1,
3025        1,
3026        0,
3027        p00pfs_ha::Pdr,
3028        p00pfs_ha::Pdr,
3029        P00PfsHa_SPEC,
3030        crate::common::RW,
3031    > {
3032        crate::common::RegisterField::<
3033            2,
3034            0x1,
3035            1,
3036            0,
3037            p00pfs_ha::Pdr,
3038            p00pfs_ha::Pdr,
3039            P00PfsHa_SPEC,
3040            crate::common::RW,
3041        >::from_register(self, 0)
3042    }
3043
3044    #[doc = "Pull-up Control"]
3045    #[inline(always)]
3046    pub fn pcr(
3047        self,
3048    ) -> crate::common::RegisterField<
3049        4,
3050        0x1,
3051        1,
3052        0,
3053        p00pfs_ha::Pcr,
3054        p00pfs_ha::Pcr,
3055        P00PfsHa_SPEC,
3056        crate::common::RW,
3057    > {
3058        crate::common::RegisterField::<
3059            4,
3060            0x1,
3061            1,
3062            0,
3063            p00pfs_ha::Pcr,
3064            p00pfs_ha::Pcr,
3065            P00PfsHa_SPEC,
3066            crate::common::RW,
3067        >::from_register(self, 0)
3068    }
3069
3070    #[doc = "N-Channel Open-Drain Control"]
3071    #[inline(always)]
3072    pub fn ncodr(
3073        self,
3074    ) -> crate::common::RegisterField<
3075        6,
3076        0x1,
3077        1,
3078        0,
3079        p00pfs_ha::Ncodr,
3080        p00pfs_ha::Ncodr,
3081        P00PfsHa_SPEC,
3082        crate::common::RW,
3083    > {
3084        crate::common::RegisterField::<
3085            6,
3086            0x1,
3087            1,
3088            0,
3089            p00pfs_ha::Ncodr,
3090            p00pfs_ha::Ncodr,
3091            P00PfsHa_SPEC,
3092            crate::common::RW,
3093        >::from_register(self, 0)
3094    }
3095
3096    #[doc = "IRQ Input Enable"]
3097    #[inline(always)]
3098    pub fn isel(
3099        self,
3100    ) -> crate::common::RegisterField<
3101        14,
3102        0x1,
3103        1,
3104        0,
3105        p00pfs_ha::Isel,
3106        p00pfs_ha::Isel,
3107        P00PfsHa_SPEC,
3108        crate::common::RW,
3109    > {
3110        crate::common::RegisterField::<
3111            14,
3112            0x1,
3113            1,
3114            0,
3115            p00pfs_ha::Isel,
3116            p00pfs_ha::Isel,
3117            P00PfsHa_SPEC,
3118            crate::common::RW,
3119        >::from_register(self, 0)
3120    }
3121
3122    #[doc = "Analog Input Enable"]
3123    #[inline(always)]
3124    pub fn asel(
3125        self,
3126    ) -> crate::common::RegisterField<
3127        15,
3128        0x1,
3129        1,
3130        0,
3131        p00pfs_ha::Asel,
3132        p00pfs_ha::Asel,
3133        P00PfsHa_SPEC,
3134        crate::common::RW,
3135    > {
3136        crate::common::RegisterField::<
3137            15,
3138            0x1,
3139            1,
3140            0,
3141            p00pfs_ha::Asel,
3142            p00pfs_ha::Asel,
3143            P00PfsHa_SPEC,
3144            crate::common::RW,
3145        >::from_register(self, 0)
3146    }
3147}
3148impl ::core::default::Default for P00PfsHa {
3149    #[inline(always)]
3150    fn default() -> P00PfsHa {
3151        <crate::RegValueT<P00PfsHa_SPEC> as RegisterValue<_>>::new(0)
3152    }
3153}
3154pub mod p00pfs_ha {
3155
3156    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3157    pub struct Podr_SPEC;
3158    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3159    impl Podr {
3160        #[doc = "Output low"]
3161        pub const _0: Self = Self::new(0);
3162
3163        #[doc = "Output high"]
3164        pub const _1: Self = Self::new(1);
3165    }
3166    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3167    pub struct Pidr_SPEC;
3168    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3169    impl Pidr {
3170        #[doc = "Low level"]
3171        pub const _0: Self = Self::new(0);
3172
3173        #[doc = "High level"]
3174        pub const _1: Self = Self::new(1);
3175    }
3176    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3177    pub struct Pdr_SPEC;
3178    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3179    impl Pdr {
3180        #[doc = "Input (functions as an input pin)"]
3181        pub const _0: Self = Self::new(0);
3182
3183        #[doc = "Output (functions as an output pin)"]
3184        pub const _1: Self = Self::new(1);
3185    }
3186    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3187    pub struct Pcr_SPEC;
3188    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3189    impl Pcr {
3190        #[doc = "Disable input pull-up"]
3191        pub const _0: Self = Self::new(0);
3192
3193        #[doc = "Enable input pull-up"]
3194        pub const _1: Self = Self::new(1);
3195    }
3196    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3197    pub struct Ncodr_SPEC;
3198    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3199    impl Ncodr {
3200        #[doc = "Output CMOS"]
3201        pub const _0: Self = Self::new(0);
3202
3203        #[doc = "Output NMOS open-drain"]
3204        pub const _1: Self = Self::new(1);
3205    }
3206    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3207    pub struct Isel_SPEC;
3208    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3209    impl Isel {
3210        #[doc = "Do not use as IRQn input pin"]
3211        pub const _0: Self = Self::new(0);
3212
3213        #[doc = "Use as IRQn input pin"]
3214        pub const _1: Self = Self::new(1);
3215    }
3216    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3217    pub struct Asel_SPEC;
3218    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3219    impl Asel {
3220        #[doc = "Do not use as analog pin"]
3221        pub const _0: Self = Self::new(0);
3222
3223        #[doc = "Use as analog pin"]
3224        pub const _1: Self = Self::new(1);
3225    }
3226}
3227#[doc(hidden)]
3228#[derive(Copy, Clone, Eq, PartialEq)]
3229pub struct P00PfsBy_SPEC;
3230impl crate::sealed::RegSpec for P00PfsBy_SPEC {
3231    type DataType = u8;
3232}
3233
3234#[doc = "Port 00%s Pin Function Select Register"]
3235pub type P00PfsBy = crate::RegValueT<P00PfsBy_SPEC>;
3236
3237impl P00PfsBy {
3238    #[doc = "Port Output Data"]
3239    #[inline(always)]
3240    pub fn podr(
3241        self,
3242    ) -> crate::common::RegisterField<
3243        0,
3244        0x1,
3245        1,
3246        0,
3247        p00pfs_by::Podr,
3248        p00pfs_by::Podr,
3249        P00PfsBy_SPEC,
3250        crate::common::RW,
3251    > {
3252        crate::common::RegisterField::<
3253            0,
3254            0x1,
3255            1,
3256            0,
3257            p00pfs_by::Podr,
3258            p00pfs_by::Podr,
3259            P00PfsBy_SPEC,
3260            crate::common::RW,
3261        >::from_register(self, 0)
3262    }
3263
3264    #[doc = "Port State"]
3265    #[inline(always)]
3266    pub fn pidr(
3267        self,
3268    ) -> crate::common::RegisterField<
3269        1,
3270        0x1,
3271        1,
3272        0,
3273        p00pfs_by::Pidr,
3274        p00pfs_by::Pidr,
3275        P00PfsBy_SPEC,
3276        crate::common::R,
3277    > {
3278        crate::common::RegisterField::<
3279            1,
3280            0x1,
3281            1,
3282            0,
3283            p00pfs_by::Pidr,
3284            p00pfs_by::Pidr,
3285            P00PfsBy_SPEC,
3286            crate::common::R,
3287        >::from_register(self, 0)
3288    }
3289
3290    #[doc = "Port Direction"]
3291    #[inline(always)]
3292    pub fn pdr(
3293        self,
3294    ) -> crate::common::RegisterField<
3295        2,
3296        0x1,
3297        1,
3298        0,
3299        p00pfs_by::Pdr,
3300        p00pfs_by::Pdr,
3301        P00PfsBy_SPEC,
3302        crate::common::RW,
3303    > {
3304        crate::common::RegisterField::<
3305            2,
3306            0x1,
3307            1,
3308            0,
3309            p00pfs_by::Pdr,
3310            p00pfs_by::Pdr,
3311            P00PfsBy_SPEC,
3312            crate::common::RW,
3313        >::from_register(self, 0)
3314    }
3315
3316    #[doc = "Pull-up Control"]
3317    #[inline(always)]
3318    pub fn pcr(
3319        self,
3320    ) -> crate::common::RegisterField<
3321        4,
3322        0x1,
3323        1,
3324        0,
3325        p00pfs_by::Pcr,
3326        p00pfs_by::Pcr,
3327        P00PfsBy_SPEC,
3328        crate::common::RW,
3329    > {
3330        crate::common::RegisterField::<
3331            4,
3332            0x1,
3333            1,
3334            0,
3335            p00pfs_by::Pcr,
3336            p00pfs_by::Pcr,
3337            P00PfsBy_SPEC,
3338            crate::common::RW,
3339        >::from_register(self, 0)
3340    }
3341
3342    #[doc = "N-Channel Open-Drain Control"]
3343    #[inline(always)]
3344    pub fn ncodr(
3345        self,
3346    ) -> crate::common::RegisterField<
3347        6,
3348        0x1,
3349        1,
3350        0,
3351        p00pfs_by::Ncodr,
3352        p00pfs_by::Ncodr,
3353        P00PfsBy_SPEC,
3354        crate::common::RW,
3355    > {
3356        crate::common::RegisterField::<
3357            6,
3358            0x1,
3359            1,
3360            0,
3361            p00pfs_by::Ncodr,
3362            p00pfs_by::Ncodr,
3363            P00PfsBy_SPEC,
3364            crate::common::RW,
3365        >::from_register(self, 0)
3366    }
3367}
3368impl ::core::default::Default for P00PfsBy {
3369    #[inline(always)]
3370    fn default() -> P00PfsBy {
3371        <crate::RegValueT<P00PfsBy_SPEC> as RegisterValue<_>>::new(0)
3372    }
3373}
3374pub mod p00pfs_by {
3375
3376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3377    pub struct Podr_SPEC;
3378    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3379    impl Podr {
3380        #[doc = "Output low"]
3381        pub const _0: Self = Self::new(0);
3382
3383        #[doc = "Output high"]
3384        pub const _1: Self = Self::new(1);
3385    }
3386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3387    pub struct Pidr_SPEC;
3388    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3389    impl Pidr {
3390        #[doc = "Low level"]
3391        pub const _0: Self = Self::new(0);
3392
3393        #[doc = "High level"]
3394        pub const _1: Self = Self::new(1);
3395    }
3396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3397    pub struct Pdr_SPEC;
3398    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3399    impl Pdr {
3400        #[doc = "Input (functions as an input pin)"]
3401        pub const _0: Self = Self::new(0);
3402
3403        #[doc = "Output (functions as an output pin)"]
3404        pub const _1: Self = Self::new(1);
3405    }
3406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3407    pub struct Pcr_SPEC;
3408    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3409    impl Pcr {
3410        #[doc = "Disable input pull-up"]
3411        pub const _0: Self = Self::new(0);
3412
3413        #[doc = "Enable input pull-up"]
3414        pub const _1: Self = Self::new(1);
3415    }
3416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3417    pub struct Ncodr_SPEC;
3418    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3419    impl Ncodr {
3420        #[doc = "Output CMOS"]
3421        pub const _0: Self = Self::new(0);
3422
3423        #[doc = "Output NMOS open-drain"]
3424        pub const _1: Self = Self::new(1);
3425    }
3426}
3427#[doc(hidden)]
3428#[derive(Copy, Clone, Eq, PartialEq)]
3429pub struct P0Pfs_SPEC;
3430impl crate::sealed::RegSpec for P0Pfs_SPEC {
3431    type DataType = u32;
3432}
3433
3434#[doc = "Port 0%s Pin Function Select Register"]
3435pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
3436
3437impl P0Pfs {
3438    #[doc = "Port Output Data"]
3439    #[inline(always)]
3440    pub fn podr(
3441        self,
3442    ) -> crate::common::RegisterField<
3443        0,
3444        0x1,
3445        1,
3446        0,
3447        p0pfs::Podr,
3448        p0pfs::Podr,
3449        P0Pfs_SPEC,
3450        crate::common::RW,
3451    > {
3452        crate::common::RegisterField::<
3453            0,
3454            0x1,
3455            1,
3456            0,
3457            p0pfs::Podr,
3458            p0pfs::Podr,
3459            P0Pfs_SPEC,
3460            crate::common::RW,
3461        >::from_register(self, 0)
3462    }
3463
3464    #[doc = "Port State"]
3465    #[inline(always)]
3466    pub fn pidr(
3467        self,
3468    ) -> crate::common::RegisterField<
3469        1,
3470        0x1,
3471        1,
3472        0,
3473        p0pfs::Pidr,
3474        p0pfs::Pidr,
3475        P0Pfs_SPEC,
3476        crate::common::R,
3477    > {
3478        crate::common::RegisterField::<
3479            1,
3480            0x1,
3481            1,
3482            0,
3483            p0pfs::Pidr,
3484            p0pfs::Pidr,
3485            P0Pfs_SPEC,
3486            crate::common::R,
3487        >::from_register(self, 0)
3488    }
3489
3490    #[doc = "Port Direction"]
3491    #[inline(always)]
3492    pub fn pdr(
3493        self,
3494    ) -> crate::common::RegisterField<
3495        2,
3496        0x1,
3497        1,
3498        0,
3499        p0pfs::Pdr,
3500        p0pfs::Pdr,
3501        P0Pfs_SPEC,
3502        crate::common::RW,
3503    > {
3504        crate::common::RegisterField::<
3505            2,
3506            0x1,
3507            1,
3508            0,
3509            p0pfs::Pdr,
3510            p0pfs::Pdr,
3511            P0Pfs_SPEC,
3512            crate::common::RW,
3513        >::from_register(self, 0)
3514    }
3515
3516    #[doc = "Pull-up Control"]
3517    #[inline(always)]
3518    pub fn pcr(
3519        self,
3520    ) -> crate::common::RegisterField<
3521        4,
3522        0x1,
3523        1,
3524        0,
3525        p0pfs::Pcr,
3526        p0pfs::Pcr,
3527        P0Pfs_SPEC,
3528        crate::common::RW,
3529    > {
3530        crate::common::RegisterField::<
3531            4,
3532            0x1,
3533            1,
3534            0,
3535            p0pfs::Pcr,
3536            p0pfs::Pcr,
3537            P0Pfs_SPEC,
3538            crate::common::RW,
3539        >::from_register(self, 0)
3540    }
3541
3542    #[doc = "N-Channel Open-Drain Control"]
3543    #[inline(always)]
3544    pub fn ncodr(
3545        self,
3546    ) -> crate::common::RegisterField<
3547        6,
3548        0x1,
3549        1,
3550        0,
3551        p0pfs::Ncodr,
3552        p0pfs::Ncodr,
3553        P0Pfs_SPEC,
3554        crate::common::RW,
3555    > {
3556        crate::common::RegisterField::<
3557            6,
3558            0x1,
3559            1,
3560            0,
3561            p0pfs::Ncodr,
3562            p0pfs::Ncodr,
3563            P0Pfs_SPEC,
3564            crate::common::RW,
3565        >::from_register(self, 0)
3566    }
3567
3568    #[doc = "IRQ Input Enable"]
3569    #[inline(always)]
3570    pub fn isel(
3571        self,
3572    ) -> crate::common::RegisterField<
3573        14,
3574        0x1,
3575        1,
3576        0,
3577        p0pfs::Isel,
3578        p0pfs::Isel,
3579        P0Pfs_SPEC,
3580        crate::common::RW,
3581    > {
3582        crate::common::RegisterField::<
3583            14,
3584            0x1,
3585            1,
3586            0,
3587            p0pfs::Isel,
3588            p0pfs::Isel,
3589            P0Pfs_SPEC,
3590            crate::common::RW,
3591        >::from_register(self, 0)
3592    }
3593
3594    #[doc = "Analog Input Enable"]
3595    #[inline(always)]
3596    pub fn asel(
3597        self,
3598    ) -> crate::common::RegisterField<
3599        15,
3600        0x1,
3601        1,
3602        0,
3603        p0pfs::Asel,
3604        p0pfs::Asel,
3605        P0Pfs_SPEC,
3606        crate::common::RW,
3607    > {
3608        crate::common::RegisterField::<
3609            15,
3610            0x1,
3611            1,
3612            0,
3613            p0pfs::Asel,
3614            p0pfs::Asel,
3615            P0Pfs_SPEC,
3616            crate::common::RW,
3617        >::from_register(self, 0)
3618    }
3619
3620    #[doc = "Port Mode Control"]
3621    #[inline(always)]
3622    pub fn pmr(
3623        self,
3624    ) -> crate::common::RegisterField<
3625        16,
3626        0x1,
3627        1,
3628        0,
3629        p0pfs::Pmr,
3630        p0pfs::Pmr,
3631        P0Pfs_SPEC,
3632        crate::common::RW,
3633    > {
3634        crate::common::RegisterField::<
3635            16,
3636            0x1,
3637            1,
3638            0,
3639            p0pfs::Pmr,
3640            p0pfs::Pmr,
3641            P0Pfs_SPEC,
3642            crate::common::RW,
3643        >::from_register(self, 0)
3644    }
3645
3646    #[doc = "Peripheral Select"]
3647    #[inline(always)]
3648    pub fn psel(
3649        self,
3650    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
3651        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
3652    }
3653}
3654impl ::core::default::Default for P0Pfs {
3655    #[inline(always)]
3656    fn default() -> P0Pfs {
3657        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
3658    }
3659}
3660pub mod p0pfs {
3661
3662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3663    pub struct Podr_SPEC;
3664    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3665    impl Podr {
3666        #[doc = "Output low"]
3667        pub const _0: Self = Self::new(0);
3668
3669        #[doc = "Output high"]
3670        pub const _1: Self = Self::new(1);
3671    }
3672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3673    pub struct Pidr_SPEC;
3674    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3675    impl Pidr {
3676        #[doc = "Low level"]
3677        pub const _0: Self = Self::new(0);
3678
3679        #[doc = "High level"]
3680        pub const _1: Self = Self::new(1);
3681    }
3682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3683    pub struct Pdr_SPEC;
3684    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3685    impl Pdr {
3686        #[doc = "Input (functions as an input pin)"]
3687        pub const _0: Self = Self::new(0);
3688
3689        #[doc = "Output (functions as an output pin)"]
3690        pub const _1: Self = Self::new(1);
3691    }
3692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3693    pub struct Pcr_SPEC;
3694    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3695    impl Pcr {
3696        #[doc = "Disable input pull-up"]
3697        pub const _0: Self = Self::new(0);
3698
3699        #[doc = "Enable input pull-up"]
3700        pub const _1: Self = Self::new(1);
3701    }
3702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3703    pub struct Ncodr_SPEC;
3704    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3705    impl Ncodr {
3706        #[doc = "Output CMOS"]
3707        pub const _0: Self = Self::new(0);
3708
3709        #[doc = "Output NMOS open-drain"]
3710        pub const _1: Self = Self::new(1);
3711    }
3712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3713    pub struct Isel_SPEC;
3714    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3715    impl Isel {
3716        #[doc = "Do not use as IRQn input pin"]
3717        pub const _0: Self = Self::new(0);
3718
3719        #[doc = "Use as IRQn input pin"]
3720        pub const _1: Self = Self::new(1);
3721    }
3722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3723    pub struct Asel_SPEC;
3724    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3725    impl Asel {
3726        #[doc = "Do not use as analog pin"]
3727        pub const _0: Self = Self::new(0);
3728
3729        #[doc = "Use as analog pin"]
3730        pub const _1: Self = Self::new(1);
3731    }
3732    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3733    pub struct Pmr_SPEC;
3734    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3735    impl Pmr {
3736        #[doc = "Use as general I/O pin"]
3737        pub const _0: Self = Self::new(0);
3738
3739        #[doc = "Use as I/O port for peripheral functions"]
3740        pub const _1: Self = Self::new(1);
3741    }
3742}
3743#[doc(hidden)]
3744#[derive(Copy, Clone, Eq, PartialEq)]
3745pub struct P0PfsHa_SPEC;
3746impl crate::sealed::RegSpec for P0PfsHa_SPEC {
3747    type DataType = u16;
3748}
3749
3750#[doc = "Port 0%s Pin Function Select Register"]
3751pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
3752
3753impl P0PfsHa {
3754    #[doc = "Port Output Data"]
3755    #[inline(always)]
3756    pub fn podr(
3757        self,
3758    ) -> crate::common::RegisterField<
3759        0,
3760        0x1,
3761        1,
3762        0,
3763        p0pfs_ha::Podr,
3764        p0pfs_ha::Podr,
3765        P0PfsHa_SPEC,
3766        crate::common::RW,
3767    > {
3768        crate::common::RegisterField::<
3769            0,
3770            0x1,
3771            1,
3772            0,
3773            p0pfs_ha::Podr,
3774            p0pfs_ha::Podr,
3775            P0PfsHa_SPEC,
3776            crate::common::RW,
3777        >::from_register(self, 0)
3778    }
3779
3780    #[doc = "Port State"]
3781    #[inline(always)]
3782    pub fn pidr(
3783        self,
3784    ) -> crate::common::RegisterField<
3785        1,
3786        0x1,
3787        1,
3788        0,
3789        p0pfs_ha::Pidr,
3790        p0pfs_ha::Pidr,
3791        P0PfsHa_SPEC,
3792        crate::common::R,
3793    > {
3794        crate::common::RegisterField::<
3795            1,
3796            0x1,
3797            1,
3798            0,
3799            p0pfs_ha::Pidr,
3800            p0pfs_ha::Pidr,
3801            P0PfsHa_SPEC,
3802            crate::common::R,
3803        >::from_register(self, 0)
3804    }
3805
3806    #[doc = "Port Direction"]
3807    #[inline(always)]
3808    pub fn pdr(
3809        self,
3810    ) -> crate::common::RegisterField<
3811        2,
3812        0x1,
3813        1,
3814        0,
3815        p0pfs_ha::Pdr,
3816        p0pfs_ha::Pdr,
3817        P0PfsHa_SPEC,
3818        crate::common::RW,
3819    > {
3820        crate::common::RegisterField::<
3821            2,
3822            0x1,
3823            1,
3824            0,
3825            p0pfs_ha::Pdr,
3826            p0pfs_ha::Pdr,
3827            P0PfsHa_SPEC,
3828            crate::common::RW,
3829        >::from_register(self, 0)
3830    }
3831
3832    #[doc = "Pull-up Control"]
3833    #[inline(always)]
3834    pub fn pcr(
3835        self,
3836    ) -> crate::common::RegisterField<
3837        4,
3838        0x1,
3839        1,
3840        0,
3841        p0pfs_ha::Pcr,
3842        p0pfs_ha::Pcr,
3843        P0PfsHa_SPEC,
3844        crate::common::RW,
3845    > {
3846        crate::common::RegisterField::<
3847            4,
3848            0x1,
3849            1,
3850            0,
3851            p0pfs_ha::Pcr,
3852            p0pfs_ha::Pcr,
3853            P0PfsHa_SPEC,
3854            crate::common::RW,
3855        >::from_register(self, 0)
3856    }
3857
3858    #[doc = "N-Channel Open-Drain Control"]
3859    #[inline(always)]
3860    pub fn ncodr(
3861        self,
3862    ) -> crate::common::RegisterField<
3863        6,
3864        0x1,
3865        1,
3866        0,
3867        p0pfs_ha::Ncodr,
3868        p0pfs_ha::Ncodr,
3869        P0PfsHa_SPEC,
3870        crate::common::RW,
3871    > {
3872        crate::common::RegisterField::<
3873            6,
3874            0x1,
3875            1,
3876            0,
3877            p0pfs_ha::Ncodr,
3878            p0pfs_ha::Ncodr,
3879            P0PfsHa_SPEC,
3880            crate::common::RW,
3881        >::from_register(self, 0)
3882    }
3883
3884    #[doc = "IRQ Input Enable"]
3885    #[inline(always)]
3886    pub fn isel(
3887        self,
3888    ) -> crate::common::RegisterField<
3889        14,
3890        0x1,
3891        1,
3892        0,
3893        p0pfs_ha::Isel,
3894        p0pfs_ha::Isel,
3895        P0PfsHa_SPEC,
3896        crate::common::RW,
3897    > {
3898        crate::common::RegisterField::<
3899            14,
3900            0x1,
3901            1,
3902            0,
3903            p0pfs_ha::Isel,
3904            p0pfs_ha::Isel,
3905            P0PfsHa_SPEC,
3906            crate::common::RW,
3907        >::from_register(self, 0)
3908    }
3909
3910    #[doc = "Analog Input Enable"]
3911    #[inline(always)]
3912    pub fn asel(
3913        self,
3914    ) -> crate::common::RegisterField<
3915        15,
3916        0x1,
3917        1,
3918        0,
3919        p0pfs_ha::Asel,
3920        p0pfs_ha::Asel,
3921        P0PfsHa_SPEC,
3922        crate::common::RW,
3923    > {
3924        crate::common::RegisterField::<
3925            15,
3926            0x1,
3927            1,
3928            0,
3929            p0pfs_ha::Asel,
3930            p0pfs_ha::Asel,
3931            P0PfsHa_SPEC,
3932            crate::common::RW,
3933        >::from_register(self, 0)
3934    }
3935}
3936impl ::core::default::Default for P0PfsHa {
3937    #[inline(always)]
3938    fn default() -> P0PfsHa {
3939        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
3940    }
3941}
3942pub mod p0pfs_ha {
3943
3944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3945    pub struct Podr_SPEC;
3946    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3947    impl Podr {
3948        #[doc = "Output low"]
3949        pub const _0: Self = Self::new(0);
3950
3951        #[doc = "Output high"]
3952        pub const _1: Self = Self::new(1);
3953    }
3954    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3955    pub struct Pidr_SPEC;
3956    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3957    impl Pidr {
3958        #[doc = "Low level"]
3959        pub const _0: Self = Self::new(0);
3960
3961        #[doc = "High level"]
3962        pub const _1: Self = Self::new(1);
3963    }
3964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3965    pub struct Pdr_SPEC;
3966    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3967    impl Pdr {
3968        #[doc = "Input (functions as an input pin)"]
3969        pub const _0: Self = Self::new(0);
3970
3971        #[doc = "Output (functions as an output pin)"]
3972        pub const _1: Self = Self::new(1);
3973    }
3974    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3975    pub struct Pcr_SPEC;
3976    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3977    impl Pcr {
3978        #[doc = "Disable input pull-up"]
3979        pub const _0: Self = Self::new(0);
3980
3981        #[doc = "Enable input pull-up"]
3982        pub const _1: Self = Self::new(1);
3983    }
3984    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3985    pub struct Ncodr_SPEC;
3986    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3987    impl Ncodr {
3988        #[doc = "Output CMOS"]
3989        pub const _0: Self = Self::new(0);
3990
3991        #[doc = "Output NMOS open-drain"]
3992        pub const _1: Self = Self::new(1);
3993    }
3994    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3995    pub struct Isel_SPEC;
3996    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3997    impl Isel {
3998        #[doc = "Do not use as IRQn input pin"]
3999        pub const _0: Self = Self::new(0);
4000
4001        #[doc = "Use as IRQn input pin"]
4002        pub const _1: Self = Self::new(1);
4003    }
4004    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4005    pub struct Asel_SPEC;
4006    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4007    impl Asel {
4008        #[doc = "Do not use as analog pin"]
4009        pub const _0: Self = Self::new(0);
4010
4011        #[doc = "Use as analog pin"]
4012        pub const _1: Self = Self::new(1);
4013    }
4014}
4015#[doc(hidden)]
4016#[derive(Copy, Clone, Eq, PartialEq)]
4017pub struct P0PfsBy_SPEC;
4018impl crate::sealed::RegSpec for P0PfsBy_SPEC {
4019    type DataType = u8;
4020}
4021
4022#[doc = "Port 0%s Pin Function Select Register"]
4023pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
4024
4025impl P0PfsBy {
4026    #[doc = "Port Output Data"]
4027    #[inline(always)]
4028    pub fn podr(
4029        self,
4030    ) -> crate::common::RegisterField<
4031        0,
4032        0x1,
4033        1,
4034        0,
4035        p0pfs_by::Podr,
4036        p0pfs_by::Podr,
4037        P0PfsBy_SPEC,
4038        crate::common::RW,
4039    > {
4040        crate::common::RegisterField::<
4041            0,
4042            0x1,
4043            1,
4044            0,
4045            p0pfs_by::Podr,
4046            p0pfs_by::Podr,
4047            P0PfsBy_SPEC,
4048            crate::common::RW,
4049        >::from_register(self, 0)
4050    }
4051
4052    #[doc = "Port State"]
4053    #[inline(always)]
4054    pub fn pidr(
4055        self,
4056    ) -> crate::common::RegisterField<
4057        1,
4058        0x1,
4059        1,
4060        0,
4061        p0pfs_by::Pidr,
4062        p0pfs_by::Pidr,
4063        P0PfsBy_SPEC,
4064        crate::common::R,
4065    > {
4066        crate::common::RegisterField::<
4067            1,
4068            0x1,
4069            1,
4070            0,
4071            p0pfs_by::Pidr,
4072            p0pfs_by::Pidr,
4073            P0PfsBy_SPEC,
4074            crate::common::R,
4075        >::from_register(self, 0)
4076    }
4077
4078    #[doc = "Port Direction"]
4079    #[inline(always)]
4080    pub fn pdr(
4081        self,
4082    ) -> crate::common::RegisterField<
4083        2,
4084        0x1,
4085        1,
4086        0,
4087        p0pfs_by::Pdr,
4088        p0pfs_by::Pdr,
4089        P0PfsBy_SPEC,
4090        crate::common::RW,
4091    > {
4092        crate::common::RegisterField::<
4093            2,
4094            0x1,
4095            1,
4096            0,
4097            p0pfs_by::Pdr,
4098            p0pfs_by::Pdr,
4099            P0PfsBy_SPEC,
4100            crate::common::RW,
4101        >::from_register(self, 0)
4102    }
4103
4104    #[doc = "Pull-up Control"]
4105    #[inline(always)]
4106    pub fn pcr(
4107        self,
4108    ) -> crate::common::RegisterField<
4109        4,
4110        0x1,
4111        1,
4112        0,
4113        p0pfs_by::Pcr,
4114        p0pfs_by::Pcr,
4115        P0PfsBy_SPEC,
4116        crate::common::RW,
4117    > {
4118        crate::common::RegisterField::<
4119            4,
4120            0x1,
4121            1,
4122            0,
4123            p0pfs_by::Pcr,
4124            p0pfs_by::Pcr,
4125            P0PfsBy_SPEC,
4126            crate::common::RW,
4127        >::from_register(self, 0)
4128    }
4129
4130    #[doc = "N-Channel Open-Drain Control"]
4131    #[inline(always)]
4132    pub fn ncodr(
4133        self,
4134    ) -> crate::common::RegisterField<
4135        6,
4136        0x1,
4137        1,
4138        0,
4139        p0pfs_by::Ncodr,
4140        p0pfs_by::Ncodr,
4141        P0PfsBy_SPEC,
4142        crate::common::RW,
4143    > {
4144        crate::common::RegisterField::<
4145            6,
4146            0x1,
4147            1,
4148            0,
4149            p0pfs_by::Ncodr,
4150            p0pfs_by::Ncodr,
4151            P0PfsBy_SPEC,
4152            crate::common::RW,
4153        >::from_register(self, 0)
4154    }
4155}
4156impl ::core::default::Default for P0PfsBy {
4157    #[inline(always)]
4158    fn default() -> P0PfsBy {
4159        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
4160    }
4161}
4162pub mod p0pfs_by {
4163
4164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4165    pub struct Podr_SPEC;
4166    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4167    impl Podr {
4168        #[doc = "Output low"]
4169        pub const _0: Self = Self::new(0);
4170
4171        #[doc = "Output high"]
4172        pub const _1: Self = Self::new(1);
4173    }
4174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4175    pub struct Pidr_SPEC;
4176    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4177    impl Pidr {
4178        #[doc = "Low level"]
4179        pub const _0: Self = Self::new(0);
4180
4181        #[doc = "High level"]
4182        pub const _1: Self = Self::new(1);
4183    }
4184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4185    pub struct Pdr_SPEC;
4186    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4187    impl Pdr {
4188        #[doc = "Input (functions as an input pin)"]
4189        pub const _0: Self = Self::new(0);
4190
4191        #[doc = "Output (functions as an output pin)"]
4192        pub const _1: Self = Self::new(1);
4193    }
4194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4195    pub struct Pcr_SPEC;
4196    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4197    impl Pcr {
4198        #[doc = "Disable input pull-up"]
4199        pub const _0: Self = Self::new(0);
4200
4201        #[doc = "Enable input pull-up"]
4202        pub const _1: Self = Self::new(1);
4203    }
4204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4205    pub struct Ncodr_SPEC;
4206    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4207    impl Ncodr {
4208        #[doc = "Output CMOS"]
4209        pub const _0: Self = Self::new(0);
4210
4211        #[doc = "Output NMOS open-drain"]
4212        pub const _1: Self = Self::new(1);
4213    }
4214}
4215#[doc(hidden)]
4216#[derive(Copy, Clone, Eq, PartialEq)]
4217pub struct P10Pfs_SPEC;
4218impl crate::sealed::RegSpec for P10Pfs_SPEC {
4219    type DataType = u32;
4220}
4221
4222#[doc = "Port 10%s Pin Function Select Register"]
4223pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
4224
4225impl P10Pfs {
4226    #[doc = "Port Output Data"]
4227    #[inline(always)]
4228    pub fn podr(
4229        self,
4230    ) -> crate::common::RegisterField<
4231        0,
4232        0x1,
4233        1,
4234        0,
4235        p10pfs::Podr,
4236        p10pfs::Podr,
4237        P10Pfs_SPEC,
4238        crate::common::RW,
4239    > {
4240        crate::common::RegisterField::<
4241            0,
4242            0x1,
4243            1,
4244            0,
4245            p10pfs::Podr,
4246            p10pfs::Podr,
4247            P10Pfs_SPEC,
4248            crate::common::RW,
4249        >::from_register(self, 0)
4250    }
4251
4252    #[doc = "Port State"]
4253    #[inline(always)]
4254    pub fn pidr(
4255        self,
4256    ) -> crate::common::RegisterField<
4257        1,
4258        0x1,
4259        1,
4260        0,
4261        p10pfs::Pidr,
4262        p10pfs::Pidr,
4263        P10Pfs_SPEC,
4264        crate::common::R,
4265    > {
4266        crate::common::RegisterField::<
4267            1,
4268            0x1,
4269            1,
4270            0,
4271            p10pfs::Pidr,
4272            p10pfs::Pidr,
4273            P10Pfs_SPEC,
4274            crate::common::R,
4275        >::from_register(self, 0)
4276    }
4277
4278    #[doc = "Port Direction"]
4279    #[inline(always)]
4280    pub fn pdr(
4281        self,
4282    ) -> crate::common::RegisterField<
4283        2,
4284        0x1,
4285        1,
4286        0,
4287        p10pfs::Pdr,
4288        p10pfs::Pdr,
4289        P10Pfs_SPEC,
4290        crate::common::RW,
4291    > {
4292        crate::common::RegisterField::<
4293            2,
4294            0x1,
4295            1,
4296            0,
4297            p10pfs::Pdr,
4298            p10pfs::Pdr,
4299            P10Pfs_SPEC,
4300            crate::common::RW,
4301        >::from_register(self, 0)
4302    }
4303
4304    #[doc = "Pull-up Control"]
4305    #[inline(always)]
4306    pub fn pcr(
4307        self,
4308    ) -> crate::common::RegisterField<
4309        4,
4310        0x1,
4311        1,
4312        0,
4313        p10pfs::Pcr,
4314        p10pfs::Pcr,
4315        P10Pfs_SPEC,
4316        crate::common::RW,
4317    > {
4318        crate::common::RegisterField::<
4319            4,
4320            0x1,
4321            1,
4322            0,
4323            p10pfs::Pcr,
4324            p10pfs::Pcr,
4325            P10Pfs_SPEC,
4326            crate::common::RW,
4327        >::from_register(self, 0)
4328    }
4329
4330    #[doc = "N-Channel Open-Drain Control"]
4331    #[inline(always)]
4332    pub fn ncodr(
4333        self,
4334    ) -> crate::common::RegisterField<
4335        6,
4336        0x1,
4337        1,
4338        0,
4339        p10pfs::Ncodr,
4340        p10pfs::Ncodr,
4341        P10Pfs_SPEC,
4342        crate::common::RW,
4343    > {
4344        crate::common::RegisterField::<
4345            6,
4346            0x1,
4347            1,
4348            0,
4349            p10pfs::Ncodr,
4350            p10pfs::Ncodr,
4351            P10Pfs_SPEC,
4352            crate::common::RW,
4353        >::from_register(self, 0)
4354    }
4355
4356    #[doc = "Event on Falling/Event on Rising"]
4357    #[inline(always)]
4358    pub fn eofr(
4359        self,
4360    ) -> crate::common::RegisterField<
4361        12,
4362        0x3,
4363        1,
4364        0,
4365        p10pfs::Eofr,
4366        p10pfs::Eofr,
4367        P10Pfs_SPEC,
4368        crate::common::RW,
4369    > {
4370        crate::common::RegisterField::<
4371            12,
4372            0x3,
4373            1,
4374            0,
4375            p10pfs::Eofr,
4376            p10pfs::Eofr,
4377            P10Pfs_SPEC,
4378            crate::common::RW,
4379        >::from_register(self, 0)
4380    }
4381
4382    #[doc = "IRQ Input Enable"]
4383    #[inline(always)]
4384    pub fn isel(
4385        self,
4386    ) -> crate::common::RegisterField<
4387        14,
4388        0x1,
4389        1,
4390        0,
4391        p10pfs::Isel,
4392        p10pfs::Isel,
4393        P10Pfs_SPEC,
4394        crate::common::RW,
4395    > {
4396        crate::common::RegisterField::<
4397            14,
4398            0x1,
4399            1,
4400            0,
4401            p10pfs::Isel,
4402            p10pfs::Isel,
4403            P10Pfs_SPEC,
4404            crate::common::RW,
4405        >::from_register(self, 0)
4406    }
4407
4408    #[doc = "Analog Input Enable"]
4409    #[inline(always)]
4410    pub fn asel(
4411        self,
4412    ) -> crate::common::RegisterField<
4413        15,
4414        0x1,
4415        1,
4416        0,
4417        p10pfs::Asel,
4418        p10pfs::Asel,
4419        P10Pfs_SPEC,
4420        crate::common::RW,
4421    > {
4422        crate::common::RegisterField::<
4423            15,
4424            0x1,
4425            1,
4426            0,
4427            p10pfs::Asel,
4428            p10pfs::Asel,
4429            P10Pfs_SPEC,
4430            crate::common::RW,
4431        >::from_register(self, 0)
4432    }
4433
4434    #[doc = "Port Mode Control"]
4435    #[inline(always)]
4436    pub fn pmr(
4437        self,
4438    ) -> crate::common::RegisterField<
4439        16,
4440        0x1,
4441        1,
4442        0,
4443        p10pfs::Pmr,
4444        p10pfs::Pmr,
4445        P10Pfs_SPEC,
4446        crate::common::RW,
4447    > {
4448        crate::common::RegisterField::<
4449            16,
4450            0x1,
4451            1,
4452            0,
4453            p10pfs::Pmr,
4454            p10pfs::Pmr,
4455            P10Pfs_SPEC,
4456            crate::common::RW,
4457        >::from_register(self, 0)
4458    }
4459
4460    #[doc = "Peripheral Select"]
4461    #[inline(always)]
4462    pub fn psel(
4463        self,
4464    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
4465        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
4466    }
4467}
4468impl ::core::default::Default for P10Pfs {
4469    #[inline(always)]
4470    fn default() -> P10Pfs {
4471        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
4472    }
4473}
4474pub mod p10pfs {
4475
4476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4477    pub struct Podr_SPEC;
4478    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4479    impl Podr {
4480        #[doc = "Output low"]
4481        pub const _0: Self = Self::new(0);
4482
4483        #[doc = "Output high"]
4484        pub const _1: Self = Self::new(1);
4485    }
4486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4487    pub struct Pidr_SPEC;
4488    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4489    impl Pidr {
4490        #[doc = "Low level"]
4491        pub const _0: Self = Self::new(0);
4492
4493        #[doc = "High level"]
4494        pub const _1: Self = Self::new(1);
4495    }
4496    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4497    pub struct Pdr_SPEC;
4498    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4499    impl Pdr {
4500        #[doc = "Input (functions as an input pin)"]
4501        pub const _0: Self = Self::new(0);
4502
4503        #[doc = "Output (functions as an output pin)"]
4504        pub const _1: Self = Self::new(1);
4505    }
4506    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4507    pub struct Pcr_SPEC;
4508    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4509    impl Pcr {
4510        #[doc = "Disable input pull-up"]
4511        pub const _0: Self = Self::new(0);
4512
4513        #[doc = "Enable input pull-up"]
4514        pub const _1: Self = Self::new(1);
4515    }
4516    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4517    pub struct Ncodr_SPEC;
4518    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4519    impl Ncodr {
4520        #[doc = "Output CMOS"]
4521        pub const _0: Self = Self::new(0);
4522
4523        #[doc = "Output NMOS open-drain"]
4524        pub const _1: Self = Self::new(1);
4525    }
4526    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4527    pub struct Eofr_SPEC;
4528    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4529    impl Eofr {
4530        #[doc = "Don\'t care"]
4531        pub const _00: Self = Self::new(0);
4532
4533        #[doc = "Detect rising edge"]
4534        pub const _01: Self = Self::new(1);
4535
4536        #[doc = "Detect falling edge"]
4537        pub const _10: Self = Self::new(2);
4538
4539        #[doc = "Detect both edges"]
4540        pub const _11: Self = Self::new(3);
4541    }
4542    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4543    pub struct Isel_SPEC;
4544    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4545    impl Isel {
4546        #[doc = "Do not use as IRQn input pin"]
4547        pub const _0: Self = Self::new(0);
4548
4549        #[doc = "Use as IRQn input pin"]
4550        pub const _1: Self = Self::new(1);
4551    }
4552    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4553    pub struct Asel_SPEC;
4554    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4555    impl Asel {
4556        #[doc = "Do not use as analog pin"]
4557        pub const _0: Self = Self::new(0);
4558
4559        #[doc = "Use as analog pin"]
4560        pub const _1: Self = Self::new(1);
4561    }
4562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4563    pub struct Pmr_SPEC;
4564    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4565    impl Pmr {
4566        #[doc = "Use as general I/O pin"]
4567        pub const _0: Self = Self::new(0);
4568
4569        #[doc = "Use as I/O port for peripheral functions"]
4570        pub const _1: Self = Self::new(1);
4571    }
4572}
4573#[doc(hidden)]
4574#[derive(Copy, Clone, Eq, PartialEq)]
4575pub struct P10PfsHa_SPEC;
4576impl crate::sealed::RegSpec for P10PfsHa_SPEC {
4577    type DataType = u16;
4578}
4579
4580#[doc = "Port 10%s Pin Function Select Register"]
4581pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
4582
4583impl P10PfsHa {
4584    #[doc = "Port Output Data"]
4585    #[inline(always)]
4586    pub fn podr(
4587        self,
4588    ) -> crate::common::RegisterField<
4589        0,
4590        0x1,
4591        1,
4592        0,
4593        p10pfs_ha::Podr,
4594        p10pfs_ha::Podr,
4595        P10PfsHa_SPEC,
4596        crate::common::RW,
4597    > {
4598        crate::common::RegisterField::<
4599            0,
4600            0x1,
4601            1,
4602            0,
4603            p10pfs_ha::Podr,
4604            p10pfs_ha::Podr,
4605            P10PfsHa_SPEC,
4606            crate::common::RW,
4607        >::from_register(self, 0)
4608    }
4609
4610    #[doc = "Port State"]
4611    #[inline(always)]
4612    pub fn pidr(
4613        self,
4614    ) -> crate::common::RegisterField<
4615        1,
4616        0x1,
4617        1,
4618        0,
4619        p10pfs_ha::Pidr,
4620        p10pfs_ha::Pidr,
4621        P10PfsHa_SPEC,
4622        crate::common::R,
4623    > {
4624        crate::common::RegisterField::<
4625            1,
4626            0x1,
4627            1,
4628            0,
4629            p10pfs_ha::Pidr,
4630            p10pfs_ha::Pidr,
4631            P10PfsHa_SPEC,
4632            crate::common::R,
4633        >::from_register(self, 0)
4634    }
4635
4636    #[doc = "Port Direction"]
4637    #[inline(always)]
4638    pub fn pdr(
4639        self,
4640    ) -> crate::common::RegisterField<
4641        2,
4642        0x1,
4643        1,
4644        0,
4645        p10pfs_ha::Pdr,
4646        p10pfs_ha::Pdr,
4647        P10PfsHa_SPEC,
4648        crate::common::RW,
4649    > {
4650        crate::common::RegisterField::<
4651            2,
4652            0x1,
4653            1,
4654            0,
4655            p10pfs_ha::Pdr,
4656            p10pfs_ha::Pdr,
4657            P10PfsHa_SPEC,
4658            crate::common::RW,
4659        >::from_register(self, 0)
4660    }
4661
4662    #[doc = "Pull-up Control"]
4663    #[inline(always)]
4664    pub fn pcr(
4665        self,
4666    ) -> crate::common::RegisterField<
4667        4,
4668        0x1,
4669        1,
4670        0,
4671        p10pfs_ha::Pcr,
4672        p10pfs_ha::Pcr,
4673        P10PfsHa_SPEC,
4674        crate::common::RW,
4675    > {
4676        crate::common::RegisterField::<
4677            4,
4678            0x1,
4679            1,
4680            0,
4681            p10pfs_ha::Pcr,
4682            p10pfs_ha::Pcr,
4683            P10PfsHa_SPEC,
4684            crate::common::RW,
4685        >::from_register(self, 0)
4686    }
4687
4688    #[doc = "N-Channel Open-Drain Control"]
4689    #[inline(always)]
4690    pub fn ncodr(
4691        self,
4692    ) -> crate::common::RegisterField<
4693        6,
4694        0x1,
4695        1,
4696        0,
4697        p10pfs_ha::Ncodr,
4698        p10pfs_ha::Ncodr,
4699        P10PfsHa_SPEC,
4700        crate::common::RW,
4701    > {
4702        crate::common::RegisterField::<
4703            6,
4704            0x1,
4705            1,
4706            0,
4707            p10pfs_ha::Ncodr,
4708            p10pfs_ha::Ncodr,
4709            P10PfsHa_SPEC,
4710            crate::common::RW,
4711        >::from_register(self, 0)
4712    }
4713
4714    #[doc = "Event on Falling/Event on Rising"]
4715    #[inline(always)]
4716    pub fn eofr(
4717        self,
4718    ) -> crate::common::RegisterField<
4719        12,
4720        0x3,
4721        1,
4722        0,
4723        p10pfs_ha::Eofr,
4724        p10pfs_ha::Eofr,
4725        P10PfsHa_SPEC,
4726        crate::common::RW,
4727    > {
4728        crate::common::RegisterField::<
4729            12,
4730            0x3,
4731            1,
4732            0,
4733            p10pfs_ha::Eofr,
4734            p10pfs_ha::Eofr,
4735            P10PfsHa_SPEC,
4736            crate::common::RW,
4737        >::from_register(self, 0)
4738    }
4739
4740    #[doc = "IRQ Input Enable"]
4741    #[inline(always)]
4742    pub fn isel(
4743        self,
4744    ) -> crate::common::RegisterField<
4745        14,
4746        0x1,
4747        1,
4748        0,
4749        p10pfs_ha::Isel,
4750        p10pfs_ha::Isel,
4751        P10PfsHa_SPEC,
4752        crate::common::RW,
4753    > {
4754        crate::common::RegisterField::<
4755            14,
4756            0x1,
4757            1,
4758            0,
4759            p10pfs_ha::Isel,
4760            p10pfs_ha::Isel,
4761            P10PfsHa_SPEC,
4762            crate::common::RW,
4763        >::from_register(self, 0)
4764    }
4765
4766    #[doc = "Analog Input Enable"]
4767    #[inline(always)]
4768    pub fn asel(
4769        self,
4770    ) -> crate::common::RegisterField<
4771        15,
4772        0x1,
4773        1,
4774        0,
4775        p10pfs_ha::Asel,
4776        p10pfs_ha::Asel,
4777        P10PfsHa_SPEC,
4778        crate::common::RW,
4779    > {
4780        crate::common::RegisterField::<
4781            15,
4782            0x1,
4783            1,
4784            0,
4785            p10pfs_ha::Asel,
4786            p10pfs_ha::Asel,
4787            P10PfsHa_SPEC,
4788            crate::common::RW,
4789        >::from_register(self, 0)
4790    }
4791}
4792impl ::core::default::Default for P10PfsHa {
4793    #[inline(always)]
4794    fn default() -> P10PfsHa {
4795        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
4796    }
4797}
4798pub mod p10pfs_ha {
4799
4800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4801    pub struct Podr_SPEC;
4802    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4803    impl Podr {
4804        #[doc = "Output low"]
4805        pub const _0: Self = Self::new(0);
4806
4807        #[doc = "Output high"]
4808        pub const _1: Self = Self::new(1);
4809    }
4810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4811    pub struct Pidr_SPEC;
4812    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4813    impl Pidr {
4814        #[doc = "Low level"]
4815        pub const _0: Self = Self::new(0);
4816
4817        #[doc = "High level"]
4818        pub const _1: Self = Self::new(1);
4819    }
4820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4821    pub struct Pdr_SPEC;
4822    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4823    impl Pdr {
4824        #[doc = "Input (functions as an input pin)"]
4825        pub const _0: Self = Self::new(0);
4826
4827        #[doc = "Output (functions as an output pin)"]
4828        pub const _1: Self = Self::new(1);
4829    }
4830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4831    pub struct Pcr_SPEC;
4832    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4833    impl Pcr {
4834        #[doc = "Disable input pull-up"]
4835        pub const _0: Self = Self::new(0);
4836
4837        #[doc = "Enable input pull-up"]
4838        pub const _1: Self = Self::new(1);
4839    }
4840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4841    pub struct Ncodr_SPEC;
4842    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4843    impl Ncodr {
4844        #[doc = "Output CMOS"]
4845        pub const _0: Self = Self::new(0);
4846
4847        #[doc = "Output NMOS open-drain"]
4848        pub const _1: Self = Self::new(1);
4849    }
4850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4851    pub struct Eofr_SPEC;
4852    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4853    impl Eofr {
4854        #[doc = "Don\'t care"]
4855        pub const _00: Self = Self::new(0);
4856
4857        #[doc = "Detect rising edge"]
4858        pub const _01: Self = Self::new(1);
4859
4860        #[doc = "Detect falling edge"]
4861        pub const _10: Self = Self::new(2);
4862
4863        #[doc = "Detect both edges"]
4864        pub const _11: Self = Self::new(3);
4865    }
4866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4867    pub struct Isel_SPEC;
4868    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4869    impl Isel {
4870        #[doc = "Do not use as IRQn input pin"]
4871        pub const _0: Self = Self::new(0);
4872
4873        #[doc = "Use as IRQn input pin"]
4874        pub const _1: Self = Self::new(1);
4875    }
4876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4877    pub struct Asel_SPEC;
4878    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4879    impl Asel {
4880        #[doc = "Do not use as analog pin"]
4881        pub const _0: Self = Self::new(0);
4882
4883        #[doc = "Use as analog pin"]
4884        pub const _1: Self = Self::new(1);
4885    }
4886}
4887#[doc(hidden)]
4888#[derive(Copy, Clone, Eq, PartialEq)]
4889pub struct P10PfsBy_SPEC;
4890impl crate::sealed::RegSpec for P10PfsBy_SPEC {
4891    type DataType = u8;
4892}
4893
4894#[doc = "Port 10%s Pin Function Select Register"]
4895pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
4896
4897impl P10PfsBy {
4898    #[doc = "Port Output Data"]
4899    #[inline(always)]
4900    pub fn podr(
4901        self,
4902    ) -> crate::common::RegisterField<
4903        0,
4904        0x1,
4905        1,
4906        0,
4907        p10pfs_by::Podr,
4908        p10pfs_by::Podr,
4909        P10PfsBy_SPEC,
4910        crate::common::RW,
4911    > {
4912        crate::common::RegisterField::<
4913            0,
4914            0x1,
4915            1,
4916            0,
4917            p10pfs_by::Podr,
4918            p10pfs_by::Podr,
4919            P10PfsBy_SPEC,
4920            crate::common::RW,
4921        >::from_register(self, 0)
4922    }
4923
4924    #[doc = "Port State"]
4925    #[inline(always)]
4926    pub fn pidr(
4927        self,
4928    ) -> crate::common::RegisterField<
4929        1,
4930        0x1,
4931        1,
4932        0,
4933        p10pfs_by::Pidr,
4934        p10pfs_by::Pidr,
4935        P10PfsBy_SPEC,
4936        crate::common::R,
4937    > {
4938        crate::common::RegisterField::<
4939            1,
4940            0x1,
4941            1,
4942            0,
4943            p10pfs_by::Pidr,
4944            p10pfs_by::Pidr,
4945            P10PfsBy_SPEC,
4946            crate::common::R,
4947        >::from_register(self, 0)
4948    }
4949
4950    #[doc = "Port Direction"]
4951    #[inline(always)]
4952    pub fn pdr(
4953        self,
4954    ) -> crate::common::RegisterField<
4955        2,
4956        0x1,
4957        1,
4958        0,
4959        p10pfs_by::Pdr,
4960        p10pfs_by::Pdr,
4961        P10PfsBy_SPEC,
4962        crate::common::RW,
4963    > {
4964        crate::common::RegisterField::<
4965            2,
4966            0x1,
4967            1,
4968            0,
4969            p10pfs_by::Pdr,
4970            p10pfs_by::Pdr,
4971            P10PfsBy_SPEC,
4972            crate::common::RW,
4973        >::from_register(self, 0)
4974    }
4975
4976    #[doc = "Pull-up Control"]
4977    #[inline(always)]
4978    pub fn pcr(
4979        self,
4980    ) -> crate::common::RegisterField<
4981        4,
4982        0x1,
4983        1,
4984        0,
4985        p10pfs_by::Pcr,
4986        p10pfs_by::Pcr,
4987        P10PfsBy_SPEC,
4988        crate::common::RW,
4989    > {
4990        crate::common::RegisterField::<
4991            4,
4992            0x1,
4993            1,
4994            0,
4995            p10pfs_by::Pcr,
4996            p10pfs_by::Pcr,
4997            P10PfsBy_SPEC,
4998            crate::common::RW,
4999        >::from_register(self, 0)
5000    }
5001
5002    #[doc = "N-Channel Open-Drain Control"]
5003    #[inline(always)]
5004    pub fn ncodr(
5005        self,
5006    ) -> crate::common::RegisterField<
5007        6,
5008        0x1,
5009        1,
5010        0,
5011        p10pfs_by::Ncodr,
5012        p10pfs_by::Ncodr,
5013        P10PfsBy_SPEC,
5014        crate::common::RW,
5015    > {
5016        crate::common::RegisterField::<
5017            6,
5018            0x1,
5019            1,
5020            0,
5021            p10pfs_by::Ncodr,
5022            p10pfs_by::Ncodr,
5023            P10PfsBy_SPEC,
5024            crate::common::RW,
5025        >::from_register(self, 0)
5026    }
5027}
5028impl ::core::default::Default for P10PfsBy {
5029    #[inline(always)]
5030    fn default() -> P10PfsBy {
5031        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
5032    }
5033}
5034pub mod p10pfs_by {
5035
5036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5037    pub struct Podr_SPEC;
5038    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5039    impl Podr {
5040        #[doc = "Output low"]
5041        pub const _0: Self = Self::new(0);
5042
5043        #[doc = "Output high"]
5044        pub const _1: Self = Self::new(1);
5045    }
5046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5047    pub struct Pidr_SPEC;
5048    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5049    impl Pidr {
5050        #[doc = "Low level"]
5051        pub const _0: Self = Self::new(0);
5052
5053        #[doc = "High level"]
5054        pub const _1: Self = Self::new(1);
5055    }
5056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5057    pub struct Pdr_SPEC;
5058    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5059    impl Pdr {
5060        #[doc = "Input (functions as an input pin)"]
5061        pub const _0: Self = Self::new(0);
5062
5063        #[doc = "Output (functions as an output pin)"]
5064        pub const _1: Self = Self::new(1);
5065    }
5066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5067    pub struct Pcr_SPEC;
5068    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5069    impl Pcr {
5070        #[doc = "Disable input pull-up"]
5071        pub const _0: Self = Self::new(0);
5072
5073        #[doc = "Enable input pull-up"]
5074        pub const _1: Self = Self::new(1);
5075    }
5076    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5077    pub struct Ncodr_SPEC;
5078    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5079    impl Ncodr {
5080        #[doc = "Output CMOS"]
5081        pub const _0: Self = Self::new(0);
5082
5083        #[doc = "Output NMOS open-drain"]
5084        pub const _1: Self = Self::new(1);
5085    }
5086}
5087#[doc(hidden)]
5088#[derive(Copy, Clone, Eq, PartialEq)]
5089pub struct P108Pfs_SPEC;
5090impl crate::sealed::RegSpec for P108Pfs_SPEC {
5091    type DataType = u32;
5092}
5093
5094#[doc = "Port 108 Pin Function Select Register"]
5095pub type P108Pfs = crate::RegValueT<P108Pfs_SPEC>;
5096
5097impl P108Pfs {
5098    #[doc = "Port Output Data"]
5099    #[inline(always)]
5100    pub fn podr(
5101        self,
5102    ) -> crate::common::RegisterField<
5103        0,
5104        0x1,
5105        1,
5106        0,
5107        p108pfs::Podr,
5108        p108pfs::Podr,
5109        P108Pfs_SPEC,
5110        crate::common::RW,
5111    > {
5112        crate::common::RegisterField::<
5113            0,
5114            0x1,
5115            1,
5116            0,
5117            p108pfs::Podr,
5118            p108pfs::Podr,
5119            P108Pfs_SPEC,
5120            crate::common::RW,
5121        >::from_register(self, 0)
5122    }
5123
5124    #[doc = "Port State"]
5125    #[inline(always)]
5126    pub fn pidr(
5127        self,
5128    ) -> crate::common::RegisterField<
5129        1,
5130        0x1,
5131        1,
5132        0,
5133        p108pfs::Pidr,
5134        p108pfs::Pidr,
5135        P108Pfs_SPEC,
5136        crate::common::R,
5137    > {
5138        crate::common::RegisterField::<
5139            1,
5140            0x1,
5141            1,
5142            0,
5143            p108pfs::Pidr,
5144            p108pfs::Pidr,
5145            P108Pfs_SPEC,
5146            crate::common::R,
5147        >::from_register(self, 0)
5148    }
5149
5150    #[doc = "Port Direction"]
5151    #[inline(always)]
5152    pub fn pdr(
5153        self,
5154    ) -> crate::common::RegisterField<
5155        2,
5156        0x1,
5157        1,
5158        0,
5159        p108pfs::Pdr,
5160        p108pfs::Pdr,
5161        P108Pfs_SPEC,
5162        crate::common::RW,
5163    > {
5164        crate::common::RegisterField::<
5165            2,
5166            0x1,
5167            1,
5168            0,
5169            p108pfs::Pdr,
5170            p108pfs::Pdr,
5171            P108Pfs_SPEC,
5172            crate::common::RW,
5173        >::from_register(self, 0)
5174    }
5175
5176    #[doc = "Pull-up Control"]
5177    #[inline(always)]
5178    pub fn pcr(
5179        self,
5180    ) -> crate::common::RegisterField<
5181        4,
5182        0x1,
5183        1,
5184        0,
5185        p108pfs::Pcr,
5186        p108pfs::Pcr,
5187        P108Pfs_SPEC,
5188        crate::common::RW,
5189    > {
5190        crate::common::RegisterField::<
5191            4,
5192            0x1,
5193            1,
5194            0,
5195            p108pfs::Pcr,
5196            p108pfs::Pcr,
5197            P108Pfs_SPEC,
5198            crate::common::RW,
5199        >::from_register(self, 0)
5200    }
5201
5202    #[doc = "N-Channel Open-Drain Control"]
5203    #[inline(always)]
5204    pub fn ncodr(
5205        self,
5206    ) -> crate::common::RegisterField<
5207        6,
5208        0x1,
5209        1,
5210        0,
5211        p108pfs::Ncodr,
5212        p108pfs::Ncodr,
5213        P108Pfs_SPEC,
5214        crate::common::RW,
5215    > {
5216        crate::common::RegisterField::<
5217            6,
5218            0x1,
5219            1,
5220            0,
5221            p108pfs::Ncodr,
5222            p108pfs::Ncodr,
5223            P108Pfs_SPEC,
5224            crate::common::RW,
5225        >::from_register(self, 0)
5226    }
5227
5228    #[doc = "Event on Falling/Event on Rising"]
5229    #[inline(always)]
5230    pub fn eofr(
5231        self,
5232    ) -> crate::common::RegisterField<
5233        12,
5234        0x3,
5235        1,
5236        0,
5237        p108pfs::Eofr,
5238        p108pfs::Eofr,
5239        P108Pfs_SPEC,
5240        crate::common::RW,
5241    > {
5242        crate::common::RegisterField::<
5243            12,
5244            0x3,
5245            1,
5246            0,
5247            p108pfs::Eofr,
5248            p108pfs::Eofr,
5249            P108Pfs_SPEC,
5250            crate::common::RW,
5251        >::from_register(self, 0)
5252    }
5253
5254    #[doc = "IRQ Input Enable"]
5255    #[inline(always)]
5256    pub fn isel(
5257        self,
5258    ) -> crate::common::RegisterField<
5259        14,
5260        0x1,
5261        1,
5262        0,
5263        p108pfs::Isel,
5264        p108pfs::Isel,
5265        P108Pfs_SPEC,
5266        crate::common::RW,
5267    > {
5268        crate::common::RegisterField::<
5269            14,
5270            0x1,
5271            1,
5272            0,
5273            p108pfs::Isel,
5274            p108pfs::Isel,
5275            P108Pfs_SPEC,
5276            crate::common::RW,
5277        >::from_register(self, 0)
5278    }
5279
5280    #[doc = "Analog Input Enable"]
5281    #[inline(always)]
5282    pub fn asel(
5283        self,
5284    ) -> crate::common::RegisterField<
5285        15,
5286        0x1,
5287        1,
5288        0,
5289        p108pfs::Asel,
5290        p108pfs::Asel,
5291        P108Pfs_SPEC,
5292        crate::common::RW,
5293    > {
5294        crate::common::RegisterField::<
5295            15,
5296            0x1,
5297            1,
5298            0,
5299            p108pfs::Asel,
5300            p108pfs::Asel,
5301            P108Pfs_SPEC,
5302            crate::common::RW,
5303        >::from_register(self, 0)
5304    }
5305
5306    #[doc = "Port Mode Control"]
5307    #[inline(always)]
5308    pub fn pmr(
5309        self,
5310    ) -> crate::common::RegisterField<
5311        16,
5312        0x1,
5313        1,
5314        0,
5315        p108pfs::Pmr,
5316        p108pfs::Pmr,
5317        P108Pfs_SPEC,
5318        crate::common::RW,
5319    > {
5320        crate::common::RegisterField::<
5321            16,
5322            0x1,
5323            1,
5324            0,
5325            p108pfs::Pmr,
5326            p108pfs::Pmr,
5327            P108Pfs_SPEC,
5328            crate::common::RW,
5329        >::from_register(self, 0)
5330    }
5331
5332    #[doc = "Peripheral Select"]
5333    #[inline(always)]
5334    pub fn psel(
5335        self,
5336    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P108Pfs_SPEC, crate::common::RW> {
5337        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P108Pfs_SPEC,crate::common::RW>::from_register(self,0)
5338    }
5339}
5340impl ::core::default::Default for P108Pfs {
5341    #[inline(always)]
5342    fn default() -> P108Pfs {
5343        <crate::RegValueT<P108Pfs_SPEC> as RegisterValue<_>>::new(65552)
5344    }
5345}
5346pub mod p108pfs {
5347
5348    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5349    pub struct Podr_SPEC;
5350    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5351    impl Podr {
5352        #[doc = "Output low"]
5353        pub const _0: Self = Self::new(0);
5354
5355        #[doc = "Output high"]
5356        pub const _1: Self = Self::new(1);
5357    }
5358    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5359    pub struct Pidr_SPEC;
5360    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5361    impl Pidr {
5362        #[doc = "Low level"]
5363        pub const _0: Self = Self::new(0);
5364
5365        #[doc = "High level"]
5366        pub const _1: Self = Self::new(1);
5367    }
5368    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5369    pub struct Pdr_SPEC;
5370    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5371    impl Pdr {
5372        #[doc = "Input (functions as an input pin)"]
5373        pub const _0: Self = Self::new(0);
5374
5375        #[doc = "Output (functions as an output pin)"]
5376        pub const _1: Self = Self::new(1);
5377    }
5378    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5379    pub struct Pcr_SPEC;
5380    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5381    impl Pcr {
5382        #[doc = "Disable input pull-up"]
5383        pub const _0: Self = Self::new(0);
5384
5385        #[doc = "Enable input pull-up"]
5386        pub const _1: Self = Self::new(1);
5387    }
5388    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5389    pub struct Ncodr_SPEC;
5390    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5391    impl Ncodr {
5392        #[doc = "Output CMOS"]
5393        pub const _0: Self = Self::new(0);
5394
5395        #[doc = "Output NMOS open-drain"]
5396        pub const _1: Self = Self::new(1);
5397    }
5398    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5399    pub struct Eofr_SPEC;
5400    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5401    impl Eofr {
5402        #[doc = "Don\'t care"]
5403        pub const _00: Self = Self::new(0);
5404
5405        #[doc = "Detect rising edge"]
5406        pub const _01: Self = Self::new(1);
5407
5408        #[doc = "Detect falling edge"]
5409        pub const _10: Self = Self::new(2);
5410
5411        #[doc = "Detect both edges"]
5412        pub const _11: Self = Self::new(3);
5413    }
5414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5415    pub struct Isel_SPEC;
5416    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5417    impl Isel {
5418        #[doc = "Do not use as IRQn input pin"]
5419        pub const _0: Self = Self::new(0);
5420
5421        #[doc = "Use as IRQn input pin"]
5422        pub const _1: Self = Self::new(1);
5423    }
5424    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5425    pub struct Asel_SPEC;
5426    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5427    impl Asel {
5428        #[doc = "Do not use as analog pin"]
5429        pub const _0: Self = Self::new(0);
5430
5431        #[doc = "Use as analog pin"]
5432        pub const _1: Self = Self::new(1);
5433    }
5434    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5435    pub struct Pmr_SPEC;
5436    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5437    impl Pmr {
5438        #[doc = "Use as general I/O pin"]
5439        pub const _0: Self = Self::new(0);
5440
5441        #[doc = "Use as I/O port for peripheral functions"]
5442        pub const _1: Self = Self::new(1);
5443    }
5444}
5445#[doc(hidden)]
5446#[derive(Copy, Clone, Eq, PartialEq)]
5447pub struct P108PfsHa_SPEC;
5448impl crate::sealed::RegSpec for P108PfsHa_SPEC {
5449    type DataType = u16;
5450}
5451
5452#[doc = "Port 108 Pin Function Select Register"]
5453pub type P108PfsHa = crate::RegValueT<P108PfsHa_SPEC>;
5454
5455impl P108PfsHa {
5456    #[doc = "Port Output Data"]
5457    #[inline(always)]
5458    pub fn podr(
5459        self,
5460    ) -> crate::common::RegisterField<
5461        0,
5462        0x1,
5463        1,
5464        0,
5465        p108pfs_ha::Podr,
5466        p108pfs_ha::Podr,
5467        P108PfsHa_SPEC,
5468        crate::common::RW,
5469    > {
5470        crate::common::RegisterField::<
5471            0,
5472            0x1,
5473            1,
5474            0,
5475            p108pfs_ha::Podr,
5476            p108pfs_ha::Podr,
5477            P108PfsHa_SPEC,
5478            crate::common::RW,
5479        >::from_register(self, 0)
5480    }
5481
5482    #[doc = "Port State"]
5483    #[inline(always)]
5484    pub fn pidr(
5485        self,
5486    ) -> crate::common::RegisterField<
5487        1,
5488        0x1,
5489        1,
5490        0,
5491        p108pfs_ha::Pidr,
5492        p108pfs_ha::Pidr,
5493        P108PfsHa_SPEC,
5494        crate::common::R,
5495    > {
5496        crate::common::RegisterField::<
5497            1,
5498            0x1,
5499            1,
5500            0,
5501            p108pfs_ha::Pidr,
5502            p108pfs_ha::Pidr,
5503            P108PfsHa_SPEC,
5504            crate::common::R,
5505        >::from_register(self, 0)
5506    }
5507
5508    #[doc = "Port Direction"]
5509    #[inline(always)]
5510    pub fn pdr(
5511        self,
5512    ) -> crate::common::RegisterField<
5513        2,
5514        0x1,
5515        1,
5516        0,
5517        p108pfs_ha::Pdr,
5518        p108pfs_ha::Pdr,
5519        P108PfsHa_SPEC,
5520        crate::common::RW,
5521    > {
5522        crate::common::RegisterField::<
5523            2,
5524            0x1,
5525            1,
5526            0,
5527            p108pfs_ha::Pdr,
5528            p108pfs_ha::Pdr,
5529            P108PfsHa_SPEC,
5530            crate::common::RW,
5531        >::from_register(self, 0)
5532    }
5533
5534    #[doc = "Pull-up Control"]
5535    #[inline(always)]
5536    pub fn pcr(
5537        self,
5538    ) -> crate::common::RegisterField<
5539        4,
5540        0x1,
5541        1,
5542        0,
5543        p108pfs_ha::Pcr,
5544        p108pfs_ha::Pcr,
5545        P108PfsHa_SPEC,
5546        crate::common::RW,
5547    > {
5548        crate::common::RegisterField::<
5549            4,
5550            0x1,
5551            1,
5552            0,
5553            p108pfs_ha::Pcr,
5554            p108pfs_ha::Pcr,
5555            P108PfsHa_SPEC,
5556            crate::common::RW,
5557        >::from_register(self, 0)
5558    }
5559
5560    #[doc = "N-Channel Open-Drain Control"]
5561    #[inline(always)]
5562    pub fn ncodr(
5563        self,
5564    ) -> crate::common::RegisterField<
5565        6,
5566        0x1,
5567        1,
5568        0,
5569        p108pfs_ha::Ncodr,
5570        p108pfs_ha::Ncodr,
5571        P108PfsHa_SPEC,
5572        crate::common::RW,
5573    > {
5574        crate::common::RegisterField::<
5575            6,
5576            0x1,
5577            1,
5578            0,
5579            p108pfs_ha::Ncodr,
5580            p108pfs_ha::Ncodr,
5581            P108PfsHa_SPEC,
5582            crate::common::RW,
5583        >::from_register(self, 0)
5584    }
5585
5586    #[doc = "Event on Falling/Event on Rising"]
5587    #[inline(always)]
5588    pub fn eofr(
5589        self,
5590    ) -> crate::common::RegisterField<
5591        12,
5592        0x3,
5593        1,
5594        0,
5595        p108pfs_ha::Eofr,
5596        p108pfs_ha::Eofr,
5597        P108PfsHa_SPEC,
5598        crate::common::RW,
5599    > {
5600        crate::common::RegisterField::<
5601            12,
5602            0x3,
5603            1,
5604            0,
5605            p108pfs_ha::Eofr,
5606            p108pfs_ha::Eofr,
5607            P108PfsHa_SPEC,
5608            crate::common::RW,
5609        >::from_register(self, 0)
5610    }
5611
5612    #[doc = "IRQ Input Enable"]
5613    #[inline(always)]
5614    pub fn isel(
5615        self,
5616    ) -> crate::common::RegisterField<
5617        14,
5618        0x1,
5619        1,
5620        0,
5621        p108pfs_ha::Isel,
5622        p108pfs_ha::Isel,
5623        P108PfsHa_SPEC,
5624        crate::common::RW,
5625    > {
5626        crate::common::RegisterField::<
5627            14,
5628            0x1,
5629            1,
5630            0,
5631            p108pfs_ha::Isel,
5632            p108pfs_ha::Isel,
5633            P108PfsHa_SPEC,
5634            crate::common::RW,
5635        >::from_register(self, 0)
5636    }
5637
5638    #[doc = "Analog Input Enable"]
5639    #[inline(always)]
5640    pub fn asel(
5641        self,
5642    ) -> crate::common::RegisterField<
5643        15,
5644        0x1,
5645        1,
5646        0,
5647        p108pfs_ha::Asel,
5648        p108pfs_ha::Asel,
5649        P108PfsHa_SPEC,
5650        crate::common::RW,
5651    > {
5652        crate::common::RegisterField::<
5653            15,
5654            0x1,
5655            1,
5656            0,
5657            p108pfs_ha::Asel,
5658            p108pfs_ha::Asel,
5659            P108PfsHa_SPEC,
5660            crate::common::RW,
5661        >::from_register(self, 0)
5662    }
5663}
5664impl ::core::default::Default for P108PfsHa {
5665    #[inline(always)]
5666    fn default() -> P108PfsHa {
5667        <crate::RegValueT<P108PfsHa_SPEC> as RegisterValue<_>>::new(16)
5668    }
5669}
5670pub mod p108pfs_ha {
5671
5672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5673    pub struct Podr_SPEC;
5674    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5675    impl Podr {
5676        #[doc = "Output low"]
5677        pub const _0: Self = Self::new(0);
5678
5679        #[doc = "Output high"]
5680        pub const _1: Self = Self::new(1);
5681    }
5682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5683    pub struct Pidr_SPEC;
5684    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5685    impl Pidr {
5686        #[doc = "Low level"]
5687        pub const _0: Self = Self::new(0);
5688
5689        #[doc = "High level"]
5690        pub const _1: Self = Self::new(1);
5691    }
5692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5693    pub struct Pdr_SPEC;
5694    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5695    impl Pdr {
5696        #[doc = "Input (functions as an input pin)"]
5697        pub const _0: Self = Self::new(0);
5698
5699        #[doc = "Output (functions as an output pin)"]
5700        pub const _1: Self = Self::new(1);
5701    }
5702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5703    pub struct Pcr_SPEC;
5704    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5705    impl Pcr {
5706        #[doc = "Disable input pull-up"]
5707        pub const _0: Self = Self::new(0);
5708
5709        #[doc = "Enable input pull-up"]
5710        pub const _1: Self = Self::new(1);
5711    }
5712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5713    pub struct Ncodr_SPEC;
5714    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5715    impl Ncodr {
5716        #[doc = "Output CMOS"]
5717        pub const _0: Self = Self::new(0);
5718
5719        #[doc = "Output NMOS open-drain"]
5720        pub const _1: Self = Self::new(1);
5721    }
5722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5723    pub struct Eofr_SPEC;
5724    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5725    impl Eofr {
5726        #[doc = "Don\'t care"]
5727        pub const _00: Self = Self::new(0);
5728
5729        #[doc = "Detect rising edge"]
5730        pub const _01: Self = Self::new(1);
5731
5732        #[doc = "Detect falling edge"]
5733        pub const _10: Self = Self::new(2);
5734
5735        #[doc = "Detect both edges"]
5736        pub const _11: Self = Self::new(3);
5737    }
5738    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5739    pub struct Isel_SPEC;
5740    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5741    impl Isel {
5742        #[doc = "Do not use as IRQn input pin"]
5743        pub const _0: Self = Self::new(0);
5744
5745        #[doc = "Use as IRQn input pin"]
5746        pub const _1: Self = Self::new(1);
5747    }
5748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5749    pub struct Asel_SPEC;
5750    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5751    impl Asel {
5752        #[doc = "Do not use as analog pin"]
5753        pub const _0: Self = Self::new(0);
5754
5755        #[doc = "Use as analog pin"]
5756        pub const _1: Self = Self::new(1);
5757    }
5758}
5759#[doc(hidden)]
5760#[derive(Copy, Clone, Eq, PartialEq)]
5761pub struct P108PfsBy_SPEC;
5762impl crate::sealed::RegSpec for P108PfsBy_SPEC {
5763    type DataType = u8;
5764}
5765
5766#[doc = "Port 108 Pin Function Select Register"]
5767pub type P108PfsBy = crate::RegValueT<P108PfsBy_SPEC>;
5768
5769impl P108PfsBy {
5770    #[doc = "Port Output Data"]
5771    #[inline(always)]
5772    pub fn podr(
5773        self,
5774    ) -> crate::common::RegisterField<
5775        0,
5776        0x1,
5777        1,
5778        0,
5779        p108pfs_by::Podr,
5780        p108pfs_by::Podr,
5781        P108PfsBy_SPEC,
5782        crate::common::RW,
5783    > {
5784        crate::common::RegisterField::<
5785            0,
5786            0x1,
5787            1,
5788            0,
5789            p108pfs_by::Podr,
5790            p108pfs_by::Podr,
5791            P108PfsBy_SPEC,
5792            crate::common::RW,
5793        >::from_register(self, 0)
5794    }
5795
5796    #[doc = "Port State"]
5797    #[inline(always)]
5798    pub fn pidr(
5799        self,
5800    ) -> crate::common::RegisterField<
5801        1,
5802        0x1,
5803        1,
5804        0,
5805        p108pfs_by::Pidr,
5806        p108pfs_by::Pidr,
5807        P108PfsBy_SPEC,
5808        crate::common::R,
5809    > {
5810        crate::common::RegisterField::<
5811            1,
5812            0x1,
5813            1,
5814            0,
5815            p108pfs_by::Pidr,
5816            p108pfs_by::Pidr,
5817            P108PfsBy_SPEC,
5818            crate::common::R,
5819        >::from_register(self, 0)
5820    }
5821
5822    #[doc = "Port Direction"]
5823    #[inline(always)]
5824    pub fn pdr(
5825        self,
5826    ) -> crate::common::RegisterField<
5827        2,
5828        0x1,
5829        1,
5830        0,
5831        p108pfs_by::Pdr,
5832        p108pfs_by::Pdr,
5833        P108PfsBy_SPEC,
5834        crate::common::RW,
5835    > {
5836        crate::common::RegisterField::<
5837            2,
5838            0x1,
5839            1,
5840            0,
5841            p108pfs_by::Pdr,
5842            p108pfs_by::Pdr,
5843            P108PfsBy_SPEC,
5844            crate::common::RW,
5845        >::from_register(self, 0)
5846    }
5847
5848    #[doc = "Pull-up Control"]
5849    #[inline(always)]
5850    pub fn pcr(
5851        self,
5852    ) -> crate::common::RegisterField<
5853        4,
5854        0x1,
5855        1,
5856        0,
5857        p108pfs_by::Pcr,
5858        p108pfs_by::Pcr,
5859        P108PfsBy_SPEC,
5860        crate::common::RW,
5861    > {
5862        crate::common::RegisterField::<
5863            4,
5864            0x1,
5865            1,
5866            0,
5867            p108pfs_by::Pcr,
5868            p108pfs_by::Pcr,
5869            P108PfsBy_SPEC,
5870            crate::common::RW,
5871        >::from_register(self, 0)
5872    }
5873
5874    #[doc = "N-Channel Open-Drain Control"]
5875    #[inline(always)]
5876    pub fn ncodr(
5877        self,
5878    ) -> crate::common::RegisterField<
5879        6,
5880        0x1,
5881        1,
5882        0,
5883        p108pfs_by::Ncodr,
5884        p108pfs_by::Ncodr,
5885        P108PfsBy_SPEC,
5886        crate::common::RW,
5887    > {
5888        crate::common::RegisterField::<
5889            6,
5890            0x1,
5891            1,
5892            0,
5893            p108pfs_by::Ncodr,
5894            p108pfs_by::Ncodr,
5895            P108PfsBy_SPEC,
5896            crate::common::RW,
5897        >::from_register(self, 0)
5898    }
5899}
5900impl ::core::default::Default for P108PfsBy {
5901    #[inline(always)]
5902    fn default() -> P108PfsBy {
5903        <crate::RegValueT<P108PfsBy_SPEC> as RegisterValue<_>>::new(16)
5904    }
5905}
5906pub mod p108pfs_by {
5907
5908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5909    pub struct Podr_SPEC;
5910    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5911    impl Podr {
5912        #[doc = "Output low"]
5913        pub const _0: Self = Self::new(0);
5914
5915        #[doc = "Output high"]
5916        pub const _1: Self = Self::new(1);
5917    }
5918    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5919    pub struct Pidr_SPEC;
5920    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5921    impl Pidr {
5922        #[doc = "Low level"]
5923        pub const _0: Self = Self::new(0);
5924
5925        #[doc = "High level"]
5926        pub const _1: Self = Self::new(1);
5927    }
5928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5929    pub struct Pdr_SPEC;
5930    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5931    impl Pdr {
5932        #[doc = "Input (functions as an input pin)"]
5933        pub const _0: Self = Self::new(0);
5934
5935        #[doc = "Output (functions as an output pin)"]
5936        pub const _1: Self = Self::new(1);
5937    }
5938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5939    pub struct Pcr_SPEC;
5940    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5941    impl Pcr {
5942        #[doc = "Disable input pull-up"]
5943        pub const _0: Self = Self::new(0);
5944
5945        #[doc = "Enable input pull-up"]
5946        pub const _1: Self = Self::new(1);
5947    }
5948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5949    pub struct Ncodr_SPEC;
5950    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5951    impl Ncodr {
5952        #[doc = "Output CMOS"]
5953        pub const _0: Self = Self::new(0);
5954
5955        #[doc = "Output NMOS open-drain"]
5956        pub const _1: Self = Self::new(1);
5957    }
5958}
5959#[doc(hidden)]
5960#[derive(Copy, Clone, Eq, PartialEq)]
5961pub struct P109Pfs_SPEC;
5962impl crate::sealed::RegSpec for P109Pfs_SPEC {
5963    type DataType = u32;
5964}
5965
5966#[doc = "Port 109 Pin Function Select Register"]
5967pub type P109Pfs = crate::RegValueT<P109Pfs_SPEC>;
5968
5969impl P109Pfs {
5970    #[doc = "Port Output Data"]
5971    #[inline(always)]
5972    pub fn podr(
5973        self,
5974    ) -> crate::common::RegisterField<
5975        0,
5976        0x1,
5977        1,
5978        0,
5979        p109pfs::Podr,
5980        p109pfs::Podr,
5981        P109Pfs_SPEC,
5982        crate::common::RW,
5983    > {
5984        crate::common::RegisterField::<
5985            0,
5986            0x1,
5987            1,
5988            0,
5989            p109pfs::Podr,
5990            p109pfs::Podr,
5991            P109Pfs_SPEC,
5992            crate::common::RW,
5993        >::from_register(self, 0)
5994    }
5995
5996    #[doc = "Port State"]
5997    #[inline(always)]
5998    pub fn pidr(
5999        self,
6000    ) -> crate::common::RegisterField<
6001        1,
6002        0x1,
6003        1,
6004        0,
6005        p109pfs::Pidr,
6006        p109pfs::Pidr,
6007        P109Pfs_SPEC,
6008        crate::common::R,
6009    > {
6010        crate::common::RegisterField::<
6011            1,
6012            0x1,
6013            1,
6014            0,
6015            p109pfs::Pidr,
6016            p109pfs::Pidr,
6017            P109Pfs_SPEC,
6018            crate::common::R,
6019        >::from_register(self, 0)
6020    }
6021
6022    #[doc = "Port Direction"]
6023    #[inline(always)]
6024    pub fn pdr(
6025        self,
6026    ) -> crate::common::RegisterField<
6027        2,
6028        0x1,
6029        1,
6030        0,
6031        p109pfs::Pdr,
6032        p109pfs::Pdr,
6033        P109Pfs_SPEC,
6034        crate::common::RW,
6035    > {
6036        crate::common::RegisterField::<
6037            2,
6038            0x1,
6039            1,
6040            0,
6041            p109pfs::Pdr,
6042            p109pfs::Pdr,
6043            P109Pfs_SPEC,
6044            crate::common::RW,
6045        >::from_register(self, 0)
6046    }
6047
6048    #[doc = "Pull-up Control"]
6049    #[inline(always)]
6050    pub fn pcr(
6051        self,
6052    ) -> crate::common::RegisterField<
6053        4,
6054        0x1,
6055        1,
6056        0,
6057        p109pfs::Pcr,
6058        p109pfs::Pcr,
6059        P109Pfs_SPEC,
6060        crate::common::RW,
6061    > {
6062        crate::common::RegisterField::<
6063            4,
6064            0x1,
6065            1,
6066            0,
6067            p109pfs::Pcr,
6068            p109pfs::Pcr,
6069            P109Pfs_SPEC,
6070            crate::common::RW,
6071        >::from_register(self, 0)
6072    }
6073
6074    #[doc = "N-Channel Open-Drain Control"]
6075    #[inline(always)]
6076    pub fn ncodr(
6077        self,
6078    ) -> crate::common::RegisterField<
6079        6,
6080        0x1,
6081        1,
6082        0,
6083        p109pfs::Ncodr,
6084        p109pfs::Ncodr,
6085        P109Pfs_SPEC,
6086        crate::common::RW,
6087    > {
6088        crate::common::RegisterField::<
6089            6,
6090            0x1,
6091            1,
6092            0,
6093            p109pfs::Ncodr,
6094            p109pfs::Ncodr,
6095            P109Pfs_SPEC,
6096            crate::common::RW,
6097        >::from_register(self, 0)
6098    }
6099
6100    #[doc = "Event on Falling/Event on Rising"]
6101    #[inline(always)]
6102    pub fn eofr(
6103        self,
6104    ) -> crate::common::RegisterField<
6105        12,
6106        0x3,
6107        1,
6108        0,
6109        p109pfs::Eofr,
6110        p109pfs::Eofr,
6111        P109Pfs_SPEC,
6112        crate::common::RW,
6113    > {
6114        crate::common::RegisterField::<
6115            12,
6116            0x3,
6117            1,
6118            0,
6119            p109pfs::Eofr,
6120            p109pfs::Eofr,
6121            P109Pfs_SPEC,
6122            crate::common::RW,
6123        >::from_register(self, 0)
6124    }
6125
6126    #[doc = "IRQ Input Enable"]
6127    #[inline(always)]
6128    pub fn isel(
6129        self,
6130    ) -> crate::common::RegisterField<
6131        14,
6132        0x1,
6133        1,
6134        0,
6135        p109pfs::Isel,
6136        p109pfs::Isel,
6137        P109Pfs_SPEC,
6138        crate::common::RW,
6139    > {
6140        crate::common::RegisterField::<
6141            14,
6142            0x1,
6143            1,
6144            0,
6145            p109pfs::Isel,
6146            p109pfs::Isel,
6147            P109Pfs_SPEC,
6148            crate::common::RW,
6149        >::from_register(self, 0)
6150    }
6151
6152    #[doc = "Analog Input Enable"]
6153    #[inline(always)]
6154    pub fn asel(
6155        self,
6156    ) -> crate::common::RegisterField<
6157        15,
6158        0x1,
6159        1,
6160        0,
6161        p109pfs::Asel,
6162        p109pfs::Asel,
6163        P109Pfs_SPEC,
6164        crate::common::RW,
6165    > {
6166        crate::common::RegisterField::<
6167            15,
6168            0x1,
6169            1,
6170            0,
6171            p109pfs::Asel,
6172            p109pfs::Asel,
6173            P109Pfs_SPEC,
6174            crate::common::RW,
6175        >::from_register(self, 0)
6176    }
6177
6178    #[doc = "Port Mode Control"]
6179    #[inline(always)]
6180    pub fn pmr(
6181        self,
6182    ) -> crate::common::RegisterField<
6183        16,
6184        0x1,
6185        1,
6186        0,
6187        p109pfs::Pmr,
6188        p109pfs::Pmr,
6189        P109Pfs_SPEC,
6190        crate::common::RW,
6191    > {
6192        crate::common::RegisterField::<
6193            16,
6194            0x1,
6195            1,
6196            0,
6197            p109pfs::Pmr,
6198            p109pfs::Pmr,
6199            P109Pfs_SPEC,
6200            crate::common::RW,
6201        >::from_register(self, 0)
6202    }
6203
6204    #[doc = "Peripheral Select"]
6205    #[inline(always)]
6206    pub fn psel(
6207        self,
6208    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P109Pfs_SPEC, crate::common::RW> {
6209        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P109Pfs_SPEC,crate::common::RW>::from_register(self,0)
6210    }
6211}
6212impl ::core::default::Default for P109Pfs {
6213    #[inline(always)]
6214    fn default() -> P109Pfs {
6215        <crate::RegValueT<P109Pfs_SPEC> as RegisterValue<_>>::new(0)
6216    }
6217}
6218pub mod p109pfs {
6219
6220    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6221    pub struct Podr_SPEC;
6222    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6223    impl Podr {
6224        #[doc = "Output low"]
6225        pub const _0: Self = Self::new(0);
6226
6227        #[doc = "Output high"]
6228        pub const _1: Self = Self::new(1);
6229    }
6230    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6231    pub struct Pidr_SPEC;
6232    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6233    impl Pidr {
6234        #[doc = "Low level"]
6235        pub const _0: Self = Self::new(0);
6236
6237        #[doc = "High level"]
6238        pub const _1: Self = Self::new(1);
6239    }
6240    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6241    pub struct Pdr_SPEC;
6242    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6243    impl Pdr {
6244        #[doc = "Input (functions as an input pin)"]
6245        pub const _0: Self = Self::new(0);
6246
6247        #[doc = "Output (functions as an output pin)"]
6248        pub const _1: Self = Self::new(1);
6249    }
6250    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6251    pub struct Pcr_SPEC;
6252    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6253    impl Pcr {
6254        #[doc = "Disable input pull-up"]
6255        pub const _0: Self = Self::new(0);
6256
6257        #[doc = "Enable input pull-up"]
6258        pub const _1: Self = Self::new(1);
6259    }
6260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6261    pub struct Ncodr_SPEC;
6262    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6263    impl Ncodr {
6264        #[doc = "Output CMOS"]
6265        pub const _0: Self = Self::new(0);
6266
6267        #[doc = "Output NMOS open-drain"]
6268        pub const _1: Self = Self::new(1);
6269    }
6270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6271    pub struct Eofr_SPEC;
6272    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6273    impl Eofr {
6274        #[doc = "Don\'t care"]
6275        pub const _00: Self = Self::new(0);
6276
6277        #[doc = "Detect rising edge"]
6278        pub const _01: Self = Self::new(1);
6279
6280        #[doc = "Detect falling edge"]
6281        pub const _10: Self = Self::new(2);
6282
6283        #[doc = "Detect both edges"]
6284        pub const _11: Self = Self::new(3);
6285    }
6286    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6287    pub struct Isel_SPEC;
6288    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6289    impl Isel {
6290        #[doc = "Do not use as IRQn input pin"]
6291        pub const _0: Self = Self::new(0);
6292
6293        #[doc = "Use as IRQn input pin"]
6294        pub const _1: Self = Self::new(1);
6295    }
6296    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6297    pub struct Asel_SPEC;
6298    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6299    impl Asel {
6300        #[doc = "Do not use as analog pin"]
6301        pub const _0: Self = Self::new(0);
6302
6303        #[doc = "Use as analog pin"]
6304        pub const _1: Self = Self::new(1);
6305    }
6306    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6307    pub struct Pmr_SPEC;
6308    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6309    impl Pmr {
6310        #[doc = "Use as general I/O pin"]
6311        pub const _0: Self = Self::new(0);
6312
6313        #[doc = "Use as I/O port for peripheral functions"]
6314        pub const _1: Self = Self::new(1);
6315    }
6316}
6317#[doc(hidden)]
6318#[derive(Copy, Clone, Eq, PartialEq)]
6319pub struct P109PfsHa_SPEC;
6320impl crate::sealed::RegSpec for P109PfsHa_SPEC {
6321    type DataType = u16;
6322}
6323
6324#[doc = "Port 109 Pin Function Select Register"]
6325pub type P109PfsHa = crate::RegValueT<P109PfsHa_SPEC>;
6326
6327impl P109PfsHa {
6328    #[doc = "Port Output Data"]
6329    #[inline(always)]
6330    pub fn podr(
6331        self,
6332    ) -> crate::common::RegisterField<
6333        0,
6334        0x1,
6335        1,
6336        0,
6337        p109pfs_ha::Podr,
6338        p109pfs_ha::Podr,
6339        P109PfsHa_SPEC,
6340        crate::common::RW,
6341    > {
6342        crate::common::RegisterField::<
6343            0,
6344            0x1,
6345            1,
6346            0,
6347            p109pfs_ha::Podr,
6348            p109pfs_ha::Podr,
6349            P109PfsHa_SPEC,
6350            crate::common::RW,
6351        >::from_register(self, 0)
6352    }
6353
6354    #[doc = "Port State"]
6355    #[inline(always)]
6356    pub fn pidr(
6357        self,
6358    ) -> crate::common::RegisterField<
6359        1,
6360        0x1,
6361        1,
6362        0,
6363        p109pfs_ha::Pidr,
6364        p109pfs_ha::Pidr,
6365        P109PfsHa_SPEC,
6366        crate::common::R,
6367    > {
6368        crate::common::RegisterField::<
6369            1,
6370            0x1,
6371            1,
6372            0,
6373            p109pfs_ha::Pidr,
6374            p109pfs_ha::Pidr,
6375            P109PfsHa_SPEC,
6376            crate::common::R,
6377        >::from_register(self, 0)
6378    }
6379
6380    #[doc = "Port Direction"]
6381    #[inline(always)]
6382    pub fn pdr(
6383        self,
6384    ) -> crate::common::RegisterField<
6385        2,
6386        0x1,
6387        1,
6388        0,
6389        p109pfs_ha::Pdr,
6390        p109pfs_ha::Pdr,
6391        P109PfsHa_SPEC,
6392        crate::common::RW,
6393    > {
6394        crate::common::RegisterField::<
6395            2,
6396            0x1,
6397            1,
6398            0,
6399            p109pfs_ha::Pdr,
6400            p109pfs_ha::Pdr,
6401            P109PfsHa_SPEC,
6402            crate::common::RW,
6403        >::from_register(self, 0)
6404    }
6405
6406    #[doc = "Pull-up Control"]
6407    #[inline(always)]
6408    pub fn pcr(
6409        self,
6410    ) -> crate::common::RegisterField<
6411        4,
6412        0x1,
6413        1,
6414        0,
6415        p109pfs_ha::Pcr,
6416        p109pfs_ha::Pcr,
6417        P109PfsHa_SPEC,
6418        crate::common::RW,
6419    > {
6420        crate::common::RegisterField::<
6421            4,
6422            0x1,
6423            1,
6424            0,
6425            p109pfs_ha::Pcr,
6426            p109pfs_ha::Pcr,
6427            P109PfsHa_SPEC,
6428            crate::common::RW,
6429        >::from_register(self, 0)
6430    }
6431
6432    #[doc = "N-Channel Open-Drain Control"]
6433    #[inline(always)]
6434    pub fn ncodr(
6435        self,
6436    ) -> crate::common::RegisterField<
6437        6,
6438        0x1,
6439        1,
6440        0,
6441        p109pfs_ha::Ncodr,
6442        p109pfs_ha::Ncodr,
6443        P109PfsHa_SPEC,
6444        crate::common::RW,
6445    > {
6446        crate::common::RegisterField::<
6447            6,
6448            0x1,
6449            1,
6450            0,
6451            p109pfs_ha::Ncodr,
6452            p109pfs_ha::Ncodr,
6453            P109PfsHa_SPEC,
6454            crate::common::RW,
6455        >::from_register(self, 0)
6456    }
6457
6458    #[doc = "Event on Falling/Event on Rising"]
6459    #[inline(always)]
6460    pub fn eofr(
6461        self,
6462    ) -> crate::common::RegisterField<
6463        12,
6464        0x3,
6465        1,
6466        0,
6467        p109pfs_ha::Eofr,
6468        p109pfs_ha::Eofr,
6469        P109PfsHa_SPEC,
6470        crate::common::RW,
6471    > {
6472        crate::common::RegisterField::<
6473            12,
6474            0x3,
6475            1,
6476            0,
6477            p109pfs_ha::Eofr,
6478            p109pfs_ha::Eofr,
6479            P109PfsHa_SPEC,
6480            crate::common::RW,
6481        >::from_register(self, 0)
6482    }
6483
6484    #[doc = "IRQ Input Enable"]
6485    #[inline(always)]
6486    pub fn isel(
6487        self,
6488    ) -> crate::common::RegisterField<
6489        14,
6490        0x1,
6491        1,
6492        0,
6493        p109pfs_ha::Isel,
6494        p109pfs_ha::Isel,
6495        P109PfsHa_SPEC,
6496        crate::common::RW,
6497    > {
6498        crate::common::RegisterField::<
6499            14,
6500            0x1,
6501            1,
6502            0,
6503            p109pfs_ha::Isel,
6504            p109pfs_ha::Isel,
6505            P109PfsHa_SPEC,
6506            crate::common::RW,
6507        >::from_register(self, 0)
6508    }
6509
6510    #[doc = "Analog Input Enable"]
6511    #[inline(always)]
6512    pub fn asel(
6513        self,
6514    ) -> crate::common::RegisterField<
6515        15,
6516        0x1,
6517        1,
6518        0,
6519        p109pfs_ha::Asel,
6520        p109pfs_ha::Asel,
6521        P109PfsHa_SPEC,
6522        crate::common::RW,
6523    > {
6524        crate::common::RegisterField::<
6525            15,
6526            0x1,
6527            1,
6528            0,
6529            p109pfs_ha::Asel,
6530            p109pfs_ha::Asel,
6531            P109PfsHa_SPEC,
6532            crate::common::RW,
6533        >::from_register(self, 0)
6534    }
6535}
6536impl ::core::default::Default for P109PfsHa {
6537    #[inline(always)]
6538    fn default() -> P109PfsHa {
6539        <crate::RegValueT<P109PfsHa_SPEC> as RegisterValue<_>>::new(0)
6540    }
6541}
6542pub mod p109pfs_ha {
6543
6544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6545    pub struct Podr_SPEC;
6546    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6547    impl Podr {
6548        #[doc = "Output low"]
6549        pub const _0: Self = Self::new(0);
6550
6551        #[doc = "Output high"]
6552        pub const _1: Self = Self::new(1);
6553    }
6554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6555    pub struct Pidr_SPEC;
6556    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6557    impl Pidr {
6558        #[doc = "Low level"]
6559        pub const _0: Self = Self::new(0);
6560
6561        #[doc = "High level"]
6562        pub const _1: Self = Self::new(1);
6563    }
6564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6565    pub struct Pdr_SPEC;
6566    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6567    impl Pdr {
6568        #[doc = "Input (functions as an input pin)"]
6569        pub const _0: Self = Self::new(0);
6570
6571        #[doc = "Output (functions as an output pin)"]
6572        pub const _1: Self = Self::new(1);
6573    }
6574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6575    pub struct Pcr_SPEC;
6576    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6577    impl Pcr {
6578        #[doc = "Disable input pull-up"]
6579        pub const _0: Self = Self::new(0);
6580
6581        #[doc = "Enable input pull-up"]
6582        pub const _1: Self = Self::new(1);
6583    }
6584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6585    pub struct Ncodr_SPEC;
6586    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6587    impl Ncodr {
6588        #[doc = "Output CMOS"]
6589        pub const _0: Self = Self::new(0);
6590
6591        #[doc = "Output NMOS open-drain"]
6592        pub const _1: Self = Self::new(1);
6593    }
6594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6595    pub struct Eofr_SPEC;
6596    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6597    impl Eofr {
6598        #[doc = "Don\'t care"]
6599        pub const _00: Self = Self::new(0);
6600
6601        #[doc = "Detect rising edge"]
6602        pub const _01: Self = Self::new(1);
6603
6604        #[doc = "Detect falling edge"]
6605        pub const _10: Self = Self::new(2);
6606
6607        #[doc = "Detect both edges"]
6608        pub const _11: Self = Self::new(3);
6609    }
6610    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6611    pub struct Isel_SPEC;
6612    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6613    impl Isel {
6614        #[doc = "Do not use as IRQn input pin"]
6615        pub const _0: Self = Self::new(0);
6616
6617        #[doc = "Use as IRQn input pin"]
6618        pub const _1: Self = Self::new(1);
6619    }
6620    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6621    pub struct Asel_SPEC;
6622    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6623    impl Asel {
6624        #[doc = "Do not use as analog pin"]
6625        pub const _0: Self = Self::new(0);
6626
6627        #[doc = "Use as analog pin"]
6628        pub const _1: Self = Self::new(1);
6629    }
6630}
6631#[doc(hidden)]
6632#[derive(Copy, Clone, Eq, PartialEq)]
6633pub struct P109PfsBy_SPEC;
6634impl crate::sealed::RegSpec for P109PfsBy_SPEC {
6635    type DataType = u8;
6636}
6637
6638#[doc = "Port 109 Pin Function Select Register"]
6639pub type P109PfsBy = crate::RegValueT<P109PfsBy_SPEC>;
6640
6641impl P109PfsBy {
6642    #[doc = "Port Output Data"]
6643    #[inline(always)]
6644    pub fn podr(
6645        self,
6646    ) -> crate::common::RegisterField<
6647        0,
6648        0x1,
6649        1,
6650        0,
6651        p109pfs_by::Podr,
6652        p109pfs_by::Podr,
6653        P109PfsBy_SPEC,
6654        crate::common::RW,
6655    > {
6656        crate::common::RegisterField::<
6657            0,
6658            0x1,
6659            1,
6660            0,
6661            p109pfs_by::Podr,
6662            p109pfs_by::Podr,
6663            P109PfsBy_SPEC,
6664            crate::common::RW,
6665        >::from_register(self, 0)
6666    }
6667
6668    #[doc = "Port State"]
6669    #[inline(always)]
6670    pub fn pidr(
6671        self,
6672    ) -> crate::common::RegisterField<
6673        1,
6674        0x1,
6675        1,
6676        0,
6677        p109pfs_by::Pidr,
6678        p109pfs_by::Pidr,
6679        P109PfsBy_SPEC,
6680        crate::common::R,
6681    > {
6682        crate::common::RegisterField::<
6683            1,
6684            0x1,
6685            1,
6686            0,
6687            p109pfs_by::Pidr,
6688            p109pfs_by::Pidr,
6689            P109PfsBy_SPEC,
6690            crate::common::R,
6691        >::from_register(self, 0)
6692    }
6693
6694    #[doc = "Port Direction"]
6695    #[inline(always)]
6696    pub fn pdr(
6697        self,
6698    ) -> crate::common::RegisterField<
6699        2,
6700        0x1,
6701        1,
6702        0,
6703        p109pfs_by::Pdr,
6704        p109pfs_by::Pdr,
6705        P109PfsBy_SPEC,
6706        crate::common::RW,
6707    > {
6708        crate::common::RegisterField::<
6709            2,
6710            0x1,
6711            1,
6712            0,
6713            p109pfs_by::Pdr,
6714            p109pfs_by::Pdr,
6715            P109PfsBy_SPEC,
6716            crate::common::RW,
6717        >::from_register(self, 0)
6718    }
6719
6720    #[doc = "Pull-up Control"]
6721    #[inline(always)]
6722    pub fn pcr(
6723        self,
6724    ) -> crate::common::RegisterField<
6725        4,
6726        0x1,
6727        1,
6728        0,
6729        p109pfs_by::Pcr,
6730        p109pfs_by::Pcr,
6731        P109PfsBy_SPEC,
6732        crate::common::RW,
6733    > {
6734        crate::common::RegisterField::<
6735            4,
6736            0x1,
6737            1,
6738            0,
6739            p109pfs_by::Pcr,
6740            p109pfs_by::Pcr,
6741            P109PfsBy_SPEC,
6742            crate::common::RW,
6743        >::from_register(self, 0)
6744    }
6745
6746    #[doc = "N-Channel Open-Drain Control"]
6747    #[inline(always)]
6748    pub fn ncodr(
6749        self,
6750    ) -> crate::common::RegisterField<
6751        6,
6752        0x1,
6753        1,
6754        0,
6755        p109pfs_by::Ncodr,
6756        p109pfs_by::Ncodr,
6757        P109PfsBy_SPEC,
6758        crate::common::RW,
6759    > {
6760        crate::common::RegisterField::<
6761            6,
6762            0x1,
6763            1,
6764            0,
6765            p109pfs_by::Ncodr,
6766            p109pfs_by::Ncodr,
6767            P109PfsBy_SPEC,
6768            crate::common::RW,
6769        >::from_register(self, 0)
6770    }
6771}
6772impl ::core::default::Default for P109PfsBy {
6773    #[inline(always)]
6774    fn default() -> P109PfsBy {
6775        <crate::RegValueT<P109PfsBy_SPEC> as RegisterValue<_>>::new(0)
6776    }
6777}
6778pub mod p109pfs_by {
6779
6780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6781    pub struct Podr_SPEC;
6782    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6783    impl Podr {
6784        #[doc = "Output low"]
6785        pub const _0: Self = Self::new(0);
6786
6787        #[doc = "Output high"]
6788        pub const _1: Self = Self::new(1);
6789    }
6790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6791    pub struct Pidr_SPEC;
6792    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6793    impl Pidr {
6794        #[doc = "Low level"]
6795        pub const _0: Self = Self::new(0);
6796
6797        #[doc = "High level"]
6798        pub const _1: Self = Self::new(1);
6799    }
6800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6801    pub struct Pdr_SPEC;
6802    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6803    impl Pdr {
6804        #[doc = "Input (functions as an input pin)"]
6805        pub const _0: Self = Self::new(0);
6806
6807        #[doc = "Output (functions as an output pin)"]
6808        pub const _1: Self = Self::new(1);
6809    }
6810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6811    pub struct Pcr_SPEC;
6812    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6813    impl Pcr {
6814        #[doc = "Disable input pull-up"]
6815        pub const _0: Self = Self::new(0);
6816
6817        #[doc = "Enable input pull-up"]
6818        pub const _1: Self = Self::new(1);
6819    }
6820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6821    pub struct Ncodr_SPEC;
6822    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6823    impl Ncodr {
6824        #[doc = "Output CMOS"]
6825        pub const _0: Self = Self::new(0);
6826
6827        #[doc = "Output NMOS open-drain"]
6828        pub const _1: Self = Self::new(1);
6829    }
6830}
6831#[doc(hidden)]
6832#[derive(Copy, Clone, Eq, PartialEq)]
6833pub struct P1Pfs_SPEC;
6834impl crate::sealed::RegSpec for P1Pfs_SPEC {
6835    type DataType = u32;
6836}
6837
6838#[doc = "Port 1%s Pin Function Select Register"]
6839pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
6840
6841impl P1Pfs {
6842    #[doc = "Port Output Data"]
6843    #[inline(always)]
6844    pub fn podr(
6845        self,
6846    ) -> crate::common::RegisterField<
6847        0,
6848        0x1,
6849        1,
6850        0,
6851        p1pfs::Podr,
6852        p1pfs::Podr,
6853        P1Pfs_SPEC,
6854        crate::common::RW,
6855    > {
6856        crate::common::RegisterField::<
6857            0,
6858            0x1,
6859            1,
6860            0,
6861            p1pfs::Podr,
6862            p1pfs::Podr,
6863            P1Pfs_SPEC,
6864            crate::common::RW,
6865        >::from_register(self, 0)
6866    }
6867
6868    #[doc = "Port State"]
6869    #[inline(always)]
6870    pub fn pidr(
6871        self,
6872    ) -> crate::common::RegisterField<
6873        1,
6874        0x1,
6875        1,
6876        0,
6877        p1pfs::Pidr,
6878        p1pfs::Pidr,
6879        P1Pfs_SPEC,
6880        crate::common::R,
6881    > {
6882        crate::common::RegisterField::<
6883            1,
6884            0x1,
6885            1,
6886            0,
6887            p1pfs::Pidr,
6888            p1pfs::Pidr,
6889            P1Pfs_SPEC,
6890            crate::common::R,
6891        >::from_register(self, 0)
6892    }
6893
6894    #[doc = "Port Direction"]
6895    #[inline(always)]
6896    pub fn pdr(
6897        self,
6898    ) -> crate::common::RegisterField<
6899        2,
6900        0x1,
6901        1,
6902        0,
6903        p1pfs::Pdr,
6904        p1pfs::Pdr,
6905        P1Pfs_SPEC,
6906        crate::common::RW,
6907    > {
6908        crate::common::RegisterField::<
6909            2,
6910            0x1,
6911            1,
6912            0,
6913            p1pfs::Pdr,
6914            p1pfs::Pdr,
6915            P1Pfs_SPEC,
6916            crate::common::RW,
6917        >::from_register(self, 0)
6918    }
6919
6920    #[doc = "Pull-up Control"]
6921    #[inline(always)]
6922    pub fn pcr(
6923        self,
6924    ) -> crate::common::RegisterField<
6925        4,
6926        0x1,
6927        1,
6928        0,
6929        p1pfs::Pcr,
6930        p1pfs::Pcr,
6931        P1Pfs_SPEC,
6932        crate::common::RW,
6933    > {
6934        crate::common::RegisterField::<
6935            4,
6936            0x1,
6937            1,
6938            0,
6939            p1pfs::Pcr,
6940            p1pfs::Pcr,
6941            P1Pfs_SPEC,
6942            crate::common::RW,
6943        >::from_register(self, 0)
6944    }
6945
6946    #[doc = "N-Channel Open-Drain Control"]
6947    #[inline(always)]
6948    pub fn ncodr(
6949        self,
6950    ) -> crate::common::RegisterField<
6951        6,
6952        0x1,
6953        1,
6954        0,
6955        p1pfs::Ncodr,
6956        p1pfs::Ncodr,
6957        P1Pfs_SPEC,
6958        crate::common::RW,
6959    > {
6960        crate::common::RegisterField::<
6961            6,
6962            0x1,
6963            1,
6964            0,
6965            p1pfs::Ncodr,
6966            p1pfs::Ncodr,
6967            P1Pfs_SPEC,
6968            crate::common::RW,
6969        >::from_register(self, 0)
6970    }
6971
6972    #[doc = "Event on Falling/Event on Rising"]
6973    #[inline(always)]
6974    pub fn eofr(
6975        self,
6976    ) -> crate::common::RegisterField<
6977        12,
6978        0x3,
6979        1,
6980        0,
6981        p1pfs::Eofr,
6982        p1pfs::Eofr,
6983        P1Pfs_SPEC,
6984        crate::common::RW,
6985    > {
6986        crate::common::RegisterField::<
6987            12,
6988            0x3,
6989            1,
6990            0,
6991            p1pfs::Eofr,
6992            p1pfs::Eofr,
6993            P1Pfs_SPEC,
6994            crate::common::RW,
6995        >::from_register(self, 0)
6996    }
6997
6998    #[doc = "IRQ Input Enable"]
6999    #[inline(always)]
7000    pub fn isel(
7001        self,
7002    ) -> crate::common::RegisterField<
7003        14,
7004        0x1,
7005        1,
7006        0,
7007        p1pfs::Isel,
7008        p1pfs::Isel,
7009        P1Pfs_SPEC,
7010        crate::common::RW,
7011    > {
7012        crate::common::RegisterField::<
7013            14,
7014            0x1,
7015            1,
7016            0,
7017            p1pfs::Isel,
7018            p1pfs::Isel,
7019            P1Pfs_SPEC,
7020            crate::common::RW,
7021        >::from_register(self, 0)
7022    }
7023
7024    #[doc = "Analog Input Enable"]
7025    #[inline(always)]
7026    pub fn asel(
7027        self,
7028    ) -> crate::common::RegisterField<
7029        15,
7030        0x1,
7031        1,
7032        0,
7033        p1pfs::Asel,
7034        p1pfs::Asel,
7035        P1Pfs_SPEC,
7036        crate::common::RW,
7037    > {
7038        crate::common::RegisterField::<
7039            15,
7040            0x1,
7041            1,
7042            0,
7043            p1pfs::Asel,
7044            p1pfs::Asel,
7045            P1Pfs_SPEC,
7046            crate::common::RW,
7047        >::from_register(self, 0)
7048    }
7049
7050    #[doc = "Port Mode Control"]
7051    #[inline(always)]
7052    pub fn pmr(
7053        self,
7054    ) -> crate::common::RegisterField<
7055        16,
7056        0x1,
7057        1,
7058        0,
7059        p1pfs::Pmr,
7060        p1pfs::Pmr,
7061        P1Pfs_SPEC,
7062        crate::common::RW,
7063    > {
7064        crate::common::RegisterField::<
7065            16,
7066            0x1,
7067            1,
7068            0,
7069            p1pfs::Pmr,
7070            p1pfs::Pmr,
7071            P1Pfs_SPEC,
7072            crate::common::RW,
7073        >::from_register(self, 0)
7074    }
7075
7076    #[doc = "Peripheral Select"]
7077    #[inline(always)]
7078    pub fn psel(
7079        self,
7080    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
7081        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
7082    }
7083}
7084impl ::core::default::Default for P1Pfs {
7085    #[inline(always)]
7086    fn default() -> P1Pfs {
7087        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
7088    }
7089}
7090pub mod p1pfs {
7091
7092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7093    pub struct Podr_SPEC;
7094    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7095    impl Podr {
7096        #[doc = "Output low"]
7097        pub const _0: Self = Self::new(0);
7098
7099        #[doc = "Output high"]
7100        pub const _1: Self = Self::new(1);
7101    }
7102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7103    pub struct Pidr_SPEC;
7104    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7105    impl Pidr {
7106        #[doc = "Low level"]
7107        pub const _0: Self = Self::new(0);
7108
7109        #[doc = "High level"]
7110        pub const _1: Self = Self::new(1);
7111    }
7112    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7113    pub struct Pdr_SPEC;
7114    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7115    impl Pdr {
7116        #[doc = "Input (functions as an input pin)"]
7117        pub const _0: Self = Self::new(0);
7118
7119        #[doc = "Output (functions as an output pin)"]
7120        pub const _1: Self = Self::new(1);
7121    }
7122    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7123    pub struct Pcr_SPEC;
7124    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7125    impl Pcr {
7126        #[doc = "Disable input pull-up"]
7127        pub const _0: Self = Self::new(0);
7128
7129        #[doc = "Enable input pull-up"]
7130        pub const _1: Self = Self::new(1);
7131    }
7132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7133    pub struct Ncodr_SPEC;
7134    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7135    impl Ncodr {
7136        #[doc = "Output CMOS"]
7137        pub const _0: Self = Self::new(0);
7138
7139        #[doc = "Output NMOS open-drain"]
7140        pub const _1: Self = Self::new(1);
7141    }
7142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7143    pub struct Eofr_SPEC;
7144    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7145    impl Eofr {
7146        #[doc = "Don\'t care"]
7147        pub const _00: Self = Self::new(0);
7148
7149        #[doc = "Detect rising edge"]
7150        pub const _01: Self = Self::new(1);
7151
7152        #[doc = "Detect falling edge"]
7153        pub const _10: Self = Self::new(2);
7154
7155        #[doc = "Detect both edges"]
7156        pub const _11: Self = Self::new(3);
7157    }
7158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7159    pub struct Isel_SPEC;
7160    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7161    impl Isel {
7162        #[doc = "Do not use as IRQn input pin"]
7163        pub const _0: Self = Self::new(0);
7164
7165        #[doc = "Use as IRQn input pin"]
7166        pub const _1: Self = Self::new(1);
7167    }
7168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7169    pub struct Asel_SPEC;
7170    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7171    impl Asel {
7172        #[doc = "Do not use as analog pin"]
7173        pub const _0: Self = Self::new(0);
7174
7175        #[doc = "Use as analog pin"]
7176        pub const _1: Self = Self::new(1);
7177    }
7178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7179    pub struct Pmr_SPEC;
7180    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7181    impl Pmr {
7182        #[doc = "Use as general I/O pin"]
7183        pub const _0: Self = Self::new(0);
7184
7185        #[doc = "Use as I/O port for peripheral functions"]
7186        pub const _1: Self = Self::new(1);
7187    }
7188}
7189#[doc(hidden)]
7190#[derive(Copy, Clone, Eq, PartialEq)]
7191pub struct P1PfsHa_SPEC;
7192impl crate::sealed::RegSpec for P1PfsHa_SPEC {
7193    type DataType = u16;
7194}
7195
7196#[doc = "Port 1%s Pin Function Select Register"]
7197pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
7198
7199impl P1PfsHa {
7200    #[doc = "Port Output Data"]
7201    #[inline(always)]
7202    pub fn podr(
7203        self,
7204    ) -> crate::common::RegisterField<
7205        0,
7206        0x1,
7207        1,
7208        0,
7209        p1pfs_ha::Podr,
7210        p1pfs_ha::Podr,
7211        P1PfsHa_SPEC,
7212        crate::common::RW,
7213    > {
7214        crate::common::RegisterField::<
7215            0,
7216            0x1,
7217            1,
7218            0,
7219            p1pfs_ha::Podr,
7220            p1pfs_ha::Podr,
7221            P1PfsHa_SPEC,
7222            crate::common::RW,
7223        >::from_register(self, 0)
7224    }
7225
7226    #[doc = "Port State"]
7227    #[inline(always)]
7228    pub fn pidr(
7229        self,
7230    ) -> crate::common::RegisterField<
7231        1,
7232        0x1,
7233        1,
7234        0,
7235        p1pfs_ha::Pidr,
7236        p1pfs_ha::Pidr,
7237        P1PfsHa_SPEC,
7238        crate::common::R,
7239    > {
7240        crate::common::RegisterField::<
7241            1,
7242            0x1,
7243            1,
7244            0,
7245            p1pfs_ha::Pidr,
7246            p1pfs_ha::Pidr,
7247            P1PfsHa_SPEC,
7248            crate::common::R,
7249        >::from_register(self, 0)
7250    }
7251
7252    #[doc = "Port Direction"]
7253    #[inline(always)]
7254    pub fn pdr(
7255        self,
7256    ) -> crate::common::RegisterField<
7257        2,
7258        0x1,
7259        1,
7260        0,
7261        p1pfs_ha::Pdr,
7262        p1pfs_ha::Pdr,
7263        P1PfsHa_SPEC,
7264        crate::common::RW,
7265    > {
7266        crate::common::RegisterField::<
7267            2,
7268            0x1,
7269            1,
7270            0,
7271            p1pfs_ha::Pdr,
7272            p1pfs_ha::Pdr,
7273            P1PfsHa_SPEC,
7274            crate::common::RW,
7275        >::from_register(self, 0)
7276    }
7277
7278    #[doc = "Pull-up Control"]
7279    #[inline(always)]
7280    pub fn pcr(
7281        self,
7282    ) -> crate::common::RegisterField<
7283        4,
7284        0x1,
7285        1,
7286        0,
7287        p1pfs_ha::Pcr,
7288        p1pfs_ha::Pcr,
7289        P1PfsHa_SPEC,
7290        crate::common::RW,
7291    > {
7292        crate::common::RegisterField::<
7293            4,
7294            0x1,
7295            1,
7296            0,
7297            p1pfs_ha::Pcr,
7298            p1pfs_ha::Pcr,
7299            P1PfsHa_SPEC,
7300            crate::common::RW,
7301        >::from_register(self, 0)
7302    }
7303
7304    #[doc = "N-Channel Open-Drain Control"]
7305    #[inline(always)]
7306    pub fn ncodr(
7307        self,
7308    ) -> crate::common::RegisterField<
7309        6,
7310        0x1,
7311        1,
7312        0,
7313        p1pfs_ha::Ncodr,
7314        p1pfs_ha::Ncodr,
7315        P1PfsHa_SPEC,
7316        crate::common::RW,
7317    > {
7318        crate::common::RegisterField::<
7319            6,
7320            0x1,
7321            1,
7322            0,
7323            p1pfs_ha::Ncodr,
7324            p1pfs_ha::Ncodr,
7325            P1PfsHa_SPEC,
7326            crate::common::RW,
7327        >::from_register(self, 0)
7328    }
7329
7330    #[doc = "Event on Falling/Event on Rising"]
7331    #[inline(always)]
7332    pub fn eofr(
7333        self,
7334    ) -> crate::common::RegisterField<
7335        12,
7336        0x3,
7337        1,
7338        0,
7339        p1pfs_ha::Eofr,
7340        p1pfs_ha::Eofr,
7341        P1PfsHa_SPEC,
7342        crate::common::RW,
7343    > {
7344        crate::common::RegisterField::<
7345            12,
7346            0x3,
7347            1,
7348            0,
7349            p1pfs_ha::Eofr,
7350            p1pfs_ha::Eofr,
7351            P1PfsHa_SPEC,
7352            crate::common::RW,
7353        >::from_register(self, 0)
7354    }
7355
7356    #[doc = "IRQ Input Enable"]
7357    #[inline(always)]
7358    pub fn isel(
7359        self,
7360    ) -> crate::common::RegisterField<
7361        14,
7362        0x1,
7363        1,
7364        0,
7365        p1pfs_ha::Isel,
7366        p1pfs_ha::Isel,
7367        P1PfsHa_SPEC,
7368        crate::common::RW,
7369    > {
7370        crate::common::RegisterField::<
7371            14,
7372            0x1,
7373            1,
7374            0,
7375            p1pfs_ha::Isel,
7376            p1pfs_ha::Isel,
7377            P1PfsHa_SPEC,
7378            crate::common::RW,
7379        >::from_register(self, 0)
7380    }
7381
7382    #[doc = "Analog Input Enable"]
7383    #[inline(always)]
7384    pub fn asel(
7385        self,
7386    ) -> crate::common::RegisterField<
7387        15,
7388        0x1,
7389        1,
7390        0,
7391        p1pfs_ha::Asel,
7392        p1pfs_ha::Asel,
7393        P1PfsHa_SPEC,
7394        crate::common::RW,
7395    > {
7396        crate::common::RegisterField::<
7397            15,
7398            0x1,
7399            1,
7400            0,
7401            p1pfs_ha::Asel,
7402            p1pfs_ha::Asel,
7403            P1PfsHa_SPEC,
7404            crate::common::RW,
7405        >::from_register(self, 0)
7406    }
7407}
7408impl ::core::default::Default for P1PfsHa {
7409    #[inline(always)]
7410    fn default() -> P1PfsHa {
7411        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
7412    }
7413}
7414pub mod p1pfs_ha {
7415
7416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7417    pub struct Podr_SPEC;
7418    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7419    impl Podr {
7420        #[doc = "Output low"]
7421        pub const _0: Self = Self::new(0);
7422
7423        #[doc = "Output high"]
7424        pub const _1: Self = Self::new(1);
7425    }
7426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7427    pub struct Pidr_SPEC;
7428    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7429    impl Pidr {
7430        #[doc = "Low level"]
7431        pub const _0: Self = Self::new(0);
7432
7433        #[doc = "High level"]
7434        pub const _1: Self = Self::new(1);
7435    }
7436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7437    pub struct Pdr_SPEC;
7438    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7439    impl Pdr {
7440        #[doc = "Input (functions as an input pin)"]
7441        pub const _0: Self = Self::new(0);
7442
7443        #[doc = "Output (functions as an output pin)"]
7444        pub const _1: Self = Self::new(1);
7445    }
7446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7447    pub struct Pcr_SPEC;
7448    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7449    impl Pcr {
7450        #[doc = "Disable input pull-up"]
7451        pub const _0: Self = Self::new(0);
7452
7453        #[doc = "Enable input pull-up"]
7454        pub const _1: Self = Self::new(1);
7455    }
7456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7457    pub struct Ncodr_SPEC;
7458    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7459    impl Ncodr {
7460        #[doc = "Output CMOS"]
7461        pub const _0: Self = Self::new(0);
7462
7463        #[doc = "Output NMOS open-drain"]
7464        pub const _1: Self = Self::new(1);
7465    }
7466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7467    pub struct Eofr_SPEC;
7468    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7469    impl Eofr {
7470        #[doc = "Don\'t care"]
7471        pub const _00: Self = Self::new(0);
7472
7473        #[doc = "Detect rising edge"]
7474        pub const _01: Self = Self::new(1);
7475
7476        #[doc = "Detect falling edge"]
7477        pub const _10: Self = Self::new(2);
7478
7479        #[doc = "Detect both edges"]
7480        pub const _11: Self = Self::new(3);
7481    }
7482    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7483    pub struct Isel_SPEC;
7484    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7485    impl Isel {
7486        #[doc = "Do not use as IRQn input pin"]
7487        pub const _0: Self = Self::new(0);
7488
7489        #[doc = "Use as IRQn input pin"]
7490        pub const _1: Self = Self::new(1);
7491    }
7492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7493    pub struct Asel_SPEC;
7494    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7495    impl Asel {
7496        #[doc = "Do not use as analog pin"]
7497        pub const _0: Self = Self::new(0);
7498
7499        #[doc = "Use as analog pin"]
7500        pub const _1: Self = Self::new(1);
7501    }
7502}
7503#[doc(hidden)]
7504#[derive(Copy, Clone, Eq, PartialEq)]
7505pub struct P1PfsBy_SPEC;
7506impl crate::sealed::RegSpec for P1PfsBy_SPEC {
7507    type DataType = u8;
7508}
7509
7510#[doc = "Port 1%s Pin Function Select Register"]
7511pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
7512
7513impl P1PfsBy {
7514    #[doc = "Port Output Data"]
7515    #[inline(always)]
7516    pub fn podr(
7517        self,
7518    ) -> crate::common::RegisterField<
7519        0,
7520        0x1,
7521        1,
7522        0,
7523        p1pfs_by::Podr,
7524        p1pfs_by::Podr,
7525        P1PfsBy_SPEC,
7526        crate::common::RW,
7527    > {
7528        crate::common::RegisterField::<
7529            0,
7530            0x1,
7531            1,
7532            0,
7533            p1pfs_by::Podr,
7534            p1pfs_by::Podr,
7535            P1PfsBy_SPEC,
7536            crate::common::RW,
7537        >::from_register(self, 0)
7538    }
7539
7540    #[doc = "Port State"]
7541    #[inline(always)]
7542    pub fn pidr(
7543        self,
7544    ) -> crate::common::RegisterField<
7545        1,
7546        0x1,
7547        1,
7548        0,
7549        p1pfs_by::Pidr,
7550        p1pfs_by::Pidr,
7551        P1PfsBy_SPEC,
7552        crate::common::R,
7553    > {
7554        crate::common::RegisterField::<
7555            1,
7556            0x1,
7557            1,
7558            0,
7559            p1pfs_by::Pidr,
7560            p1pfs_by::Pidr,
7561            P1PfsBy_SPEC,
7562            crate::common::R,
7563        >::from_register(self, 0)
7564    }
7565
7566    #[doc = "Port Direction"]
7567    #[inline(always)]
7568    pub fn pdr(
7569        self,
7570    ) -> crate::common::RegisterField<
7571        2,
7572        0x1,
7573        1,
7574        0,
7575        p1pfs_by::Pdr,
7576        p1pfs_by::Pdr,
7577        P1PfsBy_SPEC,
7578        crate::common::RW,
7579    > {
7580        crate::common::RegisterField::<
7581            2,
7582            0x1,
7583            1,
7584            0,
7585            p1pfs_by::Pdr,
7586            p1pfs_by::Pdr,
7587            P1PfsBy_SPEC,
7588            crate::common::RW,
7589        >::from_register(self, 0)
7590    }
7591
7592    #[doc = "Pull-up Control"]
7593    #[inline(always)]
7594    pub fn pcr(
7595        self,
7596    ) -> crate::common::RegisterField<
7597        4,
7598        0x1,
7599        1,
7600        0,
7601        p1pfs_by::Pcr,
7602        p1pfs_by::Pcr,
7603        P1PfsBy_SPEC,
7604        crate::common::RW,
7605    > {
7606        crate::common::RegisterField::<
7607            4,
7608            0x1,
7609            1,
7610            0,
7611            p1pfs_by::Pcr,
7612            p1pfs_by::Pcr,
7613            P1PfsBy_SPEC,
7614            crate::common::RW,
7615        >::from_register(self, 0)
7616    }
7617
7618    #[doc = "N-Channel Open-Drain Control"]
7619    #[inline(always)]
7620    pub fn ncodr(
7621        self,
7622    ) -> crate::common::RegisterField<
7623        6,
7624        0x1,
7625        1,
7626        0,
7627        p1pfs_by::Ncodr,
7628        p1pfs_by::Ncodr,
7629        P1PfsBy_SPEC,
7630        crate::common::RW,
7631    > {
7632        crate::common::RegisterField::<
7633            6,
7634            0x1,
7635            1,
7636            0,
7637            p1pfs_by::Ncodr,
7638            p1pfs_by::Ncodr,
7639            P1PfsBy_SPEC,
7640            crate::common::RW,
7641        >::from_register(self, 0)
7642    }
7643}
7644impl ::core::default::Default for P1PfsBy {
7645    #[inline(always)]
7646    fn default() -> P1PfsBy {
7647        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
7648    }
7649}
7650pub mod p1pfs_by {
7651
7652    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7653    pub struct Podr_SPEC;
7654    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7655    impl Podr {
7656        #[doc = "Output low"]
7657        pub const _0: Self = Self::new(0);
7658
7659        #[doc = "Output high"]
7660        pub const _1: Self = Self::new(1);
7661    }
7662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7663    pub struct Pidr_SPEC;
7664    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7665    impl Pidr {
7666        #[doc = "Low level"]
7667        pub const _0: Self = Self::new(0);
7668
7669        #[doc = "High level"]
7670        pub const _1: Self = Self::new(1);
7671    }
7672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7673    pub struct Pdr_SPEC;
7674    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7675    impl Pdr {
7676        #[doc = "Input (functions as an input pin)"]
7677        pub const _0: Self = Self::new(0);
7678
7679        #[doc = "Output (functions as an output pin)"]
7680        pub const _1: Self = Self::new(1);
7681    }
7682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7683    pub struct Pcr_SPEC;
7684    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7685    impl Pcr {
7686        #[doc = "Disable input pull-up"]
7687        pub const _0: Self = Self::new(0);
7688
7689        #[doc = "Enable input pull-up"]
7690        pub const _1: Self = Self::new(1);
7691    }
7692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7693    pub struct Ncodr_SPEC;
7694    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7695    impl Ncodr {
7696        #[doc = "Output CMOS"]
7697        pub const _0: Self = Self::new(0);
7698
7699        #[doc = "Output NMOS open-drain"]
7700        pub const _1: Self = Self::new(1);
7701    }
7702}
7703#[doc(hidden)]
7704#[derive(Copy, Clone, Eq, PartialEq)]
7705pub struct P200Pfs_SPEC;
7706impl crate::sealed::RegSpec for P200Pfs_SPEC {
7707    type DataType = u32;
7708}
7709
7710#[doc = "Port 200 Pin Function Select Register"]
7711pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
7712
7713impl P200Pfs {
7714    #[doc = "Port Output Data"]
7715    #[inline(always)]
7716    pub fn podr(
7717        self,
7718    ) -> crate::common::RegisterField<
7719        0,
7720        0x1,
7721        1,
7722        0,
7723        p200pfs::Podr,
7724        p200pfs::Podr,
7725        P200Pfs_SPEC,
7726        crate::common::RW,
7727    > {
7728        crate::common::RegisterField::<
7729            0,
7730            0x1,
7731            1,
7732            0,
7733            p200pfs::Podr,
7734            p200pfs::Podr,
7735            P200Pfs_SPEC,
7736            crate::common::RW,
7737        >::from_register(self, 0)
7738    }
7739
7740    #[doc = "Port State"]
7741    #[inline(always)]
7742    pub fn pidr(
7743        self,
7744    ) -> crate::common::RegisterField<
7745        1,
7746        0x1,
7747        1,
7748        0,
7749        p200pfs::Pidr,
7750        p200pfs::Pidr,
7751        P200Pfs_SPEC,
7752        crate::common::R,
7753    > {
7754        crate::common::RegisterField::<
7755            1,
7756            0x1,
7757            1,
7758            0,
7759            p200pfs::Pidr,
7760            p200pfs::Pidr,
7761            P200Pfs_SPEC,
7762            crate::common::R,
7763        >::from_register(self, 0)
7764    }
7765
7766    #[doc = "Port Direction"]
7767    #[inline(always)]
7768    pub fn pdr(
7769        self,
7770    ) -> crate::common::RegisterField<
7771        2,
7772        0x1,
7773        1,
7774        0,
7775        p200pfs::Pdr,
7776        p200pfs::Pdr,
7777        P200Pfs_SPEC,
7778        crate::common::RW,
7779    > {
7780        crate::common::RegisterField::<
7781            2,
7782            0x1,
7783            1,
7784            0,
7785            p200pfs::Pdr,
7786            p200pfs::Pdr,
7787            P200Pfs_SPEC,
7788            crate::common::RW,
7789        >::from_register(self, 0)
7790    }
7791
7792    #[doc = "Pull-up Control"]
7793    #[inline(always)]
7794    pub fn pcr(
7795        self,
7796    ) -> crate::common::RegisterField<
7797        4,
7798        0x1,
7799        1,
7800        0,
7801        p200pfs::Pcr,
7802        p200pfs::Pcr,
7803        P200Pfs_SPEC,
7804        crate::common::RW,
7805    > {
7806        crate::common::RegisterField::<
7807            4,
7808            0x1,
7809            1,
7810            0,
7811            p200pfs::Pcr,
7812            p200pfs::Pcr,
7813            P200Pfs_SPEC,
7814            crate::common::RW,
7815        >::from_register(self, 0)
7816    }
7817
7818    #[doc = "N-Channel Open-Drain Control"]
7819    #[inline(always)]
7820    pub fn ncodr(
7821        self,
7822    ) -> crate::common::RegisterField<
7823        6,
7824        0x1,
7825        1,
7826        0,
7827        p200pfs::Ncodr,
7828        p200pfs::Ncodr,
7829        P200Pfs_SPEC,
7830        crate::common::RW,
7831    > {
7832        crate::common::RegisterField::<
7833            6,
7834            0x1,
7835            1,
7836            0,
7837            p200pfs::Ncodr,
7838            p200pfs::Ncodr,
7839            P200Pfs_SPEC,
7840            crate::common::RW,
7841        >::from_register(self, 0)
7842    }
7843
7844    #[doc = "Event on Falling/Event on Rising"]
7845    #[inline(always)]
7846    pub fn eofr(
7847        self,
7848    ) -> crate::common::RegisterField<
7849        12,
7850        0x3,
7851        1,
7852        0,
7853        p200pfs::Eofr,
7854        p200pfs::Eofr,
7855        P200Pfs_SPEC,
7856        crate::common::RW,
7857    > {
7858        crate::common::RegisterField::<
7859            12,
7860            0x3,
7861            1,
7862            0,
7863            p200pfs::Eofr,
7864            p200pfs::Eofr,
7865            P200Pfs_SPEC,
7866            crate::common::RW,
7867        >::from_register(self, 0)
7868    }
7869
7870    #[doc = "IRQ Input Enable"]
7871    #[inline(always)]
7872    pub fn isel(
7873        self,
7874    ) -> crate::common::RegisterField<
7875        14,
7876        0x1,
7877        1,
7878        0,
7879        p200pfs::Isel,
7880        p200pfs::Isel,
7881        P200Pfs_SPEC,
7882        crate::common::RW,
7883    > {
7884        crate::common::RegisterField::<
7885            14,
7886            0x1,
7887            1,
7888            0,
7889            p200pfs::Isel,
7890            p200pfs::Isel,
7891            P200Pfs_SPEC,
7892            crate::common::RW,
7893        >::from_register(self, 0)
7894    }
7895
7896    #[doc = "Analog Input Enable"]
7897    #[inline(always)]
7898    pub fn asel(
7899        self,
7900    ) -> crate::common::RegisterField<
7901        15,
7902        0x1,
7903        1,
7904        0,
7905        p200pfs::Asel,
7906        p200pfs::Asel,
7907        P200Pfs_SPEC,
7908        crate::common::RW,
7909    > {
7910        crate::common::RegisterField::<
7911            15,
7912            0x1,
7913            1,
7914            0,
7915            p200pfs::Asel,
7916            p200pfs::Asel,
7917            P200Pfs_SPEC,
7918            crate::common::RW,
7919        >::from_register(self, 0)
7920    }
7921
7922    #[doc = "Port Mode Control"]
7923    #[inline(always)]
7924    pub fn pmr(
7925        self,
7926    ) -> crate::common::RegisterField<
7927        16,
7928        0x1,
7929        1,
7930        0,
7931        p200pfs::Pmr,
7932        p200pfs::Pmr,
7933        P200Pfs_SPEC,
7934        crate::common::RW,
7935    > {
7936        crate::common::RegisterField::<
7937            16,
7938            0x1,
7939            1,
7940            0,
7941            p200pfs::Pmr,
7942            p200pfs::Pmr,
7943            P200Pfs_SPEC,
7944            crate::common::RW,
7945        >::from_register(self, 0)
7946    }
7947
7948    #[doc = "Peripheral Select"]
7949    #[inline(always)]
7950    pub fn psel(
7951        self,
7952    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
7953        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
7954    }
7955}
7956impl ::core::default::Default for P200Pfs {
7957    #[inline(always)]
7958    fn default() -> P200Pfs {
7959        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
7960    }
7961}
7962pub mod p200pfs {
7963
7964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7965    pub struct Podr_SPEC;
7966    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7967    impl Podr {
7968        #[doc = "Output low"]
7969        pub const _0: Self = Self::new(0);
7970
7971        #[doc = "Output high"]
7972        pub const _1: Self = Self::new(1);
7973    }
7974    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7975    pub struct Pidr_SPEC;
7976    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7977    impl Pidr {
7978        #[doc = "Low level"]
7979        pub const _0: Self = Self::new(0);
7980
7981        #[doc = "High level"]
7982        pub const _1: Self = Self::new(1);
7983    }
7984    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7985    pub struct Pdr_SPEC;
7986    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7987    impl Pdr {
7988        #[doc = "Input (functions as an input pin)"]
7989        pub const _0: Self = Self::new(0);
7990
7991        #[doc = "Output (functions as an output pin)"]
7992        pub const _1: Self = Self::new(1);
7993    }
7994    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7995    pub struct Pcr_SPEC;
7996    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7997    impl Pcr {
7998        #[doc = "Disable input pull-up"]
7999        pub const _0: Self = Self::new(0);
8000
8001        #[doc = "Enable input pull-up"]
8002        pub const _1: Self = Self::new(1);
8003    }
8004    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8005    pub struct Ncodr_SPEC;
8006    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8007    impl Ncodr {
8008        #[doc = "Output CMOS"]
8009        pub const _0: Self = Self::new(0);
8010
8011        #[doc = "Output NMOS open-drain"]
8012        pub const _1: Self = Self::new(1);
8013    }
8014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8015    pub struct Eofr_SPEC;
8016    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8017    impl Eofr {
8018        #[doc = "Don\'t care"]
8019        pub const _00: Self = Self::new(0);
8020
8021        #[doc = "Detect rising edge"]
8022        pub const _01: Self = Self::new(1);
8023
8024        #[doc = "Detect falling edge"]
8025        pub const _10: Self = Self::new(2);
8026
8027        #[doc = "Detect both edges"]
8028        pub const _11: Self = Self::new(3);
8029    }
8030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8031    pub struct Isel_SPEC;
8032    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8033    impl Isel {
8034        #[doc = "Do not use as IRQn input pin"]
8035        pub const _0: Self = Self::new(0);
8036
8037        #[doc = "Use as IRQn input pin"]
8038        pub const _1: Self = Self::new(1);
8039    }
8040    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8041    pub struct Asel_SPEC;
8042    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8043    impl Asel {
8044        #[doc = "Do not use as analog pin"]
8045        pub const _0: Self = Self::new(0);
8046
8047        #[doc = "Use as analog pin"]
8048        pub const _1: Self = Self::new(1);
8049    }
8050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8051    pub struct Pmr_SPEC;
8052    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8053    impl Pmr {
8054        #[doc = "Use as general I/O pin"]
8055        pub const _0: Self = Self::new(0);
8056
8057        #[doc = "Use as I/O port for peripheral functions"]
8058        pub const _1: Self = Self::new(1);
8059    }
8060}
8061#[doc(hidden)]
8062#[derive(Copy, Clone, Eq, PartialEq)]
8063pub struct P200PfsHa_SPEC;
8064impl crate::sealed::RegSpec for P200PfsHa_SPEC {
8065    type DataType = u16;
8066}
8067
8068#[doc = "Port 200 Pin Function Select Register"]
8069pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
8070
8071impl P200PfsHa {
8072    #[doc = "Port Output Data"]
8073    #[inline(always)]
8074    pub fn podr(
8075        self,
8076    ) -> crate::common::RegisterField<
8077        0,
8078        0x1,
8079        1,
8080        0,
8081        p200pfs_ha::Podr,
8082        p200pfs_ha::Podr,
8083        P200PfsHa_SPEC,
8084        crate::common::RW,
8085    > {
8086        crate::common::RegisterField::<
8087            0,
8088            0x1,
8089            1,
8090            0,
8091            p200pfs_ha::Podr,
8092            p200pfs_ha::Podr,
8093            P200PfsHa_SPEC,
8094            crate::common::RW,
8095        >::from_register(self, 0)
8096    }
8097
8098    #[doc = "Port State"]
8099    #[inline(always)]
8100    pub fn pidr(
8101        self,
8102    ) -> crate::common::RegisterField<
8103        1,
8104        0x1,
8105        1,
8106        0,
8107        p200pfs_ha::Pidr,
8108        p200pfs_ha::Pidr,
8109        P200PfsHa_SPEC,
8110        crate::common::R,
8111    > {
8112        crate::common::RegisterField::<
8113            1,
8114            0x1,
8115            1,
8116            0,
8117            p200pfs_ha::Pidr,
8118            p200pfs_ha::Pidr,
8119            P200PfsHa_SPEC,
8120            crate::common::R,
8121        >::from_register(self, 0)
8122    }
8123
8124    #[doc = "Port Direction"]
8125    #[inline(always)]
8126    pub fn pdr(
8127        self,
8128    ) -> crate::common::RegisterField<
8129        2,
8130        0x1,
8131        1,
8132        0,
8133        p200pfs_ha::Pdr,
8134        p200pfs_ha::Pdr,
8135        P200PfsHa_SPEC,
8136        crate::common::RW,
8137    > {
8138        crate::common::RegisterField::<
8139            2,
8140            0x1,
8141            1,
8142            0,
8143            p200pfs_ha::Pdr,
8144            p200pfs_ha::Pdr,
8145            P200PfsHa_SPEC,
8146            crate::common::RW,
8147        >::from_register(self, 0)
8148    }
8149
8150    #[doc = "Pull-up Control"]
8151    #[inline(always)]
8152    pub fn pcr(
8153        self,
8154    ) -> crate::common::RegisterField<
8155        4,
8156        0x1,
8157        1,
8158        0,
8159        p200pfs_ha::Pcr,
8160        p200pfs_ha::Pcr,
8161        P200PfsHa_SPEC,
8162        crate::common::RW,
8163    > {
8164        crate::common::RegisterField::<
8165            4,
8166            0x1,
8167            1,
8168            0,
8169            p200pfs_ha::Pcr,
8170            p200pfs_ha::Pcr,
8171            P200PfsHa_SPEC,
8172            crate::common::RW,
8173        >::from_register(self, 0)
8174    }
8175
8176    #[doc = "N-Channel Open-Drain Control"]
8177    #[inline(always)]
8178    pub fn ncodr(
8179        self,
8180    ) -> crate::common::RegisterField<
8181        6,
8182        0x1,
8183        1,
8184        0,
8185        p200pfs_ha::Ncodr,
8186        p200pfs_ha::Ncodr,
8187        P200PfsHa_SPEC,
8188        crate::common::RW,
8189    > {
8190        crate::common::RegisterField::<
8191            6,
8192            0x1,
8193            1,
8194            0,
8195            p200pfs_ha::Ncodr,
8196            p200pfs_ha::Ncodr,
8197            P200PfsHa_SPEC,
8198            crate::common::RW,
8199        >::from_register(self, 0)
8200    }
8201
8202    #[doc = "Event on Falling/Event on Rising"]
8203    #[inline(always)]
8204    pub fn eofr(
8205        self,
8206    ) -> crate::common::RegisterField<
8207        12,
8208        0x3,
8209        1,
8210        0,
8211        p200pfs_ha::Eofr,
8212        p200pfs_ha::Eofr,
8213        P200PfsHa_SPEC,
8214        crate::common::RW,
8215    > {
8216        crate::common::RegisterField::<
8217            12,
8218            0x3,
8219            1,
8220            0,
8221            p200pfs_ha::Eofr,
8222            p200pfs_ha::Eofr,
8223            P200PfsHa_SPEC,
8224            crate::common::RW,
8225        >::from_register(self, 0)
8226    }
8227
8228    #[doc = "IRQ Input Enable"]
8229    #[inline(always)]
8230    pub fn isel(
8231        self,
8232    ) -> crate::common::RegisterField<
8233        14,
8234        0x1,
8235        1,
8236        0,
8237        p200pfs_ha::Isel,
8238        p200pfs_ha::Isel,
8239        P200PfsHa_SPEC,
8240        crate::common::RW,
8241    > {
8242        crate::common::RegisterField::<
8243            14,
8244            0x1,
8245            1,
8246            0,
8247            p200pfs_ha::Isel,
8248            p200pfs_ha::Isel,
8249            P200PfsHa_SPEC,
8250            crate::common::RW,
8251        >::from_register(self, 0)
8252    }
8253
8254    #[doc = "Analog Input Enable"]
8255    #[inline(always)]
8256    pub fn asel(
8257        self,
8258    ) -> crate::common::RegisterField<
8259        15,
8260        0x1,
8261        1,
8262        0,
8263        p200pfs_ha::Asel,
8264        p200pfs_ha::Asel,
8265        P200PfsHa_SPEC,
8266        crate::common::RW,
8267    > {
8268        crate::common::RegisterField::<
8269            15,
8270            0x1,
8271            1,
8272            0,
8273            p200pfs_ha::Asel,
8274            p200pfs_ha::Asel,
8275            P200PfsHa_SPEC,
8276            crate::common::RW,
8277        >::from_register(self, 0)
8278    }
8279}
8280impl ::core::default::Default for P200PfsHa {
8281    #[inline(always)]
8282    fn default() -> P200PfsHa {
8283        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
8284    }
8285}
8286pub mod p200pfs_ha {
8287
8288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8289    pub struct Podr_SPEC;
8290    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8291    impl Podr {
8292        #[doc = "Output low"]
8293        pub const _0: Self = Self::new(0);
8294
8295        #[doc = "Output high"]
8296        pub const _1: Self = Self::new(1);
8297    }
8298    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8299    pub struct Pidr_SPEC;
8300    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8301    impl Pidr {
8302        #[doc = "Low level"]
8303        pub const _0: Self = Self::new(0);
8304
8305        #[doc = "High level"]
8306        pub const _1: Self = Self::new(1);
8307    }
8308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8309    pub struct Pdr_SPEC;
8310    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8311    impl Pdr {
8312        #[doc = "Input (functions as an input pin)"]
8313        pub const _0: Self = Self::new(0);
8314
8315        #[doc = "Output (functions as an output pin)"]
8316        pub const _1: Self = Self::new(1);
8317    }
8318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8319    pub struct Pcr_SPEC;
8320    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8321    impl Pcr {
8322        #[doc = "Disable input pull-up"]
8323        pub const _0: Self = Self::new(0);
8324
8325        #[doc = "Enable input pull-up"]
8326        pub const _1: Self = Self::new(1);
8327    }
8328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8329    pub struct Ncodr_SPEC;
8330    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8331    impl Ncodr {
8332        #[doc = "Output CMOS"]
8333        pub const _0: Self = Self::new(0);
8334
8335        #[doc = "Output NMOS open-drain"]
8336        pub const _1: Self = Self::new(1);
8337    }
8338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8339    pub struct Eofr_SPEC;
8340    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8341    impl Eofr {
8342        #[doc = "Don\'t care"]
8343        pub const _00: Self = Self::new(0);
8344
8345        #[doc = "Detect rising edge"]
8346        pub const _01: Self = Self::new(1);
8347
8348        #[doc = "Detect falling edge"]
8349        pub const _10: Self = Self::new(2);
8350
8351        #[doc = "Detect both edges"]
8352        pub const _11: Self = Self::new(3);
8353    }
8354    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8355    pub struct Isel_SPEC;
8356    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8357    impl Isel {
8358        #[doc = "Do not use as IRQn input pin"]
8359        pub const _0: Self = Self::new(0);
8360
8361        #[doc = "Use as IRQn input pin"]
8362        pub const _1: Self = Self::new(1);
8363    }
8364    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8365    pub struct Asel_SPEC;
8366    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8367    impl Asel {
8368        #[doc = "Do not use as analog pin"]
8369        pub const _0: Self = Self::new(0);
8370
8371        #[doc = "Use as analog pin"]
8372        pub const _1: Self = Self::new(1);
8373    }
8374}
8375#[doc(hidden)]
8376#[derive(Copy, Clone, Eq, PartialEq)]
8377pub struct P200PfsBy_SPEC;
8378impl crate::sealed::RegSpec for P200PfsBy_SPEC {
8379    type DataType = u8;
8380}
8381
8382#[doc = "Port 200 Pin Function Select Register"]
8383pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
8384
8385impl P200PfsBy {
8386    #[doc = "Port Output Data"]
8387    #[inline(always)]
8388    pub fn podr(
8389        self,
8390    ) -> crate::common::RegisterField<
8391        0,
8392        0x1,
8393        1,
8394        0,
8395        p200pfs_by::Podr,
8396        p200pfs_by::Podr,
8397        P200PfsBy_SPEC,
8398        crate::common::RW,
8399    > {
8400        crate::common::RegisterField::<
8401            0,
8402            0x1,
8403            1,
8404            0,
8405            p200pfs_by::Podr,
8406            p200pfs_by::Podr,
8407            P200PfsBy_SPEC,
8408            crate::common::RW,
8409        >::from_register(self, 0)
8410    }
8411
8412    #[doc = "Port State"]
8413    #[inline(always)]
8414    pub fn pidr(
8415        self,
8416    ) -> crate::common::RegisterField<
8417        1,
8418        0x1,
8419        1,
8420        0,
8421        p200pfs_by::Pidr,
8422        p200pfs_by::Pidr,
8423        P200PfsBy_SPEC,
8424        crate::common::R,
8425    > {
8426        crate::common::RegisterField::<
8427            1,
8428            0x1,
8429            1,
8430            0,
8431            p200pfs_by::Pidr,
8432            p200pfs_by::Pidr,
8433            P200PfsBy_SPEC,
8434            crate::common::R,
8435        >::from_register(self, 0)
8436    }
8437
8438    #[doc = "Port Direction"]
8439    #[inline(always)]
8440    pub fn pdr(
8441        self,
8442    ) -> crate::common::RegisterField<
8443        2,
8444        0x1,
8445        1,
8446        0,
8447        p200pfs_by::Pdr,
8448        p200pfs_by::Pdr,
8449        P200PfsBy_SPEC,
8450        crate::common::RW,
8451    > {
8452        crate::common::RegisterField::<
8453            2,
8454            0x1,
8455            1,
8456            0,
8457            p200pfs_by::Pdr,
8458            p200pfs_by::Pdr,
8459            P200PfsBy_SPEC,
8460            crate::common::RW,
8461        >::from_register(self, 0)
8462    }
8463
8464    #[doc = "Pull-up Control"]
8465    #[inline(always)]
8466    pub fn pcr(
8467        self,
8468    ) -> crate::common::RegisterField<
8469        4,
8470        0x1,
8471        1,
8472        0,
8473        p200pfs_by::Pcr,
8474        p200pfs_by::Pcr,
8475        P200PfsBy_SPEC,
8476        crate::common::RW,
8477    > {
8478        crate::common::RegisterField::<
8479            4,
8480            0x1,
8481            1,
8482            0,
8483            p200pfs_by::Pcr,
8484            p200pfs_by::Pcr,
8485            P200PfsBy_SPEC,
8486            crate::common::RW,
8487        >::from_register(self, 0)
8488    }
8489
8490    #[doc = "N-Channel Open-Drain Control"]
8491    #[inline(always)]
8492    pub fn ncodr(
8493        self,
8494    ) -> crate::common::RegisterField<
8495        6,
8496        0x1,
8497        1,
8498        0,
8499        p200pfs_by::Ncodr,
8500        p200pfs_by::Ncodr,
8501        P200PfsBy_SPEC,
8502        crate::common::RW,
8503    > {
8504        crate::common::RegisterField::<
8505            6,
8506            0x1,
8507            1,
8508            0,
8509            p200pfs_by::Ncodr,
8510            p200pfs_by::Ncodr,
8511            P200PfsBy_SPEC,
8512            crate::common::RW,
8513        >::from_register(self, 0)
8514    }
8515}
8516impl ::core::default::Default for P200PfsBy {
8517    #[inline(always)]
8518    fn default() -> P200PfsBy {
8519        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
8520    }
8521}
8522pub mod p200pfs_by {
8523
8524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8525    pub struct Podr_SPEC;
8526    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8527    impl Podr {
8528        #[doc = "Output low"]
8529        pub const _0: Self = Self::new(0);
8530
8531        #[doc = "Output high"]
8532        pub const _1: Self = Self::new(1);
8533    }
8534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8535    pub struct Pidr_SPEC;
8536    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8537    impl Pidr {
8538        #[doc = "Low level"]
8539        pub const _0: Self = Self::new(0);
8540
8541        #[doc = "High level"]
8542        pub const _1: Self = Self::new(1);
8543    }
8544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8545    pub struct Pdr_SPEC;
8546    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8547    impl Pdr {
8548        #[doc = "Input (functions as an input pin)"]
8549        pub const _0: Self = Self::new(0);
8550
8551        #[doc = "Output (functions as an output pin)"]
8552        pub const _1: Self = Self::new(1);
8553    }
8554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8555    pub struct Pcr_SPEC;
8556    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8557    impl Pcr {
8558        #[doc = "Disable input pull-up"]
8559        pub const _0: Self = Self::new(0);
8560
8561        #[doc = "Enable input pull-up"]
8562        pub const _1: Self = Self::new(1);
8563    }
8564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8565    pub struct Ncodr_SPEC;
8566    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8567    impl Ncodr {
8568        #[doc = "Output CMOS"]
8569        pub const _0: Self = Self::new(0);
8570
8571        #[doc = "Output NMOS open-drain"]
8572        pub const _1: Self = Self::new(1);
8573    }
8574}
8575#[doc(hidden)]
8576#[derive(Copy, Clone, Eq, PartialEq)]
8577pub struct P201Pfs_SPEC;
8578impl crate::sealed::RegSpec for P201Pfs_SPEC {
8579    type DataType = u32;
8580}
8581
8582#[doc = "Port 201 Pin Function Select Register"]
8583pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
8584
8585impl P201Pfs {
8586    #[doc = "Port Output Data"]
8587    #[inline(always)]
8588    pub fn podr(
8589        self,
8590    ) -> crate::common::RegisterField<
8591        0,
8592        0x1,
8593        1,
8594        0,
8595        p201pfs::Podr,
8596        p201pfs::Podr,
8597        P201Pfs_SPEC,
8598        crate::common::RW,
8599    > {
8600        crate::common::RegisterField::<
8601            0,
8602            0x1,
8603            1,
8604            0,
8605            p201pfs::Podr,
8606            p201pfs::Podr,
8607            P201Pfs_SPEC,
8608            crate::common::RW,
8609        >::from_register(self, 0)
8610    }
8611
8612    #[doc = "Port State"]
8613    #[inline(always)]
8614    pub fn pidr(
8615        self,
8616    ) -> crate::common::RegisterField<
8617        1,
8618        0x1,
8619        1,
8620        0,
8621        p201pfs::Pidr,
8622        p201pfs::Pidr,
8623        P201Pfs_SPEC,
8624        crate::common::R,
8625    > {
8626        crate::common::RegisterField::<
8627            1,
8628            0x1,
8629            1,
8630            0,
8631            p201pfs::Pidr,
8632            p201pfs::Pidr,
8633            P201Pfs_SPEC,
8634            crate::common::R,
8635        >::from_register(self, 0)
8636    }
8637
8638    #[doc = "Port Direction"]
8639    #[inline(always)]
8640    pub fn pdr(
8641        self,
8642    ) -> crate::common::RegisterField<
8643        2,
8644        0x1,
8645        1,
8646        0,
8647        p201pfs::Pdr,
8648        p201pfs::Pdr,
8649        P201Pfs_SPEC,
8650        crate::common::RW,
8651    > {
8652        crate::common::RegisterField::<
8653            2,
8654            0x1,
8655            1,
8656            0,
8657            p201pfs::Pdr,
8658            p201pfs::Pdr,
8659            P201Pfs_SPEC,
8660            crate::common::RW,
8661        >::from_register(self, 0)
8662    }
8663
8664    #[doc = "Pull-up Control"]
8665    #[inline(always)]
8666    pub fn pcr(
8667        self,
8668    ) -> crate::common::RegisterField<
8669        4,
8670        0x1,
8671        1,
8672        0,
8673        p201pfs::Pcr,
8674        p201pfs::Pcr,
8675        P201Pfs_SPEC,
8676        crate::common::RW,
8677    > {
8678        crate::common::RegisterField::<
8679            4,
8680            0x1,
8681            1,
8682            0,
8683            p201pfs::Pcr,
8684            p201pfs::Pcr,
8685            P201Pfs_SPEC,
8686            crate::common::RW,
8687        >::from_register(self, 0)
8688    }
8689
8690    #[doc = "N-Channel Open-Drain Control"]
8691    #[inline(always)]
8692    pub fn ncodr(
8693        self,
8694    ) -> crate::common::RegisterField<
8695        6,
8696        0x1,
8697        1,
8698        0,
8699        p201pfs::Ncodr,
8700        p201pfs::Ncodr,
8701        P201Pfs_SPEC,
8702        crate::common::RW,
8703    > {
8704        crate::common::RegisterField::<
8705            6,
8706            0x1,
8707            1,
8708            0,
8709            p201pfs::Ncodr,
8710            p201pfs::Ncodr,
8711            P201Pfs_SPEC,
8712            crate::common::RW,
8713        >::from_register(self, 0)
8714    }
8715
8716    #[doc = "Event on Falling/Event on Rising"]
8717    #[inline(always)]
8718    pub fn eofr(
8719        self,
8720    ) -> crate::common::RegisterField<
8721        12,
8722        0x3,
8723        1,
8724        0,
8725        p201pfs::Eofr,
8726        p201pfs::Eofr,
8727        P201Pfs_SPEC,
8728        crate::common::RW,
8729    > {
8730        crate::common::RegisterField::<
8731            12,
8732            0x3,
8733            1,
8734            0,
8735            p201pfs::Eofr,
8736            p201pfs::Eofr,
8737            P201Pfs_SPEC,
8738            crate::common::RW,
8739        >::from_register(self, 0)
8740    }
8741
8742    #[doc = "IRQ Input Enable"]
8743    #[inline(always)]
8744    pub fn isel(
8745        self,
8746    ) -> crate::common::RegisterField<
8747        14,
8748        0x1,
8749        1,
8750        0,
8751        p201pfs::Isel,
8752        p201pfs::Isel,
8753        P201Pfs_SPEC,
8754        crate::common::RW,
8755    > {
8756        crate::common::RegisterField::<
8757            14,
8758            0x1,
8759            1,
8760            0,
8761            p201pfs::Isel,
8762            p201pfs::Isel,
8763            P201Pfs_SPEC,
8764            crate::common::RW,
8765        >::from_register(self, 0)
8766    }
8767
8768    #[doc = "Analog Input Enable"]
8769    #[inline(always)]
8770    pub fn asel(
8771        self,
8772    ) -> crate::common::RegisterField<
8773        15,
8774        0x1,
8775        1,
8776        0,
8777        p201pfs::Asel,
8778        p201pfs::Asel,
8779        P201Pfs_SPEC,
8780        crate::common::RW,
8781    > {
8782        crate::common::RegisterField::<
8783            15,
8784            0x1,
8785            1,
8786            0,
8787            p201pfs::Asel,
8788            p201pfs::Asel,
8789            P201Pfs_SPEC,
8790            crate::common::RW,
8791        >::from_register(self, 0)
8792    }
8793
8794    #[doc = "Port Mode Control"]
8795    #[inline(always)]
8796    pub fn pmr(
8797        self,
8798    ) -> crate::common::RegisterField<
8799        16,
8800        0x1,
8801        1,
8802        0,
8803        p201pfs::Pmr,
8804        p201pfs::Pmr,
8805        P201Pfs_SPEC,
8806        crate::common::RW,
8807    > {
8808        crate::common::RegisterField::<
8809            16,
8810            0x1,
8811            1,
8812            0,
8813            p201pfs::Pmr,
8814            p201pfs::Pmr,
8815            P201Pfs_SPEC,
8816            crate::common::RW,
8817        >::from_register(self, 0)
8818    }
8819
8820    #[doc = "Peripheral Select"]
8821    #[inline(always)]
8822    pub fn psel(
8823        self,
8824    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
8825        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
8826    }
8827}
8828impl ::core::default::Default for P201Pfs {
8829    #[inline(always)]
8830    fn default() -> P201Pfs {
8831        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
8832    }
8833}
8834pub mod p201pfs {
8835
8836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8837    pub struct Podr_SPEC;
8838    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8839    impl Podr {
8840        #[doc = "Output low"]
8841        pub const _0: Self = Self::new(0);
8842
8843        #[doc = "Output high"]
8844        pub const _1: Self = Self::new(1);
8845    }
8846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8847    pub struct Pidr_SPEC;
8848    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8849    impl Pidr {
8850        #[doc = "Low level"]
8851        pub const _0: Self = Self::new(0);
8852
8853        #[doc = "High level"]
8854        pub const _1: Self = Self::new(1);
8855    }
8856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8857    pub struct Pdr_SPEC;
8858    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8859    impl Pdr {
8860        #[doc = "Input (functions as an input pin)"]
8861        pub const _0: Self = Self::new(0);
8862
8863        #[doc = "Output (functions as an output pin)"]
8864        pub const _1: Self = Self::new(1);
8865    }
8866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8867    pub struct Pcr_SPEC;
8868    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8869    impl Pcr {
8870        #[doc = "Disable input pull-up"]
8871        pub const _0: Self = Self::new(0);
8872
8873        #[doc = "Enable input pull-up"]
8874        pub const _1: Self = Self::new(1);
8875    }
8876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8877    pub struct Ncodr_SPEC;
8878    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8879    impl Ncodr {
8880        #[doc = "Output CMOS"]
8881        pub const _0: Self = Self::new(0);
8882
8883        #[doc = "Output NMOS open-drain"]
8884        pub const _1: Self = Self::new(1);
8885    }
8886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8887    pub struct Eofr_SPEC;
8888    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8889    impl Eofr {
8890        #[doc = "Don\'t care"]
8891        pub const _00: Self = Self::new(0);
8892
8893        #[doc = "Detect rising edge"]
8894        pub const _01: Self = Self::new(1);
8895
8896        #[doc = "Detect falling edge"]
8897        pub const _10: Self = Self::new(2);
8898
8899        #[doc = "Detect both edges"]
8900        pub const _11: Self = Self::new(3);
8901    }
8902    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8903    pub struct Isel_SPEC;
8904    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8905    impl Isel {
8906        #[doc = "Do not use as IRQn input pin"]
8907        pub const _0: Self = Self::new(0);
8908
8909        #[doc = "Use as IRQn input pin"]
8910        pub const _1: Self = Self::new(1);
8911    }
8912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8913    pub struct Asel_SPEC;
8914    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8915    impl Asel {
8916        #[doc = "Do not use as analog pin"]
8917        pub const _0: Self = Self::new(0);
8918
8919        #[doc = "Use as analog pin"]
8920        pub const _1: Self = Self::new(1);
8921    }
8922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8923    pub struct Pmr_SPEC;
8924    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8925    impl Pmr {
8926        #[doc = "Use as general I/O pin"]
8927        pub const _0: Self = Self::new(0);
8928
8929        #[doc = "Use as I/O port for peripheral functions"]
8930        pub const _1: Self = Self::new(1);
8931    }
8932}
8933#[doc(hidden)]
8934#[derive(Copy, Clone, Eq, PartialEq)]
8935pub struct P201PfsHa_SPEC;
8936impl crate::sealed::RegSpec for P201PfsHa_SPEC {
8937    type DataType = u16;
8938}
8939
8940#[doc = "Port 201 Pin Function Select Register"]
8941pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
8942
8943impl P201PfsHa {
8944    #[doc = "Port Output Data"]
8945    #[inline(always)]
8946    pub fn podr(
8947        self,
8948    ) -> crate::common::RegisterField<
8949        0,
8950        0x1,
8951        1,
8952        0,
8953        p201pfs_ha::Podr,
8954        p201pfs_ha::Podr,
8955        P201PfsHa_SPEC,
8956        crate::common::RW,
8957    > {
8958        crate::common::RegisterField::<
8959            0,
8960            0x1,
8961            1,
8962            0,
8963            p201pfs_ha::Podr,
8964            p201pfs_ha::Podr,
8965            P201PfsHa_SPEC,
8966            crate::common::RW,
8967        >::from_register(self, 0)
8968    }
8969
8970    #[doc = "Port State"]
8971    #[inline(always)]
8972    pub fn pidr(
8973        self,
8974    ) -> crate::common::RegisterField<
8975        1,
8976        0x1,
8977        1,
8978        0,
8979        p201pfs_ha::Pidr,
8980        p201pfs_ha::Pidr,
8981        P201PfsHa_SPEC,
8982        crate::common::R,
8983    > {
8984        crate::common::RegisterField::<
8985            1,
8986            0x1,
8987            1,
8988            0,
8989            p201pfs_ha::Pidr,
8990            p201pfs_ha::Pidr,
8991            P201PfsHa_SPEC,
8992            crate::common::R,
8993        >::from_register(self, 0)
8994    }
8995
8996    #[doc = "Port Direction"]
8997    #[inline(always)]
8998    pub fn pdr(
8999        self,
9000    ) -> crate::common::RegisterField<
9001        2,
9002        0x1,
9003        1,
9004        0,
9005        p201pfs_ha::Pdr,
9006        p201pfs_ha::Pdr,
9007        P201PfsHa_SPEC,
9008        crate::common::RW,
9009    > {
9010        crate::common::RegisterField::<
9011            2,
9012            0x1,
9013            1,
9014            0,
9015            p201pfs_ha::Pdr,
9016            p201pfs_ha::Pdr,
9017            P201PfsHa_SPEC,
9018            crate::common::RW,
9019        >::from_register(self, 0)
9020    }
9021
9022    #[doc = "Pull-up Control"]
9023    #[inline(always)]
9024    pub fn pcr(
9025        self,
9026    ) -> crate::common::RegisterField<
9027        4,
9028        0x1,
9029        1,
9030        0,
9031        p201pfs_ha::Pcr,
9032        p201pfs_ha::Pcr,
9033        P201PfsHa_SPEC,
9034        crate::common::RW,
9035    > {
9036        crate::common::RegisterField::<
9037            4,
9038            0x1,
9039            1,
9040            0,
9041            p201pfs_ha::Pcr,
9042            p201pfs_ha::Pcr,
9043            P201PfsHa_SPEC,
9044            crate::common::RW,
9045        >::from_register(self, 0)
9046    }
9047
9048    #[doc = "N-Channel Open-Drain Control"]
9049    #[inline(always)]
9050    pub fn ncodr(
9051        self,
9052    ) -> crate::common::RegisterField<
9053        6,
9054        0x1,
9055        1,
9056        0,
9057        p201pfs_ha::Ncodr,
9058        p201pfs_ha::Ncodr,
9059        P201PfsHa_SPEC,
9060        crate::common::RW,
9061    > {
9062        crate::common::RegisterField::<
9063            6,
9064            0x1,
9065            1,
9066            0,
9067            p201pfs_ha::Ncodr,
9068            p201pfs_ha::Ncodr,
9069            P201PfsHa_SPEC,
9070            crate::common::RW,
9071        >::from_register(self, 0)
9072    }
9073
9074    #[doc = "Event on Falling/Event on Rising"]
9075    #[inline(always)]
9076    pub fn eofr(
9077        self,
9078    ) -> crate::common::RegisterField<
9079        12,
9080        0x3,
9081        1,
9082        0,
9083        p201pfs_ha::Eofr,
9084        p201pfs_ha::Eofr,
9085        P201PfsHa_SPEC,
9086        crate::common::RW,
9087    > {
9088        crate::common::RegisterField::<
9089            12,
9090            0x3,
9091            1,
9092            0,
9093            p201pfs_ha::Eofr,
9094            p201pfs_ha::Eofr,
9095            P201PfsHa_SPEC,
9096            crate::common::RW,
9097        >::from_register(self, 0)
9098    }
9099
9100    #[doc = "IRQ Input Enable"]
9101    #[inline(always)]
9102    pub fn isel(
9103        self,
9104    ) -> crate::common::RegisterField<
9105        14,
9106        0x1,
9107        1,
9108        0,
9109        p201pfs_ha::Isel,
9110        p201pfs_ha::Isel,
9111        P201PfsHa_SPEC,
9112        crate::common::RW,
9113    > {
9114        crate::common::RegisterField::<
9115            14,
9116            0x1,
9117            1,
9118            0,
9119            p201pfs_ha::Isel,
9120            p201pfs_ha::Isel,
9121            P201PfsHa_SPEC,
9122            crate::common::RW,
9123        >::from_register(self, 0)
9124    }
9125
9126    #[doc = "Analog Input Enable"]
9127    #[inline(always)]
9128    pub fn asel(
9129        self,
9130    ) -> crate::common::RegisterField<
9131        15,
9132        0x1,
9133        1,
9134        0,
9135        p201pfs_ha::Asel,
9136        p201pfs_ha::Asel,
9137        P201PfsHa_SPEC,
9138        crate::common::RW,
9139    > {
9140        crate::common::RegisterField::<
9141            15,
9142            0x1,
9143            1,
9144            0,
9145            p201pfs_ha::Asel,
9146            p201pfs_ha::Asel,
9147            P201PfsHa_SPEC,
9148            crate::common::RW,
9149        >::from_register(self, 0)
9150    }
9151}
9152impl ::core::default::Default for P201PfsHa {
9153    #[inline(always)]
9154    fn default() -> P201PfsHa {
9155        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
9156    }
9157}
9158pub mod p201pfs_ha {
9159
9160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9161    pub struct Podr_SPEC;
9162    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9163    impl Podr {
9164        #[doc = "Output low"]
9165        pub const _0: Self = Self::new(0);
9166
9167        #[doc = "Output high"]
9168        pub const _1: Self = Self::new(1);
9169    }
9170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9171    pub struct Pidr_SPEC;
9172    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9173    impl Pidr {
9174        #[doc = "Low level"]
9175        pub const _0: Self = Self::new(0);
9176
9177        #[doc = "High level"]
9178        pub const _1: Self = Self::new(1);
9179    }
9180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9181    pub struct Pdr_SPEC;
9182    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9183    impl Pdr {
9184        #[doc = "Input (functions as an input pin)"]
9185        pub const _0: Self = Self::new(0);
9186
9187        #[doc = "Output (functions as an output pin)"]
9188        pub const _1: Self = Self::new(1);
9189    }
9190    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9191    pub struct Pcr_SPEC;
9192    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9193    impl Pcr {
9194        #[doc = "Disable input pull-up"]
9195        pub const _0: Self = Self::new(0);
9196
9197        #[doc = "Enable input pull-up"]
9198        pub const _1: Self = Self::new(1);
9199    }
9200    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9201    pub struct Ncodr_SPEC;
9202    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9203    impl Ncodr {
9204        #[doc = "Output CMOS"]
9205        pub const _0: Self = Self::new(0);
9206
9207        #[doc = "Output NMOS open-drain"]
9208        pub const _1: Self = Self::new(1);
9209    }
9210    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9211    pub struct Eofr_SPEC;
9212    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9213    impl Eofr {
9214        #[doc = "Don\'t care"]
9215        pub const _00: Self = Self::new(0);
9216
9217        #[doc = "Detect rising edge"]
9218        pub const _01: Self = Self::new(1);
9219
9220        #[doc = "Detect falling edge"]
9221        pub const _10: Self = Self::new(2);
9222
9223        #[doc = "Detect both edges"]
9224        pub const _11: Self = Self::new(3);
9225    }
9226    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9227    pub struct Isel_SPEC;
9228    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9229    impl Isel {
9230        #[doc = "Do not use as IRQn input pin"]
9231        pub const _0: Self = Self::new(0);
9232
9233        #[doc = "Use as IRQn input pin"]
9234        pub const _1: Self = Self::new(1);
9235    }
9236    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9237    pub struct Asel_SPEC;
9238    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9239    impl Asel {
9240        #[doc = "Do not use as analog pin"]
9241        pub const _0: Self = Self::new(0);
9242
9243        #[doc = "Use as analog pin"]
9244        pub const _1: Self = Self::new(1);
9245    }
9246}
9247#[doc(hidden)]
9248#[derive(Copy, Clone, Eq, PartialEq)]
9249pub struct P201PfsBy_SPEC;
9250impl crate::sealed::RegSpec for P201PfsBy_SPEC {
9251    type DataType = u8;
9252}
9253
9254#[doc = "Port 201 Pin Function Select Register"]
9255pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
9256
9257impl P201PfsBy {
9258    #[doc = "Port Output Data"]
9259    #[inline(always)]
9260    pub fn podr(
9261        self,
9262    ) -> crate::common::RegisterField<
9263        0,
9264        0x1,
9265        1,
9266        0,
9267        p201pfs_by::Podr,
9268        p201pfs_by::Podr,
9269        P201PfsBy_SPEC,
9270        crate::common::RW,
9271    > {
9272        crate::common::RegisterField::<
9273            0,
9274            0x1,
9275            1,
9276            0,
9277            p201pfs_by::Podr,
9278            p201pfs_by::Podr,
9279            P201PfsBy_SPEC,
9280            crate::common::RW,
9281        >::from_register(self, 0)
9282    }
9283
9284    #[doc = "Port State"]
9285    #[inline(always)]
9286    pub fn pidr(
9287        self,
9288    ) -> crate::common::RegisterField<
9289        1,
9290        0x1,
9291        1,
9292        0,
9293        p201pfs_by::Pidr,
9294        p201pfs_by::Pidr,
9295        P201PfsBy_SPEC,
9296        crate::common::R,
9297    > {
9298        crate::common::RegisterField::<
9299            1,
9300            0x1,
9301            1,
9302            0,
9303            p201pfs_by::Pidr,
9304            p201pfs_by::Pidr,
9305            P201PfsBy_SPEC,
9306            crate::common::R,
9307        >::from_register(self, 0)
9308    }
9309
9310    #[doc = "Port Direction"]
9311    #[inline(always)]
9312    pub fn pdr(
9313        self,
9314    ) -> crate::common::RegisterField<
9315        2,
9316        0x1,
9317        1,
9318        0,
9319        p201pfs_by::Pdr,
9320        p201pfs_by::Pdr,
9321        P201PfsBy_SPEC,
9322        crate::common::RW,
9323    > {
9324        crate::common::RegisterField::<
9325            2,
9326            0x1,
9327            1,
9328            0,
9329            p201pfs_by::Pdr,
9330            p201pfs_by::Pdr,
9331            P201PfsBy_SPEC,
9332            crate::common::RW,
9333        >::from_register(self, 0)
9334    }
9335
9336    #[doc = "Pull-up Control"]
9337    #[inline(always)]
9338    pub fn pcr(
9339        self,
9340    ) -> crate::common::RegisterField<
9341        4,
9342        0x1,
9343        1,
9344        0,
9345        p201pfs_by::Pcr,
9346        p201pfs_by::Pcr,
9347        P201PfsBy_SPEC,
9348        crate::common::RW,
9349    > {
9350        crate::common::RegisterField::<
9351            4,
9352            0x1,
9353            1,
9354            0,
9355            p201pfs_by::Pcr,
9356            p201pfs_by::Pcr,
9357            P201PfsBy_SPEC,
9358            crate::common::RW,
9359        >::from_register(self, 0)
9360    }
9361
9362    #[doc = "N-Channel Open-Drain Control"]
9363    #[inline(always)]
9364    pub fn ncodr(
9365        self,
9366    ) -> crate::common::RegisterField<
9367        6,
9368        0x1,
9369        1,
9370        0,
9371        p201pfs_by::Ncodr,
9372        p201pfs_by::Ncodr,
9373        P201PfsBy_SPEC,
9374        crate::common::RW,
9375    > {
9376        crate::common::RegisterField::<
9377            6,
9378            0x1,
9379            1,
9380            0,
9381            p201pfs_by::Ncodr,
9382            p201pfs_by::Ncodr,
9383            P201PfsBy_SPEC,
9384            crate::common::RW,
9385        >::from_register(self, 0)
9386    }
9387}
9388impl ::core::default::Default for P201PfsBy {
9389    #[inline(always)]
9390    fn default() -> P201PfsBy {
9391        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
9392    }
9393}
9394pub mod p201pfs_by {
9395
9396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9397    pub struct Podr_SPEC;
9398    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9399    impl Podr {
9400        #[doc = "Output low"]
9401        pub const _0: Self = Self::new(0);
9402
9403        #[doc = "Output high"]
9404        pub const _1: Self = Self::new(1);
9405    }
9406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9407    pub struct Pidr_SPEC;
9408    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9409    impl Pidr {
9410        #[doc = "Low level"]
9411        pub const _0: Self = Self::new(0);
9412
9413        #[doc = "High level"]
9414        pub const _1: Self = Self::new(1);
9415    }
9416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9417    pub struct Pdr_SPEC;
9418    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9419    impl Pdr {
9420        #[doc = "Input (functions as an input pin)"]
9421        pub const _0: Self = Self::new(0);
9422
9423        #[doc = "Output (functions as an output pin)"]
9424        pub const _1: Self = Self::new(1);
9425    }
9426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9427    pub struct Pcr_SPEC;
9428    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9429    impl Pcr {
9430        #[doc = "Disable input pull-up"]
9431        pub const _0: Self = Self::new(0);
9432
9433        #[doc = "Enable input pull-up"]
9434        pub const _1: Self = Self::new(1);
9435    }
9436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9437    pub struct Ncodr_SPEC;
9438    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9439    impl Ncodr {
9440        #[doc = "Output CMOS"]
9441        pub const _0: Self = Self::new(0);
9442
9443        #[doc = "Output NMOS open-drain"]
9444        pub const _1: Self = Self::new(1);
9445    }
9446}
9447#[doc(hidden)]
9448#[derive(Copy, Clone, Eq, PartialEq)]
9449pub struct P20Pfs_SPEC;
9450impl crate::sealed::RegSpec for P20Pfs_SPEC {
9451    type DataType = u32;
9452}
9453
9454#[doc = "Port 20%s Pin Function Select Register"]
9455pub type P20Pfs = crate::RegValueT<P20Pfs_SPEC>;
9456
9457impl P20Pfs {
9458    #[doc = "Port Output Data"]
9459    #[inline(always)]
9460    pub fn podr(
9461        self,
9462    ) -> crate::common::RegisterField<
9463        0,
9464        0x1,
9465        1,
9466        0,
9467        p20pfs::Podr,
9468        p20pfs::Podr,
9469        P20Pfs_SPEC,
9470        crate::common::RW,
9471    > {
9472        crate::common::RegisterField::<
9473            0,
9474            0x1,
9475            1,
9476            0,
9477            p20pfs::Podr,
9478            p20pfs::Podr,
9479            P20Pfs_SPEC,
9480            crate::common::RW,
9481        >::from_register(self, 0)
9482    }
9483
9484    #[doc = "Port State"]
9485    #[inline(always)]
9486    pub fn pidr(
9487        self,
9488    ) -> crate::common::RegisterField<
9489        1,
9490        0x1,
9491        1,
9492        0,
9493        p20pfs::Pidr,
9494        p20pfs::Pidr,
9495        P20Pfs_SPEC,
9496        crate::common::R,
9497    > {
9498        crate::common::RegisterField::<
9499            1,
9500            0x1,
9501            1,
9502            0,
9503            p20pfs::Pidr,
9504            p20pfs::Pidr,
9505            P20Pfs_SPEC,
9506            crate::common::R,
9507        >::from_register(self, 0)
9508    }
9509
9510    #[doc = "Port Direction"]
9511    #[inline(always)]
9512    pub fn pdr(
9513        self,
9514    ) -> crate::common::RegisterField<
9515        2,
9516        0x1,
9517        1,
9518        0,
9519        p20pfs::Pdr,
9520        p20pfs::Pdr,
9521        P20Pfs_SPEC,
9522        crate::common::RW,
9523    > {
9524        crate::common::RegisterField::<
9525            2,
9526            0x1,
9527            1,
9528            0,
9529            p20pfs::Pdr,
9530            p20pfs::Pdr,
9531            P20Pfs_SPEC,
9532            crate::common::RW,
9533        >::from_register(self, 0)
9534    }
9535
9536    #[doc = "Pull-up Control"]
9537    #[inline(always)]
9538    pub fn pcr(
9539        self,
9540    ) -> crate::common::RegisterField<
9541        4,
9542        0x1,
9543        1,
9544        0,
9545        p20pfs::Pcr,
9546        p20pfs::Pcr,
9547        P20Pfs_SPEC,
9548        crate::common::RW,
9549    > {
9550        crate::common::RegisterField::<
9551            4,
9552            0x1,
9553            1,
9554            0,
9555            p20pfs::Pcr,
9556            p20pfs::Pcr,
9557            P20Pfs_SPEC,
9558            crate::common::RW,
9559        >::from_register(self, 0)
9560    }
9561
9562    #[doc = "N-Channel Open-Drain Control"]
9563    #[inline(always)]
9564    pub fn ncodr(
9565        self,
9566    ) -> crate::common::RegisterField<
9567        6,
9568        0x1,
9569        1,
9570        0,
9571        p20pfs::Ncodr,
9572        p20pfs::Ncodr,
9573        P20Pfs_SPEC,
9574        crate::common::RW,
9575    > {
9576        crate::common::RegisterField::<
9577            6,
9578            0x1,
9579            1,
9580            0,
9581            p20pfs::Ncodr,
9582            p20pfs::Ncodr,
9583            P20Pfs_SPEC,
9584            crate::common::RW,
9585        >::from_register(self, 0)
9586    }
9587
9588    #[doc = "Event on Falling/Event on Rising"]
9589    #[inline(always)]
9590    pub fn eofr(
9591        self,
9592    ) -> crate::common::RegisterField<
9593        12,
9594        0x3,
9595        1,
9596        0,
9597        p20pfs::Eofr,
9598        p20pfs::Eofr,
9599        P20Pfs_SPEC,
9600        crate::common::RW,
9601    > {
9602        crate::common::RegisterField::<
9603            12,
9604            0x3,
9605            1,
9606            0,
9607            p20pfs::Eofr,
9608            p20pfs::Eofr,
9609            P20Pfs_SPEC,
9610            crate::common::RW,
9611        >::from_register(self, 0)
9612    }
9613
9614    #[doc = "IRQ Input Enable"]
9615    #[inline(always)]
9616    pub fn isel(
9617        self,
9618    ) -> crate::common::RegisterField<
9619        14,
9620        0x1,
9621        1,
9622        0,
9623        p20pfs::Isel,
9624        p20pfs::Isel,
9625        P20Pfs_SPEC,
9626        crate::common::RW,
9627    > {
9628        crate::common::RegisterField::<
9629            14,
9630            0x1,
9631            1,
9632            0,
9633            p20pfs::Isel,
9634            p20pfs::Isel,
9635            P20Pfs_SPEC,
9636            crate::common::RW,
9637        >::from_register(self, 0)
9638    }
9639
9640    #[doc = "Analog Input Enable"]
9641    #[inline(always)]
9642    pub fn asel(
9643        self,
9644    ) -> crate::common::RegisterField<
9645        15,
9646        0x1,
9647        1,
9648        0,
9649        p20pfs::Asel,
9650        p20pfs::Asel,
9651        P20Pfs_SPEC,
9652        crate::common::RW,
9653    > {
9654        crate::common::RegisterField::<
9655            15,
9656            0x1,
9657            1,
9658            0,
9659            p20pfs::Asel,
9660            p20pfs::Asel,
9661            P20Pfs_SPEC,
9662            crate::common::RW,
9663        >::from_register(self, 0)
9664    }
9665
9666    #[doc = "Port Mode Control"]
9667    #[inline(always)]
9668    pub fn pmr(
9669        self,
9670    ) -> crate::common::RegisterField<
9671        16,
9672        0x1,
9673        1,
9674        0,
9675        p20pfs::Pmr,
9676        p20pfs::Pmr,
9677        P20Pfs_SPEC,
9678        crate::common::RW,
9679    > {
9680        crate::common::RegisterField::<
9681            16,
9682            0x1,
9683            1,
9684            0,
9685            p20pfs::Pmr,
9686            p20pfs::Pmr,
9687            P20Pfs_SPEC,
9688            crate::common::RW,
9689        >::from_register(self, 0)
9690    }
9691
9692    #[doc = "Peripheral Select"]
9693    #[inline(always)]
9694    pub fn psel(
9695        self,
9696    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P20Pfs_SPEC, crate::common::RW> {
9697        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P20Pfs_SPEC,crate::common::RW>::from_register(self,0)
9698    }
9699}
9700impl ::core::default::Default for P20Pfs {
9701    #[inline(always)]
9702    fn default() -> P20Pfs {
9703        <crate::RegValueT<P20Pfs_SPEC> as RegisterValue<_>>::new(0)
9704    }
9705}
9706pub mod p20pfs {
9707
9708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9709    pub struct Podr_SPEC;
9710    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9711    impl Podr {
9712        #[doc = "Output low"]
9713        pub const _0: Self = Self::new(0);
9714
9715        #[doc = "Output high"]
9716        pub const _1: Self = Self::new(1);
9717    }
9718    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9719    pub struct Pidr_SPEC;
9720    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9721    impl Pidr {
9722        #[doc = "Low level"]
9723        pub const _0: Self = Self::new(0);
9724
9725        #[doc = "High level"]
9726        pub const _1: Self = Self::new(1);
9727    }
9728    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9729    pub struct Pdr_SPEC;
9730    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9731    impl Pdr {
9732        #[doc = "Input (functions as an input pin)"]
9733        pub const _0: Self = Self::new(0);
9734
9735        #[doc = "Output (functions as an output pin)"]
9736        pub const _1: Self = Self::new(1);
9737    }
9738    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9739    pub struct Pcr_SPEC;
9740    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9741    impl Pcr {
9742        #[doc = "Disable input pull-up"]
9743        pub const _0: Self = Self::new(0);
9744
9745        #[doc = "Enable input pull-up"]
9746        pub const _1: Self = Self::new(1);
9747    }
9748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9749    pub struct Ncodr_SPEC;
9750    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9751    impl Ncodr {
9752        #[doc = "Output CMOS"]
9753        pub const _0: Self = Self::new(0);
9754
9755        #[doc = "Output NMOS open-drain"]
9756        pub const _1: Self = Self::new(1);
9757    }
9758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9759    pub struct Eofr_SPEC;
9760    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9761    impl Eofr {
9762        #[doc = "Don\'t care"]
9763        pub const _00: Self = Self::new(0);
9764
9765        #[doc = "Detect rising edge"]
9766        pub const _01: Self = Self::new(1);
9767
9768        #[doc = "Detect falling edge"]
9769        pub const _10: Self = Self::new(2);
9770
9771        #[doc = "Detect both edges"]
9772        pub const _11: Self = Self::new(3);
9773    }
9774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9775    pub struct Isel_SPEC;
9776    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9777    impl Isel {
9778        #[doc = "Do not use as IRQn input pin"]
9779        pub const _0: Self = Self::new(0);
9780
9781        #[doc = "Use as IRQn input pin"]
9782        pub const _1: Self = Self::new(1);
9783    }
9784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9785    pub struct Asel_SPEC;
9786    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9787    impl Asel {
9788        #[doc = "Do not use as analog pin"]
9789        pub const _0: Self = Self::new(0);
9790
9791        #[doc = "Use as analog pin"]
9792        pub const _1: Self = Self::new(1);
9793    }
9794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9795    pub struct Pmr_SPEC;
9796    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9797    impl Pmr {
9798        #[doc = "Use as general I/O pin"]
9799        pub const _0: Self = Self::new(0);
9800
9801        #[doc = "Use as I/O port for peripheral functions"]
9802        pub const _1: Self = Self::new(1);
9803    }
9804}
9805#[doc(hidden)]
9806#[derive(Copy, Clone, Eq, PartialEq)]
9807pub struct P20PfsHa_SPEC;
9808impl crate::sealed::RegSpec for P20PfsHa_SPEC {
9809    type DataType = u16;
9810}
9811
9812#[doc = "Port 20%s Pin Function Select Register"]
9813pub type P20PfsHa = crate::RegValueT<P20PfsHa_SPEC>;
9814
9815impl P20PfsHa {
9816    #[doc = "Port Output Data"]
9817    #[inline(always)]
9818    pub fn podr(
9819        self,
9820    ) -> crate::common::RegisterField<
9821        0,
9822        0x1,
9823        1,
9824        0,
9825        p20pfs_ha::Podr,
9826        p20pfs_ha::Podr,
9827        P20PfsHa_SPEC,
9828        crate::common::RW,
9829    > {
9830        crate::common::RegisterField::<
9831            0,
9832            0x1,
9833            1,
9834            0,
9835            p20pfs_ha::Podr,
9836            p20pfs_ha::Podr,
9837            P20PfsHa_SPEC,
9838            crate::common::RW,
9839        >::from_register(self, 0)
9840    }
9841
9842    #[doc = "Port State"]
9843    #[inline(always)]
9844    pub fn pidr(
9845        self,
9846    ) -> crate::common::RegisterField<
9847        1,
9848        0x1,
9849        1,
9850        0,
9851        p20pfs_ha::Pidr,
9852        p20pfs_ha::Pidr,
9853        P20PfsHa_SPEC,
9854        crate::common::R,
9855    > {
9856        crate::common::RegisterField::<
9857            1,
9858            0x1,
9859            1,
9860            0,
9861            p20pfs_ha::Pidr,
9862            p20pfs_ha::Pidr,
9863            P20PfsHa_SPEC,
9864            crate::common::R,
9865        >::from_register(self, 0)
9866    }
9867
9868    #[doc = "Port Direction"]
9869    #[inline(always)]
9870    pub fn pdr(
9871        self,
9872    ) -> crate::common::RegisterField<
9873        2,
9874        0x1,
9875        1,
9876        0,
9877        p20pfs_ha::Pdr,
9878        p20pfs_ha::Pdr,
9879        P20PfsHa_SPEC,
9880        crate::common::RW,
9881    > {
9882        crate::common::RegisterField::<
9883            2,
9884            0x1,
9885            1,
9886            0,
9887            p20pfs_ha::Pdr,
9888            p20pfs_ha::Pdr,
9889            P20PfsHa_SPEC,
9890            crate::common::RW,
9891        >::from_register(self, 0)
9892    }
9893
9894    #[doc = "Pull-up Control"]
9895    #[inline(always)]
9896    pub fn pcr(
9897        self,
9898    ) -> crate::common::RegisterField<
9899        4,
9900        0x1,
9901        1,
9902        0,
9903        p20pfs_ha::Pcr,
9904        p20pfs_ha::Pcr,
9905        P20PfsHa_SPEC,
9906        crate::common::RW,
9907    > {
9908        crate::common::RegisterField::<
9909            4,
9910            0x1,
9911            1,
9912            0,
9913            p20pfs_ha::Pcr,
9914            p20pfs_ha::Pcr,
9915            P20PfsHa_SPEC,
9916            crate::common::RW,
9917        >::from_register(self, 0)
9918    }
9919
9920    #[doc = "N-Channel Open-Drain Control"]
9921    #[inline(always)]
9922    pub fn ncodr(
9923        self,
9924    ) -> crate::common::RegisterField<
9925        6,
9926        0x1,
9927        1,
9928        0,
9929        p20pfs_ha::Ncodr,
9930        p20pfs_ha::Ncodr,
9931        P20PfsHa_SPEC,
9932        crate::common::RW,
9933    > {
9934        crate::common::RegisterField::<
9935            6,
9936            0x1,
9937            1,
9938            0,
9939            p20pfs_ha::Ncodr,
9940            p20pfs_ha::Ncodr,
9941            P20PfsHa_SPEC,
9942            crate::common::RW,
9943        >::from_register(self, 0)
9944    }
9945
9946    #[doc = "Event on Falling/Event on Rising"]
9947    #[inline(always)]
9948    pub fn eofr(
9949        self,
9950    ) -> crate::common::RegisterField<
9951        12,
9952        0x3,
9953        1,
9954        0,
9955        p20pfs_ha::Eofr,
9956        p20pfs_ha::Eofr,
9957        P20PfsHa_SPEC,
9958        crate::common::RW,
9959    > {
9960        crate::common::RegisterField::<
9961            12,
9962            0x3,
9963            1,
9964            0,
9965            p20pfs_ha::Eofr,
9966            p20pfs_ha::Eofr,
9967            P20PfsHa_SPEC,
9968            crate::common::RW,
9969        >::from_register(self, 0)
9970    }
9971
9972    #[doc = "IRQ Input Enable"]
9973    #[inline(always)]
9974    pub fn isel(
9975        self,
9976    ) -> crate::common::RegisterField<
9977        14,
9978        0x1,
9979        1,
9980        0,
9981        p20pfs_ha::Isel,
9982        p20pfs_ha::Isel,
9983        P20PfsHa_SPEC,
9984        crate::common::RW,
9985    > {
9986        crate::common::RegisterField::<
9987            14,
9988            0x1,
9989            1,
9990            0,
9991            p20pfs_ha::Isel,
9992            p20pfs_ha::Isel,
9993            P20PfsHa_SPEC,
9994            crate::common::RW,
9995        >::from_register(self, 0)
9996    }
9997
9998    #[doc = "Analog Input Enable"]
9999    #[inline(always)]
10000    pub fn asel(
10001        self,
10002    ) -> crate::common::RegisterField<
10003        15,
10004        0x1,
10005        1,
10006        0,
10007        p20pfs_ha::Asel,
10008        p20pfs_ha::Asel,
10009        P20PfsHa_SPEC,
10010        crate::common::RW,
10011    > {
10012        crate::common::RegisterField::<
10013            15,
10014            0x1,
10015            1,
10016            0,
10017            p20pfs_ha::Asel,
10018            p20pfs_ha::Asel,
10019            P20PfsHa_SPEC,
10020            crate::common::RW,
10021        >::from_register(self, 0)
10022    }
10023}
10024impl ::core::default::Default for P20PfsHa {
10025    #[inline(always)]
10026    fn default() -> P20PfsHa {
10027        <crate::RegValueT<P20PfsHa_SPEC> as RegisterValue<_>>::new(0)
10028    }
10029}
10030pub mod p20pfs_ha {
10031
10032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10033    pub struct Podr_SPEC;
10034    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10035    impl Podr {
10036        #[doc = "Output low"]
10037        pub const _0: Self = Self::new(0);
10038
10039        #[doc = "Output high"]
10040        pub const _1: Self = Self::new(1);
10041    }
10042    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10043    pub struct Pidr_SPEC;
10044    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10045    impl Pidr {
10046        #[doc = "Low level"]
10047        pub const _0: Self = Self::new(0);
10048
10049        #[doc = "High level"]
10050        pub const _1: Self = Self::new(1);
10051    }
10052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10053    pub struct Pdr_SPEC;
10054    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10055    impl Pdr {
10056        #[doc = "Input (functions as an input pin)"]
10057        pub const _0: Self = Self::new(0);
10058
10059        #[doc = "Output (functions as an output pin)"]
10060        pub const _1: Self = Self::new(1);
10061    }
10062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10063    pub struct Pcr_SPEC;
10064    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10065    impl Pcr {
10066        #[doc = "Disable input pull-up"]
10067        pub const _0: Self = Self::new(0);
10068
10069        #[doc = "Enable input pull-up"]
10070        pub const _1: Self = Self::new(1);
10071    }
10072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10073    pub struct Ncodr_SPEC;
10074    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10075    impl Ncodr {
10076        #[doc = "Output CMOS"]
10077        pub const _0: Self = Self::new(0);
10078
10079        #[doc = "Output NMOS open-drain"]
10080        pub const _1: Self = Self::new(1);
10081    }
10082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10083    pub struct Eofr_SPEC;
10084    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10085    impl Eofr {
10086        #[doc = "Don\'t care"]
10087        pub const _00: Self = Self::new(0);
10088
10089        #[doc = "Detect rising edge"]
10090        pub const _01: Self = Self::new(1);
10091
10092        #[doc = "Detect falling edge"]
10093        pub const _10: Self = Self::new(2);
10094
10095        #[doc = "Detect both edges"]
10096        pub const _11: Self = Self::new(3);
10097    }
10098    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10099    pub struct Isel_SPEC;
10100    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10101    impl Isel {
10102        #[doc = "Do not use as IRQn input pin"]
10103        pub const _0: Self = Self::new(0);
10104
10105        #[doc = "Use as IRQn input pin"]
10106        pub const _1: Self = Self::new(1);
10107    }
10108    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10109    pub struct Asel_SPEC;
10110    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10111    impl Asel {
10112        #[doc = "Do not use as analog pin"]
10113        pub const _0: Self = Self::new(0);
10114
10115        #[doc = "Use as analog pin"]
10116        pub const _1: Self = Self::new(1);
10117    }
10118}
10119#[doc(hidden)]
10120#[derive(Copy, Clone, Eq, PartialEq)]
10121pub struct P20PfsBy_SPEC;
10122impl crate::sealed::RegSpec for P20PfsBy_SPEC {
10123    type DataType = u8;
10124}
10125
10126#[doc = "Port 20%s Pin Function Select Register"]
10127pub type P20PfsBy = crate::RegValueT<P20PfsBy_SPEC>;
10128
10129impl P20PfsBy {
10130    #[doc = "Port Output Data"]
10131    #[inline(always)]
10132    pub fn podr(
10133        self,
10134    ) -> crate::common::RegisterField<
10135        0,
10136        0x1,
10137        1,
10138        0,
10139        p20pfs_by::Podr,
10140        p20pfs_by::Podr,
10141        P20PfsBy_SPEC,
10142        crate::common::RW,
10143    > {
10144        crate::common::RegisterField::<
10145            0,
10146            0x1,
10147            1,
10148            0,
10149            p20pfs_by::Podr,
10150            p20pfs_by::Podr,
10151            P20PfsBy_SPEC,
10152            crate::common::RW,
10153        >::from_register(self, 0)
10154    }
10155
10156    #[doc = "Port State"]
10157    #[inline(always)]
10158    pub fn pidr(
10159        self,
10160    ) -> crate::common::RegisterField<
10161        1,
10162        0x1,
10163        1,
10164        0,
10165        p20pfs_by::Pidr,
10166        p20pfs_by::Pidr,
10167        P20PfsBy_SPEC,
10168        crate::common::R,
10169    > {
10170        crate::common::RegisterField::<
10171            1,
10172            0x1,
10173            1,
10174            0,
10175            p20pfs_by::Pidr,
10176            p20pfs_by::Pidr,
10177            P20PfsBy_SPEC,
10178            crate::common::R,
10179        >::from_register(self, 0)
10180    }
10181
10182    #[doc = "Port Direction"]
10183    #[inline(always)]
10184    pub fn pdr(
10185        self,
10186    ) -> crate::common::RegisterField<
10187        2,
10188        0x1,
10189        1,
10190        0,
10191        p20pfs_by::Pdr,
10192        p20pfs_by::Pdr,
10193        P20PfsBy_SPEC,
10194        crate::common::RW,
10195    > {
10196        crate::common::RegisterField::<
10197            2,
10198            0x1,
10199            1,
10200            0,
10201            p20pfs_by::Pdr,
10202            p20pfs_by::Pdr,
10203            P20PfsBy_SPEC,
10204            crate::common::RW,
10205        >::from_register(self, 0)
10206    }
10207
10208    #[doc = "Pull-up Control"]
10209    #[inline(always)]
10210    pub fn pcr(
10211        self,
10212    ) -> crate::common::RegisterField<
10213        4,
10214        0x1,
10215        1,
10216        0,
10217        p20pfs_by::Pcr,
10218        p20pfs_by::Pcr,
10219        P20PfsBy_SPEC,
10220        crate::common::RW,
10221    > {
10222        crate::common::RegisterField::<
10223            4,
10224            0x1,
10225            1,
10226            0,
10227            p20pfs_by::Pcr,
10228            p20pfs_by::Pcr,
10229            P20PfsBy_SPEC,
10230            crate::common::RW,
10231        >::from_register(self, 0)
10232    }
10233
10234    #[doc = "N-Channel Open-Drain Control"]
10235    #[inline(always)]
10236    pub fn ncodr(
10237        self,
10238    ) -> crate::common::RegisterField<
10239        6,
10240        0x1,
10241        1,
10242        0,
10243        p20pfs_by::Ncodr,
10244        p20pfs_by::Ncodr,
10245        P20PfsBy_SPEC,
10246        crate::common::RW,
10247    > {
10248        crate::common::RegisterField::<
10249            6,
10250            0x1,
10251            1,
10252            0,
10253            p20pfs_by::Ncodr,
10254            p20pfs_by::Ncodr,
10255            P20PfsBy_SPEC,
10256            crate::common::RW,
10257        >::from_register(self, 0)
10258    }
10259}
10260impl ::core::default::Default for P20PfsBy {
10261    #[inline(always)]
10262    fn default() -> P20PfsBy {
10263        <crate::RegValueT<P20PfsBy_SPEC> as RegisterValue<_>>::new(0)
10264    }
10265}
10266pub mod p20pfs_by {
10267
10268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10269    pub struct Podr_SPEC;
10270    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10271    impl Podr {
10272        #[doc = "Output low"]
10273        pub const _0: Self = Self::new(0);
10274
10275        #[doc = "Output high"]
10276        pub const _1: Self = Self::new(1);
10277    }
10278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10279    pub struct Pidr_SPEC;
10280    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10281    impl Pidr {
10282        #[doc = "Low level"]
10283        pub const _0: Self = Self::new(0);
10284
10285        #[doc = "High level"]
10286        pub const _1: Self = Self::new(1);
10287    }
10288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10289    pub struct Pdr_SPEC;
10290    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10291    impl Pdr {
10292        #[doc = "Input (functions as an input pin)"]
10293        pub const _0: Self = Self::new(0);
10294
10295        #[doc = "Output (functions as an output pin)"]
10296        pub const _1: Self = Self::new(1);
10297    }
10298    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10299    pub struct Pcr_SPEC;
10300    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10301    impl Pcr {
10302        #[doc = "Disable input pull-up"]
10303        pub const _0: Self = Self::new(0);
10304
10305        #[doc = "Enable input pull-up"]
10306        pub const _1: Self = Self::new(1);
10307    }
10308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10309    pub struct Ncodr_SPEC;
10310    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10311    impl Ncodr {
10312        #[doc = "Output CMOS"]
10313        pub const _0: Self = Self::new(0);
10314
10315        #[doc = "Output NMOS open-drain"]
10316        pub const _1: Self = Self::new(1);
10317    }
10318}
10319#[doc(hidden)]
10320#[derive(Copy, Clone, Eq, PartialEq)]
10321pub struct P2Pfs_SPEC;
10322impl crate::sealed::RegSpec for P2Pfs_SPEC {
10323    type DataType = u32;
10324}
10325
10326#[doc = "Port 2%s Pin Function Select Register"]
10327pub type P2Pfs = crate::RegValueT<P2Pfs_SPEC>;
10328
10329impl P2Pfs {
10330    #[doc = "Port Output Data"]
10331    #[inline(always)]
10332    pub fn podr(
10333        self,
10334    ) -> crate::common::RegisterField<
10335        0,
10336        0x1,
10337        1,
10338        0,
10339        p2pfs::Podr,
10340        p2pfs::Podr,
10341        P2Pfs_SPEC,
10342        crate::common::RW,
10343    > {
10344        crate::common::RegisterField::<
10345            0,
10346            0x1,
10347            1,
10348            0,
10349            p2pfs::Podr,
10350            p2pfs::Podr,
10351            P2Pfs_SPEC,
10352            crate::common::RW,
10353        >::from_register(self, 0)
10354    }
10355
10356    #[doc = "Port State"]
10357    #[inline(always)]
10358    pub fn pidr(
10359        self,
10360    ) -> crate::common::RegisterField<
10361        1,
10362        0x1,
10363        1,
10364        0,
10365        p2pfs::Pidr,
10366        p2pfs::Pidr,
10367        P2Pfs_SPEC,
10368        crate::common::R,
10369    > {
10370        crate::common::RegisterField::<
10371            1,
10372            0x1,
10373            1,
10374            0,
10375            p2pfs::Pidr,
10376            p2pfs::Pidr,
10377            P2Pfs_SPEC,
10378            crate::common::R,
10379        >::from_register(self, 0)
10380    }
10381
10382    #[doc = "Port Direction"]
10383    #[inline(always)]
10384    pub fn pdr(
10385        self,
10386    ) -> crate::common::RegisterField<
10387        2,
10388        0x1,
10389        1,
10390        0,
10391        p2pfs::Pdr,
10392        p2pfs::Pdr,
10393        P2Pfs_SPEC,
10394        crate::common::RW,
10395    > {
10396        crate::common::RegisterField::<
10397            2,
10398            0x1,
10399            1,
10400            0,
10401            p2pfs::Pdr,
10402            p2pfs::Pdr,
10403            P2Pfs_SPEC,
10404            crate::common::RW,
10405        >::from_register(self, 0)
10406    }
10407
10408    #[doc = "Pull-up Control"]
10409    #[inline(always)]
10410    pub fn pcr(
10411        self,
10412    ) -> crate::common::RegisterField<
10413        4,
10414        0x1,
10415        1,
10416        0,
10417        p2pfs::Pcr,
10418        p2pfs::Pcr,
10419        P2Pfs_SPEC,
10420        crate::common::RW,
10421    > {
10422        crate::common::RegisterField::<
10423            4,
10424            0x1,
10425            1,
10426            0,
10427            p2pfs::Pcr,
10428            p2pfs::Pcr,
10429            P2Pfs_SPEC,
10430            crate::common::RW,
10431        >::from_register(self, 0)
10432    }
10433
10434    #[doc = "N-Channel Open-Drain Control"]
10435    #[inline(always)]
10436    pub fn ncodr(
10437        self,
10438    ) -> crate::common::RegisterField<
10439        6,
10440        0x1,
10441        1,
10442        0,
10443        p2pfs::Ncodr,
10444        p2pfs::Ncodr,
10445        P2Pfs_SPEC,
10446        crate::common::RW,
10447    > {
10448        crate::common::RegisterField::<
10449            6,
10450            0x1,
10451            1,
10452            0,
10453            p2pfs::Ncodr,
10454            p2pfs::Ncodr,
10455            P2Pfs_SPEC,
10456            crate::common::RW,
10457        >::from_register(self, 0)
10458    }
10459
10460    #[doc = "Event on Falling/Event on Rising"]
10461    #[inline(always)]
10462    pub fn eofr(
10463        self,
10464    ) -> crate::common::RegisterField<
10465        12,
10466        0x3,
10467        1,
10468        0,
10469        p2pfs::Eofr,
10470        p2pfs::Eofr,
10471        P2Pfs_SPEC,
10472        crate::common::RW,
10473    > {
10474        crate::common::RegisterField::<
10475            12,
10476            0x3,
10477            1,
10478            0,
10479            p2pfs::Eofr,
10480            p2pfs::Eofr,
10481            P2Pfs_SPEC,
10482            crate::common::RW,
10483        >::from_register(self, 0)
10484    }
10485
10486    #[doc = "IRQ Input Enable"]
10487    #[inline(always)]
10488    pub fn isel(
10489        self,
10490    ) -> crate::common::RegisterField<
10491        14,
10492        0x1,
10493        1,
10494        0,
10495        p2pfs::Isel,
10496        p2pfs::Isel,
10497        P2Pfs_SPEC,
10498        crate::common::RW,
10499    > {
10500        crate::common::RegisterField::<
10501            14,
10502            0x1,
10503            1,
10504            0,
10505            p2pfs::Isel,
10506            p2pfs::Isel,
10507            P2Pfs_SPEC,
10508            crate::common::RW,
10509        >::from_register(self, 0)
10510    }
10511
10512    #[doc = "Analog Input Enable"]
10513    #[inline(always)]
10514    pub fn asel(
10515        self,
10516    ) -> crate::common::RegisterField<
10517        15,
10518        0x1,
10519        1,
10520        0,
10521        p2pfs::Asel,
10522        p2pfs::Asel,
10523        P2Pfs_SPEC,
10524        crate::common::RW,
10525    > {
10526        crate::common::RegisterField::<
10527            15,
10528            0x1,
10529            1,
10530            0,
10531            p2pfs::Asel,
10532            p2pfs::Asel,
10533            P2Pfs_SPEC,
10534            crate::common::RW,
10535        >::from_register(self, 0)
10536    }
10537
10538    #[doc = "Port Mode Control"]
10539    #[inline(always)]
10540    pub fn pmr(
10541        self,
10542    ) -> crate::common::RegisterField<
10543        16,
10544        0x1,
10545        1,
10546        0,
10547        p2pfs::Pmr,
10548        p2pfs::Pmr,
10549        P2Pfs_SPEC,
10550        crate::common::RW,
10551    > {
10552        crate::common::RegisterField::<
10553            16,
10554            0x1,
10555            1,
10556            0,
10557            p2pfs::Pmr,
10558            p2pfs::Pmr,
10559            P2Pfs_SPEC,
10560            crate::common::RW,
10561        >::from_register(self, 0)
10562    }
10563
10564    #[doc = "Peripheral Select"]
10565    #[inline(always)]
10566    pub fn psel(
10567        self,
10568    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P2Pfs_SPEC, crate::common::RW> {
10569        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P2Pfs_SPEC,crate::common::RW>::from_register(self,0)
10570    }
10571}
10572impl ::core::default::Default for P2Pfs {
10573    #[inline(always)]
10574    fn default() -> P2Pfs {
10575        <crate::RegValueT<P2Pfs_SPEC> as RegisterValue<_>>::new(0)
10576    }
10577}
10578pub mod p2pfs {
10579
10580    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10581    pub struct Podr_SPEC;
10582    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10583    impl Podr {
10584        #[doc = "Output low"]
10585        pub const _0: Self = Self::new(0);
10586
10587        #[doc = "Output high"]
10588        pub const _1: Self = Self::new(1);
10589    }
10590    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10591    pub struct Pidr_SPEC;
10592    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10593    impl Pidr {
10594        #[doc = "Low level"]
10595        pub const _0: Self = Self::new(0);
10596
10597        #[doc = "High level"]
10598        pub const _1: Self = Self::new(1);
10599    }
10600    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10601    pub struct Pdr_SPEC;
10602    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10603    impl Pdr {
10604        #[doc = "Input (functions as an input pin)"]
10605        pub const _0: Self = Self::new(0);
10606
10607        #[doc = "Output (functions as an output pin)"]
10608        pub const _1: Self = Self::new(1);
10609    }
10610    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10611    pub struct Pcr_SPEC;
10612    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10613    impl Pcr {
10614        #[doc = "Disable input pull-up"]
10615        pub const _0: Self = Self::new(0);
10616
10617        #[doc = "Enable input pull-up"]
10618        pub const _1: Self = Self::new(1);
10619    }
10620    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10621    pub struct Ncodr_SPEC;
10622    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10623    impl Ncodr {
10624        #[doc = "Output CMOS"]
10625        pub const _0: Self = Self::new(0);
10626
10627        #[doc = "Output NMOS open-drain"]
10628        pub const _1: Self = Self::new(1);
10629    }
10630    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10631    pub struct Eofr_SPEC;
10632    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10633    impl Eofr {
10634        #[doc = "Don\'t care"]
10635        pub const _00: Self = Self::new(0);
10636
10637        #[doc = "Detect rising edge"]
10638        pub const _01: Self = Self::new(1);
10639
10640        #[doc = "Detect falling edge"]
10641        pub const _10: Self = Self::new(2);
10642
10643        #[doc = "Detect both edges"]
10644        pub const _11: Self = Self::new(3);
10645    }
10646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10647    pub struct Isel_SPEC;
10648    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10649    impl Isel {
10650        #[doc = "Do not use as IRQn input pin"]
10651        pub const _0: Self = Self::new(0);
10652
10653        #[doc = "Use as IRQn input pin"]
10654        pub const _1: Self = Self::new(1);
10655    }
10656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10657    pub struct Asel_SPEC;
10658    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10659    impl Asel {
10660        #[doc = "Do not use as analog pin"]
10661        pub const _0: Self = Self::new(0);
10662
10663        #[doc = "Use as analog pin"]
10664        pub const _1: Self = Self::new(1);
10665    }
10666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10667    pub struct Pmr_SPEC;
10668    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
10669    impl Pmr {
10670        #[doc = "Use as general I/O pin"]
10671        pub const _0: Self = Self::new(0);
10672
10673        #[doc = "Use as I/O port for peripheral functions"]
10674        pub const _1: Self = Self::new(1);
10675    }
10676}
10677#[doc(hidden)]
10678#[derive(Copy, Clone, Eq, PartialEq)]
10679pub struct P2PfsHa_SPEC;
10680impl crate::sealed::RegSpec for P2PfsHa_SPEC {
10681    type DataType = u16;
10682}
10683
10684#[doc = "Port 2%s Pin Function Select Register"]
10685pub type P2PfsHa = crate::RegValueT<P2PfsHa_SPEC>;
10686
10687impl P2PfsHa {
10688    #[doc = "Port Output Data"]
10689    #[inline(always)]
10690    pub fn podr(
10691        self,
10692    ) -> crate::common::RegisterField<
10693        0,
10694        0x1,
10695        1,
10696        0,
10697        p2pfs_ha::Podr,
10698        p2pfs_ha::Podr,
10699        P2PfsHa_SPEC,
10700        crate::common::RW,
10701    > {
10702        crate::common::RegisterField::<
10703            0,
10704            0x1,
10705            1,
10706            0,
10707            p2pfs_ha::Podr,
10708            p2pfs_ha::Podr,
10709            P2PfsHa_SPEC,
10710            crate::common::RW,
10711        >::from_register(self, 0)
10712    }
10713
10714    #[doc = "Port State"]
10715    #[inline(always)]
10716    pub fn pidr(
10717        self,
10718    ) -> crate::common::RegisterField<
10719        1,
10720        0x1,
10721        1,
10722        0,
10723        p2pfs_ha::Pidr,
10724        p2pfs_ha::Pidr,
10725        P2PfsHa_SPEC,
10726        crate::common::R,
10727    > {
10728        crate::common::RegisterField::<
10729            1,
10730            0x1,
10731            1,
10732            0,
10733            p2pfs_ha::Pidr,
10734            p2pfs_ha::Pidr,
10735            P2PfsHa_SPEC,
10736            crate::common::R,
10737        >::from_register(self, 0)
10738    }
10739
10740    #[doc = "Port Direction"]
10741    #[inline(always)]
10742    pub fn pdr(
10743        self,
10744    ) -> crate::common::RegisterField<
10745        2,
10746        0x1,
10747        1,
10748        0,
10749        p2pfs_ha::Pdr,
10750        p2pfs_ha::Pdr,
10751        P2PfsHa_SPEC,
10752        crate::common::RW,
10753    > {
10754        crate::common::RegisterField::<
10755            2,
10756            0x1,
10757            1,
10758            0,
10759            p2pfs_ha::Pdr,
10760            p2pfs_ha::Pdr,
10761            P2PfsHa_SPEC,
10762            crate::common::RW,
10763        >::from_register(self, 0)
10764    }
10765
10766    #[doc = "Pull-up Control"]
10767    #[inline(always)]
10768    pub fn pcr(
10769        self,
10770    ) -> crate::common::RegisterField<
10771        4,
10772        0x1,
10773        1,
10774        0,
10775        p2pfs_ha::Pcr,
10776        p2pfs_ha::Pcr,
10777        P2PfsHa_SPEC,
10778        crate::common::RW,
10779    > {
10780        crate::common::RegisterField::<
10781            4,
10782            0x1,
10783            1,
10784            0,
10785            p2pfs_ha::Pcr,
10786            p2pfs_ha::Pcr,
10787            P2PfsHa_SPEC,
10788            crate::common::RW,
10789        >::from_register(self, 0)
10790    }
10791
10792    #[doc = "N-Channel Open-Drain Control"]
10793    #[inline(always)]
10794    pub fn ncodr(
10795        self,
10796    ) -> crate::common::RegisterField<
10797        6,
10798        0x1,
10799        1,
10800        0,
10801        p2pfs_ha::Ncodr,
10802        p2pfs_ha::Ncodr,
10803        P2PfsHa_SPEC,
10804        crate::common::RW,
10805    > {
10806        crate::common::RegisterField::<
10807            6,
10808            0x1,
10809            1,
10810            0,
10811            p2pfs_ha::Ncodr,
10812            p2pfs_ha::Ncodr,
10813            P2PfsHa_SPEC,
10814            crate::common::RW,
10815        >::from_register(self, 0)
10816    }
10817
10818    #[doc = "Event on Falling/Event on Rising"]
10819    #[inline(always)]
10820    pub fn eofr(
10821        self,
10822    ) -> crate::common::RegisterField<
10823        12,
10824        0x3,
10825        1,
10826        0,
10827        p2pfs_ha::Eofr,
10828        p2pfs_ha::Eofr,
10829        P2PfsHa_SPEC,
10830        crate::common::RW,
10831    > {
10832        crate::common::RegisterField::<
10833            12,
10834            0x3,
10835            1,
10836            0,
10837            p2pfs_ha::Eofr,
10838            p2pfs_ha::Eofr,
10839            P2PfsHa_SPEC,
10840            crate::common::RW,
10841        >::from_register(self, 0)
10842    }
10843
10844    #[doc = "IRQ Input Enable"]
10845    #[inline(always)]
10846    pub fn isel(
10847        self,
10848    ) -> crate::common::RegisterField<
10849        14,
10850        0x1,
10851        1,
10852        0,
10853        p2pfs_ha::Isel,
10854        p2pfs_ha::Isel,
10855        P2PfsHa_SPEC,
10856        crate::common::RW,
10857    > {
10858        crate::common::RegisterField::<
10859            14,
10860            0x1,
10861            1,
10862            0,
10863            p2pfs_ha::Isel,
10864            p2pfs_ha::Isel,
10865            P2PfsHa_SPEC,
10866            crate::common::RW,
10867        >::from_register(self, 0)
10868    }
10869
10870    #[doc = "Analog Input Enable"]
10871    #[inline(always)]
10872    pub fn asel(
10873        self,
10874    ) -> crate::common::RegisterField<
10875        15,
10876        0x1,
10877        1,
10878        0,
10879        p2pfs_ha::Asel,
10880        p2pfs_ha::Asel,
10881        P2PfsHa_SPEC,
10882        crate::common::RW,
10883    > {
10884        crate::common::RegisterField::<
10885            15,
10886            0x1,
10887            1,
10888            0,
10889            p2pfs_ha::Asel,
10890            p2pfs_ha::Asel,
10891            P2PfsHa_SPEC,
10892            crate::common::RW,
10893        >::from_register(self, 0)
10894    }
10895}
10896impl ::core::default::Default for P2PfsHa {
10897    #[inline(always)]
10898    fn default() -> P2PfsHa {
10899        <crate::RegValueT<P2PfsHa_SPEC> as RegisterValue<_>>::new(0)
10900    }
10901}
10902pub mod p2pfs_ha {
10903
10904    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10905    pub struct Podr_SPEC;
10906    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10907    impl Podr {
10908        #[doc = "Output low"]
10909        pub const _0: Self = Self::new(0);
10910
10911        #[doc = "Output high"]
10912        pub const _1: Self = Self::new(1);
10913    }
10914    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10915    pub struct Pidr_SPEC;
10916    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10917    impl Pidr {
10918        #[doc = "Low level"]
10919        pub const _0: Self = Self::new(0);
10920
10921        #[doc = "High level"]
10922        pub const _1: Self = Self::new(1);
10923    }
10924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10925    pub struct Pdr_SPEC;
10926    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10927    impl Pdr {
10928        #[doc = "Input (functions as an input pin)"]
10929        pub const _0: Self = Self::new(0);
10930
10931        #[doc = "Output (functions as an output pin)"]
10932        pub const _1: Self = Self::new(1);
10933    }
10934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10935    pub struct Pcr_SPEC;
10936    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10937    impl Pcr {
10938        #[doc = "Disable input pull-up"]
10939        pub const _0: Self = Self::new(0);
10940
10941        #[doc = "Enable input pull-up"]
10942        pub const _1: Self = Self::new(1);
10943    }
10944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10945    pub struct Ncodr_SPEC;
10946    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10947    impl Ncodr {
10948        #[doc = "Output CMOS"]
10949        pub const _0: Self = Self::new(0);
10950
10951        #[doc = "Output NMOS open-drain"]
10952        pub const _1: Self = Self::new(1);
10953    }
10954    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10955    pub struct Eofr_SPEC;
10956    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10957    impl Eofr {
10958        #[doc = "Don\'t care"]
10959        pub const _00: Self = Self::new(0);
10960
10961        #[doc = "Detect rising edge"]
10962        pub const _01: Self = Self::new(1);
10963
10964        #[doc = "Detect falling edge"]
10965        pub const _10: Self = Self::new(2);
10966
10967        #[doc = "Detect both edges"]
10968        pub const _11: Self = Self::new(3);
10969    }
10970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10971    pub struct Isel_SPEC;
10972    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10973    impl Isel {
10974        #[doc = "Do not use as IRQn input pin"]
10975        pub const _0: Self = Self::new(0);
10976
10977        #[doc = "Use as IRQn input pin"]
10978        pub const _1: Self = Self::new(1);
10979    }
10980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10981    pub struct Asel_SPEC;
10982    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10983    impl Asel {
10984        #[doc = "Do not use as analog pin"]
10985        pub const _0: Self = Self::new(0);
10986
10987        #[doc = "Use as analog pin"]
10988        pub const _1: Self = Self::new(1);
10989    }
10990}
10991#[doc(hidden)]
10992#[derive(Copy, Clone, Eq, PartialEq)]
10993pub struct P2PfsBy_SPEC;
10994impl crate::sealed::RegSpec for P2PfsBy_SPEC {
10995    type DataType = u8;
10996}
10997
10998#[doc = "Port 2%s Pin Function Select Register"]
10999pub type P2PfsBy = crate::RegValueT<P2PfsBy_SPEC>;
11000
11001impl P2PfsBy {
11002    #[doc = "Port Output Data"]
11003    #[inline(always)]
11004    pub fn podr(
11005        self,
11006    ) -> crate::common::RegisterField<
11007        0,
11008        0x1,
11009        1,
11010        0,
11011        p2pfs_by::Podr,
11012        p2pfs_by::Podr,
11013        P2PfsBy_SPEC,
11014        crate::common::RW,
11015    > {
11016        crate::common::RegisterField::<
11017            0,
11018            0x1,
11019            1,
11020            0,
11021            p2pfs_by::Podr,
11022            p2pfs_by::Podr,
11023            P2PfsBy_SPEC,
11024            crate::common::RW,
11025        >::from_register(self, 0)
11026    }
11027
11028    #[doc = "Port State"]
11029    #[inline(always)]
11030    pub fn pidr(
11031        self,
11032    ) -> crate::common::RegisterField<
11033        1,
11034        0x1,
11035        1,
11036        0,
11037        p2pfs_by::Pidr,
11038        p2pfs_by::Pidr,
11039        P2PfsBy_SPEC,
11040        crate::common::R,
11041    > {
11042        crate::common::RegisterField::<
11043            1,
11044            0x1,
11045            1,
11046            0,
11047            p2pfs_by::Pidr,
11048            p2pfs_by::Pidr,
11049            P2PfsBy_SPEC,
11050            crate::common::R,
11051        >::from_register(self, 0)
11052    }
11053
11054    #[doc = "Port Direction"]
11055    #[inline(always)]
11056    pub fn pdr(
11057        self,
11058    ) -> crate::common::RegisterField<
11059        2,
11060        0x1,
11061        1,
11062        0,
11063        p2pfs_by::Pdr,
11064        p2pfs_by::Pdr,
11065        P2PfsBy_SPEC,
11066        crate::common::RW,
11067    > {
11068        crate::common::RegisterField::<
11069            2,
11070            0x1,
11071            1,
11072            0,
11073            p2pfs_by::Pdr,
11074            p2pfs_by::Pdr,
11075            P2PfsBy_SPEC,
11076            crate::common::RW,
11077        >::from_register(self, 0)
11078    }
11079
11080    #[doc = "Pull-up Control"]
11081    #[inline(always)]
11082    pub fn pcr(
11083        self,
11084    ) -> crate::common::RegisterField<
11085        4,
11086        0x1,
11087        1,
11088        0,
11089        p2pfs_by::Pcr,
11090        p2pfs_by::Pcr,
11091        P2PfsBy_SPEC,
11092        crate::common::RW,
11093    > {
11094        crate::common::RegisterField::<
11095            4,
11096            0x1,
11097            1,
11098            0,
11099            p2pfs_by::Pcr,
11100            p2pfs_by::Pcr,
11101            P2PfsBy_SPEC,
11102            crate::common::RW,
11103        >::from_register(self, 0)
11104    }
11105
11106    #[doc = "N-Channel Open-Drain Control"]
11107    #[inline(always)]
11108    pub fn ncodr(
11109        self,
11110    ) -> crate::common::RegisterField<
11111        6,
11112        0x1,
11113        1,
11114        0,
11115        p2pfs_by::Ncodr,
11116        p2pfs_by::Ncodr,
11117        P2PfsBy_SPEC,
11118        crate::common::RW,
11119    > {
11120        crate::common::RegisterField::<
11121            6,
11122            0x1,
11123            1,
11124            0,
11125            p2pfs_by::Ncodr,
11126            p2pfs_by::Ncodr,
11127            P2PfsBy_SPEC,
11128            crate::common::RW,
11129        >::from_register(self, 0)
11130    }
11131}
11132impl ::core::default::Default for P2PfsBy {
11133    #[inline(always)]
11134    fn default() -> P2PfsBy {
11135        <crate::RegValueT<P2PfsBy_SPEC> as RegisterValue<_>>::new(0)
11136    }
11137}
11138pub mod p2pfs_by {
11139
11140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11141    pub struct Podr_SPEC;
11142    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11143    impl Podr {
11144        #[doc = "Output low"]
11145        pub const _0: Self = Self::new(0);
11146
11147        #[doc = "Output high"]
11148        pub const _1: Self = Self::new(1);
11149    }
11150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11151    pub struct Pidr_SPEC;
11152    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11153    impl Pidr {
11154        #[doc = "Low level"]
11155        pub const _0: Self = Self::new(0);
11156
11157        #[doc = "High level"]
11158        pub const _1: Self = Self::new(1);
11159    }
11160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11161    pub struct Pdr_SPEC;
11162    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11163    impl Pdr {
11164        #[doc = "Input (functions as an input pin)"]
11165        pub const _0: Self = Self::new(0);
11166
11167        #[doc = "Output (functions as an output pin)"]
11168        pub const _1: Self = Self::new(1);
11169    }
11170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11171    pub struct Pcr_SPEC;
11172    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11173    impl Pcr {
11174        #[doc = "Disable input pull-up"]
11175        pub const _0: Self = Self::new(0);
11176
11177        #[doc = "Enable input pull-up"]
11178        pub const _1: Self = Self::new(1);
11179    }
11180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11181    pub struct Ncodr_SPEC;
11182    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11183    impl Ncodr {
11184        #[doc = "Output CMOS"]
11185        pub const _0: Self = Self::new(0);
11186
11187        #[doc = "Output NMOS open-drain"]
11188        pub const _1: Self = Self::new(1);
11189    }
11190}
11191#[doc(hidden)]
11192#[derive(Copy, Clone, Eq, PartialEq)]
11193pub struct P300Pfs_SPEC;
11194impl crate::sealed::RegSpec for P300Pfs_SPEC {
11195    type DataType = u32;
11196}
11197
11198#[doc = "Port 300 Pin Function Select Register"]
11199pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
11200
11201impl P300Pfs {
11202    #[doc = "Port Output Data"]
11203    #[inline(always)]
11204    pub fn podr(
11205        self,
11206    ) -> crate::common::RegisterField<
11207        0,
11208        0x1,
11209        1,
11210        0,
11211        p300pfs::Podr,
11212        p300pfs::Podr,
11213        P300Pfs_SPEC,
11214        crate::common::RW,
11215    > {
11216        crate::common::RegisterField::<
11217            0,
11218            0x1,
11219            1,
11220            0,
11221            p300pfs::Podr,
11222            p300pfs::Podr,
11223            P300Pfs_SPEC,
11224            crate::common::RW,
11225        >::from_register(self, 0)
11226    }
11227
11228    #[doc = "Port State"]
11229    #[inline(always)]
11230    pub fn pidr(
11231        self,
11232    ) -> crate::common::RegisterField<
11233        1,
11234        0x1,
11235        1,
11236        0,
11237        p300pfs::Pidr,
11238        p300pfs::Pidr,
11239        P300Pfs_SPEC,
11240        crate::common::R,
11241    > {
11242        crate::common::RegisterField::<
11243            1,
11244            0x1,
11245            1,
11246            0,
11247            p300pfs::Pidr,
11248            p300pfs::Pidr,
11249            P300Pfs_SPEC,
11250            crate::common::R,
11251        >::from_register(self, 0)
11252    }
11253
11254    #[doc = "Port Direction"]
11255    #[inline(always)]
11256    pub fn pdr(
11257        self,
11258    ) -> crate::common::RegisterField<
11259        2,
11260        0x1,
11261        1,
11262        0,
11263        p300pfs::Pdr,
11264        p300pfs::Pdr,
11265        P300Pfs_SPEC,
11266        crate::common::RW,
11267    > {
11268        crate::common::RegisterField::<
11269            2,
11270            0x1,
11271            1,
11272            0,
11273            p300pfs::Pdr,
11274            p300pfs::Pdr,
11275            P300Pfs_SPEC,
11276            crate::common::RW,
11277        >::from_register(self, 0)
11278    }
11279
11280    #[doc = "Pull-up Control"]
11281    #[inline(always)]
11282    pub fn pcr(
11283        self,
11284    ) -> crate::common::RegisterField<
11285        4,
11286        0x1,
11287        1,
11288        0,
11289        p300pfs::Pcr,
11290        p300pfs::Pcr,
11291        P300Pfs_SPEC,
11292        crate::common::RW,
11293    > {
11294        crate::common::RegisterField::<
11295            4,
11296            0x1,
11297            1,
11298            0,
11299            p300pfs::Pcr,
11300            p300pfs::Pcr,
11301            P300Pfs_SPEC,
11302            crate::common::RW,
11303        >::from_register(self, 0)
11304    }
11305
11306    #[doc = "N-Channel Open-Drain Control"]
11307    #[inline(always)]
11308    pub fn ncodr(
11309        self,
11310    ) -> crate::common::RegisterField<
11311        6,
11312        0x1,
11313        1,
11314        0,
11315        p300pfs::Ncodr,
11316        p300pfs::Ncodr,
11317        P300Pfs_SPEC,
11318        crate::common::RW,
11319    > {
11320        crate::common::RegisterField::<
11321            6,
11322            0x1,
11323            1,
11324            0,
11325            p300pfs::Ncodr,
11326            p300pfs::Ncodr,
11327            P300Pfs_SPEC,
11328            crate::common::RW,
11329        >::from_register(self, 0)
11330    }
11331
11332    #[doc = "IRQ Input Enable"]
11333    #[inline(always)]
11334    pub fn isel(
11335        self,
11336    ) -> crate::common::RegisterField<
11337        14,
11338        0x1,
11339        1,
11340        0,
11341        p300pfs::Isel,
11342        p300pfs::Isel,
11343        P300Pfs_SPEC,
11344        crate::common::RW,
11345    > {
11346        crate::common::RegisterField::<
11347            14,
11348            0x1,
11349            1,
11350            0,
11351            p300pfs::Isel,
11352            p300pfs::Isel,
11353            P300Pfs_SPEC,
11354            crate::common::RW,
11355        >::from_register(self, 0)
11356    }
11357
11358    #[doc = "Analog Input Enable"]
11359    #[inline(always)]
11360    pub fn asel(
11361        self,
11362    ) -> crate::common::RegisterField<
11363        15,
11364        0x1,
11365        1,
11366        0,
11367        p300pfs::Asel,
11368        p300pfs::Asel,
11369        P300Pfs_SPEC,
11370        crate::common::RW,
11371    > {
11372        crate::common::RegisterField::<
11373            15,
11374            0x1,
11375            1,
11376            0,
11377            p300pfs::Asel,
11378            p300pfs::Asel,
11379            P300Pfs_SPEC,
11380            crate::common::RW,
11381        >::from_register(self, 0)
11382    }
11383
11384    #[doc = "Port Mode Control"]
11385    #[inline(always)]
11386    pub fn pmr(
11387        self,
11388    ) -> crate::common::RegisterField<
11389        16,
11390        0x1,
11391        1,
11392        0,
11393        p300pfs::Pmr,
11394        p300pfs::Pmr,
11395        P300Pfs_SPEC,
11396        crate::common::RW,
11397    > {
11398        crate::common::RegisterField::<
11399            16,
11400            0x1,
11401            1,
11402            0,
11403            p300pfs::Pmr,
11404            p300pfs::Pmr,
11405            P300Pfs_SPEC,
11406            crate::common::RW,
11407        >::from_register(self, 0)
11408    }
11409
11410    #[doc = "Peripheral Select"]
11411    #[inline(always)]
11412    pub fn psel(
11413        self,
11414    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
11415        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
11416    }
11417}
11418impl ::core::default::Default for P300Pfs {
11419    #[inline(always)]
11420    fn default() -> P300Pfs {
11421        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65536)
11422    }
11423}
11424pub mod p300pfs {
11425
11426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11427    pub struct Podr_SPEC;
11428    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11429    impl Podr {
11430        #[doc = "Output low"]
11431        pub const _0: Self = Self::new(0);
11432
11433        #[doc = "Output high"]
11434        pub const _1: Self = Self::new(1);
11435    }
11436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11437    pub struct Pidr_SPEC;
11438    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11439    impl Pidr {
11440        #[doc = "Low level"]
11441        pub const _0: Self = Self::new(0);
11442
11443        #[doc = "High level"]
11444        pub const _1: Self = Self::new(1);
11445    }
11446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11447    pub struct Pdr_SPEC;
11448    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11449    impl Pdr {
11450        #[doc = "Input (functions as an input pin)"]
11451        pub const _0: Self = Self::new(0);
11452
11453        #[doc = "Output (functions as an output pin)"]
11454        pub const _1: Self = Self::new(1);
11455    }
11456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11457    pub struct Pcr_SPEC;
11458    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11459    impl Pcr {
11460        #[doc = "Disable input pull-up"]
11461        pub const _0: Self = Self::new(0);
11462
11463        #[doc = "Enable input pull-up"]
11464        pub const _1: Self = Self::new(1);
11465    }
11466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11467    pub struct Ncodr_SPEC;
11468    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11469    impl Ncodr {
11470        #[doc = "Output CMOS"]
11471        pub const _0: Self = Self::new(0);
11472
11473        #[doc = "Output NMOS open-drain"]
11474        pub const _1: Self = Self::new(1);
11475    }
11476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11477    pub struct Isel_SPEC;
11478    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11479    impl Isel {
11480        #[doc = "Do not use as IRQn input pin"]
11481        pub const _0: Self = Self::new(0);
11482
11483        #[doc = "Use as IRQn input pin"]
11484        pub const _1: Self = Self::new(1);
11485    }
11486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11487    pub struct Asel_SPEC;
11488    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11489    impl Asel {
11490        #[doc = "Do not use as analog pin"]
11491        pub const _0: Self = Self::new(0);
11492
11493        #[doc = "Use as analog pin"]
11494        pub const _1: Self = Self::new(1);
11495    }
11496    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11497    pub struct Pmr_SPEC;
11498    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11499    impl Pmr {
11500        #[doc = "Use as general I/O pin"]
11501        pub const _0: Self = Self::new(0);
11502
11503        #[doc = "Use as I/O port for peripheral functions"]
11504        pub const _1: Self = Self::new(1);
11505    }
11506}
11507#[doc(hidden)]
11508#[derive(Copy, Clone, Eq, PartialEq)]
11509pub struct P300PfsHa_SPEC;
11510impl crate::sealed::RegSpec for P300PfsHa_SPEC {
11511    type DataType = u16;
11512}
11513
11514#[doc = "Port 300 Pin Function Select Register"]
11515pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
11516
11517impl P300PfsHa {
11518    #[doc = "Port Output Data"]
11519    #[inline(always)]
11520    pub fn podr(
11521        self,
11522    ) -> crate::common::RegisterField<
11523        0,
11524        0x1,
11525        1,
11526        0,
11527        p300pfs_ha::Podr,
11528        p300pfs_ha::Podr,
11529        P300PfsHa_SPEC,
11530        crate::common::RW,
11531    > {
11532        crate::common::RegisterField::<
11533            0,
11534            0x1,
11535            1,
11536            0,
11537            p300pfs_ha::Podr,
11538            p300pfs_ha::Podr,
11539            P300PfsHa_SPEC,
11540            crate::common::RW,
11541        >::from_register(self, 0)
11542    }
11543
11544    #[doc = "Port State"]
11545    #[inline(always)]
11546    pub fn pidr(
11547        self,
11548    ) -> crate::common::RegisterField<
11549        1,
11550        0x1,
11551        1,
11552        0,
11553        p300pfs_ha::Pidr,
11554        p300pfs_ha::Pidr,
11555        P300PfsHa_SPEC,
11556        crate::common::R,
11557    > {
11558        crate::common::RegisterField::<
11559            1,
11560            0x1,
11561            1,
11562            0,
11563            p300pfs_ha::Pidr,
11564            p300pfs_ha::Pidr,
11565            P300PfsHa_SPEC,
11566            crate::common::R,
11567        >::from_register(self, 0)
11568    }
11569
11570    #[doc = "Port Direction"]
11571    #[inline(always)]
11572    pub fn pdr(
11573        self,
11574    ) -> crate::common::RegisterField<
11575        2,
11576        0x1,
11577        1,
11578        0,
11579        p300pfs_ha::Pdr,
11580        p300pfs_ha::Pdr,
11581        P300PfsHa_SPEC,
11582        crate::common::RW,
11583    > {
11584        crate::common::RegisterField::<
11585            2,
11586            0x1,
11587            1,
11588            0,
11589            p300pfs_ha::Pdr,
11590            p300pfs_ha::Pdr,
11591            P300PfsHa_SPEC,
11592            crate::common::RW,
11593        >::from_register(self, 0)
11594    }
11595
11596    #[doc = "Pull-up Control"]
11597    #[inline(always)]
11598    pub fn pcr(
11599        self,
11600    ) -> crate::common::RegisterField<
11601        4,
11602        0x1,
11603        1,
11604        0,
11605        p300pfs_ha::Pcr,
11606        p300pfs_ha::Pcr,
11607        P300PfsHa_SPEC,
11608        crate::common::RW,
11609    > {
11610        crate::common::RegisterField::<
11611            4,
11612            0x1,
11613            1,
11614            0,
11615            p300pfs_ha::Pcr,
11616            p300pfs_ha::Pcr,
11617            P300PfsHa_SPEC,
11618            crate::common::RW,
11619        >::from_register(self, 0)
11620    }
11621
11622    #[doc = "N-Channel Open-Drain Control"]
11623    #[inline(always)]
11624    pub fn ncodr(
11625        self,
11626    ) -> crate::common::RegisterField<
11627        6,
11628        0x1,
11629        1,
11630        0,
11631        p300pfs_ha::Ncodr,
11632        p300pfs_ha::Ncodr,
11633        P300PfsHa_SPEC,
11634        crate::common::RW,
11635    > {
11636        crate::common::RegisterField::<
11637            6,
11638            0x1,
11639            1,
11640            0,
11641            p300pfs_ha::Ncodr,
11642            p300pfs_ha::Ncodr,
11643            P300PfsHa_SPEC,
11644            crate::common::RW,
11645        >::from_register(self, 0)
11646    }
11647
11648    #[doc = "IRQ Input Enable"]
11649    #[inline(always)]
11650    pub fn isel(
11651        self,
11652    ) -> crate::common::RegisterField<
11653        14,
11654        0x1,
11655        1,
11656        0,
11657        p300pfs_ha::Isel,
11658        p300pfs_ha::Isel,
11659        P300PfsHa_SPEC,
11660        crate::common::RW,
11661    > {
11662        crate::common::RegisterField::<
11663            14,
11664            0x1,
11665            1,
11666            0,
11667            p300pfs_ha::Isel,
11668            p300pfs_ha::Isel,
11669            P300PfsHa_SPEC,
11670            crate::common::RW,
11671        >::from_register(self, 0)
11672    }
11673
11674    #[doc = "Analog Input Enable"]
11675    #[inline(always)]
11676    pub fn asel(
11677        self,
11678    ) -> crate::common::RegisterField<
11679        15,
11680        0x1,
11681        1,
11682        0,
11683        p300pfs_ha::Asel,
11684        p300pfs_ha::Asel,
11685        P300PfsHa_SPEC,
11686        crate::common::RW,
11687    > {
11688        crate::common::RegisterField::<
11689            15,
11690            0x1,
11691            1,
11692            0,
11693            p300pfs_ha::Asel,
11694            p300pfs_ha::Asel,
11695            P300PfsHa_SPEC,
11696            crate::common::RW,
11697        >::from_register(self, 0)
11698    }
11699}
11700impl ::core::default::Default for P300PfsHa {
11701    #[inline(always)]
11702    fn default() -> P300PfsHa {
11703        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(0)
11704    }
11705}
11706pub mod p300pfs_ha {
11707
11708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11709    pub struct Podr_SPEC;
11710    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11711    impl Podr {
11712        #[doc = "Output low"]
11713        pub const _0: Self = Self::new(0);
11714
11715        #[doc = "Output high"]
11716        pub const _1: Self = Self::new(1);
11717    }
11718    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11719    pub struct Pidr_SPEC;
11720    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11721    impl Pidr {
11722        #[doc = "Low level"]
11723        pub const _0: Self = Self::new(0);
11724
11725        #[doc = "High level"]
11726        pub const _1: Self = Self::new(1);
11727    }
11728    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11729    pub struct Pdr_SPEC;
11730    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11731    impl Pdr {
11732        #[doc = "Input (functions as an input pin)"]
11733        pub const _0: Self = Self::new(0);
11734
11735        #[doc = "Output (functions as an output pin)"]
11736        pub const _1: Self = Self::new(1);
11737    }
11738    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11739    pub struct Pcr_SPEC;
11740    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11741    impl Pcr {
11742        #[doc = "Disable input pull-up"]
11743        pub const _0: Self = Self::new(0);
11744
11745        #[doc = "Enable input pull-up"]
11746        pub const _1: Self = Self::new(1);
11747    }
11748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11749    pub struct Ncodr_SPEC;
11750    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11751    impl Ncodr {
11752        #[doc = "Output CMOS"]
11753        pub const _0: Self = Self::new(0);
11754
11755        #[doc = "Output NMOS open-drain"]
11756        pub const _1: Self = Self::new(1);
11757    }
11758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11759    pub struct Isel_SPEC;
11760    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11761    impl Isel {
11762        #[doc = "Do not use as IRQn input pin"]
11763        pub const _0: Self = Self::new(0);
11764
11765        #[doc = "Use as IRQn input pin"]
11766        pub const _1: Self = Self::new(1);
11767    }
11768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11769    pub struct Asel_SPEC;
11770    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11771    impl Asel {
11772        #[doc = "Do not use as analog pin"]
11773        pub const _0: Self = Self::new(0);
11774
11775        #[doc = "Use as analog pin"]
11776        pub const _1: Self = Self::new(1);
11777    }
11778}
11779#[doc(hidden)]
11780#[derive(Copy, Clone, Eq, PartialEq)]
11781pub struct P300PfsBy_SPEC;
11782impl crate::sealed::RegSpec for P300PfsBy_SPEC {
11783    type DataType = u8;
11784}
11785
11786#[doc = "Port 300 Pin Function Select Register"]
11787pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
11788
11789impl P300PfsBy {
11790    #[doc = "Port Output Data"]
11791    #[inline(always)]
11792    pub fn podr(
11793        self,
11794    ) -> crate::common::RegisterField<
11795        0,
11796        0x1,
11797        1,
11798        0,
11799        p300pfs_by::Podr,
11800        p300pfs_by::Podr,
11801        P300PfsBy_SPEC,
11802        crate::common::RW,
11803    > {
11804        crate::common::RegisterField::<
11805            0,
11806            0x1,
11807            1,
11808            0,
11809            p300pfs_by::Podr,
11810            p300pfs_by::Podr,
11811            P300PfsBy_SPEC,
11812            crate::common::RW,
11813        >::from_register(self, 0)
11814    }
11815
11816    #[doc = "Port State"]
11817    #[inline(always)]
11818    pub fn pidr(
11819        self,
11820    ) -> crate::common::RegisterField<
11821        1,
11822        0x1,
11823        1,
11824        0,
11825        p300pfs_by::Pidr,
11826        p300pfs_by::Pidr,
11827        P300PfsBy_SPEC,
11828        crate::common::R,
11829    > {
11830        crate::common::RegisterField::<
11831            1,
11832            0x1,
11833            1,
11834            0,
11835            p300pfs_by::Pidr,
11836            p300pfs_by::Pidr,
11837            P300PfsBy_SPEC,
11838            crate::common::R,
11839        >::from_register(self, 0)
11840    }
11841
11842    #[doc = "Port Direction"]
11843    #[inline(always)]
11844    pub fn pdr(
11845        self,
11846    ) -> crate::common::RegisterField<
11847        2,
11848        0x1,
11849        1,
11850        0,
11851        p300pfs_by::Pdr,
11852        p300pfs_by::Pdr,
11853        P300PfsBy_SPEC,
11854        crate::common::RW,
11855    > {
11856        crate::common::RegisterField::<
11857            2,
11858            0x1,
11859            1,
11860            0,
11861            p300pfs_by::Pdr,
11862            p300pfs_by::Pdr,
11863            P300PfsBy_SPEC,
11864            crate::common::RW,
11865        >::from_register(self, 0)
11866    }
11867
11868    #[doc = "Pull-up Control"]
11869    #[inline(always)]
11870    pub fn pcr(
11871        self,
11872    ) -> crate::common::RegisterField<
11873        4,
11874        0x1,
11875        1,
11876        0,
11877        p300pfs_by::Pcr,
11878        p300pfs_by::Pcr,
11879        P300PfsBy_SPEC,
11880        crate::common::RW,
11881    > {
11882        crate::common::RegisterField::<
11883            4,
11884            0x1,
11885            1,
11886            0,
11887            p300pfs_by::Pcr,
11888            p300pfs_by::Pcr,
11889            P300PfsBy_SPEC,
11890            crate::common::RW,
11891        >::from_register(self, 0)
11892    }
11893
11894    #[doc = "N-Channel Open-Drain Control"]
11895    #[inline(always)]
11896    pub fn ncodr(
11897        self,
11898    ) -> crate::common::RegisterField<
11899        6,
11900        0x1,
11901        1,
11902        0,
11903        p300pfs_by::Ncodr,
11904        p300pfs_by::Ncodr,
11905        P300PfsBy_SPEC,
11906        crate::common::RW,
11907    > {
11908        crate::common::RegisterField::<
11909            6,
11910            0x1,
11911            1,
11912            0,
11913            p300pfs_by::Ncodr,
11914            p300pfs_by::Ncodr,
11915            P300PfsBy_SPEC,
11916            crate::common::RW,
11917        >::from_register(self, 0)
11918    }
11919}
11920impl ::core::default::Default for P300PfsBy {
11921    #[inline(always)]
11922    fn default() -> P300PfsBy {
11923        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(0)
11924    }
11925}
11926pub mod p300pfs_by {
11927
11928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11929    pub struct Podr_SPEC;
11930    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11931    impl Podr {
11932        #[doc = "Output low"]
11933        pub const _0: Self = Self::new(0);
11934
11935        #[doc = "Output high"]
11936        pub const _1: Self = Self::new(1);
11937    }
11938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11939    pub struct Pidr_SPEC;
11940    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11941    impl Pidr {
11942        #[doc = "Low level"]
11943        pub const _0: Self = Self::new(0);
11944
11945        #[doc = "High level"]
11946        pub const _1: Self = Self::new(1);
11947    }
11948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11949    pub struct Pdr_SPEC;
11950    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11951    impl Pdr {
11952        #[doc = "Input (functions as an input pin)"]
11953        pub const _0: Self = Self::new(0);
11954
11955        #[doc = "Output (functions as an output pin)"]
11956        pub const _1: Self = Self::new(1);
11957    }
11958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11959    pub struct Pcr_SPEC;
11960    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11961    impl Pcr {
11962        #[doc = "Disable input pull-up"]
11963        pub const _0: Self = Self::new(0);
11964
11965        #[doc = "Enable input pull-up"]
11966        pub const _1: Self = Self::new(1);
11967    }
11968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11969    pub struct Ncodr_SPEC;
11970    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11971    impl Ncodr {
11972        #[doc = "Output CMOS"]
11973        pub const _0: Self = Self::new(0);
11974
11975        #[doc = "Output NMOS open-drain"]
11976        pub const _1: Self = Self::new(1);
11977    }
11978}
11979#[doc(hidden)]
11980#[derive(Copy, Clone, Eq, PartialEq)]
11981pub struct P30Pfs_SPEC;
11982impl crate::sealed::RegSpec for P30Pfs_SPEC {
11983    type DataType = u32;
11984}
11985
11986#[doc = "Port 30%s Pin Function Select Register"]
11987pub type P30Pfs = crate::RegValueT<P30Pfs_SPEC>;
11988
11989impl P30Pfs {
11990    #[doc = "Port Output Data"]
11991    #[inline(always)]
11992    pub fn podr(
11993        self,
11994    ) -> crate::common::RegisterField<
11995        0,
11996        0x1,
11997        1,
11998        0,
11999        p30pfs::Podr,
12000        p30pfs::Podr,
12001        P30Pfs_SPEC,
12002        crate::common::RW,
12003    > {
12004        crate::common::RegisterField::<
12005            0,
12006            0x1,
12007            1,
12008            0,
12009            p30pfs::Podr,
12010            p30pfs::Podr,
12011            P30Pfs_SPEC,
12012            crate::common::RW,
12013        >::from_register(self, 0)
12014    }
12015
12016    #[doc = "Port State"]
12017    #[inline(always)]
12018    pub fn pidr(
12019        self,
12020    ) -> crate::common::RegisterField<
12021        1,
12022        0x1,
12023        1,
12024        0,
12025        p30pfs::Pidr,
12026        p30pfs::Pidr,
12027        P30Pfs_SPEC,
12028        crate::common::R,
12029    > {
12030        crate::common::RegisterField::<
12031            1,
12032            0x1,
12033            1,
12034            0,
12035            p30pfs::Pidr,
12036            p30pfs::Pidr,
12037            P30Pfs_SPEC,
12038            crate::common::R,
12039        >::from_register(self, 0)
12040    }
12041
12042    #[doc = "Port Direction"]
12043    #[inline(always)]
12044    pub fn pdr(
12045        self,
12046    ) -> crate::common::RegisterField<
12047        2,
12048        0x1,
12049        1,
12050        0,
12051        p30pfs::Pdr,
12052        p30pfs::Pdr,
12053        P30Pfs_SPEC,
12054        crate::common::RW,
12055    > {
12056        crate::common::RegisterField::<
12057            2,
12058            0x1,
12059            1,
12060            0,
12061            p30pfs::Pdr,
12062            p30pfs::Pdr,
12063            P30Pfs_SPEC,
12064            crate::common::RW,
12065        >::from_register(self, 0)
12066    }
12067
12068    #[doc = "Pull-up Control"]
12069    #[inline(always)]
12070    pub fn pcr(
12071        self,
12072    ) -> crate::common::RegisterField<
12073        4,
12074        0x1,
12075        1,
12076        0,
12077        p30pfs::Pcr,
12078        p30pfs::Pcr,
12079        P30Pfs_SPEC,
12080        crate::common::RW,
12081    > {
12082        crate::common::RegisterField::<
12083            4,
12084            0x1,
12085            1,
12086            0,
12087            p30pfs::Pcr,
12088            p30pfs::Pcr,
12089            P30Pfs_SPEC,
12090            crate::common::RW,
12091        >::from_register(self, 0)
12092    }
12093
12094    #[doc = "N-Channel Open-Drain Control"]
12095    #[inline(always)]
12096    pub fn ncodr(
12097        self,
12098    ) -> crate::common::RegisterField<
12099        6,
12100        0x1,
12101        1,
12102        0,
12103        p30pfs::Ncodr,
12104        p30pfs::Ncodr,
12105        P30Pfs_SPEC,
12106        crate::common::RW,
12107    > {
12108        crate::common::RegisterField::<
12109            6,
12110            0x1,
12111            1,
12112            0,
12113            p30pfs::Ncodr,
12114            p30pfs::Ncodr,
12115            P30Pfs_SPEC,
12116            crate::common::RW,
12117        >::from_register(self, 0)
12118    }
12119
12120    #[doc = "IRQ Input Enable"]
12121    #[inline(always)]
12122    pub fn isel(
12123        self,
12124    ) -> crate::common::RegisterField<
12125        14,
12126        0x1,
12127        1,
12128        0,
12129        p30pfs::Isel,
12130        p30pfs::Isel,
12131        P30Pfs_SPEC,
12132        crate::common::RW,
12133    > {
12134        crate::common::RegisterField::<
12135            14,
12136            0x1,
12137            1,
12138            0,
12139            p30pfs::Isel,
12140            p30pfs::Isel,
12141            P30Pfs_SPEC,
12142            crate::common::RW,
12143        >::from_register(self, 0)
12144    }
12145
12146    #[doc = "Analog Input Enable"]
12147    #[inline(always)]
12148    pub fn asel(
12149        self,
12150    ) -> crate::common::RegisterField<
12151        15,
12152        0x1,
12153        1,
12154        0,
12155        p30pfs::Asel,
12156        p30pfs::Asel,
12157        P30Pfs_SPEC,
12158        crate::common::RW,
12159    > {
12160        crate::common::RegisterField::<
12161            15,
12162            0x1,
12163            1,
12164            0,
12165            p30pfs::Asel,
12166            p30pfs::Asel,
12167            P30Pfs_SPEC,
12168            crate::common::RW,
12169        >::from_register(self, 0)
12170    }
12171
12172    #[doc = "Port Mode Control"]
12173    #[inline(always)]
12174    pub fn pmr(
12175        self,
12176    ) -> crate::common::RegisterField<
12177        16,
12178        0x1,
12179        1,
12180        0,
12181        p30pfs::Pmr,
12182        p30pfs::Pmr,
12183        P30Pfs_SPEC,
12184        crate::common::RW,
12185    > {
12186        crate::common::RegisterField::<
12187            16,
12188            0x1,
12189            1,
12190            0,
12191            p30pfs::Pmr,
12192            p30pfs::Pmr,
12193            P30Pfs_SPEC,
12194            crate::common::RW,
12195        >::from_register(self, 0)
12196    }
12197
12198    #[doc = "Peripheral Select"]
12199    #[inline(always)]
12200    pub fn psel(
12201        self,
12202    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P30Pfs_SPEC, crate::common::RW> {
12203        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P30Pfs_SPEC,crate::common::RW>::from_register(self,0)
12204    }
12205}
12206impl ::core::default::Default for P30Pfs {
12207    #[inline(always)]
12208    fn default() -> P30Pfs {
12209        <crate::RegValueT<P30Pfs_SPEC> as RegisterValue<_>>::new(0)
12210    }
12211}
12212pub mod p30pfs {
12213
12214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12215    pub struct Podr_SPEC;
12216    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12217    impl Podr {
12218        #[doc = "Output low"]
12219        pub const _0: Self = Self::new(0);
12220
12221        #[doc = "Output high"]
12222        pub const _1: Self = Self::new(1);
12223    }
12224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12225    pub struct Pidr_SPEC;
12226    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12227    impl Pidr {
12228        #[doc = "Low level"]
12229        pub const _0: Self = Self::new(0);
12230
12231        #[doc = "High level"]
12232        pub const _1: Self = Self::new(1);
12233    }
12234    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12235    pub struct Pdr_SPEC;
12236    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12237    impl Pdr {
12238        #[doc = "Input (functions as an input pin)"]
12239        pub const _0: Self = Self::new(0);
12240
12241        #[doc = "Output (functions as an output pin)"]
12242        pub const _1: Self = Self::new(1);
12243    }
12244    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12245    pub struct Pcr_SPEC;
12246    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12247    impl Pcr {
12248        #[doc = "Disable input pull-up"]
12249        pub const _0: Self = Self::new(0);
12250
12251        #[doc = "Enable input pull-up"]
12252        pub const _1: Self = Self::new(1);
12253    }
12254    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12255    pub struct Ncodr_SPEC;
12256    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12257    impl Ncodr {
12258        #[doc = "Output CMOS"]
12259        pub const _0: Self = Self::new(0);
12260
12261        #[doc = "Output NMOS open-drain"]
12262        pub const _1: Self = Self::new(1);
12263    }
12264    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12265    pub struct Isel_SPEC;
12266    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12267    impl Isel {
12268        #[doc = "Do not use as IRQn input pin"]
12269        pub const _0: Self = Self::new(0);
12270
12271        #[doc = "Use as IRQn input pin"]
12272        pub const _1: Self = Self::new(1);
12273    }
12274    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12275    pub struct Asel_SPEC;
12276    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12277    impl Asel {
12278        #[doc = "Do not use as analog pin"]
12279        pub const _0: Self = Self::new(0);
12280
12281        #[doc = "Use as analog pin"]
12282        pub const _1: Self = Self::new(1);
12283    }
12284    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12285    pub struct Pmr_SPEC;
12286    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
12287    impl Pmr {
12288        #[doc = "Use as general I/O pin"]
12289        pub const _0: Self = Self::new(0);
12290
12291        #[doc = "Use as I/O port for peripheral functions"]
12292        pub const _1: Self = Self::new(1);
12293    }
12294}
12295#[doc(hidden)]
12296#[derive(Copy, Clone, Eq, PartialEq)]
12297pub struct P30PfsHa_SPEC;
12298impl crate::sealed::RegSpec for P30PfsHa_SPEC {
12299    type DataType = u16;
12300}
12301
12302#[doc = "Port 30%s Pin Function Select Register"]
12303pub type P30PfsHa = crate::RegValueT<P30PfsHa_SPEC>;
12304
12305impl P30PfsHa {
12306    #[doc = "Port Output Data"]
12307    #[inline(always)]
12308    pub fn podr(
12309        self,
12310    ) -> crate::common::RegisterField<
12311        0,
12312        0x1,
12313        1,
12314        0,
12315        p30pfs_ha::Podr,
12316        p30pfs_ha::Podr,
12317        P30PfsHa_SPEC,
12318        crate::common::RW,
12319    > {
12320        crate::common::RegisterField::<
12321            0,
12322            0x1,
12323            1,
12324            0,
12325            p30pfs_ha::Podr,
12326            p30pfs_ha::Podr,
12327            P30PfsHa_SPEC,
12328            crate::common::RW,
12329        >::from_register(self, 0)
12330    }
12331
12332    #[doc = "Port State"]
12333    #[inline(always)]
12334    pub fn pidr(
12335        self,
12336    ) -> crate::common::RegisterField<
12337        1,
12338        0x1,
12339        1,
12340        0,
12341        p30pfs_ha::Pidr,
12342        p30pfs_ha::Pidr,
12343        P30PfsHa_SPEC,
12344        crate::common::R,
12345    > {
12346        crate::common::RegisterField::<
12347            1,
12348            0x1,
12349            1,
12350            0,
12351            p30pfs_ha::Pidr,
12352            p30pfs_ha::Pidr,
12353            P30PfsHa_SPEC,
12354            crate::common::R,
12355        >::from_register(self, 0)
12356    }
12357
12358    #[doc = "Port Direction"]
12359    #[inline(always)]
12360    pub fn pdr(
12361        self,
12362    ) -> crate::common::RegisterField<
12363        2,
12364        0x1,
12365        1,
12366        0,
12367        p30pfs_ha::Pdr,
12368        p30pfs_ha::Pdr,
12369        P30PfsHa_SPEC,
12370        crate::common::RW,
12371    > {
12372        crate::common::RegisterField::<
12373            2,
12374            0x1,
12375            1,
12376            0,
12377            p30pfs_ha::Pdr,
12378            p30pfs_ha::Pdr,
12379            P30PfsHa_SPEC,
12380            crate::common::RW,
12381        >::from_register(self, 0)
12382    }
12383
12384    #[doc = "Pull-up Control"]
12385    #[inline(always)]
12386    pub fn pcr(
12387        self,
12388    ) -> crate::common::RegisterField<
12389        4,
12390        0x1,
12391        1,
12392        0,
12393        p30pfs_ha::Pcr,
12394        p30pfs_ha::Pcr,
12395        P30PfsHa_SPEC,
12396        crate::common::RW,
12397    > {
12398        crate::common::RegisterField::<
12399            4,
12400            0x1,
12401            1,
12402            0,
12403            p30pfs_ha::Pcr,
12404            p30pfs_ha::Pcr,
12405            P30PfsHa_SPEC,
12406            crate::common::RW,
12407        >::from_register(self, 0)
12408    }
12409
12410    #[doc = "N-Channel Open-Drain Control"]
12411    #[inline(always)]
12412    pub fn ncodr(
12413        self,
12414    ) -> crate::common::RegisterField<
12415        6,
12416        0x1,
12417        1,
12418        0,
12419        p30pfs_ha::Ncodr,
12420        p30pfs_ha::Ncodr,
12421        P30PfsHa_SPEC,
12422        crate::common::RW,
12423    > {
12424        crate::common::RegisterField::<
12425            6,
12426            0x1,
12427            1,
12428            0,
12429            p30pfs_ha::Ncodr,
12430            p30pfs_ha::Ncodr,
12431            P30PfsHa_SPEC,
12432            crate::common::RW,
12433        >::from_register(self, 0)
12434    }
12435
12436    #[doc = "IRQ Input Enable"]
12437    #[inline(always)]
12438    pub fn isel(
12439        self,
12440    ) -> crate::common::RegisterField<
12441        14,
12442        0x1,
12443        1,
12444        0,
12445        p30pfs_ha::Isel,
12446        p30pfs_ha::Isel,
12447        P30PfsHa_SPEC,
12448        crate::common::RW,
12449    > {
12450        crate::common::RegisterField::<
12451            14,
12452            0x1,
12453            1,
12454            0,
12455            p30pfs_ha::Isel,
12456            p30pfs_ha::Isel,
12457            P30PfsHa_SPEC,
12458            crate::common::RW,
12459        >::from_register(self, 0)
12460    }
12461
12462    #[doc = "Analog Input Enable"]
12463    #[inline(always)]
12464    pub fn asel(
12465        self,
12466    ) -> crate::common::RegisterField<
12467        15,
12468        0x1,
12469        1,
12470        0,
12471        p30pfs_ha::Asel,
12472        p30pfs_ha::Asel,
12473        P30PfsHa_SPEC,
12474        crate::common::RW,
12475    > {
12476        crate::common::RegisterField::<
12477            15,
12478            0x1,
12479            1,
12480            0,
12481            p30pfs_ha::Asel,
12482            p30pfs_ha::Asel,
12483            P30PfsHa_SPEC,
12484            crate::common::RW,
12485        >::from_register(self, 0)
12486    }
12487}
12488impl ::core::default::Default for P30PfsHa {
12489    #[inline(always)]
12490    fn default() -> P30PfsHa {
12491        <crate::RegValueT<P30PfsHa_SPEC> as RegisterValue<_>>::new(0)
12492    }
12493}
12494pub mod p30pfs_ha {
12495
12496    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12497    pub struct Podr_SPEC;
12498    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12499    impl Podr {
12500        #[doc = "Output low"]
12501        pub const _0: Self = Self::new(0);
12502
12503        #[doc = "Output high"]
12504        pub const _1: Self = Self::new(1);
12505    }
12506    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12507    pub struct Pidr_SPEC;
12508    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12509    impl Pidr {
12510        #[doc = "Low level"]
12511        pub const _0: Self = Self::new(0);
12512
12513        #[doc = "High level"]
12514        pub const _1: Self = Self::new(1);
12515    }
12516    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12517    pub struct Pdr_SPEC;
12518    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12519    impl Pdr {
12520        #[doc = "Input (functions as an input pin)"]
12521        pub const _0: Self = Self::new(0);
12522
12523        #[doc = "Output (functions as an output pin)"]
12524        pub const _1: Self = Self::new(1);
12525    }
12526    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12527    pub struct Pcr_SPEC;
12528    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12529    impl Pcr {
12530        #[doc = "Disable input pull-up"]
12531        pub const _0: Self = Self::new(0);
12532
12533        #[doc = "Enable input pull-up"]
12534        pub const _1: Self = Self::new(1);
12535    }
12536    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12537    pub struct Ncodr_SPEC;
12538    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12539    impl Ncodr {
12540        #[doc = "Output CMOS"]
12541        pub const _0: Self = Self::new(0);
12542
12543        #[doc = "Output NMOS open-drain"]
12544        pub const _1: Self = Self::new(1);
12545    }
12546    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12547    pub struct Isel_SPEC;
12548    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12549    impl Isel {
12550        #[doc = "Do not use as IRQn input pin"]
12551        pub const _0: Self = Self::new(0);
12552
12553        #[doc = "Use as IRQn input pin"]
12554        pub const _1: Self = Self::new(1);
12555    }
12556    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12557    pub struct Asel_SPEC;
12558    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12559    impl Asel {
12560        #[doc = "Do not use as analog pin"]
12561        pub const _0: Self = Self::new(0);
12562
12563        #[doc = "Use as analog pin"]
12564        pub const _1: Self = Self::new(1);
12565    }
12566}
12567#[doc(hidden)]
12568#[derive(Copy, Clone, Eq, PartialEq)]
12569pub struct P30PfsBy_SPEC;
12570impl crate::sealed::RegSpec for P30PfsBy_SPEC {
12571    type DataType = u8;
12572}
12573
12574#[doc = "Port 30%s Pin Function Select Register"]
12575pub type P30PfsBy = crate::RegValueT<P30PfsBy_SPEC>;
12576
12577impl P30PfsBy {
12578    #[doc = "Port Output Data"]
12579    #[inline(always)]
12580    pub fn podr(
12581        self,
12582    ) -> crate::common::RegisterField<
12583        0,
12584        0x1,
12585        1,
12586        0,
12587        p30pfs_by::Podr,
12588        p30pfs_by::Podr,
12589        P30PfsBy_SPEC,
12590        crate::common::RW,
12591    > {
12592        crate::common::RegisterField::<
12593            0,
12594            0x1,
12595            1,
12596            0,
12597            p30pfs_by::Podr,
12598            p30pfs_by::Podr,
12599            P30PfsBy_SPEC,
12600            crate::common::RW,
12601        >::from_register(self, 0)
12602    }
12603
12604    #[doc = "Port State"]
12605    #[inline(always)]
12606    pub fn pidr(
12607        self,
12608    ) -> crate::common::RegisterField<
12609        1,
12610        0x1,
12611        1,
12612        0,
12613        p30pfs_by::Pidr,
12614        p30pfs_by::Pidr,
12615        P30PfsBy_SPEC,
12616        crate::common::R,
12617    > {
12618        crate::common::RegisterField::<
12619            1,
12620            0x1,
12621            1,
12622            0,
12623            p30pfs_by::Pidr,
12624            p30pfs_by::Pidr,
12625            P30PfsBy_SPEC,
12626            crate::common::R,
12627        >::from_register(self, 0)
12628    }
12629
12630    #[doc = "Port Direction"]
12631    #[inline(always)]
12632    pub fn pdr(
12633        self,
12634    ) -> crate::common::RegisterField<
12635        2,
12636        0x1,
12637        1,
12638        0,
12639        p30pfs_by::Pdr,
12640        p30pfs_by::Pdr,
12641        P30PfsBy_SPEC,
12642        crate::common::RW,
12643    > {
12644        crate::common::RegisterField::<
12645            2,
12646            0x1,
12647            1,
12648            0,
12649            p30pfs_by::Pdr,
12650            p30pfs_by::Pdr,
12651            P30PfsBy_SPEC,
12652            crate::common::RW,
12653        >::from_register(self, 0)
12654    }
12655
12656    #[doc = "Pull-up Control"]
12657    #[inline(always)]
12658    pub fn pcr(
12659        self,
12660    ) -> crate::common::RegisterField<
12661        4,
12662        0x1,
12663        1,
12664        0,
12665        p30pfs_by::Pcr,
12666        p30pfs_by::Pcr,
12667        P30PfsBy_SPEC,
12668        crate::common::RW,
12669    > {
12670        crate::common::RegisterField::<
12671            4,
12672            0x1,
12673            1,
12674            0,
12675            p30pfs_by::Pcr,
12676            p30pfs_by::Pcr,
12677            P30PfsBy_SPEC,
12678            crate::common::RW,
12679        >::from_register(self, 0)
12680    }
12681
12682    #[doc = "N-Channel Open-Drain Control"]
12683    #[inline(always)]
12684    pub fn ncodr(
12685        self,
12686    ) -> crate::common::RegisterField<
12687        6,
12688        0x1,
12689        1,
12690        0,
12691        p30pfs_by::Ncodr,
12692        p30pfs_by::Ncodr,
12693        P30PfsBy_SPEC,
12694        crate::common::RW,
12695    > {
12696        crate::common::RegisterField::<
12697            6,
12698            0x1,
12699            1,
12700            0,
12701            p30pfs_by::Ncodr,
12702            p30pfs_by::Ncodr,
12703            P30PfsBy_SPEC,
12704            crate::common::RW,
12705        >::from_register(self, 0)
12706    }
12707}
12708impl ::core::default::Default for P30PfsBy {
12709    #[inline(always)]
12710    fn default() -> P30PfsBy {
12711        <crate::RegValueT<P30PfsBy_SPEC> as RegisterValue<_>>::new(0)
12712    }
12713}
12714pub mod p30pfs_by {
12715
12716    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12717    pub struct Podr_SPEC;
12718    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12719    impl Podr {
12720        #[doc = "Output low"]
12721        pub const _0: Self = Self::new(0);
12722
12723        #[doc = "Output high"]
12724        pub const _1: Self = Self::new(1);
12725    }
12726    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12727    pub struct Pidr_SPEC;
12728    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12729    impl Pidr {
12730        #[doc = "Low level"]
12731        pub const _0: Self = Self::new(0);
12732
12733        #[doc = "High level"]
12734        pub const _1: Self = Self::new(1);
12735    }
12736    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12737    pub struct Pdr_SPEC;
12738    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12739    impl Pdr {
12740        #[doc = "Input (functions as an input pin)"]
12741        pub const _0: Self = Self::new(0);
12742
12743        #[doc = "Output (functions as an output pin)"]
12744        pub const _1: Self = Self::new(1);
12745    }
12746    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12747    pub struct Pcr_SPEC;
12748    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12749    impl Pcr {
12750        #[doc = "Disable input pull-up"]
12751        pub const _0: Self = Self::new(0);
12752
12753        #[doc = "Enable input pull-up"]
12754        pub const _1: Self = Self::new(1);
12755    }
12756    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12757    pub struct Ncodr_SPEC;
12758    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12759    impl Ncodr {
12760        #[doc = "Output CMOS"]
12761        pub const _0: Self = Self::new(0);
12762
12763        #[doc = "Output NMOS open-drain"]
12764        pub const _1: Self = Self::new(1);
12765    }
12766}
12767#[doc(hidden)]
12768#[derive(Copy, Clone, Eq, PartialEq)]
12769pub struct P3Pfs_SPEC;
12770impl crate::sealed::RegSpec for P3Pfs_SPEC {
12771    type DataType = u32;
12772}
12773
12774#[doc = "Port 3%s Pin Function Select Register"]
12775pub type P3Pfs = crate::RegValueT<P3Pfs_SPEC>;
12776
12777impl P3Pfs {
12778    #[doc = "Port Output Data"]
12779    #[inline(always)]
12780    pub fn podr(
12781        self,
12782    ) -> crate::common::RegisterField<
12783        0,
12784        0x1,
12785        1,
12786        0,
12787        p3pfs::Podr,
12788        p3pfs::Podr,
12789        P3Pfs_SPEC,
12790        crate::common::RW,
12791    > {
12792        crate::common::RegisterField::<
12793            0,
12794            0x1,
12795            1,
12796            0,
12797            p3pfs::Podr,
12798            p3pfs::Podr,
12799            P3Pfs_SPEC,
12800            crate::common::RW,
12801        >::from_register(self, 0)
12802    }
12803
12804    #[doc = "Port State"]
12805    #[inline(always)]
12806    pub fn pidr(
12807        self,
12808    ) -> crate::common::RegisterField<
12809        1,
12810        0x1,
12811        1,
12812        0,
12813        p3pfs::Pidr,
12814        p3pfs::Pidr,
12815        P3Pfs_SPEC,
12816        crate::common::R,
12817    > {
12818        crate::common::RegisterField::<
12819            1,
12820            0x1,
12821            1,
12822            0,
12823            p3pfs::Pidr,
12824            p3pfs::Pidr,
12825            P3Pfs_SPEC,
12826            crate::common::R,
12827        >::from_register(self, 0)
12828    }
12829
12830    #[doc = "Port Direction"]
12831    #[inline(always)]
12832    pub fn pdr(
12833        self,
12834    ) -> crate::common::RegisterField<
12835        2,
12836        0x1,
12837        1,
12838        0,
12839        p3pfs::Pdr,
12840        p3pfs::Pdr,
12841        P3Pfs_SPEC,
12842        crate::common::RW,
12843    > {
12844        crate::common::RegisterField::<
12845            2,
12846            0x1,
12847            1,
12848            0,
12849            p3pfs::Pdr,
12850            p3pfs::Pdr,
12851            P3Pfs_SPEC,
12852            crate::common::RW,
12853        >::from_register(self, 0)
12854    }
12855
12856    #[doc = "Pull-up Control"]
12857    #[inline(always)]
12858    pub fn pcr(
12859        self,
12860    ) -> crate::common::RegisterField<
12861        4,
12862        0x1,
12863        1,
12864        0,
12865        p3pfs::Pcr,
12866        p3pfs::Pcr,
12867        P3Pfs_SPEC,
12868        crate::common::RW,
12869    > {
12870        crate::common::RegisterField::<
12871            4,
12872            0x1,
12873            1,
12874            0,
12875            p3pfs::Pcr,
12876            p3pfs::Pcr,
12877            P3Pfs_SPEC,
12878            crate::common::RW,
12879        >::from_register(self, 0)
12880    }
12881
12882    #[doc = "N-Channel Open-Drain Control"]
12883    #[inline(always)]
12884    pub fn ncodr(
12885        self,
12886    ) -> crate::common::RegisterField<
12887        6,
12888        0x1,
12889        1,
12890        0,
12891        p3pfs::Ncodr,
12892        p3pfs::Ncodr,
12893        P3Pfs_SPEC,
12894        crate::common::RW,
12895    > {
12896        crate::common::RegisterField::<
12897            6,
12898            0x1,
12899            1,
12900            0,
12901            p3pfs::Ncodr,
12902            p3pfs::Ncodr,
12903            P3Pfs_SPEC,
12904            crate::common::RW,
12905        >::from_register(self, 0)
12906    }
12907
12908    #[doc = "IRQ Input Enable"]
12909    #[inline(always)]
12910    pub fn isel(
12911        self,
12912    ) -> crate::common::RegisterField<
12913        14,
12914        0x1,
12915        1,
12916        0,
12917        p3pfs::Isel,
12918        p3pfs::Isel,
12919        P3Pfs_SPEC,
12920        crate::common::RW,
12921    > {
12922        crate::common::RegisterField::<
12923            14,
12924            0x1,
12925            1,
12926            0,
12927            p3pfs::Isel,
12928            p3pfs::Isel,
12929            P3Pfs_SPEC,
12930            crate::common::RW,
12931        >::from_register(self, 0)
12932    }
12933
12934    #[doc = "Analog Input Enable"]
12935    #[inline(always)]
12936    pub fn asel(
12937        self,
12938    ) -> crate::common::RegisterField<
12939        15,
12940        0x1,
12941        1,
12942        0,
12943        p3pfs::Asel,
12944        p3pfs::Asel,
12945        P3Pfs_SPEC,
12946        crate::common::RW,
12947    > {
12948        crate::common::RegisterField::<
12949            15,
12950            0x1,
12951            1,
12952            0,
12953            p3pfs::Asel,
12954            p3pfs::Asel,
12955            P3Pfs_SPEC,
12956            crate::common::RW,
12957        >::from_register(self, 0)
12958    }
12959
12960    #[doc = "Port Mode Control"]
12961    #[inline(always)]
12962    pub fn pmr(
12963        self,
12964    ) -> crate::common::RegisterField<
12965        16,
12966        0x1,
12967        1,
12968        0,
12969        p3pfs::Pmr,
12970        p3pfs::Pmr,
12971        P3Pfs_SPEC,
12972        crate::common::RW,
12973    > {
12974        crate::common::RegisterField::<
12975            16,
12976            0x1,
12977            1,
12978            0,
12979            p3pfs::Pmr,
12980            p3pfs::Pmr,
12981            P3Pfs_SPEC,
12982            crate::common::RW,
12983        >::from_register(self, 0)
12984    }
12985
12986    #[doc = "Peripheral Select"]
12987    #[inline(always)]
12988    pub fn psel(
12989        self,
12990    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P3Pfs_SPEC, crate::common::RW> {
12991        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P3Pfs_SPEC,crate::common::RW>::from_register(self,0)
12992    }
12993}
12994impl ::core::default::Default for P3Pfs {
12995    #[inline(always)]
12996    fn default() -> P3Pfs {
12997        <crate::RegValueT<P3Pfs_SPEC> as RegisterValue<_>>::new(0)
12998    }
12999}
13000pub mod p3pfs {
13001
13002    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13003    pub struct Podr_SPEC;
13004    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13005    impl Podr {
13006        #[doc = "Output low"]
13007        pub const _0: Self = Self::new(0);
13008
13009        #[doc = "Output high"]
13010        pub const _1: Self = Self::new(1);
13011    }
13012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13013    pub struct Pidr_SPEC;
13014    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13015    impl Pidr {
13016        #[doc = "Low level"]
13017        pub const _0: Self = Self::new(0);
13018
13019        #[doc = "High level"]
13020        pub const _1: Self = Self::new(1);
13021    }
13022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13023    pub struct Pdr_SPEC;
13024    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13025    impl Pdr {
13026        #[doc = "Input (functions as an input pin)"]
13027        pub const _0: Self = Self::new(0);
13028
13029        #[doc = "Output (functions as an output pin)"]
13030        pub const _1: Self = Self::new(1);
13031    }
13032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13033    pub struct Pcr_SPEC;
13034    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13035    impl Pcr {
13036        #[doc = "Disable input pull-up"]
13037        pub const _0: Self = Self::new(0);
13038
13039        #[doc = "Enable input pull-up"]
13040        pub const _1: Self = Self::new(1);
13041    }
13042    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13043    pub struct Ncodr_SPEC;
13044    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13045    impl Ncodr {
13046        #[doc = "Output CMOS"]
13047        pub const _0: Self = Self::new(0);
13048
13049        #[doc = "Output NMOS open-drain"]
13050        pub const _1: Self = Self::new(1);
13051    }
13052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13053    pub struct Isel_SPEC;
13054    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13055    impl Isel {
13056        #[doc = "Do not use as IRQn input pin"]
13057        pub const _0: Self = Self::new(0);
13058
13059        #[doc = "Use as IRQn input pin"]
13060        pub const _1: Self = Self::new(1);
13061    }
13062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13063    pub struct Asel_SPEC;
13064    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13065    impl Asel {
13066        #[doc = "Do not use as analog pin"]
13067        pub const _0: Self = Self::new(0);
13068
13069        #[doc = "Use as analog pin"]
13070        pub const _1: Self = Self::new(1);
13071    }
13072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13073    pub struct Pmr_SPEC;
13074    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13075    impl Pmr {
13076        #[doc = "Use as general I/O pin"]
13077        pub const _0: Self = Self::new(0);
13078
13079        #[doc = "Use as I/O port for peripheral functions"]
13080        pub const _1: Self = Self::new(1);
13081    }
13082}
13083#[doc(hidden)]
13084#[derive(Copy, Clone, Eq, PartialEq)]
13085pub struct P3PfsHa_SPEC;
13086impl crate::sealed::RegSpec for P3PfsHa_SPEC {
13087    type DataType = u16;
13088}
13089
13090#[doc = "Port 3%s Pin Function Select Register"]
13091pub type P3PfsHa = crate::RegValueT<P3PfsHa_SPEC>;
13092
13093impl P3PfsHa {
13094    #[doc = "Port Output Data"]
13095    #[inline(always)]
13096    pub fn podr(
13097        self,
13098    ) -> crate::common::RegisterField<
13099        0,
13100        0x1,
13101        1,
13102        0,
13103        p3pfs_ha::Podr,
13104        p3pfs_ha::Podr,
13105        P3PfsHa_SPEC,
13106        crate::common::RW,
13107    > {
13108        crate::common::RegisterField::<
13109            0,
13110            0x1,
13111            1,
13112            0,
13113            p3pfs_ha::Podr,
13114            p3pfs_ha::Podr,
13115            P3PfsHa_SPEC,
13116            crate::common::RW,
13117        >::from_register(self, 0)
13118    }
13119
13120    #[doc = "Port State"]
13121    #[inline(always)]
13122    pub fn pidr(
13123        self,
13124    ) -> crate::common::RegisterField<
13125        1,
13126        0x1,
13127        1,
13128        0,
13129        p3pfs_ha::Pidr,
13130        p3pfs_ha::Pidr,
13131        P3PfsHa_SPEC,
13132        crate::common::R,
13133    > {
13134        crate::common::RegisterField::<
13135            1,
13136            0x1,
13137            1,
13138            0,
13139            p3pfs_ha::Pidr,
13140            p3pfs_ha::Pidr,
13141            P3PfsHa_SPEC,
13142            crate::common::R,
13143        >::from_register(self, 0)
13144    }
13145
13146    #[doc = "Port Direction"]
13147    #[inline(always)]
13148    pub fn pdr(
13149        self,
13150    ) -> crate::common::RegisterField<
13151        2,
13152        0x1,
13153        1,
13154        0,
13155        p3pfs_ha::Pdr,
13156        p3pfs_ha::Pdr,
13157        P3PfsHa_SPEC,
13158        crate::common::RW,
13159    > {
13160        crate::common::RegisterField::<
13161            2,
13162            0x1,
13163            1,
13164            0,
13165            p3pfs_ha::Pdr,
13166            p3pfs_ha::Pdr,
13167            P3PfsHa_SPEC,
13168            crate::common::RW,
13169        >::from_register(self, 0)
13170    }
13171
13172    #[doc = "Pull-up Control"]
13173    #[inline(always)]
13174    pub fn pcr(
13175        self,
13176    ) -> crate::common::RegisterField<
13177        4,
13178        0x1,
13179        1,
13180        0,
13181        p3pfs_ha::Pcr,
13182        p3pfs_ha::Pcr,
13183        P3PfsHa_SPEC,
13184        crate::common::RW,
13185    > {
13186        crate::common::RegisterField::<
13187            4,
13188            0x1,
13189            1,
13190            0,
13191            p3pfs_ha::Pcr,
13192            p3pfs_ha::Pcr,
13193            P3PfsHa_SPEC,
13194            crate::common::RW,
13195        >::from_register(self, 0)
13196    }
13197
13198    #[doc = "N-Channel Open-Drain Control"]
13199    #[inline(always)]
13200    pub fn ncodr(
13201        self,
13202    ) -> crate::common::RegisterField<
13203        6,
13204        0x1,
13205        1,
13206        0,
13207        p3pfs_ha::Ncodr,
13208        p3pfs_ha::Ncodr,
13209        P3PfsHa_SPEC,
13210        crate::common::RW,
13211    > {
13212        crate::common::RegisterField::<
13213            6,
13214            0x1,
13215            1,
13216            0,
13217            p3pfs_ha::Ncodr,
13218            p3pfs_ha::Ncodr,
13219            P3PfsHa_SPEC,
13220            crate::common::RW,
13221        >::from_register(self, 0)
13222    }
13223
13224    #[doc = "IRQ Input Enable"]
13225    #[inline(always)]
13226    pub fn isel(
13227        self,
13228    ) -> crate::common::RegisterField<
13229        14,
13230        0x1,
13231        1,
13232        0,
13233        p3pfs_ha::Isel,
13234        p3pfs_ha::Isel,
13235        P3PfsHa_SPEC,
13236        crate::common::RW,
13237    > {
13238        crate::common::RegisterField::<
13239            14,
13240            0x1,
13241            1,
13242            0,
13243            p3pfs_ha::Isel,
13244            p3pfs_ha::Isel,
13245            P3PfsHa_SPEC,
13246            crate::common::RW,
13247        >::from_register(self, 0)
13248    }
13249
13250    #[doc = "Analog Input Enable"]
13251    #[inline(always)]
13252    pub fn asel(
13253        self,
13254    ) -> crate::common::RegisterField<
13255        15,
13256        0x1,
13257        1,
13258        0,
13259        p3pfs_ha::Asel,
13260        p3pfs_ha::Asel,
13261        P3PfsHa_SPEC,
13262        crate::common::RW,
13263    > {
13264        crate::common::RegisterField::<
13265            15,
13266            0x1,
13267            1,
13268            0,
13269            p3pfs_ha::Asel,
13270            p3pfs_ha::Asel,
13271            P3PfsHa_SPEC,
13272            crate::common::RW,
13273        >::from_register(self, 0)
13274    }
13275}
13276impl ::core::default::Default for P3PfsHa {
13277    #[inline(always)]
13278    fn default() -> P3PfsHa {
13279        <crate::RegValueT<P3PfsHa_SPEC> as RegisterValue<_>>::new(0)
13280    }
13281}
13282pub mod p3pfs_ha {
13283
13284    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13285    pub struct Podr_SPEC;
13286    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13287    impl Podr {
13288        #[doc = "Output low"]
13289        pub const _0: Self = Self::new(0);
13290
13291        #[doc = "Output high"]
13292        pub const _1: Self = Self::new(1);
13293    }
13294    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13295    pub struct Pidr_SPEC;
13296    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13297    impl Pidr {
13298        #[doc = "Low level"]
13299        pub const _0: Self = Self::new(0);
13300
13301        #[doc = "High level"]
13302        pub const _1: Self = Self::new(1);
13303    }
13304    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13305    pub struct Pdr_SPEC;
13306    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13307    impl Pdr {
13308        #[doc = "Input (functions as an input pin)"]
13309        pub const _0: Self = Self::new(0);
13310
13311        #[doc = "Output (functions as an output pin)"]
13312        pub const _1: Self = Self::new(1);
13313    }
13314    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13315    pub struct Pcr_SPEC;
13316    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13317    impl Pcr {
13318        #[doc = "Disable input pull-up"]
13319        pub const _0: Self = Self::new(0);
13320
13321        #[doc = "Enable input pull-up"]
13322        pub const _1: Self = Self::new(1);
13323    }
13324    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13325    pub struct Ncodr_SPEC;
13326    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13327    impl Ncodr {
13328        #[doc = "Output CMOS"]
13329        pub const _0: Self = Self::new(0);
13330
13331        #[doc = "Output NMOS open-drain"]
13332        pub const _1: Self = Self::new(1);
13333    }
13334    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13335    pub struct Isel_SPEC;
13336    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13337    impl Isel {
13338        #[doc = "Do not use as IRQn input pin"]
13339        pub const _0: Self = Self::new(0);
13340
13341        #[doc = "Use as IRQn input pin"]
13342        pub const _1: Self = Self::new(1);
13343    }
13344    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13345    pub struct Asel_SPEC;
13346    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13347    impl Asel {
13348        #[doc = "Do not use as analog pin"]
13349        pub const _0: Self = Self::new(0);
13350
13351        #[doc = "Use as analog pin"]
13352        pub const _1: Self = Self::new(1);
13353    }
13354}
13355#[doc(hidden)]
13356#[derive(Copy, Clone, Eq, PartialEq)]
13357pub struct P3PfsBy_SPEC;
13358impl crate::sealed::RegSpec for P3PfsBy_SPEC {
13359    type DataType = u8;
13360}
13361
13362#[doc = "Port 3%s Pin Function Select Register"]
13363pub type P3PfsBy = crate::RegValueT<P3PfsBy_SPEC>;
13364
13365impl P3PfsBy {
13366    #[doc = "Port Output Data"]
13367    #[inline(always)]
13368    pub fn podr(
13369        self,
13370    ) -> crate::common::RegisterField<
13371        0,
13372        0x1,
13373        1,
13374        0,
13375        p3pfs_by::Podr,
13376        p3pfs_by::Podr,
13377        P3PfsBy_SPEC,
13378        crate::common::RW,
13379    > {
13380        crate::common::RegisterField::<
13381            0,
13382            0x1,
13383            1,
13384            0,
13385            p3pfs_by::Podr,
13386            p3pfs_by::Podr,
13387            P3PfsBy_SPEC,
13388            crate::common::RW,
13389        >::from_register(self, 0)
13390    }
13391
13392    #[doc = "Port State"]
13393    #[inline(always)]
13394    pub fn pidr(
13395        self,
13396    ) -> crate::common::RegisterField<
13397        1,
13398        0x1,
13399        1,
13400        0,
13401        p3pfs_by::Pidr,
13402        p3pfs_by::Pidr,
13403        P3PfsBy_SPEC,
13404        crate::common::R,
13405    > {
13406        crate::common::RegisterField::<
13407            1,
13408            0x1,
13409            1,
13410            0,
13411            p3pfs_by::Pidr,
13412            p3pfs_by::Pidr,
13413            P3PfsBy_SPEC,
13414            crate::common::R,
13415        >::from_register(self, 0)
13416    }
13417
13418    #[doc = "Port Direction"]
13419    #[inline(always)]
13420    pub fn pdr(
13421        self,
13422    ) -> crate::common::RegisterField<
13423        2,
13424        0x1,
13425        1,
13426        0,
13427        p3pfs_by::Pdr,
13428        p3pfs_by::Pdr,
13429        P3PfsBy_SPEC,
13430        crate::common::RW,
13431    > {
13432        crate::common::RegisterField::<
13433            2,
13434            0x1,
13435            1,
13436            0,
13437            p3pfs_by::Pdr,
13438            p3pfs_by::Pdr,
13439            P3PfsBy_SPEC,
13440            crate::common::RW,
13441        >::from_register(self, 0)
13442    }
13443
13444    #[doc = "Pull-up Control"]
13445    #[inline(always)]
13446    pub fn pcr(
13447        self,
13448    ) -> crate::common::RegisterField<
13449        4,
13450        0x1,
13451        1,
13452        0,
13453        p3pfs_by::Pcr,
13454        p3pfs_by::Pcr,
13455        P3PfsBy_SPEC,
13456        crate::common::RW,
13457    > {
13458        crate::common::RegisterField::<
13459            4,
13460            0x1,
13461            1,
13462            0,
13463            p3pfs_by::Pcr,
13464            p3pfs_by::Pcr,
13465            P3PfsBy_SPEC,
13466            crate::common::RW,
13467        >::from_register(self, 0)
13468    }
13469
13470    #[doc = "N-Channel Open-Drain Control"]
13471    #[inline(always)]
13472    pub fn ncodr(
13473        self,
13474    ) -> crate::common::RegisterField<
13475        6,
13476        0x1,
13477        1,
13478        0,
13479        p3pfs_by::Ncodr,
13480        p3pfs_by::Ncodr,
13481        P3PfsBy_SPEC,
13482        crate::common::RW,
13483    > {
13484        crate::common::RegisterField::<
13485            6,
13486            0x1,
13487            1,
13488            0,
13489            p3pfs_by::Ncodr,
13490            p3pfs_by::Ncodr,
13491            P3PfsBy_SPEC,
13492            crate::common::RW,
13493        >::from_register(self, 0)
13494    }
13495}
13496impl ::core::default::Default for P3PfsBy {
13497    #[inline(always)]
13498    fn default() -> P3PfsBy {
13499        <crate::RegValueT<P3PfsBy_SPEC> as RegisterValue<_>>::new(0)
13500    }
13501}
13502pub mod p3pfs_by {
13503
13504    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13505    pub struct Podr_SPEC;
13506    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13507    impl Podr {
13508        #[doc = "Output low"]
13509        pub const _0: Self = Self::new(0);
13510
13511        #[doc = "Output high"]
13512        pub const _1: Self = Self::new(1);
13513    }
13514    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13515    pub struct Pidr_SPEC;
13516    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13517    impl Pidr {
13518        #[doc = "Low level"]
13519        pub const _0: Self = Self::new(0);
13520
13521        #[doc = "High level"]
13522        pub const _1: Self = Self::new(1);
13523    }
13524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13525    pub struct Pdr_SPEC;
13526    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13527    impl Pdr {
13528        #[doc = "Input (functions as an input pin)"]
13529        pub const _0: Self = Self::new(0);
13530
13531        #[doc = "Output (functions as an output pin)"]
13532        pub const _1: Self = Self::new(1);
13533    }
13534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13535    pub struct Pcr_SPEC;
13536    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13537    impl Pcr {
13538        #[doc = "Disable input pull-up"]
13539        pub const _0: Self = Self::new(0);
13540
13541        #[doc = "Enable input pull-up"]
13542        pub const _1: Self = Self::new(1);
13543    }
13544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13545    pub struct Ncodr_SPEC;
13546    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13547    impl Ncodr {
13548        #[doc = "Output CMOS"]
13549        pub const _0: Self = Self::new(0);
13550
13551        #[doc = "Output NMOS open-drain"]
13552        pub const _1: Self = Self::new(1);
13553    }
13554}
13555#[doc(hidden)]
13556#[derive(Copy, Clone, Eq, PartialEq)]
13557pub struct P40Pfs_SPEC;
13558impl crate::sealed::RegSpec for P40Pfs_SPEC {
13559    type DataType = u32;
13560}
13561
13562#[doc = "Port 40%s Pin Function Select Register"]
13563pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
13564
13565impl P40Pfs {
13566    #[doc = "Port Output Data"]
13567    #[inline(always)]
13568    pub fn podr(
13569        self,
13570    ) -> crate::common::RegisterField<
13571        0,
13572        0x1,
13573        1,
13574        0,
13575        p40pfs::Podr,
13576        p40pfs::Podr,
13577        P40Pfs_SPEC,
13578        crate::common::RW,
13579    > {
13580        crate::common::RegisterField::<
13581            0,
13582            0x1,
13583            1,
13584            0,
13585            p40pfs::Podr,
13586            p40pfs::Podr,
13587            P40Pfs_SPEC,
13588            crate::common::RW,
13589        >::from_register(self, 0)
13590    }
13591
13592    #[doc = "Port State"]
13593    #[inline(always)]
13594    pub fn pidr(
13595        self,
13596    ) -> crate::common::RegisterField<
13597        1,
13598        0x1,
13599        1,
13600        0,
13601        p40pfs::Pidr,
13602        p40pfs::Pidr,
13603        P40Pfs_SPEC,
13604        crate::common::R,
13605    > {
13606        crate::common::RegisterField::<
13607            1,
13608            0x1,
13609            1,
13610            0,
13611            p40pfs::Pidr,
13612            p40pfs::Pidr,
13613            P40Pfs_SPEC,
13614            crate::common::R,
13615        >::from_register(self, 0)
13616    }
13617
13618    #[doc = "Port Direction"]
13619    #[inline(always)]
13620    pub fn pdr(
13621        self,
13622    ) -> crate::common::RegisterField<
13623        2,
13624        0x1,
13625        1,
13626        0,
13627        p40pfs::Pdr,
13628        p40pfs::Pdr,
13629        P40Pfs_SPEC,
13630        crate::common::RW,
13631    > {
13632        crate::common::RegisterField::<
13633            2,
13634            0x1,
13635            1,
13636            0,
13637            p40pfs::Pdr,
13638            p40pfs::Pdr,
13639            P40Pfs_SPEC,
13640            crate::common::RW,
13641        >::from_register(self, 0)
13642    }
13643
13644    #[doc = "Pull-up Control"]
13645    #[inline(always)]
13646    pub fn pcr(
13647        self,
13648    ) -> crate::common::RegisterField<
13649        4,
13650        0x1,
13651        1,
13652        0,
13653        p40pfs::Pcr,
13654        p40pfs::Pcr,
13655        P40Pfs_SPEC,
13656        crate::common::RW,
13657    > {
13658        crate::common::RegisterField::<
13659            4,
13660            0x1,
13661            1,
13662            0,
13663            p40pfs::Pcr,
13664            p40pfs::Pcr,
13665            P40Pfs_SPEC,
13666            crate::common::RW,
13667        >::from_register(self, 0)
13668    }
13669
13670    #[doc = "N-Channel Open-Drain Control"]
13671    #[inline(always)]
13672    pub fn ncodr(
13673        self,
13674    ) -> crate::common::RegisterField<
13675        6,
13676        0x1,
13677        1,
13678        0,
13679        p40pfs::Ncodr,
13680        p40pfs::Ncodr,
13681        P40Pfs_SPEC,
13682        crate::common::RW,
13683    > {
13684        crate::common::RegisterField::<
13685            6,
13686            0x1,
13687            1,
13688            0,
13689            p40pfs::Ncodr,
13690            p40pfs::Ncodr,
13691            P40Pfs_SPEC,
13692            crate::common::RW,
13693        >::from_register(self, 0)
13694    }
13695
13696    #[doc = "IRQ Input Enable"]
13697    #[inline(always)]
13698    pub fn isel(
13699        self,
13700    ) -> crate::common::RegisterField<
13701        14,
13702        0x1,
13703        1,
13704        0,
13705        p40pfs::Isel,
13706        p40pfs::Isel,
13707        P40Pfs_SPEC,
13708        crate::common::RW,
13709    > {
13710        crate::common::RegisterField::<
13711            14,
13712            0x1,
13713            1,
13714            0,
13715            p40pfs::Isel,
13716            p40pfs::Isel,
13717            P40Pfs_SPEC,
13718            crate::common::RW,
13719        >::from_register(self, 0)
13720    }
13721
13722    #[doc = "Analog Input Enable"]
13723    #[inline(always)]
13724    pub fn asel(
13725        self,
13726    ) -> crate::common::RegisterField<
13727        15,
13728        0x1,
13729        1,
13730        0,
13731        p40pfs::Asel,
13732        p40pfs::Asel,
13733        P40Pfs_SPEC,
13734        crate::common::RW,
13735    > {
13736        crate::common::RegisterField::<
13737            15,
13738            0x1,
13739            1,
13740            0,
13741            p40pfs::Asel,
13742            p40pfs::Asel,
13743            P40Pfs_SPEC,
13744            crate::common::RW,
13745        >::from_register(self, 0)
13746    }
13747
13748    #[doc = "Port Mode Control"]
13749    #[inline(always)]
13750    pub fn pmr(
13751        self,
13752    ) -> crate::common::RegisterField<
13753        16,
13754        0x1,
13755        1,
13756        0,
13757        p40pfs::Pmr,
13758        p40pfs::Pmr,
13759        P40Pfs_SPEC,
13760        crate::common::RW,
13761    > {
13762        crate::common::RegisterField::<
13763            16,
13764            0x1,
13765            1,
13766            0,
13767            p40pfs::Pmr,
13768            p40pfs::Pmr,
13769            P40Pfs_SPEC,
13770            crate::common::RW,
13771        >::from_register(self, 0)
13772    }
13773
13774    #[doc = "Peripheral Select"]
13775    #[inline(always)]
13776    pub fn psel(
13777        self,
13778    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
13779        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
13780    }
13781}
13782impl ::core::default::Default for P40Pfs {
13783    #[inline(always)]
13784    fn default() -> P40Pfs {
13785        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
13786    }
13787}
13788pub mod p40pfs {
13789
13790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13791    pub struct Podr_SPEC;
13792    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13793    impl Podr {
13794        #[doc = "Output low"]
13795        pub const _0: Self = Self::new(0);
13796
13797        #[doc = "Output high"]
13798        pub const _1: Self = Self::new(1);
13799    }
13800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13801    pub struct Pidr_SPEC;
13802    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13803    impl Pidr {
13804        #[doc = "Low level"]
13805        pub const _0: Self = Self::new(0);
13806
13807        #[doc = "High level"]
13808        pub const _1: Self = Self::new(1);
13809    }
13810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13811    pub struct Pdr_SPEC;
13812    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13813    impl Pdr {
13814        #[doc = "Input (functions as an input pin)"]
13815        pub const _0: Self = Self::new(0);
13816
13817        #[doc = "Output (functions as an output pin)"]
13818        pub const _1: Self = Self::new(1);
13819    }
13820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13821    pub struct Pcr_SPEC;
13822    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13823    impl Pcr {
13824        #[doc = "Disable input pull-up"]
13825        pub const _0: Self = Self::new(0);
13826
13827        #[doc = "Enable input pull-up"]
13828        pub const _1: Self = Self::new(1);
13829    }
13830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13831    pub struct Ncodr_SPEC;
13832    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13833    impl Ncodr {
13834        #[doc = "Output CMOS"]
13835        pub const _0: Self = Self::new(0);
13836
13837        #[doc = "Output NMOS open-drain"]
13838        pub const _1: Self = Self::new(1);
13839    }
13840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13841    pub struct Isel_SPEC;
13842    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13843    impl Isel {
13844        #[doc = "Do not use as IRQn input pin"]
13845        pub const _0: Self = Self::new(0);
13846
13847        #[doc = "Use as IRQn input pin"]
13848        pub const _1: Self = Self::new(1);
13849    }
13850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13851    pub struct Asel_SPEC;
13852    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13853    impl Asel {
13854        #[doc = "Do not use as analog pin"]
13855        pub const _0: Self = Self::new(0);
13856
13857        #[doc = "Use as analog pin"]
13858        pub const _1: Self = Self::new(1);
13859    }
13860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13861    pub struct Pmr_SPEC;
13862    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13863    impl Pmr {
13864        #[doc = "Use as general I/O pin"]
13865        pub const _0: Self = Self::new(0);
13866
13867        #[doc = "Use as I/O port for peripheral functions"]
13868        pub const _1: Self = Self::new(1);
13869    }
13870}
13871#[doc(hidden)]
13872#[derive(Copy, Clone, Eq, PartialEq)]
13873pub struct P40PfsHa_SPEC;
13874impl crate::sealed::RegSpec for P40PfsHa_SPEC {
13875    type DataType = u16;
13876}
13877
13878#[doc = "Port 40%s Pin Function Select Register"]
13879pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
13880
13881impl P40PfsHa {
13882    #[doc = "Port Output Data"]
13883    #[inline(always)]
13884    pub fn podr(
13885        self,
13886    ) -> crate::common::RegisterField<
13887        0,
13888        0x1,
13889        1,
13890        0,
13891        p40pfs_ha::Podr,
13892        p40pfs_ha::Podr,
13893        P40PfsHa_SPEC,
13894        crate::common::RW,
13895    > {
13896        crate::common::RegisterField::<
13897            0,
13898            0x1,
13899            1,
13900            0,
13901            p40pfs_ha::Podr,
13902            p40pfs_ha::Podr,
13903            P40PfsHa_SPEC,
13904            crate::common::RW,
13905        >::from_register(self, 0)
13906    }
13907
13908    #[doc = "Port State"]
13909    #[inline(always)]
13910    pub fn pidr(
13911        self,
13912    ) -> crate::common::RegisterField<
13913        1,
13914        0x1,
13915        1,
13916        0,
13917        p40pfs_ha::Pidr,
13918        p40pfs_ha::Pidr,
13919        P40PfsHa_SPEC,
13920        crate::common::R,
13921    > {
13922        crate::common::RegisterField::<
13923            1,
13924            0x1,
13925            1,
13926            0,
13927            p40pfs_ha::Pidr,
13928            p40pfs_ha::Pidr,
13929            P40PfsHa_SPEC,
13930            crate::common::R,
13931        >::from_register(self, 0)
13932    }
13933
13934    #[doc = "Port Direction"]
13935    #[inline(always)]
13936    pub fn pdr(
13937        self,
13938    ) -> crate::common::RegisterField<
13939        2,
13940        0x1,
13941        1,
13942        0,
13943        p40pfs_ha::Pdr,
13944        p40pfs_ha::Pdr,
13945        P40PfsHa_SPEC,
13946        crate::common::RW,
13947    > {
13948        crate::common::RegisterField::<
13949            2,
13950            0x1,
13951            1,
13952            0,
13953            p40pfs_ha::Pdr,
13954            p40pfs_ha::Pdr,
13955            P40PfsHa_SPEC,
13956            crate::common::RW,
13957        >::from_register(self, 0)
13958    }
13959
13960    #[doc = "Pull-up Control"]
13961    #[inline(always)]
13962    pub fn pcr(
13963        self,
13964    ) -> crate::common::RegisterField<
13965        4,
13966        0x1,
13967        1,
13968        0,
13969        p40pfs_ha::Pcr,
13970        p40pfs_ha::Pcr,
13971        P40PfsHa_SPEC,
13972        crate::common::RW,
13973    > {
13974        crate::common::RegisterField::<
13975            4,
13976            0x1,
13977            1,
13978            0,
13979            p40pfs_ha::Pcr,
13980            p40pfs_ha::Pcr,
13981            P40PfsHa_SPEC,
13982            crate::common::RW,
13983        >::from_register(self, 0)
13984    }
13985
13986    #[doc = "N-Channel Open-Drain Control"]
13987    #[inline(always)]
13988    pub fn ncodr(
13989        self,
13990    ) -> crate::common::RegisterField<
13991        6,
13992        0x1,
13993        1,
13994        0,
13995        p40pfs_ha::Ncodr,
13996        p40pfs_ha::Ncodr,
13997        P40PfsHa_SPEC,
13998        crate::common::RW,
13999    > {
14000        crate::common::RegisterField::<
14001            6,
14002            0x1,
14003            1,
14004            0,
14005            p40pfs_ha::Ncodr,
14006            p40pfs_ha::Ncodr,
14007            P40PfsHa_SPEC,
14008            crate::common::RW,
14009        >::from_register(self, 0)
14010    }
14011
14012    #[doc = "IRQ Input Enable"]
14013    #[inline(always)]
14014    pub fn isel(
14015        self,
14016    ) -> crate::common::RegisterField<
14017        14,
14018        0x1,
14019        1,
14020        0,
14021        p40pfs_ha::Isel,
14022        p40pfs_ha::Isel,
14023        P40PfsHa_SPEC,
14024        crate::common::RW,
14025    > {
14026        crate::common::RegisterField::<
14027            14,
14028            0x1,
14029            1,
14030            0,
14031            p40pfs_ha::Isel,
14032            p40pfs_ha::Isel,
14033            P40PfsHa_SPEC,
14034            crate::common::RW,
14035        >::from_register(self, 0)
14036    }
14037
14038    #[doc = "Analog Input Enable"]
14039    #[inline(always)]
14040    pub fn asel(
14041        self,
14042    ) -> crate::common::RegisterField<
14043        15,
14044        0x1,
14045        1,
14046        0,
14047        p40pfs_ha::Asel,
14048        p40pfs_ha::Asel,
14049        P40PfsHa_SPEC,
14050        crate::common::RW,
14051    > {
14052        crate::common::RegisterField::<
14053            15,
14054            0x1,
14055            1,
14056            0,
14057            p40pfs_ha::Asel,
14058            p40pfs_ha::Asel,
14059            P40PfsHa_SPEC,
14060            crate::common::RW,
14061        >::from_register(self, 0)
14062    }
14063}
14064impl ::core::default::Default for P40PfsHa {
14065    #[inline(always)]
14066    fn default() -> P40PfsHa {
14067        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
14068    }
14069}
14070pub mod p40pfs_ha {
14071
14072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14073    pub struct Podr_SPEC;
14074    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14075    impl Podr {
14076        #[doc = "Output low"]
14077        pub const _0: Self = Self::new(0);
14078
14079        #[doc = "Output high"]
14080        pub const _1: Self = Self::new(1);
14081    }
14082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14083    pub struct Pidr_SPEC;
14084    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14085    impl Pidr {
14086        #[doc = "Low level"]
14087        pub const _0: Self = Self::new(0);
14088
14089        #[doc = "High level"]
14090        pub const _1: Self = Self::new(1);
14091    }
14092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14093    pub struct Pdr_SPEC;
14094    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14095    impl Pdr {
14096        #[doc = "Input (functions as an input pin)"]
14097        pub const _0: Self = Self::new(0);
14098
14099        #[doc = "Output (functions as an output pin)"]
14100        pub const _1: Self = Self::new(1);
14101    }
14102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14103    pub struct Pcr_SPEC;
14104    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14105    impl Pcr {
14106        #[doc = "Disable input pull-up"]
14107        pub const _0: Self = Self::new(0);
14108
14109        #[doc = "Enable input pull-up"]
14110        pub const _1: Self = Self::new(1);
14111    }
14112    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14113    pub struct Ncodr_SPEC;
14114    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14115    impl Ncodr {
14116        #[doc = "Output CMOS"]
14117        pub const _0: Self = Self::new(0);
14118
14119        #[doc = "Output NMOS open-drain"]
14120        pub const _1: Self = Self::new(1);
14121    }
14122    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14123    pub struct Isel_SPEC;
14124    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14125    impl Isel {
14126        #[doc = "Do not use as IRQn input pin"]
14127        pub const _0: Self = Self::new(0);
14128
14129        #[doc = "Use as IRQn input pin"]
14130        pub const _1: Self = Self::new(1);
14131    }
14132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14133    pub struct Asel_SPEC;
14134    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14135    impl Asel {
14136        #[doc = "Do not use as analog pin"]
14137        pub const _0: Self = Self::new(0);
14138
14139        #[doc = "Use as analog pin"]
14140        pub const _1: Self = Self::new(1);
14141    }
14142}
14143#[doc(hidden)]
14144#[derive(Copy, Clone, Eq, PartialEq)]
14145pub struct P40PfsBy_SPEC;
14146impl crate::sealed::RegSpec for P40PfsBy_SPEC {
14147    type DataType = u8;
14148}
14149
14150#[doc = "Port 40%s Pin Function Select Register"]
14151pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
14152
14153impl P40PfsBy {
14154    #[doc = "Port Output Data"]
14155    #[inline(always)]
14156    pub fn podr(
14157        self,
14158    ) -> crate::common::RegisterField<
14159        0,
14160        0x1,
14161        1,
14162        0,
14163        p40pfs_by::Podr,
14164        p40pfs_by::Podr,
14165        P40PfsBy_SPEC,
14166        crate::common::RW,
14167    > {
14168        crate::common::RegisterField::<
14169            0,
14170            0x1,
14171            1,
14172            0,
14173            p40pfs_by::Podr,
14174            p40pfs_by::Podr,
14175            P40PfsBy_SPEC,
14176            crate::common::RW,
14177        >::from_register(self, 0)
14178    }
14179
14180    #[doc = "Port State"]
14181    #[inline(always)]
14182    pub fn pidr(
14183        self,
14184    ) -> crate::common::RegisterField<
14185        1,
14186        0x1,
14187        1,
14188        0,
14189        p40pfs_by::Pidr,
14190        p40pfs_by::Pidr,
14191        P40PfsBy_SPEC,
14192        crate::common::R,
14193    > {
14194        crate::common::RegisterField::<
14195            1,
14196            0x1,
14197            1,
14198            0,
14199            p40pfs_by::Pidr,
14200            p40pfs_by::Pidr,
14201            P40PfsBy_SPEC,
14202            crate::common::R,
14203        >::from_register(self, 0)
14204    }
14205
14206    #[doc = "Port Direction"]
14207    #[inline(always)]
14208    pub fn pdr(
14209        self,
14210    ) -> crate::common::RegisterField<
14211        2,
14212        0x1,
14213        1,
14214        0,
14215        p40pfs_by::Pdr,
14216        p40pfs_by::Pdr,
14217        P40PfsBy_SPEC,
14218        crate::common::RW,
14219    > {
14220        crate::common::RegisterField::<
14221            2,
14222            0x1,
14223            1,
14224            0,
14225            p40pfs_by::Pdr,
14226            p40pfs_by::Pdr,
14227            P40PfsBy_SPEC,
14228            crate::common::RW,
14229        >::from_register(self, 0)
14230    }
14231
14232    #[doc = "Pull-up Control"]
14233    #[inline(always)]
14234    pub fn pcr(
14235        self,
14236    ) -> crate::common::RegisterField<
14237        4,
14238        0x1,
14239        1,
14240        0,
14241        p40pfs_by::Pcr,
14242        p40pfs_by::Pcr,
14243        P40PfsBy_SPEC,
14244        crate::common::RW,
14245    > {
14246        crate::common::RegisterField::<
14247            4,
14248            0x1,
14249            1,
14250            0,
14251            p40pfs_by::Pcr,
14252            p40pfs_by::Pcr,
14253            P40PfsBy_SPEC,
14254            crate::common::RW,
14255        >::from_register(self, 0)
14256    }
14257
14258    #[doc = "N-Channel Open-Drain Control"]
14259    #[inline(always)]
14260    pub fn ncodr(
14261        self,
14262    ) -> crate::common::RegisterField<
14263        6,
14264        0x1,
14265        1,
14266        0,
14267        p40pfs_by::Ncodr,
14268        p40pfs_by::Ncodr,
14269        P40PfsBy_SPEC,
14270        crate::common::RW,
14271    > {
14272        crate::common::RegisterField::<
14273            6,
14274            0x1,
14275            1,
14276            0,
14277            p40pfs_by::Ncodr,
14278            p40pfs_by::Ncodr,
14279            P40PfsBy_SPEC,
14280            crate::common::RW,
14281        >::from_register(self, 0)
14282    }
14283}
14284impl ::core::default::Default for P40PfsBy {
14285    #[inline(always)]
14286    fn default() -> P40PfsBy {
14287        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
14288    }
14289}
14290pub mod p40pfs_by {
14291
14292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14293    pub struct Podr_SPEC;
14294    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14295    impl Podr {
14296        #[doc = "Output low"]
14297        pub const _0: Self = Self::new(0);
14298
14299        #[doc = "Output high"]
14300        pub const _1: Self = Self::new(1);
14301    }
14302    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14303    pub struct Pidr_SPEC;
14304    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14305    impl Pidr {
14306        #[doc = "Low level"]
14307        pub const _0: Self = Self::new(0);
14308
14309        #[doc = "High level"]
14310        pub const _1: Self = Self::new(1);
14311    }
14312    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14313    pub struct Pdr_SPEC;
14314    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14315    impl Pdr {
14316        #[doc = "Input (functions as an input pin)"]
14317        pub const _0: Self = Self::new(0);
14318
14319        #[doc = "Output (functions as an output pin)"]
14320        pub const _1: Self = Self::new(1);
14321    }
14322    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14323    pub struct Pcr_SPEC;
14324    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14325    impl Pcr {
14326        #[doc = "Disable input pull-up"]
14327        pub const _0: Self = Self::new(0);
14328
14329        #[doc = "Enable input pull-up"]
14330        pub const _1: Self = Self::new(1);
14331    }
14332    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14333    pub struct Ncodr_SPEC;
14334    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14335    impl Ncodr {
14336        #[doc = "Output CMOS"]
14337        pub const _0: Self = Self::new(0);
14338
14339        #[doc = "Output NMOS open-drain"]
14340        pub const _1: Self = Self::new(1);
14341    }
14342}
14343#[doc(hidden)]
14344#[derive(Copy, Clone, Eq, PartialEq)]
14345pub struct P4Pfs_SPEC;
14346impl crate::sealed::RegSpec for P4Pfs_SPEC {
14347    type DataType = u32;
14348}
14349
14350#[doc = "Port 4%s Pin Function Select Register"]
14351pub type P4Pfs = crate::RegValueT<P4Pfs_SPEC>;
14352
14353impl P4Pfs {
14354    #[doc = "Port Output Data"]
14355    #[inline(always)]
14356    pub fn podr(
14357        self,
14358    ) -> crate::common::RegisterField<
14359        0,
14360        0x1,
14361        1,
14362        0,
14363        p4pfs::Podr,
14364        p4pfs::Podr,
14365        P4Pfs_SPEC,
14366        crate::common::RW,
14367    > {
14368        crate::common::RegisterField::<
14369            0,
14370            0x1,
14371            1,
14372            0,
14373            p4pfs::Podr,
14374            p4pfs::Podr,
14375            P4Pfs_SPEC,
14376            crate::common::RW,
14377        >::from_register(self, 0)
14378    }
14379
14380    #[doc = "Port State"]
14381    #[inline(always)]
14382    pub fn pidr(
14383        self,
14384    ) -> crate::common::RegisterField<
14385        1,
14386        0x1,
14387        1,
14388        0,
14389        p4pfs::Pidr,
14390        p4pfs::Pidr,
14391        P4Pfs_SPEC,
14392        crate::common::R,
14393    > {
14394        crate::common::RegisterField::<
14395            1,
14396            0x1,
14397            1,
14398            0,
14399            p4pfs::Pidr,
14400            p4pfs::Pidr,
14401            P4Pfs_SPEC,
14402            crate::common::R,
14403        >::from_register(self, 0)
14404    }
14405
14406    #[doc = "Port Direction"]
14407    #[inline(always)]
14408    pub fn pdr(
14409        self,
14410    ) -> crate::common::RegisterField<
14411        2,
14412        0x1,
14413        1,
14414        0,
14415        p4pfs::Pdr,
14416        p4pfs::Pdr,
14417        P4Pfs_SPEC,
14418        crate::common::RW,
14419    > {
14420        crate::common::RegisterField::<
14421            2,
14422            0x1,
14423            1,
14424            0,
14425            p4pfs::Pdr,
14426            p4pfs::Pdr,
14427            P4Pfs_SPEC,
14428            crate::common::RW,
14429        >::from_register(self, 0)
14430    }
14431
14432    #[doc = "Pull-up Control"]
14433    #[inline(always)]
14434    pub fn pcr(
14435        self,
14436    ) -> crate::common::RegisterField<
14437        4,
14438        0x1,
14439        1,
14440        0,
14441        p4pfs::Pcr,
14442        p4pfs::Pcr,
14443        P4Pfs_SPEC,
14444        crate::common::RW,
14445    > {
14446        crate::common::RegisterField::<
14447            4,
14448            0x1,
14449            1,
14450            0,
14451            p4pfs::Pcr,
14452            p4pfs::Pcr,
14453            P4Pfs_SPEC,
14454            crate::common::RW,
14455        >::from_register(self, 0)
14456    }
14457
14458    #[doc = "N-Channel Open-Drain Control"]
14459    #[inline(always)]
14460    pub fn ncodr(
14461        self,
14462    ) -> crate::common::RegisterField<
14463        6,
14464        0x1,
14465        1,
14466        0,
14467        p4pfs::Ncodr,
14468        p4pfs::Ncodr,
14469        P4Pfs_SPEC,
14470        crate::common::RW,
14471    > {
14472        crate::common::RegisterField::<
14473            6,
14474            0x1,
14475            1,
14476            0,
14477            p4pfs::Ncodr,
14478            p4pfs::Ncodr,
14479            P4Pfs_SPEC,
14480            crate::common::RW,
14481        >::from_register(self, 0)
14482    }
14483
14484    #[doc = "IRQ Input Enable"]
14485    #[inline(always)]
14486    pub fn isel(
14487        self,
14488    ) -> crate::common::RegisterField<
14489        14,
14490        0x1,
14491        1,
14492        0,
14493        p4pfs::Isel,
14494        p4pfs::Isel,
14495        P4Pfs_SPEC,
14496        crate::common::RW,
14497    > {
14498        crate::common::RegisterField::<
14499            14,
14500            0x1,
14501            1,
14502            0,
14503            p4pfs::Isel,
14504            p4pfs::Isel,
14505            P4Pfs_SPEC,
14506            crate::common::RW,
14507        >::from_register(self, 0)
14508    }
14509
14510    #[doc = "Analog Input Enable"]
14511    #[inline(always)]
14512    pub fn asel(
14513        self,
14514    ) -> crate::common::RegisterField<
14515        15,
14516        0x1,
14517        1,
14518        0,
14519        p4pfs::Asel,
14520        p4pfs::Asel,
14521        P4Pfs_SPEC,
14522        crate::common::RW,
14523    > {
14524        crate::common::RegisterField::<
14525            15,
14526            0x1,
14527            1,
14528            0,
14529            p4pfs::Asel,
14530            p4pfs::Asel,
14531            P4Pfs_SPEC,
14532            crate::common::RW,
14533        >::from_register(self, 0)
14534    }
14535
14536    #[doc = "Port Mode Control"]
14537    #[inline(always)]
14538    pub fn pmr(
14539        self,
14540    ) -> crate::common::RegisterField<
14541        16,
14542        0x1,
14543        1,
14544        0,
14545        p4pfs::Pmr,
14546        p4pfs::Pmr,
14547        P4Pfs_SPEC,
14548        crate::common::RW,
14549    > {
14550        crate::common::RegisterField::<
14551            16,
14552            0x1,
14553            1,
14554            0,
14555            p4pfs::Pmr,
14556            p4pfs::Pmr,
14557            P4Pfs_SPEC,
14558            crate::common::RW,
14559        >::from_register(self, 0)
14560    }
14561
14562    #[doc = "Peripheral Select"]
14563    #[inline(always)]
14564    pub fn psel(
14565        self,
14566    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P4Pfs_SPEC, crate::common::RW> {
14567        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P4Pfs_SPEC,crate::common::RW>::from_register(self,0)
14568    }
14569}
14570impl ::core::default::Default for P4Pfs {
14571    #[inline(always)]
14572    fn default() -> P4Pfs {
14573        <crate::RegValueT<P4Pfs_SPEC> as RegisterValue<_>>::new(0)
14574    }
14575}
14576pub mod p4pfs {
14577
14578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14579    pub struct Podr_SPEC;
14580    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14581    impl Podr {
14582        #[doc = "Output low"]
14583        pub const _0: Self = Self::new(0);
14584
14585        #[doc = "Output high"]
14586        pub const _1: Self = Self::new(1);
14587    }
14588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14589    pub struct Pidr_SPEC;
14590    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14591    impl Pidr {
14592        #[doc = "Low level"]
14593        pub const _0: Self = Self::new(0);
14594
14595        #[doc = "High level"]
14596        pub const _1: Self = Self::new(1);
14597    }
14598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14599    pub struct Pdr_SPEC;
14600    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14601    impl Pdr {
14602        #[doc = "Input (functions as an input pin)"]
14603        pub const _0: Self = Self::new(0);
14604
14605        #[doc = "Output (functions as an output pin)"]
14606        pub const _1: Self = Self::new(1);
14607    }
14608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14609    pub struct Pcr_SPEC;
14610    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14611    impl Pcr {
14612        #[doc = "Disable input pull-up"]
14613        pub const _0: Self = Self::new(0);
14614
14615        #[doc = "Enable input pull-up"]
14616        pub const _1: Self = Self::new(1);
14617    }
14618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14619    pub struct Ncodr_SPEC;
14620    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14621    impl Ncodr {
14622        #[doc = "Output CMOS"]
14623        pub const _0: Self = Self::new(0);
14624
14625        #[doc = "Output NMOS open-drain"]
14626        pub const _1: Self = Self::new(1);
14627    }
14628    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14629    pub struct Isel_SPEC;
14630    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14631    impl Isel {
14632        #[doc = "Do not use as IRQn input pin"]
14633        pub const _0: Self = Self::new(0);
14634
14635        #[doc = "Use as IRQn input pin"]
14636        pub const _1: Self = Self::new(1);
14637    }
14638    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14639    pub struct Asel_SPEC;
14640    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14641    impl Asel {
14642        #[doc = "Do not use as analog pin"]
14643        pub const _0: Self = Self::new(0);
14644
14645        #[doc = "Use as analog pin"]
14646        pub const _1: Self = Self::new(1);
14647    }
14648    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14649    pub struct Pmr_SPEC;
14650    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
14651    impl Pmr {
14652        #[doc = "Use as general I/O pin"]
14653        pub const _0: Self = Self::new(0);
14654
14655        #[doc = "Use as I/O port for peripheral functions"]
14656        pub const _1: Self = Self::new(1);
14657    }
14658}
14659#[doc(hidden)]
14660#[derive(Copy, Clone, Eq, PartialEq)]
14661pub struct P4PfsHa_SPEC;
14662impl crate::sealed::RegSpec for P4PfsHa_SPEC {
14663    type DataType = u16;
14664}
14665
14666#[doc = "Port 4%s Pin Function Select Register"]
14667pub type P4PfsHa = crate::RegValueT<P4PfsHa_SPEC>;
14668
14669impl P4PfsHa {
14670    #[doc = "Port Output Data"]
14671    #[inline(always)]
14672    pub fn podr(
14673        self,
14674    ) -> crate::common::RegisterField<
14675        0,
14676        0x1,
14677        1,
14678        0,
14679        p4pfs_ha::Podr,
14680        p4pfs_ha::Podr,
14681        P4PfsHa_SPEC,
14682        crate::common::RW,
14683    > {
14684        crate::common::RegisterField::<
14685            0,
14686            0x1,
14687            1,
14688            0,
14689            p4pfs_ha::Podr,
14690            p4pfs_ha::Podr,
14691            P4PfsHa_SPEC,
14692            crate::common::RW,
14693        >::from_register(self, 0)
14694    }
14695
14696    #[doc = "Port State"]
14697    #[inline(always)]
14698    pub fn pidr(
14699        self,
14700    ) -> crate::common::RegisterField<
14701        1,
14702        0x1,
14703        1,
14704        0,
14705        p4pfs_ha::Pidr,
14706        p4pfs_ha::Pidr,
14707        P4PfsHa_SPEC,
14708        crate::common::R,
14709    > {
14710        crate::common::RegisterField::<
14711            1,
14712            0x1,
14713            1,
14714            0,
14715            p4pfs_ha::Pidr,
14716            p4pfs_ha::Pidr,
14717            P4PfsHa_SPEC,
14718            crate::common::R,
14719        >::from_register(self, 0)
14720    }
14721
14722    #[doc = "Port Direction"]
14723    #[inline(always)]
14724    pub fn pdr(
14725        self,
14726    ) -> crate::common::RegisterField<
14727        2,
14728        0x1,
14729        1,
14730        0,
14731        p4pfs_ha::Pdr,
14732        p4pfs_ha::Pdr,
14733        P4PfsHa_SPEC,
14734        crate::common::RW,
14735    > {
14736        crate::common::RegisterField::<
14737            2,
14738            0x1,
14739            1,
14740            0,
14741            p4pfs_ha::Pdr,
14742            p4pfs_ha::Pdr,
14743            P4PfsHa_SPEC,
14744            crate::common::RW,
14745        >::from_register(self, 0)
14746    }
14747
14748    #[doc = "Pull-up Control"]
14749    #[inline(always)]
14750    pub fn pcr(
14751        self,
14752    ) -> crate::common::RegisterField<
14753        4,
14754        0x1,
14755        1,
14756        0,
14757        p4pfs_ha::Pcr,
14758        p4pfs_ha::Pcr,
14759        P4PfsHa_SPEC,
14760        crate::common::RW,
14761    > {
14762        crate::common::RegisterField::<
14763            4,
14764            0x1,
14765            1,
14766            0,
14767            p4pfs_ha::Pcr,
14768            p4pfs_ha::Pcr,
14769            P4PfsHa_SPEC,
14770            crate::common::RW,
14771        >::from_register(self, 0)
14772    }
14773
14774    #[doc = "N-Channel Open-Drain Control"]
14775    #[inline(always)]
14776    pub fn ncodr(
14777        self,
14778    ) -> crate::common::RegisterField<
14779        6,
14780        0x1,
14781        1,
14782        0,
14783        p4pfs_ha::Ncodr,
14784        p4pfs_ha::Ncodr,
14785        P4PfsHa_SPEC,
14786        crate::common::RW,
14787    > {
14788        crate::common::RegisterField::<
14789            6,
14790            0x1,
14791            1,
14792            0,
14793            p4pfs_ha::Ncodr,
14794            p4pfs_ha::Ncodr,
14795            P4PfsHa_SPEC,
14796            crate::common::RW,
14797        >::from_register(self, 0)
14798    }
14799
14800    #[doc = "IRQ Input Enable"]
14801    #[inline(always)]
14802    pub fn isel(
14803        self,
14804    ) -> crate::common::RegisterField<
14805        14,
14806        0x1,
14807        1,
14808        0,
14809        p4pfs_ha::Isel,
14810        p4pfs_ha::Isel,
14811        P4PfsHa_SPEC,
14812        crate::common::RW,
14813    > {
14814        crate::common::RegisterField::<
14815            14,
14816            0x1,
14817            1,
14818            0,
14819            p4pfs_ha::Isel,
14820            p4pfs_ha::Isel,
14821            P4PfsHa_SPEC,
14822            crate::common::RW,
14823        >::from_register(self, 0)
14824    }
14825
14826    #[doc = "Analog Input Enable"]
14827    #[inline(always)]
14828    pub fn asel(
14829        self,
14830    ) -> crate::common::RegisterField<
14831        15,
14832        0x1,
14833        1,
14834        0,
14835        p4pfs_ha::Asel,
14836        p4pfs_ha::Asel,
14837        P4PfsHa_SPEC,
14838        crate::common::RW,
14839    > {
14840        crate::common::RegisterField::<
14841            15,
14842            0x1,
14843            1,
14844            0,
14845            p4pfs_ha::Asel,
14846            p4pfs_ha::Asel,
14847            P4PfsHa_SPEC,
14848            crate::common::RW,
14849        >::from_register(self, 0)
14850    }
14851}
14852impl ::core::default::Default for P4PfsHa {
14853    #[inline(always)]
14854    fn default() -> P4PfsHa {
14855        <crate::RegValueT<P4PfsHa_SPEC> as RegisterValue<_>>::new(0)
14856    }
14857}
14858pub mod p4pfs_ha {
14859
14860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14861    pub struct Podr_SPEC;
14862    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14863    impl Podr {
14864        #[doc = "Output low"]
14865        pub const _0: Self = Self::new(0);
14866
14867        #[doc = "Output high"]
14868        pub const _1: Self = Self::new(1);
14869    }
14870    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14871    pub struct Pidr_SPEC;
14872    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14873    impl Pidr {
14874        #[doc = "Low level"]
14875        pub const _0: Self = Self::new(0);
14876
14877        #[doc = "High level"]
14878        pub const _1: Self = Self::new(1);
14879    }
14880    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14881    pub struct Pdr_SPEC;
14882    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14883    impl Pdr {
14884        #[doc = "Input (functions as an input pin)"]
14885        pub const _0: Self = Self::new(0);
14886
14887        #[doc = "Output (functions as an output pin)"]
14888        pub const _1: Self = Self::new(1);
14889    }
14890    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14891    pub struct Pcr_SPEC;
14892    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14893    impl Pcr {
14894        #[doc = "Disable input pull-up"]
14895        pub const _0: Self = Self::new(0);
14896
14897        #[doc = "Enable input pull-up"]
14898        pub const _1: Self = Self::new(1);
14899    }
14900    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14901    pub struct Ncodr_SPEC;
14902    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14903    impl Ncodr {
14904        #[doc = "Output CMOS"]
14905        pub const _0: Self = Self::new(0);
14906
14907        #[doc = "Output NMOS open-drain"]
14908        pub const _1: Self = Self::new(1);
14909    }
14910    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14911    pub struct Isel_SPEC;
14912    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14913    impl Isel {
14914        #[doc = "Do not use as IRQn input pin"]
14915        pub const _0: Self = Self::new(0);
14916
14917        #[doc = "Use as IRQn input pin"]
14918        pub const _1: Self = Self::new(1);
14919    }
14920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14921    pub struct Asel_SPEC;
14922    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14923    impl Asel {
14924        #[doc = "Do not use as analog pin"]
14925        pub const _0: Self = Self::new(0);
14926
14927        #[doc = "Use as analog pin"]
14928        pub const _1: Self = Self::new(1);
14929    }
14930}
14931#[doc(hidden)]
14932#[derive(Copy, Clone, Eq, PartialEq)]
14933pub struct P4PfsBy_SPEC;
14934impl crate::sealed::RegSpec for P4PfsBy_SPEC {
14935    type DataType = u8;
14936}
14937
14938#[doc = "Port 4%s Pin Function Select Register"]
14939pub type P4PfsBy = crate::RegValueT<P4PfsBy_SPEC>;
14940
14941impl P4PfsBy {
14942    #[doc = "Port Output Data"]
14943    #[inline(always)]
14944    pub fn podr(
14945        self,
14946    ) -> crate::common::RegisterField<
14947        0,
14948        0x1,
14949        1,
14950        0,
14951        p4pfs_by::Podr,
14952        p4pfs_by::Podr,
14953        P4PfsBy_SPEC,
14954        crate::common::RW,
14955    > {
14956        crate::common::RegisterField::<
14957            0,
14958            0x1,
14959            1,
14960            0,
14961            p4pfs_by::Podr,
14962            p4pfs_by::Podr,
14963            P4PfsBy_SPEC,
14964            crate::common::RW,
14965        >::from_register(self, 0)
14966    }
14967
14968    #[doc = "Port State"]
14969    #[inline(always)]
14970    pub fn pidr(
14971        self,
14972    ) -> crate::common::RegisterField<
14973        1,
14974        0x1,
14975        1,
14976        0,
14977        p4pfs_by::Pidr,
14978        p4pfs_by::Pidr,
14979        P4PfsBy_SPEC,
14980        crate::common::R,
14981    > {
14982        crate::common::RegisterField::<
14983            1,
14984            0x1,
14985            1,
14986            0,
14987            p4pfs_by::Pidr,
14988            p4pfs_by::Pidr,
14989            P4PfsBy_SPEC,
14990            crate::common::R,
14991        >::from_register(self, 0)
14992    }
14993
14994    #[doc = "Port Direction"]
14995    #[inline(always)]
14996    pub fn pdr(
14997        self,
14998    ) -> crate::common::RegisterField<
14999        2,
15000        0x1,
15001        1,
15002        0,
15003        p4pfs_by::Pdr,
15004        p4pfs_by::Pdr,
15005        P4PfsBy_SPEC,
15006        crate::common::RW,
15007    > {
15008        crate::common::RegisterField::<
15009            2,
15010            0x1,
15011            1,
15012            0,
15013            p4pfs_by::Pdr,
15014            p4pfs_by::Pdr,
15015            P4PfsBy_SPEC,
15016            crate::common::RW,
15017        >::from_register(self, 0)
15018    }
15019
15020    #[doc = "Pull-up Control"]
15021    #[inline(always)]
15022    pub fn pcr(
15023        self,
15024    ) -> crate::common::RegisterField<
15025        4,
15026        0x1,
15027        1,
15028        0,
15029        p4pfs_by::Pcr,
15030        p4pfs_by::Pcr,
15031        P4PfsBy_SPEC,
15032        crate::common::RW,
15033    > {
15034        crate::common::RegisterField::<
15035            4,
15036            0x1,
15037            1,
15038            0,
15039            p4pfs_by::Pcr,
15040            p4pfs_by::Pcr,
15041            P4PfsBy_SPEC,
15042            crate::common::RW,
15043        >::from_register(self, 0)
15044    }
15045
15046    #[doc = "N-Channel Open-Drain Control"]
15047    #[inline(always)]
15048    pub fn ncodr(
15049        self,
15050    ) -> crate::common::RegisterField<
15051        6,
15052        0x1,
15053        1,
15054        0,
15055        p4pfs_by::Ncodr,
15056        p4pfs_by::Ncodr,
15057        P4PfsBy_SPEC,
15058        crate::common::RW,
15059    > {
15060        crate::common::RegisterField::<
15061            6,
15062            0x1,
15063            1,
15064            0,
15065            p4pfs_by::Ncodr,
15066            p4pfs_by::Ncodr,
15067            P4PfsBy_SPEC,
15068            crate::common::RW,
15069        >::from_register(self, 0)
15070    }
15071}
15072impl ::core::default::Default for P4PfsBy {
15073    #[inline(always)]
15074    fn default() -> P4PfsBy {
15075        <crate::RegValueT<P4PfsBy_SPEC> as RegisterValue<_>>::new(0)
15076    }
15077}
15078pub mod p4pfs_by {
15079
15080    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15081    pub struct Podr_SPEC;
15082    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15083    impl Podr {
15084        #[doc = "Output low"]
15085        pub const _0: Self = Self::new(0);
15086
15087        #[doc = "Output high"]
15088        pub const _1: Self = Self::new(1);
15089    }
15090    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15091    pub struct Pidr_SPEC;
15092    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15093    impl Pidr {
15094        #[doc = "Low level"]
15095        pub const _0: Self = Self::new(0);
15096
15097        #[doc = "High level"]
15098        pub const _1: Self = Self::new(1);
15099    }
15100    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15101    pub struct Pdr_SPEC;
15102    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15103    impl Pdr {
15104        #[doc = "Input (functions as an input pin)"]
15105        pub const _0: Self = Self::new(0);
15106
15107        #[doc = "Output (functions as an output pin)"]
15108        pub const _1: Self = Self::new(1);
15109    }
15110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15111    pub struct Pcr_SPEC;
15112    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15113    impl Pcr {
15114        #[doc = "Disable input pull-up"]
15115        pub const _0: Self = Self::new(0);
15116
15117        #[doc = "Enable input pull-up"]
15118        pub const _1: Self = Self::new(1);
15119    }
15120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15121    pub struct Ncodr_SPEC;
15122    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15123    impl Ncodr {
15124        #[doc = "Output CMOS"]
15125        pub const _0: Self = Self::new(0);
15126
15127        #[doc = "Output NMOS open-drain"]
15128        pub const _1: Self = Self::new(1);
15129    }
15130}
15131#[doc(hidden)]
15132#[derive(Copy, Clone, Eq, PartialEq)]
15133pub struct P50Pfs_SPEC;
15134impl crate::sealed::RegSpec for P50Pfs_SPEC {
15135    type DataType = u32;
15136}
15137
15138#[doc = "Port 50%s Pin Function Select Register"]
15139pub type P50Pfs = crate::RegValueT<P50Pfs_SPEC>;
15140
15141impl P50Pfs {
15142    #[doc = "Port Output Data"]
15143    #[inline(always)]
15144    pub fn podr(
15145        self,
15146    ) -> crate::common::RegisterField<
15147        0,
15148        0x1,
15149        1,
15150        0,
15151        p50pfs::Podr,
15152        p50pfs::Podr,
15153        P50Pfs_SPEC,
15154        crate::common::RW,
15155    > {
15156        crate::common::RegisterField::<
15157            0,
15158            0x1,
15159            1,
15160            0,
15161            p50pfs::Podr,
15162            p50pfs::Podr,
15163            P50Pfs_SPEC,
15164            crate::common::RW,
15165        >::from_register(self, 0)
15166    }
15167
15168    #[doc = "Port State"]
15169    #[inline(always)]
15170    pub fn pidr(
15171        self,
15172    ) -> crate::common::RegisterField<
15173        1,
15174        0x1,
15175        1,
15176        0,
15177        p50pfs::Pidr,
15178        p50pfs::Pidr,
15179        P50Pfs_SPEC,
15180        crate::common::R,
15181    > {
15182        crate::common::RegisterField::<
15183            1,
15184            0x1,
15185            1,
15186            0,
15187            p50pfs::Pidr,
15188            p50pfs::Pidr,
15189            P50Pfs_SPEC,
15190            crate::common::R,
15191        >::from_register(self, 0)
15192    }
15193
15194    #[doc = "Port Direction"]
15195    #[inline(always)]
15196    pub fn pdr(
15197        self,
15198    ) -> crate::common::RegisterField<
15199        2,
15200        0x1,
15201        1,
15202        0,
15203        p50pfs::Pdr,
15204        p50pfs::Pdr,
15205        P50Pfs_SPEC,
15206        crate::common::RW,
15207    > {
15208        crate::common::RegisterField::<
15209            2,
15210            0x1,
15211            1,
15212            0,
15213            p50pfs::Pdr,
15214            p50pfs::Pdr,
15215            P50Pfs_SPEC,
15216            crate::common::RW,
15217        >::from_register(self, 0)
15218    }
15219
15220    #[doc = "Pull-up Control"]
15221    #[inline(always)]
15222    pub fn pcr(
15223        self,
15224    ) -> crate::common::RegisterField<
15225        4,
15226        0x1,
15227        1,
15228        0,
15229        p50pfs::Pcr,
15230        p50pfs::Pcr,
15231        P50Pfs_SPEC,
15232        crate::common::RW,
15233    > {
15234        crate::common::RegisterField::<
15235            4,
15236            0x1,
15237            1,
15238            0,
15239            p50pfs::Pcr,
15240            p50pfs::Pcr,
15241            P50Pfs_SPEC,
15242            crate::common::RW,
15243        >::from_register(self, 0)
15244    }
15245
15246    #[doc = "N-Channel Open-Drain Control"]
15247    #[inline(always)]
15248    pub fn ncodr(
15249        self,
15250    ) -> crate::common::RegisterField<
15251        6,
15252        0x1,
15253        1,
15254        0,
15255        p50pfs::Ncodr,
15256        p50pfs::Ncodr,
15257        P50Pfs_SPEC,
15258        crate::common::RW,
15259    > {
15260        crate::common::RegisterField::<
15261            6,
15262            0x1,
15263            1,
15264            0,
15265            p50pfs::Ncodr,
15266            p50pfs::Ncodr,
15267            P50Pfs_SPEC,
15268            crate::common::RW,
15269        >::from_register(self, 0)
15270    }
15271
15272    #[doc = "IRQ Input Enable"]
15273    #[inline(always)]
15274    pub fn isel(
15275        self,
15276    ) -> crate::common::RegisterField<
15277        14,
15278        0x1,
15279        1,
15280        0,
15281        p50pfs::Isel,
15282        p50pfs::Isel,
15283        P50Pfs_SPEC,
15284        crate::common::RW,
15285    > {
15286        crate::common::RegisterField::<
15287            14,
15288            0x1,
15289            1,
15290            0,
15291            p50pfs::Isel,
15292            p50pfs::Isel,
15293            P50Pfs_SPEC,
15294            crate::common::RW,
15295        >::from_register(self, 0)
15296    }
15297
15298    #[doc = "Analog Input Enable"]
15299    #[inline(always)]
15300    pub fn asel(
15301        self,
15302    ) -> crate::common::RegisterField<
15303        15,
15304        0x1,
15305        1,
15306        0,
15307        p50pfs::Asel,
15308        p50pfs::Asel,
15309        P50Pfs_SPEC,
15310        crate::common::RW,
15311    > {
15312        crate::common::RegisterField::<
15313            15,
15314            0x1,
15315            1,
15316            0,
15317            p50pfs::Asel,
15318            p50pfs::Asel,
15319            P50Pfs_SPEC,
15320            crate::common::RW,
15321        >::from_register(self, 0)
15322    }
15323
15324    #[doc = "Port Mode Control"]
15325    #[inline(always)]
15326    pub fn pmr(
15327        self,
15328    ) -> crate::common::RegisterField<
15329        16,
15330        0x1,
15331        1,
15332        0,
15333        p50pfs::Pmr,
15334        p50pfs::Pmr,
15335        P50Pfs_SPEC,
15336        crate::common::RW,
15337    > {
15338        crate::common::RegisterField::<
15339            16,
15340            0x1,
15341            1,
15342            0,
15343            p50pfs::Pmr,
15344            p50pfs::Pmr,
15345            P50Pfs_SPEC,
15346            crate::common::RW,
15347        >::from_register(self, 0)
15348    }
15349
15350    #[doc = "Peripheral Select"]
15351    #[inline(always)]
15352    pub fn psel(
15353        self,
15354    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P50Pfs_SPEC, crate::common::RW> {
15355        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P50Pfs_SPEC,crate::common::RW>::from_register(self,0)
15356    }
15357}
15358impl ::core::default::Default for P50Pfs {
15359    #[inline(always)]
15360    fn default() -> P50Pfs {
15361        <crate::RegValueT<P50Pfs_SPEC> as RegisterValue<_>>::new(0)
15362    }
15363}
15364pub mod p50pfs {
15365
15366    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15367    pub struct Podr_SPEC;
15368    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15369    impl Podr {
15370        #[doc = "Output low"]
15371        pub const _0: Self = Self::new(0);
15372
15373        #[doc = "Output high"]
15374        pub const _1: Self = Self::new(1);
15375    }
15376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15377    pub struct Pidr_SPEC;
15378    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15379    impl Pidr {
15380        #[doc = "Low level"]
15381        pub const _0: Self = Self::new(0);
15382
15383        #[doc = "High level"]
15384        pub const _1: Self = Self::new(1);
15385    }
15386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15387    pub struct Pdr_SPEC;
15388    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15389    impl Pdr {
15390        #[doc = "Input (functions as an input pin)"]
15391        pub const _0: Self = Self::new(0);
15392
15393        #[doc = "Output (functions as an output pin)"]
15394        pub const _1: Self = Self::new(1);
15395    }
15396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15397    pub struct Pcr_SPEC;
15398    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15399    impl Pcr {
15400        #[doc = "Disable input pull-up"]
15401        pub const _0: Self = Self::new(0);
15402
15403        #[doc = "Enable input pull-up"]
15404        pub const _1: Self = Self::new(1);
15405    }
15406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15407    pub struct Ncodr_SPEC;
15408    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15409    impl Ncodr {
15410        #[doc = "Output CMOS"]
15411        pub const _0: Self = Self::new(0);
15412
15413        #[doc = "Output NMOS open-drain"]
15414        pub const _1: Self = Self::new(1);
15415    }
15416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15417    pub struct Isel_SPEC;
15418    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15419    impl Isel {
15420        #[doc = "Do not use as IRQn input pin"]
15421        pub const _0: Self = Self::new(0);
15422
15423        #[doc = "Use as IRQn input pin"]
15424        pub const _1: Self = Self::new(1);
15425    }
15426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15427    pub struct Asel_SPEC;
15428    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15429    impl Asel {
15430        #[doc = "Do not use as analog pin"]
15431        pub const _0: Self = Self::new(0);
15432
15433        #[doc = "Use as analog pin"]
15434        pub const _1: Self = Self::new(1);
15435    }
15436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15437    pub struct Pmr_SPEC;
15438    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15439    impl Pmr {
15440        #[doc = "Use as general I/O pin"]
15441        pub const _0: Self = Self::new(0);
15442
15443        #[doc = "Use as I/O port for peripheral functions"]
15444        pub const _1: Self = Self::new(1);
15445    }
15446}
15447#[doc(hidden)]
15448#[derive(Copy, Clone, Eq, PartialEq)]
15449pub struct P50PfsHa_SPEC;
15450impl crate::sealed::RegSpec for P50PfsHa_SPEC {
15451    type DataType = u16;
15452}
15453
15454#[doc = "Port 50%s Pin Function Select Register"]
15455pub type P50PfsHa = crate::RegValueT<P50PfsHa_SPEC>;
15456
15457impl P50PfsHa {
15458    #[doc = "Port Output Data"]
15459    #[inline(always)]
15460    pub fn podr(
15461        self,
15462    ) -> crate::common::RegisterField<
15463        0,
15464        0x1,
15465        1,
15466        0,
15467        p50pfs_ha::Podr,
15468        p50pfs_ha::Podr,
15469        P50PfsHa_SPEC,
15470        crate::common::RW,
15471    > {
15472        crate::common::RegisterField::<
15473            0,
15474            0x1,
15475            1,
15476            0,
15477            p50pfs_ha::Podr,
15478            p50pfs_ha::Podr,
15479            P50PfsHa_SPEC,
15480            crate::common::RW,
15481        >::from_register(self, 0)
15482    }
15483
15484    #[doc = "Port State"]
15485    #[inline(always)]
15486    pub fn pidr(
15487        self,
15488    ) -> crate::common::RegisterField<
15489        1,
15490        0x1,
15491        1,
15492        0,
15493        p50pfs_ha::Pidr,
15494        p50pfs_ha::Pidr,
15495        P50PfsHa_SPEC,
15496        crate::common::R,
15497    > {
15498        crate::common::RegisterField::<
15499            1,
15500            0x1,
15501            1,
15502            0,
15503            p50pfs_ha::Pidr,
15504            p50pfs_ha::Pidr,
15505            P50PfsHa_SPEC,
15506            crate::common::R,
15507        >::from_register(self, 0)
15508    }
15509
15510    #[doc = "Port Direction"]
15511    #[inline(always)]
15512    pub fn pdr(
15513        self,
15514    ) -> crate::common::RegisterField<
15515        2,
15516        0x1,
15517        1,
15518        0,
15519        p50pfs_ha::Pdr,
15520        p50pfs_ha::Pdr,
15521        P50PfsHa_SPEC,
15522        crate::common::RW,
15523    > {
15524        crate::common::RegisterField::<
15525            2,
15526            0x1,
15527            1,
15528            0,
15529            p50pfs_ha::Pdr,
15530            p50pfs_ha::Pdr,
15531            P50PfsHa_SPEC,
15532            crate::common::RW,
15533        >::from_register(self, 0)
15534    }
15535
15536    #[doc = "Pull-up Control"]
15537    #[inline(always)]
15538    pub fn pcr(
15539        self,
15540    ) -> crate::common::RegisterField<
15541        4,
15542        0x1,
15543        1,
15544        0,
15545        p50pfs_ha::Pcr,
15546        p50pfs_ha::Pcr,
15547        P50PfsHa_SPEC,
15548        crate::common::RW,
15549    > {
15550        crate::common::RegisterField::<
15551            4,
15552            0x1,
15553            1,
15554            0,
15555            p50pfs_ha::Pcr,
15556            p50pfs_ha::Pcr,
15557            P50PfsHa_SPEC,
15558            crate::common::RW,
15559        >::from_register(self, 0)
15560    }
15561
15562    #[doc = "N-Channel Open-Drain Control"]
15563    #[inline(always)]
15564    pub fn ncodr(
15565        self,
15566    ) -> crate::common::RegisterField<
15567        6,
15568        0x1,
15569        1,
15570        0,
15571        p50pfs_ha::Ncodr,
15572        p50pfs_ha::Ncodr,
15573        P50PfsHa_SPEC,
15574        crate::common::RW,
15575    > {
15576        crate::common::RegisterField::<
15577            6,
15578            0x1,
15579            1,
15580            0,
15581            p50pfs_ha::Ncodr,
15582            p50pfs_ha::Ncodr,
15583            P50PfsHa_SPEC,
15584            crate::common::RW,
15585        >::from_register(self, 0)
15586    }
15587
15588    #[doc = "IRQ Input Enable"]
15589    #[inline(always)]
15590    pub fn isel(
15591        self,
15592    ) -> crate::common::RegisterField<
15593        14,
15594        0x1,
15595        1,
15596        0,
15597        p50pfs_ha::Isel,
15598        p50pfs_ha::Isel,
15599        P50PfsHa_SPEC,
15600        crate::common::RW,
15601    > {
15602        crate::common::RegisterField::<
15603            14,
15604            0x1,
15605            1,
15606            0,
15607            p50pfs_ha::Isel,
15608            p50pfs_ha::Isel,
15609            P50PfsHa_SPEC,
15610            crate::common::RW,
15611        >::from_register(self, 0)
15612    }
15613
15614    #[doc = "Analog Input Enable"]
15615    #[inline(always)]
15616    pub fn asel(
15617        self,
15618    ) -> crate::common::RegisterField<
15619        15,
15620        0x1,
15621        1,
15622        0,
15623        p50pfs_ha::Asel,
15624        p50pfs_ha::Asel,
15625        P50PfsHa_SPEC,
15626        crate::common::RW,
15627    > {
15628        crate::common::RegisterField::<
15629            15,
15630            0x1,
15631            1,
15632            0,
15633            p50pfs_ha::Asel,
15634            p50pfs_ha::Asel,
15635            P50PfsHa_SPEC,
15636            crate::common::RW,
15637        >::from_register(self, 0)
15638    }
15639}
15640impl ::core::default::Default for P50PfsHa {
15641    #[inline(always)]
15642    fn default() -> P50PfsHa {
15643        <crate::RegValueT<P50PfsHa_SPEC> as RegisterValue<_>>::new(0)
15644    }
15645}
15646pub mod p50pfs_ha {
15647
15648    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15649    pub struct Podr_SPEC;
15650    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15651    impl Podr {
15652        #[doc = "Output low"]
15653        pub const _0: Self = Self::new(0);
15654
15655        #[doc = "Output high"]
15656        pub const _1: Self = Self::new(1);
15657    }
15658    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15659    pub struct Pidr_SPEC;
15660    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15661    impl Pidr {
15662        #[doc = "Low level"]
15663        pub const _0: Self = Self::new(0);
15664
15665        #[doc = "High level"]
15666        pub const _1: Self = Self::new(1);
15667    }
15668    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15669    pub struct Pdr_SPEC;
15670    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15671    impl Pdr {
15672        #[doc = "Input (functions as an input pin)"]
15673        pub const _0: Self = Self::new(0);
15674
15675        #[doc = "Output (functions as an output pin)"]
15676        pub const _1: Self = Self::new(1);
15677    }
15678    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15679    pub struct Pcr_SPEC;
15680    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15681    impl Pcr {
15682        #[doc = "Disable input pull-up"]
15683        pub const _0: Self = Self::new(0);
15684
15685        #[doc = "Enable input pull-up"]
15686        pub const _1: Self = Self::new(1);
15687    }
15688    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15689    pub struct Ncodr_SPEC;
15690    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15691    impl Ncodr {
15692        #[doc = "Output CMOS"]
15693        pub const _0: Self = Self::new(0);
15694
15695        #[doc = "Output NMOS open-drain"]
15696        pub const _1: Self = Self::new(1);
15697    }
15698    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15699    pub struct Isel_SPEC;
15700    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15701    impl Isel {
15702        #[doc = "Do not use as IRQn input pin"]
15703        pub const _0: Self = Self::new(0);
15704
15705        #[doc = "Use as IRQn input pin"]
15706        pub const _1: Self = Self::new(1);
15707    }
15708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15709    pub struct Asel_SPEC;
15710    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15711    impl Asel {
15712        #[doc = "Do not use as analog pin"]
15713        pub const _0: Self = Self::new(0);
15714
15715        #[doc = "Use as analog pin"]
15716        pub const _1: Self = Self::new(1);
15717    }
15718}
15719#[doc(hidden)]
15720#[derive(Copy, Clone, Eq, PartialEq)]
15721pub struct P50PfsBy_SPEC;
15722impl crate::sealed::RegSpec for P50PfsBy_SPEC {
15723    type DataType = u8;
15724}
15725
15726#[doc = "Port 50%s Pin Function Select Register"]
15727pub type P50PfsBy = crate::RegValueT<P50PfsBy_SPEC>;
15728
15729impl P50PfsBy {
15730    #[doc = "Port Output Data"]
15731    #[inline(always)]
15732    pub fn podr(
15733        self,
15734    ) -> crate::common::RegisterField<
15735        0,
15736        0x1,
15737        1,
15738        0,
15739        p50pfs_by::Podr,
15740        p50pfs_by::Podr,
15741        P50PfsBy_SPEC,
15742        crate::common::RW,
15743    > {
15744        crate::common::RegisterField::<
15745            0,
15746            0x1,
15747            1,
15748            0,
15749            p50pfs_by::Podr,
15750            p50pfs_by::Podr,
15751            P50PfsBy_SPEC,
15752            crate::common::RW,
15753        >::from_register(self, 0)
15754    }
15755
15756    #[doc = "Port State"]
15757    #[inline(always)]
15758    pub fn pidr(
15759        self,
15760    ) -> crate::common::RegisterField<
15761        1,
15762        0x1,
15763        1,
15764        0,
15765        p50pfs_by::Pidr,
15766        p50pfs_by::Pidr,
15767        P50PfsBy_SPEC,
15768        crate::common::R,
15769    > {
15770        crate::common::RegisterField::<
15771            1,
15772            0x1,
15773            1,
15774            0,
15775            p50pfs_by::Pidr,
15776            p50pfs_by::Pidr,
15777            P50PfsBy_SPEC,
15778            crate::common::R,
15779        >::from_register(self, 0)
15780    }
15781
15782    #[doc = "Port Direction"]
15783    #[inline(always)]
15784    pub fn pdr(
15785        self,
15786    ) -> crate::common::RegisterField<
15787        2,
15788        0x1,
15789        1,
15790        0,
15791        p50pfs_by::Pdr,
15792        p50pfs_by::Pdr,
15793        P50PfsBy_SPEC,
15794        crate::common::RW,
15795    > {
15796        crate::common::RegisterField::<
15797            2,
15798            0x1,
15799            1,
15800            0,
15801            p50pfs_by::Pdr,
15802            p50pfs_by::Pdr,
15803            P50PfsBy_SPEC,
15804            crate::common::RW,
15805        >::from_register(self, 0)
15806    }
15807
15808    #[doc = "Pull-up Control"]
15809    #[inline(always)]
15810    pub fn pcr(
15811        self,
15812    ) -> crate::common::RegisterField<
15813        4,
15814        0x1,
15815        1,
15816        0,
15817        p50pfs_by::Pcr,
15818        p50pfs_by::Pcr,
15819        P50PfsBy_SPEC,
15820        crate::common::RW,
15821    > {
15822        crate::common::RegisterField::<
15823            4,
15824            0x1,
15825            1,
15826            0,
15827            p50pfs_by::Pcr,
15828            p50pfs_by::Pcr,
15829            P50PfsBy_SPEC,
15830            crate::common::RW,
15831        >::from_register(self, 0)
15832    }
15833
15834    #[doc = "N-Channel Open-Drain Control"]
15835    #[inline(always)]
15836    pub fn ncodr(
15837        self,
15838    ) -> crate::common::RegisterField<
15839        6,
15840        0x1,
15841        1,
15842        0,
15843        p50pfs_by::Ncodr,
15844        p50pfs_by::Ncodr,
15845        P50PfsBy_SPEC,
15846        crate::common::RW,
15847    > {
15848        crate::common::RegisterField::<
15849            6,
15850            0x1,
15851            1,
15852            0,
15853            p50pfs_by::Ncodr,
15854            p50pfs_by::Ncodr,
15855            P50PfsBy_SPEC,
15856            crate::common::RW,
15857        >::from_register(self, 0)
15858    }
15859}
15860impl ::core::default::Default for P50PfsBy {
15861    #[inline(always)]
15862    fn default() -> P50PfsBy {
15863        <crate::RegValueT<P50PfsBy_SPEC> as RegisterValue<_>>::new(0)
15864    }
15865}
15866pub mod p50pfs_by {
15867
15868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15869    pub struct Podr_SPEC;
15870    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15871    impl Podr {
15872        #[doc = "Output low"]
15873        pub const _0: Self = Self::new(0);
15874
15875        #[doc = "Output high"]
15876        pub const _1: Self = Self::new(1);
15877    }
15878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15879    pub struct Pidr_SPEC;
15880    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15881    impl Pidr {
15882        #[doc = "Low level"]
15883        pub const _0: Self = Self::new(0);
15884
15885        #[doc = "High level"]
15886        pub const _1: Self = Self::new(1);
15887    }
15888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15889    pub struct Pdr_SPEC;
15890    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15891    impl Pdr {
15892        #[doc = "Input (functions as an input pin)"]
15893        pub const _0: Self = Self::new(0);
15894
15895        #[doc = "Output (functions as an output pin)"]
15896        pub const _1: Self = Self::new(1);
15897    }
15898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15899    pub struct Pcr_SPEC;
15900    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15901    impl Pcr {
15902        #[doc = "Disable input pull-up"]
15903        pub const _0: Self = Self::new(0);
15904
15905        #[doc = "Enable input pull-up"]
15906        pub const _1: Self = Self::new(1);
15907    }
15908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15909    pub struct Ncodr_SPEC;
15910    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15911    impl Ncodr {
15912        #[doc = "Output CMOS"]
15913        pub const _0: Self = Self::new(0);
15914
15915        #[doc = "Output NMOS open-drain"]
15916        pub const _1: Self = Self::new(1);
15917    }
15918}
15919#[doc(hidden)]
15920#[derive(Copy, Clone, Eq, PartialEq)]
15921pub struct P600Pfs_SPEC;
15922impl crate::sealed::RegSpec for P600Pfs_SPEC {
15923    type DataType = u32;
15924}
15925
15926#[doc = "Port 600 Pin Function Select Register"]
15927pub type P600Pfs = crate::RegValueT<P600Pfs_SPEC>;
15928
15929impl P600Pfs {
15930    #[doc = "Port Output Data"]
15931    #[inline(always)]
15932    pub fn podr(
15933        self,
15934    ) -> crate::common::RegisterField<
15935        0,
15936        0x1,
15937        1,
15938        0,
15939        p600pfs::Podr,
15940        p600pfs::Podr,
15941        P600Pfs_SPEC,
15942        crate::common::RW,
15943    > {
15944        crate::common::RegisterField::<
15945            0,
15946            0x1,
15947            1,
15948            0,
15949            p600pfs::Podr,
15950            p600pfs::Podr,
15951            P600Pfs_SPEC,
15952            crate::common::RW,
15953        >::from_register(self, 0)
15954    }
15955
15956    #[doc = "Port State"]
15957    #[inline(always)]
15958    pub fn pidr(
15959        self,
15960    ) -> crate::common::RegisterField<
15961        1,
15962        0x1,
15963        1,
15964        0,
15965        p600pfs::Pidr,
15966        p600pfs::Pidr,
15967        P600Pfs_SPEC,
15968        crate::common::R,
15969    > {
15970        crate::common::RegisterField::<
15971            1,
15972            0x1,
15973            1,
15974            0,
15975            p600pfs::Pidr,
15976            p600pfs::Pidr,
15977            P600Pfs_SPEC,
15978            crate::common::R,
15979        >::from_register(self, 0)
15980    }
15981
15982    #[doc = "Port Direction"]
15983    #[inline(always)]
15984    pub fn pdr(
15985        self,
15986    ) -> crate::common::RegisterField<
15987        2,
15988        0x1,
15989        1,
15990        0,
15991        p600pfs::Pdr,
15992        p600pfs::Pdr,
15993        P600Pfs_SPEC,
15994        crate::common::RW,
15995    > {
15996        crate::common::RegisterField::<
15997            2,
15998            0x1,
15999            1,
16000            0,
16001            p600pfs::Pdr,
16002            p600pfs::Pdr,
16003            P600Pfs_SPEC,
16004            crate::common::RW,
16005        >::from_register(self, 0)
16006    }
16007
16008    #[doc = "Pull-up Control"]
16009    #[inline(always)]
16010    pub fn pcr(
16011        self,
16012    ) -> crate::common::RegisterField<
16013        4,
16014        0x1,
16015        1,
16016        0,
16017        p600pfs::Pcr,
16018        p600pfs::Pcr,
16019        P600Pfs_SPEC,
16020        crate::common::RW,
16021    > {
16022        crate::common::RegisterField::<
16023            4,
16024            0x1,
16025            1,
16026            0,
16027            p600pfs::Pcr,
16028            p600pfs::Pcr,
16029            P600Pfs_SPEC,
16030            crate::common::RW,
16031        >::from_register(self, 0)
16032    }
16033
16034    #[doc = "N-Channel Open-Drain Control"]
16035    #[inline(always)]
16036    pub fn ncodr(
16037        self,
16038    ) -> crate::common::RegisterField<
16039        6,
16040        0x1,
16041        1,
16042        0,
16043        p600pfs::Ncodr,
16044        p600pfs::Ncodr,
16045        P600Pfs_SPEC,
16046        crate::common::RW,
16047    > {
16048        crate::common::RegisterField::<
16049            6,
16050            0x1,
16051            1,
16052            0,
16053            p600pfs::Ncodr,
16054            p600pfs::Ncodr,
16055            P600Pfs_SPEC,
16056            crate::common::RW,
16057        >::from_register(self, 0)
16058    }
16059
16060    #[doc = "IRQ Input Enable"]
16061    #[inline(always)]
16062    pub fn isel(
16063        self,
16064    ) -> crate::common::RegisterField<
16065        14,
16066        0x1,
16067        1,
16068        0,
16069        p600pfs::Isel,
16070        p600pfs::Isel,
16071        P600Pfs_SPEC,
16072        crate::common::RW,
16073    > {
16074        crate::common::RegisterField::<
16075            14,
16076            0x1,
16077            1,
16078            0,
16079            p600pfs::Isel,
16080            p600pfs::Isel,
16081            P600Pfs_SPEC,
16082            crate::common::RW,
16083        >::from_register(self, 0)
16084    }
16085
16086    #[doc = "Analog Input Enable"]
16087    #[inline(always)]
16088    pub fn asel(
16089        self,
16090    ) -> crate::common::RegisterField<
16091        15,
16092        0x1,
16093        1,
16094        0,
16095        p600pfs::Asel,
16096        p600pfs::Asel,
16097        P600Pfs_SPEC,
16098        crate::common::RW,
16099    > {
16100        crate::common::RegisterField::<
16101            15,
16102            0x1,
16103            1,
16104            0,
16105            p600pfs::Asel,
16106            p600pfs::Asel,
16107            P600Pfs_SPEC,
16108            crate::common::RW,
16109        >::from_register(self, 0)
16110    }
16111
16112    #[doc = "Port Mode Control"]
16113    #[inline(always)]
16114    pub fn pmr(
16115        self,
16116    ) -> crate::common::RegisterField<
16117        16,
16118        0x1,
16119        1,
16120        0,
16121        p600pfs::Pmr,
16122        p600pfs::Pmr,
16123        P600Pfs_SPEC,
16124        crate::common::RW,
16125    > {
16126        crate::common::RegisterField::<
16127            16,
16128            0x1,
16129            1,
16130            0,
16131            p600pfs::Pmr,
16132            p600pfs::Pmr,
16133            P600Pfs_SPEC,
16134            crate::common::RW,
16135        >::from_register(self, 0)
16136    }
16137
16138    #[doc = "Peripheral Select"]
16139    #[inline(always)]
16140    pub fn psel(
16141        self,
16142    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P600Pfs_SPEC, crate::common::RW> {
16143        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P600Pfs_SPEC,crate::common::RW>::from_register(self,0)
16144    }
16145}
16146impl ::core::default::Default for P600Pfs {
16147    #[inline(always)]
16148    fn default() -> P600Pfs {
16149        <crate::RegValueT<P600Pfs_SPEC> as RegisterValue<_>>::new(0)
16150    }
16151}
16152pub mod p600pfs {
16153
16154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16155    pub struct Podr_SPEC;
16156    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16157    impl Podr {
16158        #[doc = "Output low"]
16159        pub const _0: Self = Self::new(0);
16160
16161        #[doc = "Output high"]
16162        pub const _1: Self = Self::new(1);
16163    }
16164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16165    pub struct Pidr_SPEC;
16166    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16167    impl Pidr {
16168        #[doc = "Low level"]
16169        pub const _0: Self = Self::new(0);
16170
16171        #[doc = "High level"]
16172        pub const _1: Self = Self::new(1);
16173    }
16174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16175    pub struct Pdr_SPEC;
16176    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16177    impl Pdr {
16178        #[doc = "Input (functions as an input pin)"]
16179        pub const _0: Self = Self::new(0);
16180
16181        #[doc = "Output (functions as an output pin)"]
16182        pub const _1: Self = Self::new(1);
16183    }
16184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16185    pub struct Pcr_SPEC;
16186    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16187    impl Pcr {
16188        #[doc = "Disable input pull-up"]
16189        pub const _0: Self = Self::new(0);
16190
16191        #[doc = "Enable input pull-up"]
16192        pub const _1: Self = Self::new(1);
16193    }
16194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16195    pub struct Ncodr_SPEC;
16196    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16197    impl Ncodr {
16198        #[doc = "Output CMOS"]
16199        pub const _0: Self = Self::new(0);
16200
16201        #[doc = "Output NMOS open-drain"]
16202        pub const _1: Self = Self::new(1);
16203    }
16204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16205    pub struct Isel_SPEC;
16206    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16207    impl Isel {
16208        #[doc = "Do not use as IRQn input pin"]
16209        pub const _0: Self = Self::new(0);
16210
16211        #[doc = "Use as IRQn input pin"]
16212        pub const _1: Self = Self::new(1);
16213    }
16214    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16215    pub struct Asel_SPEC;
16216    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16217    impl Asel {
16218        #[doc = "Do not use as analog pin"]
16219        pub const _0: Self = Self::new(0);
16220
16221        #[doc = "Use as analog pin"]
16222        pub const _1: Self = Self::new(1);
16223    }
16224    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16225    pub struct Pmr_SPEC;
16226    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
16227    impl Pmr {
16228        #[doc = "Use as general I/O pin"]
16229        pub const _0: Self = Self::new(0);
16230
16231        #[doc = "Use as I/O port for peripheral functions"]
16232        pub const _1: Self = Self::new(1);
16233    }
16234}
16235#[doc(hidden)]
16236#[derive(Copy, Clone, Eq, PartialEq)]
16237pub struct P600PfsHa_SPEC;
16238impl crate::sealed::RegSpec for P600PfsHa_SPEC {
16239    type DataType = u16;
16240}
16241
16242#[doc = "Port 600 Pin Function Select Register"]
16243pub type P600PfsHa = crate::RegValueT<P600PfsHa_SPEC>;
16244
16245impl P600PfsHa {
16246    #[doc = "Port Output Data"]
16247    #[inline(always)]
16248    pub fn podr(
16249        self,
16250    ) -> crate::common::RegisterField<
16251        0,
16252        0x1,
16253        1,
16254        0,
16255        p600pfs_ha::Podr,
16256        p600pfs_ha::Podr,
16257        P600PfsHa_SPEC,
16258        crate::common::RW,
16259    > {
16260        crate::common::RegisterField::<
16261            0,
16262            0x1,
16263            1,
16264            0,
16265            p600pfs_ha::Podr,
16266            p600pfs_ha::Podr,
16267            P600PfsHa_SPEC,
16268            crate::common::RW,
16269        >::from_register(self, 0)
16270    }
16271
16272    #[doc = "Port State"]
16273    #[inline(always)]
16274    pub fn pidr(
16275        self,
16276    ) -> crate::common::RegisterField<
16277        1,
16278        0x1,
16279        1,
16280        0,
16281        p600pfs_ha::Pidr,
16282        p600pfs_ha::Pidr,
16283        P600PfsHa_SPEC,
16284        crate::common::R,
16285    > {
16286        crate::common::RegisterField::<
16287            1,
16288            0x1,
16289            1,
16290            0,
16291            p600pfs_ha::Pidr,
16292            p600pfs_ha::Pidr,
16293            P600PfsHa_SPEC,
16294            crate::common::R,
16295        >::from_register(self, 0)
16296    }
16297
16298    #[doc = "Port Direction"]
16299    #[inline(always)]
16300    pub fn pdr(
16301        self,
16302    ) -> crate::common::RegisterField<
16303        2,
16304        0x1,
16305        1,
16306        0,
16307        p600pfs_ha::Pdr,
16308        p600pfs_ha::Pdr,
16309        P600PfsHa_SPEC,
16310        crate::common::RW,
16311    > {
16312        crate::common::RegisterField::<
16313            2,
16314            0x1,
16315            1,
16316            0,
16317            p600pfs_ha::Pdr,
16318            p600pfs_ha::Pdr,
16319            P600PfsHa_SPEC,
16320            crate::common::RW,
16321        >::from_register(self, 0)
16322    }
16323
16324    #[doc = "Pull-up Control"]
16325    #[inline(always)]
16326    pub fn pcr(
16327        self,
16328    ) -> crate::common::RegisterField<
16329        4,
16330        0x1,
16331        1,
16332        0,
16333        p600pfs_ha::Pcr,
16334        p600pfs_ha::Pcr,
16335        P600PfsHa_SPEC,
16336        crate::common::RW,
16337    > {
16338        crate::common::RegisterField::<
16339            4,
16340            0x1,
16341            1,
16342            0,
16343            p600pfs_ha::Pcr,
16344            p600pfs_ha::Pcr,
16345            P600PfsHa_SPEC,
16346            crate::common::RW,
16347        >::from_register(self, 0)
16348    }
16349
16350    #[doc = "N-Channel Open-Drain Control"]
16351    #[inline(always)]
16352    pub fn ncodr(
16353        self,
16354    ) -> crate::common::RegisterField<
16355        6,
16356        0x1,
16357        1,
16358        0,
16359        p600pfs_ha::Ncodr,
16360        p600pfs_ha::Ncodr,
16361        P600PfsHa_SPEC,
16362        crate::common::RW,
16363    > {
16364        crate::common::RegisterField::<
16365            6,
16366            0x1,
16367            1,
16368            0,
16369            p600pfs_ha::Ncodr,
16370            p600pfs_ha::Ncodr,
16371            P600PfsHa_SPEC,
16372            crate::common::RW,
16373        >::from_register(self, 0)
16374    }
16375
16376    #[doc = "IRQ Input Enable"]
16377    #[inline(always)]
16378    pub fn isel(
16379        self,
16380    ) -> crate::common::RegisterField<
16381        14,
16382        0x1,
16383        1,
16384        0,
16385        p600pfs_ha::Isel,
16386        p600pfs_ha::Isel,
16387        P600PfsHa_SPEC,
16388        crate::common::RW,
16389    > {
16390        crate::common::RegisterField::<
16391            14,
16392            0x1,
16393            1,
16394            0,
16395            p600pfs_ha::Isel,
16396            p600pfs_ha::Isel,
16397            P600PfsHa_SPEC,
16398            crate::common::RW,
16399        >::from_register(self, 0)
16400    }
16401
16402    #[doc = "Analog Input Enable"]
16403    #[inline(always)]
16404    pub fn asel(
16405        self,
16406    ) -> crate::common::RegisterField<
16407        15,
16408        0x1,
16409        1,
16410        0,
16411        p600pfs_ha::Asel,
16412        p600pfs_ha::Asel,
16413        P600PfsHa_SPEC,
16414        crate::common::RW,
16415    > {
16416        crate::common::RegisterField::<
16417            15,
16418            0x1,
16419            1,
16420            0,
16421            p600pfs_ha::Asel,
16422            p600pfs_ha::Asel,
16423            P600PfsHa_SPEC,
16424            crate::common::RW,
16425        >::from_register(self, 0)
16426    }
16427}
16428impl ::core::default::Default for P600PfsHa {
16429    #[inline(always)]
16430    fn default() -> P600PfsHa {
16431        <crate::RegValueT<P600PfsHa_SPEC> as RegisterValue<_>>::new(0)
16432    }
16433}
16434pub mod p600pfs_ha {
16435
16436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16437    pub struct Podr_SPEC;
16438    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16439    impl Podr {
16440        #[doc = "Output low"]
16441        pub const _0: Self = Self::new(0);
16442
16443        #[doc = "Output high"]
16444        pub const _1: Self = Self::new(1);
16445    }
16446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16447    pub struct Pidr_SPEC;
16448    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16449    impl Pidr {
16450        #[doc = "Low level"]
16451        pub const _0: Self = Self::new(0);
16452
16453        #[doc = "High level"]
16454        pub const _1: Self = Self::new(1);
16455    }
16456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16457    pub struct Pdr_SPEC;
16458    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16459    impl Pdr {
16460        #[doc = "Input (functions as an input pin)"]
16461        pub const _0: Self = Self::new(0);
16462
16463        #[doc = "Output (functions as an output pin)"]
16464        pub const _1: Self = Self::new(1);
16465    }
16466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16467    pub struct Pcr_SPEC;
16468    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16469    impl Pcr {
16470        #[doc = "Disable input pull-up"]
16471        pub const _0: Self = Self::new(0);
16472
16473        #[doc = "Enable input pull-up"]
16474        pub const _1: Self = Self::new(1);
16475    }
16476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16477    pub struct Ncodr_SPEC;
16478    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16479    impl Ncodr {
16480        #[doc = "Output CMOS"]
16481        pub const _0: Self = Self::new(0);
16482
16483        #[doc = "Output NMOS open-drain"]
16484        pub const _1: Self = Self::new(1);
16485    }
16486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16487    pub struct Isel_SPEC;
16488    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16489    impl Isel {
16490        #[doc = "Do not use as IRQn input pin"]
16491        pub const _0: Self = Self::new(0);
16492
16493        #[doc = "Use as IRQn input pin"]
16494        pub const _1: Self = Self::new(1);
16495    }
16496    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16497    pub struct Asel_SPEC;
16498    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16499    impl Asel {
16500        #[doc = "Do not use as analog pin"]
16501        pub const _0: Self = Self::new(0);
16502
16503        #[doc = "Use as analog pin"]
16504        pub const _1: Self = Self::new(1);
16505    }
16506}
16507#[doc(hidden)]
16508#[derive(Copy, Clone, Eq, PartialEq)]
16509pub struct P600PfsBy_SPEC;
16510impl crate::sealed::RegSpec for P600PfsBy_SPEC {
16511    type DataType = u8;
16512}
16513
16514#[doc = "Port 600 Pin Function Select Register"]
16515pub type P600PfsBy = crate::RegValueT<P600PfsBy_SPEC>;
16516
16517impl P600PfsBy {
16518    #[doc = "Port Output Data"]
16519    #[inline(always)]
16520    pub fn podr(
16521        self,
16522    ) -> crate::common::RegisterField<
16523        0,
16524        0x1,
16525        1,
16526        0,
16527        p600pfs_by::Podr,
16528        p600pfs_by::Podr,
16529        P600PfsBy_SPEC,
16530        crate::common::RW,
16531    > {
16532        crate::common::RegisterField::<
16533            0,
16534            0x1,
16535            1,
16536            0,
16537            p600pfs_by::Podr,
16538            p600pfs_by::Podr,
16539            P600PfsBy_SPEC,
16540            crate::common::RW,
16541        >::from_register(self, 0)
16542    }
16543
16544    #[doc = "Port State"]
16545    #[inline(always)]
16546    pub fn pidr(
16547        self,
16548    ) -> crate::common::RegisterField<
16549        1,
16550        0x1,
16551        1,
16552        0,
16553        p600pfs_by::Pidr,
16554        p600pfs_by::Pidr,
16555        P600PfsBy_SPEC,
16556        crate::common::R,
16557    > {
16558        crate::common::RegisterField::<
16559            1,
16560            0x1,
16561            1,
16562            0,
16563            p600pfs_by::Pidr,
16564            p600pfs_by::Pidr,
16565            P600PfsBy_SPEC,
16566            crate::common::R,
16567        >::from_register(self, 0)
16568    }
16569
16570    #[doc = "Port Direction"]
16571    #[inline(always)]
16572    pub fn pdr(
16573        self,
16574    ) -> crate::common::RegisterField<
16575        2,
16576        0x1,
16577        1,
16578        0,
16579        p600pfs_by::Pdr,
16580        p600pfs_by::Pdr,
16581        P600PfsBy_SPEC,
16582        crate::common::RW,
16583    > {
16584        crate::common::RegisterField::<
16585            2,
16586            0x1,
16587            1,
16588            0,
16589            p600pfs_by::Pdr,
16590            p600pfs_by::Pdr,
16591            P600PfsBy_SPEC,
16592            crate::common::RW,
16593        >::from_register(self, 0)
16594    }
16595
16596    #[doc = "Pull-up Control"]
16597    #[inline(always)]
16598    pub fn pcr(
16599        self,
16600    ) -> crate::common::RegisterField<
16601        4,
16602        0x1,
16603        1,
16604        0,
16605        p600pfs_by::Pcr,
16606        p600pfs_by::Pcr,
16607        P600PfsBy_SPEC,
16608        crate::common::RW,
16609    > {
16610        crate::common::RegisterField::<
16611            4,
16612            0x1,
16613            1,
16614            0,
16615            p600pfs_by::Pcr,
16616            p600pfs_by::Pcr,
16617            P600PfsBy_SPEC,
16618            crate::common::RW,
16619        >::from_register(self, 0)
16620    }
16621
16622    #[doc = "N-Channel Open-Drain Control"]
16623    #[inline(always)]
16624    pub fn ncodr(
16625        self,
16626    ) -> crate::common::RegisterField<
16627        6,
16628        0x1,
16629        1,
16630        0,
16631        p600pfs_by::Ncodr,
16632        p600pfs_by::Ncodr,
16633        P600PfsBy_SPEC,
16634        crate::common::RW,
16635    > {
16636        crate::common::RegisterField::<
16637            6,
16638            0x1,
16639            1,
16640            0,
16641            p600pfs_by::Ncodr,
16642            p600pfs_by::Ncodr,
16643            P600PfsBy_SPEC,
16644            crate::common::RW,
16645        >::from_register(self, 0)
16646    }
16647}
16648impl ::core::default::Default for P600PfsBy {
16649    #[inline(always)]
16650    fn default() -> P600PfsBy {
16651        <crate::RegValueT<P600PfsBy_SPEC> as RegisterValue<_>>::new(0)
16652    }
16653}
16654pub mod p600pfs_by {
16655
16656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16657    pub struct Podr_SPEC;
16658    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16659    impl Podr {
16660        #[doc = "Output low"]
16661        pub const _0: Self = Self::new(0);
16662
16663        #[doc = "Output high"]
16664        pub const _1: Self = Self::new(1);
16665    }
16666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16667    pub struct Pidr_SPEC;
16668    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16669    impl Pidr {
16670        #[doc = "Low level"]
16671        pub const _0: Self = Self::new(0);
16672
16673        #[doc = "High level"]
16674        pub const _1: Self = Self::new(1);
16675    }
16676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16677    pub struct Pdr_SPEC;
16678    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16679    impl Pdr {
16680        #[doc = "Input (functions as an input pin)"]
16681        pub const _0: Self = Self::new(0);
16682
16683        #[doc = "Output (functions as an output pin)"]
16684        pub const _1: Self = Self::new(1);
16685    }
16686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16687    pub struct Pcr_SPEC;
16688    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16689    impl Pcr {
16690        #[doc = "Disable input pull-up"]
16691        pub const _0: Self = Self::new(0);
16692
16693        #[doc = "Enable input pull-up"]
16694        pub const _1: Self = Self::new(1);
16695    }
16696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16697    pub struct Ncodr_SPEC;
16698    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16699    impl Ncodr {
16700        #[doc = "Output CMOS"]
16701        pub const _0: Self = Self::new(0);
16702
16703        #[doc = "Output NMOS open-drain"]
16704        pub const _1: Self = Self::new(1);
16705    }
16706}
16707#[doc(hidden)]
16708#[derive(Copy, Clone, Eq, PartialEq)]
16709pub struct Vl1Sel_SPEC;
16710impl crate::sealed::RegSpec for Vl1Sel_SPEC {
16711    type DataType = u8;
16712}
16713
16714#[doc = "VL1 Select Control Register"]
16715pub type Vl1Sel = crate::RegValueT<Vl1Sel_SPEC>;
16716
16717impl Vl1Sel {
16718    #[doc = "VL1 Voltage Connection Switching Control"]
16719    #[inline(always)]
16720    pub fn selvl(
16721        self,
16722    ) -> crate::common::RegisterField<
16723        0,
16724        0x1,
16725        1,
16726        0,
16727        vl1sel::Selvl,
16728        vl1sel::Selvl,
16729        Vl1Sel_SPEC,
16730        crate::common::RW,
16731    > {
16732        crate::common::RegisterField::<
16733            0,
16734            0x1,
16735            1,
16736            0,
16737            vl1sel::Selvl,
16738            vl1sel::Selvl,
16739            Vl1Sel_SPEC,
16740            crate::common::RW,
16741        >::from_register(self, 0)
16742    }
16743}
16744impl ::core::default::Default for Vl1Sel {
16745    #[inline(always)]
16746    fn default() -> Vl1Sel {
16747        <crate::RegValueT<Vl1Sel_SPEC> as RegisterValue<_>>::new(0)
16748    }
16749}
16750pub mod vl1sel {
16751
16752    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16753    pub struct Selvl_SPEC;
16754    pub type Selvl = crate::EnumBitfieldStruct<u8, Selvl_SPEC>;
16755    impl Selvl {
16756        #[doc = "VL1 voltage disconnected"]
16757        pub const _0: Self = Self::new(0);
16758
16759        #[doc = "VL1 voltage connected"]
16760        pub const _1: Self = Self::new(1);
16761    }
16762}
16763#[doc(hidden)]
16764#[derive(Copy, Clone, Eq, PartialEq)]
16765pub struct Pwpr_SPEC;
16766impl crate::sealed::RegSpec for Pwpr_SPEC {
16767    type DataType = u8;
16768}
16769
16770#[doc = "Write-Protect Register"]
16771pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
16772
16773impl Pwpr {
16774    #[doc = "PmnPFS Register Write Enable"]
16775    #[inline(always)]
16776    pub fn pfswe(
16777        self,
16778    ) -> crate::common::RegisterField<
16779        6,
16780        0x1,
16781        1,
16782        0,
16783        pwpr::Pfswe,
16784        pwpr::Pfswe,
16785        Pwpr_SPEC,
16786        crate::common::RW,
16787    > {
16788        crate::common::RegisterField::<
16789            6,
16790            0x1,
16791            1,
16792            0,
16793            pwpr::Pfswe,
16794            pwpr::Pfswe,
16795            Pwpr_SPEC,
16796            crate::common::RW,
16797        >::from_register(self, 0)
16798    }
16799
16800    #[doc = "PFSWE Bit Write Disable"]
16801    #[inline(always)]
16802    pub fn b0wi(
16803        self,
16804    ) -> crate::common::RegisterField<
16805        7,
16806        0x1,
16807        1,
16808        0,
16809        pwpr::B0Wi,
16810        pwpr::B0Wi,
16811        Pwpr_SPEC,
16812        crate::common::RW,
16813    > {
16814        crate::common::RegisterField::<
16815            7,
16816            0x1,
16817            1,
16818            0,
16819            pwpr::B0Wi,
16820            pwpr::B0Wi,
16821            Pwpr_SPEC,
16822            crate::common::RW,
16823        >::from_register(self, 0)
16824    }
16825}
16826impl ::core::default::Default for Pwpr {
16827    #[inline(always)]
16828    fn default() -> Pwpr {
16829        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
16830    }
16831}
16832pub mod pwpr {
16833
16834    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16835    pub struct Pfswe_SPEC;
16836    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
16837    impl Pfswe {
16838        #[doc = "Writing to the PmnPFS register is disabled"]
16839        pub const _0: Self = Self::new(0);
16840
16841        #[doc = "Writing to the PmnPFS register is enabled"]
16842        pub const _1: Self = Self::new(1);
16843    }
16844    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16845    pub struct B0Wi_SPEC;
16846    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
16847    impl B0Wi {
16848        #[doc = "Writing to the PFSWE bit is enabled"]
16849        pub const _0: Self = Self::new(0);
16850
16851        #[doc = "Writing to the PFSWE bit is disabled"]
16852        pub const _1: Self = Self::new(1);
16853    }
16854}
16855#[doc(hidden)]
16856#[derive(Copy, Clone, Eq, PartialEq)]
16857pub struct Prwcntr_SPEC;
16858impl crate::sealed::RegSpec for Prwcntr_SPEC {
16859    type DataType = u8;
16860}
16861
16862#[doc = "Port Read Wait Control Register"]
16863pub type Prwcntr = crate::RegValueT<Prwcntr_SPEC>;
16864
16865impl Prwcntr {
16866    #[doc = "Wait Cycle Control"]
16867    #[inline(always)]
16868    pub fn wait(
16869        self,
16870    ) -> crate::common::RegisterField<
16871        0,
16872        0x3,
16873        1,
16874        0,
16875        prwcntr::Wait,
16876        prwcntr::Wait,
16877        Prwcntr_SPEC,
16878        crate::common::RW,
16879    > {
16880        crate::common::RegisterField::<
16881            0,
16882            0x3,
16883            1,
16884            0,
16885            prwcntr::Wait,
16886            prwcntr::Wait,
16887            Prwcntr_SPEC,
16888            crate::common::RW,
16889        >::from_register(self, 0)
16890    }
16891}
16892impl ::core::default::Default for Prwcntr {
16893    #[inline(always)]
16894    fn default() -> Prwcntr {
16895        <crate::RegValueT<Prwcntr_SPEC> as RegisterValue<_>>::new(1)
16896    }
16897}
16898pub mod prwcntr {
16899
16900    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16901    pub struct Wait_SPEC;
16902    pub type Wait = crate::EnumBitfieldStruct<u8, Wait_SPEC>;
16903    impl Wait {
16904        #[doc = "Setting prohibited"]
16905        pub const _00: Self = Self::new(0);
16906
16907        #[doc = "Insert a 1-cycle wait"]
16908        pub const _01: Self = Self::new(1);
16909
16910        #[doc = "Insert a 2-cycle wait"]
16911        pub const _10: Self = Self::new(2);
16912
16913        #[doc = "Insert a 3-cycle wait"]
16914        pub const _11: Self = Self::new(3);
16915    }
16916}