Skip to main content

ra2l1_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.50.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:03:37 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"Pmn Pin Function Control Register"]
28unsafe impl ::core::marker::Send for super::Pfs {}
29unsafe impl ::core::marker::Sync for super::Pfs {}
30impl super::Pfs {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Port 00%s Pin Function Select Register"]
38    #[inline(always)]
39    pub const fn p00pfs(
40        &self,
41    ) -> &'static crate::common::ClusterRegisterArray<
42        crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW>,
43        9,
44        0x4,
45    > {
46        unsafe {
47            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x0usize))
48        }
49    }
50    #[inline(always)]
51    pub const fn p000pfs(
52        &self,
53    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0x0usize),
57            )
58        }
59    }
60    #[inline(always)]
61    pub const fn p001pfs(
62        &self,
63    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
64        unsafe {
65            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
66                self._svd2pac_as_ptr().add(0x4usize),
67            )
68        }
69    }
70    #[inline(always)]
71    pub const fn p002pfs(
72        &self,
73    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
74        unsafe {
75            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
76                self._svd2pac_as_ptr().add(0x8usize),
77            )
78        }
79    }
80    #[inline(always)]
81    pub const fn p003pfs(
82        &self,
83    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
84        unsafe {
85            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
86                self._svd2pac_as_ptr().add(0xcusize),
87            )
88        }
89    }
90    #[inline(always)]
91    pub const fn p004pfs(
92        &self,
93    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
94        unsafe {
95            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
96                self._svd2pac_as_ptr().add(0x10usize),
97            )
98        }
99    }
100    #[inline(always)]
101    pub const fn p005pfs(
102        &self,
103    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
104        unsafe {
105            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
106                self._svd2pac_as_ptr().add(0x14usize),
107            )
108        }
109    }
110    #[inline(always)]
111    pub const fn p006pfs(
112        &self,
113    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(0x18usize),
117            )
118        }
119    }
120    #[inline(always)]
121    pub const fn p007pfs(
122        &self,
123    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
124        unsafe {
125            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
126                self._svd2pac_as_ptr().add(0x1cusize),
127            )
128        }
129    }
130    #[inline(always)]
131    pub const fn p008pfs(
132        &self,
133    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
134        unsafe {
135            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
136                self._svd2pac_as_ptr().add(0x20usize),
137            )
138        }
139    }
140
141    #[doc = "Port 00%s Pin Function Select Register"]
142    #[inline(always)]
143    pub const fn p00pfs_ha(
144        &self,
145    ) -> &'static crate::common::ClusterRegisterArray<
146        crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW>,
147        9,
148        0x4,
149    > {
150        unsafe {
151            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2usize))
152        }
153    }
154    #[inline(always)]
155    pub const fn p000pfs_ha(
156        &self,
157    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
158        unsafe {
159            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
160                self._svd2pac_as_ptr().add(0x2usize),
161            )
162        }
163    }
164    #[inline(always)]
165    pub const fn p001pfs_ha(
166        &self,
167    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
168        unsafe {
169            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
170                self._svd2pac_as_ptr().add(0x6usize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn p002pfs_ha(
176        &self,
177    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
178        unsafe {
179            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
180                self._svd2pac_as_ptr().add(0xausize),
181            )
182        }
183    }
184    #[inline(always)]
185    pub const fn p003pfs_ha(
186        &self,
187    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
188        unsafe {
189            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
190                self._svd2pac_as_ptr().add(0xeusize),
191            )
192        }
193    }
194    #[inline(always)]
195    pub const fn p004pfs_ha(
196        &self,
197    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(0x12usize),
201            )
202        }
203    }
204    #[inline(always)]
205    pub const fn p005pfs_ha(
206        &self,
207    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
208        unsafe {
209            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
210                self._svd2pac_as_ptr().add(0x16usize),
211            )
212        }
213    }
214    #[inline(always)]
215    pub const fn p006pfs_ha(
216        &self,
217    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
218        unsafe {
219            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
220                self._svd2pac_as_ptr().add(0x1ausize),
221            )
222        }
223    }
224    #[inline(always)]
225    pub const fn p007pfs_ha(
226        &self,
227    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
228        unsafe {
229            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
230                self._svd2pac_as_ptr().add(0x1eusize),
231            )
232        }
233    }
234    #[inline(always)]
235    pub const fn p008pfs_ha(
236        &self,
237    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
238        unsafe {
239            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
240                self._svd2pac_as_ptr().add(0x22usize),
241            )
242        }
243    }
244
245    #[doc = "Port 00%s Pin Function Select Register"]
246    #[inline(always)]
247    pub const fn p00pfs_by(
248        &self,
249    ) -> &'static crate::common::ClusterRegisterArray<
250        crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW>,
251        9,
252        0x4,
253    > {
254        unsafe {
255            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3usize))
256        }
257    }
258    #[inline(always)]
259    pub const fn p000pfs_by(
260        &self,
261    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
262        unsafe {
263            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
264                self._svd2pac_as_ptr().add(0x3usize),
265            )
266        }
267    }
268    #[inline(always)]
269    pub const fn p001pfs_by(
270        &self,
271    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
272        unsafe {
273            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
274                self._svd2pac_as_ptr().add(0x7usize),
275            )
276        }
277    }
278    #[inline(always)]
279    pub const fn p002pfs_by(
280        &self,
281    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(0xbusize),
285            )
286        }
287    }
288    #[inline(always)]
289    pub const fn p003pfs_by(
290        &self,
291    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
292        unsafe {
293            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
294                self._svd2pac_as_ptr().add(0xfusize),
295            )
296        }
297    }
298    #[inline(always)]
299    pub const fn p004pfs_by(
300        &self,
301    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
302        unsafe {
303            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
304                self._svd2pac_as_ptr().add(0x13usize),
305            )
306        }
307    }
308    #[inline(always)]
309    pub const fn p005pfs_by(
310        &self,
311    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
312        unsafe {
313            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
314                self._svd2pac_as_ptr().add(0x17usize),
315            )
316        }
317    }
318    #[inline(always)]
319    pub const fn p006pfs_by(
320        &self,
321    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
322        unsafe {
323            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
324                self._svd2pac_as_ptr().add(0x1busize),
325            )
326        }
327    }
328    #[inline(always)]
329    pub const fn p007pfs_by(
330        &self,
331    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
332        unsafe {
333            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
334                self._svd2pac_as_ptr().add(0x1fusize),
335            )
336        }
337    }
338    #[inline(always)]
339    pub const fn p008pfs_by(
340        &self,
341    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
342        unsafe {
343            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
344                self._svd2pac_as_ptr().add(0x23usize),
345            )
346        }
347    }
348
349    #[doc = "Port 0%s Pin Function Select Register"]
350    #[inline(always)]
351    pub const fn p0pfs(
352        &self,
353    ) -> &'static crate::common::ClusterRegisterArray<
354        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
355        6,
356        0x4,
357    > {
358        unsafe {
359            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x28usize))
360        }
361    }
362    #[inline(always)]
363    pub const fn p010pfs(
364        &self,
365    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
366        unsafe {
367            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
368                self._svd2pac_as_ptr().add(0x28usize),
369            )
370        }
371    }
372    #[inline(always)]
373    pub const fn p011pfs(
374        &self,
375    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
376        unsafe {
377            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
378                self._svd2pac_as_ptr().add(0x2cusize),
379            )
380        }
381    }
382    #[inline(always)]
383    pub const fn p012pfs(
384        &self,
385    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
386        unsafe {
387            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
388                self._svd2pac_as_ptr().add(0x30usize),
389            )
390        }
391    }
392    #[inline(always)]
393    pub const fn p013pfs(
394        &self,
395    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
396        unsafe {
397            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
398                self._svd2pac_as_ptr().add(0x34usize),
399            )
400        }
401    }
402    #[inline(always)]
403    pub const fn p014pfs(
404        &self,
405    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
406        unsafe {
407            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
408                self._svd2pac_as_ptr().add(0x38usize),
409            )
410        }
411    }
412    #[inline(always)]
413    pub const fn p015pfs(
414        &self,
415    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
416        unsafe {
417            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
418                self._svd2pac_as_ptr().add(0x3cusize),
419            )
420        }
421    }
422
423    #[doc = "Port 0%s Pin Function Select Register"]
424    #[inline(always)]
425    pub const fn p0pfs_ha(
426        &self,
427    ) -> &'static crate::common::ClusterRegisterArray<
428        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
429        6,
430        0x4,
431    > {
432        unsafe {
433            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2ausize))
434        }
435    }
436    #[inline(always)]
437    pub const fn p010pfs_ha(
438        &self,
439    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
440        unsafe {
441            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
442                self._svd2pac_as_ptr().add(0x2ausize),
443            )
444        }
445    }
446    #[inline(always)]
447    pub const fn p011pfs_ha(
448        &self,
449    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
450        unsafe {
451            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
452                self._svd2pac_as_ptr().add(0x2eusize),
453            )
454        }
455    }
456    #[inline(always)]
457    pub const fn p012pfs_ha(
458        &self,
459    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
460        unsafe {
461            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
462                self._svd2pac_as_ptr().add(0x32usize),
463            )
464        }
465    }
466    #[inline(always)]
467    pub const fn p013pfs_ha(
468        &self,
469    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
470        unsafe {
471            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
472                self._svd2pac_as_ptr().add(0x36usize),
473            )
474        }
475    }
476    #[inline(always)]
477    pub const fn p014pfs_ha(
478        &self,
479    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
480        unsafe {
481            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
482                self._svd2pac_as_ptr().add(0x3ausize),
483            )
484        }
485    }
486    #[inline(always)]
487    pub const fn p015pfs_ha(
488        &self,
489    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
490        unsafe {
491            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
492                self._svd2pac_as_ptr().add(0x3eusize),
493            )
494        }
495    }
496
497    #[doc = "Port 0%s Pin Function Select Register"]
498    #[inline(always)]
499    pub const fn p0pfs_by(
500        &self,
501    ) -> &'static crate::common::ClusterRegisterArray<
502        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
503        6,
504        0x4,
505    > {
506        unsafe {
507            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2busize))
508        }
509    }
510    #[inline(always)]
511    pub const fn p010pfs_by(
512        &self,
513    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
514        unsafe {
515            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
516                self._svd2pac_as_ptr().add(0x2busize),
517            )
518        }
519    }
520    #[inline(always)]
521    pub const fn p011pfs_by(
522        &self,
523    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
524        unsafe {
525            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
526                self._svd2pac_as_ptr().add(0x2fusize),
527            )
528        }
529    }
530    #[inline(always)]
531    pub const fn p012pfs_by(
532        &self,
533    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
534        unsafe {
535            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
536                self._svd2pac_as_ptr().add(0x33usize),
537            )
538        }
539    }
540    #[inline(always)]
541    pub const fn p013pfs_by(
542        &self,
543    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
544        unsafe {
545            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
546                self._svd2pac_as_ptr().add(0x37usize),
547            )
548        }
549    }
550    #[inline(always)]
551    pub const fn p014pfs_by(
552        &self,
553    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
554        unsafe {
555            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
556                self._svd2pac_as_ptr().add(0x3busize),
557            )
558        }
559    }
560    #[inline(always)]
561    pub const fn p015pfs_by(
562        &self,
563    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
564        unsafe {
565            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
566                self._svd2pac_as_ptr().add(0x3fusize),
567            )
568        }
569    }
570
571    #[doc = "Port 10%s Pin Function Select Register"]
572    #[inline(always)]
573    pub const fn p10pfs(
574        &self,
575    ) -> &'static crate::common::ClusterRegisterArray<
576        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
577        8,
578        0x4,
579    > {
580        unsafe {
581            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
582        }
583    }
584    #[inline(always)]
585    pub const fn p100pfs(
586        &self,
587    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
588        unsafe {
589            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
590                self._svd2pac_as_ptr().add(0x40usize),
591            )
592        }
593    }
594    #[inline(always)]
595    pub const fn p101pfs(
596        &self,
597    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
598        unsafe {
599            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
600                self._svd2pac_as_ptr().add(0x44usize),
601            )
602        }
603    }
604    #[inline(always)]
605    pub const fn p102pfs(
606        &self,
607    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
608        unsafe {
609            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
610                self._svd2pac_as_ptr().add(0x48usize),
611            )
612        }
613    }
614    #[inline(always)]
615    pub const fn p103pfs(
616        &self,
617    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
618        unsafe {
619            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
620                self._svd2pac_as_ptr().add(0x4cusize),
621            )
622        }
623    }
624    #[inline(always)]
625    pub const fn p104pfs(
626        &self,
627    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
628        unsafe {
629            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
630                self._svd2pac_as_ptr().add(0x50usize),
631            )
632        }
633    }
634    #[inline(always)]
635    pub const fn p105pfs(
636        &self,
637    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
638        unsafe {
639            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
640                self._svd2pac_as_ptr().add(0x54usize),
641            )
642        }
643    }
644    #[inline(always)]
645    pub const fn p106pfs(
646        &self,
647    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
648        unsafe {
649            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
650                self._svd2pac_as_ptr().add(0x58usize),
651            )
652        }
653    }
654    #[inline(always)]
655    pub const fn p107pfs(
656        &self,
657    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
658        unsafe {
659            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
660                self._svd2pac_as_ptr().add(0x5cusize),
661            )
662        }
663    }
664
665    #[doc = "Port 10%s Pin Function Select Register"]
666    #[inline(always)]
667    pub const fn p10pfs_ha(
668        &self,
669    ) -> &'static crate::common::ClusterRegisterArray<
670        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
671        8,
672        0x4,
673    > {
674        unsafe {
675            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
676        }
677    }
678    #[inline(always)]
679    pub const fn p100pfs_ha(
680        &self,
681    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
682        unsafe {
683            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
684                self._svd2pac_as_ptr().add(0x42usize),
685            )
686        }
687    }
688    #[inline(always)]
689    pub const fn p101pfs_ha(
690        &self,
691    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
692        unsafe {
693            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
694                self._svd2pac_as_ptr().add(0x46usize),
695            )
696        }
697    }
698    #[inline(always)]
699    pub const fn p102pfs_ha(
700        &self,
701    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
702        unsafe {
703            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
704                self._svd2pac_as_ptr().add(0x4ausize),
705            )
706        }
707    }
708    #[inline(always)]
709    pub const fn p103pfs_ha(
710        &self,
711    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
712        unsafe {
713            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
714                self._svd2pac_as_ptr().add(0x4eusize),
715            )
716        }
717    }
718    #[inline(always)]
719    pub const fn p104pfs_ha(
720        &self,
721    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
722        unsafe {
723            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
724                self._svd2pac_as_ptr().add(0x52usize),
725            )
726        }
727    }
728    #[inline(always)]
729    pub const fn p105pfs_ha(
730        &self,
731    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
732        unsafe {
733            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
734                self._svd2pac_as_ptr().add(0x56usize),
735            )
736        }
737    }
738    #[inline(always)]
739    pub const fn p106pfs_ha(
740        &self,
741    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
742        unsafe {
743            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
744                self._svd2pac_as_ptr().add(0x5ausize),
745            )
746        }
747    }
748    #[inline(always)]
749    pub const fn p107pfs_ha(
750        &self,
751    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
752        unsafe {
753            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
754                self._svd2pac_as_ptr().add(0x5eusize),
755            )
756        }
757    }
758
759    #[doc = "Port 10%s Pin Function Select Register"]
760    #[inline(always)]
761    pub const fn p10pfs_by(
762        &self,
763    ) -> &'static crate::common::ClusterRegisterArray<
764        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
765        8,
766        0x4,
767    > {
768        unsafe {
769            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
770        }
771    }
772    #[inline(always)]
773    pub const fn p100pfs_by(
774        &self,
775    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
776        unsafe {
777            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
778                self._svd2pac_as_ptr().add(0x43usize),
779            )
780        }
781    }
782    #[inline(always)]
783    pub const fn p101pfs_by(
784        &self,
785    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
786        unsafe {
787            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
788                self._svd2pac_as_ptr().add(0x47usize),
789            )
790        }
791    }
792    #[inline(always)]
793    pub const fn p102pfs_by(
794        &self,
795    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
796        unsafe {
797            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
798                self._svd2pac_as_ptr().add(0x4busize),
799            )
800        }
801    }
802    #[inline(always)]
803    pub const fn p103pfs_by(
804        &self,
805    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
806        unsafe {
807            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
808                self._svd2pac_as_ptr().add(0x4fusize),
809            )
810        }
811    }
812    #[inline(always)]
813    pub const fn p104pfs_by(
814        &self,
815    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
816        unsafe {
817            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
818                self._svd2pac_as_ptr().add(0x53usize),
819            )
820        }
821    }
822    #[inline(always)]
823    pub const fn p105pfs_by(
824        &self,
825    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
826        unsafe {
827            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
828                self._svd2pac_as_ptr().add(0x57usize),
829            )
830        }
831    }
832    #[inline(always)]
833    pub const fn p106pfs_by(
834        &self,
835    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
836        unsafe {
837            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
838                self._svd2pac_as_ptr().add(0x5busize),
839            )
840        }
841    }
842    #[inline(always)]
843    pub const fn p107pfs_by(
844        &self,
845    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
846        unsafe {
847            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
848                self._svd2pac_as_ptr().add(0x5fusize),
849            )
850        }
851    }
852
853    #[doc = "Port 108 Pin Function Select Register"]
854    #[inline(always)]
855    pub const fn p108pfs(
856        &self,
857    ) -> &'static crate::common::Reg<self::P108Pfs_SPEC, crate::common::RW> {
858        unsafe {
859            crate::common::Reg::<self::P108Pfs_SPEC, crate::common::RW>::from_ptr(
860                self._svd2pac_as_ptr().add(96usize),
861            )
862        }
863    }
864
865    #[doc = "Port 108 Pin Function Select Register"]
866    #[inline(always)]
867    pub const fn p108pfs_ha(
868        &self,
869    ) -> &'static crate::common::Reg<self::P108PfsHa_SPEC, crate::common::RW> {
870        unsafe {
871            crate::common::Reg::<self::P108PfsHa_SPEC, crate::common::RW>::from_ptr(
872                self._svd2pac_as_ptr().add(98usize),
873            )
874        }
875    }
876
877    #[doc = "Port 108 Pin Function Select Register"]
878    #[inline(always)]
879    pub const fn p108pfs_by(
880        &self,
881    ) -> &'static crate::common::Reg<self::P108PfsBy_SPEC, crate::common::RW> {
882        unsafe {
883            crate::common::Reg::<self::P108PfsBy_SPEC, crate::common::RW>::from_ptr(
884                self._svd2pac_as_ptr().add(99usize),
885            )
886        }
887    }
888
889    #[doc = "Port 109 Pin Function Select Register"]
890    #[inline(always)]
891    pub const fn p109pfs(
892        &self,
893    ) -> &'static crate::common::Reg<self::P109Pfs_SPEC, crate::common::RW> {
894        unsafe {
895            crate::common::Reg::<self::P109Pfs_SPEC, crate::common::RW>::from_ptr(
896                self._svd2pac_as_ptr().add(100usize),
897            )
898        }
899    }
900
901    #[doc = "Port 109 Pin Function Select Register"]
902    #[inline(always)]
903    pub const fn p109pfs_ha(
904        &self,
905    ) -> &'static crate::common::Reg<self::P109PfsHa_SPEC, crate::common::RW> {
906        unsafe {
907            crate::common::Reg::<self::P109PfsHa_SPEC, crate::common::RW>::from_ptr(
908                self._svd2pac_as_ptr().add(102usize),
909            )
910        }
911    }
912
913    #[doc = "Port 109 Pin Function Select Register"]
914    #[inline(always)]
915    pub const fn p109pfs_by(
916        &self,
917    ) -> &'static crate::common::Reg<self::P109PfsBy_SPEC, crate::common::RW> {
918        unsafe {
919            crate::common::Reg::<self::P109PfsBy_SPEC, crate::common::RW>::from_ptr(
920                self._svd2pac_as_ptr().add(103usize),
921            )
922        }
923    }
924
925    #[doc = "Port 1%s Pin Function Select Register"]
926    #[inline(always)]
927    pub const fn p1pfs(
928        &self,
929    ) -> &'static crate::common::ClusterRegisterArray<
930        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
931        6,
932        0x4,
933    > {
934        unsafe {
935            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
936        }
937    }
938    #[inline(always)]
939    pub const fn p110pfs(
940        &self,
941    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
942        unsafe {
943            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
944                self._svd2pac_as_ptr().add(0x68usize),
945            )
946        }
947    }
948    #[inline(always)]
949    pub const fn p111pfs(
950        &self,
951    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
952        unsafe {
953            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
954                self._svd2pac_as_ptr().add(0x6cusize),
955            )
956        }
957    }
958    #[inline(always)]
959    pub const fn p112pfs(
960        &self,
961    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
962        unsafe {
963            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
964                self._svd2pac_as_ptr().add(0x70usize),
965            )
966        }
967    }
968    #[inline(always)]
969    pub const fn p113pfs(
970        &self,
971    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
972        unsafe {
973            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
974                self._svd2pac_as_ptr().add(0x74usize),
975            )
976        }
977    }
978    #[inline(always)]
979    pub const fn p114pfs(
980        &self,
981    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
982        unsafe {
983            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
984                self._svd2pac_as_ptr().add(0x78usize),
985            )
986        }
987    }
988    #[inline(always)]
989    pub const fn p115pfs(
990        &self,
991    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
992        unsafe {
993            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
994                self._svd2pac_as_ptr().add(0x7cusize),
995            )
996        }
997    }
998
999    #[doc = "Port 1%s Pin Function Select Register"]
1000    #[inline(always)]
1001    pub const fn p1pfs_ha(
1002        &self,
1003    ) -> &'static crate::common::ClusterRegisterArray<
1004        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
1005        6,
1006        0x4,
1007    > {
1008        unsafe {
1009            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
1010        }
1011    }
1012    #[inline(always)]
1013    pub const fn p110pfs_ha(
1014        &self,
1015    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1016        unsafe {
1017            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1018                self._svd2pac_as_ptr().add(0x6ausize),
1019            )
1020        }
1021    }
1022    #[inline(always)]
1023    pub const fn p111pfs_ha(
1024        &self,
1025    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1026        unsafe {
1027            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1028                self._svd2pac_as_ptr().add(0x6eusize),
1029            )
1030        }
1031    }
1032    #[inline(always)]
1033    pub const fn p112pfs_ha(
1034        &self,
1035    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1036        unsafe {
1037            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1038                self._svd2pac_as_ptr().add(0x72usize),
1039            )
1040        }
1041    }
1042    #[inline(always)]
1043    pub const fn p113pfs_ha(
1044        &self,
1045    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1046        unsafe {
1047            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1048                self._svd2pac_as_ptr().add(0x76usize),
1049            )
1050        }
1051    }
1052    #[inline(always)]
1053    pub const fn p114pfs_ha(
1054        &self,
1055    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1056        unsafe {
1057            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1058                self._svd2pac_as_ptr().add(0x7ausize),
1059            )
1060        }
1061    }
1062    #[inline(always)]
1063    pub const fn p115pfs_ha(
1064        &self,
1065    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
1066        unsafe {
1067            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
1068                self._svd2pac_as_ptr().add(0x7eusize),
1069            )
1070        }
1071    }
1072
1073    #[doc = "Port 1%s Pin Function Select Register"]
1074    #[inline(always)]
1075    pub const fn p1pfs_by(
1076        &self,
1077    ) -> &'static crate::common::ClusterRegisterArray<
1078        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
1079        6,
1080        0x4,
1081    > {
1082        unsafe {
1083            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
1084        }
1085    }
1086    #[inline(always)]
1087    pub const fn p110pfs_by(
1088        &self,
1089    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1090        unsafe {
1091            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1092                self._svd2pac_as_ptr().add(0x6busize),
1093            )
1094        }
1095    }
1096    #[inline(always)]
1097    pub const fn p111pfs_by(
1098        &self,
1099    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1100        unsafe {
1101            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1102                self._svd2pac_as_ptr().add(0x6fusize),
1103            )
1104        }
1105    }
1106    #[inline(always)]
1107    pub const fn p112pfs_by(
1108        &self,
1109    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1110        unsafe {
1111            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1112                self._svd2pac_as_ptr().add(0x73usize),
1113            )
1114        }
1115    }
1116    #[inline(always)]
1117    pub const fn p113pfs_by(
1118        &self,
1119    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1120        unsafe {
1121            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1122                self._svd2pac_as_ptr().add(0x77usize),
1123            )
1124        }
1125    }
1126    #[inline(always)]
1127    pub const fn p114pfs_by(
1128        &self,
1129    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1130        unsafe {
1131            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1132                self._svd2pac_as_ptr().add(0x7busize),
1133            )
1134        }
1135    }
1136    #[inline(always)]
1137    pub const fn p115pfs_by(
1138        &self,
1139    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1140        unsafe {
1141            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1142                self._svd2pac_as_ptr().add(0x7fusize),
1143            )
1144        }
1145    }
1146
1147    #[doc = "Port 200 Pin Function Select Register"]
1148    #[inline(always)]
1149    pub const fn p200pfs(
1150        &self,
1151    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
1152        unsafe {
1153            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
1154                self._svd2pac_as_ptr().add(128usize),
1155            )
1156        }
1157    }
1158
1159    #[doc = "Port 200 Pin Function Select Register"]
1160    #[inline(always)]
1161    pub const fn p200pfs_ha(
1162        &self,
1163    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
1164        unsafe {
1165            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
1166                self._svd2pac_as_ptr().add(130usize),
1167            )
1168        }
1169    }
1170
1171    #[doc = "Port 200 Pin Function Select Register"]
1172    #[inline(always)]
1173    pub const fn p200pfs_by(
1174        &self,
1175    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
1176        unsafe {
1177            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
1178                self._svd2pac_as_ptr().add(131usize),
1179            )
1180        }
1181    }
1182
1183    #[doc = "Port 201 Pin Function Select Register"]
1184    #[inline(always)]
1185    pub const fn p201pfs(
1186        &self,
1187    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
1188        unsafe {
1189            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
1190                self._svd2pac_as_ptr().add(132usize),
1191            )
1192        }
1193    }
1194
1195    #[doc = "Port 201 Pin Function Select Register"]
1196    #[inline(always)]
1197    pub const fn p201pfs_ha(
1198        &self,
1199    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
1200        unsafe {
1201            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
1202                self._svd2pac_as_ptr().add(134usize),
1203            )
1204        }
1205    }
1206
1207    #[doc = "Port 201 Pin Function Select Register"]
1208    #[inline(always)]
1209    pub const fn p201pfs_by(
1210        &self,
1211    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
1212        unsafe {
1213            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
1214                self._svd2pac_as_ptr().add(135usize),
1215            )
1216        }
1217    }
1218
1219    #[doc = "Port 20%s Pin Function Select Register"]
1220    #[inline(always)]
1221    pub const fn p20pfs(
1222        &self,
1223    ) -> &'static crate::common::ClusterRegisterArray<
1224        crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW>,
1225        7,
1226        0x4,
1227    > {
1228        unsafe {
1229            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x88usize))
1230        }
1231    }
1232    #[inline(always)]
1233    pub const fn p202pfs(
1234        &self,
1235    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1236        unsafe {
1237            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1238                self._svd2pac_as_ptr().add(0x88usize),
1239            )
1240        }
1241    }
1242    #[inline(always)]
1243    pub const fn p203pfs(
1244        &self,
1245    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1246        unsafe {
1247            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1248                self._svd2pac_as_ptr().add(0x8cusize),
1249            )
1250        }
1251    }
1252    #[inline(always)]
1253    pub const fn p204pfs(
1254        &self,
1255    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1256        unsafe {
1257            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1258                self._svd2pac_as_ptr().add(0x90usize),
1259            )
1260        }
1261    }
1262    #[inline(always)]
1263    pub const fn p205pfs(
1264        &self,
1265    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1266        unsafe {
1267            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1268                self._svd2pac_as_ptr().add(0x94usize),
1269            )
1270        }
1271    }
1272    #[inline(always)]
1273    pub const fn p206pfs(
1274        &self,
1275    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1276        unsafe {
1277            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1278                self._svd2pac_as_ptr().add(0x98usize),
1279            )
1280        }
1281    }
1282    #[inline(always)]
1283    pub const fn p207pfs(
1284        &self,
1285    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1286        unsafe {
1287            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1288                self._svd2pac_as_ptr().add(0x9cusize),
1289            )
1290        }
1291    }
1292    #[inline(always)]
1293    pub const fn p208pfs(
1294        &self,
1295    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1296        unsafe {
1297            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1298                self._svd2pac_as_ptr().add(0xa0usize),
1299            )
1300        }
1301    }
1302
1303    #[doc = "Port 20%s Pin Function Select Register"]
1304    #[inline(always)]
1305    pub const fn p20pfs_ha(
1306        &self,
1307    ) -> &'static crate::common::ClusterRegisterArray<
1308        crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW>,
1309        7,
1310        0x4,
1311    > {
1312        unsafe {
1313            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8ausize))
1314        }
1315    }
1316    #[inline(always)]
1317    pub const fn p202pfs_ha(
1318        &self,
1319    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1320        unsafe {
1321            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1322                self._svd2pac_as_ptr().add(0x8ausize),
1323            )
1324        }
1325    }
1326    #[inline(always)]
1327    pub const fn p203pfs_ha(
1328        &self,
1329    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1330        unsafe {
1331            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1332                self._svd2pac_as_ptr().add(0x8eusize),
1333            )
1334        }
1335    }
1336    #[inline(always)]
1337    pub const fn p204pfs_ha(
1338        &self,
1339    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1340        unsafe {
1341            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1342                self._svd2pac_as_ptr().add(0x92usize),
1343            )
1344        }
1345    }
1346    #[inline(always)]
1347    pub const fn p205pfs_ha(
1348        &self,
1349    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1350        unsafe {
1351            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1352                self._svd2pac_as_ptr().add(0x96usize),
1353            )
1354        }
1355    }
1356    #[inline(always)]
1357    pub const fn p206pfs_ha(
1358        &self,
1359    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1360        unsafe {
1361            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1362                self._svd2pac_as_ptr().add(0x9ausize),
1363            )
1364        }
1365    }
1366    #[inline(always)]
1367    pub const fn p207pfs_ha(
1368        &self,
1369    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1370        unsafe {
1371            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1372                self._svd2pac_as_ptr().add(0x9eusize),
1373            )
1374        }
1375    }
1376    #[inline(always)]
1377    pub const fn p208pfs_ha(
1378        &self,
1379    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1380        unsafe {
1381            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1382                self._svd2pac_as_ptr().add(0xa2usize),
1383            )
1384        }
1385    }
1386
1387    #[doc = "Port 20%s Pin Function Select Register"]
1388    #[inline(always)]
1389    pub const fn p20pfs_by(
1390        &self,
1391    ) -> &'static crate::common::ClusterRegisterArray<
1392        crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW>,
1393        7,
1394        0x4,
1395    > {
1396        unsafe {
1397            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8busize))
1398        }
1399    }
1400    #[inline(always)]
1401    pub const fn p202pfs_by(
1402        &self,
1403    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1404        unsafe {
1405            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1406                self._svd2pac_as_ptr().add(0x8busize),
1407            )
1408        }
1409    }
1410    #[inline(always)]
1411    pub const fn p203pfs_by(
1412        &self,
1413    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1414        unsafe {
1415            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1416                self._svd2pac_as_ptr().add(0x8fusize),
1417            )
1418        }
1419    }
1420    #[inline(always)]
1421    pub const fn p204pfs_by(
1422        &self,
1423    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1424        unsafe {
1425            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1426                self._svd2pac_as_ptr().add(0x93usize),
1427            )
1428        }
1429    }
1430    #[inline(always)]
1431    pub const fn p205pfs_by(
1432        &self,
1433    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1434        unsafe {
1435            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1436                self._svd2pac_as_ptr().add(0x97usize),
1437            )
1438        }
1439    }
1440    #[inline(always)]
1441    pub const fn p206pfs_by(
1442        &self,
1443    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1444        unsafe {
1445            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1446                self._svd2pac_as_ptr().add(0x9busize),
1447            )
1448        }
1449    }
1450    #[inline(always)]
1451    pub const fn p207pfs_by(
1452        &self,
1453    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1454        unsafe {
1455            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1456                self._svd2pac_as_ptr().add(0x9fusize),
1457            )
1458        }
1459    }
1460    #[inline(always)]
1461    pub const fn p208pfs_by(
1462        &self,
1463    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1464        unsafe {
1465            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1466                self._svd2pac_as_ptr().add(0xa3usize),
1467            )
1468        }
1469    }
1470
1471    #[doc = "Port 2%s Pin Function Select Register"]
1472    #[inline(always)]
1473    pub const fn p2pfs(
1474        &self,
1475    ) -> &'static crate::common::ClusterRegisterArray<
1476        crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW>,
1477        4,
1478        0x4,
1479    > {
1480        unsafe {
1481            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xb0usize))
1482        }
1483    }
1484    #[inline(always)]
1485    pub const fn p212pfs(
1486        &self,
1487    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1488        unsafe {
1489            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1490                self._svd2pac_as_ptr().add(0xb0usize),
1491            )
1492        }
1493    }
1494    #[inline(always)]
1495    pub const fn p213pfs(
1496        &self,
1497    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1498        unsafe {
1499            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1500                self._svd2pac_as_ptr().add(0xb4usize),
1501            )
1502        }
1503    }
1504    #[inline(always)]
1505    pub const fn p214pfs(
1506        &self,
1507    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1508        unsafe {
1509            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1510                self._svd2pac_as_ptr().add(0xb8usize),
1511            )
1512        }
1513    }
1514    #[inline(always)]
1515    pub const fn p215pfs(
1516        &self,
1517    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1518        unsafe {
1519            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1520                self._svd2pac_as_ptr().add(0xbcusize),
1521            )
1522        }
1523    }
1524
1525    #[doc = "Port 2%s Pin Function Select Register"]
1526    #[inline(always)]
1527    pub const fn p2pfs_ha(
1528        &self,
1529    ) -> &'static crate::common::ClusterRegisterArray<
1530        crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW>,
1531        4,
1532        0x4,
1533    > {
1534        unsafe {
1535            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xb2usize))
1536        }
1537    }
1538    #[inline(always)]
1539    pub const fn p212pfs_ha(
1540        &self,
1541    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1542        unsafe {
1543            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1544                self._svd2pac_as_ptr().add(0xb2usize),
1545            )
1546        }
1547    }
1548    #[inline(always)]
1549    pub const fn p213pfs_ha(
1550        &self,
1551    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1552        unsafe {
1553            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1554                self._svd2pac_as_ptr().add(0xb6usize),
1555            )
1556        }
1557    }
1558    #[inline(always)]
1559    pub const fn p214pfs_ha(
1560        &self,
1561    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1562        unsafe {
1563            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1564                self._svd2pac_as_ptr().add(0xbausize),
1565            )
1566        }
1567    }
1568    #[inline(always)]
1569    pub const fn p215pfs_ha(
1570        &self,
1571    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1572        unsafe {
1573            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1574                self._svd2pac_as_ptr().add(0xbeusize),
1575            )
1576        }
1577    }
1578
1579    #[doc = "Port 2%s Pin Function Select Register"]
1580    #[inline(always)]
1581    pub const fn p2pfs_by(
1582        &self,
1583    ) -> &'static crate::common::ClusterRegisterArray<
1584        crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW>,
1585        4,
1586        0x4,
1587    > {
1588        unsafe {
1589            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xb3usize))
1590        }
1591    }
1592    #[inline(always)]
1593    pub const fn p212pfs_by(
1594        &self,
1595    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1596        unsafe {
1597            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1598                self._svd2pac_as_ptr().add(0xb3usize),
1599            )
1600        }
1601    }
1602    #[inline(always)]
1603    pub const fn p213pfs_by(
1604        &self,
1605    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1606        unsafe {
1607            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1608                self._svd2pac_as_ptr().add(0xb7usize),
1609            )
1610        }
1611    }
1612    #[inline(always)]
1613    pub const fn p214pfs_by(
1614        &self,
1615    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1616        unsafe {
1617            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1618                self._svd2pac_as_ptr().add(0xbbusize),
1619            )
1620        }
1621    }
1622    #[inline(always)]
1623    pub const fn p215pfs_by(
1624        &self,
1625    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1626        unsafe {
1627            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1628                self._svd2pac_as_ptr().add(0xbfusize),
1629            )
1630        }
1631    }
1632
1633    #[doc = "Port 300 Pin Function Select Register"]
1634    #[inline(always)]
1635    pub const fn p300pfs(
1636        &self,
1637    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
1638        unsafe {
1639            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
1640                self._svd2pac_as_ptr().add(192usize),
1641            )
1642        }
1643    }
1644
1645    #[doc = "Port 300 Pin Function Select Register"]
1646    #[inline(always)]
1647    pub const fn p300pfs_ha(
1648        &self,
1649    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
1650        unsafe {
1651            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
1652                self._svd2pac_as_ptr().add(194usize),
1653            )
1654        }
1655    }
1656
1657    #[doc = "Port 300 Pin Function Select Register"]
1658    #[inline(always)]
1659    pub const fn p300pfs_by(
1660        &self,
1661    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
1662        unsafe {
1663            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
1664                self._svd2pac_as_ptr().add(195usize),
1665            )
1666        }
1667    }
1668
1669    #[doc = "Port 30%s Pin Function Select Register"]
1670    #[inline(always)]
1671    pub const fn p30pfs(
1672        &self,
1673    ) -> &'static crate::common::ClusterRegisterArray<
1674        crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW>,
1675        7,
1676        0x4,
1677    > {
1678        unsafe {
1679            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc4usize))
1680        }
1681    }
1682    #[inline(always)]
1683    pub const fn p301pfs(
1684        &self,
1685    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1686        unsafe {
1687            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1688                self._svd2pac_as_ptr().add(0xc4usize),
1689            )
1690        }
1691    }
1692    #[inline(always)]
1693    pub const fn p302pfs(
1694        &self,
1695    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1696        unsafe {
1697            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1698                self._svd2pac_as_ptr().add(0xc8usize),
1699            )
1700        }
1701    }
1702    #[inline(always)]
1703    pub const fn p303pfs(
1704        &self,
1705    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1706        unsafe {
1707            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1708                self._svd2pac_as_ptr().add(0xccusize),
1709            )
1710        }
1711    }
1712    #[inline(always)]
1713    pub const fn p304pfs(
1714        &self,
1715    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1716        unsafe {
1717            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1718                self._svd2pac_as_ptr().add(0xd0usize),
1719            )
1720        }
1721    }
1722    #[inline(always)]
1723    pub const fn p305pfs(
1724        &self,
1725    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1726        unsafe {
1727            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1728                self._svd2pac_as_ptr().add(0xd4usize),
1729            )
1730        }
1731    }
1732    #[inline(always)]
1733    pub const fn p306pfs(
1734        &self,
1735    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1736        unsafe {
1737            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1738                self._svd2pac_as_ptr().add(0xd8usize),
1739            )
1740        }
1741    }
1742    #[inline(always)]
1743    pub const fn p307pfs(
1744        &self,
1745    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1746        unsafe {
1747            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1748                self._svd2pac_as_ptr().add(0xdcusize),
1749            )
1750        }
1751    }
1752
1753    #[doc = "Port 30%s Pin Function Select Register"]
1754    #[inline(always)]
1755    pub const fn p30pfs_ha(
1756        &self,
1757    ) -> &'static crate::common::ClusterRegisterArray<
1758        crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW>,
1759        7,
1760        0x4,
1761    > {
1762        unsafe {
1763            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc6usize))
1764        }
1765    }
1766    #[inline(always)]
1767    pub const fn p301pfs_ha(
1768        &self,
1769    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1770        unsafe {
1771            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1772                self._svd2pac_as_ptr().add(0xc6usize),
1773            )
1774        }
1775    }
1776    #[inline(always)]
1777    pub const fn p302pfs_ha(
1778        &self,
1779    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1780        unsafe {
1781            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1782                self._svd2pac_as_ptr().add(0xcausize),
1783            )
1784        }
1785    }
1786    #[inline(always)]
1787    pub const fn p303pfs_ha(
1788        &self,
1789    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1790        unsafe {
1791            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1792                self._svd2pac_as_ptr().add(0xceusize),
1793            )
1794        }
1795    }
1796    #[inline(always)]
1797    pub const fn p304pfs_ha(
1798        &self,
1799    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1800        unsafe {
1801            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1802                self._svd2pac_as_ptr().add(0xd2usize),
1803            )
1804        }
1805    }
1806    #[inline(always)]
1807    pub const fn p305pfs_ha(
1808        &self,
1809    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1810        unsafe {
1811            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1812                self._svd2pac_as_ptr().add(0xd6usize),
1813            )
1814        }
1815    }
1816    #[inline(always)]
1817    pub const fn p306pfs_ha(
1818        &self,
1819    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1820        unsafe {
1821            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1822                self._svd2pac_as_ptr().add(0xdausize),
1823            )
1824        }
1825    }
1826    #[inline(always)]
1827    pub const fn p307pfs_ha(
1828        &self,
1829    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1830        unsafe {
1831            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1832                self._svd2pac_as_ptr().add(0xdeusize),
1833            )
1834        }
1835    }
1836
1837    #[doc = "Port 30%s Pin Function Select Register"]
1838    #[inline(always)]
1839    pub const fn p30pfs_by(
1840        &self,
1841    ) -> &'static crate::common::ClusterRegisterArray<
1842        crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW>,
1843        7,
1844        0x4,
1845    > {
1846        unsafe {
1847            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc7usize))
1848        }
1849    }
1850    #[inline(always)]
1851    pub const fn p301pfs_by(
1852        &self,
1853    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1854        unsafe {
1855            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1856                self._svd2pac_as_ptr().add(0xc7usize),
1857            )
1858        }
1859    }
1860    #[inline(always)]
1861    pub const fn p302pfs_by(
1862        &self,
1863    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1864        unsafe {
1865            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1866                self._svd2pac_as_ptr().add(0xcbusize),
1867            )
1868        }
1869    }
1870    #[inline(always)]
1871    pub const fn p303pfs_by(
1872        &self,
1873    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1874        unsafe {
1875            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1876                self._svd2pac_as_ptr().add(0xcfusize),
1877            )
1878        }
1879    }
1880    #[inline(always)]
1881    pub const fn p304pfs_by(
1882        &self,
1883    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1884        unsafe {
1885            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1886                self._svd2pac_as_ptr().add(0xd3usize),
1887            )
1888        }
1889    }
1890    #[inline(always)]
1891    pub const fn p305pfs_by(
1892        &self,
1893    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1894        unsafe {
1895            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1896                self._svd2pac_as_ptr().add(0xd7usize),
1897            )
1898        }
1899    }
1900    #[inline(always)]
1901    pub const fn p306pfs_by(
1902        &self,
1903    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1904        unsafe {
1905            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1906                self._svd2pac_as_ptr().add(0xdbusize),
1907            )
1908        }
1909    }
1910    #[inline(always)]
1911    pub const fn p307pfs_by(
1912        &self,
1913    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1914        unsafe {
1915            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1916                self._svd2pac_as_ptr().add(0xdfusize),
1917            )
1918        }
1919    }
1920
1921    #[doc = "Port 40%s Pin Function Select Register"]
1922    #[inline(always)]
1923    pub const fn p40pfs(
1924        &self,
1925    ) -> &'static crate::common::ClusterRegisterArray<
1926        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
1927        10,
1928        0x4,
1929    > {
1930        unsafe {
1931            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x100usize))
1932        }
1933    }
1934    #[inline(always)]
1935    pub const fn p400pfs(
1936        &self,
1937    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1938        unsafe {
1939            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1940                self._svd2pac_as_ptr().add(0x100usize),
1941            )
1942        }
1943    }
1944    #[inline(always)]
1945    pub const fn p401pfs(
1946        &self,
1947    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1948        unsafe {
1949            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1950                self._svd2pac_as_ptr().add(0x104usize),
1951            )
1952        }
1953    }
1954    #[inline(always)]
1955    pub const fn p402pfs(
1956        &self,
1957    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1958        unsafe {
1959            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1960                self._svd2pac_as_ptr().add(0x108usize),
1961            )
1962        }
1963    }
1964    #[inline(always)]
1965    pub const fn p403pfs(
1966        &self,
1967    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1968        unsafe {
1969            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1970                self._svd2pac_as_ptr().add(0x10cusize),
1971            )
1972        }
1973    }
1974    #[inline(always)]
1975    pub const fn p404pfs(
1976        &self,
1977    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1978        unsafe {
1979            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1980                self._svd2pac_as_ptr().add(0x110usize),
1981            )
1982        }
1983    }
1984    #[inline(always)]
1985    pub const fn p405pfs(
1986        &self,
1987    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1988        unsafe {
1989            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1990                self._svd2pac_as_ptr().add(0x114usize),
1991            )
1992        }
1993    }
1994    #[inline(always)]
1995    pub const fn p406pfs(
1996        &self,
1997    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1998        unsafe {
1999            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2000                self._svd2pac_as_ptr().add(0x118usize),
2001            )
2002        }
2003    }
2004    #[inline(always)]
2005    pub const fn p407pfs(
2006        &self,
2007    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2008        unsafe {
2009            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2010                self._svd2pac_as_ptr().add(0x11cusize),
2011            )
2012        }
2013    }
2014    #[inline(always)]
2015    pub const fn p408pfs(
2016        &self,
2017    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2018        unsafe {
2019            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2020                self._svd2pac_as_ptr().add(0x120usize),
2021            )
2022        }
2023    }
2024    #[inline(always)]
2025    pub const fn p409pfs(
2026        &self,
2027    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2028        unsafe {
2029            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2030                self._svd2pac_as_ptr().add(0x124usize),
2031            )
2032        }
2033    }
2034
2035    #[doc = "Port 40%s Pin Function Select Register"]
2036    #[inline(always)]
2037    pub const fn p40pfs_ha(
2038        &self,
2039    ) -> &'static crate::common::ClusterRegisterArray<
2040        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
2041        10,
2042        0x4,
2043    > {
2044        unsafe {
2045            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x102usize))
2046        }
2047    }
2048    #[inline(always)]
2049    pub const fn p400pfs_ha(
2050        &self,
2051    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2052        unsafe {
2053            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2054                self._svd2pac_as_ptr().add(0x102usize),
2055            )
2056        }
2057    }
2058    #[inline(always)]
2059    pub const fn p401pfs_ha(
2060        &self,
2061    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2062        unsafe {
2063            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2064                self._svd2pac_as_ptr().add(0x106usize),
2065            )
2066        }
2067    }
2068    #[inline(always)]
2069    pub const fn p402pfs_ha(
2070        &self,
2071    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2072        unsafe {
2073            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2074                self._svd2pac_as_ptr().add(0x10ausize),
2075            )
2076        }
2077    }
2078    #[inline(always)]
2079    pub const fn p403pfs_ha(
2080        &self,
2081    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2082        unsafe {
2083            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2084                self._svd2pac_as_ptr().add(0x10eusize),
2085            )
2086        }
2087    }
2088    #[inline(always)]
2089    pub const fn p404pfs_ha(
2090        &self,
2091    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2092        unsafe {
2093            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2094                self._svd2pac_as_ptr().add(0x112usize),
2095            )
2096        }
2097    }
2098    #[inline(always)]
2099    pub const fn p405pfs_ha(
2100        &self,
2101    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2102        unsafe {
2103            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2104                self._svd2pac_as_ptr().add(0x116usize),
2105            )
2106        }
2107    }
2108    #[inline(always)]
2109    pub const fn p406pfs_ha(
2110        &self,
2111    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2112        unsafe {
2113            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2114                self._svd2pac_as_ptr().add(0x11ausize),
2115            )
2116        }
2117    }
2118    #[inline(always)]
2119    pub const fn p407pfs_ha(
2120        &self,
2121    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2122        unsafe {
2123            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2124                self._svd2pac_as_ptr().add(0x11eusize),
2125            )
2126        }
2127    }
2128    #[inline(always)]
2129    pub const fn p408pfs_ha(
2130        &self,
2131    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2132        unsafe {
2133            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2134                self._svd2pac_as_ptr().add(0x122usize),
2135            )
2136        }
2137    }
2138    #[inline(always)]
2139    pub const fn p409pfs_ha(
2140        &self,
2141    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2142        unsafe {
2143            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2144                self._svd2pac_as_ptr().add(0x126usize),
2145            )
2146        }
2147    }
2148
2149    #[doc = "Port 40%s Pin Function Select Register"]
2150    #[inline(always)]
2151    pub const fn p40pfs_by(
2152        &self,
2153    ) -> &'static crate::common::ClusterRegisterArray<
2154        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
2155        10,
2156        0x4,
2157    > {
2158        unsafe {
2159            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x103usize))
2160        }
2161    }
2162    #[inline(always)]
2163    pub const fn p400pfs_by(
2164        &self,
2165    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2166        unsafe {
2167            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2168                self._svd2pac_as_ptr().add(0x103usize),
2169            )
2170        }
2171    }
2172    #[inline(always)]
2173    pub const fn p401pfs_by(
2174        &self,
2175    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2176        unsafe {
2177            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2178                self._svd2pac_as_ptr().add(0x107usize),
2179            )
2180        }
2181    }
2182    #[inline(always)]
2183    pub const fn p402pfs_by(
2184        &self,
2185    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2186        unsafe {
2187            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2188                self._svd2pac_as_ptr().add(0x10busize),
2189            )
2190        }
2191    }
2192    #[inline(always)]
2193    pub const fn p403pfs_by(
2194        &self,
2195    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2196        unsafe {
2197            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2198                self._svd2pac_as_ptr().add(0x10fusize),
2199            )
2200        }
2201    }
2202    #[inline(always)]
2203    pub const fn p404pfs_by(
2204        &self,
2205    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2206        unsafe {
2207            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2208                self._svd2pac_as_ptr().add(0x113usize),
2209            )
2210        }
2211    }
2212    #[inline(always)]
2213    pub const fn p405pfs_by(
2214        &self,
2215    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2216        unsafe {
2217            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2218                self._svd2pac_as_ptr().add(0x117usize),
2219            )
2220        }
2221    }
2222    #[inline(always)]
2223    pub const fn p406pfs_by(
2224        &self,
2225    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2226        unsafe {
2227            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2228                self._svd2pac_as_ptr().add(0x11busize),
2229            )
2230        }
2231    }
2232    #[inline(always)]
2233    pub const fn p407pfs_by(
2234        &self,
2235    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2236        unsafe {
2237            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2238                self._svd2pac_as_ptr().add(0x11fusize),
2239            )
2240        }
2241    }
2242    #[inline(always)]
2243    pub const fn p408pfs_by(
2244        &self,
2245    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2246        unsafe {
2247            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2248                self._svd2pac_as_ptr().add(0x123usize),
2249            )
2250        }
2251    }
2252    #[inline(always)]
2253    pub const fn p409pfs_by(
2254        &self,
2255    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2256        unsafe {
2257            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2258                self._svd2pac_as_ptr().add(0x127usize),
2259            )
2260        }
2261    }
2262
2263    #[doc = "Port 4%s Pin Function Select Register"]
2264    #[inline(always)]
2265    pub const fn p4pfs(
2266        &self,
2267    ) -> &'static crate::common::ClusterRegisterArray<
2268        crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW>,
2269        6,
2270        0x4,
2271    > {
2272        unsafe {
2273            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x128usize))
2274        }
2275    }
2276    #[inline(always)]
2277    pub const fn p410pfs(
2278        &self,
2279    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2280        unsafe {
2281            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2282                self._svd2pac_as_ptr().add(0x128usize),
2283            )
2284        }
2285    }
2286    #[inline(always)]
2287    pub const fn p411pfs(
2288        &self,
2289    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2290        unsafe {
2291            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2292                self._svd2pac_as_ptr().add(0x12cusize),
2293            )
2294        }
2295    }
2296    #[inline(always)]
2297    pub const fn p412pfs(
2298        &self,
2299    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2300        unsafe {
2301            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2302                self._svd2pac_as_ptr().add(0x130usize),
2303            )
2304        }
2305    }
2306    #[inline(always)]
2307    pub const fn p413pfs(
2308        &self,
2309    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2310        unsafe {
2311            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2312                self._svd2pac_as_ptr().add(0x134usize),
2313            )
2314        }
2315    }
2316    #[inline(always)]
2317    pub const fn p414pfs(
2318        &self,
2319    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2320        unsafe {
2321            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2322                self._svd2pac_as_ptr().add(0x138usize),
2323            )
2324        }
2325    }
2326    #[inline(always)]
2327    pub const fn p415pfs(
2328        &self,
2329    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2330        unsafe {
2331            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2332                self._svd2pac_as_ptr().add(0x13cusize),
2333            )
2334        }
2335    }
2336
2337    #[doc = "Port 4%s Pin Function Select Register"]
2338    #[inline(always)]
2339    pub const fn p4pfs_ha(
2340        &self,
2341    ) -> &'static crate::common::ClusterRegisterArray<
2342        crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW>,
2343        6,
2344        0x4,
2345    > {
2346        unsafe {
2347            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12ausize))
2348        }
2349    }
2350    #[inline(always)]
2351    pub const fn p410pfs_ha(
2352        &self,
2353    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2354        unsafe {
2355            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2356                self._svd2pac_as_ptr().add(0x12ausize),
2357            )
2358        }
2359    }
2360    #[inline(always)]
2361    pub const fn p411pfs_ha(
2362        &self,
2363    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2364        unsafe {
2365            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2366                self._svd2pac_as_ptr().add(0x12eusize),
2367            )
2368        }
2369    }
2370    #[inline(always)]
2371    pub const fn p412pfs_ha(
2372        &self,
2373    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2374        unsafe {
2375            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2376                self._svd2pac_as_ptr().add(0x132usize),
2377            )
2378        }
2379    }
2380    #[inline(always)]
2381    pub const fn p413pfs_ha(
2382        &self,
2383    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2384        unsafe {
2385            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2386                self._svd2pac_as_ptr().add(0x136usize),
2387            )
2388        }
2389    }
2390    #[inline(always)]
2391    pub const fn p414pfs_ha(
2392        &self,
2393    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2394        unsafe {
2395            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2396                self._svd2pac_as_ptr().add(0x13ausize),
2397            )
2398        }
2399    }
2400    #[inline(always)]
2401    pub const fn p415pfs_ha(
2402        &self,
2403    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2404        unsafe {
2405            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2406                self._svd2pac_as_ptr().add(0x13eusize),
2407            )
2408        }
2409    }
2410
2411    #[doc = "Port 4%s Pin Function Select Register"]
2412    #[inline(always)]
2413    pub const fn p4pfs_by(
2414        &self,
2415    ) -> &'static crate::common::ClusterRegisterArray<
2416        crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW>,
2417        6,
2418        0x4,
2419    > {
2420        unsafe {
2421            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12busize))
2422        }
2423    }
2424    #[inline(always)]
2425    pub const fn p410pfs_by(
2426        &self,
2427    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2428        unsafe {
2429            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2430                self._svd2pac_as_ptr().add(0x12busize),
2431            )
2432        }
2433    }
2434    #[inline(always)]
2435    pub const fn p411pfs_by(
2436        &self,
2437    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2438        unsafe {
2439            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2440                self._svd2pac_as_ptr().add(0x12fusize),
2441            )
2442        }
2443    }
2444    #[inline(always)]
2445    pub const fn p412pfs_by(
2446        &self,
2447    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2448        unsafe {
2449            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2450                self._svd2pac_as_ptr().add(0x133usize),
2451            )
2452        }
2453    }
2454    #[inline(always)]
2455    pub const fn p413pfs_by(
2456        &self,
2457    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2458        unsafe {
2459            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2460                self._svd2pac_as_ptr().add(0x137usize),
2461            )
2462        }
2463    }
2464    #[inline(always)]
2465    pub const fn p414pfs_by(
2466        &self,
2467    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2468        unsafe {
2469            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2470                self._svd2pac_as_ptr().add(0x13busize),
2471            )
2472        }
2473    }
2474    #[inline(always)]
2475    pub const fn p415pfs_by(
2476        &self,
2477    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2478        unsafe {
2479            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2480                self._svd2pac_as_ptr().add(0x13fusize),
2481            )
2482        }
2483    }
2484
2485    #[doc = "Port 50%s Pin Function Select Register"]
2486    #[inline(always)]
2487    pub const fn p50pfs(
2488        &self,
2489    ) -> &'static crate::common::ClusterRegisterArray<
2490        crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW>,
2491        6,
2492        0x4,
2493    > {
2494        unsafe {
2495            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x140usize))
2496        }
2497    }
2498    #[inline(always)]
2499    pub const fn p500pfs(
2500        &self,
2501    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2502        unsafe {
2503            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2504                self._svd2pac_as_ptr().add(0x140usize),
2505            )
2506        }
2507    }
2508    #[inline(always)]
2509    pub const fn p501pfs(
2510        &self,
2511    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2512        unsafe {
2513            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2514                self._svd2pac_as_ptr().add(0x144usize),
2515            )
2516        }
2517    }
2518    #[inline(always)]
2519    pub const fn p502pfs(
2520        &self,
2521    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2522        unsafe {
2523            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2524                self._svd2pac_as_ptr().add(0x148usize),
2525            )
2526        }
2527    }
2528    #[inline(always)]
2529    pub const fn p503pfs(
2530        &self,
2531    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2532        unsafe {
2533            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2534                self._svd2pac_as_ptr().add(0x14cusize),
2535            )
2536        }
2537    }
2538    #[inline(always)]
2539    pub const fn p504pfs(
2540        &self,
2541    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2542        unsafe {
2543            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2544                self._svd2pac_as_ptr().add(0x150usize),
2545            )
2546        }
2547    }
2548    #[inline(always)]
2549    pub const fn p505pfs(
2550        &self,
2551    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2552        unsafe {
2553            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2554                self._svd2pac_as_ptr().add(0x154usize),
2555            )
2556        }
2557    }
2558
2559    #[doc = "Port 50%s Pin Function Select Register"]
2560    #[inline(always)]
2561    pub const fn p50pfs_ha(
2562        &self,
2563    ) -> &'static crate::common::ClusterRegisterArray<
2564        crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW>,
2565        6,
2566        0x4,
2567    > {
2568        unsafe {
2569            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x142usize))
2570        }
2571    }
2572    #[inline(always)]
2573    pub const fn p500pfs_ha(
2574        &self,
2575    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2576        unsafe {
2577            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2578                self._svd2pac_as_ptr().add(0x142usize),
2579            )
2580        }
2581    }
2582    #[inline(always)]
2583    pub const fn p501pfs_ha(
2584        &self,
2585    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2586        unsafe {
2587            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2588                self._svd2pac_as_ptr().add(0x146usize),
2589            )
2590        }
2591    }
2592    #[inline(always)]
2593    pub const fn p502pfs_ha(
2594        &self,
2595    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2596        unsafe {
2597            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2598                self._svd2pac_as_ptr().add(0x14ausize),
2599            )
2600        }
2601    }
2602    #[inline(always)]
2603    pub const fn p503pfs_ha(
2604        &self,
2605    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2606        unsafe {
2607            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2608                self._svd2pac_as_ptr().add(0x14eusize),
2609            )
2610        }
2611    }
2612    #[inline(always)]
2613    pub const fn p504pfs_ha(
2614        &self,
2615    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2616        unsafe {
2617            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2618                self._svd2pac_as_ptr().add(0x152usize),
2619            )
2620        }
2621    }
2622    #[inline(always)]
2623    pub const fn p505pfs_ha(
2624        &self,
2625    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2626        unsafe {
2627            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2628                self._svd2pac_as_ptr().add(0x156usize),
2629            )
2630        }
2631    }
2632
2633    #[doc = "Port 50%s Pin Function Select Register"]
2634    #[inline(always)]
2635    pub const fn p50pfs_by(
2636        &self,
2637    ) -> &'static crate::common::ClusterRegisterArray<
2638        crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW>,
2639        6,
2640        0x4,
2641    > {
2642        unsafe {
2643            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x143usize))
2644        }
2645    }
2646    #[inline(always)]
2647    pub const fn p500pfs_by(
2648        &self,
2649    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2650        unsafe {
2651            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2652                self._svd2pac_as_ptr().add(0x143usize),
2653            )
2654        }
2655    }
2656    #[inline(always)]
2657    pub const fn p501pfs_by(
2658        &self,
2659    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2660        unsafe {
2661            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2662                self._svd2pac_as_ptr().add(0x147usize),
2663            )
2664        }
2665    }
2666    #[inline(always)]
2667    pub const fn p502pfs_by(
2668        &self,
2669    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2670        unsafe {
2671            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2672                self._svd2pac_as_ptr().add(0x14busize),
2673            )
2674        }
2675    }
2676    #[inline(always)]
2677    pub const fn p503pfs_by(
2678        &self,
2679    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2680        unsafe {
2681            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2682                self._svd2pac_as_ptr().add(0x14fusize),
2683            )
2684        }
2685    }
2686    #[inline(always)]
2687    pub const fn p504pfs_by(
2688        &self,
2689    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2690        unsafe {
2691            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2692                self._svd2pac_as_ptr().add(0x153usize),
2693            )
2694        }
2695    }
2696    #[inline(always)]
2697    pub const fn p505pfs_by(
2698        &self,
2699    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2700        unsafe {
2701            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2702                self._svd2pac_as_ptr().add(0x157usize),
2703            )
2704        }
2705    }
2706
2707    #[doc = "Port 60%s Pin Function Select Register"]
2708    #[inline(always)]
2709    pub const fn p60pfs(
2710        &self,
2711    ) -> &'static crate::common::ClusterRegisterArray<
2712        crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW>,
2713        2,
2714        0x4,
2715    > {
2716        unsafe {
2717            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a0usize))
2718        }
2719    }
2720    #[inline(always)]
2721    pub const fn p608pfs(
2722        &self,
2723    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
2724        unsafe {
2725            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
2726                self._svd2pac_as_ptr().add(0x1a0usize),
2727            )
2728        }
2729    }
2730    #[inline(always)]
2731    pub const fn p609pfs(
2732        &self,
2733    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
2734        unsafe {
2735            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
2736                self._svd2pac_as_ptr().add(0x1a4usize),
2737            )
2738        }
2739    }
2740
2741    #[doc = "Port 60%s Pin Function Select Register"]
2742    #[inline(always)]
2743    pub const fn p60pfs_ha(
2744        &self,
2745    ) -> &'static crate::common::ClusterRegisterArray<
2746        crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW>,
2747        2,
2748        0x4,
2749    > {
2750        unsafe {
2751            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a2usize))
2752        }
2753    }
2754    #[inline(always)]
2755    pub const fn p608pfs_ha(
2756        &self,
2757    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
2758        unsafe {
2759            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
2760                self._svd2pac_as_ptr().add(0x1a2usize),
2761            )
2762        }
2763    }
2764    #[inline(always)]
2765    pub const fn p609pfs_ha(
2766        &self,
2767    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
2768        unsafe {
2769            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
2770                self._svd2pac_as_ptr().add(0x1a6usize),
2771            )
2772        }
2773    }
2774
2775    #[doc = "Port 60%s Pin Function Select Register"]
2776    #[inline(always)]
2777    pub const fn p60pfs_by(
2778        &self,
2779    ) -> &'static crate::common::ClusterRegisterArray<
2780        crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW>,
2781        2,
2782        0x4,
2783    > {
2784        unsafe {
2785            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a3usize))
2786        }
2787    }
2788    #[inline(always)]
2789    pub const fn p608pfs_by(
2790        &self,
2791    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
2792        unsafe {
2793            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
2794                self._svd2pac_as_ptr().add(0x1a3usize),
2795            )
2796        }
2797    }
2798    #[inline(always)]
2799    pub const fn p609pfs_by(
2800        &self,
2801    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
2802        unsafe {
2803            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
2804                self._svd2pac_as_ptr().add(0x1a7usize),
2805            )
2806        }
2807    }
2808
2809    #[doc = "Port 610 Pin Function Select Register"]
2810    #[inline(always)]
2811    pub const fn p610pfs(
2812        &self,
2813    ) -> &'static crate::common::Reg<self::P610Pfs_SPEC, crate::common::RW> {
2814        unsafe {
2815            crate::common::Reg::<self::P610Pfs_SPEC, crate::common::RW>::from_ptr(
2816                self._svd2pac_as_ptr().add(424usize),
2817            )
2818        }
2819    }
2820
2821    #[doc = "Port 610 Pin Function Select Register"]
2822    #[inline(always)]
2823    pub const fn p610pfs_ha(
2824        &self,
2825    ) -> &'static crate::common::Reg<self::P610PfsHa_SPEC, crate::common::RW> {
2826        unsafe {
2827            crate::common::Reg::<self::P610PfsHa_SPEC, crate::common::RW>::from_ptr(
2828                self._svd2pac_as_ptr().add(426usize),
2829            )
2830        }
2831    }
2832
2833    #[doc = "Port 610 Pin Function Select Register"]
2834    #[inline(always)]
2835    pub const fn p610pfs_by(
2836        &self,
2837    ) -> &'static crate::common::Reg<self::P610PfsBy_SPEC, crate::common::RW> {
2838        unsafe {
2839            crate::common::Reg::<self::P610PfsBy_SPEC, crate::common::RW>::from_ptr(
2840                self._svd2pac_as_ptr().add(427usize),
2841            )
2842        }
2843    }
2844
2845    #[doc = "Port 708 Pin Function Select Register"]
2846    #[inline(always)]
2847    pub const fn p708pfs(
2848        &self,
2849    ) -> &'static crate::common::Reg<self::P708Pfs_SPEC, crate::common::RW> {
2850        unsafe {
2851            crate::common::Reg::<self::P708Pfs_SPEC, crate::common::RW>::from_ptr(
2852                self._svd2pac_as_ptr().add(480usize),
2853            )
2854        }
2855    }
2856
2857    #[doc = "Port 708 Pin Function Select Register"]
2858    #[inline(always)]
2859    pub const fn p708pfs_ha(
2860        &self,
2861    ) -> &'static crate::common::Reg<self::P708PfsHa_SPEC, crate::common::RW> {
2862        unsafe {
2863            crate::common::Reg::<self::P708PfsHa_SPEC, crate::common::RW>::from_ptr(
2864                self._svd2pac_as_ptr().add(482usize),
2865            )
2866        }
2867    }
2868
2869    #[doc = "Port 708 Pin Function Select Register"]
2870    #[inline(always)]
2871    pub const fn p708pfs_by(
2872        &self,
2873    ) -> &'static crate::common::Reg<self::P708PfsBy_SPEC, crate::common::RW> {
2874        unsafe {
2875            crate::common::Reg::<self::P708PfsBy_SPEC, crate::common::RW>::from_ptr(
2876                self._svd2pac_as_ptr().add(483usize),
2877            )
2878        }
2879    }
2880
2881    #[doc = "Port 714 Pin Function Select Register"]
2882    #[inline(always)]
2883    pub const fn p714pfs(
2884        &self,
2885    ) -> &'static crate::common::Reg<self::P714Pfs_SPEC, crate::common::RW> {
2886        unsafe {
2887            crate::common::Reg::<self::P714Pfs_SPEC, crate::common::RW>::from_ptr(
2888                self._svd2pac_as_ptr().add(504usize),
2889            )
2890        }
2891    }
2892
2893    #[doc = "Port 714 Pin Function Select Register"]
2894    #[inline(always)]
2895    pub const fn p714pfs_ha(
2896        &self,
2897    ) -> &'static crate::common::Reg<self::P714PfsHa_SPEC, crate::common::RW> {
2898        unsafe {
2899            crate::common::Reg::<self::P714PfsHa_SPEC, crate::common::RW>::from_ptr(
2900                self._svd2pac_as_ptr().add(506usize),
2901            )
2902        }
2903    }
2904
2905    #[doc = "Port 714 Pin Function Select Register"]
2906    #[inline(always)]
2907    pub const fn p714pfs_by(
2908        &self,
2909    ) -> &'static crate::common::Reg<self::P714PfsBy_SPEC, crate::common::RW> {
2910        unsafe {
2911            crate::common::Reg::<self::P714PfsBy_SPEC, crate::common::RW>::from_ptr(
2912                self._svd2pac_as_ptr().add(507usize),
2913            )
2914        }
2915    }
2916
2917    #[doc = "Port 80%s Pin Function Select Register"]
2918    #[inline(always)]
2919    pub const fn p80pfs(
2920        &self,
2921    ) -> &'static crate::common::ClusterRegisterArray<
2922        crate::common::Reg<self::P80Pfs_SPEC, crate::common::RW>,
2923        2,
2924        0x4,
2925    > {
2926        unsafe {
2927            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x220usize))
2928        }
2929    }
2930    #[inline(always)]
2931    pub const fn p808pfs(
2932        &self,
2933    ) -> &'static crate::common::Reg<self::P80Pfs_SPEC, crate::common::RW> {
2934        unsafe {
2935            crate::common::Reg::<self::P80Pfs_SPEC, crate::common::RW>::from_ptr(
2936                self._svd2pac_as_ptr().add(0x220usize),
2937            )
2938        }
2939    }
2940    #[inline(always)]
2941    pub const fn p809pfs(
2942        &self,
2943    ) -> &'static crate::common::Reg<self::P80Pfs_SPEC, crate::common::RW> {
2944        unsafe {
2945            crate::common::Reg::<self::P80Pfs_SPEC, crate::common::RW>::from_ptr(
2946                self._svd2pac_as_ptr().add(0x224usize),
2947            )
2948        }
2949    }
2950
2951    #[doc = "Port 80%s Pin Function Select Register"]
2952    #[inline(always)]
2953    pub const fn p80pfs_ha(
2954        &self,
2955    ) -> &'static crate::common::ClusterRegisterArray<
2956        crate::common::Reg<self::P80PfsHa_SPEC, crate::common::RW>,
2957        2,
2958        0x4,
2959    > {
2960        unsafe {
2961            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x222usize))
2962        }
2963    }
2964    #[inline(always)]
2965    pub const fn p808pfs_ha(
2966        &self,
2967    ) -> &'static crate::common::Reg<self::P80PfsHa_SPEC, crate::common::RW> {
2968        unsafe {
2969            crate::common::Reg::<self::P80PfsHa_SPEC, crate::common::RW>::from_ptr(
2970                self._svd2pac_as_ptr().add(0x222usize),
2971            )
2972        }
2973    }
2974    #[inline(always)]
2975    pub const fn p809pfs_ha(
2976        &self,
2977    ) -> &'static crate::common::Reg<self::P80PfsHa_SPEC, crate::common::RW> {
2978        unsafe {
2979            crate::common::Reg::<self::P80PfsHa_SPEC, crate::common::RW>::from_ptr(
2980                self._svd2pac_as_ptr().add(0x226usize),
2981            )
2982        }
2983    }
2984
2985    #[doc = "Port 80%s Pin Function Select Register"]
2986    #[inline(always)]
2987    pub const fn p80pfs_by(
2988        &self,
2989    ) -> &'static crate::common::ClusterRegisterArray<
2990        crate::common::Reg<self::P80PfsBy_SPEC, crate::common::RW>,
2991        2,
2992        0x4,
2993    > {
2994        unsafe {
2995            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x223usize))
2996        }
2997    }
2998    #[inline(always)]
2999    pub const fn p808pfs_by(
3000        &self,
3001    ) -> &'static crate::common::Reg<self::P80PfsBy_SPEC, crate::common::RW> {
3002        unsafe {
3003            crate::common::Reg::<self::P80PfsBy_SPEC, crate::common::RW>::from_ptr(
3004                self._svd2pac_as_ptr().add(0x223usize),
3005            )
3006        }
3007    }
3008    #[inline(always)]
3009    pub const fn p809pfs_by(
3010        &self,
3011    ) -> &'static crate::common::Reg<self::P80PfsBy_SPEC, crate::common::RW> {
3012        unsafe {
3013            crate::common::Reg::<self::P80PfsBy_SPEC, crate::common::RW>::from_ptr(
3014                self._svd2pac_as_ptr().add(0x227usize),
3015            )
3016        }
3017    }
3018
3019    #[doc = "Write-Protect Register"]
3020    #[inline(always)]
3021    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
3022        unsafe {
3023            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
3024                self._svd2pac_as_ptr().add(1283usize),
3025            )
3026        }
3027    }
3028
3029    #[doc = "Port Read Wait Control Register"]
3030    #[inline(always)]
3031    pub const fn prwcntr(
3032        &self,
3033    ) -> &'static crate::common::Reg<self::Prwcntr_SPEC, crate::common::RW> {
3034        unsafe {
3035            crate::common::Reg::<self::Prwcntr_SPEC, crate::common::RW>::from_ptr(
3036                self._svd2pac_as_ptr().add(1295usize),
3037            )
3038        }
3039    }
3040}
3041#[doc(hidden)]
3042#[derive(Copy, Clone, Eq, PartialEq)]
3043pub struct P00Pfs_SPEC;
3044impl crate::sealed::RegSpec for P00Pfs_SPEC {
3045    type DataType = u32;
3046}
3047
3048#[doc = "Port 00%s Pin Function Select Register"]
3049pub type P00Pfs = crate::RegValueT<P00Pfs_SPEC>;
3050
3051impl P00Pfs {
3052    #[doc = "Port Output Data"]
3053    #[inline(always)]
3054    pub fn podr(
3055        self,
3056    ) -> crate::common::RegisterField<
3057        0,
3058        0x1,
3059        1,
3060        0,
3061        p00pfs::Podr,
3062        p00pfs::Podr,
3063        P00Pfs_SPEC,
3064        crate::common::RW,
3065    > {
3066        crate::common::RegisterField::<
3067            0,
3068            0x1,
3069            1,
3070            0,
3071            p00pfs::Podr,
3072            p00pfs::Podr,
3073            P00Pfs_SPEC,
3074            crate::common::RW,
3075        >::from_register(self, 0)
3076    }
3077
3078    #[doc = "Port State"]
3079    #[inline(always)]
3080    pub fn pidr(
3081        self,
3082    ) -> crate::common::RegisterField<
3083        1,
3084        0x1,
3085        1,
3086        0,
3087        p00pfs::Pidr,
3088        p00pfs::Pidr,
3089        P00Pfs_SPEC,
3090        crate::common::R,
3091    > {
3092        crate::common::RegisterField::<
3093            1,
3094            0x1,
3095            1,
3096            0,
3097            p00pfs::Pidr,
3098            p00pfs::Pidr,
3099            P00Pfs_SPEC,
3100            crate::common::R,
3101        >::from_register(self, 0)
3102    }
3103
3104    #[doc = "Port Direction"]
3105    #[inline(always)]
3106    pub fn pdr(
3107        self,
3108    ) -> crate::common::RegisterField<
3109        2,
3110        0x1,
3111        1,
3112        0,
3113        p00pfs::Pdr,
3114        p00pfs::Pdr,
3115        P00Pfs_SPEC,
3116        crate::common::RW,
3117    > {
3118        crate::common::RegisterField::<
3119            2,
3120            0x1,
3121            1,
3122            0,
3123            p00pfs::Pdr,
3124            p00pfs::Pdr,
3125            P00Pfs_SPEC,
3126            crate::common::RW,
3127        >::from_register(self, 0)
3128    }
3129
3130    #[doc = "Pull-up Control"]
3131    #[inline(always)]
3132    pub fn pcr(
3133        self,
3134    ) -> crate::common::RegisterField<
3135        4,
3136        0x1,
3137        1,
3138        0,
3139        p00pfs::Pcr,
3140        p00pfs::Pcr,
3141        P00Pfs_SPEC,
3142        crate::common::RW,
3143    > {
3144        crate::common::RegisterField::<
3145            4,
3146            0x1,
3147            1,
3148            0,
3149            p00pfs::Pcr,
3150            p00pfs::Pcr,
3151            P00Pfs_SPEC,
3152            crate::common::RW,
3153        >::from_register(self, 0)
3154    }
3155
3156    #[doc = "N-Channel Open-Drain Control"]
3157    #[inline(always)]
3158    pub fn ncodr(
3159        self,
3160    ) -> crate::common::RegisterField<
3161        6,
3162        0x1,
3163        1,
3164        0,
3165        p00pfs::Ncodr,
3166        p00pfs::Ncodr,
3167        P00Pfs_SPEC,
3168        crate::common::RW,
3169    > {
3170        crate::common::RegisterField::<
3171            6,
3172            0x1,
3173            1,
3174            0,
3175            p00pfs::Ncodr,
3176            p00pfs::Ncodr,
3177            P00Pfs_SPEC,
3178            crate::common::RW,
3179        >::from_register(self, 0)
3180    }
3181
3182    #[doc = "IRQ Input Enable"]
3183    #[inline(always)]
3184    pub fn isel(
3185        self,
3186    ) -> crate::common::RegisterField<
3187        14,
3188        0x1,
3189        1,
3190        0,
3191        p00pfs::Isel,
3192        p00pfs::Isel,
3193        P00Pfs_SPEC,
3194        crate::common::RW,
3195    > {
3196        crate::common::RegisterField::<
3197            14,
3198            0x1,
3199            1,
3200            0,
3201            p00pfs::Isel,
3202            p00pfs::Isel,
3203            P00Pfs_SPEC,
3204            crate::common::RW,
3205        >::from_register(self, 0)
3206    }
3207
3208    #[doc = "Analog Input Enable"]
3209    #[inline(always)]
3210    pub fn asel(
3211        self,
3212    ) -> crate::common::RegisterField<
3213        15,
3214        0x1,
3215        1,
3216        0,
3217        p00pfs::Asel,
3218        p00pfs::Asel,
3219        P00Pfs_SPEC,
3220        crate::common::RW,
3221    > {
3222        crate::common::RegisterField::<
3223            15,
3224            0x1,
3225            1,
3226            0,
3227            p00pfs::Asel,
3228            p00pfs::Asel,
3229            P00Pfs_SPEC,
3230            crate::common::RW,
3231        >::from_register(self, 0)
3232    }
3233
3234    #[doc = "Port Mode Control"]
3235    #[inline(always)]
3236    pub fn pmr(
3237        self,
3238    ) -> crate::common::RegisterField<
3239        16,
3240        0x1,
3241        1,
3242        0,
3243        p00pfs::Pmr,
3244        p00pfs::Pmr,
3245        P00Pfs_SPEC,
3246        crate::common::RW,
3247    > {
3248        crate::common::RegisterField::<
3249            16,
3250            0x1,
3251            1,
3252            0,
3253            p00pfs::Pmr,
3254            p00pfs::Pmr,
3255            P00Pfs_SPEC,
3256            crate::common::RW,
3257        >::from_register(self, 0)
3258    }
3259
3260    #[doc = "Peripheral Select"]
3261    #[inline(always)]
3262    pub fn psel(
3263        self,
3264    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P00Pfs_SPEC, crate::common::RW> {
3265        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P00Pfs_SPEC,crate::common::RW>::from_register(self,0)
3266    }
3267}
3268impl ::core::default::Default for P00Pfs {
3269    #[inline(always)]
3270    fn default() -> P00Pfs {
3271        <crate::RegValueT<P00Pfs_SPEC> as RegisterValue<_>>::new(0)
3272    }
3273}
3274pub mod p00pfs {
3275
3276    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3277    pub struct Podr_SPEC;
3278    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3279    impl Podr {
3280        #[doc = "Output low"]
3281        pub const _0: Self = Self::new(0);
3282
3283        #[doc = "Output high"]
3284        pub const _1: Self = Self::new(1);
3285    }
3286    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3287    pub struct Pidr_SPEC;
3288    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3289    impl Pidr {
3290        #[doc = "Low level"]
3291        pub const _0: Self = Self::new(0);
3292
3293        #[doc = "High level"]
3294        pub const _1: Self = Self::new(1);
3295    }
3296    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3297    pub struct Pdr_SPEC;
3298    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3299    impl Pdr {
3300        #[doc = "Input (functions as an input pin)"]
3301        pub const _0: Self = Self::new(0);
3302
3303        #[doc = "Output (functions as an output pin)"]
3304        pub const _1: Self = Self::new(1);
3305    }
3306    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3307    pub struct Pcr_SPEC;
3308    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3309    impl Pcr {
3310        #[doc = "Disable input pull-up"]
3311        pub const _0: Self = Self::new(0);
3312
3313        #[doc = "Enable input pull-up"]
3314        pub const _1: Self = Self::new(1);
3315    }
3316    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3317    pub struct Ncodr_SPEC;
3318    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3319    impl Ncodr {
3320        #[doc = "Output CMOS"]
3321        pub const _0: Self = Self::new(0);
3322
3323        #[doc = "Output NMOS open-drain"]
3324        pub const _1: Self = Self::new(1);
3325    }
3326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3327    pub struct Isel_SPEC;
3328    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3329    impl Isel {
3330        #[doc = "Do not use as IRQn input pin"]
3331        pub const _0: Self = Self::new(0);
3332
3333        #[doc = "Use as IRQn input pin"]
3334        pub const _1: Self = Self::new(1);
3335    }
3336    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3337    pub struct Asel_SPEC;
3338    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3339    impl Asel {
3340        #[doc = "Do not use as analog pin"]
3341        pub const _0: Self = Self::new(0);
3342
3343        #[doc = "Use as analog pin"]
3344        pub const _1: Self = Self::new(1);
3345    }
3346    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3347    pub struct Pmr_SPEC;
3348    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3349    impl Pmr {
3350        #[doc = "Use as general I/O pin"]
3351        pub const _0: Self = Self::new(0);
3352
3353        #[doc = "Use as I/O port for peripheral functions"]
3354        pub const _1: Self = Self::new(1);
3355    }
3356}
3357#[doc(hidden)]
3358#[derive(Copy, Clone, Eq, PartialEq)]
3359pub struct P00PfsHa_SPEC;
3360impl crate::sealed::RegSpec for P00PfsHa_SPEC {
3361    type DataType = u16;
3362}
3363
3364#[doc = "Port 00%s Pin Function Select Register"]
3365pub type P00PfsHa = crate::RegValueT<P00PfsHa_SPEC>;
3366
3367impl P00PfsHa {
3368    #[doc = "Port Output Data"]
3369    #[inline(always)]
3370    pub fn podr(
3371        self,
3372    ) -> crate::common::RegisterField<
3373        0,
3374        0x1,
3375        1,
3376        0,
3377        p00pfs_ha::Podr,
3378        p00pfs_ha::Podr,
3379        P00PfsHa_SPEC,
3380        crate::common::RW,
3381    > {
3382        crate::common::RegisterField::<
3383            0,
3384            0x1,
3385            1,
3386            0,
3387            p00pfs_ha::Podr,
3388            p00pfs_ha::Podr,
3389            P00PfsHa_SPEC,
3390            crate::common::RW,
3391        >::from_register(self, 0)
3392    }
3393
3394    #[doc = "Port State"]
3395    #[inline(always)]
3396    pub fn pidr(
3397        self,
3398    ) -> crate::common::RegisterField<
3399        1,
3400        0x1,
3401        1,
3402        0,
3403        p00pfs_ha::Pidr,
3404        p00pfs_ha::Pidr,
3405        P00PfsHa_SPEC,
3406        crate::common::R,
3407    > {
3408        crate::common::RegisterField::<
3409            1,
3410            0x1,
3411            1,
3412            0,
3413            p00pfs_ha::Pidr,
3414            p00pfs_ha::Pidr,
3415            P00PfsHa_SPEC,
3416            crate::common::R,
3417        >::from_register(self, 0)
3418    }
3419
3420    #[doc = "Port Direction"]
3421    #[inline(always)]
3422    pub fn pdr(
3423        self,
3424    ) -> crate::common::RegisterField<
3425        2,
3426        0x1,
3427        1,
3428        0,
3429        p00pfs_ha::Pdr,
3430        p00pfs_ha::Pdr,
3431        P00PfsHa_SPEC,
3432        crate::common::RW,
3433    > {
3434        crate::common::RegisterField::<
3435            2,
3436            0x1,
3437            1,
3438            0,
3439            p00pfs_ha::Pdr,
3440            p00pfs_ha::Pdr,
3441            P00PfsHa_SPEC,
3442            crate::common::RW,
3443        >::from_register(self, 0)
3444    }
3445
3446    #[doc = "Pull-up Control"]
3447    #[inline(always)]
3448    pub fn pcr(
3449        self,
3450    ) -> crate::common::RegisterField<
3451        4,
3452        0x1,
3453        1,
3454        0,
3455        p00pfs_ha::Pcr,
3456        p00pfs_ha::Pcr,
3457        P00PfsHa_SPEC,
3458        crate::common::RW,
3459    > {
3460        crate::common::RegisterField::<
3461            4,
3462            0x1,
3463            1,
3464            0,
3465            p00pfs_ha::Pcr,
3466            p00pfs_ha::Pcr,
3467            P00PfsHa_SPEC,
3468            crate::common::RW,
3469        >::from_register(self, 0)
3470    }
3471
3472    #[doc = "N-Channel Open-Drain Control"]
3473    #[inline(always)]
3474    pub fn ncodr(
3475        self,
3476    ) -> crate::common::RegisterField<
3477        6,
3478        0x1,
3479        1,
3480        0,
3481        p00pfs_ha::Ncodr,
3482        p00pfs_ha::Ncodr,
3483        P00PfsHa_SPEC,
3484        crate::common::RW,
3485    > {
3486        crate::common::RegisterField::<
3487            6,
3488            0x1,
3489            1,
3490            0,
3491            p00pfs_ha::Ncodr,
3492            p00pfs_ha::Ncodr,
3493            P00PfsHa_SPEC,
3494            crate::common::RW,
3495        >::from_register(self, 0)
3496    }
3497
3498    #[doc = "IRQ Input Enable"]
3499    #[inline(always)]
3500    pub fn isel(
3501        self,
3502    ) -> crate::common::RegisterField<
3503        14,
3504        0x1,
3505        1,
3506        0,
3507        p00pfs_ha::Isel,
3508        p00pfs_ha::Isel,
3509        P00PfsHa_SPEC,
3510        crate::common::RW,
3511    > {
3512        crate::common::RegisterField::<
3513            14,
3514            0x1,
3515            1,
3516            0,
3517            p00pfs_ha::Isel,
3518            p00pfs_ha::Isel,
3519            P00PfsHa_SPEC,
3520            crate::common::RW,
3521        >::from_register(self, 0)
3522    }
3523
3524    #[doc = "Analog Input Enable"]
3525    #[inline(always)]
3526    pub fn asel(
3527        self,
3528    ) -> crate::common::RegisterField<
3529        15,
3530        0x1,
3531        1,
3532        0,
3533        p00pfs_ha::Asel,
3534        p00pfs_ha::Asel,
3535        P00PfsHa_SPEC,
3536        crate::common::RW,
3537    > {
3538        crate::common::RegisterField::<
3539            15,
3540            0x1,
3541            1,
3542            0,
3543            p00pfs_ha::Asel,
3544            p00pfs_ha::Asel,
3545            P00PfsHa_SPEC,
3546            crate::common::RW,
3547        >::from_register(self, 0)
3548    }
3549}
3550impl ::core::default::Default for P00PfsHa {
3551    #[inline(always)]
3552    fn default() -> P00PfsHa {
3553        <crate::RegValueT<P00PfsHa_SPEC> as RegisterValue<_>>::new(0)
3554    }
3555}
3556pub mod p00pfs_ha {
3557
3558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3559    pub struct Podr_SPEC;
3560    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3561    impl Podr {
3562        #[doc = "Output low"]
3563        pub const _0: Self = Self::new(0);
3564
3565        #[doc = "Output high"]
3566        pub const _1: Self = Self::new(1);
3567    }
3568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3569    pub struct Pidr_SPEC;
3570    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3571    impl Pidr {
3572        #[doc = "Low level"]
3573        pub const _0: Self = Self::new(0);
3574
3575        #[doc = "High level"]
3576        pub const _1: Self = Self::new(1);
3577    }
3578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3579    pub struct Pdr_SPEC;
3580    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3581    impl Pdr {
3582        #[doc = "Input (functions as an input pin)"]
3583        pub const _0: Self = Self::new(0);
3584
3585        #[doc = "Output (functions as an output pin)"]
3586        pub const _1: Self = Self::new(1);
3587    }
3588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3589    pub struct Pcr_SPEC;
3590    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3591    impl Pcr {
3592        #[doc = "Disable input pull-up"]
3593        pub const _0: Self = Self::new(0);
3594
3595        #[doc = "Enable input pull-up"]
3596        pub const _1: Self = Self::new(1);
3597    }
3598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3599    pub struct Ncodr_SPEC;
3600    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3601    impl Ncodr {
3602        #[doc = "Output CMOS"]
3603        pub const _0: Self = Self::new(0);
3604
3605        #[doc = "Output NMOS open-drain"]
3606        pub const _1: Self = Self::new(1);
3607    }
3608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3609    pub struct Isel_SPEC;
3610    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3611    impl Isel {
3612        #[doc = "Do not use as IRQn input pin"]
3613        pub const _0: Self = Self::new(0);
3614
3615        #[doc = "Use as IRQn input pin"]
3616        pub const _1: Self = Self::new(1);
3617    }
3618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3619    pub struct Asel_SPEC;
3620    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3621    impl Asel {
3622        #[doc = "Do not use as analog pin"]
3623        pub const _0: Self = Self::new(0);
3624
3625        #[doc = "Use as analog pin"]
3626        pub const _1: Self = Self::new(1);
3627    }
3628}
3629#[doc(hidden)]
3630#[derive(Copy, Clone, Eq, PartialEq)]
3631pub struct P00PfsBy_SPEC;
3632impl crate::sealed::RegSpec for P00PfsBy_SPEC {
3633    type DataType = u8;
3634}
3635
3636#[doc = "Port 00%s Pin Function Select Register"]
3637pub type P00PfsBy = crate::RegValueT<P00PfsBy_SPEC>;
3638
3639impl P00PfsBy {
3640    #[doc = "Port Output Data"]
3641    #[inline(always)]
3642    pub fn podr(
3643        self,
3644    ) -> crate::common::RegisterField<
3645        0,
3646        0x1,
3647        1,
3648        0,
3649        p00pfs_by::Podr,
3650        p00pfs_by::Podr,
3651        P00PfsBy_SPEC,
3652        crate::common::RW,
3653    > {
3654        crate::common::RegisterField::<
3655            0,
3656            0x1,
3657            1,
3658            0,
3659            p00pfs_by::Podr,
3660            p00pfs_by::Podr,
3661            P00PfsBy_SPEC,
3662            crate::common::RW,
3663        >::from_register(self, 0)
3664    }
3665
3666    #[doc = "Port State"]
3667    #[inline(always)]
3668    pub fn pidr(
3669        self,
3670    ) -> crate::common::RegisterField<
3671        1,
3672        0x1,
3673        1,
3674        0,
3675        p00pfs_by::Pidr,
3676        p00pfs_by::Pidr,
3677        P00PfsBy_SPEC,
3678        crate::common::R,
3679    > {
3680        crate::common::RegisterField::<
3681            1,
3682            0x1,
3683            1,
3684            0,
3685            p00pfs_by::Pidr,
3686            p00pfs_by::Pidr,
3687            P00PfsBy_SPEC,
3688            crate::common::R,
3689        >::from_register(self, 0)
3690    }
3691
3692    #[doc = "Port Direction"]
3693    #[inline(always)]
3694    pub fn pdr(
3695        self,
3696    ) -> crate::common::RegisterField<
3697        2,
3698        0x1,
3699        1,
3700        0,
3701        p00pfs_by::Pdr,
3702        p00pfs_by::Pdr,
3703        P00PfsBy_SPEC,
3704        crate::common::RW,
3705    > {
3706        crate::common::RegisterField::<
3707            2,
3708            0x1,
3709            1,
3710            0,
3711            p00pfs_by::Pdr,
3712            p00pfs_by::Pdr,
3713            P00PfsBy_SPEC,
3714            crate::common::RW,
3715        >::from_register(self, 0)
3716    }
3717
3718    #[doc = "Pull-up Control"]
3719    #[inline(always)]
3720    pub fn pcr(
3721        self,
3722    ) -> crate::common::RegisterField<
3723        4,
3724        0x1,
3725        1,
3726        0,
3727        p00pfs_by::Pcr,
3728        p00pfs_by::Pcr,
3729        P00PfsBy_SPEC,
3730        crate::common::RW,
3731    > {
3732        crate::common::RegisterField::<
3733            4,
3734            0x1,
3735            1,
3736            0,
3737            p00pfs_by::Pcr,
3738            p00pfs_by::Pcr,
3739            P00PfsBy_SPEC,
3740            crate::common::RW,
3741        >::from_register(self, 0)
3742    }
3743
3744    #[doc = "N-Channel Open-Drain Control"]
3745    #[inline(always)]
3746    pub fn ncodr(
3747        self,
3748    ) -> crate::common::RegisterField<
3749        6,
3750        0x1,
3751        1,
3752        0,
3753        p00pfs_by::Ncodr,
3754        p00pfs_by::Ncodr,
3755        P00PfsBy_SPEC,
3756        crate::common::RW,
3757    > {
3758        crate::common::RegisterField::<
3759            6,
3760            0x1,
3761            1,
3762            0,
3763            p00pfs_by::Ncodr,
3764            p00pfs_by::Ncodr,
3765            P00PfsBy_SPEC,
3766            crate::common::RW,
3767        >::from_register(self, 0)
3768    }
3769}
3770impl ::core::default::Default for P00PfsBy {
3771    #[inline(always)]
3772    fn default() -> P00PfsBy {
3773        <crate::RegValueT<P00PfsBy_SPEC> as RegisterValue<_>>::new(0)
3774    }
3775}
3776pub mod p00pfs_by {
3777
3778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3779    pub struct Podr_SPEC;
3780    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3781    impl Podr {
3782        #[doc = "Output low"]
3783        pub const _0: Self = Self::new(0);
3784
3785        #[doc = "Output high"]
3786        pub const _1: Self = Self::new(1);
3787    }
3788    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3789    pub struct Pidr_SPEC;
3790    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3791    impl Pidr {
3792        #[doc = "Low level"]
3793        pub const _0: Self = Self::new(0);
3794
3795        #[doc = "High level"]
3796        pub const _1: Self = Self::new(1);
3797    }
3798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3799    pub struct Pdr_SPEC;
3800    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3801    impl Pdr {
3802        #[doc = "Input (functions as an input pin)"]
3803        pub const _0: Self = Self::new(0);
3804
3805        #[doc = "Output (functions as an output pin)"]
3806        pub const _1: Self = Self::new(1);
3807    }
3808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3809    pub struct Pcr_SPEC;
3810    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3811    impl Pcr {
3812        #[doc = "Disable input pull-up"]
3813        pub const _0: Self = Self::new(0);
3814
3815        #[doc = "Enable input pull-up"]
3816        pub const _1: Self = Self::new(1);
3817    }
3818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3819    pub struct Ncodr_SPEC;
3820    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3821    impl Ncodr {
3822        #[doc = "Output CMOS"]
3823        pub const _0: Self = Self::new(0);
3824
3825        #[doc = "Output NMOS open-drain"]
3826        pub const _1: Self = Self::new(1);
3827    }
3828}
3829#[doc(hidden)]
3830#[derive(Copy, Clone, Eq, PartialEq)]
3831pub struct P0Pfs_SPEC;
3832impl crate::sealed::RegSpec for P0Pfs_SPEC {
3833    type DataType = u32;
3834}
3835
3836#[doc = "Port 0%s Pin Function Select Register"]
3837pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
3838
3839impl P0Pfs {
3840    #[doc = "Port Output Data"]
3841    #[inline(always)]
3842    pub fn podr(
3843        self,
3844    ) -> crate::common::RegisterField<
3845        0,
3846        0x1,
3847        1,
3848        0,
3849        p0pfs::Podr,
3850        p0pfs::Podr,
3851        P0Pfs_SPEC,
3852        crate::common::RW,
3853    > {
3854        crate::common::RegisterField::<
3855            0,
3856            0x1,
3857            1,
3858            0,
3859            p0pfs::Podr,
3860            p0pfs::Podr,
3861            P0Pfs_SPEC,
3862            crate::common::RW,
3863        >::from_register(self, 0)
3864    }
3865
3866    #[doc = "Port State"]
3867    #[inline(always)]
3868    pub fn pidr(
3869        self,
3870    ) -> crate::common::RegisterField<
3871        1,
3872        0x1,
3873        1,
3874        0,
3875        p0pfs::Pidr,
3876        p0pfs::Pidr,
3877        P0Pfs_SPEC,
3878        crate::common::R,
3879    > {
3880        crate::common::RegisterField::<
3881            1,
3882            0x1,
3883            1,
3884            0,
3885            p0pfs::Pidr,
3886            p0pfs::Pidr,
3887            P0Pfs_SPEC,
3888            crate::common::R,
3889        >::from_register(self, 0)
3890    }
3891
3892    #[doc = "Port Direction"]
3893    #[inline(always)]
3894    pub fn pdr(
3895        self,
3896    ) -> crate::common::RegisterField<
3897        2,
3898        0x1,
3899        1,
3900        0,
3901        p0pfs::Pdr,
3902        p0pfs::Pdr,
3903        P0Pfs_SPEC,
3904        crate::common::RW,
3905    > {
3906        crate::common::RegisterField::<
3907            2,
3908            0x1,
3909            1,
3910            0,
3911            p0pfs::Pdr,
3912            p0pfs::Pdr,
3913            P0Pfs_SPEC,
3914            crate::common::RW,
3915        >::from_register(self, 0)
3916    }
3917
3918    #[doc = "Pull-up Control"]
3919    #[inline(always)]
3920    pub fn pcr(
3921        self,
3922    ) -> crate::common::RegisterField<
3923        4,
3924        0x1,
3925        1,
3926        0,
3927        p0pfs::Pcr,
3928        p0pfs::Pcr,
3929        P0Pfs_SPEC,
3930        crate::common::RW,
3931    > {
3932        crate::common::RegisterField::<
3933            4,
3934            0x1,
3935            1,
3936            0,
3937            p0pfs::Pcr,
3938            p0pfs::Pcr,
3939            P0Pfs_SPEC,
3940            crate::common::RW,
3941        >::from_register(self, 0)
3942    }
3943
3944    #[doc = "N-Channel Open-Drain Control"]
3945    #[inline(always)]
3946    pub fn ncodr(
3947        self,
3948    ) -> crate::common::RegisterField<
3949        6,
3950        0x1,
3951        1,
3952        0,
3953        p0pfs::Ncodr,
3954        p0pfs::Ncodr,
3955        P0Pfs_SPEC,
3956        crate::common::RW,
3957    > {
3958        crate::common::RegisterField::<
3959            6,
3960            0x1,
3961            1,
3962            0,
3963            p0pfs::Ncodr,
3964            p0pfs::Ncodr,
3965            P0Pfs_SPEC,
3966            crate::common::RW,
3967        >::from_register(self, 0)
3968    }
3969
3970    #[doc = "IRQ Input Enable"]
3971    #[inline(always)]
3972    pub fn isel(
3973        self,
3974    ) -> crate::common::RegisterField<
3975        14,
3976        0x1,
3977        1,
3978        0,
3979        p0pfs::Isel,
3980        p0pfs::Isel,
3981        P0Pfs_SPEC,
3982        crate::common::RW,
3983    > {
3984        crate::common::RegisterField::<
3985            14,
3986            0x1,
3987            1,
3988            0,
3989            p0pfs::Isel,
3990            p0pfs::Isel,
3991            P0Pfs_SPEC,
3992            crate::common::RW,
3993        >::from_register(self, 0)
3994    }
3995
3996    #[doc = "Analog Input Enable"]
3997    #[inline(always)]
3998    pub fn asel(
3999        self,
4000    ) -> crate::common::RegisterField<
4001        15,
4002        0x1,
4003        1,
4004        0,
4005        p0pfs::Asel,
4006        p0pfs::Asel,
4007        P0Pfs_SPEC,
4008        crate::common::RW,
4009    > {
4010        crate::common::RegisterField::<
4011            15,
4012            0x1,
4013            1,
4014            0,
4015            p0pfs::Asel,
4016            p0pfs::Asel,
4017            P0Pfs_SPEC,
4018            crate::common::RW,
4019        >::from_register(self, 0)
4020    }
4021
4022    #[doc = "Port Mode Control"]
4023    #[inline(always)]
4024    pub fn pmr(
4025        self,
4026    ) -> crate::common::RegisterField<
4027        16,
4028        0x1,
4029        1,
4030        0,
4031        p0pfs::Pmr,
4032        p0pfs::Pmr,
4033        P0Pfs_SPEC,
4034        crate::common::RW,
4035    > {
4036        crate::common::RegisterField::<
4037            16,
4038            0x1,
4039            1,
4040            0,
4041            p0pfs::Pmr,
4042            p0pfs::Pmr,
4043            P0Pfs_SPEC,
4044            crate::common::RW,
4045        >::from_register(self, 0)
4046    }
4047
4048    #[doc = "Peripheral Select"]
4049    #[inline(always)]
4050    pub fn psel(
4051        self,
4052    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
4053        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
4054    }
4055}
4056impl ::core::default::Default for P0Pfs {
4057    #[inline(always)]
4058    fn default() -> P0Pfs {
4059        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
4060    }
4061}
4062pub mod p0pfs {
4063
4064    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4065    pub struct Podr_SPEC;
4066    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4067    impl Podr {
4068        #[doc = "Output low"]
4069        pub const _0: Self = Self::new(0);
4070
4071        #[doc = "Output high"]
4072        pub const _1: Self = Self::new(1);
4073    }
4074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4075    pub struct Pidr_SPEC;
4076    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4077    impl Pidr {
4078        #[doc = "Low level"]
4079        pub const _0: Self = Self::new(0);
4080
4081        #[doc = "High level"]
4082        pub const _1: Self = Self::new(1);
4083    }
4084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4085    pub struct Pdr_SPEC;
4086    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4087    impl Pdr {
4088        #[doc = "Input (functions as an input pin)"]
4089        pub const _0: Self = Self::new(0);
4090
4091        #[doc = "Output (functions as an output pin)"]
4092        pub const _1: Self = Self::new(1);
4093    }
4094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4095    pub struct Pcr_SPEC;
4096    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4097    impl Pcr {
4098        #[doc = "Disable input pull-up"]
4099        pub const _0: Self = Self::new(0);
4100
4101        #[doc = "Enable input pull-up"]
4102        pub const _1: Self = Self::new(1);
4103    }
4104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4105    pub struct Ncodr_SPEC;
4106    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4107    impl Ncodr {
4108        #[doc = "Output CMOS"]
4109        pub const _0: Self = Self::new(0);
4110
4111        #[doc = "Output NMOS open-drain"]
4112        pub const _1: Self = Self::new(1);
4113    }
4114    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4115    pub struct Isel_SPEC;
4116    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4117    impl Isel {
4118        #[doc = "Do not use as IRQn input pin"]
4119        pub const _0: Self = Self::new(0);
4120
4121        #[doc = "Use as IRQn input pin"]
4122        pub const _1: Self = Self::new(1);
4123    }
4124    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4125    pub struct Asel_SPEC;
4126    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4127    impl Asel {
4128        #[doc = "Do not use as analog pin"]
4129        pub const _0: Self = Self::new(0);
4130
4131        #[doc = "Use as analog pin"]
4132        pub const _1: Self = Self::new(1);
4133    }
4134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4135    pub struct Pmr_SPEC;
4136    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4137    impl Pmr {
4138        #[doc = "Use as general I/O pin"]
4139        pub const _0: Self = Self::new(0);
4140
4141        #[doc = "Use as I/O port for peripheral functions"]
4142        pub const _1: Self = Self::new(1);
4143    }
4144}
4145#[doc(hidden)]
4146#[derive(Copy, Clone, Eq, PartialEq)]
4147pub struct P0PfsHa_SPEC;
4148impl crate::sealed::RegSpec for P0PfsHa_SPEC {
4149    type DataType = u16;
4150}
4151
4152#[doc = "Port 0%s Pin Function Select Register"]
4153pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
4154
4155impl P0PfsHa {
4156    #[doc = "Port Output Data"]
4157    #[inline(always)]
4158    pub fn podr(
4159        self,
4160    ) -> crate::common::RegisterField<
4161        0,
4162        0x1,
4163        1,
4164        0,
4165        p0pfs_ha::Podr,
4166        p0pfs_ha::Podr,
4167        P0PfsHa_SPEC,
4168        crate::common::RW,
4169    > {
4170        crate::common::RegisterField::<
4171            0,
4172            0x1,
4173            1,
4174            0,
4175            p0pfs_ha::Podr,
4176            p0pfs_ha::Podr,
4177            P0PfsHa_SPEC,
4178            crate::common::RW,
4179        >::from_register(self, 0)
4180    }
4181
4182    #[doc = "Port State"]
4183    #[inline(always)]
4184    pub fn pidr(
4185        self,
4186    ) -> crate::common::RegisterField<
4187        1,
4188        0x1,
4189        1,
4190        0,
4191        p0pfs_ha::Pidr,
4192        p0pfs_ha::Pidr,
4193        P0PfsHa_SPEC,
4194        crate::common::R,
4195    > {
4196        crate::common::RegisterField::<
4197            1,
4198            0x1,
4199            1,
4200            0,
4201            p0pfs_ha::Pidr,
4202            p0pfs_ha::Pidr,
4203            P0PfsHa_SPEC,
4204            crate::common::R,
4205        >::from_register(self, 0)
4206    }
4207
4208    #[doc = "Port Direction"]
4209    #[inline(always)]
4210    pub fn pdr(
4211        self,
4212    ) -> crate::common::RegisterField<
4213        2,
4214        0x1,
4215        1,
4216        0,
4217        p0pfs_ha::Pdr,
4218        p0pfs_ha::Pdr,
4219        P0PfsHa_SPEC,
4220        crate::common::RW,
4221    > {
4222        crate::common::RegisterField::<
4223            2,
4224            0x1,
4225            1,
4226            0,
4227            p0pfs_ha::Pdr,
4228            p0pfs_ha::Pdr,
4229            P0PfsHa_SPEC,
4230            crate::common::RW,
4231        >::from_register(self, 0)
4232    }
4233
4234    #[doc = "Pull-up Control"]
4235    #[inline(always)]
4236    pub fn pcr(
4237        self,
4238    ) -> crate::common::RegisterField<
4239        4,
4240        0x1,
4241        1,
4242        0,
4243        p0pfs_ha::Pcr,
4244        p0pfs_ha::Pcr,
4245        P0PfsHa_SPEC,
4246        crate::common::RW,
4247    > {
4248        crate::common::RegisterField::<
4249            4,
4250            0x1,
4251            1,
4252            0,
4253            p0pfs_ha::Pcr,
4254            p0pfs_ha::Pcr,
4255            P0PfsHa_SPEC,
4256            crate::common::RW,
4257        >::from_register(self, 0)
4258    }
4259
4260    #[doc = "N-Channel Open-Drain Control"]
4261    #[inline(always)]
4262    pub fn ncodr(
4263        self,
4264    ) -> crate::common::RegisterField<
4265        6,
4266        0x1,
4267        1,
4268        0,
4269        p0pfs_ha::Ncodr,
4270        p0pfs_ha::Ncodr,
4271        P0PfsHa_SPEC,
4272        crate::common::RW,
4273    > {
4274        crate::common::RegisterField::<
4275            6,
4276            0x1,
4277            1,
4278            0,
4279            p0pfs_ha::Ncodr,
4280            p0pfs_ha::Ncodr,
4281            P0PfsHa_SPEC,
4282            crate::common::RW,
4283        >::from_register(self, 0)
4284    }
4285
4286    #[doc = "IRQ Input Enable"]
4287    #[inline(always)]
4288    pub fn isel(
4289        self,
4290    ) -> crate::common::RegisterField<
4291        14,
4292        0x1,
4293        1,
4294        0,
4295        p0pfs_ha::Isel,
4296        p0pfs_ha::Isel,
4297        P0PfsHa_SPEC,
4298        crate::common::RW,
4299    > {
4300        crate::common::RegisterField::<
4301            14,
4302            0x1,
4303            1,
4304            0,
4305            p0pfs_ha::Isel,
4306            p0pfs_ha::Isel,
4307            P0PfsHa_SPEC,
4308            crate::common::RW,
4309        >::from_register(self, 0)
4310    }
4311
4312    #[doc = "Analog Input Enable"]
4313    #[inline(always)]
4314    pub fn asel(
4315        self,
4316    ) -> crate::common::RegisterField<
4317        15,
4318        0x1,
4319        1,
4320        0,
4321        p0pfs_ha::Asel,
4322        p0pfs_ha::Asel,
4323        P0PfsHa_SPEC,
4324        crate::common::RW,
4325    > {
4326        crate::common::RegisterField::<
4327            15,
4328            0x1,
4329            1,
4330            0,
4331            p0pfs_ha::Asel,
4332            p0pfs_ha::Asel,
4333            P0PfsHa_SPEC,
4334            crate::common::RW,
4335        >::from_register(self, 0)
4336    }
4337}
4338impl ::core::default::Default for P0PfsHa {
4339    #[inline(always)]
4340    fn default() -> P0PfsHa {
4341        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
4342    }
4343}
4344pub mod p0pfs_ha {
4345
4346    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4347    pub struct Podr_SPEC;
4348    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4349    impl Podr {
4350        #[doc = "Output low"]
4351        pub const _0: Self = Self::new(0);
4352
4353        #[doc = "Output high"]
4354        pub const _1: Self = Self::new(1);
4355    }
4356    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4357    pub struct Pidr_SPEC;
4358    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4359    impl Pidr {
4360        #[doc = "Low level"]
4361        pub const _0: Self = Self::new(0);
4362
4363        #[doc = "High level"]
4364        pub const _1: Self = Self::new(1);
4365    }
4366    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4367    pub struct Pdr_SPEC;
4368    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4369    impl Pdr {
4370        #[doc = "Input (functions as an input pin)"]
4371        pub const _0: Self = Self::new(0);
4372
4373        #[doc = "Output (functions as an output pin)"]
4374        pub const _1: Self = Self::new(1);
4375    }
4376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4377    pub struct Pcr_SPEC;
4378    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4379    impl Pcr {
4380        #[doc = "Disable input pull-up"]
4381        pub const _0: Self = Self::new(0);
4382
4383        #[doc = "Enable input pull-up"]
4384        pub const _1: Self = Self::new(1);
4385    }
4386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4387    pub struct Ncodr_SPEC;
4388    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4389    impl Ncodr {
4390        #[doc = "Output CMOS"]
4391        pub const _0: Self = Self::new(0);
4392
4393        #[doc = "Output NMOS open-drain"]
4394        pub const _1: Self = Self::new(1);
4395    }
4396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4397    pub struct Isel_SPEC;
4398    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4399    impl Isel {
4400        #[doc = "Do not use as IRQn input pin"]
4401        pub const _0: Self = Self::new(0);
4402
4403        #[doc = "Use as IRQn input pin"]
4404        pub const _1: Self = Self::new(1);
4405    }
4406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4407    pub struct Asel_SPEC;
4408    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4409    impl Asel {
4410        #[doc = "Do not use as analog pin"]
4411        pub const _0: Self = Self::new(0);
4412
4413        #[doc = "Use as analog pin"]
4414        pub const _1: Self = Self::new(1);
4415    }
4416}
4417#[doc(hidden)]
4418#[derive(Copy, Clone, Eq, PartialEq)]
4419pub struct P0PfsBy_SPEC;
4420impl crate::sealed::RegSpec for P0PfsBy_SPEC {
4421    type DataType = u8;
4422}
4423
4424#[doc = "Port 0%s Pin Function Select Register"]
4425pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
4426
4427impl P0PfsBy {
4428    #[doc = "Port Output Data"]
4429    #[inline(always)]
4430    pub fn podr(
4431        self,
4432    ) -> crate::common::RegisterField<
4433        0,
4434        0x1,
4435        1,
4436        0,
4437        p0pfs_by::Podr,
4438        p0pfs_by::Podr,
4439        P0PfsBy_SPEC,
4440        crate::common::RW,
4441    > {
4442        crate::common::RegisterField::<
4443            0,
4444            0x1,
4445            1,
4446            0,
4447            p0pfs_by::Podr,
4448            p0pfs_by::Podr,
4449            P0PfsBy_SPEC,
4450            crate::common::RW,
4451        >::from_register(self, 0)
4452    }
4453
4454    #[doc = "Port State"]
4455    #[inline(always)]
4456    pub fn pidr(
4457        self,
4458    ) -> crate::common::RegisterField<
4459        1,
4460        0x1,
4461        1,
4462        0,
4463        p0pfs_by::Pidr,
4464        p0pfs_by::Pidr,
4465        P0PfsBy_SPEC,
4466        crate::common::R,
4467    > {
4468        crate::common::RegisterField::<
4469            1,
4470            0x1,
4471            1,
4472            0,
4473            p0pfs_by::Pidr,
4474            p0pfs_by::Pidr,
4475            P0PfsBy_SPEC,
4476            crate::common::R,
4477        >::from_register(self, 0)
4478    }
4479
4480    #[doc = "Port Direction"]
4481    #[inline(always)]
4482    pub fn pdr(
4483        self,
4484    ) -> crate::common::RegisterField<
4485        2,
4486        0x1,
4487        1,
4488        0,
4489        p0pfs_by::Pdr,
4490        p0pfs_by::Pdr,
4491        P0PfsBy_SPEC,
4492        crate::common::RW,
4493    > {
4494        crate::common::RegisterField::<
4495            2,
4496            0x1,
4497            1,
4498            0,
4499            p0pfs_by::Pdr,
4500            p0pfs_by::Pdr,
4501            P0PfsBy_SPEC,
4502            crate::common::RW,
4503        >::from_register(self, 0)
4504    }
4505
4506    #[doc = "Pull-up Control"]
4507    #[inline(always)]
4508    pub fn pcr(
4509        self,
4510    ) -> crate::common::RegisterField<
4511        4,
4512        0x1,
4513        1,
4514        0,
4515        p0pfs_by::Pcr,
4516        p0pfs_by::Pcr,
4517        P0PfsBy_SPEC,
4518        crate::common::RW,
4519    > {
4520        crate::common::RegisterField::<
4521            4,
4522            0x1,
4523            1,
4524            0,
4525            p0pfs_by::Pcr,
4526            p0pfs_by::Pcr,
4527            P0PfsBy_SPEC,
4528            crate::common::RW,
4529        >::from_register(self, 0)
4530    }
4531
4532    #[doc = "N-Channel Open-Drain Control"]
4533    #[inline(always)]
4534    pub fn ncodr(
4535        self,
4536    ) -> crate::common::RegisterField<
4537        6,
4538        0x1,
4539        1,
4540        0,
4541        p0pfs_by::Ncodr,
4542        p0pfs_by::Ncodr,
4543        P0PfsBy_SPEC,
4544        crate::common::RW,
4545    > {
4546        crate::common::RegisterField::<
4547            6,
4548            0x1,
4549            1,
4550            0,
4551            p0pfs_by::Ncodr,
4552            p0pfs_by::Ncodr,
4553            P0PfsBy_SPEC,
4554            crate::common::RW,
4555        >::from_register(self, 0)
4556    }
4557}
4558impl ::core::default::Default for P0PfsBy {
4559    #[inline(always)]
4560    fn default() -> P0PfsBy {
4561        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
4562    }
4563}
4564pub mod p0pfs_by {
4565
4566    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4567    pub struct Podr_SPEC;
4568    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4569    impl Podr {
4570        #[doc = "Output low"]
4571        pub const _0: Self = Self::new(0);
4572
4573        #[doc = "Output high"]
4574        pub const _1: Self = Self::new(1);
4575    }
4576    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4577    pub struct Pidr_SPEC;
4578    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4579    impl Pidr {
4580        #[doc = "Low level"]
4581        pub const _0: Self = Self::new(0);
4582
4583        #[doc = "High level"]
4584        pub const _1: Self = Self::new(1);
4585    }
4586    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4587    pub struct Pdr_SPEC;
4588    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4589    impl Pdr {
4590        #[doc = "Input (functions as an input pin)"]
4591        pub const _0: Self = Self::new(0);
4592
4593        #[doc = "Output (functions as an output pin)"]
4594        pub const _1: Self = Self::new(1);
4595    }
4596    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4597    pub struct Pcr_SPEC;
4598    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4599    impl Pcr {
4600        #[doc = "Disable input pull-up"]
4601        pub const _0: Self = Self::new(0);
4602
4603        #[doc = "Enable input pull-up"]
4604        pub const _1: Self = Self::new(1);
4605    }
4606    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4607    pub struct Ncodr_SPEC;
4608    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4609    impl Ncodr {
4610        #[doc = "Output CMOS"]
4611        pub const _0: Self = Self::new(0);
4612
4613        #[doc = "Output NMOS open-drain"]
4614        pub const _1: Self = Self::new(1);
4615    }
4616}
4617#[doc(hidden)]
4618#[derive(Copy, Clone, Eq, PartialEq)]
4619pub struct P10Pfs_SPEC;
4620impl crate::sealed::RegSpec for P10Pfs_SPEC {
4621    type DataType = u32;
4622}
4623
4624#[doc = "Port 10%s Pin Function Select Register"]
4625pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
4626
4627impl P10Pfs {
4628    #[doc = "Port Output Data"]
4629    #[inline(always)]
4630    pub fn podr(
4631        self,
4632    ) -> crate::common::RegisterField<
4633        0,
4634        0x1,
4635        1,
4636        0,
4637        p10pfs::Podr,
4638        p10pfs::Podr,
4639        P10Pfs_SPEC,
4640        crate::common::RW,
4641    > {
4642        crate::common::RegisterField::<
4643            0,
4644            0x1,
4645            1,
4646            0,
4647            p10pfs::Podr,
4648            p10pfs::Podr,
4649            P10Pfs_SPEC,
4650            crate::common::RW,
4651        >::from_register(self, 0)
4652    }
4653
4654    #[doc = "Port State"]
4655    #[inline(always)]
4656    pub fn pidr(
4657        self,
4658    ) -> crate::common::RegisterField<
4659        1,
4660        0x1,
4661        1,
4662        0,
4663        p10pfs::Pidr,
4664        p10pfs::Pidr,
4665        P10Pfs_SPEC,
4666        crate::common::R,
4667    > {
4668        crate::common::RegisterField::<
4669            1,
4670            0x1,
4671            1,
4672            0,
4673            p10pfs::Pidr,
4674            p10pfs::Pidr,
4675            P10Pfs_SPEC,
4676            crate::common::R,
4677        >::from_register(self, 0)
4678    }
4679
4680    #[doc = "Port Direction"]
4681    #[inline(always)]
4682    pub fn pdr(
4683        self,
4684    ) -> crate::common::RegisterField<
4685        2,
4686        0x1,
4687        1,
4688        0,
4689        p10pfs::Pdr,
4690        p10pfs::Pdr,
4691        P10Pfs_SPEC,
4692        crate::common::RW,
4693    > {
4694        crate::common::RegisterField::<
4695            2,
4696            0x1,
4697            1,
4698            0,
4699            p10pfs::Pdr,
4700            p10pfs::Pdr,
4701            P10Pfs_SPEC,
4702            crate::common::RW,
4703        >::from_register(self, 0)
4704    }
4705
4706    #[doc = "Pull-up Control"]
4707    #[inline(always)]
4708    pub fn pcr(
4709        self,
4710    ) -> crate::common::RegisterField<
4711        4,
4712        0x1,
4713        1,
4714        0,
4715        p10pfs::Pcr,
4716        p10pfs::Pcr,
4717        P10Pfs_SPEC,
4718        crate::common::RW,
4719    > {
4720        crate::common::RegisterField::<
4721            4,
4722            0x1,
4723            1,
4724            0,
4725            p10pfs::Pcr,
4726            p10pfs::Pcr,
4727            P10Pfs_SPEC,
4728            crate::common::RW,
4729        >::from_register(self, 0)
4730    }
4731
4732    #[doc = "N-Channel Open-Drain Control"]
4733    #[inline(always)]
4734    pub fn ncodr(
4735        self,
4736    ) -> crate::common::RegisterField<
4737        6,
4738        0x1,
4739        1,
4740        0,
4741        p10pfs::Ncodr,
4742        p10pfs::Ncodr,
4743        P10Pfs_SPEC,
4744        crate::common::RW,
4745    > {
4746        crate::common::RegisterField::<
4747            6,
4748            0x1,
4749            1,
4750            0,
4751            p10pfs::Ncodr,
4752            p10pfs::Ncodr,
4753            P10Pfs_SPEC,
4754            crate::common::RW,
4755        >::from_register(self, 0)
4756    }
4757
4758    #[doc = "Event on Falling/Event on Rising"]
4759    #[inline(always)]
4760    pub fn eofr(
4761        self,
4762    ) -> crate::common::RegisterField<
4763        12,
4764        0x3,
4765        1,
4766        0,
4767        p10pfs::Eofr,
4768        p10pfs::Eofr,
4769        P10Pfs_SPEC,
4770        crate::common::RW,
4771    > {
4772        crate::common::RegisterField::<
4773            12,
4774            0x3,
4775            1,
4776            0,
4777            p10pfs::Eofr,
4778            p10pfs::Eofr,
4779            P10Pfs_SPEC,
4780            crate::common::RW,
4781        >::from_register(self, 0)
4782    }
4783
4784    #[doc = "IRQ Input Enable"]
4785    #[inline(always)]
4786    pub fn isel(
4787        self,
4788    ) -> crate::common::RegisterField<
4789        14,
4790        0x1,
4791        1,
4792        0,
4793        p10pfs::Isel,
4794        p10pfs::Isel,
4795        P10Pfs_SPEC,
4796        crate::common::RW,
4797    > {
4798        crate::common::RegisterField::<
4799            14,
4800            0x1,
4801            1,
4802            0,
4803            p10pfs::Isel,
4804            p10pfs::Isel,
4805            P10Pfs_SPEC,
4806            crate::common::RW,
4807        >::from_register(self, 0)
4808    }
4809
4810    #[doc = "Analog Input Enable"]
4811    #[inline(always)]
4812    pub fn asel(
4813        self,
4814    ) -> crate::common::RegisterField<
4815        15,
4816        0x1,
4817        1,
4818        0,
4819        p10pfs::Asel,
4820        p10pfs::Asel,
4821        P10Pfs_SPEC,
4822        crate::common::RW,
4823    > {
4824        crate::common::RegisterField::<
4825            15,
4826            0x1,
4827            1,
4828            0,
4829            p10pfs::Asel,
4830            p10pfs::Asel,
4831            P10Pfs_SPEC,
4832            crate::common::RW,
4833        >::from_register(self, 0)
4834    }
4835
4836    #[doc = "Port Mode Control"]
4837    #[inline(always)]
4838    pub fn pmr(
4839        self,
4840    ) -> crate::common::RegisterField<
4841        16,
4842        0x1,
4843        1,
4844        0,
4845        p10pfs::Pmr,
4846        p10pfs::Pmr,
4847        P10Pfs_SPEC,
4848        crate::common::RW,
4849    > {
4850        crate::common::RegisterField::<
4851            16,
4852            0x1,
4853            1,
4854            0,
4855            p10pfs::Pmr,
4856            p10pfs::Pmr,
4857            P10Pfs_SPEC,
4858            crate::common::RW,
4859        >::from_register(self, 0)
4860    }
4861
4862    #[doc = "Peripheral Select"]
4863    #[inline(always)]
4864    pub fn psel(
4865        self,
4866    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
4867        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
4868    }
4869}
4870impl ::core::default::Default for P10Pfs {
4871    #[inline(always)]
4872    fn default() -> P10Pfs {
4873        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
4874    }
4875}
4876pub mod p10pfs {
4877
4878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4879    pub struct Podr_SPEC;
4880    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4881    impl Podr {
4882        #[doc = "Output low"]
4883        pub const _0: Self = Self::new(0);
4884
4885        #[doc = "Output high"]
4886        pub const _1: Self = Self::new(1);
4887    }
4888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4889    pub struct Pidr_SPEC;
4890    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4891    impl Pidr {
4892        #[doc = "Low level"]
4893        pub const _0: Self = Self::new(0);
4894
4895        #[doc = "High level"]
4896        pub const _1: Self = Self::new(1);
4897    }
4898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4899    pub struct Pdr_SPEC;
4900    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4901    impl Pdr {
4902        #[doc = "Input (functions as an input pin)"]
4903        pub const _0: Self = Self::new(0);
4904
4905        #[doc = "Output (functions as an output pin)"]
4906        pub const _1: Self = Self::new(1);
4907    }
4908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4909    pub struct Pcr_SPEC;
4910    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4911    impl Pcr {
4912        #[doc = "Disable input pull-up"]
4913        pub const _0: Self = Self::new(0);
4914
4915        #[doc = "Enable input pull-up"]
4916        pub const _1: Self = Self::new(1);
4917    }
4918    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4919    pub struct Ncodr_SPEC;
4920    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4921    impl Ncodr {
4922        #[doc = "Output CMOS"]
4923        pub const _0: Self = Self::new(0);
4924
4925        #[doc = "Output NMOS open-drain"]
4926        pub const _1: Self = Self::new(1);
4927    }
4928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4929    pub struct Eofr_SPEC;
4930    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4931    impl Eofr {
4932        #[doc = "Don\'t care"]
4933        pub const _00: Self = Self::new(0);
4934
4935        #[doc = "Detect rising edge"]
4936        pub const _01: Self = Self::new(1);
4937
4938        #[doc = "Detect falling edge"]
4939        pub const _10: Self = Self::new(2);
4940
4941        #[doc = "Detect both edges"]
4942        pub const _11: Self = Self::new(3);
4943    }
4944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4945    pub struct Isel_SPEC;
4946    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4947    impl Isel {
4948        #[doc = "Do not use as IRQn input pin"]
4949        pub const _0: Self = Self::new(0);
4950
4951        #[doc = "Use as IRQn input pin"]
4952        pub const _1: Self = Self::new(1);
4953    }
4954    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4955    pub struct Asel_SPEC;
4956    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4957    impl Asel {
4958        #[doc = "Do not use as analog pin"]
4959        pub const _0: Self = Self::new(0);
4960
4961        #[doc = "Use as analog pin"]
4962        pub const _1: Self = Self::new(1);
4963    }
4964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4965    pub struct Pmr_SPEC;
4966    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4967    impl Pmr {
4968        #[doc = "Use as general I/O pin"]
4969        pub const _0: Self = Self::new(0);
4970
4971        #[doc = "Use as I/O port for peripheral functions"]
4972        pub const _1: Self = Self::new(1);
4973    }
4974}
4975#[doc(hidden)]
4976#[derive(Copy, Clone, Eq, PartialEq)]
4977pub struct P10PfsHa_SPEC;
4978impl crate::sealed::RegSpec for P10PfsHa_SPEC {
4979    type DataType = u16;
4980}
4981
4982#[doc = "Port 10%s Pin Function Select Register"]
4983pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
4984
4985impl P10PfsHa {
4986    #[doc = "Port Output Data"]
4987    #[inline(always)]
4988    pub fn podr(
4989        self,
4990    ) -> crate::common::RegisterField<
4991        0,
4992        0x1,
4993        1,
4994        0,
4995        p10pfs_ha::Podr,
4996        p10pfs_ha::Podr,
4997        P10PfsHa_SPEC,
4998        crate::common::RW,
4999    > {
5000        crate::common::RegisterField::<
5001            0,
5002            0x1,
5003            1,
5004            0,
5005            p10pfs_ha::Podr,
5006            p10pfs_ha::Podr,
5007            P10PfsHa_SPEC,
5008            crate::common::RW,
5009        >::from_register(self, 0)
5010    }
5011
5012    #[doc = "Port State"]
5013    #[inline(always)]
5014    pub fn pidr(
5015        self,
5016    ) -> crate::common::RegisterField<
5017        1,
5018        0x1,
5019        1,
5020        0,
5021        p10pfs_ha::Pidr,
5022        p10pfs_ha::Pidr,
5023        P10PfsHa_SPEC,
5024        crate::common::R,
5025    > {
5026        crate::common::RegisterField::<
5027            1,
5028            0x1,
5029            1,
5030            0,
5031            p10pfs_ha::Pidr,
5032            p10pfs_ha::Pidr,
5033            P10PfsHa_SPEC,
5034            crate::common::R,
5035        >::from_register(self, 0)
5036    }
5037
5038    #[doc = "Port Direction"]
5039    #[inline(always)]
5040    pub fn pdr(
5041        self,
5042    ) -> crate::common::RegisterField<
5043        2,
5044        0x1,
5045        1,
5046        0,
5047        p10pfs_ha::Pdr,
5048        p10pfs_ha::Pdr,
5049        P10PfsHa_SPEC,
5050        crate::common::RW,
5051    > {
5052        crate::common::RegisterField::<
5053            2,
5054            0x1,
5055            1,
5056            0,
5057            p10pfs_ha::Pdr,
5058            p10pfs_ha::Pdr,
5059            P10PfsHa_SPEC,
5060            crate::common::RW,
5061        >::from_register(self, 0)
5062    }
5063
5064    #[doc = "Pull-up Control"]
5065    #[inline(always)]
5066    pub fn pcr(
5067        self,
5068    ) -> crate::common::RegisterField<
5069        4,
5070        0x1,
5071        1,
5072        0,
5073        p10pfs_ha::Pcr,
5074        p10pfs_ha::Pcr,
5075        P10PfsHa_SPEC,
5076        crate::common::RW,
5077    > {
5078        crate::common::RegisterField::<
5079            4,
5080            0x1,
5081            1,
5082            0,
5083            p10pfs_ha::Pcr,
5084            p10pfs_ha::Pcr,
5085            P10PfsHa_SPEC,
5086            crate::common::RW,
5087        >::from_register(self, 0)
5088    }
5089
5090    #[doc = "N-Channel Open-Drain Control"]
5091    #[inline(always)]
5092    pub fn ncodr(
5093        self,
5094    ) -> crate::common::RegisterField<
5095        6,
5096        0x1,
5097        1,
5098        0,
5099        p10pfs_ha::Ncodr,
5100        p10pfs_ha::Ncodr,
5101        P10PfsHa_SPEC,
5102        crate::common::RW,
5103    > {
5104        crate::common::RegisterField::<
5105            6,
5106            0x1,
5107            1,
5108            0,
5109            p10pfs_ha::Ncodr,
5110            p10pfs_ha::Ncodr,
5111            P10PfsHa_SPEC,
5112            crate::common::RW,
5113        >::from_register(self, 0)
5114    }
5115
5116    #[doc = "Event on Falling/Event on Rising"]
5117    #[inline(always)]
5118    pub fn eofr(
5119        self,
5120    ) -> crate::common::RegisterField<
5121        12,
5122        0x3,
5123        1,
5124        0,
5125        p10pfs_ha::Eofr,
5126        p10pfs_ha::Eofr,
5127        P10PfsHa_SPEC,
5128        crate::common::RW,
5129    > {
5130        crate::common::RegisterField::<
5131            12,
5132            0x3,
5133            1,
5134            0,
5135            p10pfs_ha::Eofr,
5136            p10pfs_ha::Eofr,
5137            P10PfsHa_SPEC,
5138            crate::common::RW,
5139        >::from_register(self, 0)
5140    }
5141
5142    #[doc = "IRQ Input Enable"]
5143    #[inline(always)]
5144    pub fn isel(
5145        self,
5146    ) -> crate::common::RegisterField<
5147        14,
5148        0x1,
5149        1,
5150        0,
5151        p10pfs_ha::Isel,
5152        p10pfs_ha::Isel,
5153        P10PfsHa_SPEC,
5154        crate::common::RW,
5155    > {
5156        crate::common::RegisterField::<
5157            14,
5158            0x1,
5159            1,
5160            0,
5161            p10pfs_ha::Isel,
5162            p10pfs_ha::Isel,
5163            P10PfsHa_SPEC,
5164            crate::common::RW,
5165        >::from_register(self, 0)
5166    }
5167
5168    #[doc = "Analog Input Enable"]
5169    #[inline(always)]
5170    pub fn asel(
5171        self,
5172    ) -> crate::common::RegisterField<
5173        15,
5174        0x1,
5175        1,
5176        0,
5177        p10pfs_ha::Asel,
5178        p10pfs_ha::Asel,
5179        P10PfsHa_SPEC,
5180        crate::common::RW,
5181    > {
5182        crate::common::RegisterField::<
5183            15,
5184            0x1,
5185            1,
5186            0,
5187            p10pfs_ha::Asel,
5188            p10pfs_ha::Asel,
5189            P10PfsHa_SPEC,
5190            crate::common::RW,
5191        >::from_register(self, 0)
5192    }
5193}
5194impl ::core::default::Default for P10PfsHa {
5195    #[inline(always)]
5196    fn default() -> P10PfsHa {
5197        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
5198    }
5199}
5200pub mod p10pfs_ha {
5201
5202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5203    pub struct Podr_SPEC;
5204    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5205    impl Podr {
5206        #[doc = "Output low"]
5207        pub const _0: Self = Self::new(0);
5208
5209        #[doc = "Output high"]
5210        pub const _1: Self = Self::new(1);
5211    }
5212    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5213    pub struct Pidr_SPEC;
5214    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5215    impl Pidr {
5216        #[doc = "Low level"]
5217        pub const _0: Self = Self::new(0);
5218
5219        #[doc = "High level"]
5220        pub const _1: Self = Self::new(1);
5221    }
5222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5223    pub struct Pdr_SPEC;
5224    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5225    impl Pdr {
5226        #[doc = "Input (functions as an input pin)"]
5227        pub const _0: Self = Self::new(0);
5228
5229        #[doc = "Output (functions as an output pin)"]
5230        pub const _1: Self = Self::new(1);
5231    }
5232    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5233    pub struct Pcr_SPEC;
5234    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5235    impl Pcr {
5236        #[doc = "Disable input pull-up"]
5237        pub const _0: Self = Self::new(0);
5238
5239        #[doc = "Enable input pull-up"]
5240        pub const _1: Self = Self::new(1);
5241    }
5242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5243    pub struct Ncodr_SPEC;
5244    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5245    impl Ncodr {
5246        #[doc = "Output CMOS"]
5247        pub const _0: Self = Self::new(0);
5248
5249        #[doc = "Output NMOS open-drain"]
5250        pub const _1: Self = Self::new(1);
5251    }
5252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5253    pub struct Eofr_SPEC;
5254    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5255    impl Eofr {
5256        #[doc = "Don\'t care"]
5257        pub const _00: Self = Self::new(0);
5258
5259        #[doc = "Detect rising edge"]
5260        pub const _01: Self = Self::new(1);
5261
5262        #[doc = "Detect falling edge"]
5263        pub const _10: Self = Self::new(2);
5264
5265        #[doc = "Detect both edges"]
5266        pub const _11: Self = Self::new(3);
5267    }
5268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5269    pub struct Isel_SPEC;
5270    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5271    impl Isel {
5272        #[doc = "Do not use as IRQn input pin"]
5273        pub const _0: Self = Self::new(0);
5274
5275        #[doc = "Use as IRQn input pin"]
5276        pub const _1: Self = Self::new(1);
5277    }
5278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5279    pub struct Asel_SPEC;
5280    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5281    impl Asel {
5282        #[doc = "Do not use as analog pin"]
5283        pub const _0: Self = Self::new(0);
5284
5285        #[doc = "Use as analog pin"]
5286        pub const _1: Self = Self::new(1);
5287    }
5288}
5289#[doc(hidden)]
5290#[derive(Copy, Clone, Eq, PartialEq)]
5291pub struct P10PfsBy_SPEC;
5292impl crate::sealed::RegSpec for P10PfsBy_SPEC {
5293    type DataType = u8;
5294}
5295
5296#[doc = "Port 10%s Pin Function Select Register"]
5297pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
5298
5299impl P10PfsBy {
5300    #[doc = "Port Output Data"]
5301    #[inline(always)]
5302    pub fn podr(
5303        self,
5304    ) -> crate::common::RegisterField<
5305        0,
5306        0x1,
5307        1,
5308        0,
5309        p10pfs_by::Podr,
5310        p10pfs_by::Podr,
5311        P10PfsBy_SPEC,
5312        crate::common::RW,
5313    > {
5314        crate::common::RegisterField::<
5315            0,
5316            0x1,
5317            1,
5318            0,
5319            p10pfs_by::Podr,
5320            p10pfs_by::Podr,
5321            P10PfsBy_SPEC,
5322            crate::common::RW,
5323        >::from_register(self, 0)
5324    }
5325
5326    #[doc = "Port State"]
5327    #[inline(always)]
5328    pub fn pidr(
5329        self,
5330    ) -> crate::common::RegisterField<
5331        1,
5332        0x1,
5333        1,
5334        0,
5335        p10pfs_by::Pidr,
5336        p10pfs_by::Pidr,
5337        P10PfsBy_SPEC,
5338        crate::common::R,
5339    > {
5340        crate::common::RegisterField::<
5341            1,
5342            0x1,
5343            1,
5344            0,
5345            p10pfs_by::Pidr,
5346            p10pfs_by::Pidr,
5347            P10PfsBy_SPEC,
5348            crate::common::R,
5349        >::from_register(self, 0)
5350    }
5351
5352    #[doc = "Port Direction"]
5353    #[inline(always)]
5354    pub fn pdr(
5355        self,
5356    ) -> crate::common::RegisterField<
5357        2,
5358        0x1,
5359        1,
5360        0,
5361        p10pfs_by::Pdr,
5362        p10pfs_by::Pdr,
5363        P10PfsBy_SPEC,
5364        crate::common::RW,
5365    > {
5366        crate::common::RegisterField::<
5367            2,
5368            0x1,
5369            1,
5370            0,
5371            p10pfs_by::Pdr,
5372            p10pfs_by::Pdr,
5373            P10PfsBy_SPEC,
5374            crate::common::RW,
5375        >::from_register(self, 0)
5376    }
5377
5378    #[doc = "Pull-up Control"]
5379    #[inline(always)]
5380    pub fn pcr(
5381        self,
5382    ) -> crate::common::RegisterField<
5383        4,
5384        0x1,
5385        1,
5386        0,
5387        p10pfs_by::Pcr,
5388        p10pfs_by::Pcr,
5389        P10PfsBy_SPEC,
5390        crate::common::RW,
5391    > {
5392        crate::common::RegisterField::<
5393            4,
5394            0x1,
5395            1,
5396            0,
5397            p10pfs_by::Pcr,
5398            p10pfs_by::Pcr,
5399            P10PfsBy_SPEC,
5400            crate::common::RW,
5401        >::from_register(self, 0)
5402    }
5403
5404    #[doc = "N-Channel Open-Drain Control"]
5405    #[inline(always)]
5406    pub fn ncodr(
5407        self,
5408    ) -> crate::common::RegisterField<
5409        6,
5410        0x1,
5411        1,
5412        0,
5413        p10pfs_by::Ncodr,
5414        p10pfs_by::Ncodr,
5415        P10PfsBy_SPEC,
5416        crate::common::RW,
5417    > {
5418        crate::common::RegisterField::<
5419            6,
5420            0x1,
5421            1,
5422            0,
5423            p10pfs_by::Ncodr,
5424            p10pfs_by::Ncodr,
5425            P10PfsBy_SPEC,
5426            crate::common::RW,
5427        >::from_register(self, 0)
5428    }
5429}
5430impl ::core::default::Default for P10PfsBy {
5431    #[inline(always)]
5432    fn default() -> P10PfsBy {
5433        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
5434    }
5435}
5436pub mod p10pfs_by {
5437
5438    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5439    pub struct Podr_SPEC;
5440    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5441    impl Podr {
5442        #[doc = "Output low"]
5443        pub const _0: Self = Self::new(0);
5444
5445        #[doc = "Output high"]
5446        pub const _1: Self = Self::new(1);
5447    }
5448    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5449    pub struct Pidr_SPEC;
5450    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5451    impl Pidr {
5452        #[doc = "Low level"]
5453        pub const _0: Self = Self::new(0);
5454
5455        #[doc = "High level"]
5456        pub const _1: Self = Self::new(1);
5457    }
5458    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5459    pub struct Pdr_SPEC;
5460    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5461    impl Pdr {
5462        #[doc = "Input (functions as an input pin)"]
5463        pub const _0: Self = Self::new(0);
5464
5465        #[doc = "Output (functions as an output pin)"]
5466        pub const _1: Self = Self::new(1);
5467    }
5468    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5469    pub struct Pcr_SPEC;
5470    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5471    impl Pcr {
5472        #[doc = "Disable input pull-up"]
5473        pub const _0: Self = Self::new(0);
5474
5475        #[doc = "Enable input pull-up"]
5476        pub const _1: Self = Self::new(1);
5477    }
5478    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5479    pub struct Ncodr_SPEC;
5480    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5481    impl Ncodr {
5482        #[doc = "Output CMOS"]
5483        pub const _0: Self = Self::new(0);
5484
5485        #[doc = "Output NMOS open-drain"]
5486        pub const _1: Self = Self::new(1);
5487    }
5488}
5489#[doc(hidden)]
5490#[derive(Copy, Clone, Eq, PartialEq)]
5491pub struct P108Pfs_SPEC;
5492impl crate::sealed::RegSpec for P108Pfs_SPEC {
5493    type DataType = u32;
5494}
5495
5496#[doc = "Port 108 Pin Function Select Register"]
5497pub type P108Pfs = crate::RegValueT<P108Pfs_SPEC>;
5498
5499impl P108Pfs {
5500    #[doc = "Port Output Data"]
5501    #[inline(always)]
5502    pub fn podr(
5503        self,
5504    ) -> crate::common::RegisterField<
5505        0,
5506        0x1,
5507        1,
5508        0,
5509        p108pfs::Podr,
5510        p108pfs::Podr,
5511        P108Pfs_SPEC,
5512        crate::common::RW,
5513    > {
5514        crate::common::RegisterField::<
5515            0,
5516            0x1,
5517            1,
5518            0,
5519            p108pfs::Podr,
5520            p108pfs::Podr,
5521            P108Pfs_SPEC,
5522            crate::common::RW,
5523        >::from_register(self, 0)
5524    }
5525
5526    #[doc = "Port State"]
5527    #[inline(always)]
5528    pub fn pidr(
5529        self,
5530    ) -> crate::common::RegisterField<
5531        1,
5532        0x1,
5533        1,
5534        0,
5535        p108pfs::Pidr,
5536        p108pfs::Pidr,
5537        P108Pfs_SPEC,
5538        crate::common::R,
5539    > {
5540        crate::common::RegisterField::<
5541            1,
5542            0x1,
5543            1,
5544            0,
5545            p108pfs::Pidr,
5546            p108pfs::Pidr,
5547            P108Pfs_SPEC,
5548            crate::common::R,
5549        >::from_register(self, 0)
5550    }
5551
5552    #[doc = "Port Direction"]
5553    #[inline(always)]
5554    pub fn pdr(
5555        self,
5556    ) -> crate::common::RegisterField<
5557        2,
5558        0x1,
5559        1,
5560        0,
5561        p108pfs::Pdr,
5562        p108pfs::Pdr,
5563        P108Pfs_SPEC,
5564        crate::common::RW,
5565    > {
5566        crate::common::RegisterField::<
5567            2,
5568            0x1,
5569            1,
5570            0,
5571            p108pfs::Pdr,
5572            p108pfs::Pdr,
5573            P108Pfs_SPEC,
5574            crate::common::RW,
5575        >::from_register(self, 0)
5576    }
5577
5578    #[doc = "Pull-up Control"]
5579    #[inline(always)]
5580    pub fn pcr(
5581        self,
5582    ) -> crate::common::RegisterField<
5583        4,
5584        0x1,
5585        1,
5586        0,
5587        p108pfs::Pcr,
5588        p108pfs::Pcr,
5589        P108Pfs_SPEC,
5590        crate::common::RW,
5591    > {
5592        crate::common::RegisterField::<
5593            4,
5594            0x1,
5595            1,
5596            0,
5597            p108pfs::Pcr,
5598            p108pfs::Pcr,
5599            P108Pfs_SPEC,
5600            crate::common::RW,
5601        >::from_register(self, 0)
5602    }
5603
5604    #[doc = "N-Channel Open-Drain Control"]
5605    #[inline(always)]
5606    pub fn ncodr(
5607        self,
5608    ) -> crate::common::RegisterField<
5609        6,
5610        0x1,
5611        1,
5612        0,
5613        p108pfs::Ncodr,
5614        p108pfs::Ncodr,
5615        P108Pfs_SPEC,
5616        crate::common::RW,
5617    > {
5618        crate::common::RegisterField::<
5619            6,
5620            0x1,
5621            1,
5622            0,
5623            p108pfs::Ncodr,
5624            p108pfs::Ncodr,
5625            P108Pfs_SPEC,
5626            crate::common::RW,
5627        >::from_register(self, 0)
5628    }
5629
5630    #[doc = "Event on Falling/Event on Rising"]
5631    #[inline(always)]
5632    pub fn eofr(
5633        self,
5634    ) -> crate::common::RegisterField<
5635        12,
5636        0x3,
5637        1,
5638        0,
5639        p108pfs::Eofr,
5640        p108pfs::Eofr,
5641        P108Pfs_SPEC,
5642        crate::common::RW,
5643    > {
5644        crate::common::RegisterField::<
5645            12,
5646            0x3,
5647            1,
5648            0,
5649            p108pfs::Eofr,
5650            p108pfs::Eofr,
5651            P108Pfs_SPEC,
5652            crate::common::RW,
5653        >::from_register(self, 0)
5654    }
5655
5656    #[doc = "IRQ Input Enable"]
5657    #[inline(always)]
5658    pub fn isel(
5659        self,
5660    ) -> crate::common::RegisterField<
5661        14,
5662        0x1,
5663        1,
5664        0,
5665        p108pfs::Isel,
5666        p108pfs::Isel,
5667        P108Pfs_SPEC,
5668        crate::common::RW,
5669    > {
5670        crate::common::RegisterField::<
5671            14,
5672            0x1,
5673            1,
5674            0,
5675            p108pfs::Isel,
5676            p108pfs::Isel,
5677            P108Pfs_SPEC,
5678            crate::common::RW,
5679        >::from_register(self, 0)
5680    }
5681
5682    #[doc = "Analog Input Enable"]
5683    #[inline(always)]
5684    pub fn asel(
5685        self,
5686    ) -> crate::common::RegisterField<
5687        15,
5688        0x1,
5689        1,
5690        0,
5691        p108pfs::Asel,
5692        p108pfs::Asel,
5693        P108Pfs_SPEC,
5694        crate::common::RW,
5695    > {
5696        crate::common::RegisterField::<
5697            15,
5698            0x1,
5699            1,
5700            0,
5701            p108pfs::Asel,
5702            p108pfs::Asel,
5703            P108Pfs_SPEC,
5704            crate::common::RW,
5705        >::from_register(self, 0)
5706    }
5707
5708    #[doc = "Port Mode Control"]
5709    #[inline(always)]
5710    pub fn pmr(
5711        self,
5712    ) -> crate::common::RegisterField<
5713        16,
5714        0x1,
5715        1,
5716        0,
5717        p108pfs::Pmr,
5718        p108pfs::Pmr,
5719        P108Pfs_SPEC,
5720        crate::common::RW,
5721    > {
5722        crate::common::RegisterField::<
5723            16,
5724            0x1,
5725            1,
5726            0,
5727            p108pfs::Pmr,
5728            p108pfs::Pmr,
5729            P108Pfs_SPEC,
5730            crate::common::RW,
5731        >::from_register(self, 0)
5732    }
5733
5734    #[doc = "Peripheral Select"]
5735    #[inline(always)]
5736    pub fn psel(
5737        self,
5738    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P108Pfs_SPEC, crate::common::RW> {
5739        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P108Pfs_SPEC,crate::common::RW>::from_register(self,0)
5740    }
5741}
5742impl ::core::default::Default for P108Pfs {
5743    #[inline(always)]
5744    fn default() -> P108Pfs {
5745        <crate::RegValueT<P108Pfs_SPEC> as RegisterValue<_>>::new(65552)
5746    }
5747}
5748pub mod p108pfs {
5749
5750    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5751    pub struct Podr_SPEC;
5752    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5753    impl Podr {
5754        #[doc = "Output low"]
5755        pub const _0: Self = Self::new(0);
5756
5757        #[doc = "Output high"]
5758        pub const _1: Self = Self::new(1);
5759    }
5760    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5761    pub struct Pidr_SPEC;
5762    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5763    impl Pidr {
5764        #[doc = "Low level"]
5765        pub const _0: Self = Self::new(0);
5766
5767        #[doc = "High level"]
5768        pub const _1: Self = Self::new(1);
5769    }
5770    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5771    pub struct Pdr_SPEC;
5772    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5773    impl Pdr {
5774        #[doc = "Input (functions as an input pin)"]
5775        pub const _0: Self = Self::new(0);
5776
5777        #[doc = "Output (functions as an output pin)"]
5778        pub const _1: Self = Self::new(1);
5779    }
5780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5781    pub struct Pcr_SPEC;
5782    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5783    impl Pcr {
5784        #[doc = "Disable input pull-up"]
5785        pub const _0: Self = Self::new(0);
5786
5787        #[doc = "Enable input pull-up"]
5788        pub const _1: Self = Self::new(1);
5789    }
5790    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5791    pub struct Ncodr_SPEC;
5792    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5793    impl Ncodr {
5794        #[doc = "Output CMOS"]
5795        pub const _0: Self = Self::new(0);
5796
5797        #[doc = "Output NMOS open-drain"]
5798        pub const _1: Self = Self::new(1);
5799    }
5800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5801    pub struct Eofr_SPEC;
5802    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5803    impl Eofr {
5804        #[doc = "Don\'t care"]
5805        pub const _00: Self = Self::new(0);
5806
5807        #[doc = "Detect rising edge"]
5808        pub const _01: Self = Self::new(1);
5809
5810        #[doc = "Detect falling edge"]
5811        pub const _10: Self = Self::new(2);
5812
5813        #[doc = "Detect both edges"]
5814        pub const _11: Self = Self::new(3);
5815    }
5816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5817    pub struct Isel_SPEC;
5818    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5819    impl Isel {
5820        #[doc = "Do not use as IRQn input pin"]
5821        pub const _0: Self = Self::new(0);
5822
5823        #[doc = "Use as IRQn input pin"]
5824        pub const _1: Self = Self::new(1);
5825    }
5826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5827    pub struct Asel_SPEC;
5828    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5829    impl Asel {
5830        #[doc = "Do not use as analog pin"]
5831        pub const _0: Self = Self::new(0);
5832
5833        #[doc = "Use as analog pin"]
5834        pub const _1: Self = Self::new(1);
5835    }
5836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5837    pub struct Pmr_SPEC;
5838    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5839    impl Pmr {
5840        #[doc = "Use as general I/O pin"]
5841        pub const _0: Self = Self::new(0);
5842
5843        #[doc = "Use as I/O port for peripheral functions"]
5844        pub const _1: Self = Self::new(1);
5845    }
5846}
5847#[doc(hidden)]
5848#[derive(Copy, Clone, Eq, PartialEq)]
5849pub struct P108PfsHa_SPEC;
5850impl crate::sealed::RegSpec for P108PfsHa_SPEC {
5851    type DataType = u16;
5852}
5853
5854#[doc = "Port 108 Pin Function Select Register"]
5855pub type P108PfsHa = crate::RegValueT<P108PfsHa_SPEC>;
5856
5857impl P108PfsHa {
5858    #[doc = "Port Output Data"]
5859    #[inline(always)]
5860    pub fn podr(
5861        self,
5862    ) -> crate::common::RegisterField<
5863        0,
5864        0x1,
5865        1,
5866        0,
5867        p108pfs_ha::Podr,
5868        p108pfs_ha::Podr,
5869        P108PfsHa_SPEC,
5870        crate::common::RW,
5871    > {
5872        crate::common::RegisterField::<
5873            0,
5874            0x1,
5875            1,
5876            0,
5877            p108pfs_ha::Podr,
5878            p108pfs_ha::Podr,
5879            P108PfsHa_SPEC,
5880            crate::common::RW,
5881        >::from_register(self, 0)
5882    }
5883
5884    #[doc = "Port State"]
5885    #[inline(always)]
5886    pub fn pidr(
5887        self,
5888    ) -> crate::common::RegisterField<
5889        1,
5890        0x1,
5891        1,
5892        0,
5893        p108pfs_ha::Pidr,
5894        p108pfs_ha::Pidr,
5895        P108PfsHa_SPEC,
5896        crate::common::R,
5897    > {
5898        crate::common::RegisterField::<
5899            1,
5900            0x1,
5901            1,
5902            0,
5903            p108pfs_ha::Pidr,
5904            p108pfs_ha::Pidr,
5905            P108PfsHa_SPEC,
5906            crate::common::R,
5907        >::from_register(self, 0)
5908    }
5909
5910    #[doc = "Port Direction"]
5911    #[inline(always)]
5912    pub fn pdr(
5913        self,
5914    ) -> crate::common::RegisterField<
5915        2,
5916        0x1,
5917        1,
5918        0,
5919        p108pfs_ha::Pdr,
5920        p108pfs_ha::Pdr,
5921        P108PfsHa_SPEC,
5922        crate::common::RW,
5923    > {
5924        crate::common::RegisterField::<
5925            2,
5926            0x1,
5927            1,
5928            0,
5929            p108pfs_ha::Pdr,
5930            p108pfs_ha::Pdr,
5931            P108PfsHa_SPEC,
5932            crate::common::RW,
5933        >::from_register(self, 0)
5934    }
5935
5936    #[doc = "Pull-up Control"]
5937    #[inline(always)]
5938    pub fn pcr(
5939        self,
5940    ) -> crate::common::RegisterField<
5941        4,
5942        0x1,
5943        1,
5944        0,
5945        p108pfs_ha::Pcr,
5946        p108pfs_ha::Pcr,
5947        P108PfsHa_SPEC,
5948        crate::common::RW,
5949    > {
5950        crate::common::RegisterField::<
5951            4,
5952            0x1,
5953            1,
5954            0,
5955            p108pfs_ha::Pcr,
5956            p108pfs_ha::Pcr,
5957            P108PfsHa_SPEC,
5958            crate::common::RW,
5959        >::from_register(self, 0)
5960    }
5961
5962    #[doc = "N-Channel Open-Drain Control"]
5963    #[inline(always)]
5964    pub fn ncodr(
5965        self,
5966    ) -> crate::common::RegisterField<
5967        6,
5968        0x1,
5969        1,
5970        0,
5971        p108pfs_ha::Ncodr,
5972        p108pfs_ha::Ncodr,
5973        P108PfsHa_SPEC,
5974        crate::common::RW,
5975    > {
5976        crate::common::RegisterField::<
5977            6,
5978            0x1,
5979            1,
5980            0,
5981            p108pfs_ha::Ncodr,
5982            p108pfs_ha::Ncodr,
5983            P108PfsHa_SPEC,
5984            crate::common::RW,
5985        >::from_register(self, 0)
5986    }
5987
5988    #[doc = "Event on Falling/Event on Rising"]
5989    #[inline(always)]
5990    pub fn eofr(
5991        self,
5992    ) -> crate::common::RegisterField<
5993        12,
5994        0x3,
5995        1,
5996        0,
5997        p108pfs_ha::Eofr,
5998        p108pfs_ha::Eofr,
5999        P108PfsHa_SPEC,
6000        crate::common::RW,
6001    > {
6002        crate::common::RegisterField::<
6003            12,
6004            0x3,
6005            1,
6006            0,
6007            p108pfs_ha::Eofr,
6008            p108pfs_ha::Eofr,
6009            P108PfsHa_SPEC,
6010            crate::common::RW,
6011        >::from_register(self, 0)
6012    }
6013
6014    #[doc = "IRQ Input Enable"]
6015    #[inline(always)]
6016    pub fn isel(
6017        self,
6018    ) -> crate::common::RegisterField<
6019        14,
6020        0x1,
6021        1,
6022        0,
6023        p108pfs_ha::Isel,
6024        p108pfs_ha::Isel,
6025        P108PfsHa_SPEC,
6026        crate::common::RW,
6027    > {
6028        crate::common::RegisterField::<
6029            14,
6030            0x1,
6031            1,
6032            0,
6033            p108pfs_ha::Isel,
6034            p108pfs_ha::Isel,
6035            P108PfsHa_SPEC,
6036            crate::common::RW,
6037        >::from_register(self, 0)
6038    }
6039
6040    #[doc = "Analog Input Enable"]
6041    #[inline(always)]
6042    pub fn asel(
6043        self,
6044    ) -> crate::common::RegisterField<
6045        15,
6046        0x1,
6047        1,
6048        0,
6049        p108pfs_ha::Asel,
6050        p108pfs_ha::Asel,
6051        P108PfsHa_SPEC,
6052        crate::common::RW,
6053    > {
6054        crate::common::RegisterField::<
6055            15,
6056            0x1,
6057            1,
6058            0,
6059            p108pfs_ha::Asel,
6060            p108pfs_ha::Asel,
6061            P108PfsHa_SPEC,
6062            crate::common::RW,
6063        >::from_register(self, 0)
6064    }
6065}
6066impl ::core::default::Default for P108PfsHa {
6067    #[inline(always)]
6068    fn default() -> P108PfsHa {
6069        <crate::RegValueT<P108PfsHa_SPEC> as RegisterValue<_>>::new(16)
6070    }
6071}
6072pub mod p108pfs_ha {
6073
6074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6075    pub struct Podr_SPEC;
6076    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6077    impl Podr {
6078        #[doc = "Output low"]
6079        pub const _0: Self = Self::new(0);
6080
6081        #[doc = "Output high"]
6082        pub const _1: Self = Self::new(1);
6083    }
6084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6085    pub struct Pidr_SPEC;
6086    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6087    impl Pidr {
6088        #[doc = "Low level"]
6089        pub const _0: Self = Self::new(0);
6090
6091        #[doc = "High level"]
6092        pub const _1: Self = Self::new(1);
6093    }
6094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6095    pub struct Pdr_SPEC;
6096    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6097    impl Pdr {
6098        #[doc = "Input (functions as an input pin)"]
6099        pub const _0: Self = Self::new(0);
6100
6101        #[doc = "Output (functions as an output pin)"]
6102        pub const _1: Self = Self::new(1);
6103    }
6104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6105    pub struct Pcr_SPEC;
6106    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6107    impl Pcr {
6108        #[doc = "Disable input pull-up"]
6109        pub const _0: Self = Self::new(0);
6110
6111        #[doc = "Enable input pull-up"]
6112        pub const _1: Self = Self::new(1);
6113    }
6114    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6115    pub struct Ncodr_SPEC;
6116    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6117    impl Ncodr {
6118        #[doc = "Output CMOS"]
6119        pub const _0: Self = Self::new(0);
6120
6121        #[doc = "Output NMOS open-drain"]
6122        pub const _1: Self = Self::new(1);
6123    }
6124    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6125    pub struct Eofr_SPEC;
6126    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6127    impl Eofr {
6128        #[doc = "Don\'t care"]
6129        pub const _00: Self = Self::new(0);
6130
6131        #[doc = "Detect rising edge"]
6132        pub const _01: Self = Self::new(1);
6133
6134        #[doc = "Detect falling edge"]
6135        pub const _10: Self = Self::new(2);
6136
6137        #[doc = "Detect both edges"]
6138        pub const _11: Self = Self::new(3);
6139    }
6140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6141    pub struct Isel_SPEC;
6142    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6143    impl Isel {
6144        #[doc = "Do not use as IRQn input pin"]
6145        pub const _0: Self = Self::new(0);
6146
6147        #[doc = "Use as IRQn input pin"]
6148        pub const _1: Self = Self::new(1);
6149    }
6150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6151    pub struct Asel_SPEC;
6152    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6153    impl Asel {
6154        #[doc = "Do not use as analog pin"]
6155        pub const _0: Self = Self::new(0);
6156
6157        #[doc = "Use as analog pin"]
6158        pub const _1: Self = Self::new(1);
6159    }
6160}
6161#[doc(hidden)]
6162#[derive(Copy, Clone, Eq, PartialEq)]
6163pub struct P108PfsBy_SPEC;
6164impl crate::sealed::RegSpec for P108PfsBy_SPEC {
6165    type DataType = u8;
6166}
6167
6168#[doc = "Port 108 Pin Function Select Register"]
6169pub type P108PfsBy = crate::RegValueT<P108PfsBy_SPEC>;
6170
6171impl P108PfsBy {
6172    #[doc = "Port Output Data"]
6173    #[inline(always)]
6174    pub fn podr(
6175        self,
6176    ) -> crate::common::RegisterField<
6177        0,
6178        0x1,
6179        1,
6180        0,
6181        p108pfs_by::Podr,
6182        p108pfs_by::Podr,
6183        P108PfsBy_SPEC,
6184        crate::common::RW,
6185    > {
6186        crate::common::RegisterField::<
6187            0,
6188            0x1,
6189            1,
6190            0,
6191            p108pfs_by::Podr,
6192            p108pfs_by::Podr,
6193            P108PfsBy_SPEC,
6194            crate::common::RW,
6195        >::from_register(self, 0)
6196    }
6197
6198    #[doc = "Port State"]
6199    #[inline(always)]
6200    pub fn pidr(
6201        self,
6202    ) -> crate::common::RegisterField<
6203        1,
6204        0x1,
6205        1,
6206        0,
6207        p108pfs_by::Pidr,
6208        p108pfs_by::Pidr,
6209        P108PfsBy_SPEC,
6210        crate::common::R,
6211    > {
6212        crate::common::RegisterField::<
6213            1,
6214            0x1,
6215            1,
6216            0,
6217            p108pfs_by::Pidr,
6218            p108pfs_by::Pidr,
6219            P108PfsBy_SPEC,
6220            crate::common::R,
6221        >::from_register(self, 0)
6222    }
6223
6224    #[doc = "Port Direction"]
6225    #[inline(always)]
6226    pub fn pdr(
6227        self,
6228    ) -> crate::common::RegisterField<
6229        2,
6230        0x1,
6231        1,
6232        0,
6233        p108pfs_by::Pdr,
6234        p108pfs_by::Pdr,
6235        P108PfsBy_SPEC,
6236        crate::common::RW,
6237    > {
6238        crate::common::RegisterField::<
6239            2,
6240            0x1,
6241            1,
6242            0,
6243            p108pfs_by::Pdr,
6244            p108pfs_by::Pdr,
6245            P108PfsBy_SPEC,
6246            crate::common::RW,
6247        >::from_register(self, 0)
6248    }
6249
6250    #[doc = "Pull-up Control"]
6251    #[inline(always)]
6252    pub fn pcr(
6253        self,
6254    ) -> crate::common::RegisterField<
6255        4,
6256        0x1,
6257        1,
6258        0,
6259        p108pfs_by::Pcr,
6260        p108pfs_by::Pcr,
6261        P108PfsBy_SPEC,
6262        crate::common::RW,
6263    > {
6264        crate::common::RegisterField::<
6265            4,
6266            0x1,
6267            1,
6268            0,
6269            p108pfs_by::Pcr,
6270            p108pfs_by::Pcr,
6271            P108PfsBy_SPEC,
6272            crate::common::RW,
6273        >::from_register(self, 0)
6274    }
6275
6276    #[doc = "N-Channel Open-Drain Control"]
6277    #[inline(always)]
6278    pub fn ncodr(
6279        self,
6280    ) -> crate::common::RegisterField<
6281        6,
6282        0x1,
6283        1,
6284        0,
6285        p108pfs_by::Ncodr,
6286        p108pfs_by::Ncodr,
6287        P108PfsBy_SPEC,
6288        crate::common::RW,
6289    > {
6290        crate::common::RegisterField::<
6291            6,
6292            0x1,
6293            1,
6294            0,
6295            p108pfs_by::Ncodr,
6296            p108pfs_by::Ncodr,
6297            P108PfsBy_SPEC,
6298            crate::common::RW,
6299        >::from_register(self, 0)
6300    }
6301}
6302impl ::core::default::Default for P108PfsBy {
6303    #[inline(always)]
6304    fn default() -> P108PfsBy {
6305        <crate::RegValueT<P108PfsBy_SPEC> as RegisterValue<_>>::new(16)
6306    }
6307}
6308pub mod p108pfs_by {
6309
6310    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6311    pub struct Podr_SPEC;
6312    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6313    impl Podr {
6314        #[doc = "Output low"]
6315        pub const _0: Self = Self::new(0);
6316
6317        #[doc = "Output high"]
6318        pub const _1: Self = Self::new(1);
6319    }
6320    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6321    pub struct Pidr_SPEC;
6322    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6323    impl Pidr {
6324        #[doc = "Low level"]
6325        pub const _0: Self = Self::new(0);
6326
6327        #[doc = "High level"]
6328        pub const _1: Self = Self::new(1);
6329    }
6330    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6331    pub struct Pdr_SPEC;
6332    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6333    impl Pdr {
6334        #[doc = "Input (functions as an input pin)"]
6335        pub const _0: Self = Self::new(0);
6336
6337        #[doc = "Output (functions as an output pin)"]
6338        pub const _1: Self = Self::new(1);
6339    }
6340    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6341    pub struct Pcr_SPEC;
6342    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6343    impl Pcr {
6344        #[doc = "Disable input pull-up"]
6345        pub const _0: Self = Self::new(0);
6346
6347        #[doc = "Enable input pull-up"]
6348        pub const _1: Self = Self::new(1);
6349    }
6350    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6351    pub struct Ncodr_SPEC;
6352    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6353    impl Ncodr {
6354        #[doc = "Output CMOS"]
6355        pub const _0: Self = Self::new(0);
6356
6357        #[doc = "Output NMOS open-drain"]
6358        pub const _1: Self = Self::new(1);
6359    }
6360}
6361#[doc(hidden)]
6362#[derive(Copy, Clone, Eq, PartialEq)]
6363pub struct P109Pfs_SPEC;
6364impl crate::sealed::RegSpec for P109Pfs_SPEC {
6365    type DataType = u32;
6366}
6367
6368#[doc = "Port 109 Pin Function Select Register"]
6369pub type P109Pfs = crate::RegValueT<P109Pfs_SPEC>;
6370
6371impl P109Pfs {
6372    #[doc = "Port Output Data"]
6373    #[inline(always)]
6374    pub fn podr(
6375        self,
6376    ) -> crate::common::RegisterField<
6377        0,
6378        0x1,
6379        1,
6380        0,
6381        p109pfs::Podr,
6382        p109pfs::Podr,
6383        P109Pfs_SPEC,
6384        crate::common::RW,
6385    > {
6386        crate::common::RegisterField::<
6387            0,
6388            0x1,
6389            1,
6390            0,
6391            p109pfs::Podr,
6392            p109pfs::Podr,
6393            P109Pfs_SPEC,
6394            crate::common::RW,
6395        >::from_register(self, 0)
6396    }
6397
6398    #[doc = "Port State"]
6399    #[inline(always)]
6400    pub fn pidr(
6401        self,
6402    ) -> crate::common::RegisterField<
6403        1,
6404        0x1,
6405        1,
6406        0,
6407        p109pfs::Pidr,
6408        p109pfs::Pidr,
6409        P109Pfs_SPEC,
6410        crate::common::R,
6411    > {
6412        crate::common::RegisterField::<
6413            1,
6414            0x1,
6415            1,
6416            0,
6417            p109pfs::Pidr,
6418            p109pfs::Pidr,
6419            P109Pfs_SPEC,
6420            crate::common::R,
6421        >::from_register(self, 0)
6422    }
6423
6424    #[doc = "Port Direction"]
6425    #[inline(always)]
6426    pub fn pdr(
6427        self,
6428    ) -> crate::common::RegisterField<
6429        2,
6430        0x1,
6431        1,
6432        0,
6433        p109pfs::Pdr,
6434        p109pfs::Pdr,
6435        P109Pfs_SPEC,
6436        crate::common::RW,
6437    > {
6438        crate::common::RegisterField::<
6439            2,
6440            0x1,
6441            1,
6442            0,
6443            p109pfs::Pdr,
6444            p109pfs::Pdr,
6445            P109Pfs_SPEC,
6446            crate::common::RW,
6447        >::from_register(self, 0)
6448    }
6449
6450    #[doc = "Pull-up Control"]
6451    #[inline(always)]
6452    pub fn pcr(
6453        self,
6454    ) -> crate::common::RegisterField<
6455        4,
6456        0x1,
6457        1,
6458        0,
6459        p109pfs::Pcr,
6460        p109pfs::Pcr,
6461        P109Pfs_SPEC,
6462        crate::common::RW,
6463    > {
6464        crate::common::RegisterField::<
6465            4,
6466            0x1,
6467            1,
6468            0,
6469            p109pfs::Pcr,
6470            p109pfs::Pcr,
6471            P109Pfs_SPEC,
6472            crate::common::RW,
6473        >::from_register(self, 0)
6474    }
6475
6476    #[doc = "N-Channel Open-Drain Control"]
6477    #[inline(always)]
6478    pub fn ncodr(
6479        self,
6480    ) -> crate::common::RegisterField<
6481        6,
6482        0x1,
6483        1,
6484        0,
6485        p109pfs::Ncodr,
6486        p109pfs::Ncodr,
6487        P109Pfs_SPEC,
6488        crate::common::RW,
6489    > {
6490        crate::common::RegisterField::<
6491            6,
6492            0x1,
6493            1,
6494            0,
6495            p109pfs::Ncodr,
6496            p109pfs::Ncodr,
6497            P109Pfs_SPEC,
6498            crate::common::RW,
6499        >::from_register(self, 0)
6500    }
6501
6502    #[doc = "Event on Falling/Event on Rising"]
6503    #[inline(always)]
6504    pub fn eofr(
6505        self,
6506    ) -> crate::common::RegisterField<
6507        12,
6508        0x3,
6509        1,
6510        0,
6511        p109pfs::Eofr,
6512        p109pfs::Eofr,
6513        P109Pfs_SPEC,
6514        crate::common::RW,
6515    > {
6516        crate::common::RegisterField::<
6517            12,
6518            0x3,
6519            1,
6520            0,
6521            p109pfs::Eofr,
6522            p109pfs::Eofr,
6523            P109Pfs_SPEC,
6524            crate::common::RW,
6525        >::from_register(self, 0)
6526    }
6527
6528    #[doc = "IRQ Input Enable"]
6529    #[inline(always)]
6530    pub fn isel(
6531        self,
6532    ) -> crate::common::RegisterField<
6533        14,
6534        0x1,
6535        1,
6536        0,
6537        p109pfs::Isel,
6538        p109pfs::Isel,
6539        P109Pfs_SPEC,
6540        crate::common::RW,
6541    > {
6542        crate::common::RegisterField::<
6543            14,
6544            0x1,
6545            1,
6546            0,
6547            p109pfs::Isel,
6548            p109pfs::Isel,
6549            P109Pfs_SPEC,
6550            crate::common::RW,
6551        >::from_register(self, 0)
6552    }
6553
6554    #[doc = "Analog Input Enable"]
6555    #[inline(always)]
6556    pub fn asel(
6557        self,
6558    ) -> crate::common::RegisterField<
6559        15,
6560        0x1,
6561        1,
6562        0,
6563        p109pfs::Asel,
6564        p109pfs::Asel,
6565        P109Pfs_SPEC,
6566        crate::common::RW,
6567    > {
6568        crate::common::RegisterField::<
6569            15,
6570            0x1,
6571            1,
6572            0,
6573            p109pfs::Asel,
6574            p109pfs::Asel,
6575            P109Pfs_SPEC,
6576            crate::common::RW,
6577        >::from_register(self, 0)
6578    }
6579
6580    #[doc = "Port Mode Control"]
6581    #[inline(always)]
6582    pub fn pmr(
6583        self,
6584    ) -> crate::common::RegisterField<
6585        16,
6586        0x1,
6587        1,
6588        0,
6589        p109pfs::Pmr,
6590        p109pfs::Pmr,
6591        P109Pfs_SPEC,
6592        crate::common::RW,
6593    > {
6594        crate::common::RegisterField::<
6595            16,
6596            0x1,
6597            1,
6598            0,
6599            p109pfs::Pmr,
6600            p109pfs::Pmr,
6601            P109Pfs_SPEC,
6602            crate::common::RW,
6603        >::from_register(self, 0)
6604    }
6605
6606    #[doc = "Peripheral Select"]
6607    #[inline(always)]
6608    pub fn psel(
6609        self,
6610    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P109Pfs_SPEC, crate::common::RW> {
6611        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P109Pfs_SPEC,crate::common::RW>::from_register(self,0)
6612    }
6613}
6614impl ::core::default::Default for P109Pfs {
6615    #[inline(always)]
6616    fn default() -> P109Pfs {
6617        <crate::RegValueT<P109Pfs_SPEC> as RegisterValue<_>>::new(0)
6618    }
6619}
6620pub mod p109pfs {
6621
6622    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6623    pub struct Podr_SPEC;
6624    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6625    impl Podr {
6626        #[doc = "Output low"]
6627        pub const _0: Self = Self::new(0);
6628
6629        #[doc = "Output high"]
6630        pub const _1: Self = Self::new(1);
6631    }
6632    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6633    pub struct Pidr_SPEC;
6634    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6635    impl Pidr {
6636        #[doc = "Low level"]
6637        pub const _0: Self = Self::new(0);
6638
6639        #[doc = "High level"]
6640        pub const _1: Self = Self::new(1);
6641    }
6642    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6643    pub struct Pdr_SPEC;
6644    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6645    impl Pdr {
6646        #[doc = "Input (functions as an input pin)"]
6647        pub const _0: Self = Self::new(0);
6648
6649        #[doc = "Output (functions as an output pin)"]
6650        pub const _1: Self = Self::new(1);
6651    }
6652    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6653    pub struct Pcr_SPEC;
6654    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6655    impl Pcr {
6656        #[doc = "Disable input pull-up"]
6657        pub const _0: Self = Self::new(0);
6658
6659        #[doc = "Enable input pull-up"]
6660        pub const _1: Self = Self::new(1);
6661    }
6662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6663    pub struct Ncodr_SPEC;
6664    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6665    impl Ncodr {
6666        #[doc = "Output CMOS"]
6667        pub const _0: Self = Self::new(0);
6668
6669        #[doc = "Output NMOS open-drain"]
6670        pub const _1: Self = Self::new(1);
6671    }
6672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6673    pub struct Eofr_SPEC;
6674    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6675    impl Eofr {
6676        #[doc = "Don\'t care"]
6677        pub const _00: Self = Self::new(0);
6678
6679        #[doc = "Detect rising edge"]
6680        pub const _01: Self = Self::new(1);
6681
6682        #[doc = "Detect falling edge"]
6683        pub const _10: Self = Self::new(2);
6684
6685        #[doc = "Detect both edges"]
6686        pub const _11: Self = Self::new(3);
6687    }
6688    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6689    pub struct Isel_SPEC;
6690    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6691    impl Isel {
6692        #[doc = "Do not use as IRQn input pin"]
6693        pub const _0: Self = Self::new(0);
6694
6695        #[doc = "Use as IRQn input pin"]
6696        pub const _1: Self = Self::new(1);
6697    }
6698    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6699    pub struct Asel_SPEC;
6700    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6701    impl Asel {
6702        #[doc = "Do not use as analog pin"]
6703        pub const _0: Self = Self::new(0);
6704
6705        #[doc = "Use as analog pin"]
6706        pub const _1: Self = Self::new(1);
6707    }
6708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6709    pub struct Pmr_SPEC;
6710    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6711    impl Pmr {
6712        #[doc = "Use as general I/O pin"]
6713        pub const _0: Self = Self::new(0);
6714
6715        #[doc = "Use as I/O port for peripheral functions"]
6716        pub const _1: Self = Self::new(1);
6717    }
6718}
6719#[doc(hidden)]
6720#[derive(Copy, Clone, Eq, PartialEq)]
6721pub struct P109PfsHa_SPEC;
6722impl crate::sealed::RegSpec for P109PfsHa_SPEC {
6723    type DataType = u16;
6724}
6725
6726#[doc = "Port 109 Pin Function Select Register"]
6727pub type P109PfsHa = crate::RegValueT<P109PfsHa_SPEC>;
6728
6729impl P109PfsHa {
6730    #[doc = "Port Output Data"]
6731    #[inline(always)]
6732    pub fn podr(
6733        self,
6734    ) -> crate::common::RegisterField<
6735        0,
6736        0x1,
6737        1,
6738        0,
6739        p109pfs_ha::Podr,
6740        p109pfs_ha::Podr,
6741        P109PfsHa_SPEC,
6742        crate::common::RW,
6743    > {
6744        crate::common::RegisterField::<
6745            0,
6746            0x1,
6747            1,
6748            0,
6749            p109pfs_ha::Podr,
6750            p109pfs_ha::Podr,
6751            P109PfsHa_SPEC,
6752            crate::common::RW,
6753        >::from_register(self, 0)
6754    }
6755
6756    #[doc = "Port State"]
6757    #[inline(always)]
6758    pub fn pidr(
6759        self,
6760    ) -> crate::common::RegisterField<
6761        1,
6762        0x1,
6763        1,
6764        0,
6765        p109pfs_ha::Pidr,
6766        p109pfs_ha::Pidr,
6767        P109PfsHa_SPEC,
6768        crate::common::R,
6769    > {
6770        crate::common::RegisterField::<
6771            1,
6772            0x1,
6773            1,
6774            0,
6775            p109pfs_ha::Pidr,
6776            p109pfs_ha::Pidr,
6777            P109PfsHa_SPEC,
6778            crate::common::R,
6779        >::from_register(self, 0)
6780    }
6781
6782    #[doc = "Port Direction"]
6783    #[inline(always)]
6784    pub fn pdr(
6785        self,
6786    ) -> crate::common::RegisterField<
6787        2,
6788        0x1,
6789        1,
6790        0,
6791        p109pfs_ha::Pdr,
6792        p109pfs_ha::Pdr,
6793        P109PfsHa_SPEC,
6794        crate::common::RW,
6795    > {
6796        crate::common::RegisterField::<
6797            2,
6798            0x1,
6799            1,
6800            0,
6801            p109pfs_ha::Pdr,
6802            p109pfs_ha::Pdr,
6803            P109PfsHa_SPEC,
6804            crate::common::RW,
6805        >::from_register(self, 0)
6806    }
6807
6808    #[doc = "Pull-up Control"]
6809    #[inline(always)]
6810    pub fn pcr(
6811        self,
6812    ) -> crate::common::RegisterField<
6813        4,
6814        0x1,
6815        1,
6816        0,
6817        p109pfs_ha::Pcr,
6818        p109pfs_ha::Pcr,
6819        P109PfsHa_SPEC,
6820        crate::common::RW,
6821    > {
6822        crate::common::RegisterField::<
6823            4,
6824            0x1,
6825            1,
6826            0,
6827            p109pfs_ha::Pcr,
6828            p109pfs_ha::Pcr,
6829            P109PfsHa_SPEC,
6830            crate::common::RW,
6831        >::from_register(self, 0)
6832    }
6833
6834    #[doc = "N-Channel Open-Drain Control"]
6835    #[inline(always)]
6836    pub fn ncodr(
6837        self,
6838    ) -> crate::common::RegisterField<
6839        6,
6840        0x1,
6841        1,
6842        0,
6843        p109pfs_ha::Ncodr,
6844        p109pfs_ha::Ncodr,
6845        P109PfsHa_SPEC,
6846        crate::common::RW,
6847    > {
6848        crate::common::RegisterField::<
6849            6,
6850            0x1,
6851            1,
6852            0,
6853            p109pfs_ha::Ncodr,
6854            p109pfs_ha::Ncodr,
6855            P109PfsHa_SPEC,
6856            crate::common::RW,
6857        >::from_register(self, 0)
6858    }
6859
6860    #[doc = "Event on Falling/Event on Rising"]
6861    #[inline(always)]
6862    pub fn eofr(
6863        self,
6864    ) -> crate::common::RegisterField<
6865        12,
6866        0x3,
6867        1,
6868        0,
6869        p109pfs_ha::Eofr,
6870        p109pfs_ha::Eofr,
6871        P109PfsHa_SPEC,
6872        crate::common::RW,
6873    > {
6874        crate::common::RegisterField::<
6875            12,
6876            0x3,
6877            1,
6878            0,
6879            p109pfs_ha::Eofr,
6880            p109pfs_ha::Eofr,
6881            P109PfsHa_SPEC,
6882            crate::common::RW,
6883        >::from_register(self, 0)
6884    }
6885
6886    #[doc = "IRQ Input Enable"]
6887    #[inline(always)]
6888    pub fn isel(
6889        self,
6890    ) -> crate::common::RegisterField<
6891        14,
6892        0x1,
6893        1,
6894        0,
6895        p109pfs_ha::Isel,
6896        p109pfs_ha::Isel,
6897        P109PfsHa_SPEC,
6898        crate::common::RW,
6899    > {
6900        crate::common::RegisterField::<
6901            14,
6902            0x1,
6903            1,
6904            0,
6905            p109pfs_ha::Isel,
6906            p109pfs_ha::Isel,
6907            P109PfsHa_SPEC,
6908            crate::common::RW,
6909        >::from_register(self, 0)
6910    }
6911
6912    #[doc = "Analog Input Enable"]
6913    #[inline(always)]
6914    pub fn asel(
6915        self,
6916    ) -> crate::common::RegisterField<
6917        15,
6918        0x1,
6919        1,
6920        0,
6921        p109pfs_ha::Asel,
6922        p109pfs_ha::Asel,
6923        P109PfsHa_SPEC,
6924        crate::common::RW,
6925    > {
6926        crate::common::RegisterField::<
6927            15,
6928            0x1,
6929            1,
6930            0,
6931            p109pfs_ha::Asel,
6932            p109pfs_ha::Asel,
6933            P109PfsHa_SPEC,
6934            crate::common::RW,
6935        >::from_register(self, 0)
6936    }
6937}
6938impl ::core::default::Default for P109PfsHa {
6939    #[inline(always)]
6940    fn default() -> P109PfsHa {
6941        <crate::RegValueT<P109PfsHa_SPEC> as RegisterValue<_>>::new(0)
6942    }
6943}
6944pub mod p109pfs_ha {
6945
6946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6947    pub struct Podr_SPEC;
6948    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6949    impl Podr {
6950        #[doc = "Output low"]
6951        pub const _0: Self = Self::new(0);
6952
6953        #[doc = "Output high"]
6954        pub const _1: Self = Self::new(1);
6955    }
6956    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6957    pub struct Pidr_SPEC;
6958    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6959    impl Pidr {
6960        #[doc = "Low level"]
6961        pub const _0: Self = Self::new(0);
6962
6963        #[doc = "High level"]
6964        pub const _1: Self = Self::new(1);
6965    }
6966    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6967    pub struct Pdr_SPEC;
6968    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6969    impl Pdr {
6970        #[doc = "Input (functions as an input pin)"]
6971        pub const _0: Self = Self::new(0);
6972
6973        #[doc = "Output (functions as an output pin)"]
6974        pub const _1: Self = Self::new(1);
6975    }
6976    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6977    pub struct Pcr_SPEC;
6978    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6979    impl Pcr {
6980        #[doc = "Disable input pull-up"]
6981        pub const _0: Self = Self::new(0);
6982
6983        #[doc = "Enable input pull-up"]
6984        pub const _1: Self = Self::new(1);
6985    }
6986    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6987    pub struct Ncodr_SPEC;
6988    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6989    impl Ncodr {
6990        #[doc = "Output CMOS"]
6991        pub const _0: Self = Self::new(0);
6992
6993        #[doc = "Output NMOS open-drain"]
6994        pub const _1: Self = Self::new(1);
6995    }
6996    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6997    pub struct Eofr_SPEC;
6998    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6999    impl Eofr {
7000        #[doc = "Don\'t care"]
7001        pub const _00: Self = Self::new(0);
7002
7003        #[doc = "Detect rising edge"]
7004        pub const _01: Self = Self::new(1);
7005
7006        #[doc = "Detect falling edge"]
7007        pub const _10: Self = Self::new(2);
7008
7009        #[doc = "Detect both edges"]
7010        pub const _11: Self = Self::new(3);
7011    }
7012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7013    pub struct Isel_SPEC;
7014    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7015    impl Isel {
7016        #[doc = "Do not use as IRQn input pin"]
7017        pub const _0: Self = Self::new(0);
7018
7019        #[doc = "Use as IRQn input pin"]
7020        pub const _1: Self = Self::new(1);
7021    }
7022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7023    pub struct Asel_SPEC;
7024    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7025    impl Asel {
7026        #[doc = "Do not use as analog pin"]
7027        pub const _0: Self = Self::new(0);
7028
7029        #[doc = "Use as analog pin"]
7030        pub const _1: Self = Self::new(1);
7031    }
7032}
7033#[doc(hidden)]
7034#[derive(Copy, Clone, Eq, PartialEq)]
7035pub struct P109PfsBy_SPEC;
7036impl crate::sealed::RegSpec for P109PfsBy_SPEC {
7037    type DataType = u8;
7038}
7039
7040#[doc = "Port 109 Pin Function Select Register"]
7041pub type P109PfsBy = crate::RegValueT<P109PfsBy_SPEC>;
7042
7043impl P109PfsBy {
7044    #[doc = "Port Output Data"]
7045    #[inline(always)]
7046    pub fn podr(
7047        self,
7048    ) -> crate::common::RegisterField<
7049        0,
7050        0x1,
7051        1,
7052        0,
7053        p109pfs_by::Podr,
7054        p109pfs_by::Podr,
7055        P109PfsBy_SPEC,
7056        crate::common::RW,
7057    > {
7058        crate::common::RegisterField::<
7059            0,
7060            0x1,
7061            1,
7062            0,
7063            p109pfs_by::Podr,
7064            p109pfs_by::Podr,
7065            P109PfsBy_SPEC,
7066            crate::common::RW,
7067        >::from_register(self, 0)
7068    }
7069
7070    #[doc = "Port State"]
7071    #[inline(always)]
7072    pub fn pidr(
7073        self,
7074    ) -> crate::common::RegisterField<
7075        1,
7076        0x1,
7077        1,
7078        0,
7079        p109pfs_by::Pidr,
7080        p109pfs_by::Pidr,
7081        P109PfsBy_SPEC,
7082        crate::common::R,
7083    > {
7084        crate::common::RegisterField::<
7085            1,
7086            0x1,
7087            1,
7088            0,
7089            p109pfs_by::Pidr,
7090            p109pfs_by::Pidr,
7091            P109PfsBy_SPEC,
7092            crate::common::R,
7093        >::from_register(self, 0)
7094    }
7095
7096    #[doc = "Port Direction"]
7097    #[inline(always)]
7098    pub fn pdr(
7099        self,
7100    ) -> crate::common::RegisterField<
7101        2,
7102        0x1,
7103        1,
7104        0,
7105        p109pfs_by::Pdr,
7106        p109pfs_by::Pdr,
7107        P109PfsBy_SPEC,
7108        crate::common::RW,
7109    > {
7110        crate::common::RegisterField::<
7111            2,
7112            0x1,
7113            1,
7114            0,
7115            p109pfs_by::Pdr,
7116            p109pfs_by::Pdr,
7117            P109PfsBy_SPEC,
7118            crate::common::RW,
7119        >::from_register(self, 0)
7120    }
7121
7122    #[doc = "Pull-up Control"]
7123    #[inline(always)]
7124    pub fn pcr(
7125        self,
7126    ) -> crate::common::RegisterField<
7127        4,
7128        0x1,
7129        1,
7130        0,
7131        p109pfs_by::Pcr,
7132        p109pfs_by::Pcr,
7133        P109PfsBy_SPEC,
7134        crate::common::RW,
7135    > {
7136        crate::common::RegisterField::<
7137            4,
7138            0x1,
7139            1,
7140            0,
7141            p109pfs_by::Pcr,
7142            p109pfs_by::Pcr,
7143            P109PfsBy_SPEC,
7144            crate::common::RW,
7145        >::from_register(self, 0)
7146    }
7147
7148    #[doc = "N-Channel Open-Drain Control"]
7149    #[inline(always)]
7150    pub fn ncodr(
7151        self,
7152    ) -> crate::common::RegisterField<
7153        6,
7154        0x1,
7155        1,
7156        0,
7157        p109pfs_by::Ncodr,
7158        p109pfs_by::Ncodr,
7159        P109PfsBy_SPEC,
7160        crate::common::RW,
7161    > {
7162        crate::common::RegisterField::<
7163            6,
7164            0x1,
7165            1,
7166            0,
7167            p109pfs_by::Ncodr,
7168            p109pfs_by::Ncodr,
7169            P109PfsBy_SPEC,
7170            crate::common::RW,
7171        >::from_register(self, 0)
7172    }
7173}
7174impl ::core::default::Default for P109PfsBy {
7175    #[inline(always)]
7176    fn default() -> P109PfsBy {
7177        <crate::RegValueT<P109PfsBy_SPEC> as RegisterValue<_>>::new(0)
7178    }
7179}
7180pub mod p109pfs_by {
7181
7182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7183    pub struct Podr_SPEC;
7184    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7185    impl Podr {
7186        #[doc = "Output low"]
7187        pub const _0: Self = Self::new(0);
7188
7189        #[doc = "Output high"]
7190        pub const _1: Self = Self::new(1);
7191    }
7192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7193    pub struct Pidr_SPEC;
7194    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7195    impl Pidr {
7196        #[doc = "Low level"]
7197        pub const _0: Self = Self::new(0);
7198
7199        #[doc = "High level"]
7200        pub const _1: Self = Self::new(1);
7201    }
7202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7203    pub struct Pdr_SPEC;
7204    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7205    impl Pdr {
7206        #[doc = "Input (functions as an input pin)"]
7207        pub const _0: Self = Self::new(0);
7208
7209        #[doc = "Output (functions as an output pin)"]
7210        pub const _1: Self = Self::new(1);
7211    }
7212    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7213    pub struct Pcr_SPEC;
7214    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7215    impl Pcr {
7216        #[doc = "Disable input pull-up"]
7217        pub const _0: Self = Self::new(0);
7218
7219        #[doc = "Enable input pull-up"]
7220        pub const _1: Self = Self::new(1);
7221    }
7222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7223    pub struct Ncodr_SPEC;
7224    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7225    impl Ncodr {
7226        #[doc = "Output CMOS"]
7227        pub const _0: Self = Self::new(0);
7228
7229        #[doc = "Output NMOS open-drain"]
7230        pub const _1: Self = Self::new(1);
7231    }
7232}
7233#[doc(hidden)]
7234#[derive(Copy, Clone, Eq, PartialEq)]
7235pub struct P1Pfs_SPEC;
7236impl crate::sealed::RegSpec for P1Pfs_SPEC {
7237    type DataType = u32;
7238}
7239
7240#[doc = "Port 1%s Pin Function Select Register"]
7241pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
7242
7243impl P1Pfs {
7244    #[doc = "Port Output Data"]
7245    #[inline(always)]
7246    pub fn podr(
7247        self,
7248    ) -> crate::common::RegisterField<
7249        0,
7250        0x1,
7251        1,
7252        0,
7253        p1pfs::Podr,
7254        p1pfs::Podr,
7255        P1Pfs_SPEC,
7256        crate::common::RW,
7257    > {
7258        crate::common::RegisterField::<
7259            0,
7260            0x1,
7261            1,
7262            0,
7263            p1pfs::Podr,
7264            p1pfs::Podr,
7265            P1Pfs_SPEC,
7266            crate::common::RW,
7267        >::from_register(self, 0)
7268    }
7269
7270    #[doc = "Port State"]
7271    #[inline(always)]
7272    pub fn pidr(
7273        self,
7274    ) -> crate::common::RegisterField<
7275        1,
7276        0x1,
7277        1,
7278        0,
7279        p1pfs::Pidr,
7280        p1pfs::Pidr,
7281        P1Pfs_SPEC,
7282        crate::common::R,
7283    > {
7284        crate::common::RegisterField::<
7285            1,
7286            0x1,
7287            1,
7288            0,
7289            p1pfs::Pidr,
7290            p1pfs::Pidr,
7291            P1Pfs_SPEC,
7292            crate::common::R,
7293        >::from_register(self, 0)
7294    }
7295
7296    #[doc = "Port Direction"]
7297    #[inline(always)]
7298    pub fn pdr(
7299        self,
7300    ) -> crate::common::RegisterField<
7301        2,
7302        0x1,
7303        1,
7304        0,
7305        p1pfs::Pdr,
7306        p1pfs::Pdr,
7307        P1Pfs_SPEC,
7308        crate::common::RW,
7309    > {
7310        crate::common::RegisterField::<
7311            2,
7312            0x1,
7313            1,
7314            0,
7315            p1pfs::Pdr,
7316            p1pfs::Pdr,
7317            P1Pfs_SPEC,
7318            crate::common::RW,
7319        >::from_register(self, 0)
7320    }
7321
7322    #[doc = "Pull-up Control"]
7323    #[inline(always)]
7324    pub fn pcr(
7325        self,
7326    ) -> crate::common::RegisterField<
7327        4,
7328        0x1,
7329        1,
7330        0,
7331        p1pfs::Pcr,
7332        p1pfs::Pcr,
7333        P1Pfs_SPEC,
7334        crate::common::RW,
7335    > {
7336        crate::common::RegisterField::<
7337            4,
7338            0x1,
7339            1,
7340            0,
7341            p1pfs::Pcr,
7342            p1pfs::Pcr,
7343            P1Pfs_SPEC,
7344            crate::common::RW,
7345        >::from_register(self, 0)
7346    }
7347
7348    #[doc = "N-Channel Open-Drain Control"]
7349    #[inline(always)]
7350    pub fn ncodr(
7351        self,
7352    ) -> crate::common::RegisterField<
7353        6,
7354        0x1,
7355        1,
7356        0,
7357        p1pfs::Ncodr,
7358        p1pfs::Ncodr,
7359        P1Pfs_SPEC,
7360        crate::common::RW,
7361    > {
7362        crate::common::RegisterField::<
7363            6,
7364            0x1,
7365            1,
7366            0,
7367            p1pfs::Ncodr,
7368            p1pfs::Ncodr,
7369            P1Pfs_SPEC,
7370            crate::common::RW,
7371        >::from_register(self, 0)
7372    }
7373
7374    #[doc = "Event on Falling/Event on Rising"]
7375    #[inline(always)]
7376    pub fn eofr(
7377        self,
7378    ) -> crate::common::RegisterField<
7379        12,
7380        0x3,
7381        1,
7382        0,
7383        p1pfs::Eofr,
7384        p1pfs::Eofr,
7385        P1Pfs_SPEC,
7386        crate::common::RW,
7387    > {
7388        crate::common::RegisterField::<
7389            12,
7390            0x3,
7391            1,
7392            0,
7393            p1pfs::Eofr,
7394            p1pfs::Eofr,
7395            P1Pfs_SPEC,
7396            crate::common::RW,
7397        >::from_register(self, 0)
7398    }
7399
7400    #[doc = "IRQ Input Enable"]
7401    #[inline(always)]
7402    pub fn isel(
7403        self,
7404    ) -> crate::common::RegisterField<
7405        14,
7406        0x1,
7407        1,
7408        0,
7409        p1pfs::Isel,
7410        p1pfs::Isel,
7411        P1Pfs_SPEC,
7412        crate::common::RW,
7413    > {
7414        crate::common::RegisterField::<
7415            14,
7416            0x1,
7417            1,
7418            0,
7419            p1pfs::Isel,
7420            p1pfs::Isel,
7421            P1Pfs_SPEC,
7422            crate::common::RW,
7423        >::from_register(self, 0)
7424    }
7425
7426    #[doc = "Analog Input Enable"]
7427    #[inline(always)]
7428    pub fn asel(
7429        self,
7430    ) -> crate::common::RegisterField<
7431        15,
7432        0x1,
7433        1,
7434        0,
7435        p1pfs::Asel,
7436        p1pfs::Asel,
7437        P1Pfs_SPEC,
7438        crate::common::RW,
7439    > {
7440        crate::common::RegisterField::<
7441            15,
7442            0x1,
7443            1,
7444            0,
7445            p1pfs::Asel,
7446            p1pfs::Asel,
7447            P1Pfs_SPEC,
7448            crate::common::RW,
7449        >::from_register(self, 0)
7450    }
7451
7452    #[doc = "Port Mode Control"]
7453    #[inline(always)]
7454    pub fn pmr(
7455        self,
7456    ) -> crate::common::RegisterField<
7457        16,
7458        0x1,
7459        1,
7460        0,
7461        p1pfs::Pmr,
7462        p1pfs::Pmr,
7463        P1Pfs_SPEC,
7464        crate::common::RW,
7465    > {
7466        crate::common::RegisterField::<
7467            16,
7468            0x1,
7469            1,
7470            0,
7471            p1pfs::Pmr,
7472            p1pfs::Pmr,
7473            P1Pfs_SPEC,
7474            crate::common::RW,
7475        >::from_register(self, 0)
7476    }
7477
7478    #[doc = "Peripheral Select"]
7479    #[inline(always)]
7480    pub fn psel(
7481        self,
7482    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
7483        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
7484    }
7485}
7486impl ::core::default::Default for P1Pfs {
7487    #[inline(always)]
7488    fn default() -> P1Pfs {
7489        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
7490    }
7491}
7492pub mod p1pfs {
7493
7494    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7495    pub struct Podr_SPEC;
7496    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7497    impl Podr {
7498        #[doc = "Output low"]
7499        pub const _0: Self = Self::new(0);
7500
7501        #[doc = "Output high"]
7502        pub const _1: Self = Self::new(1);
7503    }
7504    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7505    pub struct Pidr_SPEC;
7506    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7507    impl Pidr {
7508        #[doc = "Low level"]
7509        pub const _0: Self = Self::new(0);
7510
7511        #[doc = "High level"]
7512        pub const _1: Self = Self::new(1);
7513    }
7514    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7515    pub struct Pdr_SPEC;
7516    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7517    impl Pdr {
7518        #[doc = "Input (functions as an input pin)"]
7519        pub const _0: Self = Self::new(0);
7520
7521        #[doc = "Output (functions as an output pin)"]
7522        pub const _1: Self = Self::new(1);
7523    }
7524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7525    pub struct Pcr_SPEC;
7526    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7527    impl Pcr {
7528        #[doc = "Disable input pull-up"]
7529        pub const _0: Self = Self::new(0);
7530
7531        #[doc = "Enable input pull-up"]
7532        pub const _1: Self = Self::new(1);
7533    }
7534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7535    pub struct Ncodr_SPEC;
7536    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7537    impl Ncodr {
7538        #[doc = "Output CMOS"]
7539        pub const _0: Self = Self::new(0);
7540
7541        #[doc = "Output NMOS open-drain"]
7542        pub const _1: Self = Self::new(1);
7543    }
7544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7545    pub struct Eofr_SPEC;
7546    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7547    impl Eofr {
7548        #[doc = "Don\'t care"]
7549        pub const _00: Self = Self::new(0);
7550
7551        #[doc = "Detect rising edge"]
7552        pub const _01: Self = Self::new(1);
7553
7554        #[doc = "Detect falling edge"]
7555        pub const _10: Self = Self::new(2);
7556
7557        #[doc = "Detect both edges"]
7558        pub const _11: Self = Self::new(3);
7559    }
7560    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7561    pub struct Isel_SPEC;
7562    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7563    impl Isel {
7564        #[doc = "Do not use as IRQn input pin"]
7565        pub const _0: Self = Self::new(0);
7566
7567        #[doc = "Use as IRQn input pin"]
7568        pub const _1: Self = Self::new(1);
7569    }
7570    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7571    pub struct Asel_SPEC;
7572    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7573    impl Asel {
7574        #[doc = "Do not use as analog pin"]
7575        pub const _0: Self = Self::new(0);
7576
7577        #[doc = "Use as analog pin"]
7578        pub const _1: Self = Self::new(1);
7579    }
7580    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7581    pub struct Pmr_SPEC;
7582    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7583    impl Pmr {
7584        #[doc = "Use as general I/O pin"]
7585        pub const _0: Self = Self::new(0);
7586
7587        #[doc = "Use as I/O port for peripheral functions"]
7588        pub const _1: Self = Self::new(1);
7589    }
7590}
7591#[doc(hidden)]
7592#[derive(Copy, Clone, Eq, PartialEq)]
7593pub struct P1PfsHa_SPEC;
7594impl crate::sealed::RegSpec for P1PfsHa_SPEC {
7595    type DataType = u16;
7596}
7597
7598#[doc = "Port 1%s Pin Function Select Register"]
7599pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
7600
7601impl P1PfsHa {
7602    #[doc = "Port Output Data"]
7603    #[inline(always)]
7604    pub fn podr(
7605        self,
7606    ) -> crate::common::RegisterField<
7607        0,
7608        0x1,
7609        1,
7610        0,
7611        p1pfs_ha::Podr,
7612        p1pfs_ha::Podr,
7613        P1PfsHa_SPEC,
7614        crate::common::RW,
7615    > {
7616        crate::common::RegisterField::<
7617            0,
7618            0x1,
7619            1,
7620            0,
7621            p1pfs_ha::Podr,
7622            p1pfs_ha::Podr,
7623            P1PfsHa_SPEC,
7624            crate::common::RW,
7625        >::from_register(self, 0)
7626    }
7627
7628    #[doc = "Port State"]
7629    #[inline(always)]
7630    pub fn pidr(
7631        self,
7632    ) -> crate::common::RegisterField<
7633        1,
7634        0x1,
7635        1,
7636        0,
7637        p1pfs_ha::Pidr,
7638        p1pfs_ha::Pidr,
7639        P1PfsHa_SPEC,
7640        crate::common::R,
7641    > {
7642        crate::common::RegisterField::<
7643            1,
7644            0x1,
7645            1,
7646            0,
7647            p1pfs_ha::Pidr,
7648            p1pfs_ha::Pidr,
7649            P1PfsHa_SPEC,
7650            crate::common::R,
7651        >::from_register(self, 0)
7652    }
7653
7654    #[doc = "Port Direction"]
7655    #[inline(always)]
7656    pub fn pdr(
7657        self,
7658    ) -> crate::common::RegisterField<
7659        2,
7660        0x1,
7661        1,
7662        0,
7663        p1pfs_ha::Pdr,
7664        p1pfs_ha::Pdr,
7665        P1PfsHa_SPEC,
7666        crate::common::RW,
7667    > {
7668        crate::common::RegisterField::<
7669            2,
7670            0x1,
7671            1,
7672            0,
7673            p1pfs_ha::Pdr,
7674            p1pfs_ha::Pdr,
7675            P1PfsHa_SPEC,
7676            crate::common::RW,
7677        >::from_register(self, 0)
7678    }
7679
7680    #[doc = "Pull-up Control"]
7681    #[inline(always)]
7682    pub fn pcr(
7683        self,
7684    ) -> crate::common::RegisterField<
7685        4,
7686        0x1,
7687        1,
7688        0,
7689        p1pfs_ha::Pcr,
7690        p1pfs_ha::Pcr,
7691        P1PfsHa_SPEC,
7692        crate::common::RW,
7693    > {
7694        crate::common::RegisterField::<
7695            4,
7696            0x1,
7697            1,
7698            0,
7699            p1pfs_ha::Pcr,
7700            p1pfs_ha::Pcr,
7701            P1PfsHa_SPEC,
7702            crate::common::RW,
7703        >::from_register(self, 0)
7704    }
7705
7706    #[doc = "N-Channel Open-Drain Control"]
7707    #[inline(always)]
7708    pub fn ncodr(
7709        self,
7710    ) -> crate::common::RegisterField<
7711        6,
7712        0x1,
7713        1,
7714        0,
7715        p1pfs_ha::Ncodr,
7716        p1pfs_ha::Ncodr,
7717        P1PfsHa_SPEC,
7718        crate::common::RW,
7719    > {
7720        crate::common::RegisterField::<
7721            6,
7722            0x1,
7723            1,
7724            0,
7725            p1pfs_ha::Ncodr,
7726            p1pfs_ha::Ncodr,
7727            P1PfsHa_SPEC,
7728            crate::common::RW,
7729        >::from_register(self, 0)
7730    }
7731
7732    #[doc = "Event on Falling/Event on Rising"]
7733    #[inline(always)]
7734    pub fn eofr(
7735        self,
7736    ) -> crate::common::RegisterField<
7737        12,
7738        0x3,
7739        1,
7740        0,
7741        p1pfs_ha::Eofr,
7742        p1pfs_ha::Eofr,
7743        P1PfsHa_SPEC,
7744        crate::common::RW,
7745    > {
7746        crate::common::RegisterField::<
7747            12,
7748            0x3,
7749            1,
7750            0,
7751            p1pfs_ha::Eofr,
7752            p1pfs_ha::Eofr,
7753            P1PfsHa_SPEC,
7754            crate::common::RW,
7755        >::from_register(self, 0)
7756    }
7757
7758    #[doc = "IRQ Input Enable"]
7759    #[inline(always)]
7760    pub fn isel(
7761        self,
7762    ) -> crate::common::RegisterField<
7763        14,
7764        0x1,
7765        1,
7766        0,
7767        p1pfs_ha::Isel,
7768        p1pfs_ha::Isel,
7769        P1PfsHa_SPEC,
7770        crate::common::RW,
7771    > {
7772        crate::common::RegisterField::<
7773            14,
7774            0x1,
7775            1,
7776            0,
7777            p1pfs_ha::Isel,
7778            p1pfs_ha::Isel,
7779            P1PfsHa_SPEC,
7780            crate::common::RW,
7781        >::from_register(self, 0)
7782    }
7783
7784    #[doc = "Analog Input Enable"]
7785    #[inline(always)]
7786    pub fn asel(
7787        self,
7788    ) -> crate::common::RegisterField<
7789        15,
7790        0x1,
7791        1,
7792        0,
7793        p1pfs_ha::Asel,
7794        p1pfs_ha::Asel,
7795        P1PfsHa_SPEC,
7796        crate::common::RW,
7797    > {
7798        crate::common::RegisterField::<
7799            15,
7800            0x1,
7801            1,
7802            0,
7803            p1pfs_ha::Asel,
7804            p1pfs_ha::Asel,
7805            P1PfsHa_SPEC,
7806            crate::common::RW,
7807        >::from_register(self, 0)
7808    }
7809}
7810impl ::core::default::Default for P1PfsHa {
7811    #[inline(always)]
7812    fn default() -> P1PfsHa {
7813        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
7814    }
7815}
7816pub mod p1pfs_ha {
7817
7818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7819    pub struct Podr_SPEC;
7820    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7821    impl Podr {
7822        #[doc = "Output low"]
7823        pub const _0: Self = Self::new(0);
7824
7825        #[doc = "Output high"]
7826        pub const _1: Self = Self::new(1);
7827    }
7828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7829    pub struct Pidr_SPEC;
7830    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7831    impl Pidr {
7832        #[doc = "Low level"]
7833        pub const _0: Self = Self::new(0);
7834
7835        #[doc = "High level"]
7836        pub const _1: Self = Self::new(1);
7837    }
7838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7839    pub struct Pdr_SPEC;
7840    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7841    impl Pdr {
7842        #[doc = "Input (functions as an input pin)"]
7843        pub const _0: Self = Self::new(0);
7844
7845        #[doc = "Output (functions as an output pin)"]
7846        pub const _1: Self = Self::new(1);
7847    }
7848    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7849    pub struct Pcr_SPEC;
7850    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7851    impl Pcr {
7852        #[doc = "Disable input pull-up"]
7853        pub const _0: Self = Self::new(0);
7854
7855        #[doc = "Enable input pull-up"]
7856        pub const _1: Self = Self::new(1);
7857    }
7858    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7859    pub struct Ncodr_SPEC;
7860    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7861    impl Ncodr {
7862        #[doc = "Output CMOS"]
7863        pub const _0: Self = Self::new(0);
7864
7865        #[doc = "Output NMOS open-drain"]
7866        pub const _1: Self = Self::new(1);
7867    }
7868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7869    pub struct Eofr_SPEC;
7870    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7871    impl Eofr {
7872        #[doc = "Don\'t care"]
7873        pub const _00: Self = Self::new(0);
7874
7875        #[doc = "Detect rising edge"]
7876        pub const _01: Self = Self::new(1);
7877
7878        #[doc = "Detect falling edge"]
7879        pub const _10: Self = Self::new(2);
7880
7881        #[doc = "Detect both edges"]
7882        pub const _11: Self = Self::new(3);
7883    }
7884    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7885    pub struct Isel_SPEC;
7886    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7887    impl Isel {
7888        #[doc = "Do not use as IRQn input pin"]
7889        pub const _0: Self = Self::new(0);
7890
7891        #[doc = "Use as IRQn input pin"]
7892        pub const _1: Self = Self::new(1);
7893    }
7894    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7895    pub struct Asel_SPEC;
7896    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7897    impl Asel {
7898        #[doc = "Do not use as analog pin"]
7899        pub const _0: Self = Self::new(0);
7900
7901        #[doc = "Use as analog pin"]
7902        pub const _1: Self = Self::new(1);
7903    }
7904}
7905#[doc(hidden)]
7906#[derive(Copy, Clone, Eq, PartialEq)]
7907pub struct P1PfsBy_SPEC;
7908impl crate::sealed::RegSpec for P1PfsBy_SPEC {
7909    type DataType = u8;
7910}
7911
7912#[doc = "Port 1%s Pin Function Select Register"]
7913pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
7914
7915impl P1PfsBy {
7916    #[doc = "Port Output Data"]
7917    #[inline(always)]
7918    pub fn podr(
7919        self,
7920    ) -> crate::common::RegisterField<
7921        0,
7922        0x1,
7923        1,
7924        0,
7925        p1pfs_by::Podr,
7926        p1pfs_by::Podr,
7927        P1PfsBy_SPEC,
7928        crate::common::RW,
7929    > {
7930        crate::common::RegisterField::<
7931            0,
7932            0x1,
7933            1,
7934            0,
7935            p1pfs_by::Podr,
7936            p1pfs_by::Podr,
7937            P1PfsBy_SPEC,
7938            crate::common::RW,
7939        >::from_register(self, 0)
7940    }
7941
7942    #[doc = "Port State"]
7943    #[inline(always)]
7944    pub fn pidr(
7945        self,
7946    ) -> crate::common::RegisterField<
7947        1,
7948        0x1,
7949        1,
7950        0,
7951        p1pfs_by::Pidr,
7952        p1pfs_by::Pidr,
7953        P1PfsBy_SPEC,
7954        crate::common::R,
7955    > {
7956        crate::common::RegisterField::<
7957            1,
7958            0x1,
7959            1,
7960            0,
7961            p1pfs_by::Pidr,
7962            p1pfs_by::Pidr,
7963            P1PfsBy_SPEC,
7964            crate::common::R,
7965        >::from_register(self, 0)
7966    }
7967
7968    #[doc = "Port Direction"]
7969    #[inline(always)]
7970    pub fn pdr(
7971        self,
7972    ) -> crate::common::RegisterField<
7973        2,
7974        0x1,
7975        1,
7976        0,
7977        p1pfs_by::Pdr,
7978        p1pfs_by::Pdr,
7979        P1PfsBy_SPEC,
7980        crate::common::RW,
7981    > {
7982        crate::common::RegisterField::<
7983            2,
7984            0x1,
7985            1,
7986            0,
7987            p1pfs_by::Pdr,
7988            p1pfs_by::Pdr,
7989            P1PfsBy_SPEC,
7990            crate::common::RW,
7991        >::from_register(self, 0)
7992    }
7993
7994    #[doc = "Pull-up Control"]
7995    #[inline(always)]
7996    pub fn pcr(
7997        self,
7998    ) -> crate::common::RegisterField<
7999        4,
8000        0x1,
8001        1,
8002        0,
8003        p1pfs_by::Pcr,
8004        p1pfs_by::Pcr,
8005        P1PfsBy_SPEC,
8006        crate::common::RW,
8007    > {
8008        crate::common::RegisterField::<
8009            4,
8010            0x1,
8011            1,
8012            0,
8013            p1pfs_by::Pcr,
8014            p1pfs_by::Pcr,
8015            P1PfsBy_SPEC,
8016            crate::common::RW,
8017        >::from_register(self, 0)
8018    }
8019
8020    #[doc = "N-Channel Open-Drain Control"]
8021    #[inline(always)]
8022    pub fn ncodr(
8023        self,
8024    ) -> crate::common::RegisterField<
8025        6,
8026        0x1,
8027        1,
8028        0,
8029        p1pfs_by::Ncodr,
8030        p1pfs_by::Ncodr,
8031        P1PfsBy_SPEC,
8032        crate::common::RW,
8033    > {
8034        crate::common::RegisterField::<
8035            6,
8036            0x1,
8037            1,
8038            0,
8039            p1pfs_by::Ncodr,
8040            p1pfs_by::Ncodr,
8041            P1PfsBy_SPEC,
8042            crate::common::RW,
8043        >::from_register(self, 0)
8044    }
8045}
8046impl ::core::default::Default for P1PfsBy {
8047    #[inline(always)]
8048    fn default() -> P1PfsBy {
8049        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
8050    }
8051}
8052pub mod p1pfs_by {
8053
8054    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8055    pub struct Podr_SPEC;
8056    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8057    impl Podr {
8058        #[doc = "Output low"]
8059        pub const _0: Self = Self::new(0);
8060
8061        #[doc = "Output high"]
8062        pub const _1: Self = Self::new(1);
8063    }
8064    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8065    pub struct Pidr_SPEC;
8066    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8067    impl Pidr {
8068        #[doc = "Low level"]
8069        pub const _0: Self = Self::new(0);
8070
8071        #[doc = "High level"]
8072        pub const _1: Self = Self::new(1);
8073    }
8074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8075    pub struct Pdr_SPEC;
8076    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8077    impl Pdr {
8078        #[doc = "Input (functions as an input pin)"]
8079        pub const _0: Self = Self::new(0);
8080
8081        #[doc = "Output (functions as an output pin)"]
8082        pub const _1: Self = Self::new(1);
8083    }
8084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8085    pub struct Pcr_SPEC;
8086    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8087    impl Pcr {
8088        #[doc = "Disable input pull-up"]
8089        pub const _0: Self = Self::new(0);
8090
8091        #[doc = "Enable input pull-up"]
8092        pub const _1: Self = Self::new(1);
8093    }
8094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8095    pub struct Ncodr_SPEC;
8096    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8097    impl Ncodr {
8098        #[doc = "Output CMOS"]
8099        pub const _0: Self = Self::new(0);
8100
8101        #[doc = "Output NMOS open-drain"]
8102        pub const _1: Self = Self::new(1);
8103    }
8104}
8105#[doc(hidden)]
8106#[derive(Copy, Clone, Eq, PartialEq)]
8107pub struct P200Pfs_SPEC;
8108impl crate::sealed::RegSpec for P200Pfs_SPEC {
8109    type DataType = u32;
8110}
8111
8112#[doc = "Port 200 Pin Function Select Register"]
8113pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
8114
8115impl P200Pfs {
8116    #[doc = "Port Output Data"]
8117    #[inline(always)]
8118    pub fn podr(
8119        self,
8120    ) -> crate::common::RegisterField<
8121        0,
8122        0x1,
8123        1,
8124        0,
8125        p200pfs::Podr,
8126        p200pfs::Podr,
8127        P200Pfs_SPEC,
8128        crate::common::RW,
8129    > {
8130        crate::common::RegisterField::<
8131            0,
8132            0x1,
8133            1,
8134            0,
8135            p200pfs::Podr,
8136            p200pfs::Podr,
8137            P200Pfs_SPEC,
8138            crate::common::RW,
8139        >::from_register(self, 0)
8140    }
8141
8142    #[doc = "Port State"]
8143    #[inline(always)]
8144    pub fn pidr(
8145        self,
8146    ) -> crate::common::RegisterField<
8147        1,
8148        0x1,
8149        1,
8150        0,
8151        p200pfs::Pidr,
8152        p200pfs::Pidr,
8153        P200Pfs_SPEC,
8154        crate::common::R,
8155    > {
8156        crate::common::RegisterField::<
8157            1,
8158            0x1,
8159            1,
8160            0,
8161            p200pfs::Pidr,
8162            p200pfs::Pidr,
8163            P200Pfs_SPEC,
8164            crate::common::R,
8165        >::from_register(self, 0)
8166    }
8167
8168    #[doc = "Port Direction"]
8169    #[inline(always)]
8170    pub fn pdr(
8171        self,
8172    ) -> crate::common::RegisterField<
8173        2,
8174        0x1,
8175        1,
8176        0,
8177        p200pfs::Pdr,
8178        p200pfs::Pdr,
8179        P200Pfs_SPEC,
8180        crate::common::RW,
8181    > {
8182        crate::common::RegisterField::<
8183            2,
8184            0x1,
8185            1,
8186            0,
8187            p200pfs::Pdr,
8188            p200pfs::Pdr,
8189            P200Pfs_SPEC,
8190            crate::common::RW,
8191        >::from_register(self, 0)
8192    }
8193
8194    #[doc = "Pull-up Control"]
8195    #[inline(always)]
8196    pub fn pcr(
8197        self,
8198    ) -> crate::common::RegisterField<
8199        4,
8200        0x1,
8201        1,
8202        0,
8203        p200pfs::Pcr,
8204        p200pfs::Pcr,
8205        P200Pfs_SPEC,
8206        crate::common::RW,
8207    > {
8208        crate::common::RegisterField::<
8209            4,
8210            0x1,
8211            1,
8212            0,
8213            p200pfs::Pcr,
8214            p200pfs::Pcr,
8215            P200Pfs_SPEC,
8216            crate::common::RW,
8217        >::from_register(self, 0)
8218    }
8219
8220    #[doc = "N-Channel Open-Drain Control"]
8221    #[inline(always)]
8222    pub fn ncodr(
8223        self,
8224    ) -> crate::common::RegisterField<
8225        6,
8226        0x1,
8227        1,
8228        0,
8229        p200pfs::Ncodr,
8230        p200pfs::Ncodr,
8231        P200Pfs_SPEC,
8232        crate::common::RW,
8233    > {
8234        crate::common::RegisterField::<
8235            6,
8236            0x1,
8237            1,
8238            0,
8239            p200pfs::Ncodr,
8240            p200pfs::Ncodr,
8241            P200Pfs_SPEC,
8242            crate::common::RW,
8243        >::from_register(self, 0)
8244    }
8245
8246    #[doc = "Event on Falling/Event on Rising"]
8247    #[inline(always)]
8248    pub fn eofr(
8249        self,
8250    ) -> crate::common::RegisterField<
8251        12,
8252        0x3,
8253        1,
8254        0,
8255        p200pfs::Eofr,
8256        p200pfs::Eofr,
8257        P200Pfs_SPEC,
8258        crate::common::RW,
8259    > {
8260        crate::common::RegisterField::<
8261            12,
8262            0x3,
8263            1,
8264            0,
8265            p200pfs::Eofr,
8266            p200pfs::Eofr,
8267            P200Pfs_SPEC,
8268            crate::common::RW,
8269        >::from_register(self, 0)
8270    }
8271
8272    #[doc = "IRQ Input Enable"]
8273    #[inline(always)]
8274    pub fn isel(
8275        self,
8276    ) -> crate::common::RegisterField<
8277        14,
8278        0x1,
8279        1,
8280        0,
8281        p200pfs::Isel,
8282        p200pfs::Isel,
8283        P200Pfs_SPEC,
8284        crate::common::RW,
8285    > {
8286        crate::common::RegisterField::<
8287            14,
8288            0x1,
8289            1,
8290            0,
8291            p200pfs::Isel,
8292            p200pfs::Isel,
8293            P200Pfs_SPEC,
8294            crate::common::RW,
8295        >::from_register(self, 0)
8296    }
8297
8298    #[doc = "Analog Input Enable"]
8299    #[inline(always)]
8300    pub fn asel(
8301        self,
8302    ) -> crate::common::RegisterField<
8303        15,
8304        0x1,
8305        1,
8306        0,
8307        p200pfs::Asel,
8308        p200pfs::Asel,
8309        P200Pfs_SPEC,
8310        crate::common::RW,
8311    > {
8312        crate::common::RegisterField::<
8313            15,
8314            0x1,
8315            1,
8316            0,
8317            p200pfs::Asel,
8318            p200pfs::Asel,
8319            P200Pfs_SPEC,
8320            crate::common::RW,
8321        >::from_register(self, 0)
8322    }
8323
8324    #[doc = "Port Mode Control"]
8325    #[inline(always)]
8326    pub fn pmr(
8327        self,
8328    ) -> crate::common::RegisterField<
8329        16,
8330        0x1,
8331        1,
8332        0,
8333        p200pfs::Pmr,
8334        p200pfs::Pmr,
8335        P200Pfs_SPEC,
8336        crate::common::RW,
8337    > {
8338        crate::common::RegisterField::<
8339            16,
8340            0x1,
8341            1,
8342            0,
8343            p200pfs::Pmr,
8344            p200pfs::Pmr,
8345            P200Pfs_SPEC,
8346            crate::common::RW,
8347        >::from_register(self, 0)
8348    }
8349
8350    #[doc = "Peripheral Select"]
8351    #[inline(always)]
8352    pub fn psel(
8353        self,
8354    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
8355        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
8356    }
8357}
8358impl ::core::default::Default for P200Pfs {
8359    #[inline(always)]
8360    fn default() -> P200Pfs {
8361        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
8362    }
8363}
8364pub mod p200pfs {
8365
8366    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8367    pub struct Podr_SPEC;
8368    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8369    impl Podr {
8370        #[doc = "Output low"]
8371        pub const _0: Self = Self::new(0);
8372
8373        #[doc = "Output high"]
8374        pub const _1: Self = Self::new(1);
8375    }
8376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8377    pub struct Pidr_SPEC;
8378    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8379    impl Pidr {
8380        #[doc = "Low level"]
8381        pub const _0: Self = Self::new(0);
8382
8383        #[doc = "High level"]
8384        pub const _1: Self = Self::new(1);
8385    }
8386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8387    pub struct Pdr_SPEC;
8388    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8389    impl Pdr {
8390        #[doc = "Input (functions as an input pin)"]
8391        pub const _0: Self = Self::new(0);
8392
8393        #[doc = "Output (functions as an output pin)"]
8394        pub const _1: Self = Self::new(1);
8395    }
8396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8397    pub struct Pcr_SPEC;
8398    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8399    impl Pcr {
8400        #[doc = "Disable input pull-up"]
8401        pub const _0: Self = Self::new(0);
8402
8403        #[doc = "Enable input pull-up"]
8404        pub const _1: Self = Self::new(1);
8405    }
8406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8407    pub struct Ncodr_SPEC;
8408    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8409    impl Ncodr {
8410        #[doc = "Output CMOS"]
8411        pub const _0: Self = Self::new(0);
8412
8413        #[doc = "Output NMOS open-drain"]
8414        pub const _1: Self = Self::new(1);
8415    }
8416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8417    pub struct Eofr_SPEC;
8418    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8419    impl Eofr {
8420        #[doc = "Don\'t care"]
8421        pub const _00: Self = Self::new(0);
8422
8423        #[doc = "Detect rising edge"]
8424        pub const _01: Self = Self::new(1);
8425
8426        #[doc = "Detect falling edge"]
8427        pub const _10: Self = Self::new(2);
8428
8429        #[doc = "Detect both edges"]
8430        pub const _11: Self = Self::new(3);
8431    }
8432    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8433    pub struct Isel_SPEC;
8434    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8435    impl Isel {
8436        #[doc = "Do not use as IRQn input pin"]
8437        pub const _0: Self = Self::new(0);
8438
8439        #[doc = "Use as IRQn input pin"]
8440        pub const _1: Self = Self::new(1);
8441    }
8442    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8443    pub struct Asel_SPEC;
8444    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8445    impl Asel {
8446        #[doc = "Do not use as analog pin"]
8447        pub const _0: Self = Self::new(0);
8448
8449        #[doc = "Use as analog pin"]
8450        pub const _1: Self = Self::new(1);
8451    }
8452    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8453    pub struct Pmr_SPEC;
8454    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8455    impl Pmr {
8456        #[doc = "Use as general I/O pin"]
8457        pub const _0: Self = Self::new(0);
8458
8459        #[doc = "Use as I/O port for peripheral functions"]
8460        pub const _1: Self = Self::new(1);
8461    }
8462}
8463#[doc(hidden)]
8464#[derive(Copy, Clone, Eq, PartialEq)]
8465pub struct P200PfsHa_SPEC;
8466impl crate::sealed::RegSpec for P200PfsHa_SPEC {
8467    type DataType = u16;
8468}
8469
8470#[doc = "Port 200 Pin Function Select Register"]
8471pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
8472
8473impl P200PfsHa {
8474    #[doc = "Port Output Data"]
8475    #[inline(always)]
8476    pub fn podr(
8477        self,
8478    ) -> crate::common::RegisterField<
8479        0,
8480        0x1,
8481        1,
8482        0,
8483        p200pfs_ha::Podr,
8484        p200pfs_ha::Podr,
8485        P200PfsHa_SPEC,
8486        crate::common::RW,
8487    > {
8488        crate::common::RegisterField::<
8489            0,
8490            0x1,
8491            1,
8492            0,
8493            p200pfs_ha::Podr,
8494            p200pfs_ha::Podr,
8495            P200PfsHa_SPEC,
8496            crate::common::RW,
8497        >::from_register(self, 0)
8498    }
8499
8500    #[doc = "Port State"]
8501    #[inline(always)]
8502    pub fn pidr(
8503        self,
8504    ) -> crate::common::RegisterField<
8505        1,
8506        0x1,
8507        1,
8508        0,
8509        p200pfs_ha::Pidr,
8510        p200pfs_ha::Pidr,
8511        P200PfsHa_SPEC,
8512        crate::common::R,
8513    > {
8514        crate::common::RegisterField::<
8515            1,
8516            0x1,
8517            1,
8518            0,
8519            p200pfs_ha::Pidr,
8520            p200pfs_ha::Pidr,
8521            P200PfsHa_SPEC,
8522            crate::common::R,
8523        >::from_register(self, 0)
8524    }
8525
8526    #[doc = "Port Direction"]
8527    #[inline(always)]
8528    pub fn pdr(
8529        self,
8530    ) -> crate::common::RegisterField<
8531        2,
8532        0x1,
8533        1,
8534        0,
8535        p200pfs_ha::Pdr,
8536        p200pfs_ha::Pdr,
8537        P200PfsHa_SPEC,
8538        crate::common::RW,
8539    > {
8540        crate::common::RegisterField::<
8541            2,
8542            0x1,
8543            1,
8544            0,
8545            p200pfs_ha::Pdr,
8546            p200pfs_ha::Pdr,
8547            P200PfsHa_SPEC,
8548            crate::common::RW,
8549        >::from_register(self, 0)
8550    }
8551
8552    #[doc = "Pull-up Control"]
8553    #[inline(always)]
8554    pub fn pcr(
8555        self,
8556    ) -> crate::common::RegisterField<
8557        4,
8558        0x1,
8559        1,
8560        0,
8561        p200pfs_ha::Pcr,
8562        p200pfs_ha::Pcr,
8563        P200PfsHa_SPEC,
8564        crate::common::RW,
8565    > {
8566        crate::common::RegisterField::<
8567            4,
8568            0x1,
8569            1,
8570            0,
8571            p200pfs_ha::Pcr,
8572            p200pfs_ha::Pcr,
8573            P200PfsHa_SPEC,
8574            crate::common::RW,
8575        >::from_register(self, 0)
8576    }
8577
8578    #[doc = "N-Channel Open-Drain Control"]
8579    #[inline(always)]
8580    pub fn ncodr(
8581        self,
8582    ) -> crate::common::RegisterField<
8583        6,
8584        0x1,
8585        1,
8586        0,
8587        p200pfs_ha::Ncodr,
8588        p200pfs_ha::Ncodr,
8589        P200PfsHa_SPEC,
8590        crate::common::RW,
8591    > {
8592        crate::common::RegisterField::<
8593            6,
8594            0x1,
8595            1,
8596            0,
8597            p200pfs_ha::Ncodr,
8598            p200pfs_ha::Ncodr,
8599            P200PfsHa_SPEC,
8600            crate::common::RW,
8601        >::from_register(self, 0)
8602    }
8603
8604    #[doc = "Event on Falling/Event on Rising"]
8605    #[inline(always)]
8606    pub fn eofr(
8607        self,
8608    ) -> crate::common::RegisterField<
8609        12,
8610        0x3,
8611        1,
8612        0,
8613        p200pfs_ha::Eofr,
8614        p200pfs_ha::Eofr,
8615        P200PfsHa_SPEC,
8616        crate::common::RW,
8617    > {
8618        crate::common::RegisterField::<
8619            12,
8620            0x3,
8621            1,
8622            0,
8623            p200pfs_ha::Eofr,
8624            p200pfs_ha::Eofr,
8625            P200PfsHa_SPEC,
8626            crate::common::RW,
8627        >::from_register(self, 0)
8628    }
8629
8630    #[doc = "IRQ Input Enable"]
8631    #[inline(always)]
8632    pub fn isel(
8633        self,
8634    ) -> crate::common::RegisterField<
8635        14,
8636        0x1,
8637        1,
8638        0,
8639        p200pfs_ha::Isel,
8640        p200pfs_ha::Isel,
8641        P200PfsHa_SPEC,
8642        crate::common::RW,
8643    > {
8644        crate::common::RegisterField::<
8645            14,
8646            0x1,
8647            1,
8648            0,
8649            p200pfs_ha::Isel,
8650            p200pfs_ha::Isel,
8651            P200PfsHa_SPEC,
8652            crate::common::RW,
8653        >::from_register(self, 0)
8654    }
8655
8656    #[doc = "Analog Input Enable"]
8657    #[inline(always)]
8658    pub fn asel(
8659        self,
8660    ) -> crate::common::RegisterField<
8661        15,
8662        0x1,
8663        1,
8664        0,
8665        p200pfs_ha::Asel,
8666        p200pfs_ha::Asel,
8667        P200PfsHa_SPEC,
8668        crate::common::RW,
8669    > {
8670        crate::common::RegisterField::<
8671            15,
8672            0x1,
8673            1,
8674            0,
8675            p200pfs_ha::Asel,
8676            p200pfs_ha::Asel,
8677            P200PfsHa_SPEC,
8678            crate::common::RW,
8679        >::from_register(self, 0)
8680    }
8681}
8682impl ::core::default::Default for P200PfsHa {
8683    #[inline(always)]
8684    fn default() -> P200PfsHa {
8685        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
8686    }
8687}
8688pub mod p200pfs_ha {
8689
8690    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8691    pub struct Podr_SPEC;
8692    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8693    impl Podr {
8694        #[doc = "Output low"]
8695        pub const _0: Self = Self::new(0);
8696
8697        #[doc = "Output high"]
8698        pub const _1: Self = Self::new(1);
8699    }
8700    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8701    pub struct Pidr_SPEC;
8702    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8703    impl Pidr {
8704        #[doc = "Low level"]
8705        pub const _0: Self = Self::new(0);
8706
8707        #[doc = "High level"]
8708        pub const _1: Self = Self::new(1);
8709    }
8710    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8711    pub struct Pdr_SPEC;
8712    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8713    impl Pdr {
8714        #[doc = "Input (functions as an input pin)"]
8715        pub const _0: Self = Self::new(0);
8716
8717        #[doc = "Output (functions as an output pin)"]
8718        pub const _1: Self = Self::new(1);
8719    }
8720    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8721    pub struct Pcr_SPEC;
8722    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8723    impl Pcr {
8724        #[doc = "Disable input pull-up"]
8725        pub const _0: Self = Self::new(0);
8726
8727        #[doc = "Enable input pull-up"]
8728        pub const _1: Self = Self::new(1);
8729    }
8730    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8731    pub struct Ncodr_SPEC;
8732    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8733    impl Ncodr {
8734        #[doc = "Output CMOS"]
8735        pub const _0: Self = Self::new(0);
8736
8737        #[doc = "Output NMOS open-drain"]
8738        pub const _1: Self = Self::new(1);
8739    }
8740    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8741    pub struct Eofr_SPEC;
8742    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8743    impl Eofr {
8744        #[doc = "Don\'t care"]
8745        pub const _00: Self = Self::new(0);
8746
8747        #[doc = "Detect rising edge"]
8748        pub const _01: Self = Self::new(1);
8749
8750        #[doc = "Detect falling edge"]
8751        pub const _10: Self = Self::new(2);
8752
8753        #[doc = "Detect both edges"]
8754        pub const _11: Self = Self::new(3);
8755    }
8756    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8757    pub struct Isel_SPEC;
8758    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8759    impl Isel {
8760        #[doc = "Do not use as IRQn input pin"]
8761        pub const _0: Self = Self::new(0);
8762
8763        #[doc = "Use as IRQn input pin"]
8764        pub const _1: Self = Self::new(1);
8765    }
8766    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8767    pub struct Asel_SPEC;
8768    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8769    impl Asel {
8770        #[doc = "Do not use as analog pin"]
8771        pub const _0: Self = Self::new(0);
8772
8773        #[doc = "Use as analog pin"]
8774        pub const _1: Self = Self::new(1);
8775    }
8776}
8777#[doc(hidden)]
8778#[derive(Copy, Clone, Eq, PartialEq)]
8779pub struct P200PfsBy_SPEC;
8780impl crate::sealed::RegSpec for P200PfsBy_SPEC {
8781    type DataType = u8;
8782}
8783
8784#[doc = "Port 200 Pin Function Select Register"]
8785pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
8786
8787impl P200PfsBy {
8788    #[doc = "Port Output Data"]
8789    #[inline(always)]
8790    pub fn podr(
8791        self,
8792    ) -> crate::common::RegisterField<
8793        0,
8794        0x1,
8795        1,
8796        0,
8797        p200pfs_by::Podr,
8798        p200pfs_by::Podr,
8799        P200PfsBy_SPEC,
8800        crate::common::RW,
8801    > {
8802        crate::common::RegisterField::<
8803            0,
8804            0x1,
8805            1,
8806            0,
8807            p200pfs_by::Podr,
8808            p200pfs_by::Podr,
8809            P200PfsBy_SPEC,
8810            crate::common::RW,
8811        >::from_register(self, 0)
8812    }
8813
8814    #[doc = "Port State"]
8815    #[inline(always)]
8816    pub fn pidr(
8817        self,
8818    ) -> crate::common::RegisterField<
8819        1,
8820        0x1,
8821        1,
8822        0,
8823        p200pfs_by::Pidr,
8824        p200pfs_by::Pidr,
8825        P200PfsBy_SPEC,
8826        crate::common::R,
8827    > {
8828        crate::common::RegisterField::<
8829            1,
8830            0x1,
8831            1,
8832            0,
8833            p200pfs_by::Pidr,
8834            p200pfs_by::Pidr,
8835            P200PfsBy_SPEC,
8836            crate::common::R,
8837        >::from_register(self, 0)
8838    }
8839
8840    #[doc = "Port Direction"]
8841    #[inline(always)]
8842    pub fn pdr(
8843        self,
8844    ) -> crate::common::RegisterField<
8845        2,
8846        0x1,
8847        1,
8848        0,
8849        p200pfs_by::Pdr,
8850        p200pfs_by::Pdr,
8851        P200PfsBy_SPEC,
8852        crate::common::RW,
8853    > {
8854        crate::common::RegisterField::<
8855            2,
8856            0x1,
8857            1,
8858            0,
8859            p200pfs_by::Pdr,
8860            p200pfs_by::Pdr,
8861            P200PfsBy_SPEC,
8862            crate::common::RW,
8863        >::from_register(self, 0)
8864    }
8865
8866    #[doc = "Pull-up Control"]
8867    #[inline(always)]
8868    pub fn pcr(
8869        self,
8870    ) -> crate::common::RegisterField<
8871        4,
8872        0x1,
8873        1,
8874        0,
8875        p200pfs_by::Pcr,
8876        p200pfs_by::Pcr,
8877        P200PfsBy_SPEC,
8878        crate::common::RW,
8879    > {
8880        crate::common::RegisterField::<
8881            4,
8882            0x1,
8883            1,
8884            0,
8885            p200pfs_by::Pcr,
8886            p200pfs_by::Pcr,
8887            P200PfsBy_SPEC,
8888            crate::common::RW,
8889        >::from_register(self, 0)
8890    }
8891
8892    #[doc = "N-Channel Open-Drain Control"]
8893    #[inline(always)]
8894    pub fn ncodr(
8895        self,
8896    ) -> crate::common::RegisterField<
8897        6,
8898        0x1,
8899        1,
8900        0,
8901        p200pfs_by::Ncodr,
8902        p200pfs_by::Ncodr,
8903        P200PfsBy_SPEC,
8904        crate::common::RW,
8905    > {
8906        crate::common::RegisterField::<
8907            6,
8908            0x1,
8909            1,
8910            0,
8911            p200pfs_by::Ncodr,
8912            p200pfs_by::Ncodr,
8913            P200PfsBy_SPEC,
8914            crate::common::RW,
8915        >::from_register(self, 0)
8916    }
8917}
8918impl ::core::default::Default for P200PfsBy {
8919    #[inline(always)]
8920    fn default() -> P200PfsBy {
8921        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
8922    }
8923}
8924pub mod p200pfs_by {
8925
8926    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8927    pub struct Podr_SPEC;
8928    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8929    impl Podr {
8930        #[doc = "Output low"]
8931        pub const _0: Self = Self::new(0);
8932
8933        #[doc = "Output high"]
8934        pub const _1: Self = Self::new(1);
8935    }
8936    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8937    pub struct Pidr_SPEC;
8938    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8939    impl Pidr {
8940        #[doc = "Low level"]
8941        pub const _0: Self = Self::new(0);
8942
8943        #[doc = "High level"]
8944        pub const _1: Self = Self::new(1);
8945    }
8946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8947    pub struct Pdr_SPEC;
8948    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8949    impl Pdr {
8950        #[doc = "Input (functions as an input pin)"]
8951        pub const _0: Self = Self::new(0);
8952
8953        #[doc = "Output (functions as an output pin)"]
8954        pub const _1: Self = Self::new(1);
8955    }
8956    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8957    pub struct Pcr_SPEC;
8958    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8959    impl Pcr {
8960        #[doc = "Disable input pull-up"]
8961        pub const _0: Self = Self::new(0);
8962
8963        #[doc = "Enable input pull-up"]
8964        pub const _1: Self = Self::new(1);
8965    }
8966    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8967    pub struct Ncodr_SPEC;
8968    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8969    impl Ncodr {
8970        #[doc = "Output CMOS"]
8971        pub const _0: Self = Self::new(0);
8972
8973        #[doc = "Output NMOS open-drain"]
8974        pub const _1: Self = Self::new(1);
8975    }
8976}
8977#[doc(hidden)]
8978#[derive(Copy, Clone, Eq, PartialEq)]
8979pub struct P201Pfs_SPEC;
8980impl crate::sealed::RegSpec for P201Pfs_SPEC {
8981    type DataType = u32;
8982}
8983
8984#[doc = "Port 201 Pin Function Select Register"]
8985pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
8986
8987impl P201Pfs {
8988    #[doc = "Port Output Data"]
8989    #[inline(always)]
8990    pub fn podr(
8991        self,
8992    ) -> crate::common::RegisterField<
8993        0,
8994        0x1,
8995        1,
8996        0,
8997        p201pfs::Podr,
8998        p201pfs::Podr,
8999        P201Pfs_SPEC,
9000        crate::common::RW,
9001    > {
9002        crate::common::RegisterField::<
9003            0,
9004            0x1,
9005            1,
9006            0,
9007            p201pfs::Podr,
9008            p201pfs::Podr,
9009            P201Pfs_SPEC,
9010            crate::common::RW,
9011        >::from_register(self, 0)
9012    }
9013
9014    #[doc = "Port State"]
9015    #[inline(always)]
9016    pub fn pidr(
9017        self,
9018    ) -> crate::common::RegisterField<
9019        1,
9020        0x1,
9021        1,
9022        0,
9023        p201pfs::Pidr,
9024        p201pfs::Pidr,
9025        P201Pfs_SPEC,
9026        crate::common::R,
9027    > {
9028        crate::common::RegisterField::<
9029            1,
9030            0x1,
9031            1,
9032            0,
9033            p201pfs::Pidr,
9034            p201pfs::Pidr,
9035            P201Pfs_SPEC,
9036            crate::common::R,
9037        >::from_register(self, 0)
9038    }
9039
9040    #[doc = "Port Direction"]
9041    #[inline(always)]
9042    pub fn pdr(
9043        self,
9044    ) -> crate::common::RegisterField<
9045        2,
9046        0x1,
9047        1,
9048        0,
9049        p201pfs::Pdr,
9050        p201pfs::Pdr,
9051        P201Pfs_SPEC,
9052        crate::common::RW,
9053    > {
9054        crate::common::RegisterField::<
9055            2,
9056            0x1,
9057            1,
9058            0,
9059            p201pfs::Pdr,
9060            p201pfs::Pdr,
9061            P201Pfs_SPEC,
9062            crate::common::RW,
9063        >::from_register(self, 0)
9064    }
9065
9066    #[doc = "Pull-up Control"]
9067    #[inline(always)]
9068    pub fn pcr(
9069        self,
9070    ) -> crate::common::RegisterField<
9071        4,
9072        0x1,
9073        1,
9074        0,
9075        p201pfs::Pcr,
9076        p201pfs::Pcr,
9077        P201Pfs_SPEC,
9078        crate::common::RW,
9079    > {
9080        crate::common::RegisterField::<
9081            4,
9082            0x1,
9083            1,
9084            0,
9085            p201pfs::Pcr,
9086            p201pfs::Pcr,
9087            P201Pfs_SPEC,
9088            crate::common::RW,
9089        >::from_register(self, 0)
9090    }
9091
9092    #[doc = "N-Channel Open-Drain Control"]
9093    #[inline(always)]
9094    pub fn ncodr(
9095        self,
9096    ) -> crate::common::RegisterField<
9097        6,
9098        0x1,
9099        1,
9100        0,
9101        p201pfs::Ncodr,
9102        p201pfs::Ncodr,
9103        P201Pfs_SPEC,
9104        crate::common::RW,
9105    > {
9106        crate::common::RegisterField::<
9107            6,
9108            0x1,
9109            1,
9110            0,
9111            p201pfs::Ncodr,
9112            p201pfs::Ncodr,
9113            P201Pfs_SPEC,
9114            crate::common::RW,
9115        >::from_register(self, 0)
9116    }
9117
9118    #[doc = "Event on Falling/Event on Rising"]
9119    #[inline(always)]
9120    pub fn eofr(
9121        self,
9122    ) -> crate::common::RegisterField<
9123        12,
9124        0x3,
9125        1,
9126        0,
9127        p201pfs::Eofr,
9128        p201pfs::Eofr,
9129        P201Pfs_SPEC,
9130        crate::common::RW,
9131    > {
9132        crate::common::RegisterField::<
9133            12,
9134            0x3,
9135            1,
9136            0,
9137            p201pfs::Eofr,
9138            p201pfs::Eofr,
9139            P201Pfs_SPEC,
9140            crate::common::RW,
9141        >::from_register(self, 0)
9142    }
9143
9144    #[doc = "IRQ Input Enable"]
9145    #[inline(always)]
9146    pub fn isel(
9147        self,
9148    ) -> crate::common::RegisterField<
9149        14,
9150        0x1,
9151        1,
9152        0,
9153        p201pfs::Isel,
9154        p201pfs::Isel,
9155        P201Pfs_SPEC,
9156        crate::common::RW,
9157    > {
9158        crate::common::RegisterField::<
9159            14,
9160            0x1,
9161            1,
9162            0,
9163            p201pfs::Isel,
9164            p201pfs::Isel,
9165            P201Pfs_SPEC,
9166            crate::common::RW,
9167        >::from_register(self, 0)
9168    }
9169
9170    #[doc = "Analog Input Enable"]
9171    #[inline(always)]
9172    pub fn asel(
9173        self,
9174    ) -> crate::common::RegisterField<
9175        15,
9176        0x1,
9177        1,
9178        0,
9179        p201pfs::Asel,
9180        p201pfs::Asel,
9181        P201Pfs_SPEC,
9182        crate::common::RW,
9183    > {
9184        crate::common::RegisterField::<
9185            15,
9186            0x1,
9187            1,
9188            0,
9189            p201pfs::Asel,
9190            p201pfs::Asel,
9191            P201Pfs_SPEC,
9192            crate::common::RW,
9193        >::from_register(self, 0)
9194    }
9195
9196    #[doc = "Port Mode Control"]
9197    #[inline(always)]
9198    pub fn pmr(
9199        self,
9200    ) -> crate::common::RegisterField<
9201        16,
9202        0x1,
9203        1,
9204        0,
9205        p201pfs::Pmr,
9206        p201pfs::Pmr,
9207        P201Pfs_SPEC,
9208        crate::common::RW,
9209    > {
9210        crate::common::RegisterField::<
9211            16,
9212            0x1,
9213            1,
9214            0,
9215            p201pfs::Pmr,
9216            p201pfs::Pmr,
9217            P201Pfs_SPEC,
9218            crate::common::RW,
9219        >::from_register(self, 0)
9220    }
9221
9222    #[doc = "Peripheral Select"]
9223    #[inline(always)]
9224    pub fn psel(
9225        self,
9226    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
9227        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
9228    }
9229}
9230impl ::core::default::Default for P201Pfs {
9231    #[inline(always)]
9232    fn default() -> P201Pfs {
9233        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
9234    }
9235}
9236pub mod p201pfs {
9237
9238    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9239    pub struct Podr_SPEC;
9240    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9241    impl Podr {
9242        #[doc = "Output low"]
9243        pub const _0: Self = Self::new(0);
9244
9245        #[doc = "Output high"]
9246        pub const _1: Self = Self::new(1);
9247    }
9248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9249    pub struct Pidr_SPEC;
9250    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9251    impl Pidr {
9252        #[doc = "Low level"]
9253        pub const _0: Self = Self::new(0);
9254
9255        #[doc = "High level"]
9256        pub const _1: Self = Self::new(1);
9257    }
9258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9259    pub struct Pdr_SPEC;
9260    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9261    impl Pdr {
9262        #[doc = "Input (functions as an input pin)"]
9263        pub const _0: Self = Self::new(0);
9264
9265        #[doc = "Output (functions as an output pin)"]
9266        pub const _1: Self = Self::new(1);
9267    }
9268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9269    pub struct Pcr_SPEC;
9270    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9271    impl Pcr {
9272        #[doc = "Disable input pull-up"]
9273        pub const _0: Self = Self::new(0);
9274
9275        #[doc = "Enable input pull-up"]
9276        pub const _1: Self = Self::new(1);
9277    }
9278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9279    pub struct Ncodr_SPEC;
9280    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9281    impl Ncodr {
9282        #[doc = "Output CMOS"]
9283        pub const _0: Self = Self::new(0);
9284
9285        #[doc = "Output NMOS open-drain"]
9286        pub const _1: Self = Self::new(1);
9287    }
9288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9289    pub struct Eofr_SPEC;
9290    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9291    impl Eofr {
9292        #[doc = "Don\'t care"]
9293        pub const _00: Self = Self::new(0);
9294
9295        #[doc = "Detect rising edge"]
9296        pub const _01: Self = Self::new(1);
9297
9298        #[doc = "Detect falling edge"]
9299        pub const _10: Self = Self::new(2);
9300
9301        #[doc = "Detect both edges"]
9302        pub const _11: Self = Self::new(3);
9303    }
9304    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9305    pub struct Isel_SPEC;
9306    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9307    impl Isel {
9308        #[doc = "Do not use as IRQn input pin"]
9309        pub const _0: Self = Self::new(0);
9310
9311        #[doc = "Use as IRQn input pin"]
9312        pub const _1: Self = Self::new(1);
9313    }
9314    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9315    pub struct Asel_SPEC;
9316    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9317    impl Asel {
9318        #[doc = "Do not use as analog pin"]
9319        pub const _0: Self = Self::new(0);
9320
9321        #[doc = "Use as analog pin"]
9322        pub const _1: Self = Self::new(1);
9323    }
9324    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9325    pub struct Pmr_SPEC;
9326    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9327    impl Pmr {
9328        #[doc = "Use as general I/O pin"]
9329        pub const _0: Self = Self::new(0);
9330
9331        #[doc = "Use as I/O port for peripheral functions"]
9332        pub const _1: Self = Self::new(1);
9333    }
9334}
9335#[doc(hidden)]
9336#[derive(Copy, Clone, Eq, PartialEq)]
9337pub struct P201PfsHa_SPEC;
9338impl crate::sealed::RegSpec for P201PfsHa_SPEC {
9339    type DataType = u16;
9340}
9341
9342#[doc = "Port 201 Pin Function Select Register"]
9343pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
9344
9345impl P201PfsHa {
9346    #[doc = "Port Output Data"]
9347    #[inline(always)]
9348    pub fn podr(
9349        self,
9350    ) -> crate::common::RegisterField<
9351        0,
9352        0x1,
9353        1,
9354        0,
9355        p201pfs_ha::Podr,
9356        p201pfs_ha::Podr,
9357        P201PfsHa_SPEC,
9358        crate::common::RW,
9359    > {
9360        crate::common::RegisterField::<
9361            0,
9362            0x1,
9363            1,
9364            0,
9365            p201pfs_ha::Podr,
9366            p201pfs_ha::Podr,
9367            P201PfsHa_SPEC,
9368            crate::common::RW,
9369        >::from_register(self, 0)
9370    }
9371
9372    #[doc = "Port State"]
9373    #[inline(always)]
9374    pub fn pidr(
9375        self,
9376    ) -> crate::common::RegisterField<
9377        1,
9378        0x1,
9379        1,
9380        0,
9381        p201pfs_ha::Pidr,
9382        p201pfs_ha::Pidr,
9383        P201PfsHa_SPEC,
9384        crate::common::R,
9385    > {
9386        crate::common::RegisterField::<
9387            1,
9388            0x1,
9389            1,
9390            0,
9391            p201pfs_ha::Pidr,
9392            p201pfs_ha::Pidr,
9393            P201PfsHa_SPEC,
9394            crate::common::R,
9395        >::from_register(self, 0)
9396    }
9397
9398    #[doc = "Port Direction"]
9399    #[inline(always)]
9400    pub fn pdr(
9401        self,
9402    ) -> crate::common::RegisterField<
9403        2,
9404        0x1,
9405        1,
9406        0,
9407        p201pfs_ha::Pdr,
9408        p201pfs_ha::Pdr,
9409        P201PfsHa_SPEC,
9410        crate::common::RW,
9411    > {
9412        crate::common::RegisterField::<
9413            2,
9414            0x1,
9415            1,
9416            0,
9417            p201pfs_ha::Pdr,
9418            p201pfs_ha::Pdr,
9419            P201PfsHa_SPEC,
9420            crate::common::RW,
9421        >::from_register(self, 0)
9422    }
9423
9424    #[doc = "Pull-up Control"]
9425    #[inline(always)]
9426    pub fn pcr(
9427        self,
9428    ) -> crate::common::RegisterField<
9429        4,
9430        0x1,
9431        1,
9432        0,
9433        p201pfs_ha::Pcr,
9434        p201pfs_ha::Pcr,
9435        P201PfsHa_SPEC,
9436        crate::common::RW,
9437    > {
9438        crate::common::RegisterField::<
9439            4,
9440            0x1,
9441            1,
9442            0,
9443            p201pfs_ha::Pcr,
9444            p201pfs_ha::Pcr,
9445            P201PfsHa_SPEC,
9446            crate::common::RW,
9447        >::from_register(self, 0)
9448    }
9449
9450    #[doc = "N-Channel Open-Drain Control"]
9451    #[inline(always)]
9452    pub fn ncodr(
9453        self,
9454    ) -> crate::common::RegisterField<
9455        6,
9456        0x1,
9457        1,
9458        0,
9459        p201pfs_ha::Ncodr,
9460        p201pfs_ha::Ncodr,
9461        P201PfsHa_SPEC,
9462        crate::common::RW,
9463    > {
9464        crate::common::RegisterField::<
9465            6,
9466            0x1,
9467            1,
9468            0,
9469            p201pfs_ha::Ncodr,
9470            p201pfs_ha::Ncodr,
9471            P201PfsHa_SPEC,
9472            crate::common::RW,
9473        >::from_register(self, 0)
9474    }
9475
9476    #[doc = "Event on Falling/Event on Rising"]
9477    #[inline(always)]
9478    pub fn eofr(
9479        self,
9480    ) -> crate::common::RegisterField<
9481        12,
9482        0x3,
9483        1,
9484        0,
9485        p201pfs_ha::Eofr,
9486        p201pfs_ha::Eofr,
9487        P201PfsHa_SPEC,
9488        crate::common::RW,
9489    > {
9490        crate::common::RegisterField::<
9491            12,
9492            0x3,
9493            1,
9494            0,
9495            p201pfs_ha::Eofr,
9496            p201pfs_ha::Eofr,
9497            P201PfsHa_SPEC,
9498            crate::common::RW,
9499        >::from_register(self, 0)
9500    }
9501
9502    #[doc = "IRQ Input Enable"]
9503    #[inline(always)]
9504    pub fn isel(
9505        self,
9506    ) -> crate::common::RegisterField<
9507        14,
9508        0x1,
9509        1,
9510        0,
9511        p201pfs_ha::Isel,
9512        p201pfs_ha::Isel,
9513        P201PfsHa_SPEC,
9514        crate::common::RW,
9515    > {
9516        crate::common::RegisterField::<
9517            14,
9518            0x1,
9519            1,
9520            0,
9521            p201pfs_ha::Isel,
9522            p201pfs_ha::Isel,
9523            P201PfsHa_SPEC,
9524            crate::common::RW,
9525        >::from_register(self, 0)
9526    }
9527
9528    #[doc = "Analog Input Enable"]
9529    #[inline(always)]
9530    pub fn asel(
9531        self,
9532    ) -> crate::common::RegisterField<
9533        15,
9534        0x1,
9535        1,
9536        0,
9537        p201pfs_ha::Asel,
9538        p201pfs_ha::Asel,
9539        P201PfsHa_SPEC,
9540        crate::common::RW,
9541    > {
9542        crate::common::RegisterField::<
9543            15,
9544            0x1,
9545            1,
9546            0,
9547            p201pfs_ha::Asel,
9548            p201pfs_ha::Asel,
9549            P201PfsHa_SPEC,
9550            crate::common::RW,
9551        >::from_register(self, 0)
9552    }
9553}
9554impl ::core::default::Default for P201PfsHa {
9555    #[inline(always)]
9556    fn default() -> P201PfsHa {
9557        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
9558    }
9559}
9560pub mod p201pfs_ha {
9561
9562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9563    pub struct Podr_SPEC;
9564    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9565    impl Podr {
9566        #[doc = "Output low"]
9567        pub const _0: Self = Self::new(0);
9568
9569        #[doc = "Output high"]
9570        pub const _1: Self = Self::new(1);
9571    }
9572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9573    pub struct Pidr_SPEC;
9574    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9575    impl Pidr {
9576        #[doc = "Low level"]
9577        pub const _0: Self = Self::new(0);
9578
9579        #[doc = "High level"]
9580        pub const _1: Self = Self::new(1);
9581    }
9582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9583    pub struct Pdr_SPEC;
9584    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9585    impl Pdr {
9586        #[doc = "Input (functions as an input pin)"]
9587        pub const _0: Self = Self::new(0);
9588
9589        #[doc = "Output (functions as an output pin)"]
9590        pub const _1: Self = Self::new(1);
9591    }
9592    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9593    pub struct Pcr_SPEC;
9594    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9595    impl Pcr {
9596        #[doc = "Disable input pull-up"]
9597        pub const _0: Self = Self::new(0);
9598
9599        #[doc = "Enable input pull-up"]
9600        pub const _1: Self = Self::new(1);
9601    }
9602    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9603    pub struct Ncodr_SPEC;
9604    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9605    impl Ncodr {
9606        #[doc = "Output CMOS"]
9607        pub const _0: Self = Self::new(0);
9608
9609        #[doc = "Output NMOS open-drain"]
9610        pub const _1: Self = Self::new(1);
9611    }
9612    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9613    pub struct Eofr_SPEC;
9614    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9615    impl Eofr {
9616        #[doc = "Don\'t care"]
9617        pub const _00: Self = Self::new(0);
9618
9619        #[doc = "Detect rising edge"]
9620        pub const _01: Self = Self::new(1);
9621
9622        #[doc = "Detect falling edge"]
9623        pub const _10: Self = Self::new(2);
9624
9625        #[doc = "Detect both edges"]
9626        pub const _11: Self = Self::new(3);
9627    }
9628    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9629    pub struct Isel_SPEC;
9630    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9631    impl Isel {
9632        #[doc = "Do not use as IRQn input pin"]
9633        pub const _0: Self = Self::new(0);
9634
9635        #[doc = "Use as IRQn input pin"]
9636        pub const _1: Self = Self::new(1);
9637    }
9638    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9639    pub struct Asel_SPEC;
9640    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9641    impl Asel {
9642        #[doc = "Do not use as analog pin"]
9643        pub const _0: Self = Self::new(0);
9644
9645        #[doc = "Use as analog pin"]
9646        pub const _1: Self = Self::new(1);
9647    }
9648}
9649#[doc(hidden)]
9650#[derive(Copy, Clone, Eq, PartialEq)]
9651pub struct P201PfsBy_SPEC;
9652impl crate::sealed::RegSpec for P201PfsBy_SPEC {
9653    type DataType = u8;
9654}
9655
9656#[doc = "Port 201 Pin Function Select Register"]
9657pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
9658
9659impl P201PfsBy {
9660    #[doc = "Port Output Data"]
9661    #[inline(always)]
9662    pub fn podr(
9663        self,
9664    ) -> crate::common::RegisterField<
9665        0,
9666        0x1,
9667        1,
9668        0,
9669        p201pfs_by::Podr,
9670        p201pfs_by::Podr,
9671        P201PfsBy_SPEC,
9672        crate::common::RW,
9673    > {
9674        crate::common::RegisterField::<
9675            0,
9676            0x1,
9677            1,
9678            0,
9679            p201pfs_by::Podr,
9680            p201pfs_by::Podr,
9681            P201PfsBy_SPEC,
9682            crate::common::RW,
9683        >::from_register(self, 0)
9684    }
9685
9686    #[doc = "Port State"]
9687    #[inline(always)]
9688    pub fn pidr(
9689        self,
9690    ) -> crate::common::RegisterField<
9691        1,
9692        0x1,
9693        1,
9694        0,
9695        p201pfs_by::Pidr,
9696        p201pfs_by::Pidr,
9697        P201PfsBy_SPEC,
9698        crate::common::R,
9699    > {
9700        crate::common::RegisterField::<
9701            1,
9702            0x1,
9703            1,
9704            0,
9705            p201pfs_by::Pidr,
9706            p201pfs_by::Pidr,
9707            P201PfsBy_SPEC,
9708            crate::common::R,
9709        >::from_register(self, 0)
9710    }
9711
9712    #[doc = "Port Direction"]
9713    #[inline(always)]
9714    pub fn pdr(
9715        self,
9716    ) -> crate::common::RegisterField<
9717        2,
9718        0x1,
9719        1,
9720        0,
9721        p201pfs_by::Pdr,
9722        p201pfs_by::Pdr,
9723        P201PfsBy_SPEC,
9724        crate::common::RW,
9725    > {
9726        crate::common::RegisterField::<
9727            2,
9728            0x1,
9729            1,
9730            0,
9731            p201pfs_by::Pdr,
9732            p201pfs_by::Pdr,
9733            P201PfsBy_SPEC,
9734            crate::common::RW,
9735        >::from_register(self, 0)
9736    }
9737
9738    #[doc = "Pull-up Control"]
9739    #[inline(always)]
9740    pub fn pcr(
9741        self,
9742    ) -> crate::common::RegisterField<
9743        4,
9744        0x1,
9745        1,
9746        0,
9747        p201pfs_by::Pcr,
9748        p201pfs_by::Pcr,
9749        P201PfsBy_SPEC,
9750        crate::common::RW,
9751    > {
9752        crate::common::RegisterField::<
9753            4,
9754            0x1,
9755            1,
9756            0,
9757            p201pfs_by::Pcr,
9758            p201pfs_by::Pcr,
9759            P201PfsBy_SPEC,
9760            crate::common::RW,
9761        >::from_register(self, 0)
9762    }
9763
9764    #[doc = "N-Channel Open-Drain Control"]
9765    #[inline(always)]
9766    pub fn ncodr(
9767        self,
9768    ) -> crate::common::RegisterField<
9769        6,
9770        0x1,
9771        1,
9772        0,
9773        p201pfs_by::Ncodr,
9774        p201pfs_by::Ncodr,
9775        P201PfsBy_SPEC,
9776        crate::common::RW,
9777    > {
9778        crate::common::RegisterField::<
9779            6,
9780            0x1,
9781            1,
9782            0,
9783            p201pfs_by::Ncodr,
9784            p201pfs_by::Ncodr,
9785            P201PfsBy_SPEC,
9786            crate::common::RW,
9787        >::from_register(self, 0)
9788    }
9789}
9790impl ::core::default::Default for P201PfsBy {
9791    #[inline(always)]
9792    fn default() -> P201PfsBy {
9793        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
9794    }
9795}
9796pub mod p201pfs_by {
9797
9798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9799    pub struct Podr_SPEC;
9800    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9801    impl Podr {
9802        #[doc = "Output low"]
9803        pub const _0: Self = Self::new(0);
9804
9805        #[doc = "Output high"]
9806        pub const _1: Self = Self::new(1);
9807    }
9808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9809    pub struct Pidr_SPEC;
9810    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9811    impl Pidr {
9812        #[doc = "Low level"]
9813        pub const _0: Self = Self::new(0);
9814
9815        #[doc = "High level"]
9816        pub const _1: Self = Self::new(1);
9817    }
9818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9819    pub struct Pdr_SPEC;
9820    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9821    impl Pdr {
9822        #[doc = "Input (functions as an input pin)"]
9823        pub const _0: Self = Self::new(0);
9824
9825        #[doc = "Output (functions as an output pin)"]
9826        pub const _1: Self = Self::new(1);
9827    }
9828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9829    pub struct Pcr_SPEC;
9830    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9831    impl Pcr {
9832        #[doc = "Disable input pull-up"]
9833        pub const _0: Self = Self::new(0);
9834
9835        #[doc = "Enable input pull-up"]
9836        pub const _1: Self = Self::new(1);
9837    }
9838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9839    pub struct Ncodr_SPEC;
9840    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9841    impl Ncodr {
9842        #[doc = "Output CMOS"]
9843        pub const _0: Self = Self::new(0);
9844
9845        #[doc = "Output NMOS open-drain"]
9846        pub const _1: Self = Self::new(1);
9847    }
9848}
9849#[doc(hidden)]
9850#[derive(Copy, Clone, Eq, PartialEq)]
9851pub struct P20Pfs_SPEC;
9852impl crate::sealed::RegSpec for P20Pfs_SPEC {
9853    type DataType = u32;
9854}
9855
9856#[doc = "Port 20%s Pin Function Select Register"]
9857pub type P20Pfs = crate::RegValueT<P20Pfs_SPEC>;
9858
9859impl P20Pfs {
9860    #[doc = "Port Output Data"]
9861    #[inline(always)]
9862    pub fn podr(
9863        self,
9864    ) -> crate::common::RegisterField<
9865        0,
9866        0x1,
9867        1,
9868        0,
9869        p20pfs::Podr,
9870        p20pfs::Podr,
9871        P20Pfs_SPEC,
9872        crate::common::RW,
9873    > {
9874        crate::common::RegisterField::<
9875            0,
9876            0x1,
9877            1,
9878            0,
9879            p20pfs::Podr,
9880            p20pfs::Podr,
9881            P20Pfs_SPEC,
9882            crate::common::RW,
9883        >::from_register(self, 0)
9884    }
9885
9886    #[doc = "Port State"]
9887    #[inline(always)]
9888    pub fn pidr(
9889        self,
9890    ) -> crate::common::RegisterField<
9891        1,
9892        0x1,
9893        1,
9894        0,
9895        p20pfs::Pidr,
9896        p20pfs::Pidr,
9897        P20Pfs_SPEC,
9898        crate::common::R,
9899    > {
9900        crate::common::RegisterField::<
9901            1,
9902            0x1,
9903            1,
9904            0,
9905            p20pfs::Pidr,
9906            p20pfs::Pidr,
9907            P20Pfs_SPEC,
9908            crate::common::R,
9909        >::from_register(self, 0)
9910    }
9911
9912    #[doc = "Port Direction"]
9913    #[inline(always)]
9914    pub fn pdr(
9915        self,
9916    ) -> crate::common::RegisterField<
9917        2,
9918        0x1,
9919        1,
9920        0,
9921        p20pfs::Pdr,
9922        p20pfs::Pdr,
9923        P20Pfs_SPEC,
9924        crate::common::RW,
9925    > {
9926        crate::common::RegisterField::<
9927            2,
9928            0x1,
9929            1,
9930            0,
9931            p20pfs::Pdr,
9932            p20pfs::Pdr,
9933            P20Pfs_SPEC,
9934            crate::common::RW,
9935        >::from_register(self, 0)
9936    }
9937
9938    #[doc = "Pull-up Control"]
9939    #[inline(always)]
9940    pub fn pcr(
9941        self,
9942    ) -> crate::common::RegisterField<
9943        4,
9944        0x1,
9945        1,
9946        0,
9947        p20pfs::Pcr,
9948        p20pfs::Pcr,
9949        P20Pfs_SPEC,
9950        crate::common::RW,
9951    > {
9952        crate::common::RegisterField::<
9953            4,
9954            0x1,
9955            1,
9956            0,
9957            p20pfs::Pcr,
9958            p20pfs::Pcr,
9959            P20Pfs_SPEC,
9960            crate::common::RW,
9961        >::from_register(self, 0)
9962    }
9963
9964    #[doc = "N-Channel Open-Drain Control"]
9965    #[inline(always)]
9966    pub fn ncodr(
9967        self,
9968    ) -> crate::common::RegisterField<
9969        6,
9970        0x1,
9971        1,
9972        0,
9973        p20pfs::Ncodr,
9974        p20pfs::Ncodr,
9975        P20Pfs_SPEC,
9976        crate::common::RW,
9977    > {
9978        crate::common::RegisterField::<
9979            6,
9980            0x1,
9981            1,
9982            0,
9983            p20pfs::Ncodr,
9984            p20pfs::Ncodr,
9985            P20Pfs_SPEC,
9986            crate::common::RW,
9987        >::from_register(self, 0)
9988    }
9989
9990    #[doc = "Event on Falling/Event on Rising"]
9991    #[inline(always)]
9992    pub fn eofr(
9993        self,
9994    ) -> crate::common::RegisterField<
9995        12,
9996        0x3,
9997        1,
9998        0,
9999        p20pfs::Eofr,
10000        p20pfs::Eofr,
10001        P20Pfs_SPEC,
10002        crate::common::RW,
10003    > {
10004        crate::common::RegisterField::<
10005            12,
10006            0x3,
10007            1,
10008            0,
10009            p20pfs::Eofr,
10010            p20pfs::Eofr,
10011            P20Pfs_SPEC,
10012            crate::common::RW,
10013        >::from_register(self, 0)
10014    }
10015
10016    #[doc = "IRQ Input Enable"]
10017    #[inline(always)]
10018    pub fn isel(
10019        self,
10020    ) -> crate::common::RegisterField<
10021        14,
10022        0x1,
10023        1,
10024        0,
10025        p20pfs::Isel,
10026        p20pfs::Isel,
10027        P20Pfs_SPEC,
10028        crate::common::RW,
10029    > {
10030        crate::common::RegisterField::<
10031            14,
10032            0x1,
10033            1,
10034            0,
10035            p20pfs::Isel,
10036            p20pfs::Isel,
10037            P20Pfs_SPEC,
10038            crate::common::RW,
10039        >::from_register(self, 0)
10040    }
10041
10042    #[doc = "Analog Input Enable"]
10043    #[inline(always)]
10044    pub fn asel(
10045        self,
10046    ) -> crate::common::RegisterField<
10047        15,
10048        0x1,
10049        1,
10050        0,
10051        p20pfs::Asel,
10052        p20pfs::Asel,
10053        P20Pfs_SPEC,
10054        crate::common::RW,
10055    > {
10056        crate::common::RegisterField::<
10057            15,
10058            0x1,
10059            1,
10060            0,
10061            p20pfs::Asel,
10062            p20pfs::Asel,
10063            P20Pfs_SPEC,
10064            crate::common::RW,
10065        >::from_register(self, 0)
10066    }
10067
10068    #[doc = "Port Mode Control"]
10069    #[inline(always)]
10070    pub fn pmr(
10071        self,
10072    ) -> crate::common::RegisterField<
10073        16,
10074        0x1,
10075        1,
10076        0,
10077        p20pfs::Pmr,
10078        p20pfs::Pmr,
10079        P20Pfs_SPEC,
10080        crate::common::RW,
10081    > {
10082        crate::common::RegisterField::<
10083            16,
10084            0x1,
10085            1,
10086            0,
10087            p20pfs::Pmr,
10088            p20pfs::Pmr,
10089            P20Pfs_SPEC,
10090            crate::common::RW,
10091        >::from_register(self, 0)
10092    }
10093
10094    #[doc = "Peripheral Select"]
10095    #[inline(always)]
10096    pub fn psel(
10097        self,
10098    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P20Pfs_SPEC, crate::common::RW> {
10099        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P20Pfs_SPEC,crate::common::RW>::from_register(self,0)
10100    }
10101}
10102impl ::core::default::Default for P20Pfs {
10103    #[inline(always)]
10104    fn default() -> P20Pfs {
10105        <crate::RegValueT<P20Pfs_SPEC> as RegisterValue<_>>::new(0)
10106    }
10107}
10108pub mod p20pfs {
10109
10110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10111    pub struct Podr_SPEC;
10112    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10113    impl Podr {
10114        #[doc = "Output low"]
10115        pub const _0: Self = Self::new(0);
10116
10117        #[doc = "Output high"]
10118        pub const _1: Self = Self::new(1);
10119    }
10120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10121    pub struct Pidr_SPEC;
10122    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10123    impl Pidr {
10124        #[doc = "Low level"]
10125        pub const _0: Self = Self::new(0);
10126
10127        #[doc = "High level"]
10128        pub const _1: Self = Self::new(1);
10129    }
10130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10131    pub struct Pdr_SPEC;
10132    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10133    impl Pdr {
10134        #[doc = "Input (functions as an input pin)"]
10135        pub const _0: Self = Self::new(0);
10136
10137        #[doc = "Output (functions as an output pin)"]
10138        pub const _1: Self = Self::new(1);
10139    }
10140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10141    pub struct Pcr_SPEC;
10142    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10143    impl Pcr {
10144        #[doc = "Disable input pull-up"]
10145        pub const _0: Self = Self::new(0);
10146
10147        #[doc = "Enable input pull-up"]
10148        pub const _1: Self = Self::new(1);
10149    }
10150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10151    pub struct Ncodr_SPEC;
10152    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10153    impl Ncodr {
10154        #[doc = "Output CMOS"]
10155        pub const _0: Self = Self::new(0);
10156
10157        #[doc = "Output NMOS open-drain"]
10158        pub const _1: Self = Self::new(1);
10159    }
10160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10161    pub struct Eofr_SPEC;
10162    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10163    impl Eofr {
10164        #[doc = "Don\'t care"]
10165        pub const _00: Self = Self::new(0);
10166
10167        #[doc = "Detect rising edge"]
10168        pub const _01: Self = Self::new(1);
10169
10170        #[doc = "Detect falling edge"]
10171        pub const _10: Self = Self::new(2);
10172
10173        #[doc = "Detect both edges"]
10174        pub const _11: Self = Self::new(3);
10175    }
10176    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10177    pub struct Isel_SPEC;
10178    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10179    impl Isel {
10180        #[doc = "Do not use as IRQn input pin"]
10181        pub const _0: Self = Self::new(0);
10182
10183        #[doc = "Use as IRQn input pin"]
10184        pub const _1: Self = Self::new(1);
10185    }
10186    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10187    pub struct Asel_SPEC;
10188    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10189    impl Asel {
10190        #[doc = "Do not use as analog pin"]
10191        pub const _0: Self = Self::new(0);
10192
10193        #[doc = "Use as analog pin"]
10194        pub const _1: Self = Self::new(1);
10195    }
10196    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10197    pub struct Pmr_SPEC;
10198    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
10199    impl Pmr {
10200        #[doc = "Use as general I/O pin"]
10201        pub const _0: Self = Self::new(0);
10202
10203        #[doc = "Use as I/O port for peripheral functions"]
10204        pub const _1: Self = Self::new(1);
10205    }
10206}
10207#[doc(hidden)]
10208#[derive(Copy, Clone, Eq, PartialEq)]
10209pub struct P20PfsHa_SPEC;
10210impl crate::sealed::RegSpec for P20PfsHa_SPEC {
10211    type DataType = u16;
10212}
10213
10214#[doc = "Port 20%s Pin Function Select Register"]
10215pub type P20PfsHa = crate::RegValueT<P20PfsHa_SPEC>;
10216
10217impl P20PfsHa {
10218    #[doc = "Port Output Data"]
10219    #[inline(always)]
10220    pub fn podr(
10221        self,
10222    ) -> crate::common::RegisterField<
10223        0,
10224        0x1,
10225        1,
10226        0,
10227        p20pfs_ha::Podr,
10228        p20pfs_ha::Podr,
10229        P20PfsHa_SPEC,
10230        crate::common::RW,
10231    > {
10232        crate::common::RegisterField::<
10233            0,
10234            0x1,
10235            1,
10236            0,
10237            p20pfs_ha::Podr,
10238            p20pfs_ha::Podr,
10239            P20PfsHa_SPEC,
10240            crate::common::RW,
10241        >::from_register(self, 0)
10242    }
10243
10244    #[doc = "Port State"]
10245    #[inline(always)]
10246    pub fn pidr(
10247        self,
10248    ) -> crate::common::RegisterField<
10249        1,
10250        0x1,
10251        1,
10252        0,
10253        p20pfs_ha::Pidr,
10254        p20pfs_ha::Pidr,
10255        P20PfsHa_SPEC,
10256        crate::common::R,
10257    > {
10258        crate::common::RegisterField::<
10259            1,
10260            0x1,
10261            1,
10262            0,
10263            p20pfs_ha::Pidr,
10264            p20pfs_ha::Pidr,
10265            P20PfsHa_SPEC,
10266            crate::common::R,
10267        >::from_register(self, 0)
10268    }
10269
10270    #[doc = "Port Direction"]
10271    #[inline(always)]
10272    pub fn pdr(
10273        self,
10274    ) -> crate::common::RegisterField<
10275        2,
10276        0x1,
10277        1,
10278        0,
10279        p20pfs_ha::Pdr,
10280        p20pfs_ha::Pdr,
10281        P20PfsHa_SPEC,
10282        crate::common::RW,
10283    > {
10284        crate::common::RegisterField::<
10285            2,
10286            0x1,
10287            1,
10288            0,
10289            p20pfs_ha::Pdr,
10290            p20pfs_ha::Pdr,
10291            P20PfsHa_SPEC,
10292            crate::common::RW,
10293        >::from_register(self, 0)
10294    }
10295
10296    #[doc = "Pull-up Control"]
10297    #[inline(always)]
10298    pub fn pcr(
10299        self,
10300    ) -> crate::common::RegisterField<
10301        4,
10302        0x1,
10303        1,
10304        0,
10305        p20pfs_ha::Pcr,
10306        p20pfs_ha::Pcr,
10307        P20PfsHa_SPEC,
10308        crate::common::RW,
10309    > {
10310        crate::common::RegisterField::<
10311            4,
10312            0x1,
10313            1,
10314            0,
10315            p20pfs_ha::Pcr,
10316            p20pfs_ha::Pcr,
10317            P20PfsHa_SPEC,
10318            crate::common::RW,
10319        >::from_register(self, 0)
10320    }
10321
10322    #[doc = "N-Channel Open-Drain Control"]
10323    #[inline(always)]
10324    pub fn ncodr(
10325        self,
10326    ) -> crate::common::RegisterField<
10327        6,
10328        0x1,
10329        1,
10330        0,
10331        p20pfs_ha::Ncodr,
10332        p20pfs_ha::Ncodr,
10333        P20PfsHa_SPEC,
10334        crate::common::RW,
10335    > {
10336        crate::common::RegisterField::<
10337            6,
10338            0x1,
10339            1,
10340            0,
10341            p20pfs_ha::Ncodr,
10342            p20pfs_ha::Ncodr,
10343            P20PfsHa_SPEC,
10344            crate::common::RW,
10345        >::from_register(self, 0)
10346    }
10347
10348    #[doc = "Event on Falling/Event on Rising"]
10349    #[inline(always)]
10350    pub fn eofr(
10351        self,
10352    ) -> crate::common::RegisterField<
10353        12,
10354        0x3,
10355        1,
10356        0,
10357        p20pfs_ha::Eofr,
10358        p20pfs_ha::Eofr,
10359        P20PfsHa_SPEC,
10360        crate::common::RW,
10361    > {
10362        crate::common::RegisterField::<
10363            12,
10364            0x3,
10365            1,
10366            0,
10367            p20pfs_ha::Eofr,
10368            p20pfs_ha::Eofr,
10369            P20PfsHa_SPEC,
10370            crate::common::RW,
10371        >::from_register(self, 0)
10372    }
10373
10374    #[doc = "IRQ Input Enable"]
10375    #[inline(always)]
10376    pub fn isel(
10377        self,
10378    ) -> crate::common::RegisterField<
10379        14,
10380        0x1,
10381        1,
10382        0,
10383        p20pfs_ha::Isel,
10384        p20pfs_ha::Isel,
10385        P20PfsHa_SPEC,
10386        crate::common::RW,
10387    > {
10388        crate::common::RegisterField::<
10389            14,
10390            0x1,
10391            1,
10392            0,
10393            p20pfs_ha::Isel,
10394            p20pfs_ha::Isel,
10395            P20PfsHa_SPEC,
10396            crate::common::RW,
10397        >::from_register(self, 0)
10398    }
10399
10400    #[doc = "Analog Input Enable"]
10401    #[inline(always)]
10402    pub fn asel(
10403        self,
10404    ) -> crate::common::RegisterField<
10405        15,
10406        0x1,
10407        1,
10408        0,
10409        p20pfs_ha::Asel,
10410        p20pfs_ha::Asel,
10411        P20PfsHa_SPEC,
10412        crate::common::RW,
10413    > {
10414        crate::common::RegisterField::<
10415            15,
10416            0x1,
10417            1,
10418            0,
10419            p20pfs_ha::Asel,
10420            p20pfs_ha::Asel,
10421            P20PfsHa_SPEC,
10422            crate::common::RW,
10423        >::from_register(self, 0)
10424    }
10425}
10426impl ::core::default::Default for P20PfsHa {
10427    #[inline(always)]
10428    fn default() -> P20PfsHa {
10429        <crate::RegValueT<P20PfsHa_SPEC> as RegisterValue<_>>::new(0)
10430    }
10431}
10432pub mod p20pfs_ha {
10433
10434    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10435    pub struct Podr_SPEC;
10436    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10437    impl Podr {
10438        #[doc = "Output low"]
10439        pub const _0: Self = Self::new(0);
10440
10441        #[doc = "Output high"]
10442        pub const _1: Self = Self::new(1);
10443    }
10444    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10445    pub struct Pidr_SPEC;
10446    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10447    impl Pidr {
10448        #[doc = "Low level"]
10449        pub const _0: Self = Self::new(0);
10450
10451        #[doc = "High level"]
10452        pub const _1: Self = Self::new(1);
10453    }
10454    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10455    pub struct Pdr_SPEC;
10456    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10457    impl Pdr {
10458        #[doc = "Input (functions as an input pin)"]
10459        pub const _0: Self = Self::new(0);
10460
10461        #[doc = "Output (functions as an output pin)"]
10462        pub const _1: Self = Self::new(1);
10463    }
10464    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10465    pub struct Pcr_SPEC;
10466    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10467    impl Pcr {
10468        #[doc = "Disable input pull-up"]
10469        pub const _0: Self = Self::new(0);
10470
10471        #[doc = "Enable input pull-up"]
10472        pub const _1: Self = Self::new(1);
10473    }
10474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10475    pub struct Ncodr_SPEC;
10476    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10477    impl Ncodr {
10478        #[doc = "Output CMOS"]
10479        pub const _0: Self = Self::new(0);
10480
10481        #[doc = "Output NMOS open-drain"]
10482        pub const _1: Self = Self::new(1);
10483    }
10484    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10485    pub struct Eofr_SPEC;
10486    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10487    impl Eofr {
10488        #[doc = "Don\'t care"]
10489        pub const _00: Self = Self::new(0);
10490
10491        #[doc = "Detect rising edge"]
10492        pub const _01: Self = Self::new(1);
10493
10494        #[doc = "Detect falling edge"]
10495        pub const _10: Self = Self::new(2);
10496
10497        #[doc = "Detect both edges"]
10498        pub const _11: Self = Self::new(3);
10499    }
10500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10501    pub struct Isel_SPEC;
10502    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10503    impl Isel {
10504        #[doc = "Do not use as IRQn input pin"]
10505        pub const _0: Self = Self::new(0);
10506
10507        #[doc = "Use as IRQn input pin"]
10508        pub const _1: Self = Self::new(1);
10509    }
10510    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10511    pub struct Asel_SPEC;
10512    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10513    impl Asel {
10514        #[doc = "Do not use as analog pin"]
10515        pub const _0: Self = Self::new(0);
10516
10517        #[doc = "Use as analog pin"]
10518        pub const _1: Self = Self::new(1);
10519    }
10520}
10521#[doc(hidden)]
10522#[derive(Copy, Clone, Eq, PartialEq)]
10523pub struct P20PfsBy_SPEC;
10524impl crate::sealed::RegSpec for P20PfsBy_SPEC {
10525    type DataType = u8;
10526}
10527
10528#[doc = "Port 20%s Pin Function Select Register"]
10529pub type P20PfsBy = crate::RegValueT<P20PfsBy_SPEC>;
10530
10531impl P20PfsBy {
10532    #[doc = "Port Output Data"]
10533    #[inline(always)]
10534    pub fn podr(
10535        self,
10536    ) -> crate::common::RegisterField<
10537        0,
10538        0x1,
10539        1,
10540        0,
10541        p20pfs_by::Podr,
10542        p20pfs_by::Podr,
10543        P20PfsBy_SPEC,
10544        crate::common::RW,
10545    > {
10546        crate::common::RegisterField::<
10547            0,
10548            0x1,
10549            1,
10550            0,
10551            p20pfs_by::Podr,
10552            p20pfs_by::Podr,
10553            P20PfsBy_SPEC,
10554            crate::common::RW,
10555        >::from_register(self, 0)
10556    }
10557
10558    #[doc = "Port State"]
10559    #[inline(always)]
10560    pub fn pidr(
10561        self,
10562    ) -> crate::common::RegisterField<
10563        1,
10564        0x1,
10565        1,
10566        0,
10567        p20pfs_by::Pidr,
10568        p20pfs_by::Pidr,
10569        P20PfsBy_SPEC,
10570        crate::common::R,
10571    > {
10572        crate::common::RegisterField::<
10573            1,
10574            0x1,
10575            1,
10576            0,
10577            p20pfs_by::Pidr,
10578            p20pfs_by::Pidr,
10579            P20PfsBy_SPEC,
10580            crate::common::R,
10581        >::from_register(self, 0)
10582    }
10583
10584    #[doc = "Port Direction"]
10585    #[inline(always)]
10586    pub fn pdr(
10587        self,
10588    ) -> crate::common::RegisterField<
10589        2,
10590        0x1,
10591        1,
10592        0,
10593        p20pfs_by::Pdr,
10594        p20pfs_by::Pdr,
10595        P20PfsBy_SPEC,
10596        crate::common::RW,
10597    > {
10598        crate::common::RegisterField::<
10599            2,
10600            0x1,
10601            1,
10602            0,
10603            p20pfs_by::Pdr,
10604            p20pfs_by::Pdr,
10605            P20PfsBy_SPEC,
10606            crate::common::RW,
10607        >::from_register(self, 0)
10608    }
10609
10610    #[doc = "Pull-up Control"]
10611    #[inline(always)]
10612    pub fn pcr(
10613        self,
10614    ) -> crate::common::RegisterField<
10615        4,
10616        0x1,
10617        1,
10618        0,
10619        p20pfs_by::Pcr,
10620        p20pfs_by::Pcr,
10621        P20PfsBy_SPEC,
10622        crate::common::RW,
10623    > {
10624        crate::common::RegisterField::<
10625            4,
10626            0x1,
10627            1,
10628            0,
10629            p20pfs_by::Pcr,
10630            p20pfs_by::Pcr,
10631            P20PfsBy_SPEC,
10632            crate::common::RW,
10633        >::from_register(self, 0)
10634    }
10635
10636    #[doc = "N-Channel Open-Drain Control"]
10637    #[inline(always)]
10638    pub fn ncodr(
10639        self,
10640    ) -> crate::common::RegisterField<
10641        6,
10642        0x1,
10643        1,
10644        0,
10645        p20pfs_by::Ncodr,
10646        p20pfs_by::Ncodr,
10647        P20PfsBy_SPEC,
10648        crate::common::RW,
10649    > {
10650        crate::common::RegisterField::<
10651            6,
10652            0x1,
10653            1,
10654            0,
10655            p20pfs_by::Ncodr,
10656            p20pfs_by::Ncodr,
10657            P20PfsBy_SPEC,
10658            crate::common::RW,
10659        >::from_register(self, 0)
10660    }
10661}
10662impl ::core::default::Default for P20PfsBy {
10663    #[inline(always)]
10664    fn default() -> P20PfsBy {
10665        <crate::RegValueT<P20PfsBy_SPEC> as RegisterValue<_>>::new(0)
10666    }
10667}
10668pub mod p20pfs_by {
10669
10670    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10671    pub struct Podr_SPEC;
10672    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10673    impl Podr {
10674        #[doc = "Output low"]
10675        pub const _0: Self = Self::new(0);
10676
10677        #[doc = "Output high"]
10678        pub const _1: Self = Self::new(1);
10679    }
10680    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10681    pub struct Pidr_SPEC;
10682    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10683    impl Pidr {
10684        #[doc = "Low level"]
10685        pub const _0: Self = Self::new(0);
10686
10687        #[doc = "High level"]
10688        pub const _1: Self = Self::new(1);
10689    }
10690    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10691    pub struct Pdr_SPEC;
10692    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10693    impl Pdr {
10694        #[doc = "Input (functions as an input pin)"]
10695        pub const _0: Self = Self::new(0);
10696
10697        #[doc = "Output (functions as an output pin)"]
10698        pub const _1: Self = Self::new(1);
10699    }
10700    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10701    pub struct Pcr_SPEC;
10702    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10703    impl Pcr {
10704        #[doc = "Disable input pull-up"]
10705        pub const _0: Self = Self::new(0);
10706
10707        #[doc = "Enable input pull-up"]
10708        pub const _1: Self = Self::new(1);
10709    }
10710    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10711    pub struct Ncodr_SPEC;
10712    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10713    impl Ncodr {
10714        #[doc = "Output CMOS"]
10715        pub const _0: Self = Self::new(0);
10716
10717        #[doc = "Output NMOS open-drain"]
10718        pub const _1: Self = Self::new(1);
10719    }
10720}
10721#[doc(hidden)]
10722#[derive(Copy, Clone, Eq, PartialEq)]
10723pub struct P2Pfs_SPEC;
10724impl crate::sealed::RegSpec for P2Pfs_SPEC {
10725    type DataType = u32;
10726}
10727
10728#[doc = "Port 2%s Pin Function Select Register"]
10729pub type P2Pfs = crate::RegValueT<P2Pfs_SPEC>;
10730
10731impl P2Pfs {
10732    #[doc = "Port Output Data"]
10733    #[inline(always)]
10734    pub fn podr(
10735        self,
10736    ) -> crate::common::RegisterField<
10737        0,
10738        0x1,
10739        1,
10740        0,
10741        p2pfs::Podr,
10742        p2pfs::Podr,
10743        P2Pfs_SPEC,
10744        crate::common::RW,
10745    > {
10746        crate::common::RegisterField::<
10747            0,
10748            0x1,
10749            1,
10750            0,
10751            p2pfs::Podr,
10752            p2pfs::Podr,
10753            P2Pfs_SPEC,
10754            crate::common::RW,
10755        >::from_register(self, 0)
10756    }
10757
10758    #[doc = "Port State"]
10759    #[inline(always)]
10760    pub fn pidr(
10761        self,
10762    ) -> crate::common::RegisterField<
10763        1,
10764        0x1,
10765        1,
10766        0,
10767        p2pfs::Pidr,
10768        p2pfs::Pidr,
10769        P2Pfs_SPEC,
10770        crate::common::R,
10771    > {
10772        crate::common::RegisterField::<
10773            1,
10774            0x1,
10775            1,
10776            0,
10777            p2pfs::Pidr,
10778            p2pfs::Pidr,
10779            P2Pfs_SPEC,
10780            crate::common::R,
10781        >::from_register(self, 0)
10782    }
10783
10784    #[doc = "Port Direction"]
10785    #[inline(always)]
10786    pub fn pdr(
10787        self,
10788    ) -> crate::common::RegisterField<
10789        2,
10790        0x1,
10791        1,
10792        0,
10793        p2pfs::Pdr,
10794        p2pfs::Pdr,
10795        P2Pfs_SPEC,
10796        crate::common::RW,
10797    > {
10798        crate::common::RegisterField::<
10799            2,
10800            0x1,
10801            1,
10802            0,
10803            p2pfs::Pdr,
10804            p2pfs::Pdr,
10805            P2Pfs_SPEC,
10806            crate::common::RW,
10807        >::from_register(self, 0)
10808    }
10809
10810    #[doc = "Pull-up Control"]
10811    #[inline(always)]
10812    pub fn pcr(
10813        self,
10814    ) -> crate::common::RegisterField<
10815        4,
10816        0x1,
10817        1,
10818        0,
10819        p2pfs::Pcr,
10820        p2pfs::Pcr,
10821        P2Pfs_SPEC,
10822        crate::common::RW,
10823    > {
10824        crate::common::RegisterField::<
10825            4,
10826            0x1,
10827            1,
10828            0,
10829            p2pfs::Pcr,
10830            p2pfs::Pcr,
10831            P2Pfs_SPEC,
10832            crate::common::RW,
10833        >::from_register(self, 0)
10834    }
10835
10836    #[doc = "N-Channel Open-Drain Control"]
10837    #[inline(always)]
10838    pub fn ncodr(
10839        self,
10840    ) -> crate::common::RegisterField<
10841        6,
10842        0x1,
10843        1,
10844        0,
10845        p2pfs::Ncodr,
10846        p2pfs::Ncodr,
10847        P2Pfs_SPEC,
10848        crate::common::RW,
10849    > {
10850        crate::common::RegisterField::<
10851            6,
10852            0x1,
10853            1,
10854            0,
10855            p2pfs::Ncodr,
10856            p2pfs::Ncodr,
10857            P2Pfs_SPEC,
10858            crate::common::RW,
10859        >::from_register(self, 0)
10860    }
10861
10862    #[doc = "Event on Falling/Event on Rising"]
10863    #[inline(always)]
10864    pub fn eofr(
10865        self,
10866    ) -> crate::common::RegisterField<
10867        12,
10868        0x3,
10869        1,
10870        0,
10871        p2pfs::Eofr,
10872        p2pfs::Eofr,
10873        P2Pfs_SPEC,
10874        crate::common::RW,
10875    > {
10876        crate::common::RegisterField::<
10877            12,
10878            0x3,
10879            1,
10880            0,
10881            p2pfs::Eofr,
10882            p2pfs::Eofr,
10883            P2Pfs_SPEC,
10884            crate::common::RW,
10885        >::from_register(self, 0)
10886    }
10887
10888    #[doc = "IRQ Input Enable"]
10889    #[inline(always)]
10890    pub fn isel(
10891        self,
10892    ) -> crate::common::RegisterField<
10893        14,
10894        0x1,
10895        1,
10896        0,
10897        p2pfs::Isel,
10898        p2pfs::Isel,
10899        P2Pfs_SPEC,
10900        crate::common::RW,
10901    > {
10902        crate::common::RegisterField::<
10903            14,
10904            0x1,
10905            1,
10906            0,
10907            p2pfs::Isel,
10908            p2pfs::Isel,
10909            P2Pfs_SPEC,
10910            crate::common::RW,
10911        >::from_register(self, 0)
10912    }
10913
10914    #[doc = "Analog Input Enable"]
10915    #[inline(always)]
10916    pub fn asel(
10917        self,
10918    ) -> crate::common::RegisterField<
10919        15,
10920        0x1,
10921        1,
10922        0,
10923        p2pfs::Asel,
10924        p2pfs::Asel,
10925        P2Pfs_SPEC,
10926        crate::common::RW,
10927    > {
10928        crate::common::RegisterField::<
10929            15,
10930            0x1,
10931            1,
10932            0,
10933            p2pfs::Asel,
10934            p2pfs::Asel,
10935            P2Pfs_SPEC,
10936            crate::common::RW,
10937        >::from_register(self, 0)
10938    }
10939
10940    #[doc = "Port Mode Control"]
10941    #[inline(always)]
10942    pub fn pmr(
10943        self,
10944    ) -> crate::common::RegisterField<
10945        16,
10946        0x1,
10947        1,
10948        0,
10949        p2pfs::Pmr,
10950        p2pfs::Pmr,
10951        P2Pfs_SPEC,
10952        crate::common::RW,
10953    > {
10954        crate::common::RegisterField::<
10955            16,
10956            0x1,
10957            1,
10958            0,
10959            p2pfs::Pmr,
10960            p2pfs::Pmr,
10961            P2Pfs_SPEC,
10962            crate::common::RW,
10963        >::from_register(self, 0)
10964    }
10965
10966    #[doc = "Peripheral Select"]
10967    #[inline(always)]
10968    pub fn psel(
10969        self,
10970    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P2Pfs_SPEC, crate::common::RW> {
10971        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P2Pfs_SPEC,crate::common::RW>::from_register(self,0)
10972    }
10973}
10974impl ::core::default::Default for P2Pfs {
10975    #[inline(always)]
10976    fn default() -> P2Pfs {
10977        <crate::RegValueT<P2Pfs_SPEC> as RegisterValue<_>>::new(0)
10978    }
10979}
10980pub mod p2pfs {
10981
10982    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10983    pub struct Podr_SPEC;
10984    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10985    impl Podr {
10986        #[doc = "Output low"]
10987        pub const _0: Self = Self::new(0);
10988
10989        #[doc = "Output high"]
10990        pub const _1: Self = Self::new(1);
10991    }
10992    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10993    pub struct Pidr_SPEC;
10994    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10995    impl Pidr {
10996        #[doc = "Low level"]
10997        pub const _0: Self = Self::new(0);
10998
10999        #[doc = "High level"]
11000        pub const _1: Self = Self::new(1);
11001    }
11002    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11003    pub struct Pdr_SPEC;
11004    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11005    impl Pdr {
11006        #[doc = "Input (functions as an input pin)"]
11007        pub const _0: Self = Self::new(0);
11008
11009        #[doc = "Output (functions as an output pin)"]
11010        pub const _1: Self = Self::new(1);
11011    }
11012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11013    pub struct Pcr_SPEC;
11014    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11015    impl Pcr {
11016        #[doc = "Disable input pull-up"]
11017        pub const _0: Self = Self::new(0);
11018
11019        #[doc = "Enable input pull-up"]
11020        pub const _1: Self = Self::new(1);
11021    }
11022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11023    pub struct Ncodr_SPEC;
11024    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11025    impl Ncodr {
11026        #[doc = "Output CMOS"]
11027        pub const _0: Self = Self::new(0);
11028
11029        #[doc = "Output NMOS open-drain"]
11030        pub const _1: Self = Self::new(1);
11031    }
11032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11033    pub struct Eofr_SPEC;
11034    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11035    impl Eofr {
11036        #[doc = "Don\'t care"]
11037        pub const _00: Self = Self::new(0);
11038
11039        #[doc = "Detect rising edge"]
11040        pub const _01: Self = Self::new(1);
11041
11042        #[doc = "Detect falling edge"]
11043        pub const _10: Self = Self::new(2);
11044
11045        #[doc = "Detect both edges"]
11046        pub const _11: Self = Self::new(3);
11047    }
11048    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11049    pub struct Isel_SPEC;
11050    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11051    impl Isel {
11052        #[doc = "Do not use as IRQn input pin"]
11053        pub const _0: Self = Self::new(0);
11054
11055        #[doc = "Use as IRQn input pin"]
11056        pub const _1: Self = Self::new(1);
11057    }
11058    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11059    pub struct Asel_SPEC;
11060    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11061    impl Asel {
11062        #[doc = "Do not use as analog pin"]
11063        pub const _0: Self = Self::new(0);
11064
11065        #[doc = "Use as analog pin"]
11066        pub const _1: Self = Self::new(1);
11067    }
11068    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11069    pub struct Pmr_SPEC;
11070    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11071    impl Pmr {
11072        #[doc = "Use as general I/O pin"]
11073        pub const _0: Self = Self::new(0);
11074
11075        #[doc = "Use as I/O port for peripheral functions"]
11076        pub const _1: Self = Self::new(1);
11077    }
11078}
11079#[doc(hidden)]
11080#[derive(Copy, Clone, Eq, PartialEq)]
11081pub struct P2PfsHa_SPEC;
11082impl crate::sealed::RegSpec for P2PfsHa_SPEC {
11083    type DataType = u16;
11084}
11085
11086#[doc = "Port 2%s Pin Function Select Register"]
11087pub type P2PfsHa = crate::RegValueT<P2PfsHa_SPEC>;
11088
11089impl P2PfsHa {
11090    #[doc = "Port Output Data"]
11091    #[inline(always)]
11092    pub fn podr(
11093        self,
11094    ) -> crate::common::RegisterField<
11095        0,
11096        0x1,
11097        1,
11098        0,
11099        p2pfs_ha::Podr,
11100        p2pfs_ha::Podr,
11101        P2PfsHa_SPEC,
11102        crate::common::RW,
11103    > {
11104        crate::common::RegisterField::<
11105            0,
11106            0x1,
11107            1,
11108            0,
11109            p2pfs_ha::Podr,
11110            p2pfs_ha::Podr,
11111            P2PfsHa_SPEC,
11112            crate::common::RW,
11113        >::from_register(self, 0)
11114    }
11115
11116    #[doc = "Port State"]
11117    #[inline(always)]
11118    pub fn pidr(
11119        self,
11120    ) -> crate::common::RegisterField<
11121        1,
11122        0x1,
11123        1,
11124        0,
11125        p2pfs_ha::Pidr,
11126        p2pfs_ha::Pidr,
11127        P2PfsHa_SPEC,
11128        crate::common::R,
11129    > {
11130        crate::common::RegisterField::<
11131            1,
11132            0x1,
11133            1,
11134            0,
11135            p2pfs_ha::Pidr,
11136            p2pfs_ha::Pidr,
11137            P2PfsHa_SPEC,
11138            crate::common::R,
11139        >::from_register(self, 0)
11140    }
11141
11142    #[doc = "Port Direction"]
11143    #[inline(always)]
11144    pub fn pdr(
11145        self,
11146    ) -> crate::common::RegisterField<
11147        2,
11148        0x1,
11149        1,
11150        0,
11151        p2pfs_ha::Pdr,
11152        p2pfs_ha::Pdr,
11153        P2PfsHa_SPEC,
11154        crate::common::RW,
11155    > {
11156        crate::common::RegisterField::<
11157            2,
11158            0x1,
11159            1,
11160            0,
11161            p2pfs_ha::Pdr,
11162            p2pfs_ha::Pdr,
11163            P2PfsHa_SPEC,
11164            crate::common::RW,
11165        >::from_register(self, 0)
11166    }
11167
11168    #[doc = "Pull-up Control"]
11169    #[inline(always)]
11170    pub fn pcr(
11171        self,
11172    ) -> crate::common::RegisterField<
11173        4,
11174        0x1,
11175        1,
11176        0,
11177        p2pfs_ha::Pcr,
11178        p2pfs_ha::Pcr,
11179        P2PfsHa_SPEC,
11180        crate::common::RW,
11181    > {
11182        crate::common::RegisterField::<
11183            4,
11184            0x1,
11185            1,
11186            0,
11187            p2pfs_ha::Pcr,
11188            p2pfs_ha::Pcr,
11189            P2PfsHa_SPEC,
11190            crate::common::RW,
11191        >::from_register(self, 0)
11192    }
11193
11194    #[doc = "N-Channel Open-Drain Control"]
11195    #[inline(always)]
11196    pub fn ncodr(
11197        self,
11198    ) -> crate::common::RegisterField<
11199        6,
11200        0x1,
11201        1,
11202        0,
11203        p2pfs_ha::Ncodr,
11204        p2pfs_ha::Ncodr,
11205        P2PfsHa_SPEC,
11206        crate::common::RW,
11207    > {
11208        crate::common::RegisterField::<
11209            6,
11210            0x1,
11211            1,
11212            0,
11213            p2pfs_ha::Ncodr,
11214            p2pfs_ha::Ncodr,
11215            P2PfsHa_SPEC,
11216            crate::common::RW,
11217        >::from_register(self, 0)
11218    }
11219
11220    #[doc = "Event on Falling/Event on Rising"]
11221    #[inline(always)]
11222    pub fn eofr(
11223        self,
11224    ) -> crate::common::RegisterField<
11225        12,
11226        0x3,
11227        1,
11228        0,
11229        p2pfs_ha::Eofr,
11230        p2pfs_ha::Eofr,
11231        P2PfsHa_SPEC,
11232        crate::common::RW,
11233    > {
11234        crate::common::RegisterField::<
11235            12,
11236            0x3,
11237            1,
11238            0,
11239            p2pfs_ha::Eofr,
11240            p2pfs_ha::Eofr,
11241            P2PfsHa_SPEC,
11242            crate::common::RW,
11243        >::from_register(self, 0)
11244    }
11245
11246    #[doc = "IRQ Input Enable"]
11247    #[inline(always)]
11248    pub fn isel(
11249        self,
11250    ) -> crate::common::RegisterField<
11251        14,
11252        0x1,
11253        1,
11254        0,
11255        p2pfs_ha::Isel,
11256        p2pfs_ha::Isel,
11257        P2PfsHa_SPEC,
11258        crate::common::RW,
11259    > {
11260        crate::common::RegisterField::<
11261            14,
11262            0x1,
11263            1,
11264            0,
11265            p2pfs_ha::Isel,
11266            p2pfs_ha::Isel,
11267            P2PfsHa_SPEC,
11268            crate::common::RW,
11269        >::from_register(self, 0)
11270    }
11271
11272    #[doc = "Analog Input Enable"]
11273    #[inline(always)]
11274    pub fn asel(
11275        self,
11276    ) -> crate::common::RegisterField<
11277        15,
11278        0x1,
11279        1,
11280        0,
11281        p2pfs_ha::Asel,
11282        p2pfs_ha::Asel,
11283        P2PfsHa_SPEC,
11284        crate::common::RW,
11285    > {
11286        crate::common::RegisterField::<
11287            15,
11288            0x1,
11289            1,
11290            0,
11291            p2pfs_ha::Asel,
11292            p2pfs_ha::Asel,
11293            P2PfsHa_SPEC,
11294            crate::common::RW,
11295        >::from_register(self, 0)
11296    }
11297}
11298impl ::core::default::Default for P2PfsHa {
11299    #[inline(always)]
11300    fn default() -> P2PfsHa {
11301        <crate::RegValueT<P2PfsHa_SPEC> as RegisterValue<_>>::new(0)
11302    }
11303}
11304pub mod p2pfs_ha {
11305
11306    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11307    pub struct Podr_SPEC;
11308    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11309    impl Podr {
11310        #[doc = "Output low"]
11311        pub const _0: Self = Self::new(0);
11312
11313        #[doc = "Output high"]
11314        pub const _1: Self = Self::new(1);
11315    }
11316    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11317    pub struct Pidr_SPEC;
11318    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11319    impl Pidr {
11320        #[doc = "Low level"]
11321        pub const _0: Self = Self::new(0);
11322
11323        #[doc = "High level"]
11324        pub const _1: Self = Self::new(1);
11325    }
11326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11327    pub struct Pdr_SPEC;
11328    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11329    impl Pdr {
11330        #[doc = "Input (functions as an input pin)"]
11331        pub const _0: Self = Self::new(0);
11332
11333        #[doc = "Output (functions as an output pin)"]
11334        pub const _1: Self = Self::new(1);
11335    }
11336    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11337    pub struct Pcr_SPEC;
11338    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11339    impl Pcr {
11340        #[doc = "Disable input pull-up"]
11341        pub const _0: Self = Self::new(0);
11342
11343        #[doc = "Enable input pull-up"]
11344        pub const _1: Self = Self::new(1);
11345    }
11346    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11347    pub struct Ncodr_SPEC;
11348    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11349    impl Ncodr {
11350        #[doc = "Output CMOS"]
11351        pub const _0: Self = Self::new(0);
11352
11353        #[doc = "Output NMOS open-drain"]
11354        pub const _1: Self = Self::new(1);
11355    }
11356    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11357    pub struct Eofr_SPEC;
11358    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11359    impl Eofr {
11360        #[doc = "Don\'t care"]
11361        pub const _00: Self = Self::new(0);
11362
11363        #[doc = "Detect rising edge"]
11364        pub const _01: Self = Self::new(1);
11365
11366        #[doc = "Detect falling edge"]
11367        pub const _10: Self = Self::new(2);
11368
11369        #[doc = "Detect both edges"]
11370        pub const _11: Self = Self::new(3);
11371    }
11372    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11373    pub struct Isel_SPEC;
11374    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11375    impl Isel {
11376        #[doc = "Do not use as IRQn input pin"]
11377        pub const _0: Self = Self::new(0);
11378
11379        #[doc = "Use as IRQn input pin"]
11380        pub const _1: Self = Self::new(1);
11381    }
11382    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11383    pub struct Asel_SPEC;
11384    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11385    impl Asel {
11386        #[doc = "Do not use as analog pin"]
11387        pub const _0: Self = Self::new(0);
11388
11389        #[doc = "Use as analog pin"]
11390        pub const _1: Self = Self::new(1);
11391    }
11392}
11393#[doc(hidden)]
11394#[derive(Copy, Clone, Eq, PartialEq)]
11395pub struct P2PfsBy_SPEC;
11396impl crate::sealed::RegSpec for P2PfsBy_SPEC {
11397    type DataType = u8;
11398}
11399
11400#[doc = "Port 2%s Pin Function Select Register"]
11401pub type P2PfsBy = crate::RegValueT<P2PfsBy_SPEC>;
11402
11403impl P2PfsBy {
11404    #[doc = "Port Output Data"]
11405    #[inline(always)]
11406    pub fn podr(
11407        self,
11408    ) -> crate::common::RegisterField<
11409        0,
11410        0x1,
11411        1,
11412        0,
11413        p2pfs_by::Podr,
11414        p2pfs_by::Podr,
11415        P2PfsBy_SPEC,
11416        crate::common::RW,
11417    > {
11418        crate::common::RegisterField::<
11419            0,
11420            0x1,
11421            1,
11422            0,
11423            p2pfs_by::Podr,
11424            p2pfs_by::Podr,
11425            P2PfsBy_SPEC,
11426            crate::common::RW,
11427        >::from_register(self, 0)
11428    }
11429
11430    #[doc = "Port State"]
11431    #[inline(always)]
11432    pub fn pidr(
11433        self,
11434    ) -> crate::common::RegisterField<
11435        1,
11436        0x1,
11437        1,
11438        0,
11439        p2pfs_by::Pidr,
11440        p2pfs_by::Pidr,
11441        P2PfsBy_SPEC,
11442        crate::common::R,
11443    > {
11444        crate::common::RegisterField::<
11445            1,
11446            0x1,
11447            1,
11448            0,
11449            p2pfs_by::Pidr,
11450            p2pfs_by::Pidr,
11451            P2PfsBy_SPEC,
11452            crate::common::R,
11453        >::from_register(self, 0)
11454    }
11455
11456    #[doc = "Port Direction"]
11457    #[inline(always)]
11458    pub fn pdr(
11459        self,
11460    ) -> crate::common::RegisterField<
11461        2,
11462        0x1,
11463        1,
11464        0,
11465        p2pfs_by::Pdr,
11466        p2pfs_by::Pdr,
11467        P2PfsBy_SPEC,
11468        crate::common::RW,
11469    > {
11470        crate::common::RegisterField::<
11471            2,
11472            0x1,
11473            1,
11474            0,
11475            p2pfs_by::Pdr,
11476            p2pfs_by::Pdr,
11477            P2PfsBy_SPEC,
11478            crate::common::RW,
11479        >::from_register(self, 0)
11480    }
11481
11482    #[doc = "Pull-up Control"]
11483    #[inline(always)]
11484    pub fn pcr(
11485        self,
11486    ) -> crate::common::RegisterField<
11487        4,
11488        0x1,
11489        1,
11490        0,
11491        p2pfs_by::Pcr,
11492        p2pfs_by::Pcr,
11493        P2PfsBy_SPEC,
11494        crate::common::RW,
11495    > {
11496        crate::common::RegisterField::<
11497            4,
11498            0x1,
11499            1,
11500            0,
11501            p2pfs_by::Pcr,
11502            p2pfs_by::Pcr,
11503            P2PfsBy_SPEC,
11504            crate::common::RW,
11505        >::from_register(self, 0)
11506    }
11507
11508    #[doc = "N-Channel Open-Drain Control"]
11509    #[inline(always)]
11510    pub fn ncodr(
11511        self,
11512    ) -> crate::common::RegisterField<
11513        6,
11514        0x1,
11515        1,
11516        0,
11517        p2pfs_by::Ncodr,
11518        p2pfs_by::Ncodr,
11519        P2PfsBy_SPEC,
11520        crate::common::RW,
11521    > {
11522        crate::common::RegisterField::<
11523            6,
11524            0x1,
11525            1,
11526            0,
11527            p2pfs_by::Ncodr,
11528            p2pfs_by::Ncodr,
11529            P2PfsBy_SPEC,
11530            crate::common::RW,
11531        >::from_register(self, 0)
11532    }
11533}
11534impl ::core::default::Default for P2PfsBy {
11535    #[inline(always)]
11536    fn default() -> P2PfsBy {
11537        <crate::RegValueT<P2PfsBy_SPEC> as RegisterValue<_>>::new(0)
11538    }
11539}
11540pub mod p2pfs_by {
11541
11542    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11543    pub struct Podr_SPEC;
11544    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11545    impl Podr {
11546        #[doc = "Output low"]
11547        pub const _0: Self = Self::new(0);
11548
11549        #[doc = "Output high"]
11550        pub const _1: Self = Self::new(1);
11551    }
11552    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11553    pub struct Pidr_SPEC;
11554    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11555    impl Pidr {
11556        #[doc = "Low level"]
11557        pub const _0: Self = Self::new(0);
11558
11559        #[doc = "High level"]
11560        pub const _1: Self = Self::new(1);
11561    }
11562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11563    pub struct Pdr_SPEC;
11564    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11565    impl Pdr {
11566        #[doc = "Input (functions as an input pin)"]
11567        pub const _0: Self = Self::new(0);
11568
11569        #[doc = "Output (functions as an output pin)"]
11570        pub const _1: Self = Self::new(1);
11571    }
11572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11573    pub struct Pcr_SPEC;
11574    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11575    impl Pcr {
11576        #[doc = "Disable input pull-up"]
11577        pub const _0: Self = Self::new(0);
11578
11579        #[doc = "Enable input pull-up"]
11580        pub const _1: Self = Self::new(1);
11581    }
11582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11583    pub struct Ncodr_SPEC;
11584    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11585    impl Ncodr {
11586        #[doc = "Output CMOS"]
11587        pub const _0: Self = Self::new(0);
11588
11589        #[doc = "Output NMOS open-drain"]
11590        pub const _1: Self = Self::new(1);
11591    }
11592}
11593#[doc(hidden)]
11594#[derive(Copy, Clone, Eq, PartialEq)]
11595pub struct P300Pfs_SPEC;
11596impl crate::sealed::RegSpec for P300Pfs_SPEC {
11597    type DataType = u32;
11598}
11599
11600#[doc = "Port 300 Pin Function Select Register"]
11601pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
11602
11603impl P300Pfs {
11604    #[doc = "Port Output Data"]
11605    #[inline(always)]
11606    pub fn podr(
11607        self,
11608    ) -> crate::common::RegisterField<
11609        0,
11610        0x1,
11611        1,
11612        0,
11613        p300pfs::Podr,
11614        p300pfs::Podr,
11615        P300Pfs_SPEC,
11616        crate::common::RW,
11617    > {
11618        crate::common::RegisterField::<
11619            0,
11620            0x1,
11621            1,
11622            0,
11623            p300pfs::Podr,
11624            p300pfs::Podr,
11625            P300Pfs_SPEC,
11626            crate::common::RW,
11627        >::from_register(self, 0)
11628    }
11629
11630    #[doc = "Port State"]
11631    #[inline(always)]
11632    pub fn pidr(
11633        self,
11634    ) -> crate::common::RegisterField<
11635        1,
11636        0x1,
11637        1,
11638        0,
11639        p300pfs::Pidr,
11640        p300pfs::Pidr,
11641        P300Pfs_SPEC,
11642        crate::common::R,
11643    > {
11644        crate::common::RegisterField::<
11645            1,
11646            0x1,
11647            1,
11648            0,
11649            p300pfs::Pidr,
11650            p300pfs::Pidr,
11651            P300Pfs_SPEC,
11652            crate::common::R,
11653        >::from_register(self, 0)
11654    }
11655
11656    #[doc = "Port Direction"]
11657    #[inline(always)]
11658    pub fn pdr(
11659        self,
11660    ) -> crate::common::RegisterField<
11661        2,
11662        0x1,
11663        1,
11664        0,
11665        p300pfs::Pdr,
11666        p300pfs::Pdr,
11667        P300Pfs_SPEC,
11668        crate::common::RW,
11669    > {
11670        crate::common::RegisterField::<
11671            2,
11672            0x1,
11673            1,
11674            0,
11675            p300pfs::Pdr,
11676            p300pfs::Pdr,
11677            P300Pfs_SPEC,
11678            crate::common::RW,
11679        >::from_register(self, 0)
11680    }
11681
11682    #[doc = "Pull-up Control"]
11683    #[inline(always)]
11684    pub fn pcr(
11685        self,
11686    ) -> crate::common::RegisterField<
11687        4,
11688        0x1,
11689        1,
11690        0,
11691        p300pfs::Pcr,
11692        p300pfs::Pcr,
11693        P300Pfs_SPEC,
11694        crate::common::RW,
11695    > {
11696        crate::common::RegisterField::<
11697            4,
11698            0x1,
11699            1,
11700            0,
11701            p300pfs::Pcr,
11702            p300pfs::Pcr,
11703            P300Pfs_SPEC,
11704            crate::common::RW,
11705        >::from_register(self, 0)
11706    }
11707
11708    #[doc = "N-Channel Open-Drain Control"]
11709    #[inline(always)]
11710    pub fn ncodr(
11711        self,
11712    ) -> crate::common::RegisterField<
11713        6,
11714        0x1,
11715        1,
11716        0,
11717        p300pfs::Ncodr,
11718        p300pfs::Ncodr,
11719        P300Pfs_SPEC,
11720        crate::common::RW,
11721    > {
11722        crate::common::RegisterField::<
11723            6,
11724            0x1,
11725            1,
11726            0,
11727            p300pfs::Ncodr,
11728            p300pfs::Ncodr,
11729            P300Pfs_SPEC,
11730            crate::common::RW,
11731        >::from_register(self, 0)
11732    }
11733
11734    #[doc = "IRQ Input Enable"]
11735    #[inline(always)]
11736    pub fn isel(
11737        self,
11738    ) -> crate::common::RegisterField<
11739        14,
11740        0x1,
11741        1,
11742        0,
11743        p300pfs::Isel,
11744        p300pfs::Isel,
11745        P300Pfs_SPEC,
11746        crate::common::RW,
11747    > {
11748        crate::common::RegisterField::<
11749            14,
11750            0x1,
11751            1,
11752            0,
11753            p300pfs::Isel,
11754            p300pfs::Isel,
11755            P300Pfs_SPEC,
11756            crate::common::RW,
11757        >::from_register(self, 0)
11758    }
11759
11760    #[doc = "Analog Input Enable"]
11761    #[inline(always)]
11762    pub fn asel(
11763        self,
11764    ) -> crate::common::RegisterField<
11765        15,
11766        0x1,
11767        1,
11768        0,
11769        p300pfs::Asel,
11770        p300pfs::Asel,
11771        P300Pfs_SPEC,
11772        crate::common::RW,
11773    > {
11774        crate::common::RegisterField::<
11775            15,
11776            0x1,
11777            1,
11778            0,
11779            p300pfs::Asel,
11780            p300pfs::Asel,
11781            P300Pfs_SPEC,
11782            crate::common::RW,
11783        >::from_register(self, 0)
11784    }
11785
11786    #[doc = "Port Mode Control"]
11787    #[inline(always)]
11788    pub fn pmr(
11789        self,
11790    ) -> crate::common::RegisterField<
11791        16,
11792        0x1,
11793        1,
11794        0,
11795        p300pfs::Pmr,
11796        p300pfs::Pmr,
11797        P300Pfs_SPEC,
11798        crate::common::RW,
11799    > {
11800        crate::common::RegisterField::<
11801            16,
11802            0x1,
11803            1,
11804            0,
11805            p300pfs::Pmr,
11806            p300pfs::Pmr,
11807            P300Pfs_SPEC,
11808            crate::common::RW,
11809        >::from_register(self, 0)
11810    }
11811
11812    #[doc = "Peripheral Select"]
11813    #[inline(always)]
11814    pub fn psel(
11815        self,
11816    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
11817        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
11818    }
11819}
11820impl ::core::default::Default for P300Pfs {
11821    #[inline(always)]
11822    fn default() -> P300Pfs {
11823        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65536)
11824    }
11825}
11826pub mod p300pfs {
11827
11828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11829    pub struct Podr_SPEC;
11830    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11831    impl Podr {
11832        #[doc = "Output low"]
11833        pub const _0: Self = Self::new(0);
11834
11835        #[doc = "Output high"]
11836        pub const _1: Self = Self::new(1);
11837    }
11838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11839    pub struct Pidr_SPEC;
11840    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11841    impl Pidr {
11842        #[doc = "Low level"]
11843        pub const _0: Self = Self::new(0);
11844
11845        #[doc = "High level"]
11846        pub const _1: Self = Self::new(1);
11847    }
11848    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11849    pub struct Pdr_SPEC;
11850    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11851    impl Pdr {
11852        #[doc = "Input (functions as an input pin)"]
11853        pub const _0: Self = Self::new(0);
11854
11855        #[doc = "Output (functions as an output pin)"]
11856        pub const _1: Self = Self::new(1);
11857    }
11858    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11859    pub struct Pcr_SPEC;
11860    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11861    impl Pcr {
11862        #[doc = "Disable input pull-up"]
11863        pub const _0: Self = Self::new(0);
11864
11865        #[doc = "Enable input pull-up"]
11866        pub const _1: Self = Self::new(1);
11867    }
11868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11869    pub struct Ncodr_SPEC;
11870    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11871    impl Ncodr {
11872        #[doc = "Output CMOS"]
11873        pub const _0: Self = Self::new(0);
11874
11875        #[doc = "Output NMOS open-drain"]
11876        pub const _1: Self = Self::new(1);
11877    }
11878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11879    pub struct Isel_SPEC;
11880    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11881    impl Isel {
11882        #[doc = "Do not use as IRQn input pin"]
11883        pub const _0: Self = Self::new(0);
11884
11885        #[doc = "Use as IRQn input pin"]
11886        pub const _1: Self = Self::new(1);
11887    }
11888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11889    pub struct Asel_SPEC;
11890    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11891    impl Asel {
11892        #[doc = "Do not use as analog pin"]
11893        pub const _0: Self = Self::new(0);
11894
11895        #[doc = "Use as analog pin"]
11896        pub const _1: Self = Self::new(1);
11897    }
11898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11899    pub struct Pmr_SPEC;
11900    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11901    impl Pmr {
11902        #[doc = "Use as general I/O pin"]
11903        pub const _0: Self = Self::new(0);
11904
11905        #[doc = "Use as I/O port for peripheral functions"]
11906        pub const _1: Self = Self::new(1);
11907    }
11908}
11909#[doc(hidden)]
11910#[derive(Copy, Clone, Eq, PartialEq)]
11911pub struct P300PfsHa_SPEC;
11912impl crate::sealed::RegSpec for P300PfsHa_SPEC {
11913    type DataType = u16;
11914}
11915
11916#[doc = "Port 300 Pin Function Select Register"]
11917pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
11918
11919impl P300PfsHa {
11920    #[doc = "Port Output Data"]
11921    #[inline(always)]
11922    pub fn podr(
11923        self,
11924    ) -> crate::common::RegisterField<
11925        0,
11926        0x1,
11927        1,
11928        0,
11929        p300pfs_ha::Podr,
11930        p300pfs_ha::Podr,
11931        P300PfsHa_SPEC,
11932        crate::common::RW,
11933    > {
11934        crate::common::RegisterField::<
11935            0,
11936            0x1,
11937            1,
11938            0,
11939            p300pfs_ha::Podr,
11940            p300pfs_ha::Podr,
11941            P300PfsHa_SPEC,
11942            crate::common::RW,
11943        >::from_register(self, 0)
11944    }
11945
11946    #[doc = "Port State"]
11947    #[inline(always)]
11948    pub fn pidr(
11949        self,
11950    ) -> crate::common::RegisterField<
11951        1,
11952        0x1,
11953        1,
11954        0,
11955        p300pfs_ha::Pidr,
11956        p300pfs_ha::Pidr,
11957        P300PfsHa_SPEC,
11958        crate::common::R,
11959    > {
11960        crate::common::RegisterField::<
11961            1,
11962            0x1,
11963            1,
11964            0,
11965            p300pfs_ha::Pidr,
11966            p300pfs_ha::Pidr,
11967            P300PfsHa_SPEC,
11968            crate::common::R,
11969        >::from_register(self, 0)
11970    }
11971
11972    #[doc = "Port Direction"]
11973    #[inline(always)]
11974    pub fn pdr(
11975        self,
11976    ) -> crate::common::RegisterField<
11977        2,
11978        0x1,
11979        1,
11980        0,
11981        p300pfs_ha::Pdr,
11982        p300pfs_ha::Pdr,
11983        P300PfsHa_SPEC,
11984        crate::common::RW,
11985    > {
11986        crate::common::RegisterField::<
11987            2,
11988            0x1,
11989            1,
11990            0,
11991            p300pfs_ha::Pdr,
11992            p300pfs_ha::Pdr,
11993            P300PfsHa_SPEC,
11994            crate::common::RW,
11995        >::from_register(self, 0)
11996    }
11997
11998    #[doc = "Pull-up Control"]
11999    #[inline(always)]
12000    pub fn pcr(
12001        self,
12002    ) -> crate::common::RegisterField<
12003        4,
12004        0x1,
12005        1,
12006        0,
12007        p300pfs_ha::Pcr,
12008        p300pfs_ha::Pcr,
12009        P300PfsHa_SPEC,
12010        crate::common::RW,
12011    > {
12012        crate::common::RegisterField::<
12013            4,
12014            0x1,
12015            1,
12016            0,
12017            p300pfs_ha::Pcr,
12018            p300pfs_ha::Pcr,
12019            P300PfsHa_SPEC,
12020            crate::common::RW,
12021        >::from_register(self, 0)
12022    }
12023
12024    #[doc = "N-Channel Open-Drain Control"]
12025    #[inline(always)]
12026    pub fn ncodr(
12027        self,
12028    ) -> crate::common::RegisterField<
12029        6,
12030        0x1,
12031        1,
12032        0,
12033        p300pfs_ha::Ncodr,
12034        p300pfs_ha::Ncodr,
12035        P300PfsHa_SPEC,
12036        crate::common::RW,
12037    > {
12038        crate::common::RegisterField::<
12039            6,
12040            0x1,
12041            1,
12042            0,
12043            p300pfs_ha::Ncodr,
12044            p300pfs_ha::Ncodr,
12045            P300PfsHa_SPEC,
12046            crate::common::RW,
12047        >::from_register(self, 0)
12048    }
12049
12050    #[doc = "IRQ Input Enable"]
12051    #[inline(always)]
12052    pub fn isel(
12053        self,
12054    ) -> crate::common::RegisterField<
12055        14,
12056        0x1,
12057        1,
12058        0,
12059        p300pfs_ha::Isel,
12060        p300pfs_ha::Isel,
12061        P300PfsHa_SPEC,
12062        crate::common::RW,
12063    > {
12064        crate::common::RegisterField::<
12065            14,
12066            0x1,
12067            1,
12068            0,
12069            p300pfs_ha::Isel,
12070            p300pfs_ha::Isel,
12071            P300PfsHa_SPEC,
12072            crate::common::RW,
12073        >::from_register(self, 0)
12074    }
12075
12076    #[doc = "Analog Input Enable"]
12077    #[inline(always)]
12078    pub fn asel(
12079        self,
12080    ) -> crate::common::RegisterField<
12081        15,
12082        0x1,
12083        1,
12084        0,
12085        p300pfs_ha::Asel,
12086        p300pfs_ha::Asel,
12087        P300PfsHa_SPEC,
12088        crate::common::RW,
12089    > {
12090        crate::common::RegisterField::<
12091            15,
12092            0x1,
12093            1,
12094            0,
12095            p300pfs_ha::Asel,
12096            p300pfs_ha::Asel,
12097            P300PfsHa_SPEC,
12098            crate::common::RW,
12099        >::from_register(self, 0)
12100    }
12101}
12102impl ::core::default::Default for P300PfsHa {
12103    #[inline(always)]
12104    fn default() -> P300PfsHa {
12105        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(0)
12106    }
12107}
12108pub mod p300pfs_ha {
12109
12110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12111    pub struct Podr_SPEC;
12112    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12113    impl Podr {
12114        #[doc = "Output low"]
12115        pub const _0: Self = Self::new(0);
12116
12117        #[doc = "Output high"]
12118        pub const _1: Self = Self::new(1);
12119    }
12120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12121    pub struct Pidr_SPEC;
12122    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12123    impl Pidr {
12124        #[doc = "Low level"]
12125        pub const _0: Self = Self::new(0);
12126
12127        #[doc = "High level"]
12128        pub const _1: Self = Self::new(1);
12129    }
12130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12131    pub struct Pdr_SPEC;
12132    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12133    impl Pdr {
12134        #[doc = "Input (functions as an input pin)"]
12135        pub const _0: Self = Self::new(0);
12136
12137        #[doc = "Output (functions as an output pin)"]
12138        pub const _1: Self = Self::new(1);
12139    }
12140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12141    pub struct Pcr_SPEC;
12142    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12143    impl Pcr {
12144        #[doc = "Disable input pull-up"]
12145        pub const _0: Self = Self::new(0);
12146
12147        #[doc = "Enable input pull-up"]
12148        pub const _1: Self = Self::new(1);
12149    }
12150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12151    pub struct Ncodr_SPEC;
12152    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12153    impl Ncodr {
12154        #[doc = "Output CMOS"]
12155        pub const _0: Self = Self::new(0);
12156
12157        #[doc = "Output NMOS open-drain"]
12158        pub const _1: Self = Self::new(1);
12159    }
12160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12161    pub struct Isel_SPEC;
12162    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12163    impl Isel {
12164        #[doc = "Do not use as IRQn input pin"]
12165        pub const _0: Self = Self::new(0);
12166
12167        #[doc = "Use as IRQn input pin"]
12168        pub const _1: Self = Self::new(1);
12169    }
12170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12171    pub struct Asel_SPEC;
12172    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12173    impl Asel {
12174        #[doc = "Do not use as analog pin"]
12175        pub const _0: Self = Self::new(0);
12176
12177        #[doc = "Use as analog pin"]
12178        pub const _1: Self = Self::new(1);
12179    }
12180}
12181#[doc(hidden)]
12182#[derive(Copy, Clone, Eq, PartialEq)]
12183pub struct P300PfsBy_SPEC;
12184impl crate::sealed::RegSpec for P300PfsBy_SPEC {
12185    type DataType = u8;
12186}
12187
12188#[doc = "Port 300 Pin Function Select Register"]
12189pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
12190
12191impl P300PfsBy {
12192    #[doc = "Port Output Data"]
12193    #[inline(always)]
12194    pub fn podr(
12195        self,
12196    ) -> crate::common::RegisterField<
12197        0,
12198        0x1,
12199        1,
12200        0,
12201        p300pfs_by::Podr,
12202        p300pfs_by::Podr,
12203        P300PfsBy_SPEC,
12204        crate::common::RW,
12205    > {
12206        crate::common::RegisterField::<
12207            0,
12208            0x1,
12209            1,
12210            0,
12211            p300pfs_by::Podr,
12212            p300pfs_by::Podr,
12213            P300PfsBy_SPEC,
12214            crate::common::RW,
12215        >::from_register(self, 0)
12216    }
12217
12218    #[doc = "Port State"]
12219    #[inline(always)]
12220    pub fn pidr(
12221        self,
12222    ) -> crate::common::RegisterField<
12223        1,
12224        0x1,
12225        1,
12226        0,
12227        p300pfs_by::Pidr,
12228        p300pfs_by::Pidr,
12229        P300PfsBy_SPEC,
12230        crate::common::R,
12231    > {
12232        crate::common::RegisterField::<
12233            1,
12234            0x1,
12235            1,
12236            0,
12237            p300pfs_by::Pidr,
12238            p300pfs_by::Pidr,
12239            P300PfsBy_SPEC,
12240            crate::common::R,
12241        >::from_register(self, 0)
12242    }
12243
12244    #[doc = "Port Direction"]
12245    #[inline(always)]
12246    pub fn pdr(
12247        self,
12248    ) -> crate::common::RegisterField<
12249        2,
12250        0x1,
12251        1,
12252        0,
12253        p300pfs_by::Pdr,
12254        p300pfs_by::Pdr,
12255        P300PfsBy_SPEC,
12256        crate::common::RW,
12257    > {
12258        crate::common::RegisterField::<
12259            2,
12260            0x1,
12261            1,
12262            0,
12263            p300pfs_by::Pdr,
12264            p300pfs_by::Pdr,
12265            P300PfsBy_SPEC,
12266            crate::common::RW,
12267        >::from_register(self, 0)
12268    }
12269
12270    #[doc = "Pull-up Control"]
12271    #[inline(always)]
12272    pub fn pcr(
12273        self,
12274    ) -> crate::common::RegisterField<
12275        4,
12276        0x1,
12277        1,
12278        0,
12279        p300pfs_by::Pcr,
12280        p300pfs_by::Pcr,
12281        P300PfsBy_SPEC,
12282        crate::common::RW,
12283    > {
12284        crate::common::RegisterField::<
12285            4,
12286            0x1,
12287            1,
12288            0,
12289            p300pfs_by::Pcr,
12290            p300pfs_by::Pcr,
12291            P300PfsBy_SPEC,
12292            crate::common::RW,
12293        >::from_register(self, 0)
12294    }
12295
12296    #[doc = "N-Channel Open-Drain Control"]
12297    #[inline(always)]
12298    pub fn ncodr(
12299        self,
12300    ) -> crate::common::RegisterField<
12301        6,
12302        0x1,
12303        1,
12304        0,
12305        p300pfs_by::Ncodr,
12306        p300pfs_by::Ncodr,
12307        P300PfsBy_SPEC,
12308        crate::common::RW,
12309    > {
12310        crate::common::RegisterField::<
12311            6,
12312            0x1,
12313            1,
12314            0,
12315            p300pfs_by::Ncodr,
12316            p300pfs_by::Ncodr,
12317            P300PfsBy_SPEC,
12318            crate::common::RW,
12319        >::from_register(self, 0)
12320    }
12321}
12322impl ::core::default::Default for P300PfsBy {
12323    #[inline(always)]
12324    fn default() -> P300PfsBy {
12325        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(0)
12326    }
12327}
12328pub mod p300pfs_by {
12329
12330    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12331    pub struct Podr_SPEC;
12332    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12333    impl Podr {
12334        #[doc = "Output low"]
12335        pub const _0: Self = Self::new(0);
12336
12337        #[doc = "Output high"]
12338        pub const _1: Self = Self::new(1);
12339    }
12340    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12341    pub struct Pidr_SPEC;
12342    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12343    impl Pidr {
12344        #[doc = "Low level"]
12345        pub const _0: Self = Self::new(0);
12346
12347        #[doc = "High level"]
12348        pub const _1: Self = Self::new(1);
12349    }
12350    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12351    pub struct Pdr_SPEC;
12352    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12353    impl Pdr {
12354        #[doc = "Input (functions as an input pin)"]
12355        pub const _0: Self = Self::new(0);
12356
12357        #[doc = "Output (functions as an output pin)"]
12358        pub const _1: Self = Self::new(1);
12359    }
12360    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12361    pub struct Pcr_SPEC;
12362    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12363    impl Pcr {
12364        #[doc = "Disable input pull-up"]
12365        pub const _0: Self = Self::new(0);
12366
12367        #[doc = "Enable input pull-up"]
12368        pub const _1: Self = Self::new(1);
12369    }
12370    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12371    pub struct Ncodr_SPEC;
12372    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12373    impl Ncodr {
12374        #[doc = "Output CMOS"]
12375        pub const _0: Self = Self::new(0);
12376
12377        #[doc = "Output NMOS open-drain"]
12378        pub const _1: Self = Self::new(1);
12379    }
12380}
12381#[doc(hidden)]
12382#[derive(Copy, Clone, Eq, PartialEq)]
12383pub struct P30Pfs_SPEC;
12384impl crate::sealed::RegSpec for P30Pfs_SPEC {
12385    type DataType = u32;
12386}
12387
12388#[doc = "Port 30%s Pin Function Select Register"]
12389pub type P30Pfs = crate::RegValueT<P30Pfs_SPEC>;
12390
12391impl P30Pfs {
12392    #[doc = "Port Output Data"]
12393    #[inline(always)]
12394    pub fn podr(
12395        self,
12396    ) -> crate::common::RegisterField<
12397        0,
12398        0x1,
12399        1,
12400        0,
12401        p30pfs::Podr,
12402        p30pfs::Podr,
12403        P30Pfs_SPEC,
12404        crate::common::RW,
12405    > {
12406        crate::common::RegisterField::<
12407            0,
12408            0x1,
12409            1,
12410            0,
12411            p30pfs::Podr,
12412            p30pfs::Podr,
12413            P30Pfs_SPEC,
12414            crate::common::RW,
12415        >::from_register(self, 0)
12416    }
12417
12418    #[doc = "Port State"]
12419    #[inline(always)]
12420    pub fn pidr(
12421        self,
12422    ) -> crate::common::RegisterField<
12423        1,
12424        0x1,
12425        1,
12426        0,
12427        p30pfs::Pidr,
12428        p30pfs::Pidr,
12429        P30Pfs_SPEC,
12430        crate::common::R,
12431    > {
12432        crate::common::RegisterField::<
12433            1,
12434            0x1,
12435            1,
12436            0,
12437            p30pfs::Pidr,
12438            p30pfs::Pidr,
12439            P30Pfs_SPEC,
12440            crate::common::R,
12441        >::from_register(self, 0)
12442    }
12443
12444    #[doc = "Port Direction"]
12445    #[inline(always)]
12446    pub fn pdr(
12447        self,
12448    ) -> crate::common::RegisterField<
12449        2,
12450        0x1,
12451        1,
12452        0,
12453        p30pfs::Pdr,
12454        p30pfs::Pdr,
12455        P30Pfs_SPEC,
12456        crate::common::RW,
12457    > {
12458        crate::common::RegisterField::<
12459            2,
12460            0x1,
12461            1,
12462            0,
12463            p30pfs::Pdr,
12464            p30pfs::Pdr,
12465            P30Pfs_SPEC,
12466            crate::common::RW,
12467        >::from_register(self, 0)
12468    }
12469
12470    #[doc = "Pull-up Control"]
12471    #[inline(always)]
12472    pub fn pcr(
12473        self,
12474    ) -> crate::common::RegisterField<
12475        4,
12476        0x1,
12477        1,
12478        0,
12479        p30pfs::Pcr,
12480        p30pfs::Pcr,
12481        P30Pfs_SPEC,
12482        crate::common::RW,
12483    > {
12484        crate::common::RegisterField::<
12485            4,
12486            0x1,
12487            1,
12488            0,
12489            p30pfs::Pcr,
12490            p30pfs::Pcr,
12491            P30Pfs_SPEC,
12492            crate::common::RW,
12493        >::from_register(self, 0)
12494    }
12495
12496    #[doc = "N-Channel Open-Drain Control"]
12497    #[inline(always)]
12498    pub fn ncodr(
12499        self,
12500    ) -> crate::common::RegisterField<
12501        6,
12502        0x1,
12503        1,
12504        0,
12505        p30pfs::Ncodr,
12506        p30pfs::Ncodr,
12507        P30Pfs_SPEC,
12508        crate::common::RW,
12509    > {
12510        crate::common::RegisterField::<
12511            6,
12512            0x1,
12513            1,
12514            0,
12515            p30pfs::Ncodr,
12516            p30pfs::Ncodr,
12517            P30Pfs_SPEC,
12518            crate::common::RW,
12519        >::from_register(self, 0)
12520    }
12521
12522    #[doc = "IRQ Input Enable"]
12523    #[inline(always)]
12524    pub fn isel(
12525        self,
12526    ) -> crate::common::RegisterField<
12527        14,
12528        0x1,
12529        1,
12530        0,
12531        p30pfs::Isel,
12532        p30pfs::Isel,
12533        P30Pfs_SPEC,
12534        crate::common::RW,
12535    > {
12536        crate::common::RegisterField::<
12537            14,
12538            0x1,
12539            1,
12540            0,
12541            p30pfs::Isel,
12542            p30pfs::Isel,
12543            P30Pfs_SPEC,
12544            crate::common::RW,
12545        >::from_register(self, 0)
12546    }
12547
12548    #[doc = "Analog Input Enable"]
12549    #[inline(always)]
12550    pub fn asel(
12551        self,
12552    ) -> crate::common::RegisterField<
12553        15,
12554        0x1,
12555        1,
12556        0,
12557        p30pfs::Asel,
12558        p30pfs::Asel,
12559        P30Pfs_SPEC,
12560        crate::common::RW,
12561    > {
12562        crate::common::RegisterField::<
12563            15,
12564            0x1,
12565            1,
12566            0,
12567            p30pfs::Asel,
12568            p30pfs::Asel,
12569            P30Pfs_SPEC,
12570            crate::common::RW,
12571        >::from_register(self, 0)
12572    }
12573
12574    #[doc = "Port Mode Control"]
12575    #[inline(always)]
12576    pub fn pmr(
12577        self,
12578    ) -> crate::common::RegisterField<
12579        16,
12580        0x1,
12581        1,
12582        0,
12583        p30pfs::Pmr,
12584        p30pfs::Pmr,
12585        P30Pfs_SPEC,
12586        crate::common::RW,
12587    > {
12588        crate::common::RegisterField::<
12589            16,
12590            0x1,
12591            1,
12592            0,
12593            p30pfs::Pmr,
12594            p30pfs::Pmr,
12595            P30Pfs_SPEC,
12596            crate::common::RW,
12597        >::from_register(self, 0)
12598    }
12599
12600    #[doc = "Peripheral Select"]
12601    #[inline(always)]
12602    pub fn psel(
12603        self,
12604    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P30Pfs_SPEC, crate::common::RW> {
12605        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P30Pfs_SPEC,crate::common::RW>::from_register(self,0)
12606    }
12607}
12608impl ::core::default::Default for P30Pfs {
12609    #[inline(always)]
12610    fn default() -> P30Pfs {
12611        <crate::RegValueT<P30Pfs_SPEC> as RegisterValue<_>>::new(0)
12612    }
12613}
12614pub mod p30pfs {
12615
12616    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12617    pub struct Podr_SPEC;
12618    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12619    impl Podr {
12620        #[doc = "Output low"]
12621        pub const _0: Self = Self::new(0);
12622
12623        #[doc = "Output high"]
12624        pub const _1: Self = Self::new(1);
12625    }
12626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12627    pub struct Pidr_SPEC;
12628    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12629    impl Pidr {
12630        #[doc = "Low level"]
12631        pub const _0: Self = Self::new(0);
12632
12633        #[doc = "High level"]
12634        pub const _1: Self = Self::new(1);
12635    }
12636    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12637    pub struct Pdr_SPEC;
12638    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12639    impl Pdr {
12640        #[doc = "Input (functions as an input pin)"]
12641        pub const _0: Self = Self::new(0);
12642
12643        #[doc = "Output (functions as an output pin)"]
12644        pub const _1: Self = Self::new(1);
12645    }
12646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12647    pub struct Pcr_SPEC;
12648    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12649    impl Pcr {
12650        #[doc = "Disable input pull-up"]
12651        pub const _0: Self = Self::new(0);
12652
12653        #[doc = "Enable input pull-up"]
12654        pub const _1: Self = Self::new(1);
12655    }
12656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12657    pub struct Ncodr_SPEC;
12658    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12659    impl Ncodr {
12660        #[doc = "Output CMOS"]
12661        pub const _0: Self = Self::new(0);
12662
12663        #[doc = "Output NMOS open-drain"]
12664        pub const _1: Self = Self::new(1);
12665    }
12666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12667    pub struct Isel_SPEC;
12668    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12669    impl Isel {
12670        #[doc = "Do not use as IRQn input pin"]
12671        pub const _0: Self = Self::new(0);
12672
12673        #[doc = "Use as IRQn input pin"]
12674        pub const _1: Self = Self::new(1);
12675    }
12676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12677    pub struct Asel_SPEC;
12678    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12679    impl Asel {
12680        #[doc = "Do not use as analog pin"]
12681        pub const _0: Self = Self::new(0);
12682
12683        #[doc = "Use as analog pin"]
12684        pub const _1: Self = Self::new(1);
12685    }
12686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12687    pub struct Pmr_SPEC;
12688    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
12689    impl Pmr {
12690        #[doc = "Use as general I/O pin"]
12691        pub const _0: Self = Self::new(0);
12692
12693        #[doc = "Use as I/O port for peripheral functions"]
12694        pub const _1: Self = Self::new(1);
12695    }
12696}
12697#[doc(hidden)]
12698#[derive(Copy, Clone, Eq, PartialEq)]
12699pub struct P30PfsHa_SPEC;
12700impl crate::sealed::RegSpec for P30PfsHa_SPEC {
12701    type DataType = u16;
12702}
12703
12704#[doc = "Port 30%s Pin Function Select Register"]
12705pub type P30PfsHa = crate::RegValueT<P30PfsHa_SPEC>;
12706
12707impl P30PfsHa {
12708    #[doc = "Port Output Data"]
12709    #[inline(always)]
12710    pub fn podr(
12711        self,
12712    ) -> crate::common::RegisterField<
12713        0,
12714        0x1,
12715        1,
12716        0,
12717        p30pfs_ha::Podr,
12718        p30pfs_ha::Podr,
12719        P30PfsHa_SPEC,
12720        crate::common::RW,
12721    > {
12722        crate::common::RegisterField::<
12723            0,
12724            0x1,
12725            1,
12726            0,
12727            p30pfs_ha::Podr,
12728            p30pfs_ha::Podr,
12729            P30PfsHa_SPEC,
12730            crate::common::RW,
12731        >::from_register(self, 0)
12732    }
12733
12734    #[doc = "Port State"]
12735    #[inline(always)]
12736    pub fn pidr(
12737        self,
12738    ) -> crate::common::RegisterField<
12739        1,
12740        0x1,
12741        1,
12742        0,
12743        p30pfs_ha::Pidr,
12744        p30pfs_ha::Pidr,
12745        P30PfsHa_SPEC,
12746        crate::common::R,
12747    > {
12748        crate::common::RegisterField::<
12749            1,
12750            0x1,
12751            1,
12752            0,
12753            p30pfs_ha::Pidr,
12754            p30pfs_ha::Pidr,
12755            P30PfsHa_SPEC,
12756            crate::common::R,
12757        >::from_register(self, 0)
12758    }
12759
12760    #[doc = "Port Direction"]
12761    #[inline(always)]
12762    pub fn pdr(
12763        self,
12764    ) -> crate::common::RegisterField<
12765        2,
12766        0x1,
12767        1,
12768        0,
12769        p30pfs_ha::Pdr,
12770        p30pfs_ha::Pdr,
12771        P30PfsHa_SPEC,
12772        crate::common::RW,
12773    > {
12774        crate::common::RegisterField::<
12775            2,
12776            0x1,
12777            1,
12778            0,
12779            p30pfs_ha::Pdr,
12780            p30pfs_ha::Pdr,
12781            P30PfsHa_SPEC,
12782            crate::common::RW,
12783        >::from_register(self, 0)
12784    }
12785
12786    #[doc = "Pull-up Control"]
12787    #[inline(always)]
12788    pub fn pcr(
12789        self,
12790    ) -> crate::common::RegisterField<
12791        4,
12792        0x1,
12793        1,
12794        0,
12795        p30pfs_ha::Pcr,
12796        p30pfs_ha::Pcr,
12797        P30PfsHa_SPEC,
12798        crate::common::RW,
12799    > {
12800        crate::common::RegisterField::<
12801            4,
12802            0x1,
12803            1,
12804            0,
12805            p30pfs_ha::Pcr,
12806            p30pfs_ha::Pcr,
12807            P30PfsHa_SPEC,
12808            crate::common::RW,
12809        >::from_register(self, 0)
12810    }
12811
12812    #[doc = "N-Channel Open-Drain Control"]
12813    #[inline(always)]
12814    pub fn ncodr(
12815        self,
12816    ) -> crate::common::RegisterField<
12817        6,
12818        0x1,
12819        1,
12820        0,
12821        p30pfs_ha::Ncodr,
12822        p30pfs_ha::Ncodr,
12823        P30PfsHa_SPEC,
12824        crate::common::RW,
12825    > {
12826        crate::common::RegisterField::<
12827            6,
12828            0x1,
12829            1,
12830            0,
12831            p30pfs_ha::Ncodr,
12832            p30pfs_ha::Ncodr,
12833            P30PfsHa_SPEC,
12834            crate::common::RW,
12835        >::from_register(self, 0)
12836    }
12837
12838    #[doc = "IRQ Input Enable"]
12839    #[inline(always)]
12840    pub fn isel(
12841        self,
12842    ) -> crate::common::RegisterField<
12843        14,
12844        0x1,
12845        1,
12846        0,
12847        p30pfs_ha::Isel,
12848        p30pfs_ha::Isel,
12849        P30PfsHa_SPEC,
12850        crate::common::RW,
12851    > {
12852        crate::common::RegisterField::<
12853            14,
12854            0x1,
12855            1,
12856            0,
12857            p30pfs_ha::Isel,
12858            p30pfs_ha::Isel,
12859            P30PfsHa_SPEC,
12860            crate::common::RW,
12861        >::from_register(self, 0)
12862    }
12863
12864    #[doc = "Analog Input Enable"]
12865    #[inline(always)]
12866    pub fn asel(
12867        self,
12868    ) -> crate::common::RegisterField<
12869        15,
12870        0x1,
12871        1,
12872        0,
12873        p30pfs_ha::Asel,
12874        p30pfs_ha::Asel,
12875        P30PfsHa_SPEC,
12876        crate::common::RW,
12877    > {
12878        crate::common::RegisterField::<
12879            15,
12880            0x1,
12881            1,
12882            0,
12883            p30pfs_ha::Asel,
12884            p30pfs_ha::Asel,
12885            P30PfsHa_SPEC,
12886            crate::common::RW,
12887        >::from_register(self, 0)
12888    }
12889}
12890impl ::core::default::Default for P30PfsHa {
12891    #[inline(always)]
12892    fn default() -> P30PfsHa {
12893        <crate::RegValueT<P30PfsHa_SPEC> as RegisterValue<_>>::new(0)
12894    }
12895}
12896pub mod p30pfs_ha {
12897
12898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12899    pub struct Podr_SPEC;
12900    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12901    impl Podr {
12902        #[doc = "Output low"]
12903        pub const _0: Self = Self::new(0);
12904
12905        #[doc = "Output high"]
12906        pub const _1: Self = Self::new(1);
12907    }
12908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12909    pub struct Pidr_SPEC;
12910    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12911    impl Pidr {
12912        #[doc = "Low level"]
12913        pub const _0: Self = Self::new(0);
12914
12915        #[doc = "High level"]
12916        pub const _1: Self = Self::new(1);
12917    }
12918    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12919    pub struct Pdr_SPEC;
12920    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12921    impl Pdr {
12922        #[doc = "Input (functions as an input pin)"]
12923        pub const _0: Self = Self::new(0);
12924
12925        #[doc = "Output (functions as an output pin)"]
12926        pub const _1: Self = Self::new(1);
12927    }
12928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12929    pub struct Pcr_SPEC;
12930    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12931    impl Pcr {
12932        #[doc = "Disable input pull-up"]
12933        pub const _0: Self = Self::new(0);
12934
12935        #[doc = "Enable input pull-up"]
12936        pub const _1: Self = Self::new(1);
12937    }
12938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12939    pub struct Ncodr_SPEC;
12940    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12941    impl Ncodr {
12942        #[doc = "Output CMOS"]
12943        pub const _0: Self = Self::new(0);
12944
12945        #[doc = "Output NMOS open-drain"]
12946        pub const _1: Self = Self::new(1);
12947    }
12948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12949    pub struct Isel_SPEC;
12950    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12951    impl Isel {
12952        #[doc = "Do not use as IRQn input pin"]
12953        pub const _0: Self = Self::new(0);
12954
12955        #[doc = "Use as IRQn input pin"]
12956        pub const _1: Self = Self::new(1);
12957    }
12958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12959    pub struct Asel_SPEC;
12960    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12961    impl Asel {
12962        #[doc = "Do not use as analog pin"]
12963        pub const _0: Self = Self::new(0);
12964
12965        #[doc = "Use as analog pin"]
12966        pub const _1: Self = Self::new(1);
12967    }
12968}
12969#[doc(hidden)]
12970#[derive(Copy, Clone, Eq, PartialEq)]
12971pub struct P30PfsBy_SPEC;
12972impl crate::sealed::RegSpec for P30PfsBy_SPEC {
12973    type DataType = u8;
12974}
12975
12976#[doc = "Port 30%s Pin Function Select Register"]
12977pub type P30PfsBy = crate::RegValueT<P30PfsBy_SPEC>;
12978
12979impl P30PfsBy {
12980    #[doc = "Port Output Data"]
12981    #[inline(always)]
12982    pub fn podr(
12983        self,
12984    ) -> crate::common::RegisterField<
12985        0,
12986        0x1,
12987        1,
12988        0,
12989        p30pfs_by::Podr,
12990        p30pfs_by::Podr,
12991        P30PfsBy_SPEC,
12992        crate::common::RW,
12993    > {
12994        crate::common::RegisterField::<
12995            0,
12996            0x1,
12997            1,
12998            0,
12999            p30pfs_by::Podr,
13000            p30pfs_by::Podr,
13001            P30PfsBy_SPEC,
13002            crate::common::RW,
13003        >::from_register(self, 0)
13004    }
13005
13006    #[doc = "Port State"]
13007    #[inline(always)]
13008    pub fn pidr(
13009        self,
13010    ) -> crate::common::RegisterField<
13011        1,
13012        0x1,
13013        1,
13014        0,
13015        p30pfs_by::Pidr,
13016        p30pfs_by::Pidr,
13017        P30PfsBy_SPEC,
13018        crate::common::R,
13019    > {
13020        crate::common::RegisterField::<
13021            1,
13022            0x1,
13023            1,
13024            0,
13025            p30pfs_by::Pidr,
13026            p30pfs_by::Pidr,
13027            P30PfsBy_SPEC,
13028            crate::common::R,
13029        >::from_register(self, 0)
13030    }
13031
13032    #[doc = "Port Direction"]
13033    #[inline(always)]
13034    pub fn pdr(
13035        self,
13036    ) -> crate::common::RegisterField<
13037        2,
13038        0x1,
13039        1,
13040        0,
13041        p30pfs_by::Pdr,
13042        p30pfs_by::Pdr,
13043        P30PfsBy_SPEC,
13044        crate::common::RW,
13045    > {
13046        crate::common::RegisterField::<
13047            2,
13048            0x1,
13049            1,
13050            0,
13051            p30pfs_by::Pdr,
13052            p30pfs_by::Pdr,
13053            P30PfsBy_SPEC,
13054            crate::common::RW,
13055        >::from_register(self, 0)
13056    }
13057
13058    #[doc = "Pull-up Control"]
13059    #[inline(always)]
13060    pub fn pcr(
13061        self,
13062    ) -> crate::common::RegisterField<
13063        4,
13064        0x1,
13065        1,
13066        0,
13067        p30pfs_by::Pcr,
13068        p30pfs_by::Pcr,
13069        P30PfsBy_SPEC,
13070        crate::common::RW,
13071    > {
13072        crate::common::RegisterField::<
13073            4,
13074            0x1,
13075            1,
13076            0,
13077            p30pfs_by::Pcr,
13078            p30pfs_by::Pcr,
13079            P30PfsBy_SPEC,
13080            crate::common::RW,
13081        >::from_register(self, 0)
13082    }
13083
13084    #[doc = "N-Channel Open-Drain Control"]
13085    #[inline(always)]
13086    pub fn ncodr(
13087        self,
13088    ) -> crate::common::RegisterField<
13089        6,
13090        0x1,
13091        1,
13092        0,
13093        p30pfs_by::Ncodr,
13094        p30pfs_by::Ncodr,
13095        P30PfsBy_SPEC,
13096        crate::common::RW,
13097    > {
13098        crate::common::RegisterField::<
13099            6,
13100            0x1,
13101            1,
13102            0,
13103            p30pfs_by::Ncodr,
13104            p30pfs_by::Ncodr,
13105            P30PfsBy_SPEC,
13106            crate::common::RW,
13107        >::from_register(self, 0)
13108    }
13109}
13110impl ::core::default::Default for P30PfsBy {
13111    #[inline(always)]
13112    fn default() -> P30PfsBy {
13113        <crate::RegValueT<P30PfsBy_SPEC> as RegisterValue<_>>::new(0)
13114    }
13115}
13116pub mod p30pfs_by {
13117
13118    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13119    pub struct Podr_SPEC;
13120    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13121    impl Podr {
13122        #[doc = "Output low"]
13123        pub const _0: Self = Self::new(0);
13124
13125        #[doc = "Output high"]
13126        pub const _1: Self = Self::new(1);
13127    }
13128    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13129    pub struct Pidr_SPEC;
13130    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13131    impl Pidr {
13132        #[doc = "Low level"]
13133        pub const _0: Self = Self::new(0);
13134
13135        #[doc = "High level"]
13136        pub const _1: Self = Self::new(1);
13137    }
13138    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13139    pub struct Pdr_SPEC;
13140    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13141    impl Pdr {
13142        #[doc = "Input (functions as an input pin)"]
13143        pub const _0: Self = Self::new(0);
13144
13145        #[doc = "Output (functions as an output pin)"]
13146        pub const _1: Self = Self::new(1);
13147    }
13148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13149    pub struct Pcr_SPEC;
13150    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13151    impl Pcr {
13152        #[doc = "Disable input pull-up"]
13153        pub const _0: Self = Self::new(0);
13154
13155        #[doc = "Enable input pull-up"]
13156        pub const _1: Self = Self::new(1);
13157    }
13158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13159    pub struct Ncodr_SPEC;
13160    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13161    impl Ncodr {
13162        #[doc = "Output CMOS"]
13163        pub const _0: Self = Self::new(0);
13164
13165        #[doc = "Output NMOS open-drain"]
13166        pub const _1: Self = Self::new(1);
13167    }
13168}
13169#[doc(hidden)]
13170#[derive(Copy, Clone, Eq, PartialEq)]
13171pub struct P40Pfs_SPEC;
13172impl crate::sealed::RegSpec for P40Pfs_SPEC {
13173    type DataType = u32;
13174}
13175
13176#[doc = "Port 40%s Pin Function Select Register"]
13177pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
13178
13179impl P40Pfs {
13180    #[doc = "Port Output Data"]
13181    #[inline(always)]
13182    pub fn podr(
13183        self,
13184    ) -> crate::common::RegisterField<
13185        0,
13186        0x1,
13187        1,
13188        0,
13189        p40pfs::Podr,
13190        p40pfs::Podr,
13191        P40Pfs_SPEC,
13192        crate::common::RW,
13193    > {
13194        crate::common::RegisterField::<
13195            0,
13196            0x1,
13197            1,
13198            0,
13199            p40pfs::Podr,
13200            p40pfs::Podr,
13201            P40Pfs_SPEC,
13202            crate::common::RW,
13203        >::from_register(self, 0)
13204    }
13205
13206    #[doc = "Port State"]
13207    #[inline(always)]
13208    pub fn pidr(
13209        self,
13210    ) -> crate::common::RegisterField<
13211        1,
13212        0x1,
13213        1,
13214        0,
13215        p40pfs::Pidr,
13216        p40pfs::Pidr,
13217        P40Pfs_SPEC,
13218        crate::common::R,
13219    > {
13220        crate::common::RegisterField::<
13221            1,
13222            0x1,
13223            1,
13224            0,
13225            p40pfs::Pidr,
13226            p40pfs::Pidr,
13227            P40Pfs_SPEC,
13228            crate::common::R,
13229        >::from_register(self, 0)
13230    }
13231
13232    #[doc = "Port Direction"]
13233    #[inline(always)]
13234    pub fn pdr(
13235        self,
13236    ) -> crate::common::RegisterField<
13237        2,
13238        0x1,
13239        1,
13240        0,
13241        p40pfs::Pdr,
13242        p40pfs::Pdr,
13243        P40Pfs_SPEC,
13244        crate::common::RW,
13245    > {
13246        crate::common::RegisterField::<
13247            2,
13248            0x1,
13249            1,
13250            0,
13251            p40pfs::Pdr,
13252            p40pfs::Pdr,
13253            P40Pfs_SPEC,
13254            crate::common::RW,
13255        >::from_register(self, 0)
13256    }
13257
13258    #[doc = "Pull-up Control"]
13259    #[inline(always)]
13260    pub fn pcr(
13261        self,
13262    ) -> crate::common::RegisterField<
13263        4,
13264        0x1,
13265        1,
13266        0,
13267        p40pfs::Pcr,
13268        p40pfs::Pcr,
13269        P40Pfs_SPEC,
13270        crate::common::RW,
13271    > {
13272        crate::common::RegisterField::<
13273            4,
13274            0x1,
13275            1,
13276            0,
13277            p40pfs::Pcr,
13278            p40pfs::Pcr,
13279            P40Pfs_SPEC,
13280            crate::common::RW,
13281        >::from_register(self, 0)
13282    }
13283
13284    #[doc = "N-Channel Open-Drain Control"]
13285    #[inline(always)]
13286    pub fn ncodr(
13287        self,
13288    ) -> crate::common::RegisterField<
13289        6,
13290        0x1,
13291        1,
13292        0,
13293        p40pfs::Ncodr,
13294        p40pfs::Ncodr,
13295        P40Pfs_SPEC,
13296        crate::common::RW,
13297    > {
13298        crate::common::RegisterField::<
13299            6,
13300            0x1,
13301            1,
13302            0,
13303            p40pfs::Ncodr,
13304            p40pfs::Ncodr,
13305            P40Pfs_SPEC,
13306            crate::common::RW,
13307        >::from_register(self, 0)
13308    }
13309
13310    #[doc = "IRQ Input Enable"]
13311    #[inline(always)]
13312    pub fn isel(
13313        self,
13314    ) -> crate::common::RegisterField<
13315        14,
13316        0x1,
13317        1,
13318        0,
13319        p40pfs::Isel,
13320        p40pfs::Isel,
13321        P40Pfs_SPEC,
13322        crate::common::RW,
13323    > {
13324        crate::common::RegisterField::<
13325            14,
13326            0x1,
13327            1,
13328            0,
13329            p40pfs::Isel,
13330            p40pfs::Isel,
13331            P40Pfs_SPEC,
13332            crate::common::RW,
13333        >::from_register(self, 0)
13334    }
13335
13336    #[doc = "Analog Input Enable"]
13337    #[inline(always)]
13338    pub fn asel(
13339        self,
13340    ) -> crate::common::RegisterField<
13341        15,
13342        0x1,
13343        1,
13344        0,
13345        p40pfs::Asel,
13346        p40pfs::Asel,
13347        P40Pfs_SPEC,
13348        crate::common::RW,
13349    > {
13350        crate::common::RegisterField::<
13351            15,
13352            0x1,
13353            1,
13354            0,
13355            p40pfs::Asel,
13356            p40pfs::Asel,
13357            P40Pfs_SPEC,
13358            crate::common::RW,
13359        >::from_register(self, 0)
13360    }
13361
13362    #[doc = "Port Mode Control"]
13363    #[inline(always)]
13364    pub fn pmr(
13365        self,
13366    ) -> crate::common::RegisterField<
13367        16,
13368        0x1,
13369        1,
13370        0,
13371        p40pfs::Pmr,
13372        p40pfs::Pmr,
13373        P40Pfs_SPEC,
13374        crate::common::RW,
13375    > {
13376        crate::common::RegisterField::<
13377            16,
13378            0x1,
13379            1,
13380            0,
13381            p40pfs::Pmr,
13382            p40pfs::Pmr,
13383            P40Pfs_SPEC,
13384            crate::common::RW,
13385        >::from_register(self, 0)
13386    }
13387
13388    #[doc = "Peripheral Select"]
13389    #[inline(always)]
13390    pub fn psel(
13391        self,
13392    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
13393        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
13394    }
13395}
13396impl ::core::default::Default for P40Pfs {
13397    #[inline(always)]
13398    fn default() -> P40Pfs {
13399        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
13400    }
13401}
13402pub mod p40pfs {
13403
13404    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13405    pub struct Podr_SPEC;
13406    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13407    impl Podr {
13408        #[doc = "Output low"]
13409        pub const _0: Self = Self::new(0);
13410
13411        #[doc = "Output high"]
13412        pub const _1: Self = Self::new(1);
13413    }
13414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13415    pub struct Pidr_SPEC;
13416    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13417    impl Pidr {
13418        #[doc = "Low level"]
13419        pub const _0: Self = Self::new(0);
13420
13421        #[doc = "High level"]
13422        pub const _1: Self = Self::new(1);
13423    }
13424    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13425    pub struct Pdr_SPEC;
13426    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13427    impl Pdr {
13428        #[doc = "Input (functions as an input pin)"]
13429        pub const _0: Self = Self::new(0);
13430
13431        #[doc = "Output (functions as an output pin)"]
13432        pub const _1: Self = Self::new(1);
13433    }
13434    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13435    pub struct Pcr_SPEC;
13436    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13437    impl Pcr {
13438        #[doc = "Disable input pull-up"]
13439        pub const _0: Self = Self::new(0);
13440
13441        #[doc = "Enable input pull-up"]
13442        pub const _1: Self = Self::new(1);
13443    }
13444    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13445    pub struct Ncodr_SPEC;
13446    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13447    impl Ncodr {
13448        #[doc = "Output CMOS"]
13449        pub const _0: Self = Self::new(0);
13450
13451        #[doc = "Output NMOS open-drain"]
13452        pub const _1: Self = Self::new(1);
13453    }
13454    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13455    pub struct Isel_SPEC;
13456    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13457    impl Isel {
13458        #[doc = "Do not use as IRQn input pin"]
13459        pub const _0: Self = Self::new(0);
13460
13461        #[doc = "Use as IRQn input pin"]
13462        pub const _1: Self = Self::new(1);
13463    }
13464    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13465    pub struct Asel_SPEC;
13466    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13467    impl Asel {
13468        #[doc = "Do not use as analog pin"]
13469        pub const _0: Self = Self::new(0);
13470
13471        #[doc = "Use as analog pin"]
13472        pub const _1: Self = Self::new(1);
13473    }
13474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13475    pub struct Pmr_SPEC;
13476    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13477    impl Pmr {
13478        #[doc = "Use as general I/O pin"]
13479        pub const _0: Self = Self::new(0);
13480
13481        #[doc = "Use as I/O port for peripheral functions"]
13482        pub const _1: Self = Self::new(1);
13483    }
13484}
13485#[doc(hidden)]
13486#[derive(Copy, Clone, Eq, PartialEq)]
13487pub struct P40PfsHa_SPEC;
13488impl crate::sealed::RegSpec for P40PfsHa_SPEC {
13489    type DataType = u16;
13490}
13491
13492#[doc = "Port 40%s Pin Function Select Register"]
13493pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
13494
13495impl P40PfsHa {
13496    #[doc = "Port Output Data"]
13497    #[inline(always)]
13498    pub fn podr(
13499        self,
13500    ) -> crate::common::RegisterField<
13501        0,
13502        0x1,
13503        1,
13504        0,
13505        p40pfs_ha::Podr,
13506        p40pfs_ha::Podr,
13507        P40PfsHa_SPEC,
13508        crate::common::RW,
13509    > {
13510        crate::common::RegisterField::<
13511            0,
13512            0x1,
13513            1,
13514            0,
13515            p40pfs_ha::Podr,
13516            p40pfs_ha::Podr,
13517            P40PfsHa_SPEC,
13518            crate::common::RW,
13519        >::from_register(self, 0)
13520    }
13521
13522    #[doc = "Port State"]
13523    #[inline(always)]
13524    pub fn pidr(
13525        self,
13526    ) -> crate::common::RegisterField<
13527        1,
13528        0x1,
13529        1,
13530        0,
13531        p40pfs_ha::Pidr,
13532        p40pfs_ha::Pidr,
13533        P40PfsHa_SPEC,
13534        crate::common::R,
13535    > {
13536        crate::common::RegisterField::<
13537            1,
13538            0x1,
13539            1,
13540            0,
13541            p40pfs_ha::Pidr,
13542            p40pfs_ha::Pidr,
13543            P40PfsHa_SPEC,
13544            crate::common::R,
13545        >::from_register(self, 0)
13546    }
13547
13548    #[doc = "Port Direction"]
13549    #[inline(always)]
13550    pub fn pdr(
13551        self,
13552    ) -> crate::common::RegisterField<
13553        2,
13554        0x1,
13555        1,
13556        0,
13557        p40pfs_ha::Pdr,
13558        p40pfs_ha::Pdr,
13559        P40PfsHa_SPEC,
13560        crate::common::RW,
13561    > {
13562        crate::common::RegisterField::<
13563            2,
13564            0x1,
13565            1,
13566            0,
13567            p40pfs_ha::Pdr,
13568            p40pfs_ha::Pdr,
13569            P40PfsHa_SPEC,
13570            crate::common::RW,
13571        >::from_register(self, 0)
13572    }
13573
13574    #[doc = "Pull-up Control"]
13575    #[inline(always)]
13576    pub fn pcr(
13577        self,
13578    ) -> crate::common::RegisterField<
13579        4,
13580        0x1,
13581        1,
13582        0,
13583        p40pfs_ha::Pcr,
13584        p40pfs_ha::Pcr,
13585        P40PfsHa_SPEC,
13586        crate::common::RW,
13587    > {
13588        crate::common::RegisterField::<
13589            4,
13590            0x1,
13591            1,
13592            0,
13593            p40pfs_ha::Pcr,
13594            p40pfs_ha::Pcr,
13595            P40PfsHa_SPEC,
13596            crate::common::RW,
13597        >::from_register(self, 0)
13598    }
13599
13600    #[doc = "N-Channel Open-Drain Control"]
13601    #[inline(always)]
13602    pub fn ncodr(
13603        self,
13604    ) -> crate::common::RegisterField<
13605        6,
13606        0x1,
13607        1,
13608        0,
13609        p40pfs_ha::Ncodr,
13610        p40pfs_ha::Ncodr,
13611        P40PfsHa_SPEC,
13612        crate::common::RW,
13613    > {
13614        crate::common::RegisterField::<
13615            6,
13616            0x1,
13617            1,
13618            0,
13619            p40pfs_ha::Ncodr,
13620            p40pfs_ha::Ncodr,
13621            P40PfsHa_SPEC,
13622            crate::common::RW,
13623        >::from_register(self, 0)
13624    }
13625
13626    #[doc = "IRQ Input Enable"]
13627    #[inline(always)]
13628    pub fn isel(
13629        self,
13630    ) -> crate::common::RegisterField<
13631        14,
13632        0x1,
13633        1,
13634        0,
13635        p40pfs_ha::Isel,
13636        p40pfs_ha::Isel,
13637        P40PfsHa_SPEC,
13638        crate::common::RW,
13639    > {
13640        crate::common::RegisterField::<
13641            14,
13642            0x1,
13643            1,
13644            0,
13645            p40pfs_ha::Isel,
13646            p40pfs_ha::Isel,
13647            P40PfsHa_SPEC,
13648            crate::common::RW,
13649        >::from_register(self, 0)
13650    }
13651
13652    #[doc = "Analog Input Enable"]
13653    #[inline(always)]
13654    pub fn asel(
13655        self,
13656    ) -> crate::common::RegisterField<
13657        15,
13658        0x1,
13659        1,
13660        0,
13661        p40pfs_ha::Asel,
13662        p40pfs_ha::Asel,
13663        P40PfsHa_SPEC,
13664        crate::common::RW,
13665    > {
13666        crate::common::RegisterField::<
13667            15,
13668            0x1,
13669            1,
13670            0,
13671            p40pfs_ha::Asel,
13672            p40pfs_ha::Asel,
13673            P40PfsHa_SPEC,
13674            crate::common::RW,
13675        >::from_register(self, 0)
13676    }
13677}
13678impl ::core::default::Default for P40PfsHa {
13679    #[inline(always)]
13680    fn default() -> P40PfsHa {
13681        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
13682    }
13683}
13684pub mod p40pfs_ha {
13685
13686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13687    pub struct Podr_SPEC;
13688    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13689    impl Podr {
13690        #[doc = "Output low"]
13691        pub const _0: Self = Self::new(0);
13692
13693        #[doc = "Output high"]
13694        pub const _1: Self = Self::new(1);
13695    }
13696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13697    pub struct Pidr_SPEC;
13698    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13699    impl Pidr {
13700        #[doc = "Low level"]
13701        pub const _0: Self = Self::new(0);
13702
13703        #[doc = "High level"]
13704        pub const _1: Self = Self::new(1);
13705    }
13706    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13707    pub struct Pdr_SPEC;
13708    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13709    impl Pdr {
13710        #[doc = "Input (functions as an input pin)"]
13711        pub const _0: Self = Self::new(0);
13712
13713        #[doc = "Output (functions as an output pin)"]
13714        pub const _1: Self = Self::new(1);
13715    }
13716    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13717    pub struct Pcr_SPEC;
13718    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13719    impl Pcr {
13720        #[doc = "Disable input pull-up"]
13721        pub const _0: Self = Self::new(0);
13722
13723        #[doc = "Enable input pull-up"]
13724        pub const _1: Self = Self::new(1);
13725    }
13726    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13727    pub struct Ncodr_SPEC;
13728    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13729    impl Ncodr {
13730        #[doc = "Output CMOS"]
13731        pub const _0: Self = Self::new(0);
13732
13733        #[doc = "Output NMOS open-drain"]
13734        pub const _1: Self = Self::new(1);
13735    }
13736    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13737    pub struct Isel_SPEC;
13738    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13739    impl Isel {
13740        #[doc = "Do not use as IRQn input pin"]
13741        pub const _0: Self = Self::new(0);
13742
13743        #[doc = "Use as IRQn input pin"]
13744        pub const _1: Self = Self::new(1);
13745    }
13746    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13747    pub struct Asel_SPEC;
13748    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13749    impl Asel {
13750        #[doc = "Do not use as analog pin"]
13751        pub const _0: Self = Self::new(0);
13752
13753        #[doc = "Use as analog pin"]
13754        pub const _1: Self = Self::new(1);
13755    }
13756}
13757#[doc(hidden)]
13758#[derive(Copy, Clone, Eq, PartialEq)]
13759pub struct P40PfsBy_SPEC;
13760impl crate::sealed::RegSpec for P40PfsBy_SPEC {
13761    type DataType = u8;
13762}
13763
13764#[doc = "Port 40%s Pin Function Select Register"]
13765pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
13766
13767impl P40PfsBy {
13768    #[doc = "Port Output Data"]
13769    #[inline(always)]
13770    pub fn podr(
13771        self,
13772    ) -> crate::common::RegisterField<
13773        0,
13774        0x1,
13775        1,
13776        0,
13777        p40pfs_by::Podr,
13778        p40pfs_by::Podr,
13779        P40PfsBy_SPEC,
13780        crate::common::RW,
13781    > {
13782        crate::common::RegisterField::<
13783            0,
13784            0x1,
13785            1,
13786            0,
13787            p40pfs_by::Podr,
13788            p40pfs_by::Podr,
13789            P40PfsBy_SPEC,
13790            crate::common::RW,
13791        >::from_register(self, 0)
13792    }
13793
13794    #[doc = "Port State"]
13795    #[inline(always)]
13796    pub fn pidr(
13797        self,
13798    ) -> crate::common::RegisterField<
13799        1,
13800        0x1,
13801        1,
13802        0,
13803        p40pfs_by::Pidr,
13804        p40pfs_by::Pidr,
13805        P40PfsBy_SPEC,
13806        crate::common::R,
13807    > {
13808        crate::common::RegisterField::<
13809            1,
13810            0x1,
13811            1,
13812            0,
13813            p40pfs_by::Pidr,
13814            p40pfs_by::Pidr,
13815            P40PfsBy_SPEC,
13816            crate::common::R,
13817        >::from_register(self, 0)
13818    }
13819
13820    #[doc = "Port Direction"]
13821    #[inline(always)]
13822    pub fn pdr(
13823        self,
13824    ) -> crate::common::RegisterField<
13825        2,
13826        0x1,
13827        1,
13828        0,
13829        p40pfs_by::Pdr,
13830        p40pfs_by::Pdr,
13831        P40PfsBy_SPEC,
13832        crate::common::RW,
13833    > {
13834        crate::common::RegisterField::<
13835            2,
13836            0x1,
13837            1,
13838            0,
13839            p40pfs_by::Pdr,
13840            p40pfs_by::Pdr,
13841            P40PfsBy_SPEC,
13842            crate::common::RW,
13843        >::from_register(self, 0)
13844    }
13845
13846    #[doc = "Pull-up Control"]
13847    #[inline(always)]
13848    pub fn pcr(
13849        self,
13850    ) -> crate::common::RegisterField<
13851        4,
13852        0x1,
13853        1,
13854        0,
13855        p40pfs_by::Pcr,
13856        p40pfs_by::Pcr,
13857        P40PfsBy_SPEC,
13858        crate::common::RW,
13859    > {
13860        crate::common::RegisterField::<
13861            4,
13862            0x1,
13863            1,
13864            0,
13865            p40pfs_by::Pcr,
13866            p40pfs_by::Pcr,
13867            P40PfsBy_SPEC,
13868            crate::common::RW,
13869        >::from_register(self, 0)
13870    }
13871
13872    #[doc = "N-Channel Open-Drain Control"]
13873    #[inline(always)]
13874    pub fn ncodr(
13875        self,
13876    ) -> crate::common::RegisterField<
13877        6,
13878        0x1,
13879        1,
13880        0,
13881        p40pfs_by::Ncodr,
13882        p40pfs_by::Ncodr,
13883        P40PfsBy_SPEC,
13884        crate::common::RW,
13885    > {
13886        crate::common::RegisterField::<
13887            6,
13888            0x1,
13889            1,
13890            0,
13891            p40pfs_by::Ncodr,
13892            p40pfs_by::Ncodr,
13893            P40PfsBy_SPEC,
13894            crate::common::RW,
13895        >::from_register(self, 0)
13896    }
13897}
13898impl ::core::default::Default for P40PfsBy {
13899    #[inline(always)]
13900    fn default() -> P40PfsBy {
13901        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
13902    }
13903}
13904pub mod p40pfs_by {
13905
13906    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13907    pub struct Podr_SPEC;
13908    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13909    impl Podr {
13910        #[doc = "Output low"]
13911        pub const _0: Self = Self::new(0);
13912
13913        #[doc = "Output high"]
13914        pub const _1: Self = Self::new(1);
13915    }
13916    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13917    pub struct Pidr_SPEC;
13918    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13919    impl Pidr {
13920        #[doc = "Low level"]
13921        pub const _0: Self = Self::new(0);
13922
13923        #[doc = "High level"]
13924        pub const _1: Self = Self::new(1);
13925    }
13926    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13927    pub struct Pdr_SPEC;
13928    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13929    impl Pdr {
13930        #[doc = "Input (functions as an input pin)"]
13931        pub const _0: Self = Self::new(0);
13932
13933        #[doc = "Output (functions as an output pin)"]
13934        pub const _1: Self = Self::new(1);
13935    }
13936    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13937    pub struct Pcr_SPEC;
13938    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13939    impl Pcr {
13940        #[doc = "Disable input pull-up"]
13941        pub const _0: Self = Self::new(0);
13942
13943        #[doc = "Enable input pull-up"]
13944        pub const _1: Self = Self::new(1);
13945    }
13946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13947    pub struct Ncodr_SPEC;
13948    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13949    impl Ncodr {
13950        #[doc = "Output CMOS"]
13951        pub const _0: Self = Self::new(0);
13952
13953        #[doc = "Output NMOS open-drain"]
13954        pub const _1: Self = Self::new(1);
13955    }
13956}
13957#[doc(hidden)]
13958#[derive(Copy, Clone, Eq, PartialEq)]
13959pub struct P4Pfs_SPEC;
13960impl crate::sealed::RegSpec for P4Pfs_SPEC {
13961    type DataType = u32;
13962}
13963
13964#[doc = "Port 4%s Pin Function Select Register"]
13965pub type P4Pfs = crate::RegValueT<P4Pfs_SPEC>;
13966
13967impl P4Pfs {
13968    #[doc = "Port Output Data"]
13969    #[inline(always)]
13970    pub fn podr(
13971        self,
13972    ) -> crate::common::RegisterField<
13973        0,
13974        0x1,
13975        1,
13976        0,
13977        p4pfs::Podr,
13978        p4pfs::Podr,
13979        P4Pfs_SPEC,
13980        crate::common::RW,
13981    > {
13982        crate::common::RegisterField::<
13983            0,
13984            0x1,
13985            1,
13986            0,
13987            p4pfs::Podr,
13988            p4pfs::Podr,
13989            P4Pfs_SPEC,
13990            crate::common::RW,
13991        >::from_register(self, 0)
13992    }
13993
13994    #[doc = "Port State"]
13995    #[inline(always)]
13996    pub fn pidr(
13997        self,
13998    ) -> crate::common::RegisterField<
13999        1,
14000        0x1,
14001        1,
14002        0,
14003        p4pfs::Pidr,
14004        p4pfs::Pidr,
14005        P4Pfs_SPEC,
14006        crate::common::R,
14007    > {
14008        crate::common::RegisterField::<
14009            1,
14010            0x1,
14011            1,
14012            0,
14013            p4pfs::Pidr,
14014            p4pfs::Pidr,
14015            P4Pfs_SPEC,
14016            crate::common::R,
14017        >::from_register(self, 0)
14018    }
14019
14020    #[doc = "Port Direction"]
14021    #[inline(always)]
14022    pub fn pdr(
14023        self,
14024    ) -> crate::common::RegisterField<
14025        2,
14026        0x1,
14027        1,
14028        0,
14029        p4pfs::Pdr,
14030        p4pfs::Pdr,
14031        P4Pfs_SPEC,
14032        crate::common::RW,
14033    > {
14034        crate::common::RegisterField::<
14035            2,
14036            0x1,
14037            1,
14038            0,
14039            p4pfs::Pdr,
14040            p4pfs::Pdr,
14041            P4Pfs_SPEC,
14042            crate::common::RW,
14043        >::from_register(self, 0)
14044    }
14045
14046    #[doc = "Pull-up Control"]
14047    #[inline(always)]
14048    pub fn pcr(
14049        self,
14050    ) -> crate::common::RegisterField<
14051        4,
14052        0x1,
14053        1,
14054        0,
14055        p4pfs::Pcr,
14056        p4pfs::Pcr,
14057        P4Pfs_SPEC,
14058        crate::common::RW,
14059    > {
14060        crate::common::RegisterField::<
14061            4,
14062            0x1,
14063            1,
14064            0,
14065            p4pfs::Pcr,
14066            p4pfs::Pcr,
14067            P4Pfs_SPEC,
14068            crate::common::RW,
14069        >::from_register(self, 0)
14070    }
14071
14072    #[doc = "N-Channel Open-Drain Control"]
14073    #[inline(always)]
14074    pub fn ncodr(
14075        self,
14076    ) -> crate::common::RegisterField<
14077        6,
14078        0x1,
14079        1,
14080        0,
14081        p4pfs::Ncodr,
14082        p4pfs::Ncodr,
14083        P4Pfs_SPEC,
14084        crate::common::RW,
14085    > {
14086        crate::common::RegisterField::<
14087            6,
14088            0x1,
14089            1,
14090            0,
14091            p4pfs::Ncodr,
14092            p4pfs::Ncodr,
14093            P4Pfs_SPEC,
14094            crate::common::RW,
14095        >::from_register(self, 0)
14096    }
14097
14098    #[doc = "IRQ Input Enable"]
14099    #[inline(always)]
14100    pub fn isel(
14101        self,
14102    ) -> crate::common::RegisterField<
14103        14,
14104        0x1,
14105        1,
14106        0,
14107        p4pfs::Isel,
14108        p4pfs::Isel,
14109        P4Pfs_SPEC,
14110        crate::common::RW,
14111    > {
14112        crate::common::RegisterField::<
14113            14,
14114            0x1,
14115            1,
14116            0,
14117            p4pfs::Isel,
14118            p4pfs::Isel,
14119            P4Pfs_SPEC,
14120            crate::common::RW,
14121        >::from_register(self, 0)
14122    }
14123
14124    #[doc = "Analog Input Enable"]
14125    #[inline(always)]
14126    pub fn asel(
14127        self,
14128    ) -> crate::common::RegisterField<
14129        15,
14130        0x1,
14131        1,
14132        0,
14133        p4pfs::Asel,
14134        p4pfs::Asel,
14135        P4Pfs_SPEC,
14136        crate::common::RW,
14137    > {
14138        crate::common::RegisterField::<
14139            15,
14140            0x1,
14141            1,
14142            0,
14143            p4pfs::Asel,
14144            p4pfs::Asel,
14145            P4Pfs_SPEC,
14146            crate::common::RW,
14147        >::from_register(self, 0)
14148    }
14149
14150    #[doc = "Port Mode Control"]
14151    #[inline(always)]
14152    pub fn pmr(
14153        self,
14154    ) -> crate::common::RegisterField<
14155        16,
14156        0x1,
14157        1,
14158        0,
14159        p4pfs::Pmr,
14160        p4pfs::Pmr,
14161        P4Pfs_SPEC,
14162        crate::common::RW,
14163    > {
14164        crate::common::RegisterField::<
14165            16,
14166            0x1,
14167            1,
14168            0,
14169            p4pfs::Pmr,
14170            p4pfs::Pmr,
14171            P4Pfs_SPEC,
14172            crate::common::RW,
14173        >::from_register(self, 0)
14174    }
14175
14176    #[doc = "Peripheral Select"]
14177    #[inline(always)]
14178    pub fn psel(
14179        self,
14180    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P4Pfs_SPEC, crate::common::RW> {
14181        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P4Pfs_SPEC,crate::common::RW>::from_register(self,0)
14182    }
14183}
14184impl ::core::default::Default for P4Pfs {
14185    #[inline(always)]
14186    fn default() -> P4Pfs {
14187        <crate::RegValueT<P4Pfs_SPEC> as RegisterValue<_>>::new(0)
14188    }
14189}
14190pub mod p4pfs {
14191
14192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14193    pub struct Podr_SPEC;
14194    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14195    impl Podr {
14196        #[doc = "Output low"]
14197        pub const _0: Self = Self::new(0);
14198
14199        #[doc = "Output high"]
14200        pub const _1: Self = Self::new(1);
14201    }
14202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14203    pub struct Pidr_SPEC;
14204    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14205    impl Pidr {
14206        #[doc = "Low level"]
14207        pub const _0: Self = Self::new(0);
14208
14209        #[doc = "High level"]
14210        pub const _1: Self = Self::new(1);
14211    }
14212    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14213    pub struct Pdr_SPEC;
14214    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14215    impl Pdr {
14216        #[doc = "Input (functions as an input pin)"]
14217        pub const _0: Self = Self::new(0);
14218
14219        #[doc = "Output (functions as an output pin)"]
14220        pub const _1: Self = Self::new(1);
14221    }
14222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14223    pub struct Pcr_SPEC;
14224    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14225    impl Pcr {
14226        #[doc = "Disable input pull-up"]
14227        pub const _0: Self = Self::new(0);
14228
14229        #[doc = "Enable input pull-up"]
14230        pub const _1: Self = Self::new(1);
14231    }
14232    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14233    pub struct Ncodr_SPEC;
14234    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14235    impl Ncodr {
14236        #[doc = "Output CMOS"]
14237        pub const _0: Self = Self::new(0);
14238
14239        #[doc = "Output NMOS open-drain"]
14240        pub const _1: Self = Self::new(1);
14241    }
14242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14243    pub struct Isel_SPEC;
14244    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14245    impl Isel {
14246        #[doc = "Do not use as IRQn input pin"]
14247        pub const _0: Self = Self::new(0);
14248
14249        #[doc = "Use as IRQn input pin"]
14250        pub const _1: Self = Self::new(1);
14251    }
14252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14253    pub struct Asel_SPEC;
14254    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14255    impl Asel {
14256        #[doc = "Do not use as analog pin"]
14257        pub const _0: Self = Self::new(0);
14258
14259        #[doc = "Use as analog pin"]
14260        pub const _1: Self = Self::new(1);
14261    }
14262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14263    pub struct Pmr_SPEC;
14264    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
14265    impl Pmr {
14266        #[doc = "Use as general I/O pin"]
14267        pub const _0: Self = Self::new(0);
14268
14269        #[doc = "Use as I/O port for peripheral functions"]
14270        pub const _1: Self = Self::new(1);
14271    }
14272}
14273#[doc(hidden)]
14274#[derive(Copy, Clone, Eq, PartialEq)]
14275pub struct P4PfsHa_SPEC;
14276impl crate::sealed::RegSpec for P4PfsHa_SPEC {
14277    type DataType = u16;
14278}
14279
14280#[doc = "Port 4%s Pin Function Select Register"]
14281pub type P4PfsHa = crate::RegValueT<P4PfsHa_SPEC>;
14282
14283impl P4PfsHa {
14284    #[doc = "Port Output Data"]
14285    #[inline(always)]
14286    pub fn podr(
14287        self,
14288    ) -> crate::common::RegisterField<
14289        0,
14290        0x1,
14291        1,
14292        0,
14293        p4pfs_ha::Podr,
14294        p4pfs_ha::Podr,
14295        P4PfsHa_SPEC,
14296        crate::common::RW,
14297    > {
14298        crate::common::RegisterField::<
14299            0,
14300            0x1,
14301            1,
14302            0,
14303            p4pfs_ha::Podr,
14304            p4pfs_ha::Podr,
14305            P4PfsHa_SPEC,
14306            crate::common::RW,
14307        >::from_register(self, 0)
14308    }
14309
14310    #[doc = "Port State"]
14311    #[inline(always)]
14312    pub fn pidr(
14313        self,
14314    ) -> crate::common::RegisterField<
14315        1,
14316        0x1,
14317        1,
14318        0,
14319        p4pfs_ha::Pidr,
14320        p4pfs_ha::Pidr,
14321        P4PfsHa_SPEC,
14322        crate::common::R,
14323    > {
14324        crate::common::RegisterField::<
14325            1,
14326            0x1,
14327            1,
14328            0,
14329            p4pfs_ha::Pidr,
14330            p4pfs_ha::Pidr,
14331            P4PfsHa_SPEC,
14332            crate::common::R,
14333        >::from_register(self, 0)
14334    }
14335
14336    #[doc = "Port Direction"]
14337    #[inline(always)]
14338    pub fn pdr(
14339        self,
14340    ) -> crate::common::RegisterField<
14341        2,
14342        0x1,
14343        1,
14344        0,
14345        p4pfs_ha::Pdr,
14346        p4pfs_ha::Pdr,
14347        P4PfsHa_SPEC,
14348        crate::common::RW,
14349    > {
14350        crate::common::RegisterField::<
14351            2,
14352            0x1,
14353            1,
14354            0,
14355            p4pfs_ha::Pdr,
14356            p4pfs_ha::Pdr,
14357            P4PfsHa_SPEC,
14358            crate::common::RW,
14359        >::from_register(self, 0)
14360    }
14361
14362    #[doc = "Pull-up Control"]
14363    #[inline(always)]
14364    pub fn pcr(
14365        self,
14366    ) -> crate::common::RegisterField<
14367        4,
14368        0x1,
14369        1,
14370        0,
14371        p4pfs_ha::Pcr,
14372        p4pfs_ha::Pcr,
14373        P4PfsHa_SPEC,
14374        crate::common::RW,
14375    > {
14376        crate::common::RegisterField::<
14377            4,
14378            0x1,
14379            1,
14380            0,
14381            p4pfs_ha::Pcr,
14382            p4pfs_ha::Pcr,
14383            P4PfsHa_SPEC,
14384            crate::common::RW,
14385        >::from_register(self, 0)
14386    }
14387
14388    #[doc = "N-Channel Open-Drain Control"]
14389    #[inline(always)]
14390    pub fn ncodr(
14391        self,
14392    ) -> crate::common::RegisterField<
14393        6,
14394        0x1,
14395        1,
14396        0,
14397        p4pfs_ha::Ncodr,
14398        p4pfs_ha::Ncodr,
14399        P4PfsHa_SPEC,
14400        crate::common::RW,
14401    > {
14402        crate::common::RegisterField::<
14403            6,
14404            0x1,
14405            1,
14406            0,
14407            p4pfs_ha::Ncodr,
14408            p4pfs_ha::Ncodr,
14409            P4PfsHa_SPEC,
14410            crate::common::RW,
14411        >::from_register(self, 0)
14412    }
14413
14414    #[doc = "IRQ Input Enable"]
14415    #[inline(always)]
14416    pub fn isel(
14417        self,
14418    ) -> crate::common::RegisterField<
14419        14,
14420        0x1,
14421        1,
14422        0,
14423        p4pfs_ha::Isel,
14424        p4pfs_ha::Isel,
14425        P4PfsHa_SPEC,
14426        crate::common::RW,
14427    > {
14428        crate::common::RegisterField::<
14429            14,
14430            0x1,
14431            1,
14432            0,
14433            p4pfs_ha::Isel,
14434            p4pfs_ha::Isel,
14435            P4PfsHa_SPEC,
14436            crate::common::RW,
14437        >::from_register(self, 0)
14438    }
14439
14440    #[doc = "Analog Input Enable"]
14441    #[inline(always)]
14442    pub fn asel(
14443        self,
14444    ) -> crate::common::RegisterField<
14445        15,
14446        0x1,
14447        1,
14448        0,
14449        p4pfs_ha::Asel,
14450        p4pfs_ha::Asel,
14451        P4PfsHa_SPEC,
14452        crate::common::RW,
14453    > {
14454        crate::common::RegisterField::<
14455            15,
14456            0x1,
14457            1,
14458            0,
14459            p4pfs_ha::Asel,
14460            p4pfs_ha::Asel,
14461            P4PfsHa_SPEC,
14462            crate::common::RW,
14463        >::from_register(self, 0)
14464    }
14465}
14466impl ::core::default::Default for P4PfsHa {
14467    #[inline(always)]
14468    fn default() -> P4PfsHa {
14469        <crate::RegValueT<P4PfsHa_SPEC> as RegisterValue<_>>::new(0)
14470    }
14471}
14472pub mod p4pfs_ha {
14473
14474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14475    pub struct Podr_SPEC;
14476    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14477    impl Podr {
14478        #[doc = "Output low"]
14479        pub const _0: Self = Self::new(0);
14480
14481        #[doc = "Output high"]
14482        pub const _1: Self = Self::new(1);
14483    }
14484    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14485    pub struct Pidr_SPEC;
14486    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14487    impl Pidr {
14488        #[doc = "Low level"]
14489        pub const _0: Self = Self::new(0);
14490
14491        #[doc = "High level"]
14492        pub const _1: Self = Self::new(1);
14493    }
14494    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14495    pub struct Pdr_SPEC;
14496    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14497    impl Pdr {
14498        #[doc = "Input (functions as an input pin)"]
14499        pub const _0: Self = Self::new(0);
14500
14501        #[doc = "Output (functions as an output pin)"]
14502        pub const _1: Self = Self::new(1);
14503    }
14504    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14505    pub struct Pcr_SPEC;
14506    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14507    impl Pcr {
14508        #[doc = "Disable input pull-up"]
14509        pub const _0: Self = Self::new(0);
14510
14511        #[doc = "Enable input pull-up"]
14512        pub const _1: Self = Self::new(1);
14513    }
14514    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14515    pub struct Ncodr_SPEC;
14516    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14517    impl Ncodr {
14518        #[doc = "Output CMOS"]
14519        pub const _0: Self = Self::new(0);
14520
14521        #[doc = "Output NMOS open-drain"]
14522        pub const _1: Self = Self::new(1);
14523    }
14524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14525    pub struct Isel_SPEC;
14526    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14527    impl Isel {
14528        #[doc = "Do not use as IRQn input pin"]
14529        pub const _0: Self = Self::new(0);
14530
14531        #[doc = "Use as IRQn input pin"]
14532        pub const _1: Self = Self::new(1);
14533    }
14534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14535    pub struct Asel_SPEC;
14536    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14537    impl Asel {
14538        #[doc = "Do not use as analog pin"]
14539        pub const _0: Self = Self::new(0);
14540
14541        #[doc = "Use as analog pin"]
14542        pub const _1: Self = Self::new(1);
14543    }
14544}
14545#[doc(hidden)]
14546#[derive(Copy, Clone, Eq, PartialEq)]
14547pub struct P4PfsBy_SPEC;
14548impl crate::sealed::RegSpec for P4PfsBy_SPEC {
14549    type DataType = u8;
14550}
14551
14552#[doc = "Port 4%s Pin Function Select Register"]
14553pub type P4PfsBy = crate::RegValueT<P4PfsBy_SPEC>;
14554
14555impl P4PfsBy {
14556    #[doc = "Port Output Data"]
14557    #[inline(always)]
14558    pub fn podr(
14559        self,
14560    ) -> crate::common::RegisterField<
14561        0,
14562        0x1,
14563        1,
14564        0,
14565        p4pfs_by::Podr,
14566        p4pfs_by::Podr,
14567        P4PfsBy_SPEC,
14568        crate::common::RW,
14569    > {
14570        crate::common::RegisterField::<
14571            0,
14572            0x1,
14573            1,
14574            0,
14575            p4pfs_by::Podr,
14576            p4pfs_by::Podr,
14577            P4PfsBy_SPEC,
14578            crate::common::RW,
14579        >::from_register(self, 0)
14580    }
14581
14582    #[doc = "Port State"]
14583    #[inline(always)]
14584    pub fn pidr(
14585        self,
14586    ) -> crate::common::RegisterField<
14587        1,
14588        0x1,
14589        1,
14590        0,
14591        p4pfs_by::Pidr,
14592        p4pfs_by::Pidr,
14593        P4PfsBy_SPEC,
14594        crate::common::R,
14595    > {
14596        crate::common::RegisterField::<
14597            1,
14598            0x1,
14599            1,
14600            0,
14601            p4pfs_by::Pidr,
14602            p4pfs_by::Pidr,
14603            P4PfsBy_SPEC,
14604            crate::common::R,
14605        >::from_register(self, 0)
14606    }
14607
14608    #[doc = "Port Direction"]
14609    #[inline(always)]
14610    pub fn pdr(
14611        self,
14612    ) -> crate::common::RegisterField<
14613        2,
14614        0x1,
14615        1,
14616        0,
14617        p4pfs_by::Pdr,
14618        p4pfs_by::Pdr,
14619        P4PfsBy_SPEC,
14620        crate::common::RW,
14621    > {
14622        crate::common::RegisterField::<
14623            2,
14624            0x1,
14625            1,
14626            0,
14627            p4pfs_by::Pdr,
14628            p4pfs_by::Pdr,
14629            P4PfsBy_SPEC,
14630            crate::common::RW,
14631        >::from_register(self, 0)
14632    }
14633
14634    #[doc = "Pull-up Control"]
14635    #[inline(always)]
14636    pub fn pcr(
14637        self,
14638    ) -> crate::common::RegisterField<
14639        4,
14640        0x1,
14641        1,
14642        0,
14643        p4pfs_by::Pcr,
14644        p4pfs_by::Pcr,
14645        P4PfsBy_SPEC,
14646        crate::common::RW,
14647    > {
14648        crate::common::RegisterField::<
14649            4,
14650            0x1,
14651            1,
14652            0,
14653            p4pfs_by::Pcr,
14654            p4pfs_by::Pcr,
14655            P4PfsBy_SPEC,
14656            crate::common::RW,
14657        >::from_register(self, 0)
14658    }
14659
14660    #[doc = "N-Channel Open-Drain Control"]
14661    #[inline(always)]
14662    pub fn ncodr(
14663        self,
14664    ) -> crate::common::RegisterField<
14665        6,
14666        0x1,
14667        1,
14668        0,
14669        p4pfs_by::Ncodr,
14670        p4pfs_by::Ncodr,
14671        P4PfsBy_SPEC,
14672        crate::common::RW,
14673    > {
14674        crate::common::RegisterField::<
14675            6,
14676            0x1,
14677            1,
14678            0,
14679            p4pfs_by::Ncodr,
14680            p4pfs_by::Ncodr,
14681            P4PfsBy_SPEC,
14682            crate::common::RW,
14683        >::from_register(self, 0)
14684    }
14685}
14686impl ::core::default::Default for P4PfsBy {
14687    #[inline(always)]
14688    fn default() -> P4PfsBy {
14689        <crate::RegValueT<P4PfsBy_SPEC> as RegisterValue<_>>::new(0)
14690    }
14691}
14692pub mod p4pfs_by {
14693
14694    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14695    pub struct Podr_SPEC;
14696    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14697    impl Podr {
14698        #[doc = "Output low"]
14699        pub const _0: Self = Self::new(0);
14700
14701        #[doc = "Output high"]
14702        pub const _1: Self = Self::new(1);
14703    }
14704    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14705    pub struct Pidr_SPEC;
14706    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14707    impl Pidr {
14708        #[doc = "Low level"]
14709        pub const _0: Self = Self::new(0);
14710
14711        #[doc = "High level"]
14712        pub const _1: Self = Self::new(1);
14713    }
14714    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14715    pub struct Pdr_SPEC;
14716    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14717    impl Pdr {
14718        #[doc = "Input (functions as an input pin)"]
14719        pub const _0: Self = Self::new(0);
14720
14721        #[doc = "Output (functions as an output pin)"]
14722        pub const _1: Self = Self::new(1);
14723    }
14724    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14725    pub struct Pcr_SPEC;
14726    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14727    impl Pcr {
14728        #[doc = "Disable input pull-up"]
14729        pub const _0: Self = Self::new(0);
14730
14731        #[doc = "Enable input pull-up"]
14732        pub const _1: Self = Self::new(1);
14733    }
14734    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14735    pub struct Ncodr_SPEC;
14736    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14737    impl Ncodr {
14738        #[doc = "Output CMOS"]
14739        pub const _0: Self = Self::new(0);
14740
14741        #[doc = "Output NMOS open-drain"]
14742        pub const _1: Self = Self::new(1);
14743    }
14744}
14745#[doc(hidden)]
14746#[derive(Copy, Clone, Eq, PartialEq)]
14747pub struct P50Pfs_SPEC;
14748impl crate::sealed::RegSpec for P50Pfs_SPEC {
14749    type DataType = u32;
14750}
14751
14752#[doc = "Port 50%s Pin Function Select Register"]
14753pub type P50Pfs = crate::RegValueT<P50Pfs_SPEC>;
14754
14755impl P50Pfs {
14756    #[doc = "Port Output Data"]
14757    #[inline(always)]
14758    pub fn podr(
14759        self,
14760    ) -> crate::common::RegisterField<
14761        0,
14762        0x1,
14763        1,
14764        0,
14765        p50pfs::Podr,
14766        p50pfs::Podr,
14767        P50Pfs_SPEC,
14768        crate::common::RW,
14769    > {
14770        crate::common::RegisterField::<
14771            0,
14772            0x1,
14773            1,
14774            0,
14775            p50pfs::Podr,
14776            p50pfs::Podr,
14777            P50Pfs_SPEC,
14778            crate::common::RW,
14779        >::from_register(self, 0)
14780    }
14781
14782    #[doc = "Port State"]
14783    #[inline(always)]
14784    pub fn pidr(
14785        self,
14786    ) -> crate::common::RegisterField<
14787        1,
14788        0x1,
14789        1,
14790        0,
14791        p50pfs::Pidr,
14792        p50pfs::Pidr,
14793        P50Pfs_SPEC,
14794        crate::common::R,
14795    > {
14796        crate::common::RegisterField::<
14797            1,
14798            0x1,
14799            1,
14800            0,
14801            p50pfs::Pidr,
14802            p50pfs::Pidr,
14803            P50Pfs_SPEC,
14804            crate::common::R,
14805        >::from_register(self, 0)
14806    }
14807
14808    #[doc = "Port Direction"]
14809    #[inline(always)]
14810    pub fn pdr(
14811        self,
14812    ) -> crate::common::RegisterField<
14813        2,
14814        0x1,
14815        1,
14816        0,
14817        p50pfs::Pdr,
14818        p50pfs::Pdr,
14819        P50Pfs_SPEC,
14820        crate::common::RW,
14821    > {
14822        crate::common::RegisterField::<
14823            2,
14824            0x1,
14825            1,
14826            0,
14827            p50pfs::Pdr,
14828            p50pfs::Pdr,
14829            P50Pfs_SPEC,
14830            crate::common::RW,
14831        >::from_register(self, 0)
14832    }
14833
14834    #[doc = "Pull-up Control"]
14835    #[inline(always)]
14836    pub fn pcr(
14837        self,
14838    ) -> crate::common::RegisterField<
14839        4,
14840        0x1,
14841        1,
14842        0,
14843        p50pfs::Pcr,
14844        p50pfs::Pcr,
14845        P50Pfs_SPEC,
14846        crate::common::RW,
14847    > {
14848        crate::common::RegisterField::<
14849            4,
14850            0x1,
14851            1,
14852            0,
14853            p50pfs::Pcr,
14854            p50pfs::Pcr,
14855            P50Pfs_SPEC,
14856            crate::common::RW,
14857        >::from_register(self, 0)
14858    }
14859
14860    #[doc = "N-Channel Open-Drain Control"]
14861    #[inline(always)]
14862    pub fn ncodr(
14863        self,
14864    ) -> crate::common::RegisterField<
14865        6,
14866        0x1,
14867        1,
14868        0,
14869        p50pfs::Ncodr,
14870        p50pfs::Ncodr,
14871        P50Pfs_SPEC,
14872        crate::common::RW,
14873    > {
14874        crate::common::RegisterField::<
14875            6,
14876            0x1,
14877            1,
14878            0,
14879            p50pfs::Ncodr,
14880            p50pfs::Ncodr,
14881            P50Pfs_SPEC,
14882            crate::common::RW,
14883        >::from_register(self, 0)
14884    }
14885
14886    #[doc = "IRQ Input Enable"]
14887    #[inline(always)]
14888    pub fn isel(
14889        self,
14890    ) -> crate::common::RegisterField<
14891        14,
14892        0x1,
14893        1,
14894        0,
14895        p50pfs::Isel,
14896        p50pfs::Isel,
14897        P50Pfs_SPEC,
14898        crate::common::RW,
14899    > {
14900        crate::common::RegisterField::<
14901            14,
14902            0x1,
14903            1,
14904            0,
14905            p50pfs::Isel,
14906            p50pfs::Isel,
14907            P50Pfs_SPEC,
14908            crate::common::RW,
14909        >::from_register(self, 0)
14910    }
14911
14912    #[doc = "Analog Input Enable"]
14913    #[inline(always)]
14914    pub fn asel(
14915        self,
14916    ) -> crate::common::RegisterField<
14917        15,
14918        0x1,
14919        1,
14920        0,
14921        p50pfs::Asel,
14922        p50pfs::Asel,
14923        P50Pfs_SPEC,
14924        crate::common::RW,
14925    > {
14926        crate::common::RegisterField::<
14927            15,
14928            0x1,
14929            1,
14930            0,
14931            p50pfs::Asel,
14932            p50pfs::Asel,
14933            P50Pfs_SPEC,
14934            crate::common::RW,
14935        >::from_register(self, 0)
14936    }
14937
14938    #[doc = "Port Mode Control"]
14939    #[inline(always)]
14940    pub fn pmr(
14941        self,
14942    ) -> crate::common::RegisterField<
14943        16,
14944        0x1,
14945        1,
14946        0,
14947        p50pfs::Pmr,
14948        p50pfs::Pmr,
14949        P50Pfs_SPEC,
14950        crate::common::RW,
14951    > {
14952        crate::common::RegisterField::<
14953            16,
14954            0x1,
14955            1,
14956            0,
14957            p50pfs::Pmr,
14958            p50pfs::Pmr,
14959            P50Pfs_SPEC,
14960            crate::common::RW,
14961        >::from_register(self, 0)
14962    }
14963
14964    #[doc = "Peripheral Select"]
14965    #[inline(always)]
14966    pub fn psel(
14967        self,
14968    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P50Pfs_SPEC, crate::common::RW> {
14969        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P50Pfs_SPEC,crate::common::RW>::from_register(self,0)
14970    }
14971}
14972impl ::core::default::Default for P50Pfs {
14973    #[inline(always)]
14974    fn default() -> P50Pfs {
14975        <crate::RegValueT<P50Pfs_SPEC> as RegisterValue<_>>::new(0)
14976    }
14977}
14978pub mod p50pfs {
14979
14980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14981    pub struct Podr_SPEC;
14982    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14983    impl Podr {
14984        #[doc = "Output low"]
14985        pub const _0: Self = Self::new(0);
14986
14987        #[doc = "Output high"]
14988        pub const _1: Self = Self::new(1);
14989    }
14990    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14991    pub struct Pidr_SPEC;
14992    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14993    impl Pidr {
14994        #[doc = "Low level"]
14995        pub const _0: Self = Self::new(0);
14996
14997        #[doc = "High level"]
14998        pub const _1: Self = Self::new(1);
14999    }
15000    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15001    pub struct Pdr_SPEC;
15002    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15003    impl Pdr {
15004        #[doc = "Input (functions as an input pin)"]
15005        pub const _0: Self = Self::new(0);
15006
15007        #[doc = "Output (functions as an output pin)"]
15008        pub const _1: Self = Self::new(1);
15009    }
15010    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15011    pub struct Pcr_SPEC;
15012    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15013    impl Pcr {
15014        #[doc = "Disable input pull-up"]
15015        pub const _0: Self = Self::new(0);
15016
15017        #[doc = "Enable input pull-up"]
15018        pub const _1: Self = Self::new(1);
15019    }
15020    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15021    pub struct Ncodr_SPEC;
15022    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15023    impl Ncodr {
15024        #[doc = "Output CMOS"]
15025        pub const _0: Self = Self::new(0);
15026
15027        #[doc = "Output NMOS open-drain"]
15028        pub const _1: Self = Self::new(1);
15029    }
15030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15031    pub struct Isel_SPEC;
15032    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15033    impl Isel {
15034        #[doc = "Do not use as IRQn input pin"]
15035        pub const _0: Self = Self::new(0);
15036
15037        #[doc = "Use as IRQn input pin"]
15038        pub const _1: Self = Self::new(1);
15039    }
15040    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15041    pub struct Asel_SPEC;
15042    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15043    impl Asel {
15044        #[doc = "Do not use as analog pin"]
15045        pub const _0: Self = Self::new(0);
15046
15047        #[doc = "Use as analog pin"]
15048        pub const _1: Self = Self::new(1);
15049    }
15050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15051    pub struct Pmr_SPEC;
15052    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15053    impl Pmr {
15054        #[doc = "Use as general I/O pin"]
15055        pub const _0: Self = Self::new(0);
15056
15057        #[doc = "Use as I/O port for peripheral functions"]
15058        pub const _1: Self = Self::new(1);
15059    }
15060}
15061#[doc(hidden)]
15062#[derive(Copy, Clone, Eq, PartialEq)]
15063pub struct P50PfsHa_SPEC;
15064impl crate::sealed::RegSpec for P50PfsHa_SPEC {
15065    type DataType = u16;
15066}
15067
15068#[doc = "Port 50%s Pin Function Select Register"]
15069pub type P50PfsHa = crate::RegValueT<P50PfsHa_SPEC>;
15070
15071impl P50PfsHa {
15072    #[doc = "Port Output Data"]
15073    #[inline(always)]
15074    pub fn podr(
15075        self,
15076    ) -> crate::common::RegisterField<
15077        0,
15078        0x1,
15079        1,
15080        0,
15081        p50pfs_ha::Podr,
15082        p50pfs_ha::Podr,
15083        P50PfsHa_SPEC,
15084        crate::common::RW,
15085    > {
15086        crate::common::RegisterField::<
15087            0,
15088            0x1,
15089            1,
15090            0,
15091            p50pfs_ha::Podr,
15092            p50pfs_ha::Podr,
15093            P50PfsHa_SPEC,
15094            crate::common::RW,
15095        >::from_register(self, 0)
15096    }
15097
15098    #[doc = "Port State"]
15099    #[inline(always)]
15100    pub fn pidr(
15101        self,
15102    ) -> crate::common::RegisterField<
15103        1,
15104        0x1,
15105        1,
15106        0,
15107        p50pfs_ha::Pidr,
15108        p50pfs_ha::Pidr,
15109        P50PfsHa_SPEC,
15110        crate::common::R,
15111    > {
15112        crate::common::RegisterField::<
15113            1,
15114            0x1,
15115            1,
15116            0,
15117            p50pfs_ha::Pidr,
15118            p50pfs_ha::Pidr,
15119            P50PfsHa_SPEC,
15120            crate::common::R,
15121        >::from_register(self, 0)
15122    }
15123
15124    #[doc = "Port Direction"]
15125    #[inline(always)]
15126    pub fn pdr(
15127        self,
15128    ) -> crate::common::RegisterField<
15129        2,
15130        0x1,
15131        1,
15132        0,
15133        p50pfs_ha::Pdr,
15134        p50pfs_ha::Pdr,
15135        P50PfsHa_SPEC,
15136        crate::common::RW,
15137    > {
15138        crate::common::RegisterField::<
15139            2,
15140            0x1,
15141            1,
15142            0,
15143            p50pfs_ha::Pdr,
15144            p50pfs_ha::Pdr,
15145            P50PfsHa_SPEC,
15146            crate::common::RW,
15147        >::from_register(self, 0)
15148    }
15149
15150    #[doc = "Pull-up Control"]
15151    #[inline(always)]
15152    pub fn pcr(
15153        self,
15154    ) -> crate::common::RegisterField<
15155        4,
15156        0x1,
15157        1,
15158        0,
15159        p50pfs_ha::Pcr,
15160        p50pfs_ha::Pcr,
15161        P50PfsHa_SPEC,
15162        crate::common::RW,
15163    > {
15164        crate::common::RegisterField::<
15165            4,
15166            0x1,
15167            1,
15168            0,
15169            p50pfs_ha::Pcr,
15170            p50pfs_ha::Pcr,
15171            P50PfsHa_SPEC,
15172            crate::common::RW,
15173        >::from_register(self, 0)
15174    }
15175
15176    #[doc = "N-Channel Open-Drain Control"]
15177    #[inline(always)]
15178    pub fn ncodr(
15179        self,
15180    ) -> crate::common::RegisterField<
15181        6,
15182        0x1,
15183        1,
15184        0,
15185        p50pfs_ha::Ncodr,
15186        p50pfs_ha::Ncodr,
15187        P50PfsHa_SPEC,
15188        crate::common::RW,
15189    > {
15190        crate::common::RegisterField::<
15191            6,
15192            0x1,
15193            1,
15194            0,
15195            p50pfs_ha::Ncodr,
15196            p50pfs_ha::Ncodr,
15197            P50PfsHa_SPEC,
15198            crate::common::RW,
15199        >::from_register(self, 0)
15200    }
15201
15202    #[doc = "IRQ Input Enable"]
15203    #[inline(always)]
15204    pub fn isel(
15205        self,
15206    ) -> crate::common::RegisterField<
15207        14,
15208        0x1,
15209        1,
15210        0,
15211        p50pfs_ha::Isel,
15212        p50pfs_ha::Isel,
15213        P50PfsHa_SPEC,
15214        crate::common::RW,
15215    > {
15216        crate::common::RegisterField::<
15217            14,
15218            0x1,
15219            1,
15220            0,
15221            p50pfs_ha::Isel,
15222            p50pfs_ha::Isel,
15223            P50PfsHa_SPEC,
15224            crate::common::RW,
15225        >::from_register(self, 0)
15226    }
15227
15228    #[doc = "Analog Input Enable"]
15229    #[inline(always)]
15230    pub fn asel(
15231        self,
15232    ) -> crate::common::RegisterField<
15233        15,
15234        0x1,
15235        1,
15236        0,
15237        p50pfs_ha::Asel,
15238        p50pfs_ha::Asel,
15239        P50PfsHa_SPEC,
15240        crate::common::RW,
15241    > {
15242        crate::common::RegisterField::<
15243            15,
15244            0x1,
15245            1,
15246            0,
15247            p50pfs_ha::Asel,
15248            p50pfs_ha::Asel,
15249            P50PfsHa_SPEC,
15250            crate::common::RW,
15251        >::from_register(self, 0)
15252    }
15253}
15254impl ::core::default::Default for P50PfsHa {
15255    #[inline(always)]
15256    fn default() -> P50PfsHa {
15257        <crate::RegValueT<P50PfsHa_SPEC> as RegisterValue<_>>::new(0)
15258    }
15259}
15260pub mod p50pfs_ha {
15261
15262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15263    pub struct Podr_SPEC;
15264    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15265    impl Podr {
15266        #[doc = "Output low"]
15267        pub const _0: Self = Self::new(0);
15268
15269        #[doc = "Output high"]
15270        pub const _1: Self = Self::new(1);
15271    }
15272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15273    pub struct Pidr_SPEC;
15274    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15275    impl Pidr {
15276        #[doc = "Low level"]
15277        pub const _0: Self = Self::new(0);
15278
15279        #[doc = "High level"]
15280        pub const _1: Self = Self::new(1);
15281    }
15282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15283    pub struct Pdr_SPEC;
15284    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15285    impl Pdr {
15286        #[doc = "Input (functions as an input pin)"]
15287        pub const _0: Self = Self::new(0);
15288
15289        #[doc = "Output (functions as an output pin)"]
15290        pub const _1: Self = Self::new(1);
15291    }
15292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15293    pub struct Pcr_SPEC;
15294    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15295    impl Pcr {
15296        #[doc = "Disable input pull-up"]
15297        pub const _0: Self = Self::new(0);
15298
15299        #[doc = "Enable input pull-up"]
15300        pub const _1: Self = Self::new(1);
15301    }
15302    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15303    pub struct Ncodr_SPEC;
15304    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15305    impl Ncodr {
15306        #[doc = "Output CMOS"]
15307        pub const _0: Self = Self::new(0);
15308
15309        #[doc = "Output NMOS open-drain"]
15310        pub const _1: Self = Self::new(1);
15311    }
15312    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15313    pub struct Isel_SPEC;
15314    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15315    impl Isel {
15316        #[doc = "Do not use as IRQn input pin"]
15317        pub const _0: Self = Self::new(0);
15318
15319        #[doc = "Use as IRQn input pin"]
15320        pub const _1: Self = Self::new(1);
15321    }
15322    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15323    pub struct Asel_SPEC;
15324    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15325    impl Asel {
15326        #[doc = "Do not use as analog pin"]
15327        pub const _0: Self = Self::new(0);
15328
15329        #[doc = "Use as analog pin"]
15330        pub const _1: Self = Self::new(1);
15331    }
15332}
15333#[doc(hidden)]
15334#[derive(Copy, Clone, Eq, PartialEq)]
15335pub struct P50PfsBy_SPEC;
15336impl crate::sealed::RegSpec for P50PfsBy_SPEC {
15337    type DataType = u8;
15338}
15339
15340#[doc = "Port 50%s Pin Function Select Register"]
15341pub type P50PfsBy = crate::RegValueT<P50PfsBy_SPEC>;
15342
15343impl P50PfsBy {
15344    #[doc = "Port Output Data"]
15345    #[inline(always)]
15346    pub fn podr(
15347        self,
15348    ) -> crate::common::RegisterField<
15349        0,
15350        0x1,
15351        1,
15352        0,
15353        p50pfs_by::Podr,
15354        p50pfs_by::Podr,
15355        P50PfsBy_SPEC,
15356        crate::common::RW,
15357    > {
15358        crate::common::RegisterField::<
15359            0,
15360            0x1,
15361            1,
15362            0,
15363            p50pfs_by::Podr,
15364            p50pfs_by::Podr,
15365            P50PfsBy_SPEC,
15366            crate::common::RW,
15367        >::from_register(self, 0)
15368    }
15369
15370    #[doc = "Port State"]
15371    #[inline(always)]
15372    pub fn pidr(
15373        self,
15374    ) -> crate::common::RegisterField<
15375        1,
15376        0x1,
15377        1,
15378        0,
15379        p50pfs_by::Pidr,
15380        p50pfs_by::Pidr,
15381        P50PfsBy_SPEC,
15382        crate::common::R,
15383    > {
15384        crate::common::RegisterField::<
15385            1,
15386            0x1,
15387            1,
15388            0,
15389            p50pfs_by::Pidr,
15390            p50pfs_by::Pidr,
15391            P50PfsBy_SPEC,
15392            crate::common::R,
15393        >::from_register(self, 0)
15394    }
15395
15396    #[doc = "Port Direction"]
15397    #[inline(always)]
15398    pub fn pdr(
15399        self,
15400    ) -> crate::common::RegisterField<
15401        2,
15402        0x1,
15403        1,
15404        0,
15405        p50pfs_by::Pdr,
15406        p50pfs_by::Pdr,
15407        P50PfsBy_SPEC,
15408        crate::common::RW,
15409    > {
15410        crate::common::RegisterField::<
15411            2,
15412            0x1,
15413            1,
15414            0,
15415            p50pfs_by::Pdr,
15416            p50pfs_by::Pdr,
15417            P50PfsBy_SPEC,
15418            crate::common::RW,
15419        >::from_register(self, 0)
15420    }
15421
15422    #[doc = "Pull-up Control"]
15423    #[inline(always)]
15424    pub fn pcr(
15425        self,
15426    ) -> crate::common::RegisterField<
15427        4,
15428        0x1,
15429        1,
15430        0,
15431        p50pfs_by::Pcr,
15432        p50pfs_by::Pcr,
15433        P50PfsBy_SPEC,
15434        crate::common::RW,
15435    > {
15436        crate::common::RegisterField::<
15437            4,
15438            0x1,
15439            1,
15440            0,
15441            p50pfs_by::Pcr,
15442            p50pfs_by::Pcr,
15443            P50PfsBy_SPEC,
15444            crate::common::RW,
15445        >::from_register(self, 0)
15446    }
15447
15448    #[doc = "N-Channel Open-Drain Control"]
15449    #[inline(always)]
15450    pub fn ncodr(
15451        self,
15452    ) -> crate::common::RegisterField<
15453        6,
15454        0x1,
15455        1,
15456        0,
15457        p50pfs_by::Ncodr,
15458        p50pfs_by::Ncodr,
15459        P50PfsBy_SPEC,
15460        crate::common::RW,
15461    > {
15462        crate::common::RegisterField::<
15463            6,
15464            0x1,
15465            1,
15466            0,
15467            p50pfs_by::Ncodr,
15468            p50pfs_by::Ncodr,
15469            P50PfsBy_SPEC,
15470            crate::common::RW,
15471        >::from_register(self, 0)
15472    }
15473}
15474impl ::core::default::Default for P50PfsBy {
15475    #[inline(always)]
15476    fn default() -> P50PfsBy {
15477        <crate::RegValueT<P50PfsBy_SPEC> as RegisterValue<_>>::new(0)
15478    }
15479}
15480pub mod p50pfs_by {
15481
15482    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15483    pub struct Podr_SPEC;
15484    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15485    impl Podr {
15486        #[doc = "Output low"]
15487        pub const _0: Self = Self::new(0);
15488
15489        #[doc = "Output high"]
15490        pub const _1: Self = Self::new(1);
15491    }
15492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15493    pub struct Pidr_SPEC;
15494    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15495    impl Pidr {
15496        #[doc = "Low level"]
15497        pub const _0: Self = Self::new(0);
15498
15499        #[doc = "High level"]
15500        pub const _1: Self = Self::new(1);
15501    }
15502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15503    pub struct Pdr_SPEC;
15504    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15505    impl Pdr {
15506        #[doc = "Input (functions as an input pin)"]
15507        pub const _0: Self = Self::new(0);
15508
15509        #[doc = "Output (functions as an output pin)"]
15510        pub const _1: Self = Self::new(1);
15511    }
15512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15513    pub struct Pcr_SPEC;
15514    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15515    impl Pcr {
15516        #[doc = "Disable input pull-up"]
15517        pub const _0: Self = Self::new(0);
15518
15519        #[doc = "Enable input pull-up"]
15520        pub const _1: Self = Self::new(1);
15521    }
15522    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15523    pub struct Ncodr_SPEC;
15524    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15525    impl Ncodr {
15526        #[doc = "Output CMOS"]
15527        pub const _0: Self = Self::new(0);
15528
15529        #[doc = "Output NMOS open-drain"]
15530        pub const _1: Self = Self::new(1);
15531    }
15532}
15533#[doc(hidden)]
15534#[derive(Copy, Clone, Eq, PartialEq)]
15535pub struct P60Pfs_SPEC;
15536impl crate::sealed::RegSpec for P60Pfs_SPEC {
15537    type DataType = u32;
15538}
15539
15540#[doc = "Port 60%s Pin Function Select Register"]
15541pub type P60Pfs = crate::RegValueT<P60Pfs_SPEC>;
15542
15543impl P60Pfs {
15544    #[doc = "Port Output Data"]
15545    #[inline(always)]
15546    pub fn podr(
15547        self,
15548    ) -> crate::common::RegisterField<
15549        0,
15550        0x1,
15551        1,
15552        0,
15553        p60pfs::Podr,
15554        p60pfs::Podr,
15555        P60Pfs_SPEC,
15556        crate::common::RW,
15557    > {
15558        crate::common::RegisterField::<
15559            0,
15560            0x1,
15561            1,
15562            0,
15563            p60pfs::Podr,
15564            p60pfs::Podr,
15565            P60Pfs_SPEC,
15566            crate::common::RW,
15567        >::from_register(self, 0)
15568    }
15569
15570    #[doc = "Port State"]
15571    #[inline(always)]
15572    pub fn pidr(
15573        self,
15574    ) -> crate::common::RegisterField<
15575        1,
15576        0x1,
15577        1,
15578        0,
15579        p60pfs::Pidr,
15580        p60pfs::Pidr,
15581        P60Pfs_SPEC,
15582        crate::common::R,
15583    > {
15584        crate::common::RegisterField::<
15585            1,
15586            0x1,
15587            1,
15588            0,
15589            p60pfs::Pidr,
15590            p60pfs::Pidr,
15591            P60Pfs_SPEC,
15592            crate::common::R,
15593        >::from_register(self, 0)
15594    }
15595
15596    #[doc = "Port Direction"]
15597    #[inline(always)]
15598    pub fn pdr(
15599        self,
15600    ) -> crate::common::RegisterField<
15601        2,
15602        0x1,
15603        1,
15604        0,
15605        p60pfs::Pdr,
15606        p60pfs::Pdr,
15607        P60Pfs_SPEC,
15608        crate::common::RW,
15609    > {
15610        crate::common::RegisterField::<
15611            2,
15612            0x1,
15613            1,
15614            0,
15615            p60pfs::Pdr,
15616            p60pfs::Pdr,
15617            P60Pfs_SPEC,
15618            crate::common::RW,
15619        >::from_register(self, 0)
15620    }
15621
15622    #[doc = "Pull-up Control"]
15623    #[inline(always)]
15624    pub fn pcr(
15625        self,
15626    ) -> crate::common::RegisterField<
15627        4,
15628        0x1,
15629        1,
15630        0,
15631        p60pfs::Pcr,
15632        p60pfs::Pcr,
15633        P60Pfs_SPEC,
15634        crate::common::RW,
15635    > {
15636        crate::common::RegisterField::<
15637            4,
15638            0x1,
15639            1,
15640            0,
15641            p60pfs::Pcr,
15642            p60pfs::Pcr,
15643            P60Pfs_SPEC,
15644            crate::common::RW,
15645        >::from_register(self, 0)
15646    }
15647
15648    #[doc = "N-Channel Open-Drain Control"]
15649    #[inline(always)]
15650    pub fn ncodr(
15651        self,
15652    ) -> crate::common::RegisterField<
15653        6,
15654        0x1,
15655        1,
15656        0,
15657        p60pfs::Ncodr,
15658        p60pfs::Ncodr,
15659        P60Pfs_SPEC,
15660        crate::common::RW,
15661    > {
15662        crate::common::RegisterField::<
15663            6,
15664            0x1,
15665            1,
15666            0,
15667            p60pfs::Ncodr,
15668            p60pfs::Ncodr,
15669            P60Pfs_SPEC,
15670            crate::common::RW,
15671        >::from_register(self, 0)
15672    }
15673
15674    #[doc = "IRQ Input Enable"]
15675    #[inline(always)]
15676    pub fn isel(
15677        self,
15678    ) -> crate::common::RegisterField<
15679        14,
15680        0x1,
15681        1,
15682        0,
15683        p60pfs::Isel,
15684        p60pfs::Isel,
15685        P60Pfs_SPEC,
15686        crate::common::RW,
15687    > {
15688        crate::common::RegisterField::<
15689            14,
15690            0x1,
15691            1,
15692            0,
15693            p60pfs::Isel,
15694            p60pfs::Isel,
15695            P60Pfs_SPEC,
15696            crate::common::RW,
15697        >::from_register(self, 0)
15698    }
15699
15700    #[doc = "Analog Input Enable"]
15701    #[inline(always)]
15702    pub fn asel(
15703        self,
15704    ) -> crate::common::RegisterField<
15705        15,
15706        0x1,
15707        1,
15708        0,
15709        p60pfs::Asel,
15710        p60pfs::Asel,
15711        P60Pfs_SPEC,
15712        crate::common::RW,
15713    > {
15714        crate::common::RegisterField::<
15715            15,
15716            0x1,
15717            1,
15718            0,
15719            p60pfs::Asel,
15720            p60pfs::Asel,
15721            P60Pfs_SPEC,
15722            crate::common::RW,
15723        >::from_register(self, 0)
15724    }
15725
15726    #[doc = "Port Mode Control"]
15727    #[inline(always)]
15728    pub fn pmr(
15729        self,
15730    ) -> crate::common::RegisterField<
15731        16,
15732        0x1,
15733        1,
15734        0,
15735        p60pfs::Pmr,
15736        p60pfs::Pmr,
15737        P60Pfs_SPEC,
15738        crate::common::RW,
15739    > {
15740        crate::common::RegisterField::<
15741            16,
15742            0x1,
15743            1,
15744            0,
15745            p60pfs::Pmr,
15746            p60pfs::Pmr,
15747            P60Pfs_SPEC,
15748            crate::common::RW,
15749        >::from_register(self, 0)
15750    }
15751
15752    #[doc = "Peripheral Select"]
15753    #[inline(always)]
15754    pub fn psel(
15755        self,
15756    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P60Pfs_SPEC, crate::common::RW> {
15757        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P60Pfs_SPEC,crate::common::RW>::from_register(self,0)
15758    }
15759}
15760impl ::core::default::Default for P60Pfs {
15761    #[inline(always)]
15762    fn default() -> P60Pfs {
15763        <crate::RegValueT<P60Pfs_SPEC> as RegisterValue<_>>::new(0)
15764    }
15765}
15766pub mod p60pfs {
15767
15768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15769    pub struct Podr_SPEC;
15770    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15771    impl Podr {
15772        #[doc = "Output low"]
15773        pub const _0: Self = Self::new(0);
15774
15775        #[doc = "Output high"]
15776        pub const _1: Self = Self::new(1);
15777    }
15778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15779    pub struct Pidr_SPEC;
15780    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15781    impl Pidr {
15782        #[doc = "Low level"]
15783        pub const _0: Self = Self::new(0);
15784
15785        #[doc = "High level"]
15786        pub const _1: Self = Self::new(1);
15787    }
15788    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15789    pub struct Pdr_SPEC;
15790    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15791    impl Pdr {
15792        #[doc = "Input (functions as an input pin)"]
15793        pub const _0: Self = Self::new(0);
15794
15795        #[doc = "Output (functions as an output pin)"]
15796        pub const _1: Self = Self::new(1);
15797    }
15798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15799    pub struct Pcr_SPEC;
15800    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15801    impl Pcr {
15802        #[doc = "Disable input pull-up"]
15803        pub const _0: Self = Self::new(0);
15804
15805        #[doc = "Enable input pull-up"]
15806        pub const _1: Self = Self::new(1);
15807    }
15808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15809    pub struct Ncodr_SPEC;
15810    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15811    impl Ncodr {
15812        #[doc = "Output CMOS"]
15813        pub const _0: Self = Self::new(0);
15814
15815        #[doc = "Output NMOS open-drain"]
15816        pub const _1: Self = Self::new(1);
15817    }
15818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15819    pub struct Isel_SPEC;
15820    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15821    impl Isel {
15822        #[doc = "Do not use as IRQn input pin"]
15823        pub const _0: Self = Self::new(0);
15824
15825        #[doc = "Use as IRQn input pin"]
15826        pub const _1: Self = Self::new(1);
15827    }
15828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15829    pub struct Asel_SPEC;
15830    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15831    impl Asel {
15832        #[doc = "Do not use as analog pin"]
15833        pub const _0: Self = Self::new(0);
15834
15835        #[doc = "Use as analog pin"]
15836        pub const _1: Self = Self::new(1);
15837    }
15838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15839    pub struct Pmr_SPEC;
15840    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15841    impl Pmr {
15842        #[doc = "Use as general I/O pin"]
15843        pub const _0: Self = Self::new(0);
15844
15845        #[doc = "Use as I/O port for peripheral functions"]
15846        pub const _1: Self = Self::new(1);
15847    }
15848}
15849#[doc(hidden)]
15850#[derive(Copy, Clone, Eq, PartialEq)]
15851pub struct P60PfsHa_SPEC;
15852impl crate::sealed::RegSpec for P60PfsHa_SPEC {
15853    type DataType = u16;
15854}
15855
15856#[doc = "Port 60%s Pin Function Select Register"]
15857pub type P60PfsHa = crate::RegValueT<P60PfsHa_SPEC>;
15858
15859impl P60PfsHa {
15860    #[doc = "Port Output Data"]
15861    #[inline(always)]
15862    pub fn podr(
15863        self,
15864    ) -> crate::common::RegisterField<
15865        0,
15866        0x1,
15867        1,
15868        0,
15869        p60pfs_ha::Podr,
15870        p60pfs_ha::Podr,
15871        P60PfsHa_SPEC,
15872        crate::common::RW,
15873    > {
15874        crate::common::RegisterField::<
15875            0,
15876            0x1,
15877            1,
15878            0,
15879            p60pfs_ha::Podr,
15880            p60pfs_ha::Podr,
15881            P60PfsHa_SPEC,
15882            crate::common::RW,
15883        >::from_register(self, 0)
15884    }
15885
15886    #[doc = "Port State"]
15887    #[inline(always)]
15888    pub fn pidr(
15889        self,
15890    ) -> crate::common::RegisterField<
15891        1,
15892        0x1,
15893        1,
15894        0,
15895        p60pfs_ha::Pidr,
15896        p60pfs_ha::Pidr,
15897        P60PfsHa_SPEC,
15898        crate::common::R,
15899    > {
15900        crate::common::RegisterField::<
15901            1,
15902            0x1,
15903            1,
15904            0,
15905            p60pfs_ha::Pidr,
15906            p60pfs_ha::Pidr,
15907            P60PfsHa_SPEC,
15908            crate::common::R,
15909        >::from_register(self, 0)
15910    }
15911
15912    #[doc = "Port Direction"]
15913    #[inline(always)]
15914    pub fn pdr(
15915        self,
15916    ) -> crate::common::RegisterField<
15917        2,
15918        0x1,
15919        1,
15920        0,
15921        p60pfs_ha::Pdr,
15922        p60pfs_ha::Pdr,
15923        P60PfsHa_SPEC,
15924        crate::common::RW,
15925    > {
15926        crate::common::RegisterField::<
15927            2,
15928            0x1,
15929            1,
15930            0,
15931            p60pfs_ha::Pdr,
15932            p60pfs_ha::Pdr,
15933            P60PfsHa_SPEC,
15934            crate::common::RW,
15935        >::from_register(self, 0)
15936    }
15937
15938    #[doc = "Pull-up Control"]
15939    #[inline(always)]
15940    pub fn pcr(
15941        self,
15942    ) -> crate::common::RegisterField<
15943        4,
15944        0x1,
15945        1,
15946        0,
15947        p60pfs_ha::Pcr,
15948        p60pfs_ha::Pcr,
15949        P60PfsHa_SPEC,
15950        crate::common::RW,
15951    > {
15952        crate::common::RegisterField::<
15953            4,
15954            0x1,
15955            1,
15956            0,
15957            p60pfs_ha::Pcr,
15958            p60pfs_ha::Pcr,
15959            P60PfsHa_SPEC,
15960            crate::common::RW,
15961        >::from_register(self, 0)
15962    }
15963
15964    #[doc = "N-Channel Open-Drain Control"]
15965    #[inline(always)]
15966    pub fn ncodr(
15967        self,
15968    ) -> crate::common::RegisterField<
15969        6,
15970        0x1,
15971        1,
15972        0,
15973        p60pfs_ha::Ncodr,
15974        p60pfs_ha::Ncodr,
15975        P60PfsHa_SPEC,
15976        crate::common::RW,
15977    > {
15978        crate::common::RegisterField::<
15979            6,
15980            0x1,
15981            1,
15982            0,
15983            p60pfs_ha::Ncodr,
15984            p60pfs_ha::Ncodr,
15985            P60PfsHa_SPEC,
15986            crate::common::RW,
15987        >::from_register(self, 0)
15988    }
15989
15990    #[doc = "IRQ Input Enable"]
15991    #[inline(always)]
15992    pub fn isel(
15993        self,
15994    ) -> crate::common::RegisterField<
15995        14,
15996        0x1,
15997        1,
15998        0,
15999        p60pfs_ha::Isel,
16000        p60pfs_ha::Isel,
16001        P60PfsHa_SPEC,
16002        crate::common::RW,
16003    > {
16004        crate::common::RegisterField::<
16005            14,
16006            0x1,
16007            1,
16008            0,
16009            p60pfs_ha::Isel,
16010            p60pfs_ha::Isel,
16011            P60PfsHa_SPEC,
16012            crate::common::RW,
16013        >::from_register(self, 0)
16014    }
16015
16016    #[doc = "Analog Input Enable"]
16017    #[inline(always)]
16018    pub fn asel(
16019        self,
16020    ) -> crate::common::RegisterField<
16021        15,
16022        0x1,
16023        1,
16024        0,
16025        p60pfs_ha::Asel,
16026        p60pfs_ha::Asel,
16027        P60PfsHa_SPEC,
16028        crate::common::RW,
16029    > {
16030        crate::common::RegisterField::<
16031            15,
16032            0x1,
16033            1,
16034            0,
16035            p60pfs_ha::Asel,
16036            p60pfs_ha::Asel,
16037            P60PfsHa_SPEC,
16038            crate::common::RW,
16039        >::from_register(self, 0)
16040    }
16041}
16042impl ::core::default::Default for P60PfsHa {
16043    #[inline(always)]
16044    fn default() -> P60PfsHa {
16045        <crate::RegValueT<P60PfsHa_SPEC> as RegisterValue<_>>::new(0)
16046    }
16047}
16048pub mod p60pfs_ha {
16049
16050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16051    pub struct Podr_SPEC;
16052    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16053    impl Podr {
16054        #[doc = "Output low"]
16055        pub const _0: Self = Self::new(0);
16056
16057        #[doc = "Output high"]
16058        pub const _1: Self = Self::new(1);
16059    }
16060    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16061    pub struct Pidr_SPEC;
16062    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16063    impl Pidr {
16064        #[doc = "Low level"]
16065        pub const _0: Self = Self::new(0);
16066
16067        #[doc = "High level"]
16068        pub const _1: Self = Self::new(1);
16069    }
16070    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16071    pub struct Pdr_SPEC;
16072    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16073    impl Pdr {
16074        #[doc = "Input (functions as an input pin)"]
16075        pub const _0: Self = Self::new(0);
16076
16077        #[doc = "Output (functions as an output pin)"]
16078        pub const _1: Self = Self::new(1);
16079    }
16080    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16081    pub struct Pcr_SPEC;
16082    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16083    impl Pcr {
16084        #[doc = "Disable input pull-up"]
16085        pub const _0: Self = Self::new(0);
16086
16087        #[doc = "Enable input pull-up"]
16088        pub const _1: Self = Self::new(1);
16089    }
16090    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16091    pub struct Ncodr_SPEC;
16092    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16093    impl Ncodr {
16094        #[doc = "Output CMOS"]
16095        pub const _0: Self = Self::new(0);
16096
16097        #[doc = "Output NMOS open-drain"]
16098        pub const _1: Self = Self::new(1);
16099    }
16100    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16101    pub struct Isel_SPEC;
16102    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16103    impl Isel {
16104        #[doc = "Do not use as IRQn input pin"]
16105        pub const _0: Self = Self::new(0);
16106
16107        #[doc = "Use as IRQn input pin"]
16108        pub const _1: Self = Self::new(1);
16109    }
16110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16111    pub struct Asel_SPEC;
16112    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16113    impl Asel {
16114        #[doc = "Do not use as analog pin"]
16115        pub const _0: Self = Self::new(0);
16116
16117        #[doc = "Use as analog pin"]
16118        pub const _1: Self = Self::new(1);
16119    }
16120}
16121#[doc(hidden)]
16122#[derive(Copy, Clone, Eq, PartialEq)]
16123pub struct P60PfsBy_SPEC;
16124impl crate::sealed::RegSpec for P60PfsBy_SPEC {
16125    type DataType = u8;
16126}
16127
16128#[doc = "Port 60%s Pin Function Select Register"]
16129pub type P60PfsBy = crate::RegValueT<P60PfsBy_SPEC>;
16130
16131impl P60PfsBy {
16132    #[doc = "Port Output Data"]
16133    #[inline(always)]
16134    pub fn podr(
16135        self,
16136    ) -> crate::common::RegisterField<
16137        0,
16138        0x1,
16139        1,
16140        0,
16141        p60pfs_by::Podr,
16142        p60pfs_by::Podr,
16143        P60PfsBy_SPEC,
16144        crate::common::RW,
16145    > {
16146        crate::common::RegisterField::<
16147            0,
16148            0x1,
16149            1,
16150            0,
16151            p60pfs_by::Podr,
16152            p60pfs_by::Podr,
16153            P60PfsBy_SPEC,
16154            crate::common::RW,
16155        >::from_register(self, 0)
16156    }
16157
16158    #[doc = "Port State"]
16159    #[inline(always)]
16160    pub fn pidr(
16161        self,
16162    ) -> crate::common::RegisterField<
16163        1,
16164        0x1,
16165        1,
16166        0,
16167        p60pfs_by::Pidr,
16168        p60pfs_by::Pidr,
16169        P60PfsBy_SPEC,
16170        crate::common::R,
16171    > {
16172        crate::common::RegisterField::<
16173            1,
16174            0x1,
16175            1,
16176            0,
16177            p60pfs_by::Pidr,
16178            p60pfs_by::Pidr,
16179            P60PfsBy_SPEC,
16180            crate::common::R,
16181        >::from_register(self, 0)
16182    }
16183
16184    #[doc = "Port Direction"]
16185    #[inline(always)]
16186    pub fn pdr(
16187        self,
16188    ) -> crate::common::RegisterField<
16189        2,
16190        0x1,
16191        1,
16192        0,
16193        p60pfs_by::Pdr,
16194        p60pfs_by::Pdr,
16195        P60PfsBy_SPEC,
16196        crate::common::RW,
16197    > {
16198        crate::common::RegisterField::<
16199            2,
16200            0x1,
16201            1,
16202            0,
16203            p60pfs_by::Pdr,
16204            p60pfs_by::Pdr,
16205            P60PfsBy_SPEC,
16206            crate::common::RW,
16207        >::from_register(self, 0)
16208    }
16209
16210    #[doc = "Pull-up Control"]
16211    #[inline(always)]
16212    pub fn pcr(
16213        self,
16214    ) -> crate::common::RegisterField<
16215        4,
16216        0x1,
16217        1,
16218        0,
16219        p60pfs_by::Pcr,
16220        p60pfs_by::Pcr,
16221        P60PfsBy_SPEC,
16222        crate::common::RW,
16223    > {
16224        crate::common::RegisterField::<
16225            4,
16226            0x1,
16227            1,
16228            0,
16229            p60pfs_by::Pcr,
16230            p60pfs_by::Pcr,
16231            P60PfsBy_SPEC,
16232            crate::common::RW,
16233        >::from_register(self, 0)
16234    }
16235
16236    #[doc = "N-Channel Open-Drain Control"]
16237    #[inline(always)]
16238    pub fn ncodr(
16239        self,
16240    ) -> crate::common::RegisterField<
16241        6,
16242        0x1,
16243        1,
16244        0,
16245        p60pfs_by::Ncodr,
16246        p60pfs_by::Ncodr,
16247        P60PfsBy_SPEC,
16248        crate::common::RW,
16249    > {
16250        crate::common::RegisterField::<
16251            6,
16252            0x1,
16253            1,
16254            0,
16255            p60pfs_by::Ncodr,
16256            p60pfs_by::Ncodr,
16257            P60PfsBy_SPEC,
16258            crate::common::RW,
16259        >::from_register(self, 0)
16260    }
16261}
16262impl ::core::default::Default for P60PfsBy {
16263    #[inline(always)]
16264    fn default() -> P60PfsBy {
16265        <crate::RegValueT<P60PfsBy_SPEC> as RegisterValue<_>>::new(0)
16266    }
16267}
16268pub mod p60pfs_by {
16269
16270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16271    pub struct Podr_SPEC;
16272    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16273    impl Podr {
16274        #[doc = "Output low"]
16275        pub const _0: Self = Self::new(0);
16276
16277        #[doc = "Output high"]
16278        pub const _1: Self = Self::new(1);
16279    }
16280    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16281    pub struct Pidr_SPEC;
16282    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16283    impl Pidr {
16284        #[doc = "Low level"]
16285        pub const _0: Self = Self::new(0);
16286
16287        #[doc = "High level"]
16288        pub const _1: Self = Self::new(1);
16289    }
16290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16291    pub struct Pdr_SPEC;
16292    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16293    impl Pdr {
16294        #[doc = "Input (functions as an input pin)"]
16295        pub const _0: Self = Self::new(0);
16296
16297        #[doc = "Output (functions as an output pin)"]
16298        pub const _1: Self = Self::new(1);
16299    }
16300    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16301    pub struct Pcr_SPEC;
16302    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16303    impl Pcr {
16304        #[doc = "Disable input pull-up"]
16305        pub const _0: Self = Self::new(0);
16306
16307        #[doc = "Enable input pull-up"]
16308        pub const _1: Self = Self::new(1);
16309    }
16310    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16311    pub struct Ncodr_SPEC;
16312    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16313    impl Ncodr {
16314        #[doc = "Output CMOS"]
16315        pub const _0: Self = Self::new(0);
16316
16317        #[doc = "Output NMOS open-drain"]
16318        pub const _1: Self = Self::new(1);
16319    }
16320}
16321#[doc(hidden)]
16322#[derive(Copy, Clone, Eq, PartialEq)]
16323pub struct P610Pfs_SPEC;
16324impl crate::sealed::RegSpec for P610Pfs_SPEC {
16325    type DataType = u32;
16326}
16327
16328#[doc = "Port 610 Pin Function Select Register"]
16329pub type P610Pfs = crate::RegValueT<P610Pfs_SPEC>;
16330
16331impl P610Pfs {
16332    #[doc = "Port Output Data"]
16333    #[inline(always)]
16334    pub fn podr(
16335        self,
16336    ) -> crate::common::RegisterField<
16337        0,
16338        0x1,
16339        1,
16340        0,
16341        p610pfs::Podr,
16342        p610pfs::Podr,
16343        P610Pfs_SPEC,
16344        crate::common::RW,
16345    > {
16346        crate::common::RegisterField::<
16347            0,
16348            0x1,
16349            1,
16350            0,
16351            p610pfs::Podr,
16352            p610pfs::Podr,
16353            P610Pfs_SPEC,
16354            crate::common::RW,
16355        >::from_register(self, 0)
16356    }
16357
16358    #[doc = "Port State"]
16359    #[inline(always)]
16360    pub fn pidr(
16361        self,
16362    ) -> crate::common::RegisterField<
16363        1,
16364        0x1,
16365        1,
16366        0,
16367        p610pfs::Pidr,
16368        p610pfs::Pidr,
16369        P610Pfs_SPEC,
16370        crate::common::R,
16371    > {
16372        crate::common::RegisterField::<
16373            1,
16374            0x1,
16375            1,
16376            0,
16377            p610pfs::Pidr,
16378            p610pfs::Pidr,
16379            P610Pfs_SPEC,
16380            crate::common::R,
16381        >::from_register(self, 0)
16382    }
16383
16384    #[doc = "Port Direction"]
16385    #[inline(always)]
16386    pub fn pdr(
16387        self,
16388    ) -> crate::common::RegisterField<
16389        2,
16390        0x1,
16391        1,
16392        0,
16393        p610pfs::Pdr,
16394        p610pfs::Pdr,
16395        P610Pfs_SPEC,
16396        crate::common::RW,
16397    > {
16398        crate::common::RegisterField::<
16399            2,
16400            0x1,
16401            1,
16402            0,
16403            p610pfs::Pdr,
16404            p610pfs::Pdr,
16405            P610Pfs_SPEC,
16406            crate::common::RW,
16407        >::from_register(self, 0)
16408    }
16409
16410    #[doc = "Pull-up Control"]
16411    #[inline(always)]
16412    pub fn pcr(
16413        self,
16414    ) -> crate::common::RegisterField<
16415        4,
16416        0x1,
16417        1,
16418        0,
16419        p610pfs::Pcr,
16420        p610pfs::Pcr,
16421        P610Pfs_SPEC,
16422        crate::common::RW,
16423    > {
16424        crate::common::RegisterField::<
16425            4,
16426            0x1,
16427            1,
16428            0,
16429            p610pfs::Pcr,
16430            p610pfs::Pcr,
16431            P610Pfs_SPEC,
16432            crate::common::RW,
16433        >::from_register(self, 0)
16434    }
16435
16436    #[doc = "N-Channel Open-Drain Control"]
16437    #[inline(always)]
16438    pub fn ncodr(
16439        self,
16440    ) -> crate::common::RegisterField<
16441        6,
16442        0x1,
16443        1,
16444        0,
16445        p610pfs::Ncodr,
16446        p610pfs::Ncodr,
16447        P610Pfs_SPEC,
16448        crate::common::RW,
16449    > {
16450        crate::common::RegisterField::<
16451            6,
16452            0x1,
16453            1,
16454            0,
16455            p610pfs::Ncodr,
16456            p610pfs::Ncodr,
16457            P610Pfs_SPEC,
16458            crate::common::RW,
16459        >::from_register(self, 0)
16460    }
16461
16462    #[doc = "IRQ Input Enable"]
16463    #[inline(always)]
16464    pub fn isel(
16465        self,
16466    ) -> crate::common::RegisterField<
16467        14,
16468        0x1,
16469        1,
16470        0,
16471        p610pfs::Isel,
16472        p610pfs::Isel,
16473        P610Pfs_SPEC,
16474        crate::common::RW,
16475    > {
16476        crate::common::RegisterField::<
16477            14,
16478            0x1,
16479            1,
16480            0,
16481            p610pfs::Isel,
16482            p610pfs::Isel,
16483            P610Pfs_SPEC,
16484            crate::common::RW,
16485        >::from_register(self, 0)
16486    }
16487
16488    #[doc = "Analog Input Enable"]
16489    #[inline(always)]
16490    pub fn asel(
16491        self,
16492    ) -> crate::common::RegisterField<
16493        15,
16494        0x1,
16495        1,
16496        0,
16497        p610pfs::Asel,
16498        p610pfs::Asel,
16499        P610Pfs_SPEC,
16500        crate::common::RW,
16501    > {
16502        crate::common::RegisterField::<
16503            15,
16504            0x1,
16505            1,
16506            0,
16507            p610pfs::Asel,
16508            p610pfs::Asel,
16509            P610Pfs_SPEC,
16510            crate::common::RW,
16511        >::from_register(self, 0)
16512    }
16513
16514    #[doc = "Port Mode Control"]
16515    #[inline(always)]
16516    pub fn pmr(
16517        self,
16518    ) -> crate::common::RegisterField<
16519        16,
16520        0x1,
16521        1,
16522        0,
16523        p610pfs::Pmr,
16524        p610pfs::Pmr,
16525        P610Pfs_SPEC,
16526        crate::common::RW,
16527    > {
16528        crate::common::RegisterField::<
16529            16,
16530            0x1,
16531            1,
16532            0,
16533            p610pfs::Pmr,
16534            p610pfs::Pmr,
16535            P610Pfs_SPEC,
16536            crate::common::RW,
16537        >::from_register(self, 0)
16538    }
16539
16540    #[doc = "Peripheral Select"]
16541    #[inline(always)]
16542    pub fn psel(
16543        self,
16544    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P610Pfs_SPEC, crate::common::RW> {
16545        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P610Pfs_SPEC,crate::common::RW>::from_register(self,0)
16546    }
16547}
16548impl ::core::default::Default for P610Pfs {
16549    #[inline(always)]
16550    fn default() -> P610Pfs {
16551        <crate::RegValueT<P610Pfs_SPEC> as RegisterValue<_>>::new(0)
16552    }
16553}
16554pub mod p610pfs {
16555
16556    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16557    pub struct Podr_SPEC;
16558    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16559    impl Podr {
16560        #[doc = "Output low"]
16561        pub const _0: Self = Self::new(0);
16562
16563        #[doc = "Output high"]
16564        pub const _1: Self = Self::new(1);
16565    }
16566    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16567    pub struct Pidr_SPEC;
16568    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16569    impl Pidr {
16570        #[doc = "Low level"]
16571        pub const _0: Self = Self::new(0);
16572
16573        #[doc = "High level"]
16574        pub const _1: Self = Self::new(1);
16575    }
16576    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16577    pub struct Pdr_SPEC;
16578    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16579    impl Pdr {
16580        #[doc = "Input (functions as an input pin)"]
16581        pub const _0: Self = Self::new(0);
16582
16583        #[doc = "Output (functions as an output pin)"]
16584        pub const _1: Self = Self::new(1);
16585    }
16586    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16587    pub struct Pcr_SPEC;
16588    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16589    impl Pcr {
16590        #[doc = "Disable input pull-up"]
16591        pub const _0: Self = Self::new(0);
16592
16593        #[doc = "Enable input pull-up"]
16594        pub const _1: Self = Self::new(1);
16595    }
16596    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16597    pub struct Ncodr_SPEC;
16598    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16599    impl Ncodr {
16600        #[doc = "Output CMOS"]
16601        pub const _0: Self = Self::new(0);
16602
16603        #[doc = "Output NMOS open-drain"]
16604        pub const _1: Self = Self::new(1);
16605    }
16606    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16607    pub struct Isel_SPEC;
16608    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16609    impl Isel {
16610        #[doc = "Do not use as IRQn input pin"]
16611        pub const _0: Self = Self::new(0);
16612
16613        #[doc = "Use as IRQn input pin"]
16614        pub const _1: Self = Self::new(1);
16615    }
16616    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16617    pub struct Asel_SPEC;
16618    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16619    impl Asel {
16620        #[doc = "Do not use as analog pin"]
16621        pub const _0: Self = Self::new(0);
16622
16623        #[doc = "Use as analog pin"]
16624        pub const _1: Self = Self::new(1);
16625    }
16626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16627    pub struct Pmr_SPEC;
16628    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
16629    impl Pmr {
16630        #[doc = "Use as general I/O pin"]
16631        pub const _0: Self = Self::new(0);
16632
16633        #[doc = "Use as I/O port for peripheral functions"]
16634        pub const _1: Self = Self::new(1);
16635    }
16636}
16637#[doc(hidden)]
16638#[derive(Copy, Clone, Eq, PartialEq)]
16639pub struct P610PfsHa_SPEC;
16640impl crate::sealed::RegSpec for P610PfsHa_SPEC {
16641    type DataType = u16;
16642}
16643
16644#[doc = "Port 610 Pin Function Select Register"]
16645pub type P610PfsHa = crate::RegValueT<P610PfsHa_SPEC>;
16646
16647impl P610PfsHa {
16648    #[doc = "Port Output Data"]
16649    #[inline(always)]
16650    pub fn podr(
16651        self,
16652    ) -> crate::common::RegisterField<
16653        0,
16654        0x1,
16655        1,
16656        0,
16657        p610pfs_ha::Podr,
16658        p610pfs_ha::Podr,
16659        P610PfsHa_SPEC,
16660        crate::common::RW,
16661    > {
16662        crate::common::RegisterField::<
16663            0,
16664            0x1,
16665            1,
16666            0,
16667            p610pfs_ha::Podr,
16668            p610pfs_ha::Podr,
16669            P610PfsHa_SPEC,
16670            crate::common::RW,
16671        >::from_register(self, 0)
16672    }
16673
16674    #[doc = "Port State"]
16675    #[inline(always)]
16676    pub fn pidr(
16677        self,
16678    ) -> crate::common::RegisterField<
16679        1,
16680        0x1,
16681        1,
16682        0,
16683        p610pfs_ha::Pidr,
16684        p610pfs_ha::Pidr,
16685        P610PfsHa_SPEC,
16686        crate::common::R,
16687    > {
16688        crate::common::RegisterField::<
16689            1,
16690            0x1,
16691            1,
16692            0,
16693            p610pfs_ha::Pidr,
16694            p610pfs_ha::Pidr,
16695            P610PfsHa_SPEC,
16696            crate::common::R,
16697        >::from_register(self, 0)
16698    }
16699
16700    #[doc = "Port Direction"]
16701    #[inline(always)]
16702    pub fn pdr(
16703        self,
16704    ) -> crate::common::RegisterField<
16705        2,
16706        0x1,
16707        1,
16708        0,
16709        p610pfs_ha::Pdr,
16710        p610pfs_ha::Pdr,
16711        P610PfsHa_SPEC,
16712        crate::common::RW,
16713    > {
16714        crate::common::RegisterField::<
16715            2,
16716            0x1,
16717            1,
16718            0,
16719            p610pfs_ha::Pdr,
16720            p610pfs_ha::Pdr,
16721            P610PfsHa_SPEC,
16722            crate::common::RW,
16723        >::from_register(self, 0)
16724    }
16725
16726    #[doc = "Pull-up Control"]
16727    #[inline(always)]
16728    pub fn pcr(
16729        self,
16730    ) -> crate::common::RegisterField<
16731        4,
16732        0x1,
16733        1,
16734        0,
16735        p610pfs_ha::Pcr,
16736        p610pfs_ha::Pcr,
16737        P610PfsHa_SPEC,
16738        crate::common::RW,
16739    > {
16740        crate::common::RegisterField::<
16741            4,
16742            0x1,
16743            1,
16744            0,
16745            p610pfs_ha::Pcr,
16746            p610pfs_ha::Pcr,
16747            P610PfsHa_SPEC,
16748            crate::common::RW,
16749        >::from_register(self, 0)
16750    }
16751
16752    #[doc = "N-Channel Open-Drain Control"]
16753    #[inline(always)]
16754    pub fn ncodr(
16755        self,
16756    ) -> crate::common::RegisterField<
16757        6,
16758        0x1,
16759        1,
16760        0,
16761        p610pfs_ha::Ncodr,
16762        p610pfs_ha::Ncodr,
16763        P610PfsHa_SPEC,
16764        crate::common::RW,
16765    > {
16766        crate::common::RegisterField::<
16767            6,
16768            0x1,
16769            1,
16770            0,
16771            p610pfs_ha::Ncodr,
16772            p610pfs_ha::Ncodr,
16773            P610PfsHa_SPEC,
16774            crate::common::RW,
16775        >::from_register(self, 0)
16776    }
16777
16778    #[doc = "IRQ Input Enable"]
16779    #[inline(always)]
16780    pub fn isel(
16781        self,
16782    ) -> crate::common::RegisterField<
16783        14,
16784        0x1,
16785        1,
16786        0,
16787        p610pfs_ha::Isel,
16788        p610pfs_ha::Isel,
16789        P610PfsHa_SPEC,
16790        crate::common::RW,
16791    > {
16792        crate::common::RegisterField::<
16793            14,
16794            0x1,
16795            1,
16796            0,
16797            p610pfs_ha::Isel,
16798            p610pfs_ha::Isel,
16799            P610PfsHa_SPEC,
16800            crate::common::RW,
16801        >::from_register(self, 0)
16802    }
16803
16804    #[doc = "Analog Input Enable"]
16805    #[inline(always)]
16806    pub fn asel(
16807        self,
16808    ) -> crate::common::RegisterField<
16809        15,
16810        0x1,
16811        1,
16812        0,
16813        p610pfs_ha::Asel,
16814        p610pfs_ha::Asel,
16815        P610PfsHa_SPEC,
16816        crate::common::RW,
16817    > {
16818        crate::common::RegisterField::<
16819            15,
16820            0x1,
16821            1,
16822            0,
16823            p610pfs_ha::Asel,
16824            p610pfs_ha::Asel,
16825            P610PfsHa_SPEC,
16826            crate::common::RW,
16827        >::from_register(self, 0)
16828    }
16829}
16830impl ::core::default::Default for P610PfsHa {
16831    #[inline(always)]
16832    fn default() -> P610PfsHa {
16833        <crate::RegValueT<P610PfsHa_SPEC> as RegisterValue<_>>::new(0)
16834    }
16835}
16836pub mod p610pfs_ha {
16837
16838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16839    pub struct Podr_SPEC;
16840    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16841    impl Podr {
16842        #[doc = "Output low"]
16843        pub const _0: Self = Self::new(0);
16844
16845        #[doc = "Output high"]
16846        pub const _1: Self = Self::new(1);
16847    }
16848    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16849    pub struct Pidr_SPEC;
16850    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16851    impl Pidr {
16852        #[doc = "Low level"]
16853        pub const _0: Self = Self::new(0);
16854
16855        #[doc = "High level"]
16856        pub const _1: Self = Self::new(1);
16857    }
16858    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16859    pub struct Pdr_SPEC;
16860    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16861    impl Pdr {
16862        #[doc = "Input (functions as an input pin)"]
16863        pub const _0: Self = Self::new(0);
16864
16865        #[doc = "Output (functions as an output pin)"]
16866        pub const _1: Self = Self::new(1);
16867    }
16868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16869    pub struct Pcr_SPEC;
16870    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16871    impl Pcr {
16872        #[doc = "Disable input pull-up"]
16873        pub const _0: Self = Self::new(0);
16874
16875        #[doc = "Enable input pull-up"]
16876        pub const _1: Self = Self::new(1);
16877    }
16878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16879    pub struct Ncodr_SPEC;
16880    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16881    impl Ncodr {
16882        #[doc = "Output CMOS"]
16883        pub const _0: Self = Self::new(0);
16884
16885        #[doc = "Output NMOS open-drain"]
16886        pub const _1: Self = Self::new(1);
16887    }
16888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16889    pub struct Isel_SPEC;
16890    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16891    impl Isel {
16892        #[doc = "Do not use as IRQn input pin"]
16893        pub const _0: Self = Self::new(0);
16894
16895        #[doc = "Use as IRQn input pin"]
16896        pub const _1: Self = Self::new(1);
16897    }
16898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16899    pub struct Asel_SPEC;
16900    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16901    impl Asel {
16902        #[doc = "Do not use as analog pin"]
16903        pub const _0: Self = Self::new(0);
16904
16905        #[doc = "Use as analog pin"]
16906        pub const _1: Self = Self::new(1);
16907    }
16908}
16909#[doc(hidden)]
16910#[derive(Copy, Clone, Eq, PartialEq)]
16911pub struct P610PfsBy_SPEC;
16912impl crate::sealed::RegSpec for P610PfsBy_SPEC {
16913    type DataType = u8;
16914}
16915
16916#[doc = "Port 610 Pin Function Select Register"]
16917pub type P610PfsBy = crate::RegValueT<P610PfsBy_SPEC>;
16918
16919impl P610PfsBy {
16920    #[doc = "Port Output Data"]
16921    #[inline(always)]
16922    pub fn podr(
16923        self,
16924    ) -> crate::common::RegisterField<
16925        0,
16926        0x1,
16927        1,
16928        0,
16929        p610pfs_by::Podr,
16930        p610pfs_by::Podr,
16931        P610PfsBy_SPEC,
16932        crate::common::RW,
16933    > {
16934        crate::common::RegisterField::<
16935            0,
16936            0x1,
16937            1,
16938            0,
16939            p610pfs_by::Podr,
16940            p610pfs_by::Podr,
16941            P610PfsBy_SPEC,
16942            crate::common::RW,
16943        >::from_register(self, 0)
16944    }
16945
16946    #[doc = "Port State"]
16947    #[inline(always)]
16948    pub fn pidr(
16949        self,
16950    ) -> crate::common::RegisterField<
16951        1,
16952        0x1,
16953        1,
16954        0,
16955        p610pfs_by::Pidr,
16956        p610pfs_by::Pidr,
16957        P610PfsBy_SPEC,
16958        crate::common::R,
16959    > {
16960        crate::common::RegisterField::<
16961            1,
16962            0x1,
16963            1,
16964            0,
16965            p610pfs_by::Pidr,
16966            p610pfs_by::Pidr,
16967            P610PfsBy_SPEC,
16968            crate::common::R,
16969        >::from_register(self, 0)
16970    }
16971
16972    #[doc = "Port Direction"]
16973    #[inline(always)]
16974    pub fn pdr(
16975        self,
16976    ) -> crate::common::RegisterField<
16977        2,
16978        0x1,
16979        1,
16980        0,
16981        p610pfs_by::Pdr,
16982        p610pfs_by::Pdr,
16983        P610PfsBy_SPEC,
16984        crate::common::RW,
16985    > {
16986        crate::common::RegisterField::<
16987            2,
16988            0x1,
16989            1,
16990            0,
16991            p610pfs_by::Pdr,
16992            p610pfs_by::Pdr,
16993            P610PfsBy_SPEC,
16994            crate::common::RW,
16995        >::from_register(self, 0)
16996    }
16997
16998    #[doc = "Pull-up Control"]
16999    #[inline(always)]
17000    pub fn pcr(
17001        self,
17002    ) -> crate::common::RegisterField<
17003        4,
17004        0x1,
17005        1,
17006        0,
17007        p610pfs_by::Pcr,
17008        p610pfs_by::Pcr,
17009        P610PfsBy_SPEC,
17010        crate::common::RW,
17011    > {
17012        crate::common::RegisterField::<
17013            4,
17014            0x1,
17015            1,
17016            0,
17017            p610pfs_by::Pcr,
17018            p610pfs_by::Pcr,
17019            P610PfsBy_SPEC,
17020            crate::common::RW,
17021        >::from_register(self, 0)
17022    }
17023
17024    #[doc = "N-Channel Open-Drain Control"]
17025    #[inline(always)]
17026    pub fn ncodr(
17027        self,
17028    ) -> crate::common::RegisterField<
17029        6,
17030        0x1,
17031        1,
17032        0,
17033        p610pfs_by::Ncodr,
17034        p610pfs_by::Ncodr,
17035        P610PfsBy_SPEC,
17036        crate::common::RW,
17037    > {
17038        crate::common::RegisterField::<
17039            6,
17040            0x1,
17041            1,
17042            0,
17043            p610pfs_by::Ncodr,
17044            p610pfs_by::Ncodr,
17045            P610PfsBy_SPEC,
17046            crate::common::RW,
17047        >::from_register(self, 0)
17048    }
17049}
17050impl ::core::default::Default for P610PfsBy {
17051    #[inline(always)]
17052    fn default() -> P610PfsBy {
17053        <crate::RegValueT<P610PfsBy_SPEC> as RegisterValue<_>>::new(0)
17054    }
17055}
17056pub mod p610pfs_by {
17057
17058    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17059    pub struct Podr_SPEC;
17060    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17061    impl Podr {
17062        #[doc = "Output low"]
17063        pub const _0: Self = Self::new(0);
17064
17065        #[doc = "Output high"]
17066        pub const _1: Self = Self::new(1);
17067    }
17068    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17069    pub struct Pidr_SPEC;
17070    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17071    impl Pidr {
17072        #[doc = "Low level"]
17073        pub const _0: Self = Self::new(0);
17074
17075        #[doc = "High level"]
17076        pub const _1: Self = Self::new(1);
17077    }
17078    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17079    pub struct Pdr_SPEC;
17080    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17081    impl Pdr {
17082        #[doc = "Input (functions as an input pin)"]
17083        pub const _0: Self = Self::new(0);
17084
17085        #[doc = "Output (functions as an output pin)"]
17086        pub const _1: Self = Self::new(1);
17087    }
17088    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17089    pub struct Pcr_SPEC;
17090    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17091    impl Pcr {
17092        #[doc = "Disable input pull-up"]
17093        pub const _0: Self = Self::new(0);
17094
17095        #[doc = "Enable input pull-up"]
17096        pub const _1: Self = Self::new(1);
17097    }
17098    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17099    pub struct Ncodr_SPEC;
17100    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17101    impl Ncodr {
17102        #[doc = "Output CMOS"]
17103        pub const _0: Self = Self::new(0);
17104
17105        #[doc = "Output NMOS open-drain"]
17106        pub const _1: Self = Self::new(1);
17107    }
17108}
17109#[doc(hidden)]
17110#[derive(Copy, Clone, Eq, PartialEq)]
17111pub struct P708Pfs_SPEC;
17112impl crate::sealed::RegSpec for P708Pfs_SPEC {
17113    type DataType = u32;
17114}
17115
17116#[doc = "Port 708 Pin Function Select Register"]
17117pub type P708Pfs = crate::RegValueT<P708Pfs_SPEC>;
17118
17119impl P708Pfs {
17120    #[doc = "Port Output Data"]
17121    #[inline(always)]
17122    pub fn podr(
17123        self,
17124    ) -> crate::common::RegisterField<
17125        0,
17126        0x1,
17127        1,
17128        0,
17129        p708pfs::Podr,
17130        p708pfs::Podr,
17131        P708Pfs_SPEC,
17132        crate::common::RW,
17133    > {
17134        crate::common::RegisterField::<
17135            0,
17136            0x1,
17137            1,
17138            0,
17139            p708pfs::Podr,
17140            p708pfs::Podr,
17141            P708Pfs_SPEC,
17142            crate::common::RW,
17143        >::from_register(self, 0)
17144    }
17145
17146    #[doc = "Port State"]
17147    #[inline(always)]
17148    pub fn pidr(
17149        self,
17150    ) -> crate::common::RegisterField<
17151        1,
17152        0x1,
17153        1,
17154        0,
17155        p708pfs::Pidr,
17156        p708pfs::Pidr,
17157        P708Pfs_SPEC,
17158        crate::common::R,
17159    > {
17160        crate::common::RegisterField::<
17161            1,
17162            0x1,
17163            1,
17164            0,
17165            p708pfs::Pidr,
17166            p708pfs::Pidr,
17167            P708Pfs_SPEC,
17168            crate::common::R,
17169        >::from_register(self, 0)
17170    }
17171
17172    #[doc = "Port Direction"]
17173    #[inline(always)]
17174    pub fn pdr(
17175        self,
17176    ) -> crate::common::RegisterField<
17177        2,
17178        0x1,
17179        1,
17180        0,
17181        p708pfs::Pdr,
17182        p708pfs::Pdr,
17183        P708Pfs_SPEC,
17184        crate::common::RW,
17185    > {
17186        crate::common::RegisterField::<
17187            2,
17188            0x1,
17189            1,
17190            0,
17191            p708pfs::Pdr,
17192            p708pfs::Pdr,
17193            P708Pfs_SPEC,
17194            crate::common::RW,
17195        >::from_register(self, 0)
17196    }
17197
17198    #[doc = "Pull-up Control"]
17199    #[inline(always)]
17200    pub fn pcr(
17201        self,
17202    ) -> crate::common::RegisterField<
17203        4,
17204        0x1,
17205        1,
17206        0,
17207        p708pfs::Pcr,
17208        p708pfs::Pcr,
17209        P708Pfs_SPEC,
17210        crate::common::RW,
17211    > {
17212        crate::common::RegisterField::<
17213            4,
17214            0x1,
17215            1,
17216            0,
17217            p708pfs::Pcr,
17218            p708pfs::Pcr,
17219            P708Pfs_SPEC,
17220            crate::common::RW,
17221        >::from_register(self, 0)
17222    }
17223
17224    #[doc = "N-Channel Open-Drain Control"]
17225    #[inline(always)]
17226    pub fn ncodr(
17227        self,
17228    ) -> crate::common::RegisterField<
17229        6,
17230        0x1,
17231        1,
17232        0,
17233        p708pfs::Ncodr,
17234        p708pfs::Ncodr,
17235        P708Pfs_SPEC,
17236        crate::common::RW,
17237    > {
17238        crate::common::RegisterField::<
17239            6,
17240            0x1,
17241            1,
17242            0,
17243            p708pfs::Ncodr,
17244            p708pfs::Ncodr,
17245            P708Pfs_SPEC,
17246            crate::common::RW,
17247        >::from_register(self, 0)
17248    }
17249
17250    #[doc = "IRQ Input Enable"]
17251    #[inline(always)]
17252    pub fn isel(
17253        self,
17254    ) -> crate::common::RegisterField<
17255        14,
17256        0x1,
17257        1,
17258        0,
17259        p708pfs::Isel,
17260        p708pfs::Isel,
17261        P708Pfs_SPEC,
17262        crate::common::RW,
17263    > {
17264        crate::common::RegisterField::<
17265            14,
17266            0x1,
17267            1,
17268            0,
17269            p708pfs::Isel,
17270            p708pfs::Isel,
17271            P708Pfs_SPEC,
17272            crate::common::RW,
17273        >::from_register(self, 0)
17274    }
17275
17276    #[doc = "Analog Input Enable"]
17277    #[inline(always)]
17278    pub fn asel(
17279        self,
17280    ) -> crate::common::RegisterField<
17281        15,
17282        0x1,
17283        1,
17284        0,
17285        p708pfs::Asel,
17286        p708pfs::Asel,
17287        P708Pfs_SPEC,
17288        crate::common::RW,
17289    > {
17290        crate::common::RegisterField::<
17291            15,
17292            0x1,
17293            1,
17294            0,
17295            p708pfs::Asel,
17296            p708pfs::Asel,
17297            P708Pfs_SPEC,
17298            crate::common::RW,
17299        >::from_register(self, 0)
17300    }
17301
17302    #[doc = "Port Mode Control"]
17303    #[inline(always)]
17304    pub fn pmr(
17305        self,
17306    ) -> crate::common::RegisterField<
17307        16,
17308        0x1,
17309        1,
17310        0,
17311        p708pfs::Pmr,
17312        p708pfs::Pmr,
17313        P708Pfs_SPEC,
17314        crate::common::RW,
17315    > {
17316        crate::common::RegisterField::<
17317            16,
17318            0x1,
17319            1,
17320            0,
17321            p708pfs::Pmr,
17322            p708pfs::Pmr,
17323            P708Pfs_SPEC,
17324            crate::common::RW,
17325        >::from_register(self, 0)
17326    }
17327
17328    #[doc = "Peripheral Select"]
17329    #[inline(always)]
17330    pub fn psel(
17331        self,
17332    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P708Pfs_SPEC, crate::common::RW> {
17333        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P708Pfs_SPEC,crate::common::RW>::from_register(self,0)
17334    }
17335}
17336impl ::core::default::Default for P708Pfs {
17337    #[inline(always)]
17338    fn default() -> P708Pfs {
17339        <crate::RegValueT<P708Pfs_SPEC> as RegisterValue<_>>::new(0)
17340    }
17341}
17342pub mod p708pfs {
17343
17344    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17345    pub struct Podr_SPEC;
17346    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17347    impl Podr {
17348        #[doc = "Output low"]
17349        pub const _0: Self = Self::new(0);
17350
17351        #[doc = "Output high"]
17352        pub const _1: Self = Self::new(1);
17353    }
17354    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17355    pub struct Pidr_SPEC;
17356    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17357    impl Pidr {
17358        #[doc = "Low level"]
17359        pub const _0: Self = Self::new(0);
17360
17361        #[doc = "High level"]
17362        pub const _1: Self = Self::new(1);
17363    }
17364    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17365    pub struct Pdr_SPEC;
17366    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17367    impl Pdr {
17368        #[doc = "Input (functions as an input pin)"]
17369        pub const _0: Self = Self::new(0);
17370
17371        #[doc = "Output (functions as an output pin)"]
17372        pub const _1: Self = Self::new(1);
17373    }
17374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17375    pub struct Pcr_SPEC;
17376    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17377    impl Pcr {
17378        #[doc = "Disable input pull-up"]
17379        pub const _0: Self = Self::new(0);
17380
17381        #[doc = "Enable input pull-up"]
17382        pub const _1: Self = Self::new(1);
17383    }
17384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17385    pub struct Ncodr_SPEC;
17386    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17387    impl Ncodr {
17388        #[doc = "Output CMOS"]
17389        pub const _0: Self = Self::new(0);
17390
17391        #[doc = "Output NMOS open-drain"]
17392        pub const _1: Self = Self::new(1);
17393    }
17394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17395    pub struct Isel_SPEC;
17396    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17397    impl Isel {
17398        #[doc = "Do not use as IRQn input pin"]
17399        pub const _0: Self = Self::new(0);
17400
17401        #[doc = "Use as IRQn input pin"]
17402        pub const _1: Self = Self::new(1);
17403    }
17404    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17405    pub struct Asel_SPEC;
17406    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17407    impl Asel {
17408        #[doc = "Do not use as analog pin"]
17409        pub const _0: Self = Self::new(0);
17410
17411        #[doc = "Use as analog pin"]
17412        pub const _1: Self = Self::new(1);
17413    }
17414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17415    pub struct Pmr_SPEC;
17416    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
17417    impl Pmr {
17418        #[doc = "Use as general I/O pin"]
17419        pub const _0: Self = Self::new(0);
17420
17421        #[doc = "Use as I/O port for peripheral functions"]
17422        pub const _1: Self = Self::new(1);
17423    }
17424}
17425#[doc(hidden)]
17426#[derive(Copy, Clone, Eq, PartialEq)]
17427pub struct P708PfsHa_SPEC;
17428impl crate::sealed::RegSpec for P708PfsHa_SPEC {
17429    type DataType = u16;
17430}
17431
17432#[doc = "Port 708 Pin Function Select Register"]
17433pub type P708PfsHa = crate::RegValueT<P708PfsHa_SPEC>;
17434
17435impl P708PfsHa {
17436    #[doc = "Port Output Data"]
17437    #[inline(always)]
17438    pub fn podr(
17439        self,
17440    ) -> crate::common::RegisterField<
17441        0,
17442        0x1,
17443        1,
17444        0,
17445        p708pfs_ha::Podr,
17446        p708pfs_ha::Podr,
17447        P708PfsHa_SPEC,
17448        crate::common::RW,
17449    > {
17450        crate::common::RegisterField::<
17451            0,
17452            0x1,
17453            1,
17454            0,
17455            p708pfs_ha::Podr,
17456            p708pfs_ha::Podr,
17457            P708PfsHa_SPEC,
17458            crate::common::RW,
17459        >::from_register(self, 0)
17460    }
17461
17462    #[doc = "Port State"]
17463    #[inline(always)]
17464    pub fn pidr(
17465        self,
17466    ) -> crate::common::RegisterField<
17467        1,
17468        0x1,
17469        1,
17470        0,
17471        p708pfs_ha::Pidr,
17472        p708pfs_ha::Pidr,
17473        P708PfsHa_SPEC,
17474        crate::common::R,
17475    > {
17476        crate::common::RegisterField::<
17477            1,
17478            0x1,
17479            1,
17480            0,
17481            p708pfs_ha::Pidr,
17482            p708pfs_ha::Pidr,
17483            P708PfsHa_SPEC,
17484            crate::common::R,
17485        >::from_register(self, 0)
17486    }
17487
17488    #[doc = "Port Direction"]
17489    #[inline(always)]
17490    pub fn pdr(
17491        self,
17492    ) -> crate::common::RegisterField<
17493        2,
17494        0x1,
17495        1,
17496        0,
17497        p708pfs_ha::Pdr,
17498        p708pfs_ha::Pdr,
17499        P708PfsHa_SPEC,
17500        crate::common::RW,
17501    > {
17502        crate::common::RegisterField::<
17503            2,
17504            0x1,
17505            1,
17506            0,
17507            p708pfs_ha::Pdr,
17508            p708pfs_ha::Pdr,
17509            P708PfsHa_SPEC,
17510            crate::common::RW,
17511        >::from_register(self, 0)
17512    }
17513
17514    #[doc = "Pull-up Control"]
17515    #[inline(always)]
17516    pub fn pcr(
17517        self,
17518    ) -> crate::common::RegisterField<
17519        4,
17520        0x1,
17521        1,
17522        0,
17523        p708pfs_ha::Pcr,
17524        p708pfs_ha::Pcr,
17525        P708PfsHa_SPEC,
17526        crate::common::RW,
17527    > {
17528        crate::common::RegisterField::<
17529            4,
17530            0x1,
17531            1,
17532            0,
17533            p708pfs_ha::Pcr,
17534            p708pfs_ha::Pcr,
17535            P708PfsHa_SPEC,
17536            crate::common::RW,
17537        >::from_register(self, 0)
17538    }
17539
17540    #[doc = "N-Channel Open-Drain Control"]
17541    #[inline(always)]
17542    pub fn ncodr(
17543        self,
17544    ) -> crate::common::RegisterField<
17545        6,
17546        0x1,
17547        1,
17548        0,
17549        p708pfs_ha::Ncodr,
17550        p708pfs_ha::Ncodr,
17551        P708PfsHa_SPEC,
17552        crate::common::RW,
17553    > {
17554        crate::common::RegisterField::<
17555            6,
17556            0x1,
17557            1,
17558            0,
17559            p708pfs_ha::Ncodr,
17560            p708pfs_ha::Ncodr,
17561            P708PfsHa_SPEC,
17562            crate::common::RW,
17563        >::from_register(self, 0)
17564    }
17565
17566    #[doc = "IRQ Input Enable"]
17567    #[inline(always)]
17568    pub fn isel(
17569        self,
17570    ) -> crate::common::RegisterField<
17571        14,
17572        0x1,
17573        1,
17574        0,
17575        p708pfs_ha::Isel,
17576        p708pfs_ha::Isel,
17577        P708PfsHa_SPEC,
17578        crate::common::RW,
17579    > {
17580        crate::common::RegisterField::<
17581            14,
17582            0x1,
17583            1,
17584            0,
17585            p708pfs_ha::Isel,
17586            p708pfs_ha::Isel,
17587            P708PfsHa_SPEC,
17588            crate::common::RW,
17589        >::from_register(self, 0)
17590    }
17591
17592    #[doc = "Analog Input Enable"]
17593    #[inline(always)]
17594    pub fn asel(
17595        self,
17596    ) -> crate::common::RegisterField<
17597        15,
17598        0x1,
17599        1,
17600        0,
17601        p708pfs_ha::Asel,
17602        p708pfs_ha::Asel,
17603        P708PfsHa_SPEC,
17604        crate::common::RW,
17605    > {
17606        crate::common::RegisterField::<
17607            15,
17608            0x1,
17609            1,
17610            0,
17611            p708pfs_ha::Asel,
17612            p708pfs_ha::Asel,
17613            P708PfsHa_SPEC,
17614            crate::common::RW,
17615        >::from_register(self, 0)
17616    }
17617}
17618impl ::core::default::Default for P708PfsHa {
17619    #[inline(always)]
17620    fn default() -> P708PfsHa {
17621        <crate::RegValueT<P708PfsHa_SPEC> as RegisterValue<_>>::new(0)
17622    }
17623}
17624pub mod p708pfs_ha {
17625
17626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17627    pub struct Podr_SPEC;
17628    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17629    impl Podr {
17630        #[doc = "Output low"]
17631        pub const _0: Self = Self::new(0);
17632
17633        #[doc = "Output high"]
17634        pub const _1: Self = Self::new(1);
17635    }
17636    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17637    pub struct Pidr_SPEC;
17638    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17639    impl Pidr {
17640        #[doc = "Low level"]
17641        pub const _0: Self = Self::new(0);
17642
17643        #[doc = "High level"]
17644        pub const _1: Self = Self::new(1);
17645    }
17646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17647    pub struct Pdr_SPEC;
17648    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17649    impl Pdr {
17650        #[doc = "Input (functions as an input pin)"]
17651        pub const _0: Self = Self::new(0);
17652
17653        #[doc = "Output (functions as an output pin)"]
17654        pub const _1: Self = Self::new(1);
17655    }
17656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17657    pub struct Pcr_SPEC;
17658    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17659    impl Pcr {
17660        #[doc = "Disable input pull-up"]
17661        pub const _0: Self = Self::new(0);
17662
17663        #[doc = "Enable input pull-up"]
17664        pub const _1: Self = Self::new(1);
17665    }
17666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17667    pub struct Ncodr_SPEC;
17668    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17669    impl Ncodr {
17670        #[doc = "Output CMOS"]
17671        pub const _0: Self = Self::new(0);
17672
17673        #[doc = "Output NMOS open-drain"]
17674        pub const _1: Self = Self::new(1);
17675    }
17676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17677    pub struct Isel_SPEC;
17678    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17679    impl Isel {
17680        #[doc = "Do not use as IRQn input pin"]
17681        pub const _0: Self = Self::new(0);
17682
17683        #[doc = "Use as IRQn input pin"]
17684        pub const _1: Self = Self::new(1);
17685    }
17686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17687    pub struct Asel_SPEC;
17688    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17689    impl Asel {
17690        #[doc = "Do not use as analog pin"]
17691        pub const _0: Self = Self::new(0);
17692
17693        #[doc = "Use as analog pin"]
17694        pub const _1: Self = Self::new(1);
17695    }
17696}
17697#[doc(hidden)]
17698#[derive(Copy, Clone, Eq, PartialEq)]
17699pub struct P708PfsBy_SPEC;
17700impl crate::sealed::RegSpec for P708PfsBy_SPEC {
17701    type DataType = u8;
17702}
17703
17704#[doc = "Port 708 Pin Function Select Register"]
17705pub type P708PfsBy = crate::RegValueT<P708PfsBy_SPEC>;
17706
17707impl P708PfsBy {
17708    #[doc = "Port Output Data"]
17709    #[inline(always)]
17710    pub fn podr(
17711        self,
17712    ) -> crate::common::RegisterField<
17713        0,
17714        0x1,
17715        1,
17716        0,
17717        p708pfs_by::Podr,
17718        p708pfs_by::Podr,
17719        P708PfsBy_SPEC,
17720        crate::common::RW,
17721    > {
17722        crate::common::RegisterField::<
17723            0,
17724            0x1,
17725            1,
17726            0,
17727            p708pfs_by::Podr,
17728            p708pfs_by::Podr,
17729            P708PfsBy_SPEC,
17730            crate::common::RW,
17731        >::from_register(self, 0)
17732    }
17733
17734    #[doc = "Port State"]
17735    #[inline(always)]
17736    pub fn pidr(
17737        self,
17738    ) -> crate::common::RegisterField<
17739        1,
17740        0x1,
17741        1,
17742        0,
17743        p708pfs_by::Pidr,
17744        p708pfs_by::Pidr,
17745        P708PfsBy_SPEC,
17746        crate::common::R,
17747    > {
17748        crate::common::RegisterField::<
17749            1,
17750            0x1,
17751            1,
17752            0,
17753            p708pfs_by::Pidr,
17754            p708pfs_by::Pidr,
17755            P708PfsBy_SPEC,
17756            crate::common::R,
17757        >::from_register(self, 0)
17758    }
17759
17760    #[doc = "Port Direction"]
17761    #[inline(always)]
17762    pub fn pdr(
17763        self,
17764    ) -> crate::common::RegisterField<
17765        2,
17766        0x1,
17767        1,
17768        0,
17769        p708pfs_by::Pdr,
17770        p708pfs_by::Pdr,
17771        P708PfsBy_SPEC,
17772        crate::common::RW,
17773    > {
17774        crate::common::RegisterField::<
17775            2,
17776            0x1,
17777            1,
17778            0,
17779            p708pfs_by::Pdr,
17780            p708pfs_by::Pdr,
17781            P708PfsBy_SPEC,
17782            crate::common::RW,
17783        >::from_register(self, 0)
17784    }
17785
17786    #[doc = "Pull-up Control"]
17787    #[inline(always)]
17788    pub fn pcr(
17789        self,
17790    ) -> crate::common::RegisterField<
17791        4,
17792        0x1,
17793        1,
17794        0,
17795        p708pfs_by::Pcr,
17796        p708pfs_by::Pcr,
17797        P708PfsBy_SPEC,
17798        crate::common::RW,
17799    > {
17800        crate::common::RegisterField::<
17801            4,
17802            0x1,
17803            1,
17804            0,
17805            p708pfs_by::Pcr,
17806            p708pfs_by::Pcr,
17807            P708PfsBy_SPEC,
17808            crate::common::RW,
17809        >::from_register(self, 0)
17810    }
17811
17812    #[doc = "N-Channel Open-Drain Control"]
17813    #[inline(always)]
17814    pub fn ncodr(
17815        self,
17816    ) -> crate::common::RegisterField<
17817        6,
17818        0x1,
17819        1,
17820        0,
17821        p708pfs_by::Ncodr,
17822        p708pfs_by::Ncodr,
17823        P708PfsBy_SPEC,
17824        crate::common::RW,
17825    > {
17826        crate::common::RegisterField::<
17827            6,
17828            0x1,
17829            1,
17830            0,
17831            p708pfs_by::Ncodr,
17832            p708pfs_by::Ncodr,
17833            P708PfsBy_SPEC,
17834            crate::common::RW,
17835        >::from_register(self, 0)
17836    }
17837}
17838impl ::core::default::Default for P708PfsBy {
17839    #[inline(always)]
17840    fn default() -> P708PfsBy {
17841        <crate::RegValueT<P708PfsBy_SPEC> as RegisterValue<_>>::new(0)
17842    }
17843}
17844pub mod p708pfs_by {
17845
17846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17847    pub struct Podr_SPEC;
17848    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17849    impl Podr {
17850        #[doc = "Output low"]
17851        pub const _0: Self = Self::new(0);
17852
17853        #[doc = "Output high"]
17854        pub const _1: Self = Self::new(1);
17855    }
17856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17857    pub struct Pidr_SPEC;
17858    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17859    impl Pidr {
17860        #[doc = "Low level"]
17861        pub const _0: Self = Self::new(0);
17862
17863        #[doc = "High level"]
17864        pub const _1: Self = Self::new(1);
17865    }
17866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17867    pub struct Pdr_SPEC;
17868    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17869    impl Pdr {
17870        #[doc = "Input (functions as an input pin)"]
17871        pub const _0: Self = Self::new(0);
17872
17873        #[doc = "Output (functions as an output pin)"]
17874        pub const _1: Self = Self::new(1);
17875    }
17876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17877    pub struct Pcr_SPEC;
17878    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17879    impl Pcr {
17880        #[doc = "Disable input pull-up"]
17881        pub const _0: Self = Self::new(0);
17882
17883        #[doc = "Enable input pull-up"]
17884        pub const _1: Self = Self::new(1);
17885    }
17886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17887    pub struct Ncodr_SPEC;
17888    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17889    impl Ncodr {
17890        #[doc = "Output CMOS"]
17891        pub const _0: Self = Self::new(0);
17892
17893        #[doc = "Output NMOS open-drain"]
17894        pub const _1: Self = Self::new(1);
17895    }
17896}
17897#[doc(hidden)]
17898#[derive(Copy, Clone, Eq, PartialEq)]
17899pub struct P714Pfs_SPEC;
17900impl crate::sealed::RegSpec for P714Pfs_SPEC {
17901    type DataType = u32;
17902}
17903
17904#[doc = "Port 714 Pin Function Select Register"]
17905pub type P714Pfs = crate::RegValueT<P714Pfs_SPEC>;
17906
17907impl P714Pfs {
17908    #[doc = "Port Output Data"]
17909    #[inline(always)]
17910    pub fn podr(
17911        self,
17912    ) -> crate::common::RegisterField<
17913        0,
17914        0x1,
17915        1,
17916        0,
17917        p714pfs::Podr,
17918        p714pfs::Podr,
17919        P714Pfs_SPEC,
17920        crate::common::RW,
17921    > {
17922        crate::common::RegisterField::<
17923            0,
17924            0x1,
17925            1,
17926            0,
17927            p714pfs::Podr,
17928            p714pfs::Podr,
17929            P714Pfs_SPEC,
17930            crate::common::RW,
17931        >::from_register(self, 0)
17932    }
17933
17934    #[doc = "Port State"]
17935    #[inline(always)]
17936    pub fn pidr(
17937        self,
17938    ) -> crate::common::RegisterField<
17939        1,
17940        0x1,
17941        1,
17942        0,
17943        p714pfs::Pidr,
17944        p714pfs::Pidr,
17945        P714Pfs_SPEC,
17946        crate::common::R,
17947    > {
17948        crate::common::RegisterField::<
17949            1,
17950            0x1,
17951            1,
17952            0,
17953            p714pfs::Pidr,
17954            p714pfs::Pidr,
17955            P714Pfs_SPEC,
17956            crate::common::R,
17957        >::from_register(self, 0)
17958    }
17959
17960    #[doc = "Port Direction"]
17961    #[inline(always)]
17962    pub fn pdr(
17963        self,
17964    ) -> crate::common::RegisterField<
17965        2,
17966        0x1,
17967        1,
17968        0,
17969        p714pfs::Pdr,
17970        p714pfs::Pdr,
17971        P714Pfs_SPEC,
17972        crate::common::RW,
17973    > {
17974        crate::common::RegisterField::<
17975            2,
17976            0x1,
17977            1,
17978            0,
17979            p714pfs::Pdr,
17980            p714pfs::Pdr,
17981            P714Pfs_SPEC,
17982            crate::common::RW,
17983        >::from_register(self, 0)
17984    }
17985
17986    #[doc = "Pull-up Control"]
17987    #[inline(always)]
17988    pub fn pcr(
17989        self,
17990    ) -> crate::common::RegisterField<
17991        4,
17992        0x1,
17993        1,
17994        0,
17995        p714pfs::Pcr,
17996        p714pfs::Pcr,
17997        P714Pfs_SPEC,
17998        crate::common::RW,
17999    > {
18000        crate::common::RegisterField::<
18001            4,
18002            0x1,
18003            1,
18004            0,
18005            p714pfs::Pcr,
18006            p714pfs::Pcr,
18007            P714Pfs_SPEC,
18008            crate::common::RW,
18009        >::from_register(self, 0)
18010    }
18011
18012    #[doc = "N-Channel Open-Drain Control"]
18013    #[inline(always)]
18014    pub fn ncodr(
18015        self,
18016    ) -> crate::common::RegisterField<
18017        6,
18018        0x1,
18019        1,
18020        0,
18021        p714pfs::Ncodr,
18022        p714pfs::Ncodr,
18023        P714Pfs_SPEC,
18024        crate::common::RW,
18025    > {
18026        crate::common::RegisterField::<
18027            6,
18028            0x1,
18029            1,
18030            0,
18031            p714pfs::Ncodr,
18032            p714pfs::Ncodr,
18033            P714Pfs_SPEC,
18034            crate::common::RW,
18035        >::from_register(self, 0)
18036    }
18037
18038    #[doc = "IRQ Input Enable"]
18039    #[inline(always)]
18040    pub fn isel(
18041        self,
18042    ) -> crate::common::RegisterField<
18043        14,
18044        0x1,
18045        1,
18046        0,
18047        p714pfs::Isel,
18048        p714pfs::Isel,
18049        P714Pfs_SPEC,
18050        crate::common::RW,
18051    > {
18052        crate::common::RegisterField::<
18053            14,
18054            0x1,
18055            1,
18056            0,
18057            p714pfs::Isel,
18058            p714pfs::Isel,
18059            P714Pfs_SPEC,
18060            crate::common::RW,
18061        >::from_register(self, 0)
18062    }
18063
18064    #[doc = "Analog Input Enable"]
18065    #[inline(always)]
18066    pub fn asel(
18067        self,
18068    ) -> crate::common::RegisterField<
18069        15,
18070        0x1,
18071        1,
18072        0,
18073        p714pfs::Asel,
18074        p714pfs::Asel,
18075        P714Pfs_SPEC,
18076        crate::common::RW,
18077    > {
18078        crate::common::RegisterField::<
18079            15,
18080            0x1,
18081            1,
18082            0,
18083            p714pfs::Asel,
18084            p714pfs::Asel,
18085            P714Pfs_SPEC,
18086            crate::common::RW,
18087        >::from_register(self, 0)
18088    }
18089
18090    #[doc = "Port Mode Control"]
18091    #[inline(always)]
18092    pub fn pmr(
18093        self,
18094    ) -> crate::common::RegisterField<
18095        16,
18096        0x1,
18097        1,
18098        0,
18099        p714pfs::Pmr,
18100        p714pfs::Pmr,
18101        P714Pfs_SPEC,
18102        crate::common::RW,
18103    > {
18104        crate::common::RegisterField::<
18105            16,
18106            0x1,
18107            1,
18108            0,
18109            p714pfs::Pmr,
18110            p714pfs::Pmr,
18111            P714Pfs_SPEC,
18112            crate::common::RW,
18113        >::from_register(self, 0)
18114    }
18115
18116    #[doc = "Peripheral Select"]
18117    #[inline(always)]
18118    pub fn psel(
18119        self,
18120    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P714Pfs_SPEC, crate::common::RW> {
18121        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P714Pfs_SPEC,crate::common::RW>::from_register(self,0)
18122    }
18123}
18124impl ::core::default::Default for P714Pfs {
18125    #[inline(always)]
18126    fn default() -> P714Pfs {
18127        <crate::RegValueT<P714Pfs_SPEC> as RegisterValue<_>>::new(0)
18128    }
18129}
18130pub mod p714pfs {
18131
18132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18133    pub struct Podr_SPEC;
18134    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18135    impl Podr {
18136        #[doc = "Output low"]
18137        pub const _0: Self = Self::new(0);
18138
18139        #[doc = "Output high"]
18140        pub const _1: Self = Self::new(1);
18141    }
18142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18143    pub struct Pidr_SPEC;
18144    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18145    impl Pidr {
18146        #[doc = "Low level"]
18147        pub const _0: Self = Self::new(0);
18148
18149        #[doc = "High level"]
18150        pub const _1: Self = Self::new(1);
18151    }
18152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18153    pub struct Pdr_SPEC;
18154    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18155    impl Pdr {
18156        #[doc = "Input (functions as an input pin)"]
18157        pub const _0: Self = Self::new(0);
18158
18159        #[doc = "Output (functions as an output pin)"]
18160        pub const _1: Self = Self::new(1);
18161    }
18162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18163    pub struct Pcr_SPEC;
18164    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18165    impl Pcr {
18166        #[doc = "Disable input pull-up"]
18167        pub const _0: Self = Self::new(0);
18168
18169        #[doc = "Enable input pull-up"]
18170        pub const _1: Self = Self::new(1);
18171    }
18172    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18173    pub struct Ncodr_SPEC;
18174    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18175    impl Ncodr {
18176        #[doc = "Output CMOS"]
18177        pub const _0: Self = Self::new(0);
18178
18179        #[doc = "Output NMOS open-drain"]
18180        pub const _1: Self = Self::new(1);
18181    }
18182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18183    pub struct Isel_SPEC;
18184    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18185    impl Isel {
18186        #[doc = "Do not use as IRQn input pin"]
18187        pub const _0: Self = Self::new(0);
18188
18189        #[doc = "Use as IRQn input pin"]
18190        pub const _1: Self = Self::new(1);
18191    }
18192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18193    pub struct Asel_SPEC;
18194    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18195    impl Asel {
18196        #[doc = "Do not use as analog pin"]
18197        pub const _0: Self = Self::new(0);
18198
18199        #[doc = "Use as analog pin"]
18200        pub const _1: Self = Self::new(1);
18201    }
18202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18203    pub struct Pmr_SPEC;
18204    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
18205    impl Pmr {
18206        #[doc = "Use as general I/O pin"]
18207        pub const _0: Self = Self::new(0);
18208
18209        #[doc = "Use as I/O port for peripheral functions"]
18210        pub const _1: Self = Self::new(1);
18211    }
18212}
18213#[doc(hidden)]
18214#[derive(Copy, Clone, Eq, PartialEq)]
18215pub struct P714PfsHa_SPEC;
18216impl crate::sealed::RegSpec for P714PfsHa_SPEC {
18217    type DataType = u16;
18218}
18219
18220#[doc = "Port 714 Pin Function Select Register"]
18221pub type P714PfsHa = crate::RegValueT<P714PfsHa_SPEC>;
18222
18223impl P714PfsHa {
18224    #[doc = "Port Output Data"]
18225    #[inline(always)]
18226    pub fn podr(
18227        self,
18228    ) -> crate::common::RegisterField<
18229        0,
18230        0x1,
18231        1,
18232        0,
18233        p714pfs_ha::Podr,
18234        p714pfs_ha::Podr,
18235        P714PfsHa_SPEC,
18236        crate::common::RW,
18237    > {
18238        crate::common::RegisterField::<
18239            0,
18240            0x1,
18241            1,
18242            0,
18243            p714pfs_ha::Podr,
18244            p714pfs_ha::Podr,
18245            P714PfsHa_SPEC,
18246            crate::common::RW,
18247        >::from_register(self, 0)
18248    }
18249
18250    #[doc = "Port State"]
18251    #[inline(always)]
18252    pub fn pidr(
18253        self,
18254    ) -> crate::common::RegisterField<
18255        1,
18256        0x1,
18257        1,
18258        0,
18259        p714pfs_ha::Pidr,
18260        p714pfs_ha::Pidr,
18261        P714PfsHa_SPEC,
18262        crate::common::R,
18263    > {
18264        crate::common::RegisterField::<
18265            1,
18266            0x1,
18267            1,
18268            0,
18269            p714pfs_ha::Pidr,
18270            p714pfs_ha::Pidr,
18271            P714PfsHa_SPEC,
18272            crate::common::R,
18273        >::from_register(self, 0)
18274    }
18275
18276    #[doc = "Port Direction"]
18277    #[inline(always)]
18278    pub fn pdr(
18279        self,
18280    ) -> crate::common::RegisterField<
18281        2,
18282        0x1,
18283        1,
18284        0,
18285        p714pfs_ha::Pdr,
18286        p714pfs_ha::Pdr,
18287        P714PfsHa_SPEC,
18288        crate::common::RW,
18289    > {
18290        crate::common::RegisterField::<
18291            2,
18292            0x1,
18293            1,
18294            0,
18295            p714pfs_ha::Pdr,
18296            p714pfs_ha::Pdr,
18297            P714PfsHa_SPEC,
18298            crate::common::RW,
18299        >::from_register(self, 0)
18300    }
18301
18302    #[doc = "Pull-up Control"]
18303    #[inline(always)]
18304    pub fn pcr(
18305        self,
18306    ) -> crate::common::RegisterField<
18307        4,
18308        0x1,
18309        1,
18310        0,
18311        p714pfs_ha::Pcr,
18312        p714pfs_ha::Pcr,
18313        P714PfsHa_SPEC,
18314        crate::common::RW,
18315    > {
18316        crate::common::RegisterField::<
18317            4,
18318            0x1,
18319            1,
18320            0,
18321            p714pfs_ha::Pcr,
18322            p714pfs_ha::Pcr,
18323            P714PfsHa_SPEC,
18324            crate::common::RW,
18325        >::from_register(self, 0)
18326    }
18327
18328    #[doc = "N-Channel Open-Drain Control"]
18329    #[inline(always)]
18330    pub fn ncodr(
18331        self,
18332    ) -> crate::common::RegisterField<
18333        6,
18334        0x1,
18335        1,
18336        0,
18337        p714pfs_ha::Ncodr,
18338        p714pfs_ha::Ncodr,
18339        P714PfsHa_SPEC,
18340        crate::common::RW,
18341    > {
18342        crate::common::RegisterField::<
18343            6,
18344            0x1,
18345            1,
18346            0,
18347            p714pfs_ha::Ncodr,
18348            p714pfs_ha::Ncodr,
18349            P714PfsHa_SPEC,
18350            crate::common::RW,
18351        >::from_register(self, 0)
18352    }
18353
18354    #[doc = "IRQ Input Enable"]
18355    #[inline(always)]
18356    pub fn isel(
18357        self,
18358    ) -> crate::common::RegisterField<
18359        14,
18360        0x1,
18361        1,
18362        0,
18363        p714pfs_ha::Isel,
18364        p714pfs_ha::Isel,
18365        P714PfsHa_SPEC,
18366        crate::common::RW,
18367    > {
18368        crate::common::RegisterField::<
18369            14,
18370            0x1,
18371            1,
18372            0,
18373            p714pfs_ha::Isel,
18374            p714pfs_ha::Isel,
18375            P714PfsHa_SPEC,
18376            crate::common::RW,
18377        >::from_register(self, 0)
18378    }
18379
18380    #[doc = "Analog Input Enable"]
18381    #[inline(always)]
18382    pub fn asel(
18383        self,
18384    ) -> crate::common::RegisterField<
18385        15,
18386        0x1,
18387        1,
18388        0,
18389        p714pfs_ha::Asel,
18390        p714pfs_ha::Asel,
18391        P714PfsHa_SPEC,
18392        crate::common::RW,
18393    > {
18394        crate::common::RegisterField::<
18395            15,
18396            0x1,
18397            1,
18398            0,
18399            p714pfs_ha::Asel,
18400            p714pfs_ha::Asel,
18401            P714PfsHa_SPEC,
18402            crate::common::RW,
18403        >::from_register(self, 0)
18404    }
18405}
18406impl ::core::default::Default for P714PfsHa {
18407    #[inline(always)]
18408    fn default() -> P714PfsHa {
18409        <crate::RegValueT<P714PfsHa_SPEC> as RegisterValue<_>>::new(0)
18410    }
18411}
18412pub mod p714pfs_ha {
18413
18414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18415    pub struct Podr_SPEC;
18416    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18417    impl Podr {
18418        #[doc = "Output low"]
18419        pub const _0: Self = Self::new(0);
18420
18421        #[doc = "Output high"]
18422        pub const _1: Self = Self::new(1);
18423    }
18424    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18425    pub struct Pidr_SPEC;
18426    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18427    impl Pidr {
18428        #[doc = "Low level"]
18429        pub const _0: Self = Self::new(0);
18430
18431        #[doc = "High level"]
18432        pub const _1: Self = Self::new(1);
18433    }
18434    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18435    pub struct Pdr_SPEC;
18436    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18437    impl Pdr {
18438        #[doc = "Input (functions as an input pin)"]
18439        pub const _0: Self = Self::new(0);
18440
18441        #[doc = "Output (functions as an output pin)"]
18442        pub const _1: Self = Self::new(1);
18443    }
18444    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18445    pub struct Pcr_SPEC;
18446    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18447    impl Pcr {
18448        #[doc = "Disable input pull-up"]
18449        pub const _0: Self = Self::new(0);
18450
18451        #[doc = "Enable input pull-up"]
18452        pub const _1: Self = Self::new(1);
18453    }
18454    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18455    pub struct Ncodr_SPEC;
18456    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18457    impl Ncodr {
18458        #[doc = "Output CMOS"]
18459        pub const _0: Self = Self::new(0);
18460
18461        #[doc = "Output NMOS open-drain"]
18462        pub const _1: Self = Self::new(1);
18463    }
18464    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18465    pub struct Isel_SPEC;
18466    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18467    impl Isel {
18468        #[doc = "Do not use as IRQn input pin"]
18469        pub const _0: Self = Self::new(0);
18470
18471        #[doc = "Use as IRQn input pin"]
18472        pub const _1: Self = Self::new(1);
18473    }
18474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18475    pub struct Asel_SPEC;
18476    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18477    impl Asel {
18478        #[doc = "Do not use as analog pin"]
18479        pub const _0: Self = Self::new(0);
18480
18481        #[doc = "Use as analog pin"]
18482        pub const _1: Self = Self::new(1);
18483    }
18484}
18485#[doc(hidden)]
18486#[derive(Copy, Clone, Eq, PartialEq)]
18487pub struct P714PfsBy_SPEC;
18488impl crate::sealed::RegSpec for P714PfsBy_SPEC {
18489    type DataType = u8;
18490}
18491
18492#[doc = "Port 714 Pin Function Select Register"]
18493pub type P714PfsBy = crate::RegValueT<P714PfsBy_SPEC>;
18494
18495impl P714PfsBy {
18496    #[doc = "Port Output Data"]
18497    #[inline(always)]
18498    pub fn podr(
18499        self,
18500    ) -> crate::common::RegisterField<
18501        0,
18502        0x1,
18503        1,
18504        0,
18505        p714pfs_by::Podr,
18506        p714pfs_by::Podr,
18507        P714PfsBy_SPEC,
18508        crate::common::RW,
18509    > {
18510        crate::common::RegisterField::<
18511            0,
18512            0x1,
18513            1,
18514            0,
18515            p714pfs_by::Podr,
18516            p714pfs_by::Podr,
18517            P714PfsBy_SPEC,
18518            crate::common::RW,
18519        >::from_register(self, 0)
18520    }
18521
18522    #[doc = "Port State"]
18523    #[inline(always)]
18524    pub fn pidr(
18525        self,
18526    ) -> crate::common::RegisterField<
18527        1,
18528        0x1,
18529        1,
18530        0,
18531        p714pfs_by::Pidr,
18532        p714pfs_by::Pidr,
18533        P714PfsBy_SPEC,
18534        crate::common::R,
18535    > {
18536        crate::common::RegisterField::<
18537            1,
18538            0x1,
18539            1,
18540            0,
18541            p714pfs_by::Pidr,
18542            p714pfs_by::Pidr,
18543            P714PfsBy_SPEC,
18544            crate::common::R,
18545        >::from_register(self, 0)
18546    }
18547
18548    #[doc = "Port Direction"]
18549    #[inline(always)]
18550    pub fn pdr(
18551        self,
18552    ) -> crate::common::RegisterField<
18553        2,
18554        0x1,
18555        1,
18556        0,
18557        p714pfs_by::Pdr,
18558        p714pfs_by::Pdr,
18559        P714PfsBy_SPEC,
18560        crate::common::RW,
18561    > {
18562        crate::common::RegisterField::<
18563            2,
18564            0x1,
18565            1,
18566            0,
18567            p714pfs_by::Pdr,
18568            p714pfs_by::Pdr,
18569            P714PfsBy_SPEC,
18570            crate::common::RW,
18571        >::from_register(self, 0)
18572    }
18573
18574    #[doc = "Pull-up Control"]
18575    #[inline(always)]
18576    pub fn pcr(
18577        self,
18578    ) -> crate::common::RegisterField<
18579        4,
18580        0x1,
18581        1,
18582        0,
18583        p714pfs_by::Pcr,
18584        p714pfs_by::Pcr,
18585        P714PfsBy_SPEC,
18586        crate::common::RW,
18587    > {
18588        crate::common::RegisterField::<
18589            4,
18590            0x1,
18591            1,
18592            0,
18593            p714pfs_by::Pcr,
18594            p714pfs_by::Pcr,
18595            P714PfsBy_SPEC,
18596            crate::common::RW,
18597        >::from_register(self, 0)
18598    }
18599
18600    #[doc = "N-Channel Open-Drain Control"]
18601    #[inline(always)]
18602    pub fn ncodr(
18603        self,
18604    ) -> crate::common::RegisterField<
18605        6,
18606        0x1,
18607        1,
18608        0,
18609        p714pfs_by::Ncodr,
18610        p714pfs_by::Ncodr,
18611        P714PfsBy_SPEC,
18612        crate::common::RW,
18613    > {
18614        crate::common::RegisterField::<
18615            6,
18616            0x1,
18617            1,
18618            0,
18619            p714pfs_by::Ncodr,
18620            p714pfs_by::Ncodr,
18621            P714PfsBy_SPEC,
18622            crate::common::RW,
18623        >::from_register(self, 0)
18624    }
18625}
18626impl ::core::default::Default for P714PfsBy {
18627    #[inline(always)]
18628    fn default() -> P714PfsBy {
18629        <crate::RegValueT<P714PfsBy_SPEC> as RegisterValue<_>>::new(0)
18630    }
18631}
18632pub mod p714pfs_by {
18633
18634    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18635    pub struct Podr_SPEC;
18636    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18637    impl Podr {
18638        #[doc = "Output low"]
18639        pub const _0: Self = Self::new(0);
18640
18641        #[doc = "Output high"]
18642        pub const _1: Self = Self::new(1);
18643    }
18644    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18645    pub struct Pidr_SPEC;
18646    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18647    impl Pidr {
18648        #[doc = "Low level"]
18649        pub const _0: Self = Self::new(0);
18650
18651        #[doc = "High level"]
18652        pub const _1: Self = Self::new(1);
18653    }
18654    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18655    pub struct Pdr_SPEC;
18656    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18657    impl Pdr {
18658        #[doc = "Input (functions as an input pin)"]
18659        pub const _0: Self = Self::new(0);
18660
18661        #[doc = "Output (functions as an output pin)"]
18662        pub const _1: Self = Self::new(1);
18663    }
18664    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18665    pub struct Pcr_SPEC;
18666    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18667    impl Pcr {
18668        #[doc = "Disable input pull-up"]
18669        pub const _0: Self = Self::new(0);
18670
18671        #[doc = "Enable input pull-up"]
18672        pub const _1: Self = Self::new(1);
18673    }
18674    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18675    pub struct Ncodr_SPEC;
18676    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18677    impl Ncodr {
18678        #[doc = "Output CMOS"]
18679        pub const _0: Self = Self::new(0);
18680
18681        #[doc = "Output NMOS open-drain"]
18682        pub const _1: Self = Self::new(1);
18683    }
18684}
18685#[doc(hidden)]
18686#[derive(Copy, Clone, Eq, PartialEq)]
18687pub struct P80Pfs_SPEC;
18688impl crate::sealed::RegSpec for P80Pfs_SPEC {
18689    type DataType = u32;
18690}
18691
18692#[doc = "Port 80%s Pin Function Select Register"]
18693pub type P80Pfs = crate::RegValueT<P80Pfs_SPEC>;
18694
18695impl P80Pfs {
18696    #[doc = "Port Output Data"]
18697    #[inline(always)]
18698    pub fn podr(
18699        self,
18700    ) -> crate::common::RegisterField<
18701        0,
18702        0x1,
18703        1,
18704        0,
18705        p80pfs::Podr,
18706        p80pfs::Podr,
18707        P80Pfs_SPEC,
18708        crate::common::RW,
18709    > {
18710        crate::common::RegisterField::<
18711            0,
18712            0x1,
18713            1,
18714            0,
18715            p80pfs::Podr,
18716            p80pfs::Podr,
18717            P80Pfs_SPEC,
18718            crate::common::RW,
18719        >::from_register(self, 0)
18720    }
18721
18722    #[doc = "Port State"]
18723    #[inline(always)]
18724    pub fn pidr(
18725        self,
18726    ) -> crate::common::RegisterField<
18727        1,
18728        0x1,
18729        1,
18730        0,
18731        p80pfs::Pidr,
18732        p80pfs::Pidr,
18733        P80Pfs_SPEC,
18734        crate::common::R,
18735    > {
18736        crate::common::RegisterField::<
18737            1,
18738            0x1,
18739            1,
18740            0,
18741            p80pfs::Pidr,
18742            p80pfs::Pidr,
18743            P80Pfs_SPEC,
18744            crate::common::R,
18745        >::from_register(self, 0)
18746    }
18747
18748    #[doc = "Port Direction"]
18749    #[inline(always)]
18750    pub fn pdr(
18751        self,
18752    ) -> crate::common::RegisterField<
18753        2,
18754        0x1,
18755        1,
18756        0,
18757        p80pfs::Pdr,
18758        p80pfs::Pdr,
18759        P80Pfs_SPEC,
18760        crate::common::RW,
18761    > {
18762        crate::common::RegisterField::<
18763            2,
18764            0x1,
18765            1,
18766            0,
18767            p80pfs::Pdr,
18768            p80pfs::Pdr,
18769            P80Pfs_SPEC,
18770            crate::common::RW,
18771        >::from_register(self, 0)
18772    }
18773
18774    #[doc = "Pull-up Control"]
18775    #[inline(always)]
18776    pub fn pcr(
18777        self,
18778    ) -> crate::common::RegisterField<
18779        4,
18780        0x1,
18781        1,
18782        0,
18783        p80pfs::Pcr,
18784        p80pfs::Pcr,
18785        P80Pfs_SPEC,
18786        crate::common::RW,
18787    > {
18788        crate::common::RegisterField::<
18789            4,
18790            0x1,
18791            1,
18792            0,
18793            p80pfs::Pcr,
18794            p80pfs::Pcr,
18795            P80Pfs_SPEC,
18796            crate::common::RW,
18797        >::from_register(self, 0)
18798    }
18799
18800    #[doc = "N-Channel Open-Drain Control"]
18801    #[inline(always)]
18802    pub fn ncodr(
18803        self,
18804    ) -> crate::common::RegisterField<
18805        6,
18806        0x1,
18807        1,
18808        0,
18809        p80pfs::Ncodr,
18810        p80pfs::Ncodr,
18811        P80Pfs_SPEC,
18812        crate::common::RW,
18813    > {
18814        crate::common::RegisterField::<
18815            6,
18816            0x1,
18817            1,
18818            0,
18819            p80pfs::Ncodr,
18820            p80pfs::Ncodr,
18821            P80Pfs_SPEC,
18822            crate::common::RW,
18823        >::from_register(self, 0)
18824    }
18825
18826    #[doc = "IRQ Input Enable"]
18827    #[inline(always)]
18828    pub fn isel(
18829        self,
18830    ) -> crate::common::RegisterField<
18831        14,
18832        0x1,
18833        1,
18834        0,
18835        p80pfs::Isel,
18836        p80pfs::Isel,
18837        P80Pfs_SPEC,
18838        crate::common::RW,
18839    > {
18840        crate::common::RegisterField::<
18841            14,
18842            0x1,
18843            1,
18844            0,
18845            p80pfs::Isel,
18846            p80pfs::Isel,
18847            P80Pfs_SPEC,
18848            crate::common::RW,
18849        >::from_register(self, 0)
18850    }
18851
18852    #[doc = "Analog Input Enable"]
18853    #[inline(always)]
18854    pub fn asel(
18855        self,
18856    ) -> crate::common::RegisterField<
18857        15,
18858        0x1,
18859        1,
18860        0,
18861        p80pfs::Asel,
18862        p80pfs::Asel,
18863        P80Pfs_SPEC,
18864        crate::common::RW,
18865    > {
18866        crate::common::RegisterField::<
18867            15,
18868            0x1,
18869            1,
18870            0,
18871            p80pfs::Asel,
18872            p80pfs::Asel,
18873            P80Pfs_SPEC,
18874            crate::common::RW,
18875        >::from_register(self, 0)
18876    }
18877
18878    #[doc = "Port Mode Control"]
18879    #[inline(always)]
18880    pub fn pmr(
18881        self,
18882    ) -> crate::common::RegisterField<
18883        16,
18884        0x1,
18885        1,
18886        0,
18887        p80pfs::Pmr,
18888        p80pfs::Pmr,
18889        P80Pfs_SPEC,
18890        crate::common::RW,
18891    > {
18892        crate::common::RegisterField::<
18893            16,
18894            0x1,
18895            1,
18896            0,
18897            p80pfs::Pmr,
18898            p80pfs::Pmr,
18899            P80Pfs_SPEC,
18900            crate::common::RW,
18901        >::from_register(self, 0)
18902    }
18903
18904    #[doc = "Peripheral Select"]
18905    #[inline(always)]
18906    pub fn psel(
18907        self,
18908    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P80Pfs_SPEC, crate::common::RW> {
18909        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P80Pfs_SPEC,crate::common::RW>::from_register(self,0)
18910    }
18911}
18912impl ::core::default::Default for P80Pfs {
18913    #[inline(always)]
18914    fn default() -> P80Pfs {
18915        <crate::RegValueT<P80Pfs_SPEC> as RegisterValue<_>>::new(0)
18916    }
18917}
18918pub mod p80pfs {
18919
18920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18921    pub struct Podr_SPEC;
18922    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18923    impl Podr {
18924        #[doc = "Output low"]
18925        pub const _0: Self = Self::new(0);
18926
18927        #[doc = "Output high"]
18928        pub const _1: Self = Self::new(1);
18929    }
18930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18931    pub struct Pidr_SPEC;
18932    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18933    impl Pidr {
18934        #[doc = "Low level"]
18935        pub const _0: Self = Self::new(0);
18936
18937        #[doc = "High level"]
18938        pub const _1: Self = Self::new(1);
18939    }
18940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18941    pub struct Pdr_SPEC;
18942    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18943    impl Pdr {
18944        #[doc = "Input (functions as an input pin)"]
18945        pub const _0: Self = Self::new(0);
18946
18947        #[doc = "Output (functions as an output pin)"]
18948        pub const _1: Self = Self::new(1);
18949    }
18950    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18951    pub struct Pcr_SPEC;
18952    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18953    impl Pcr {
18954        #[doc = "Disable input pull-up"]
18955        pub const _0: Self = Self::new(0);
18956
18957        #[doc = "Enable input pull-up"]
18958        pub const _1: Self = Self::new(1);
18959    }
18960    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18961    pub struct Ncodr_SPEC;
18962    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18963    impl Ncodr {
18964        #[doc = "Output CMOS"]
18965        pub const _0: Self = Self::new(0);
18966
18967        #[doc = "Output NMOS open-drain"]
18968        pub const _1: Self = Self::new(1);
18969    }
18970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18971    pub struct Isel_SPEC;
18972    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18973    impl Isel {
18974        #[doc = "Do not use as IRQn input pin"]
18975        pub const _0: Self = Self::new(0);
18976
18977        #[doc = "Use as IRQn input pin"]
18978        pub const _1: Self = Self::new(1);
18979    }
18980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18981    pub struct Asel_SPEC;
18982    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18983    impl Asel {
18984        #[doc = "Do not use as analog pin"]
18985        pub const _0: Self = Self::new(0);
18986
18987        #[doc = "Use as analog pin"]
18988        pub const _1: Self = Self::new(1);
18989    }
18990    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18991    pub struct Pmr_SPEC;
18992    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
18993    impl Pmr {
18994        #[doc = "Use as general I/O pin"]
18995        pub const _0: Self = Self::new(0);
18996
18997        #[doc = "Use as I/O port for peripheral functions"]
18998        pub const _1: Self = Self::new(1);
18999    }
19000}
19001#[doc(hidden)]
19002#[derive(Copy, Clone, Eq, PartialEq)]
19003pub struct P80PfsHa_SPEC;
19004impl crate::sealed::RegSpec for P80PfsHa_SPEC {
19005    type DataType = u16;
19006}
19007
19008#[doc = "Port 80%s Pin Function Select Register"]
19009pub type P80PfsHa = crate::RegValueT<P80PfsHa_SPEC>;
19010
19011impl P80PfsHa {
19012    #[doc = "Port Output Data"]
19013    #[inline(always)]
19014    pub fn podr(
19015        self,
19016    ) -> crate::common::RegisterField<
19017        0,
19018        0x1,
19019        1,
19020        0,
19021        p80pfs_ha::Podr,
19022        p80pfs_ha::Podr,
19023        P80PfsHa_SPEC,
19024        crate::common::RW,
19025    > {
19026        crate::common::RegisterField::<
19027            0,
19028            0x1,
19029            1,
19030            0,
19031            p80pfs_ha::Podr,
19032            p80pfs_ha::Podr,
19033            P80PfsHa_SPEC,
19034            crate::common::RW,
19035        >::from_register(self, 0)
19036    }
19037
19038    #[doc = "Port State"]
19039    #[inline(always)]
19040    pub fn pidr(
19041        self,
19042    ) -> crate::common::RegisterField<
19043        1,
19044        0x1,
19045        1,
19046        0,
19047        p80pfs_ha::Pidr,
19048        p80pfs_ha::Pidr,
19049        P80PfsHa_SPEC,
19050        crate::common::R,
19051    > {
19052        crate::common::RegisterField::<
19053            1,
19054            0x1,
19055            1,
19056            0,
19057            p80pfs_ha::Pidr,
19058            p80pfs_ha::Pidr,
19059            P80PfsHa_SPEC,
19060            crate::common::R,
19061        >::from_register(self, 0)
19062    }
19063
19064    #[doc = "Port Direction"]
19065    #[inline(always)]
19066    pub fn pdr(
19067        self,
19068    ) -> crate::common::RegisterField<
19069        2,
19070        0x1,
19071        1,
19072        0,
19073        p80pfs_ha::Pdr,
19074        p80pfs_ha::Pdr,
19075        P80PfsHa_SPEC,
19076        crate::common::RW,
19077    > {
19078        crate::common::RegisterField::<
19079            2,
19080            0x1,
19081            1,
19082            0,
19083            p80pfs_ha::Pdr,
19084            p80pfs_ha::Pdr,
19085            P80PfsHa_SPEC,
19086            crate::common::RW,
19087        >::from_register(self, 0)
19088    }
19089
19090    #[doc = "Pull-up Control"]
19091    #[inline(always)]
19092    pub fn pcr(
19093        self,
19094    ) -> crate::common::RegisterField<
19095        4,
19096        0x1,
19097        1,
19098        0,
19099        p80pfs_ha::Pcr,
19100        p80pfs_ha::Pcr,
19101        P80PfsHa_SPEC,
19102        crate::common::RW,
19103    > {
19104        crate::common::RegisterField::<
19105            4,
19106            0x1,
19107            1,
19108            0,
19109            p80pfs_ha::Pcr,
19110            p80pfs_ha::Pcr,
19111            P80PfsHa_SPEC,
19112            crate::common::RW,
19113        >::from_register(self, 0)
19114    }
19115
19116    #[doc = "N-Channel Open-Drain Control"]
19117    #[inline(always)]
19118    pub fn ncodr(
19119        self,
19120    ) -> crate::common::RegisterField<
19121        6,
19122        0x1,
19123        1,
19124        0,
19125        p80pfs_ha::Ncodr,
19126        p80pfs_ha::Ncodr,
19127        P80PfsHa_SPEC,
19128        crate::common::RW,
19129    > {
19130        crate::common::RegisterField::<
19131            6,
19132            0x1,
19133            1,
19134            0,
19135            p80pfs_ha::Ncodr,
19136            p80pfs_ha::Ncodr,
19137            P80PfsHa_SPEC,
19138            crate::common::RW,
19139        >::from_register(self, 0)
19140    }
19141
19142    #[doc = "IRQ Input Enable"]
19143    #[inline(always)]
19144    pub fn isel(
19145        self,
19146    ) -> crate::common::RegisterField<
19147        14,
19148        0x1,
19149        1,
19150        0,
19151        p80pfs_ha::Isel,
19152        p80pfs_ha::Isel,
19153        P80PfsHa_SPEC,
19154        crate::common::RW,
19155    > {
19156        crate::common::RegisterField::<
19157            14,
19158            0x1,
19159            1,
19160            0,
19161            p80pfs_ha::Isel,
19162            p80pfs_ha::Isel,
19163            P80PfsHa_SPEC,
19164            crate::common::RW,
19165        >::from_register(self, 0)
19166    }
19167
19168    #[doc = "Analog Input Enable"]
19169    #[inline(always)]
19170    pub fn asel(
19171        self,
19172    ) -> crate::common::RegisterField<
19173        15,
19174        0x1,
19175        1,
19176        0,
19177        p80pfs_ha::Asel,
19178        p80pfs_ha::Asel,
19179        P80PfsHa_SPEC,
19180        crate::common::RW,
19181    > {
19182        crate::common::RegisterField::<
19183            15,
19184            0x1,
19185            1,
19186            0,
19187            p80pfs_ha::Asel,
19188            p80pfs_ha::Asel,
19189            P80PfsHa_SPEC,
19190            crate::common::RW,
19191        >::from_register(self, 0)
19192    }
19193}
19194impl ::core::default::Default for P80PfsHa {
19195    #[inline(always)]
19196    fn default() -> P80PfsHa {
19197        <crate::RegValueT<P80PfsHa_SPEC> as RegisterValue<_>>::new(0)
19198    }
19199}
19200pub mod p80pfs_ha {
19201
19202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19203    pub struct Podr_SPEC;
19204    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19205    impl Podr {
19206        #[doc = "Output low"]
19207        pub const _0: Self = Self::new(0);
19208
19209        #[doc = "Output high"]
19210        pub const _1: Self = Self::new(1);
19211    }
19212    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19213    pub struct Pidr_SPEC;
19214    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19215    impl Pidr {
19216        #[doc = "Low level"]
19217        pub const _0: Self = Self::new(0);
19218
19219        #[doc = "High level"]
19220        pub const _1: Self = Self::new(1);
19221    }
19222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19223    pub struct Pdr_SPEC;
19224    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19225    impl Pdr {
19226        #[doc = "Input (functions as an input pin)"]
19227        pub const _0: Self = Self::new(0);
19228
19229        #[doc = "Output (functions as an output pin)"]
19230        pub const _1: Self = Self::new(1);
19231    }
19232    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19233    pub struct Pcr_SPEC;
19234    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19235    impl Pcr {
19236        #[doc = "Disable input pull-up"]
19237        pub const _0: Self = Self::new(0);
19238
19239        #[doc = "Enable input pull-up"]
19240        pub const _1: Self = Self::new(1);
19241    }
19242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19243    pub struct Ncodr_SPEC;
19244    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
19245    impl Ncodr {
19246        #[doc = "Output CMOS"]
19247        pub const _0: Self = Self::new(0);
19248
19249        #[doc = "Output NMOS open-drain"]
19250        pub const _1: Self = Self::new(1);
19251    }
19252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19253    pub struct Isel_SPEC;
19254    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
19255    impl Isel {
19256        #[doc = "Do not use as IRQn input pin"]
19257        pub const _0: Self = Self::new(0);
19258
19259        #[doc = "Use as IRQn input pin"]
19260        pub const _1: Self = Self::new(1);
19261    }
19262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19263    pub struct Asel_SPEC;
19264    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
19265    impl Asel {
19266        #[doc = "Do not use as analog pin"]
19267        pub const _0: Self = Self::new(0);
19268
19269        #[doc = "Use as analog pin"]
19270        pub const _1: Self = Self::new(1);
19271    }
19272}
19273#[doc(hidden)]
19274#[derive(Copy, Clone, Eq, PartialEq)]
19275pub struct P80PfsBy_SPEC;
19276impl crate::sealed::RegSpec for P80PfsBy_SPEC {
19277    type DataType = u8;
19278}
19279
19280#[doc = "Port 80%s Pin Function Select Register"]
19281pub type P80PfsBy = crate::RegValueT<P80PfsBy_SPEC>;
19282
19283impl P80PfsBy {
19284    #[doc = "Port Output Data"]
19285    #[inline(always)]
19286    pub fn podr(
19287        self,
19288    ) -> crate::common::RegisterField<
19289        0,
19290        0x1,
19291        1,
19292        0,
19293        p80pfs_by::Podr,
19294        p80pfs_by::Podr,
19295        P80PfsBy_SPEC,
19296        crate::common::RW,
19297    > {
19298        crate::common::RegisterField::<
19299            0,
19300            0x1,
19301            1,
19302            0,
19303            p80pfs_by::Podr,
19304            p80pfs_by::Podr,
19305            P80PfsBy_SPEC,
19306            crate::common::RW,
19307        >::from_register(self, 0)
19308    }
19309
19310    #[doc = "Port State"]
19311    #[inline(always)]
19312    pub fn pidr(
19313        self,
19314    ) -> crate::common::RegisterField<
19315        1,
19316        0x1,
19317        1,
19318        0,
19319        p80pfs_by::Pidr,
19320        p80pfs_by::Pidr,
19321        P80PfsBy_SPEC,
19322        crate::common::R,
19323    > {
19324        crate::common::RegisterField::<
19325            1,
19326            0x1,
19327            1,
19328            0,
19329            p80pfs_by::Pidr,
19330            p80pfs_by::Pidr,
19331            P80PfsBy_SPEC,
19332            crate::common::R,
19333        >::from_register(self, 0)
19334    }
19335
19336    #[doc = "Port Direction"]
19337    #[inline(always)]
19338    pub fn pdr(
19339        self,
19340    ) -> crate::common::RegisterField<
19341        2,
19342        0x1,
19343        1,
19344        0,
19345        p80pfs_by::Pdr,
19346        p80pfs_by::Pdr,
19347        P80PfsBy_SPEC,
19348        crate::common::RW,
19349    > {
19350        crate::common::RegisterField::<
19351            2,
19352            0x1,
19353            1,
19354            0,
19355            p80pfs_by::Pdr,
19356            p80pfs_by::Pdr,
19357            P80PfsBy_SPEC,
19358            crate::common::RW,
19359        >::from_register(self, 0)
19360    }
19361
19362    #[doc = "Pull-up Control"]
19363    #[inline(always)]
19364    pub fn pcr(
19365        self,
19366    ) -> crate::common::RegisterField<
19367        4,
19368        0x1,
19369        1,
19370        0,
19371        p80pfs_by::Pcr,
19372        p80pfs_by::Pcr,
19373        P80PfsBy_SPEC,
19374        crate::common::RW,
19375    > {
19376        crate::common::RegisterField::<
19377            4,
19378            0x1,
19379            1,
19380            0,
19381            p80pfs_by::Pcr,
19382            p80pfs_by::Pcr,
19383            P80PfsBy_SPEC,
19384            crate::common::RW,
19385        >::from_register(self, 0)
19386    }
19387
19388    #[doc = "N-Channel Open-Drain Control"]
19389    #[inline(always)]
19390    pub fn ncodr(
19391        self,
19392    ) -> crate::common::RegisterField<
19393        6,
19394        0x1,
19395        1,
19396        0,
19397        p80pfs_by::Ncodr,
19398        p80pfs_by::Ncodr,
19399        P80PfsBy_SPEC,
19400        crate::common::RW,
19401    > {
19402        crate::common::RegisterField::<
19403            6,
19404            0x1,
19405            1,
19406            0,
19407            p80pfs_by::Ncodr,
19408            p80pfs_by::Ncodr,
19409            P80PfsBy_SPEC,
19410            crate::common::RW,
19411        >::from_register(self, 0)
19412    }
19413}
19414impl ::core::default::Default for P80PfsBy {
19415    #[inline(always)]
19416    fn default() -> P80PfsBy {
19417        <crate::RegValueT<P80PfsBy_SPEC> as RegisterValue<_>>::new(0)
19418    }
19419}
19420pub mod p80pfs_by {
19421
19422    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19423    pub struct Podr_SPEC;
19424    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19425    impl Podr {
19426        #[doc = "Output low"]
19427        pub const _0: Self = Self::new(0);
19428
19429        #[doc = "Output high"]
19430        pub const _1: Self = Self::new(1);
19431    }
19432    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19433    pub struct Pidr_SPEC;
19434    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19435    impl Pidr {
19436        #[doc = "Low level"]
19437        pub const _0: Self = Self::new(0);
19438
19439        #[doc = "High level"]
19440        pub const _1: Self = Self::new(1);
19441    }
19442    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19443    pub struct Pdr_SPEC;
19444    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19445    impl Pdr {
19446        #[doc = "Input (functions as an input pin)"]
19447        pub const _0: Self = Self::new(0);
19448
19449        #[doc = "Output (functions as an output pin)"]
19450        pub const _1: Self = Self::new(1);
19451    }
19452    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19453    pub struct Pcr_SPEC;
19454    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19455    impl Pcr {
19456        #[doc = "Disable input pull-up"]
19457        pub const _0: Self = Self::new(0);
19458
19459        #[doc = "Enable input pull-up"]
19460        pub const _1: Self = Self::new(1);
19461    }
19462    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19463    pub struct Ncodr_SPEC;
19464    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
19465    impl Ncodr {
19466        #[doc = "Output CMOS"]
19467        pub const _0: Self = Self::new(0);
19468
19469        #[doc = "Output NMOS open-drain"]
19470        pub const _1: Self = Self::new(1);
19471    }
19472}
19473#[doc(hidden)]
19474#[derive(Copy, Clone, Eq, PartialEq)]
19475pub struct Pwpr_SPEC;
19476impl crate::sealed::RegSpec for Pwpr_SPEC {
19477    type DataType = u8;
19478}
19479
19480#[doc = "Write-Protect Register"]
19481pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
19482
19483impl Pwpr {
19484    #[doc = "PmnPFS Register Write Enable"]
19485    #[inline(always)]
19486    pub fn pfswe(
19487        self,
19488    ) -> crate::common::RegisterField<
19489        6,
19490        0x1,
19491        1,
19492        0,
19493        pwpr::Pfswe,
19494        pwpr::Pfswe,
19495        Pwpr_SPEC,
19496        crate::common::RW,
19497    > {
19498        crate::common::RegisterField::<
19499            6,
19500            0x1,
19501            1,
19502            0,
19503            pwpr::Pfswe,
19504            pwpr::Pfswe,
19505            Pwpr_SPEC,
19506            crate::common::RW,
19507        >::from_register(self, 0)
19508    }
19509
19510    #[doc = "PFSWE Bit Write Disable"]
19511    #[inline(always)]
19512    pub fn b0wi(
19513        self,
19514    ) -> crate::common::RegisterField<
19515        7,
19516        0x1,
19517        1,
19518        0,
19519        pwpr::B0Wi,
19520        pwpr::B0Wi,
19521        Pwpr_SPEC,
19522        crate::common::RW,
19523    > {
19524        crate::common::RegisterField::<
19525            7,
19526            0x1,
19527            1,
19528            0,
19529            pwpr::B0Wi,
19530            pwpr::B0Wi,
19531            Pwpr_SPEC,
19532            crate::common::RW,
19533        >::from_register(self, 0)
19534    }
19535}
19536impl ::core::default::Default for Pwpr {
19537    #[inline(always)]
19538    fn default() -> Pwpr {
19539        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
19540    }
19541}
19542pub mod pwpr {
19543
19544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19545    pub struct Pfswe_SPEC;
19546    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
19547    impl Pfswe {
19548        #[doc = "Writing to the PmnPFS register is disabled"]
19549        pub const _0: Self = Self::new(0);
19550
19551        #[doc = "Writing to the PmnPFS register is enabled"]
19552        pub const _1: Self = Self::new(1);
19553    }
19554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19555    pub struct B0Wi_SPEC;
19556    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
19557    impl B0Wi {
19558        #[doc = "Writing to the PFSWE bit is enabled"]
19559        pub const _0: Self = Self::new(0);
19560
19561        #[doc = "Writing to the PFSWE bit is disabled"]
19562        pub const _1: Self = Self::new(1);
19563    }
19564}
19565#[doc(hidden)]
19566#[derive(Copy, Clone, Eq, PartialEq)]
19567pub struct Prwcntr_SPEC;
19568impl crate::sealed::RegSpec for Prwcntr_SPEC {
19569    type DataType = u8;
19570}
19571
19572#[doc = "Port Read Wait Control Register"]
19573pub type Prwcntr = crate::RegValueT<Prwcntr_SPEC>;
19574
19575impl Prwcntr {
19576    #[doc = "Wait Cycle Control"]
19577    #[inline(always)]
19578    pub fn wait(
19579        self,
19580    ) -> crate::common::RegisterField<
19581        0,
19582        0x3,
19583        1,
19584        0,
19585        prwcntr::Wait,
19586        prwcntr::Wait,
19587        Prwcntr_SPEC,
19588        crate::common::RW,
19589    > {
19590        crate::common::RegisterField::<
19591            0,
19592            0x3,
19593            1,
19594            0,
19595            prwcntr::Wait,
19596            prwcntr::Wait,
19597            Prwcntr_SPEC,
19598            crate::common::RW,
19599        >::from_register(self, 0)
19600    }
19601}
19602impl ::core::default::Default for Prwcntr {
19603    #[inline(always)]
19604    fn default() -> Prwcntr {
19605        <crate::RegValueT<Prwcntr_SPEC> as RegisterValue<_>>::new(1)
19606    }
19607}
19608pub mod prwcntr {
19609
19610    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19611    pub struct Wait_SPEC;
19612    pub type Wait = crate::EnumBitfieldStruct<u8, Wait_SPEC>;
19613    impl Wait {
19614        #[doc = "Setting prohibited"]
19615        pub const _00: Self = Self::new(0);
19616
19617        #[doc = "Insert a 1-cycle wait"]
19618        pub const _01: Self = Self::new(1);
19619
19620        #[doc = "Insert a 2-cycle wait"]
19621        pub const _10: Self = Self::new(2);
19622
19623        #[doc = "Insert a 3-cycle wait"]
19624        pub const _11: Self = Self::new(3);
19625    }
19626}