Skip to main content

ra4m3_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.40.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:07:45 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"Control Register"]
28unsafe impl ::core::marker::Send for super::Pfs {}
29unsafe impl ::core::marker::Sync for super::Pfs {}
30impl super::Pfs {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Port 00%s Pin Function Select Register"]
38    #[inline(always)]
39    pub const fn p00pfs(
40        &self,
41    ) -> &'static crate::common::ClusterRegisterArray<
42        crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW>,
43        8,
44        0x4,
45    > {
46        unsafe {
47            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x0usize))
48        }
49    }
50    #[inline(always)]
51    pub const fn p000pfs(
52        &self,
53    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0x0usize),
57            )
58        }
59    }
60    #[inline(always)]
61    pub const fn p001pfs(
62        &self,
63    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
64        unsafe {
65            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
66                self._svd2pac_as_ptr().add(0x4usize),
67            )
68        }
69    }
70    #[inline(always)]
71    pub const fn p002pfs(
72        &self,
73    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
74        unsafe {
75            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
76                self._svd2pac_as_ptr().add(0x8usize),
77            )
78        }
79    }
80    #[inline(always)]
81    pub const fn p003pfs(
82        &self,
83    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
84        unsafe {
85            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
86                self._svd2pac_as_ptr().add(0xcusize),
87            )
88        }
89    }
90    #[inline(always)]
91    pub const fn p004pfs(
92        &self,
93    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
94        unsafe {
95            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
96                self._svd2pac_as_ptr().add(0x10usize),
97            )
98        }
99    }
100    #[inline(always)]
101    pub const fn p005pfs(
102        &self,
103    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
104        unsafe {
105            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
106                self._svd2pac_as_ptr().add(0x14usize),
107            )
108        }
109    }
110    #[inline(always)]
111    pub const fn p006pfs(
112        &self,
113    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(0x18usize),
117            )
118        }
119    }
120    #[inline(always)]
121    pub const fn p007pfs(
122        &self,
123    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
124        unsafe {
125            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
126                self._svd2pac_as_ptr().add(0x1cusize),
127            )
128        }
129    }
130
131    #[doc = "Port 00%s Pin Function Select Register"]
132    #[inline(always)]
133    pub const fn p00pfs_ha(
134        &self,
135    ) -> &'static crate::common::ClusterRegisterArray<
136        crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW>,
137        8,
138        0x4,
139    > {
140        unsafe {
141            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2usize))
142        }
143    }
144    #[inline(always)]
145    pub const fn p000pfs_ha(
146        &self,
147    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
148        unsafe {
149            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
150                self._svd2pac_as_ptr().add(0x2usize),
151            )
152        }
153    }
154    #[inline(always)]
155    pub const fn p001pfs_ha(
156        &self,
157    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
158        unsafe {
159            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
160                self._svd2pac_as_ptr().add(0x6usize),
161            )
162        }
163    }
164    #[inline(always)]
165    pub const fn p002pfs_ha(
166        &self,
167    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
168        unsafe {
169            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
170                self._svd2pac_as_ptr().add(0xausize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn p003pfs_ha(
176        &self,
177    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
178        unsafe {
179            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
180                self._svd2pac_as_ptr().add(0xeusize),
181            )
182        }
183    }
184    #[inline(always)]
185    pub const fn p004pfs_ha(
186        &self,
187    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
188        unsafe {
189            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
190                self._svd2pac_as_ptr().add(0x12usize),
191            )
192        }
193    }
194    #[inline(always)]
195    pub const fn p005pfs_ha(
196        &self,
197    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(0x16usize),
201            )
202        }
203    }
204    #[inline(always)]
205    pub const fn p006pfs_ha(
206        &self,
207    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
208        unsafe {
209            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
210                self._svd2pac_as_ptr().add(0x1ausize),
211            )
212        }
213    }
214    #[inline(always)]
215    pub const fn p007pfs_ha(
216        &self,
217    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
218        unsafe {
219            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
220                self._svd2pac_as_ptr().add(0x1eusize),
221            )
222        }
223    }
224
225    #[doc = "Port 00%s Pin Function Select Register"]
226    #[inline(always)]
227    pub const fn p00pfs_by(
228        &self,
229    ) -> &'static crate::common::ClusterRegisterArray<
230        crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW>,
231        8,
232        0x4,
233    > {
234        unsafe {
235            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3usize))
236        }
237    }
238    #[inline(always)]
239    pub const fn p000pfs_by(
240        &self,
241    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
242        unsafe {
243            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
244                self._svd2pac_as_ptr().add(0x3usize),
245            )
246        }
247    }
248    #[inline(always)]
249    pub const fn p001pfs_by(
250        &self,
251    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
252        unsafe {
253            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
254                self._svd2pac_as_ptr().add(0x7usize),
255            )
256        }
257    }
258    #[inline(always)]
259    pub const fn p002pfs_by(
260        &self,
261    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
262        unsafe {
263            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
264                self._svd2pac_as_ptr().add(0xbusize),
265            )
266        }
267    }
268    #[inline(always)]
269    pub const fn p003pfs_by(
270        &self,
271    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
272        unsafe {
273            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
274                self._svd2pac_as_ptr().add(0xfusize),
275            )
276        }
277    }
278    #[inline(always)]
279    pub const fn p004pfs_by(
280        &self,
281    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(0x13usize),
285            )
286        }
287    }
288    #[inline(always)]
289    pub const fn p005pfs_by(
290        &self,
291    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
292        unsafe {
293            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
294                self._svd2pac_as_ptr().add(0x17usize),
295            )
296        }
297    }
298    #[inline(always)]
299    pub const fn p006pfs_by(
300        &self,
301    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
302        unsafe {
303            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
304                self._svd2pac_as_ptr().add(0x1busize),
305            )
306        }
307    }
308    #[inline(always)]
309    pub const fn p007pfs_by(
310        &self,
311    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
312        unsafe {
313            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
314                self._svd2pac_as_ptr().add(0x1fusize),
315            )
316        }
317    }
318
319    #[doc = "Port 008 Pin Function Select Register"]
320    #[inline(always)]
321    pub const fn p008pfs(
322        &self,
323    ) -> &'static crate::common::Reg<self::P008Pfs_SPEC, crate::common::RW> {
324        unsafe {
325            crate::common::Reg::<self::P008Pfs_SPEC, crate::common::RW>::from_ptr(
326                self._svd2pac_as_ptr().add(32usize),
327            )
328        }
329    }
330
331    #[doc = "Port 008 Pin Function Select Register"]
332    #[inline(always)]
333    pub const fn p008pfs_ha(
334        &self,
335    ) -> &'static crate::common::Reg<self::P008PfsHa_SPEC, crate::common::RW> {
336        unsafe {
337            crate::common::Reg::<self::P008PfsHa_SPEC, crate::common::RW>::from_ptr(
338                self._svd2pac_as_ptr().add(34usize),
339            )
340        }
341    }
342
343    #[doc = "Port 008 Pin Function Select Register"]
344    #[inline(always)]
345    pub const fn p008pfs_by(
346        &self,
347    ) -> &'static crate::common::Reg<self::P008PfsBy_SPEC, crate::common::RW> {
348        unsafe {
349            crate::common::Reg::<self::P008PfsBy_SPEC, crate::common::RW>::from_ptr(
350                self._svd2pac_as_ptr().add(35usize),
351            )
352        }
353    }
354
355    #[doc = "Port 009 Pin Function Select Register"]
356    #[inline(always)]
357    pub const fn p009pfs(
358        &self,
359    ) -> &'static crate::common::Reg<self::P009Pfs_SPEC, crate::common::RW> {
360        unsafe {
361            crate::common::Reg::<self::P009Pfs_SPEC, crate::common::RW>::from_ptr(
362                self._svd2pac_as_ptr().add(36usize),
363            )
364        }
365    }
366
367    #[doc = "Port 009 Pin Function Select Register"]
368    #[inline(always)]
369    pub const fn p009pfs_ha(
370        &self,
371    ) -> &'static crate::common::Reg<self::P009PfsHa_SPEC, crate::common::RW> {
372        unsafe {
373            crate::common::Reg::<self::P009PfsHa_SPEC, crate::common::RW>::from_ptr(
374                self._svd2pac_as_ptr().add(38usize),
375            )
376        }
377    }
378
379    #[doc = "Port 009 Pin Function Select Register"]
380    #[inline(always)]
381    pub const fn p009pfs_by(
382        &self,
383    ) -> &'static crate::common::Reg<self::P009PfsBy_SPEC, crate::common::RW> {
384        unsafe {
385            crate::common::Reg::<self::P009PfsBy_SPEC, crate::common::RW>::from_ptr(
386                self._svd2pac_as_ptr().add(39usize),
387            )
388        }
389    }
390
391    #[doc = "Port 0%s Pin Function Select Register"]
392    #[inline(always)]
393    pub const fn p0pfs(
394        &self,
395    ) -> &'static crate::common::ClusterRegisterArray<
396        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
397        2,
398        0x4,
399    > {
400        unsafe {
401            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x38usize))
402        }
403    }
404    #[inline(always)]
405    pub const fn p014pfs(
406        &self,
407    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
408        unsafe {
409            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
410                self._svd2pac_as_ptr().add(0x38usize),
411            )
412        }
413    }
414    #[inline(always)]
415    pub const fn p015pfs(
416        &self,
417    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
418        unsafe {
419            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
420                self._svd2pac_as_ptr().add(0x3cusize),
421            )
422        }
423    }
424
425    #[doc = "Port 0%s Pin Function Select Register"]
426    #[inline(always)]
427    pub const fn p0pfs_ha(
428        &self,
429    ) -> &'static crate::common::ClusterRegisterArray<
430        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
431        2,
432        0x4,
433    > {
434        unsafe {
435            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3ausize))
436        }
437    }
438    #[inline(always)]
439    pub const fn p014pfs_ha(
440        &self,
441    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
442        unsafe {
443            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
444                self._svd2pac_as_ptr().add(0x3ausize),
445            )
446        }
447    }
448    #[inline(always)]
449    pub const fn p015pfs_ha(
450        &self,
451    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
452        unsafe {
453            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
454                self._svd2pac_as_ptr().add(0x3eusize),
455            )
456        }
457    }
458
459    #[doc = "Port 0%s Pin Function Select Register"]
460    #[inline(always)]
461    pub const fn p0pfs_by(
462        &self,
463    ) -> &'static crate::common::ClusterRegisterArray<
464        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
465        2,
466        0x4,
467    > {
468        unsafe {
469            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3busize))
470        }
471    }
472    #[inline(always)]
473    pub const fn p014pfs_by(
474        &self,
475    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
476        unsafe {
477            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
478                self._svd2pac_as_ptr().add(0x3busize),
479            )
480        }
481    }
482    #[inline(always)]
483    pub const fn p015pfs_by(
484        &self,
485    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
486        unsafe {
487            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
488                self._svd2pac_as_ptr().add(0x3fusize),
489            )
490        }
491    }
492
493    #[doc = "Port 10%s Pin Function Select Register"]
494    #[inline(always)]
495    pub const fn p10pfs(
496        &self,
497    ) -> &'static crate::common::ClusterRegisterArray<
498        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
499        10,
500        0x4,
501    > {
502        unsafe {
503            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
504        }
505    }
506    #[inline(always)]
507    pub const fn p100pfs(
508        &self,
509    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
510        unsafe {
511            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
512                self._svd2pac_as_ptr().add(0x40usize),
513            )
514        }
515    }
516    #[inline(always)]
517    pub const fn p101pfs(
518        &self,
519    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
520        unsafe {
521            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
522                self._svd2pac_as_ptr().add(0x44usize),
523            )
524        }
525    }
526    #[inline(always)]
527    pub const fn p102pfs(
528        &self,
529    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
530        unsafe {
531            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
532                self._svd2pac_as_ptr().add(0x48usize),
533            )
534        }
535    }
536    #[inline(always)]
537    pub const fn p103pfs(
538        &self,
539    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
540        unsafe {
541            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
542                self._svd2pac_as_ptr().add(0x4cusize),
543            )
544        }
545    }
546    #[inline(always)]
547    pub const fn p104pfs(
548        &self,
549    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
550        unsafe {
551            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
552                self._svd2pac_as_ptr().add(0x50usize),
553            )
554        }
555    }
556    #[inline(always)]
557    pub const fn p105pfs(
558        &self,
559    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
560        unsafe {
561            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
562                self._svd2pac_as_ptr().add(0x54usize),
563            )
564        }
565    }
566    #[inline(always)]
567    pub const fn p106pfs(
568        &self,
569    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
570        unsafe {
571            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
572                self._svd2pac_as_ptr().add(0x58usize),
573            )
574        }
575    }
576    #[inline(always)]
577    pub const fn p107pfs(
578        &self,
579    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
580        unsafe {
581            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
582                self._svd2pac_as_ptr().add(0x5cusize),
583            )
584        }
585    }
586    #[inline(always)]
587    pub const fn p108pfs(
588        &self,
589    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
590        unsafe {
591            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
592                self._svd2pac_as_ptr().add(0x60usize),
593            )
594        }
595    }
596    #[inline(always)]
597    pub const fn p109pfs(
598        &self,
599    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
600        unsafe {
601            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
602                self._svd2pac_as_ptr().add(0x64usize),
603            )
604        }
605    }
606
607    #[doc = "Port 10%s Pin Function Select Register"]
608    #[inline(always)]
609    pub const fn p10pfs_ha(
610        &self,
611    ) -> &'static crate::common::ClusterRegisterArray<
612        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
613        10,
614        0x4,
615    > {
616        unsafe {
617            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
618        }
619    }
620    #[inline(always)]
621    pub const fn p100pfs_ha(
622        &self,
623    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
624        unsafe {
625            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
626                self._svd2pac_as_ptr().add(0x42usize),
627            )
628        }
629    }
630    #[inline(always)]
631    pub const fn p101pfs_ha(
632        &self,
633    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
634        unsafe {
635            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
636                self._svd2pac_as_ptr().add(0x46usize),
637            )
638        }
639    }
640    #[inline(always)]
641    pub const fn p102pfs_ha(
642        &self,
643    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
644        unsafe {
645            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
646                self._svd2pac_as_ptr().add(0x4ausize),
647            )
648        }
649    }
650    #[inline(always)]
651    pub const fn p103pfs_ha(
652        &self,
653    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
654        unsafe {
655            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
656                self._svd2pac_as_ptr().add(0x4eusize),
657            )
658        }
659    }
660    #[inline(always)]
661    pub const fn p104pfs_ha(
662        &self,
663    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
664        unsafe {
665            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
666                self._svd2pac_as_ptr().add(0x52usize),
667            )
668        }
669    }
670    #[inline(always)]
671    pub const fn p105pfs_ha(
672        &self,
673    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
674        unsafe {
675            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
676                self._svd2pac_as_ptr().add(0x56usize),
677            )
678        }
679    }
680    #[inline(always)]
681    pub const fn p106pfs_ha(
682        &self,
683    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
684        unsafe {
685            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
686                self._svd2pac_as_ptr().add(0x5ausize),
687            )
688        }
689    }
690    #[inline(always)]
691    pub const fn p107pfs_ha(
692        &self,
693    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
694        unsafe {
695            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
696                self._svd2pac_as_ptr().add(0x5eusize),
697            )
698        }
699    }
700    #[inline(always)]
701    pub const fn p108pfs_ha(
702        &self,
703    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
704        unsafe {
705            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
706                self._svd2pac_as_ptr().add(0x62usize),
707            )
708        }
709    }
710    #[inline(always)]
711    pub const fn p109pfs_ha(
712        &self,
713    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
714        unsafe {
715            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
716                self._svd2pac_as_ptr().add(0x66usize),
717            )
718        }
719    }
720
721    #[doc = "Port 10%s Pin Function Select Register"]
722    #[inline(always)]
723    pub const fn p10pfs_by(
724        &self,
725    ) -> &'static crate::common::ClusterRegisterArray<
726        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
727        10,
728        0x4,
729    > {
730        unsafe {
731            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
732        }
733    }
734    #[inline(always)]
735    pub const fn p100pfs_by(
736        &self,
737    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
738        unsafe {
739            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
740                self._svd2pac_as_ptr().add(0x43usize),
741            )
742        }
743    }
744    #[inline(always)]
745    pub const fn p101pfs_by(
746        &self,
747    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
748        unsafe {
749            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
750                self._svd2pac_as_ptr().add(0x47usize),
751            )
752        }
753    }
754    #[inline(always)]
755    pub const fn p102pfs_by(
756        &self,
757    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
758        unsafe {
759            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
760                self._svd2pac_as_ptr().add(0x4busize),
761            )
762        }
763    }
764    #[inline(always)]
765    pub const fn p103pfs_by(
766        &self,
767    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
768        unsafe {
769            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
770                self._svd2pac_as_ptr().add(0x4fusize),
771            )
772        }
773    }
774    #[inline(always)]
775    pub const fn p104pfs_by(
776        &self,
777    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
778        unsafe {
779            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
780                self._svd2pac_as_ptr().add(0x53usize),
781            )
782        }
783    }
784    #[inline(always)]
785    pub const fn p105pfs_by(
786        &self,
787    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
788        unsafe {
789            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
790                self._svd2pac_as_ptr().add(0x57usize),
791            )
792        }
793    }
794    #[inline(always)]
795    pub const fn p106pfs_by(
796        &self,
797    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
798        unsafe {
799            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
800                self._svd2pac_as_ptr().add(0x5busize),
801            )
802        }
803    }
804    #[inline(always)]
805    pub const fn p107pfs_by(
806        &self,
807    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
808        unsafe {
809            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
810                self._svd2pac_as_ptr().add(0x5fusize),
811            )
812        }
813    }
814    #[inline(always)]
815    pub const fn p108pfs_by(
816        &self,
817    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
818        unsafe {
819            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
820                self._svd2pac_as_ptr().add(0x63usize),
821            )
822        }
823    }
824    #[inline(always)]
825    pub const fn p109pfs_by(
826        &self,
827    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
828        unsafe {
829            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
830                self._svd2pac_as_ptr().add(0x67usize),
831            )
832        }
833    }
834
835    #[doc = "Port 1%s Pin Function Select Register"]
836    #[inline(always)]
837    pub const fn p1pfs(
838        &self,
839    ) -> &'static crate::common::ClusterRegisterArray<
840        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
841        6,
842        0x4,
843    > {
844        unsafe {
845            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
846        }
847    }
848    #[inline(always)]
849    pub const fn p110pfs(
850        &self,
851    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
852        unsafe {
853            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
854                self._svd2pac_as_ptr().add(0x68usize),
855            )
856        }
857    }
858    #[inline(always)]
859    pub const fn p111pfs(
860        &self,
861    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
862        unsafe {
863            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
864                self._svd2pac_as_ptr().add(0x6cusize),
865            )
866        }
867    }
868    #[inline(always)]
869    pub const fn p112pfs(
870        &self,
871    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
872        unsafe {
873            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
874                self._svd2pac_as_ptr().add(0x70usize),
875            )
876        }
877    }
878    #[inline(always)]
879    pub const fn p113pfs(
880        &self,
881    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
882        unsafe {
883            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
884                self._svd2pac_as_ptr().add(0x74usize),
885            )
886        }
887    }
888    #[inline(always)]
889    pub const fn p114pfs(
890        &self,
891    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
892        unsafe {
893            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
894                self._svd2pac_as_ptr().add(0x78usize),
895            )
896        }
897    }
898    #[inline(always)]
899    pub const fn p115pfs(
900        &self,
901    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
902        unsafe {
903            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
904                self._svd2pac_as_ptr().add(0x7cusize),
905            )
906        }
907    }
908
909    #[doc = "Port 1%s Pin Function Select Register"]
910    #[inline(always)]
911    pub const fn p1pfs_ha(
912        &self,
913    ) -> &'static crate::common::ClusterRegisterArray<
914        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
915        6,
916        0x4,
917    > {
918        unsafe {
919            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
920        }
921    }
922    #[inline(always)]
923    pub const fn p110pfs_ha(
924        &self,
925    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
926        unsafe {
927            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
928                self._svd2pac_as_ptr().add(0x6ausize),
929            )
930        }
931    }
932    #[inline(always)]
933    pub const fn p111pfs_ha(
934        &self,
935    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
936        unsafe {
937            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
938                self._svd2pac_as_ptr().add(0x6eusize),
939            )
940        }
941    }
942    #[inline(always)]
943    pub const fn p112pfs_ha(
944        &self,
945    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
946        unsafe {
947            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
948                self._svd2pac_as_ptr().add(0x72usize),
949            )
950        }
951    }
952    #[inline(always)]
953    pub const fn p113pfs_ha(
954        &self,
955    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
956        unsafe {
957            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
958                self._svd2pac_as_ptr().add(0x76usize),
959            )
960        }
961    }
962    #[inline(always)]
963    pub const fn p114pfs_ha(
964        &self,
965    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
966        unsafe {
967            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
968                self._svd2pac_as_ptr().add(0x7ausize),
969            )
970        }
971    }
972    #[inline(always)]
973    pub const fn p115pfs_ha(
974        &self,
975    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
976        unsafe {
977            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
978                self._svd2pac_as_ptr().add(0x7eusize),
979            )
980        }
981    }
982
983    #[doc = "Port 1%s Pin Function Select Register"]
984    #[inline(always)]
985    pub const fn p1pfs_by(
986        &self,
987    ) -> &'static crate::common::ClusterRegisterArray<
988        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
989        6,
990        0x4,
991    > {
992        unsafe {
993            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
994        }
995    }
996    #[inline(always)]
997    pub const fn p110pfs_by(
998        &self,
999    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1000        unsafe {
1001            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1002                self._svd2pac_as_ptr().add(0x6busize),
1003            )
1004        }
1005    }
1006    #[inline(always)]
1007    pub const fn p111pfs_by(
1008        &self,
1009    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1010        unsafe {
1011            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1012                self._svd2pac_as_ptr().add(0x6fusize),
1013            )
1014        }
1015    }
1016    #[inline(always)]
1017    pub const fn p112pfs_by(
1018        &self,
1019    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1020        unsafe {
1021            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1022                self._svd2pac_as_ptr().add(0x73usize),
1023            )
1024        }
1025    }
1026    #[inline(always)]
1027    pub const fn p113pfs_by(
1028        &self,
1029    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1030        unsafe {
1031            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1032                self._svd2pac_as_ptr().add(0x77usize),
1033            )
1034        }
1035    }
1036    #[inline(always)]
1037    pub const fn p114pfs_by(
1038        &self,
1039    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1040        unsafe {
1041            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1042                self._svd2pac_as_ptr().add(0x7busize),
1043            )
1044        }
1045    }
1046    #[inline(always)]
1047    pub const fn p115pfs_by(
1048        &self,
1049    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1050        unsafe {
1051            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1052                self._svd2pac_as_ptr().add(0x7fusize),
1053            )
1054        }
1055    }
1056
1057    #[doc = "Port 200 Pin Function Select Register"]
1058    #[inline(always)]
1059    pub const fn p200pfs(
1060        &self,
1061    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
1062        unsafe {
1063            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
1064                self._svd2pac_as_ptr().add(128usize),
1065            )
1066        }
1067    }
1068
1069    #[doc = "Port 200 Pin Function Select Register"]
1070    #[inline(always)]
1071    pub const fn p200pfs_ha(
1072        &self,
1073    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
1074        unsafe {
1075            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
1076                self._svd2pac_as_ptr().add(130usize),
1077            )
1078        }
1079    }
1080
1081    #[doc = "Port 200 Pin Function Select Register"]
1082    #[inline(always)]
1083    pub const fn p200pfs_by(
1084        &self,
1085    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
1086        unsafe {
1087            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
1088                self._svd2pac_as_ptr().add(131usize),
1089            )
1090        }
1091    }
1092
1093    #[doc = "Port 201 Pin Function Select Register"]
1094    #[inline(always)]
1095    pub const fn p201pfs(
1096        &self,
1097    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
1098        unsafe {
1099            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
1100                self._svd2pac_as_ptr().add(132usize),
1101            )
1102        }
1103    }
1104
1105    #[doc = "Port 201 Pin Function Select Register"]
1106    #[inline(always)]
1107    pub const fn p201pfs_ha(
1108        &self,
1109    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
1110        unsafe {
1111            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
1112                self._svd2pac_as_ptr().add(134usize),
1113            )
1114        }
1115    }
1116
1117    #[doc = "Port 201 Pin Function Select Register"]
1118    #[inline(always)]
1119    pub const fn p201pfs_by(
1120        &self,
1121    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
1122        unsafe {
1123            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
1124                self._svd2pac_as_ptr().add(135usize),
1125            )
1126        }
1127    }
1128
1129    #[doc = "Port 20%s Pin Function Select Register"]
1130    #[inline(always)]
1131    pub const fn p20pfs(
1132        &self,
1133    ) -> &'static crate::common::ClusterRegisterArray<
1134        crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW>,
1135        8,
1136        0x4,
1137    > {
1138        unsafe {
1139            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x88usize))
1140        }
1141    }
1142    #[inline(always)]
1143    pub const fn p202pfs(
1144        &self,
1145    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1146        unsafe {
1147            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1148                self._svd2pac_as_ptr().add(0x88usize),
1149            )
1150        }
1151    }
1152    #[inline(always)]
1153    pub const fn p203pfs(
1154        &self,
1155    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1156        unsafe {
1157            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1158                self._svd2pac_as_ptr().add(0x8cusize),
1159            )
1160        }
1161    }
1162    #[inline(always)]
1163    pub const fn p204pfs(
1164        &self,
1165    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1166        unsafe {
1167            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1168                self._svd2pac_as_ptr().add(0x90usize),
1169            )
1170        }
1171    }
1172    #[inline(always)]
1173    pub const fn p205pfs(
1174        &self,
1175    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1176        unsafe {
1177            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1178                self._svd2pac_as_ptr().add(0x94usize),
1179            )
1180        }
1181    }
1182    #[inline(always)]
1183    pub const fn p206pfs(
1184        &self,
1185    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1186        unsafe {
1187            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1188                self._svd2pac_as_ptr().add(0x98usize),
1189            )
1190        }
1191    }
1192    #[inline(always)]
1193    pub const fn p207pfs(
1194        &self,
1195    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1196        unsafe {
1197            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1198                self._svd2pac_as_ptr().add(0x9cusize),
1199            )
1200        }
1201    }
1202    #[inline(always)]
1203    pub const fn p208pfs(
1204        &self,
1205    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1206        unsafe {
1207            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1208                self._svd2pac_as_ptr().add(0xa0usize),
1209            )
1210        }
1211    }
1212    #[inline(always)]
1213    pub const fn p209pfs(
1214        &self,
1215    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1216        unsafe {
1217            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1218                self._svd2pac_as_ptr().add(0xa4usize),
1219            )
1220        }
1221    }
1222
1223    #[doc = "Port 20%s Pin Function Select Register"]
1224    #[inline(always)]
1225    pub const fn p20pfs_ha(
1226        &self,
1227    ) -> &'static crate::common::ClusterRegisterArray<
1228        crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW>,
1229        8,
1230        0x4,
1231    > {
1232        unsafe {
1233            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8ausize))
1234        }
1235    }
1236    #[inline(always)]
1237    pub const fn p202pfs_ha(
1238        &self,
1239    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1240        unsafe {
1241            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1242                self._svd2pac_as_ptr().add(0x8ausize),
1243            )
1244        }
1245    }
1246    #[inline(always)]
1247    pub const fn p203pfs_ha(
1248        &self,
1249    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1250        unsafe {
1251            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1252                self._svd2pac_as_ptr().add(0x8eusize),
1253            )
1254        }
1255    }
1256    #[inline(always)]
1257    pub const fn p204pfs_ha(
1258        &self,
1259    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1260        unsafe {
1261            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1262                self._svd2pac_as_ptr().add(0x92usize),
1263            )
1264        }
1265    }
1266    #[inline(always)]
1267    pub const fn p205pfs_ha(
1268        &self,
1269    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1270        unsafe {
1271            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1272                self._svd2pac_as_ptr().add(0x96usize),
1273            )
1274        }
1275    }
1276    #[inline(always)]
1277    pub const fn p206pfs_ha(
1278        &self,
1279    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1280        unsafe {
1281            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1282                self._svd2pac_as_ptr().add(0x9ausize),
1283            )
1284        }
1285    }
1286    #[inline(always)]
1287    pub const fn p207pfs_ha(
1288        &self,
1289    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1290        unsafe {
1291            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1292                self._svd2pac_as_ptr().add(0x9eusize),
1293            )
1294        }
1295    }
1296    #[inline(always)]
1297    pub const fn p208pfs_ha(
1298        &self,
1299    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1300        unsafe {
1301            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1302                self._svd2pac_as_ptr().add(0xa2usize),
1303            )
1304        }
1305    }
1306    #[inline(always)]
1307    pub const fn p209pfs_ha(
1308        &self,
1309    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1310        unsafe {
1311            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1312                self._svd2pac_as_ptr().add(0xa6usize),
1313            )
1314        }
1315    }
1316
1317    #[doc = "Port 20%s Pin Function Select Register"]
1318    #[inline(always)]
1319    pub const fn p20pfs_by(
1320        &self,
1321    ) -> &'static crate::common::ClusterRegisterArray<
1322        crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW>,
1323        8,
1324        0x4,
1325    > {
1326        unsafe {
1327            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x8busize))
1328        }
1329    }
1330    #[inline(always)]
1331    pub const fn p202pfs_by(
1332        &self,
1333    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1334        unsafe {
1335            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1336                self._svd2pac_as_ptr().add(0x8busize),
1337            )
1338        }
1339    }
1340    #[inline(always)]
1341    pub const fn p203pfs_by(
1342        &self,
1343    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1344        unsafe {
1345            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1346                self._svd2pac_as_ptr().add(0x8fusize),
1347            )
1348        }
1349    }
1350    #[inline(always)]
1351    pub const fn p204pfs_by(
1352        &self,
1353    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1354        unsafe {
1355            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1356                self._svd2pac_as_ptr().add(0x93usize),
1357            )
1358        }
1359    }
1360    #[inline(always)]
1361    pub const fn p205pfs_by(
1362        &self,
1363    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1364        unsafe {
1365            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1366                self._svd2pac_as_ptr().add(0x97usize),
1367            )
1368        }
1369    }
1370    #[inline(always)]
1371    pub const fn p206pfs_by(
1372        &self,
1373    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1374        unsafe {
1375            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1376                self._svd2pac_as_ptr().add(0x9busize),
1377            )
1378        }
1379    }
1380    #[inline(always)]
1381    pub const fn p207pfs_by(
1382        &self,
1383    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1384        unsafe {
1385            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1386                self._svd2pac_as_ptr().add(0x9fusize),
1387            )
1388        }
1389    }
1390    #[inline(always)]
1391    pub const fn p208pfs_by(
1392        &self,
1393    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1394        unsafe {
1395            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1396                self._svd2pac_as_ptr().add(0xa3usize),
1397            )
1398        }
1399    }
1400    #[inline(always)]
1401    pub const fn p209pfs_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(0xa7usize),
1407            )
1408        }
1409    }
1410
1411    #[doc = "Port 2%s Pin Function Select Register"]
1412    #[inline(always)]
1413    pub const fn p2pfs(
1414        &self,
1415    ) -> &'static crate::common::ClusterRegisterArray<
1416        crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW>,
1417        5,
1418        0x4,
1419    > {
1420        unsafe {
1421            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xa8usize))
1422        }
1423    }
1424    #[inline(always)]
1425    pub const fn p210pfs(
1426        &self,
1427    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1428        unsafe {
1429            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1430                self._svd2pac_as_ptr().add(0xa8usize),
1431            )
1432        }
1433    }
1434    #[inline(always)]
1435    pub const fn p211pfs(
1436        &self,
1437    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1438        unsafe {
1439            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1440                self._svd2pac_as_ptr().add(0xacusize),
1441            )
1442        }
1443    }
1444    #[inline(always)]
1445    pub const fn p212pfs(
1446        &self,
1447    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1448        unsafe {
1449            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1450                self._svd2pac_as_ptr().add(0xb0usize),
1451            )
1452        }
1453    }
1454    #[inline(always)]
1455    pub const fn p213pfs(
1456        &self,
1457    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1458        unsafe {
1459            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1460                self._svd2pac_as_ptr().add(0xb4usize),
1461            )
1462        }
1463    }
1464    #[inline(always)]
1465    pub const fn p214pfs(
1466        &self,
1467    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1468        unsafe {
1469            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1470                self._svd2pac_as_ptr().add(0xb8usize),
1471            )
1472        }
1473    }
1474
1475    #[doc = "Port 2%s Pin Function Select Register"]
1476    #[inline(always)]
1477    pub const fn p2pfs_ha(
1478        &self,
1479    ) -> &'static crate::common::ClusterRegisterArray<
1480        crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW>,
1481        5,
1482        0x4,
1483    > {
1484        unsafe {
1485            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xaausize))
1486        }
1487    }
1488    #[inline(always)]
1489    pub const fn p210pfs_ha(
1490        &self,
1491    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1492        unsafe {
1493            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1494                self._svd2pac_as_ptr().add(0xaausize),
1495            )
1496        }
1497    }
1498    #[inline(always)]
1499    pub const fn p211pfs_ha(
1500        &self,
1501    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1502        unsafe {
1503            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1504                self._svd2pac_as_ptr().add(0xaeusize),
1505            )
1506        }
1507    }
1508    #[inline(always)]
1509    pub const fn p212pfs_ha(
1510        &self,
1511    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1512        unsafe {
1513            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1514                self._svd2pac_as_ptr().add(0xb2usize),
1515            )
1516        }
1517    }
1518    #[inline(always)]
1519    pub const fn p213pfs_ha(
1520        &self,
1521    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1522        unsafe {
1523            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1524                self._svd2pac_as_ptr().add(0xb6usize),
1525            )
1526        }
1527    }
1528    #[inline(always)]
1529    pub const fn p214pfs_ha(
1530        &self,
1531    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1532        unsafe {
1533            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1534                self._svd2pac_as_ptr().add(0xbausize),
1535            )
1536        }
1537    }
1538
1539    #[doc = "Port 2%s Pin Function Select Register"]
1540    #[inline(always)]
1541    pub const fn p2pfs_by(
1542        &self,
1543    ) -> &'static crate::common::ClusterRegisterArray<
1544        crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW>,
1545        5,
1546        0x4,
1547    > {
1548        unsafe {
1549            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xabusize))
1550        }
1551    }
1552    #[inline(always)]
1553    pub const fn p210pfs_by(
1554        &self,
1555    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1556        unsafe {
1557            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1558                self._svd2pac_as_ptr().add(0xabusize),
1559            )
1560        }
1561    }
1562    #[inline(always)]
1563    pub const fn p211pfs_by(
1564        &self,
1565    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1566        unsafe {
1567            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1568                self._svd2pac_as_ptr().add(0xafusize),
1569            )
1570        }
1571    }
1572    #[inline(always)]
1573    pub const fn p212pfs_by(
1574        &self,
1575    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1576        unsafe {
1577            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1578                self._svd2pac_as_ptr().add(0xb3usize),
1579            )
1580        }
1581    }
1582    #[inline(always)]
1583    pub const fn p213pfs_by(
1584        &self,
1585    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1586        unsafe {
1587            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1588                self._svd2pac_as_ptr().add(0xb7usize),
1589            )
1590        }
1591    }
1592    #[inline(always)]
1593    pub const fn p214pfs_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(0xbbusize),
1599            )
1600        }
1601    }
1602
1603    #[doc = "Port 300 Pin Function Select Register"]
1604    #[inline(always)]
1605    pub const fn p300pfs(
1606        &self,
1607    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
1608        unsafe {
1609            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
1610                self._svd2pac_as_ptr().add(192usize),
1611            )
1612        }
1613    }
1614
1615    #[doc = "Port 300 Pin Function Select Register"]
1616    #[inline(always)]
1617    pub const fn p300pfs_ha(
1618        &self,
1619    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
1620        unsafe {
1621            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
1622                self._svd2pac_as_ptr().add(194usize),
1623            )
1624        }
1625    }
1626
1627    #[doc = "Port 300 Pin Function Select Register"]
1628    #[inline(always)]
1629    pub const fn p300pfs_by(
1630        &self,
1631    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
1632        unsafe {
1633            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
1634                self._svd2pac_as_ptr().add(195usize),
1635            )
1636        }
1637    }
1638
1639    #[doc = "Port 30%s Pin Function Select Register"]
1640    #[inline(always)]
1641    pub const fn p30pfs(
1642        &self,
1643    ) -> &'static crate::common::ClusterRegisterArray<
1644        crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW>,
1645        9,
1646        0x4,
1647    > {
1648        unsafe {
1649            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc4usize))
1650        }
1651    }
1652    #[inline(always)]
1653    pub const fn p301pfs(
1654        &self,
1655    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1656        unsafe {
1657            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1658                self._svd2pac_as_ptr().add(0xc4usize),
1659            )
1660        }
1661    }
1662    #[inline(always)]
1663    pub const fn p302pfs(
1664        &self,
1665    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1666        unsafe {
1667            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1668                self._svd2pac_as_ptr().add(0xc8usize),
1669            )
1670        }
1671    }
1672    #[inline(always)]
1673    pub const fn p303pfs(
1674        &self,
1675    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1676        unsafe {
1677            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1678                self._svd2pac_as_ptr().add(0xccusize),
1679            )
1680        }
1681    }
1682    #[inline(always)]
1683    pub const fn p304pfs(
1684        &self,
1685    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1686        unsafe {
1687            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1688                self._svd2pac_as_ptr().add(0xd0usize),
1689            )
1690        }
1691    }
1692    #[inline(always)]
1693    pub const fn p305pfs(
1694        &self,
1695    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1696        unsafe {
1697            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1698                self._svd2pac_as_ptr().add(0xd4usize),
1699            )
1700        }
1701    }
1702    #[inline(always)]
1703    pub const fn p306pfs(
1704        &self,
1705    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1706        unsafe {
1707            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1708                self._svd2pac_as_ptr().add(0xd8usize),
1709            )
1710        }
1711    }
1712    #[inline(always)]
1713    pub const fn p307pfs(
1714        &self,
1715    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1716        unsafe {
1717            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1718                self._svd2pac_as_ptr().add(0xdcusize),
1719            )
1720        }
1721    }
1722    #[inline(always)]
1723    pub const fn p308pfs(
1724        &self,
1725    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1726        unsafe {
1727            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1728                self._svd2pac_as_ptr().add(0xe0usize),
1729            )
1730        }
1731    }
1732    #[inline(always)]
1733    pub const fn p309pfs(
1734        &self,
1735    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1736        unsafe {
1737            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1738                self._svd2pac_as_ptr().add(0xe4usize),
1739            )
1740        }
1741    }
1742
1743    #[doc = "Port 30%s Pin Function Select Register"]
1744    #[inline(always)]
1745    pub const fn p30pfs_ha(
1746        &self,
1747    ) -> &'static crate::common::ClusterRegisterArray<
1748        crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW>,
1749        9,
1750        0x4,
1751    > {
1752        unsafe {
1753            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc6usize))
1754        }
1755    }
1756    #[inline(always)]
1757    pub const fn p301pfs_ha(
1758        &self,
1759    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1760        unsafe {
1761            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1762                self._svd2pac_as_ptr().add(0xc6usize),
1763            )
1764        }
1765    }
1766    #[inline(always)]
1767    pub const fn p302pfs_ha(
1768        &self,
1769    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1770        unsafe {
1771            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1772                self._svd2pac_as_ptr().add(0xcausize),
1773            )
1774        }
1775    }
1776    #[inline(always)]
1777    pub const fn p303pfs_ha(
1778        &self,
1779    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1780        unsafe {
1781            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1782                self._svd2pac_as_ptr().add(0xceusize),
1783            )
1784        }
1785    }
1786    #[inline(always)]
1787    pub const fn p304pfs_ha(
1788        &self,
1789    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1790        unsafe {
1791            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1792                self._svd2pac_as_ptr().add(0xd2usize),
1793            )
1794        }
1795    }
1796    #[inline(always)]
1797    pub const fn p305pfs_ha(
1798        &self,
1799    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1800        unsafe {
1801            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1802                self._svd2pac_as_ptr().add(0xd6usize),
1803            )
1804        }
1805    }
1806    #[inline(always)]
1807    pub const fn p306pfs_ha(
1808        &self,
1809    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1810        unsafe {
1811            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1812                self._svd2pac_as_ptr().add(0xdausize),
1813            )
1814        }
1815    }
1816    #[inline(always)]
1817    pub const fn p307pfs_ha(
1818        &self,
1819    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1820        unsafe {
1821            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1822                self._svd2pac_as_ptr().add(0xdeusize),
1823            )
1824        }
1825    }
1826    #[inline(always)]
1827    pub const fn p308pfs_ha(
1828        &self,
1829    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1830        unsafe {
1831            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1832                self._svd2pac_as_ptr().add(0xe2usize),
1833            )
1834        }
1835    }
1836    #[inline(always)]
1837    pub const fn p309pfs_ha(
1838        &self,
1839    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1840        unsafe {
1841            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1842                self._svd2pac_as_ptr().add(0xe6usize),
1843            )
1844        }
1845    }
1846
1847    #[doc = "Port 30%s Pin Function Select Register"]
1848    #[inline(always)]
1849    pub const fn p30pfs_by(
1850        &self,
1851    ) -> &'static crate::common::ClusterRegisterArray<
1852        crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW>,
1853        9,
1854        0x4,
1855    > {
1856        unsafe {
1857            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc7usize))
1858        }
1859    }
1860    #[inline(always)]
1861    pub const fn p301pfs_by(
1862        &self,
1863    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1864        unsafe {
1865            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1866                self._svd2pac_as_ptr().add(0xc7usize),
1867            )
1868        }
1869    }
1870    #[inline(always)]
1871    pub const fn p302pfs_by(
1872        &self,
1873    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1874        unsafe {
1875            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1876                self._svd2pac_as_ptr().add(0xcbusize),
1877            )
1878        }
1879    }
1880    #[inline(always)]
1881    pub const fn p303pfs_by(
1882        &self,
1883    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1884        unsafe {
1885            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1886                self._svd2pac_as_ptr().add(0xcfusize),
1887            )
1888        }
1889    }
1890    #[inline(always)]
1891    pub const fn p304pfs_by(
1892        &self,
1893    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1894        unsafe {
1895            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1896                self._svd2pac_as_ptr().add(0xd3usize),
1897            )
1898        }
1899    }
1900    #[inline(always)]
1901    pub const fn p305pfs_by(
1902        &self,
1903    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1904        unsafe {
1905            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1906                self._svd2pac_as_ptr().add(0xd7usize),
1907            )
1908        }
1909    }
1910    #[inline(always)]
1911    pub const fn p306pfs_by(
1912        &self,
1913    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1914        unsafe {
1915            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1916                self._svd2pac_as_ptr().add(0xdbusize),
1917            )
1918        }
1919    }
1920    #[inline(always)]
1921    pub const fn p307pfs_by(
1922        &self,
1923    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1924        unsafe {
1925            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1926                self._svd2pac_as_ptr().add(0xdfusize),
1927            )
1928        }
1929    }
1930    #[inline(always)]
1931    pub const fn p308pfs_by(
1932        &self,
1933    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1934        unsafe {
1935            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1936                self._svd2pac_as_ptr().add(0xe3usize),
1937            )
1938        }
1939    }
1940    #[inline(always)]
1941    pub const fn p309pfs_by(
1942        &self,
1943    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1944        unsafe {
1945            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1946                self._svd2pac_as_ptr().add(0xe7usize),
1947            )
1948        }
1949    }
1950
1951    #[doc = "Port 3%s Pin Function Select Register"]
1952    #[inline(always)]
1953    pub const fn p3pfs(
1954        &self,
1955    ) -> &'static crate::common::ClusterRegisterArray<
1956        crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW>,
1957        4,
1958        0x4,
1959    > {
1960        unsafe {
1961            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xe8usize))
1962        }
1963    }
1964    #[inline(always)]
1965    pub const fn p310pfs(
1966        &self,
1967    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1968        unsafe {
1969            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
1970                self._svd2pac_as_ptr().add(0xe8usize),
1971            )
1972        }
1973    }
1974    #[inline(always)]
1975    pub const fn p311pfs(
1976        &self,
1977    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1978        unsafe {
1979            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
1980                self._svd2pac_as_ptr().add(0xecusize),
1981            )
1982        }
1983    }
1984    #[inline(always)]
1985    pub const fn p312pfs(
1986        &self,
1987    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1988        unsafe {
1989            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
1990                self._svd2pac_as_ptr().add(0xf0usize),
1991            )
1992        }
1993    }
1994    #[inline(always)]
1995    pub const fn p313pfs(
1996        &self,
1997    ) -> &'static crate::common::Reg<self::P3Pfs_SPEC, crate::common::RW> {
1998        unsafe {
1999            crate::common::Reg::<self::P3Pfs_SPEC, crate::common::RW>::from_ptr(
2000                self._svd2pac_as_ptr().add(0xf4usize),
2001            )
2002        }
2003    }
2004
2005    #[doc = "Port 3%s Pin Function Select Register"]
2006    #[inline(always)]
2007    pub const fn p3pfs_ha(
2008        &self,
2009    ) -> &'static crate::common::ClusterRegisterArray<
2010        crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW>,
2011        4,
2012        0x4,
2013    > {
2014        unsafe {
2015            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xeausize))
2016        }
2017    }
2018    #[inline(always)]
2019    pub const fn p310pfs_ha(
2020        &self,
2021    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2022        unsafe {
2023            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2024                self._svd2pac_as_ptr().add(0xeausize),
2025            )
2026        }
2027    }
2028    #[inline(always)]
2029    pub const fn p311pfs_ha(
2030        &self,
2031    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2032        unsafe {
2033            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2034                self._svd2pac_as_ptr().add(0xeeusize),
2035            )
2036        }
2037    }
2038    #[inline(always)]
2039    pub const fn p312pfs_ha(
2040        &self,
2041    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2042        unsafe {
2043            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2044                self._svd2pac_as_ptr().add(0xf2usize),
2045            )
2046        }
2047    }
2048    #[inline(always)]
2049    pub const fn p313pfs_ha(
2050        &self,
2051    ) -> &'static crate::common::Reg<self::P3PfsHa_SPEC, crate::common::RW> {
2052        unsafe {
2053            crate::common::Reg::<self::P3PfsHa_SPEC, crate::common::RW>::from_ptr(
2054                self._svd2pac_as_ptr().add(0xf6usize),
2055            )
2056        }
2057    }
2058
2059    #[doc = "Port 3%s Pin Function Select Register"]
2060    #[inline(always)]
2061    pub const fn p3pfs_by(
2062        &self,
2063    ) -> &'static crate::common::ClusterRegisterArray<
2064        crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW>,
2065        4,
2066        0x4,
2067    > {
2068        unsafe {
2069            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xebusize))
2070        }
2071    }
2072    #[inline(always)]
2073    pub const fn p310pfs_by(
2074        &self,
2075    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2076        unsafe {
2077            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2078                self._svd2pac_as_ptr().add(0xebusize),
2079            )
2080        }
2081    }
2082    #[inline(always)]
2083    pub const fn p311pfs_by(
2084        &self,
2085    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2086        unsafe {
2087            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2088                self._svd2pac_as_ptr().add(0xefusize),
2089            )
2090        }
2091    }
2092    #[inline(always)]
2093    pub const fn p312pfs_by(
2094        &self,
2095    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2096        unsafe {
2097            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2098                self._svd2pac_as_ptr().add(0xf3usize),
2099            )
2100        }
2101    }
2102    #[inline(always)]
2103    pub const fn p313pfs_by(
2104        &self,
2105    ) -> &'static crate::common::Reg<self::P3PfsBy_SPEC, crate::common::RW> {
2106        unsafe {
2107            crate::common::Reg::<self::P3PfsBy_SPEC, crate::common::RW>::from_ptr(
2108                self._svd2pac_as_ptr().add(0xf7usize),
2109            )
2110        }
2111    }
2112
2113    #[doc = "Port 40%s Pin Function Select Register"]
2114    #[inline(always)]
2115    pub const fn p40pfs(
2116        &self,
2117    ) -> &'static crate::common::ClusterRegisterArray<
2118        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
2119        10,
2120        0x4,
2121    > {
2122        unsafe {
2123            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x100usize))
2124        }
2125    }
2126    #[inline(always)]
2127    pub const fn p400pfs(
2128        &self,
2129    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2130        unsafe {
2131            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2132                self._svd2pac_as_ptr().add(0x100usize),
2133            )
2134        }
2135    }
2136    #[inline(always)]
2137    pub const fn p401pfs(
2138        &self,
2139    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2140        unsafe {
2141            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2142                self._svd2pac_as_ptr().add(0x104usize),
2143            )
2144        }
2145    }
2146    #[inline(always)]
2147    pub const fn p402pfs(
2148        &self,
2149    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2150        unsafe {
2151            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2152                self._svd2pac_as_ptr().add(0x108usize),
2153            )
2154        }
2155    }
2156    #[inline(always)]
2157    pub const fn p403pfs(
2158        &self,
2159    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2160        unsafe {
2161            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2162                self._svd2pac_as_ptr().add(0x10cusize),
2163            )
2164        }
2165    }
2166    #[inline(always)]
2167    pub const fn p404pfs(
2168        &self,
2169    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2170        unsafe {
2171            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2172                self._svd2pac_as_ptr().add(0x110usize),
2173            )
2174        }
2175    }
2176    #[inline(always)]
2177    pub const fn p405pfs(
2178        &self,
2179    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2180        unsafe {
2181            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2182                self._svd2pac_as_ptr().add(0x114usize),
2183            )
2184        }
2185    }
2186    #[inline(always)]
2187    pub const fn p406pfs(
2188        &self,
2189    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2190        unsafe {
2191            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2192                self._svd2pac_as_ptr().add(0x118usize),
2193            )
2194        }
2195    }
2196    #[inline(always)]
2197    pub const fn p407pfs(
2198        &self,
2199    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2200        unsafe {
2201            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2202                self._svd2pac_as_ptr().add(0x11cusize),
2203            )
2204        }
2205    }
2206    #[inline(always)]
2207    pub const fn p408pfs(
2208        &self,
2209    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2210        unsafe {
2211            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2212                self._svd2pac_as_ptr().add(0x120usize),
2213            )
2214        }
2215    }
2216    #[inline(always)]
2217    pub const fn p409pfs(
2218        &self,
2219    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
2220        unsafe {
2221            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
2222                self._svd2pac_as_ptr().add(0x124usize),
2223            )
2224        }
2225    }
2226
2227    #[doc = "Port 40%s Pin Function Select Register"]
2228    #[inline(always)]
2229    pub const fn p40pfs_ha(
2230        &self,
2231    ) -> &'static crate::common::ClusterRegisterArray<
2232        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
2233        10,
2234        0x4,
2235    > {
2236        unsafe {
2237            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x102usize))
2238        }
2239    }
2240    #[inline(always)]
2241    pub const fn p400pfs_ha(
2242        &self,
2243    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2244        unsafe {
2245            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2246                self._svd2pac_as_ptr().add(0x102usize),
2247            )
2248        }
2249    }
2250    #[inline(always)]
2251    pub const fn p401pfs_ha(
2252        &self,
2253    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2254        unsafe {
2255            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2256                self._svd2pac_as_ptr().add(0x106usize),
2257            )
2258        }
2259    }
2260    #[inline(always)]
2261    pub const fn p402pfs_ha(
2262        &self,
2263    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2264        unsafe {
2265            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2266                self._svd2pac_as_ptr().add(0x10ausize),
2267            )
2268        }
2269    }
2270    #[inline(always)]
2271    pub const fn p403pfs_ha(
2272        &self,
2273    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2274        unsafe {
2275            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2276                self._svd2pac_as_ptr().add(0x10eusize),
2277            )
2278        }
2279    }
2280    #[inline(always)]
2281    pub const fn p404pfs_ha(
2282        &self,
2283    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2284        unsafe {
2285            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2286                self._svd2pac_as_ptr().add(0x112usize),
2287            )
2288        }
2289    }
2290    #[inline(always)]
2291    pub const fn p405pfs_ha(
2292        &self,
2293    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2294        unsafe {
2295            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2296                self._svd2pac_as_ptr().add(0x116usize),
2297            )
2298        }
2299    }
2300    #[inline(always)]
2301    pub const fn p406pfs_ha(
2302        &self,
2303    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2304        unsafe {
2305            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2306                self._svd2pac_as_ptr().add(0x11ausize),
2307            )
2308        }
2309    }
2310    #[inline(always)]
2311    pub const fn p407pfs_ha(
2312        &self,
2313    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2314        unsafe {
2315            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2316                self._svd2pac_as_ptr().add(0x11eusize),
2317            )
2318        }
2319    }
2320    #[inline(always)]
2321    pub const fn p408pfs_ha(
2322        &self,
2323    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2324        unsafe {
2325            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2326                self._svd2pac_as_ptr().add(0x122usize),
2327            )
2328        }
2329    }
2330    #[inline(always)]
2331    pub const fn p409pfs_ha(
2332        &self,
2333    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2334        unsafe {
2335            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2336                self._svd2pac_as_ptr().add(0x126usize),
2337            )
2338        }
2339    }
2340
2341    #[doc = "Port 40%s Pin Function Select Register"]
2342    #[inline(always)]
2343    pub const fn p40pfs_by(
2344        &self,
2345    ) -> &'static crate::common::ClusterRegisterArray<
2346        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
2347        10,
2348        0x4,
2349    > {
2350        unsafe {
2351            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x103usize))
2352        }
2353    }
2354    #[inline(always)]
2355    pub const fn p400pfs_by(
2356        &self,
2357    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2358        unsafe {
2359            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2360                self._svd2pac_as_ptr().add(0x103usize),
2361            )
2362        }
2363    }
2364    #[inline(always)]
2365    pub const fn p401pfs_by(
2366        &self,
2367    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2368        unsafe {
2369            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2370                self._svd2pac_as_ptr().add(0x107usize),
2371            )
2372        }
2373    }
2374    #[inline(always)]
2375    pub const fn p402pfs_by(
2376        &self,
2377    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2378        unsafe {
2379            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2380                self._svd2pac_as_ptr().add(0x10busize),
2381            )
2382        }
2383    }
2384    #[inline(always)]
2385    pub const fn p403pfs_by(
2386        &self,
2387    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2388        unsafe {
2389            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2390                self._svd2pac_as_ptr().add(0x10fusize),
2391            )
2392        }
2393    }
2394    #[inline(always)]
2395    pub const fn p404pfs_by(
2396        &self,
2397    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2398        unsafe {
2399            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2400                self._svd2pac_as_ptr().add(0x113usize),
2401            )
2402        }
2403    }
2404    #[inline(always)]
2405    pub const fn p405pfs_by(
2406        &self,
2407    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2408        unsafe {
2409            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2410                self._svd2pac_as_ptr().add(0x117usize),
2411            )
2412        }
2413    }
2414    #[inline(always)]
2415    pub const fn p406pfs_by(
2416        &self,
2417    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2418        unsafe {
2419            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2420                self._svd2pac_as_ptr().add(0x11busize),
2421            )
2422        }
2423    }
2424    #[inline(always)]
2425    pub const fn p407pfs_by(
2426        &self,
2427    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2428        unsafe {
2429            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2430                self._svd2pac_as_ptr().add(0x11fusize),
2431            )
2432        }
2433    }
2434    #[inline(always)]
2435    pub const fn p408pfs_by(
2436        &self,
2437    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2438        unsafe {
2439            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2440                self._svd2pac_as_ptr().add(0x123usize),
2441            )
2442        }
2443    }
2444    #[inline(always)]
2445    pub const fn p409pfs_by(
2446        &self,
2447    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2448        unsafe {
2449            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2450                self._svd2pac_as_ptr().add(0x127usize),
2451            )
2452        }
2453    }
2454
2455    #[doc = "Port 4%s Pin Function Select Register"]
2456    #[inline(always)]
2457    pub const fn p4pfs(
2458        &self,
2459    ) -> &'static crate::common::ClusterRegisterArray<
2460        crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW>,
2461        6,
2462        0x4,
2463    > {
2464        unsafe {
2465            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x128usize))
2466        }
2467    }
2468    #[inline(always)]
2469    pub const fn p410pfs(
2470        &self,
2471    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2472        unsafe {
2473            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2474                self._svd2pac_as_ptr().add(0x128usize),
2475            )
2476        }
2477    }
2478    #[inline(always)]
2479    pub const fn p411pfs(
2480        &self,
2481    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2482        unsafe {
2483            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2484                self._svd2pac_as_ptr().add(0x12cusize),
2485            )
2486        }
2487    }
2488    #[inline(always)]
2489    pub const fn p412pfs(
2490        &self,
2491    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2492        unsafe {
2493            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2494                self._svd2pac_as_ptr().add(0x130usize),
2495            )
2496        }
2497    }
2498    #[inline(always)]
2499    pub const fn p413pfs(
2500        &self,
2501    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2502        unsafe {
2503            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2504                self._svd2pac_as_ptr().add(0x134usize),
2505            )
2506        }
2507    }
2508    #[inline(always)]
2509    pub const fn p414pfs(
2510        &self,
2511    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2512        unsafe {
2513            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2514                self._svd2pac_as_ptr().add(0x138usize),
2515            )
2516        }
2517    }
2518    #[inline(always)]
2519    pub const fn p415pfs(
2520        &self,
2521    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2522        unsafe {
2523            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2524                self._svd2pac_as_ptr().add(0x13cusize),
2525            )
2526        }
2527    }
2528
2529    #[doc = "Port 4%s Pin Function Select Register"]
2530    #[inline(always)]
2531    pub const fn p4pfs_ha(
2532        &self,
2533    ) -> &'static crate::common::ClusterRegisterArray<
2534        crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW>,
2535        6,
2536        0x4,
2537    > {
2538        unsafe {
2539            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12ausize))
2540        }
2541    }
2542    #[inline(always)]
2543    pub const fn p410pfs_ha(
2544        &self,
2545    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2546        unsafe {
2547            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2548                self._svd2pac_as_ptr().add(0x12ausize),
2549            )
2550        }
2551    }
2552    #[inline(always)]
2553    pub const fn p411pfs_ha(
2554        &self,
2555    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2556        unsafe {
2557            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2558                self._svd2pac_as_ptr().add(0x12eusize),
2559            )
2560        }
2561    }
2562    #[inline(always)]
2563    pub const fn p412pfs_ha(
2564        &self,
2565    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2566        unsafe {
2567            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2568                self._svd2pac_as_ptr().add(0x132usize),
2569            )
2570        }
2571    }
2572    #[inline(always)]
2573    pub const fn p413pfs_ha(
2574        &self,
2575    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2576        unsafe {
2577            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2578                self._svd2pac_as_ptr().add(0x136usize),
2579            )
2580        }
2581    }
2582    #[inline(always)]
2583    pub const fn p414pfs_ha(
2584        &self,
2585    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2586        unsafe {
2587            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2588                self._svd2pac_as_ptr().add(0x13ausize),
2589            )
2590        }
2591    }
2592    #[inline(always)]
2593    pub const fn p415pfs_ha(
2594        &self,
2595    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2596        unsafe {
2597            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2598                self._svd2pac_as_ptr().add(0x13eusize),
2599            )
2600        }
2601    }
2602
2603    #[doc = "Port 4%s Pin Function Select Register"]
2604    #[inline(always)]
2605    pub const fn p4pfs_by(
2606        &self,
2607    ) -> &'static crate::common::ClusterRegisterArray<
2608        crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW>,
2609        6,
2610        0x4,
2611    > {
2612        unsafe {
2613            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12busize))
2614        }
2615    }
2616    #[inline(always)]
2617    pub const fn p410pfs_by(
2618        &self,
2619    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2620        unsafe {
2621            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2622                self._svd2pac_as_ptr().add(0x12busize),
2623            )
2624        }
2625    }
2626    #[inline(always)]
2627    pub const fn p411pfs_by(
2628        &self,
2629    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2630        unsafe {
2631            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2632                self._svd2pac_as_ptr().add(0x12fusize),
2633            )
2634        }
2635    }
2636    #[inline(always)]
2637    pub const fn p412pfs_by(
2638        &self,
2639    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2640        unsafe {
2641            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2642                self._svd2pac_as_ptr().add(0x133usize),
2643            )
2644        }
2645    }
2646    #[inline(always)]
2647    pub const fn p413pfs_by(
2648        &self,
2649    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2650        unsafe {
2651            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2652                self._svd2pac_as_ptr().add(0x137usize),
2653            )
2654        }
2655    }
2656    #[inline(always)]
2657    pub const fn p414pfs_by(
2658        &self,
2659    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2660        unsafe {
2661            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2662                self._svd2pac_as_ptr().add(0x13busize),
2663            )
2664        }
2665    }
2666    #[inline(always)]
2667    pub const fn p415pfs_by(
2668        &self,
2669    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2670        unsafe {
2671            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2672                self._svd2pac_as_ptr().add(0x13fusize),
2673            )
2674        }
2675    }
2676
2677    #[doc = "Port 50%s Pin Function Select Register"]
2678    #[inline(always)]
2679    pub const fn p50pfs(
2680        &self,
2681    ) -> &'static crate::common::ClusterRegisterArray<
2682        crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW>,
2683        8,
2684        0x4,
2685    > {
2686        unsafe {
2687            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x140usize))
2688        }
2689    }
2690    #[inline(always)]
2691    pub const fn p500pfs(
2692        &self,
2693    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2694        unsafe {
2695            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2696                self._svd2pac_as_ptr().add(0x140usize),
2697            )
2698        }
2699    }
2700    #[inline(always)]
2701    pub const fn p501pfs(
2702        &self,
2703    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2704        unsafe {
2705            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2706                self._svd2pac_as_ptr().add(0x144usize),
2707            )
2708        }
2709    }
2710    #[inline(always)]
2711    pub const fn p502pfs(
2712        &self,
2713    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2714        unsafe {
2715            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2716                self._svd2pac_as_ptr().add(0x148usize),
2717            )
2718        }
2719    }
2720    #[inline(always)]
2721    pub const fn p503pfs(
2722        &self,
2723    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2724        unsafe {
2725            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2726                self._svd2pac_as_ptr().add(0x14cusize),
2727            )
2728        }
2729    }
2730    #[inline(always)]
2731    pub const fn p504pfs(
2732        &self,
2733    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2734        unsafe {
2735            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2736                self._svd2pac_as_ptr().add(0x150usize),
2737            )
2738        }
2739    }
2740    #[inline(always)]
2741    pub const fn p505pfs(
2742        &self,
2743    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2744        unsafe {
2745            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2746                self._svd2pac_as_ptr().add(0x154usize),
2747            )
2748        }
2749    }
2750    #[inline(always)]
2751    pub const fn p506pfs(
2752        &self,
2753    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2754        unsafe {
2755            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2756                self._svd2pac_as_ptr().add(0x158usize),
2757            )
2758        }
2759    }
2760    #[inline(always)]
2761    pub const fn p507pfs(
2762        &self,
2763    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2764        unsafe {
2765            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2766                self._svd2pac_as_ptr().add(0x15cusize),
2767            )
2768        }
2769    }
2770
2771    #[doc = "Port 50%s Pin Function Select Register"]
2772    #[inline(always)]
2773    pub const fn p50pfs_ha(
2774        &self,
2775    ) -> &'static crate::common::ClusterRegisterArray<
2776        crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW>,
2777        8,
2778        0x4,
2779    > {
2780        unsafe {
2781            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x142usize))
2782        }
2783    }
2784    #[inline(always)]
2785    pub const fn p500pfs_ha(
2786        &self,
2787    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2788        unsafe {
2789            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2790                self._svd2pac_as_ptr().add(0x142usize),
2791            )
2792        }
2793    }
2794    #[inline(always)]
2795    pub const fn p501pfs_ha(
2796        &self,
2797    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2798        unsafe {
2799            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2800                self._svd2pac_as_ptr().add(0x146usize),
2801            )
2802        }
2803    }
2804    #[inline(always)]
2805    pub const fn p502pfs_ha(
2806        &self,
2807    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2808        unsafe {
2809            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2810                self._svd2pac_as_ptr().add(0x14ausize),
2811            )
2812        }
2813    }
2814    #[inline(always)]
2815    pub const fn p503pfs_ha(
2816        &self,
2817    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2818        unsafe {
2819            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2820                self._svd2pac_as_ptr().add(0x14eusize),
2821            )
2822        }
2823    }
2824    #[inline(always)]
2825    pub const fn p504pfs_ha(
2826        &self,
2827    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2828        unsafe {
2829            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2830                self._svd2pac_as_ptr().add(0x152usize),
2831            )
2832        }
2833    }
2834    #[inline(always)]
2835    pub const fn p505pfs_ha(
2836        &self,
2837    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2838        unsafe {
2839            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2840                self._svd2pac_as_ptr().add(0x156usize),
2841            )
2842        }
2843    }
2844    #[inline(always)]
2845    pub const fn p506pfs_ha(
2846        &self,
2847    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2848        unsafe {
2849            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2850                self._svd2pac_as_ptr().add(0x15ausize),
2851            )
2852        }
2853    }
2854    #[inline(always)]
2855    pub const fn p507pfs_ha(
2856        &self,
2857    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2858        unsafe {
2859            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2860                self._svd2pac_as_ptr().add(0x15eusize),
2861            )
2862        }
2863    }
2864
2865    #[doc = "Port 50%s Pin Function Select Register"]
2866    #[inline(always)]
2867    pub const fn p50pfs_by(
2868        &self,
2869    ) -> &'static crate::common::ClusterRegisterArray<
2870        crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW>,
2871        8,
2872        0x4,
2873    > {
2874        unsafe {
2875            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x143usize))
2876        }
2877    }
2878    #[inline(always)]
2879    pub const fn p500pfs_by(
2880        &self,
2881    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2882        unsafe {
2883            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2884                self._svd2pac_as_ptr().add(0x143usize),
2885            )
2886        }
2887    }
2888    #[inline(always)]
2889    pub const fn p501pfs_by(
2890        &self,
2891    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2892        unsafe {
2893            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2894                self._svd2pac_as_ptr().add(0x147usize),
2895            )
2896        }
2897    }
2898    #[inline(always)]
2899    pub const fn p502pfs_by(
2900        &self,
2901    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2902        unsafe {
2903            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2904                self._svd2pac_as_ptr().add(0x14busize),
2905            )
2906        }
2907    }
2908    #[inline(always)]
2909    pub const fn p503pfs_by(
2910        &self,
2911    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2912        unsafe {
2913            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2914                self._svd2pac_as_ptr().add(0x14fusize),
2915            )
2916        }
2917    }
2918    #[inline(always)]
2919    pub const fn p504pfs_by(
2920        &self,
2921    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2922        unsafe {
2923            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2924                self._svd2pac_as_ptr().add(0x153usize),
2925            )
2926        }
2927    }
2928    #[inline(always)]
2929    pub const fn p505pfs_by(
2930        &self,
2931    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2932        unsafe {
2933            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2934                self._svd2pac_as_ptr().add(0x157usize),
2935            )
2936        }
2937    }
2938    #[inline(always)]
2939    pub const fn p506pfs_by(
2940        &self,
2941    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2942        unsafe {
2943            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2944                self._svd2pac_as_ptr().add(0x15busize),
2945            )
2946        }
2947    }
2948    #[inline(always)]
2949    pub const fn p507pfs_by(
2950        &self,
2951    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2952        unsafe {
2953            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2954                self._svd2pac_as_ptr().add(0x15fusize),
2955            )
2956        }
2957    }
2958
2959    #[doc = "Port 5%s Pin Function Select Register"]
2960    #[inline(always)]
2961    pub const fn p5pfs(
2962        &self,
2963    ) -> &'static crate::common::ClusterRegisterArray<
2964        crate::common::Reg<self::P5Pfs_SPEC, crate::common::RW>,
2965        2,
2966        0x4,
2967    > {
2968        unsafe {
2969            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x16cusize))
2970        }
2971    }
2972    #[inline(always)]
2973    pub const fn p511pfs(
2974        &self,
2975    ) -> &'static crate::common::Reg<self::P5Pfs_SPEC, crate::common::RW> {
2976        unsafe {
2977            crate::common::Reg::<self::P5Pfs_SPEC, crate::common::RW>::from_ptr(
2978                self._svd2pac_as_ptr().add(0x16cusize),
2979            )
2980        }
2981    }
2982    #[inline(always)]
2983    pub const fn p512pfs(
2984        &self,
2985    ) -> &'static crate::common::Reg<self::P5Pfs_SPEC, crate::common::RW> {
2986        unsafe {
2987            crate::common::Reg::<self::P5Pfs_SPEC, crate::common::RW>::from_ptr(
2988                self._svd2pac_as_ptr().add(0x170usize),
2989            )
2990        }
2991    }
2992
2993    #[doc = "Port 5%s Pin Function Select Register"]
2994    #[inline(always)]
2995    pub const fn p5pfs_ha(
2996        &self,
2997    ) -> &'static crate::common::ClusterRegisterArray<
2998        crate::common::Reg<self::P5PfsHa_SPEC, crate::common::RW>,
2999        2,
3000        0x4,
3001    > {
3002        unsafe {
3003            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x16eusize))
3004        }
3005    }
3006    #[inline(always)]
3007    pub const fn p511pfs_ha(
3008        &self,
3009    ) -> &'static crate::common::Reg<self::P5PfsHa_SPEC, crate::common::RW> {
3010        unsafe {
3011            crate::common::Reg::<self::P5PfsHa_SPEC, crate::common::RW>::from_ptr(
3012                self._svd2pac_as_ptr().add(0x16eusize),
3013            )
3014        }
3015    }
3016    #[inline(always)]
3017    pub const fn p512pfs_ha(
3018        &self,
3019    ) -> &'static crate::common::Reg<self::P5PfsHa_SPEC, crate::common::RW> {
3020        unsafe {
3021            crate::common::Reg::<self::P5PfsHa_SPEC, crate::common::RW>::from_ptr(
3022                self._svd2pac_as_ptr().add(0x172usize),
3023            )
3024        }
3025    }
3026
3027    #[doc = "Port 5%s Pin Function Select Register"]
3028    #[inline(always)]
3029    pub const fn p5pfs_by(
3030        &self,
3031    ) -> &'static crate::common::ClusterRegisterArray<
3032        crate::common::Reg<self::P5PfsBy_SPEC, crate::common::RW>,
3033        2,
3034        0x4,
3035    > {
3036        unsafe {
3037            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x16fusize))
3038        }
3039    }
3040    #[inline(always)]
3041    pub const fn p511pfs_by(
3042        &self,
3043    ) -> &'static crate::common::Reg<self::P5PfsBy_SPEC, crate::common::RW> {
3044        unsafe {
3045            crate::common::Reg::<self::P5PfsBy_SPEC, crate::common::RW>::from_ptr(
3046                self._svd2pac_as_ptr().add(0x16fusize),
3047            )
3048        }
3049    }
3050    #[inline(always)]
3051    pub const fn p512pfs_by(
3052        &self,
3053    ) -> &'static crate::common::Reg<self::P5PfsBy_SPEC, crate::common::RW> {
3054        unsafe {
3055            crate::common::Reg::<self::P5PfsBy_SPEC, crate::common::RW>::from_ptr(
3056                self._svd2pac_as_ptr().add(0x173usize),
3057            )
3058        }
3059    }
3060
3061    #[doc = "Port 60%s Pin Function Select Register"]
3062    #[inline(always)]
3063    pub const fn p60pfs(
3064        &self,
3065    ) -> &'static crate::common::ClusterRegisterArray<
3066        crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW>,
3067        2,
3068        0x4,
3069    > {
3070        unsafe {
3071            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a0usize))
3072        }
3073    }
3074    #[inline(always)]
3075    pub const fn p608pfs(
3076        &self,
3077    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
3078        unsafe {
3079            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
3080                self._svd2pac_as_ptr().add(0x1a0usize),
3081            )
3082        }
3083    }
3084    #[inline(always)]
3085    pub const fn p609pfs(
3086        &self,
3087    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
3088        unsafe {
3089            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
3090                self._svd2pac_as_ptr().add(0x1a4usize),
3091            )
3092        }
3093    }
3094
3095    #[doc = "Port 60%s Pin Function Select Register"]
3096    #[inline(always)]
3097    pub const fn p60pfs_ha(
3098        &self,
3099    ) -> &'static crate::common::ClusterRegisterArray<
3100        crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW>,
3101        2,
3102        0x4,
3103    > {
3104        unsafe {
3105            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a2usize))
3106        }
3107    }
3108    #[inline(always)]
3109    pub const fn p608pfs_ha(
3110        &self,
3111    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
3112        unsafe {
3113            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
3114                self._svd2pac_as_ptr().add(0x1a2usize),
3115            )
3116        }
3117    }
3118    #[inline(always)]
3119    pub const fn p609pfs_ha(
3120        &self,
3121    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
3122        unsafe {
3123            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
3124                self._svd2pac_as_ptr().add(0x1a6usize),
3125            )
3126        }
3127    }
3128
3129    #[doc = "Port 60%s Pin Function Select Register"]
3130    #[inline(always)]
3131    pub const fn p60pfs_by(
3132        &self,
3133    ) -> &'static crate::common::ClusterRegisterArray<
3134        crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW>,
3135        2,
3136        0x4,
3137    > {
3138        unsafe {
3139            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a3usize))
3140        }
3141    }
3142    #[inline(always)]
3143    pub const fn p608pfs_by(
3144        &self,
3145    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
3146        unsafe {
3147            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
3148                self._svd2pac_as_ptr().add(0x1a3usize),
3149            )
3150        }
3151    }
3152    #[inline(always)]
3153    pub const fn p609pfs_by(
3154        &self,
3155    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
3156        unsafe {
3157            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
3158                self._svd2pac_as_ptr().add(0x1a7usize),
3159            )
3160        }
3161    }
3162
3163    #[doc = "Port 6%s Pin Function Select Register"]
3164    #[inline(always)]
3165    pub const fn p6pfs(
3166        &self,
3167    ) -> &'static crate::common::ClusterRegisterArray<
3168        crate::common::Reg<self::P6Pfs_SPEC, crate::common::RW>,
3169        5,
3170        0x4,
3171    > {
3172        unsafe {
3173            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a8usize))
3174        }
3175    }
3176    #[inline(always)]
3177    pub const fn p610pfs(
3178        &self,
3179    ) -> &'static crate::common::Reg<self::P6Pfs_SPEC, crate::common::RW> {
3180        unsafe {
3181            crate::common::Reg::<self::P6Pfs_SPEC, crate::common::RW>::from_ptr(
3182                self._svd2pac_as_ptr().add(0x1a8usize),
3183            )
3184        }
3185    }
3186    #[inline(always)]
3187    pub const fn p611pfs(
3188        &self,
3189    ) -> &'static crate::common::Reg<self::P6Pfs_SPEC, crate::common::RW> {
3190        unsafe {
3191            crate::common::Reg::<self::P6Pfs_SPEC, crate::common::RW>::from_ptr(
3192                self._svd2pac_as_ptr().add(0x1acusize),
3193            )
3194        }
3195    }
3196    #[inline(always)]
3197    pub const fn p612pfs(
3198        &self,
3199    ) -> &'static crate::common::Reg<self::P6Pfs_SPEC, crate::common::RW> {
3200        unsafe {
3201            crate::common::Reg::<self::P6Pfs_SPEC, crate::common::RW>::from_ptr(
3202                self._svd2pac_as_ptr().add(0x1b0usize),
3203            )
3204        }
3205    }
3206    #[inline(always)]
3207    pub const fn p613pfs(
3208        &self,
3209    ) -> &'static crate::common::Reg<self::P6Pfs_SPEC, crate::common::RW> {
3210        unsafe {
3211            crate::common::Reg::<self::P6Pfs_SPEC, crate::common::RW>::from_ptr(
3212                self._svd2pac_as_ptr().add(0x1b4usize),
3213            )
3214        }
3215    }
3216    #[inline(always)]
3217    pub const fn p614pfs(
3218        &self,
3219    ) -> &'static crate::common::Reg<self::P6Pfs_SPEC, crate::common::RW> {
3220        unsafe {
3221            crate::common::Reg::<self::P6Pfs_SPEC, crate::common::RW>::from_ptr(
3222                self._svd2pac_as_ptr().add(0x1b8usize),
3223            )
3224        }
3225    }
3226
3227    #[doc = "Port 6%s Pin Function Select Register"]
3228    #[inline(always)]
3229    pub const fn p6pfs_ha(
3230        &self,
3231    ) -> &'static crate::common::ClusterRegisterArray<
3232        crate::common::Reg<self::P6PfsHa_SPEC, crate::common::RW>,
3233        5,
3234        0x4,
3235    > {
3236        unsafe {
3237            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1aausize))
3238        }
3239    }
3240    #[inline(always)]
3241    pub const fn p610pfs_ha(
3242        &self,
3243    ) -> &'static crate::common::Reg<self::P6PfsHa_SPEC, crate::common::RW> {
3244        unsafe {
3245            crate::common::Reg::<self::P6PfsHa_SPEC, crate::common::RW>::from_ptr(
3246                self._svd2pac_as_ptr().add(0x1aausize),
3247            )
3248        }
3249    }
3250    #[inline(always)]
3251    pub const fn p611pfs_ha(
3252        &self,
3253    ) -> &'static crate::common::Reg<self::P6PfsHa_SPEC, crate::common::RW> {
3254        unsafe {
3255            crate::common::Reg::<self::P6PfsHa_SPEC, crate::common::RW>::from_ptr(
3256                self._svd2pac_as_ptr().add(0x1aeusize),
3257            )
3258        }
3259    }
3260    #[inline(always)]
3261    pub const fn p612pfs_ha(
3262        &self,
3263    ) -> &'static crate::common::Reg<self::P6PfsHa_SPEC, crate::common::RW> {
3264        unsafe {
3265            crate::common::Reg::<self::P6PfsHa_SPEC, crate::common::RW>::from_ptr(
3266                self._svd2pac_as_ptr().add(0x1b2usize),
3267            )
3268        }
3269    }
3270    #[inline(always)]
3271    pub const fn p613pfs_ha(
3272        &self,
3273    ) -> &'static crate::common::Reg<self::P6PfsHa_SPEC, crate::common::RW> {
3274        unsafe {
3275            crate::common::Reg::<self::P6PfsHa_SPEC, crate::common::RW>::from_ptr(
3276                self._svd2pac_as_ptr().add(0x1b6usize),
3277            )
3278        }
3279    }
3280    #[inline(always)]
3281    pub const fn p614pfs_ha(
3282        &self,
3283    ) -> &'static crate::common::Reg<self::P6PfsHa_SPEC, crate::common::RW> {
3284        unsafe {
3285            crate::common::Reg::<self::P6PfsHa_SPEC, crate::common::RW>::from_ptr(
3286                self._svd2pac_as_ptr().add(0x1bausize),
3287            )
3288        }
3289    }
3290
3291    #[doc = "Port 6%s Pin Function Select Register"]
3292    #[inline(always)]
3293    pub const fn p6pfs_by(
3294        &self,
3295    ) -> &'static crate::common::ClusterRegisterArray<
3296        crate::common::Reg<self::P6PfsBy_SPEC, crate::common::RW>,
3297        5,
3298        0x4,
3299    > {
3300        unsafe {
3301            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1abusize))
3302        }
3303    }
3304    #[inline(always)]
3305    pub const fn p610pfs_by(
3306        &self,
3307    ) -> &'static crate::common::Reg<self::P6PfsBy_SPEC, crate::common::RW> {
3308        unsafe {
3309            crate::common::Reg::<self::P6PfsBy_SPEC, crate::common::RW>::from_ptr(
3310                self._svd2pac_as_ptr().add(0x1abusize),
3311            )
3312        }
3313    }
3314    #[inline(always)]
3315    pub const fn p611pfs_by(
3316        &self,
3317    ) -> &'static crate::common::Reg<self::P6PfsBy_SPEC, crate::common::RW> {
3318        unsafe {
3319            crate::common::Reg::<self::P6PfsBy_SPEC, crate::common::RW>::from_ptr(
3320                self._svd2pac_as_ptr().add(0x1afusize),
3321            )
3322        }
3323    }
3324    #[inline(always)]
3325    pub const fn p612pfs_by(
3326        &self,
3327    ) -> &'static crate::common::Reg<self::P6PfsBy_SPEC, crate::common::RW> {
3328        unsafe {
3329            crate::common::Reg::<self::P6PfsBy_SPEC, crate::common::RW>::from_ptr(
3330                self._svd2pac_as_ptr().add(0x1b3usize),
3331            )
3332        }
3333    }
3334    #[inline(always)]
3335    pub const fn p613pfs_by(
3336        &self,
3337    ) -> &'static crate::common::Reg<self::P6PfsBy_SPEC, crate::common::RW> {
3338        unsafe {
3339            crate::common::Reg::<self::P6PfsBy_SPEC, crate::common::RW>::from_ptr(
3340                self._svd2pac_as_ptr().add(0x1b7usize),
3341            )
3342        }
3343    }
3344    #[inline(always)]
3345    pub const fn p614pfs_by(
3346        &self,
3347    ) -> &'static crate::common::Reg<self::P6PfsBy_SPEC, crate::common::RW> {
3348        unsafe {
3349            crate::common::Reg::<self::P6PfsBy_SPEC, crate::common::RW>::from_ptr(
3350                self._svd2pac_as_ptr().add(0x1bbusize),
3351            )
3352        }
3353    }
3354
3355    #[doc = "Port 70%s Pin Function Select Register"]
3356    #[inline(always)]
3357    pub const fn p70pfs(
3358        &self,
3359    ) -> &'static crate::common::ClusterRegisterArray<
3360        crate::common::Reg<self::P70Pfs_SPEC, crate::common::RW>,
3361        2,
3362        0x4,
3363    > {
3364        unsafe {
3365            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1e0usize))
3366        }
3367    }
3368    #[inline(always)]
3369    pub const fn p708pfs(
3370        &self,
3371    ) -> &'static crate::common::Reg<self::P70Pfs_SPEC, crate::common::RW> {
3372        unsafe {
3373            crate::common::Reg::<self::P70Pfs_SPEC, crate::common::RW>::from_ptr(
3374                self._svd2pac_as_ptr().add(0x1e0usize),
3375            )
3376        }
3377    }
3378    #[inline(always)]
3379    pub const fn p709pfs(
3380        &self,
3381    ) -> &'static crate::common::Reg<self::P70Pfs_SPEC, crate::common::RW> {
3382        unsafe {
3383            crate::common::Reg::<self::P70Pfs_SPEC, crate::common::RW>::from_ptr(
3384                self._svd2pac_as_ptr().add(0x1e4usize),
3385            )
3386        }
3387    }
3388
3389    #[doc = "Port 70%s Pin Function Select Register"]
3390    #[inline(always)]
3391    pub const fn p70pfs_ha(
3392        &self,
3393    ) -> &'static crate::common::ClusterRegisterArray<
3394        crate::common::Reg<self::P70PfsHa_SPEC, crate::common::RW>,
3395        2,
3396        0x4,
3397    > {
3398        unsafe {
3399            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1e2usize))
3400        }
3401    }
3402    #[inline(always)]
3403    pub const fn p708pfs_ha(
3404        &self,
3405    ) -> &'static crate::common::Reg<self::P70PfsHa_SPEC, crate::common::RW> {
3406        unsafe {
3407            crate::common::Reg::<self::P70PfsHa_SPEC, crate::common::RW>::from_ptr(
3408                self._svd2pac_as_ptr().add(0x1e2usize),
3409            )
3410        }
3411    }
3412    #[inline(always)]
3413    pub const fn p709pfs_ha(
3414        &self,
3415    ) -> &'static crate::common::Reg<self::P70PfsHa_SPEC, crate::common::RW> {
3416        unsafe {
3417            crate::common::Reg::<self::P70PfsHa_SPEC, crate::common::RW>::from_ptr(
3418                self._svd2pac_as_ptr().add(0x1e6usize),
3419            )
3420        }
3421    }
3422
3423    #[doc = "Port 70%s Pin Function Select Register"]
3424    #[inline(always)]
3425    pub const fn p70pfs_by(
3426        &self,
3427    ) -> &'static crate::common::ClusterRegisterArray<
3428        crate::common::Reg<self::P70PfsBy_SPEC, crate::common::RW>,
3429        2,
3430        0x4,
3431    > {
3432        unsafe {
3433            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1e3usize))
3434        }
3435    }
3436    #[inline(always)]
3437    pub const fn p708pfs_by(
3438        &self,
3439    ) -> &'static crate::common::Reg<self::P70PfsBy_SPEC, crate::common::RW> {
3440        unsafe {
3441            crate::common::Reg::<self::P70PfsBy_SPEC, crate::common::RW>::from_ptr(
3442                self._svd2pac_as_ptr().add(0x1e3usize),
3443            )
3444        }
3445    }
3446    #[inline(always)]
3447    pub const fn p709pfs_by(
3448        &self,
3449    ) -> &'static crate::common::Reg<self::P70PfsBy_SPEC, crate::common::RW> {
3450        unsafe {
3451            crate::common::Reg::<self::P70PfsBy_SPEC, crate::common::RW>::from_ptr(
3452                self._svd2pac_as_ptr().add(0x1e7usize),
3453            )
3454        }
3455    }
3456
3457    #[doc = "Port 7%s Pin Function Select Register"]
3458    #[inline(always)]
3459    pub const fn p7pfs(
3460        &self,
3461    ) -> &'static crate::common::ClusterRegisterArray<
3462        crate::common::Reg<self::P7Pfs_SPEC, crate::common::RW>,
3463        4,
3464        0x4,
3465    > {
3466        unsafe {
3467            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1e8usize))
3468        }
3469    }
3470    #[inline(always)]
3471    pub const fn p710pfs(
3472        &self,
3473    ) -> &'static crate::common::Reg<self::P7Pfs_SPEC, crate::common::RW> {
3474        unsafe {
3475            crate::common::Reg::<self::P7Pfs_SPEC, crate::common::RW>::from_ptr(
3476                self._svd2pac_as_ptr().add(0x1e8usize),
3477            )
3478        }
3479    }
3480    #[inline(always)]
3481    pub const fn p711pfs(
3482        &self,
3483    ) -> &'static crate::common::Reg<self::P7Pfs_SPEC, crate::common::RW> {
3484        unsafe {
3485            crate::common::Reg::<self::P7Pfs_SPEC, crate::common::RW>::from_ptr(
3486                self._svd2pac_as_ptr().add(0x1ecusize),
3487            )
3488        }
3489    }
3490    #[inline(always)]
3491    pub const fn p712pfs(
3492        &self,
3493    ) -> &'static crate::common::Reg<self::P7Pfs_SPEC, crate::common::RW> {
3494        unsafe {
3495            crate::common::Reg::<self::P7Pfs_SPEC, crate::common::RW>::from_ptr(
3496                self._svd2pac_as_ptr().add(0x1f0usize),
3497            )
3498        }
3499    }
3500    #[inline(always)]
3501    pub const fn p713pfs(
3502        &self,
3503    ) -> &'static crate::common::Reg<self::P7Pfs_SPEC, crate::common::RW> {
3504        unsafe {
3505            crate::common::Reg::<self::P7Pfs_SPEC, crate::common::RW>::from_ptr(
3506                self._svd2pac_as_ptr().add(0x1f4usize),
3507            )
3508        }
3509    }
3510
3511    #[doc = "Port 7%s Pin Function Select Register"]
3512    #[inline(always)]
3513    pub const fn p7pfs_ha(
3514        &self,
3515    ) -> &'static crate::common::ClusterRegisterArray<
3516        crate::common::Reg<self::P7PfsHa_SPEC, crate::common::RW>,
3517        4,
3518        0x4,
3519    > {
3520        unsafe {
3521            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1eausize))
3522        }
3523    }
3524    #[inline(always)]
3525    pub const fn p710pfs_ha(
3526        &self,
3527    ) -> &'static crate::common::Reg<self::P7PfsHa_SPEC, crate::common::RW> {
3528        unsafe {
3529            crate::common::Reg::<self::P7PfsHa_SPEC, crate::common::RW>::from_ptr(
3530                self._svd2pac_as_ptr().add(0x1eausize),
3531            )
3532        }
3533    }
3534    #[inline(always)]
3535    pub const fn p711pfs_ha(
3536        &self,
3537    ) -> &'static crate::common::Reg<self::P7PfsHa_SPEC, crate::common::RW> {
3538        unsafe {
3539            crate::common::Reg::<self::P7PfsHa_SPEC, crate::common::RW>::from_ptr(
3540                self._svd2pac_as_ptr().add(0x1eeusize),
3541            )
3542        }
3543    }
3544    #[inline(always)]
3545    pub const fn p712pfs_ha(
3546        &self,
3547    ) -> &'static crate::common::Reg<self::P7PfsHa_SPEC, crate::common::RW> {
3548        unsafe {
3549            crate::common::Reg::<self::P7PfsHa_SPEC, crate::common::RW>::from_ptr(
3550                self._svd2pac_as_ptr().add(0x1f2usize),
3551            )
3552        }
3553    }
3554    #[inline(always)]
3555    pub const fn p713pfs_ha(
3556        &self,
3557    ) -> &'static crate::common::Reg<self::P7PfsHa_SPEC, crate::common::RW> {
3558        unsafe {
3559            crate::common::Reg::<self::P7PfsHa_SPEC, crate::common::RW>::from_ptr(
3560                self._svd2pac_as_ptr().add(0x1f6usize),
3561            )
3562        }
3563    }
3564
3565    #[doc = "Port 7%s Pin Function Select Register"]
3566    #[inline(always)]
3567    pub const fn p7pfs_by(
3568        &self,
3569    ) -> &'static crate::common::ClusterRegisterArray<
3570        crate::common::Reg<self::P7PfsBy_SPEC, crate::common::RW>,
3571        4,
3572        0x4,
3573    > {
3574        unsafe {
3575            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1ebusize))
3576        }
3577    }
3578    #[inline(always)]
3579    pub const fn p710pfs_by(
3580        &self,
3581    ) -> &'static crate::common::Reg<self::P7PfsBy_SPEC, crate::common::RW> {
3582        unsafe {
3583            crate::common::Reg::<self::P7PfsBy_SPEC, crate::common::RW>::from_ptr(
3584                self._svd2pac_as_ptr().add(0x1ebusize),
3585            )
3586        }
3587    }
3588    #[inline(always)]
3589    pub const fn p711pfs_by(
3590        &self,
3591    ) -> &'static crate::common::Reg<self::P7PfsBy_SPEC, crate::common::RW> {
3592        unsafe {
3593            crate::common::Reg::<self::P7PfsBy_SPEC, crate::common::RW>::from_ptr(
3594                self._svd2pac_as_ptr().add(0x1efusize),
3595            )
3596        }
3597    }
3598    #[inline(always)]
3599    pub const fn p712pfs_by(
3600        &self,
3601    ) -> &'static crate::common::Reg<self::P7PfsBy_SPEC, crate::common::RW> {
3602        unsafe {
3603            crate::common::Reg::<self::P7PfsBy_SPEC, crate::common::RW>::from_ptr(
3604                self._svd2pac_as_ptr().add(0x1f3usize),
3605            )
3606        }
3607    }
3608    #[inline(always)]
3609    pub const fn p713pfs_by(
3610        &self,
3611    ) -> &'static crate::common::Reg<self::P7PfsBy_SPEC, crate::common::RW> {
3612        unsafe {
3613            crate::common::Reg::<self::P7PfsBy_SPEC, crate::common::RW>::from_ptr(
3614                self._svd2pac_as_ptr().add(0x1f7usize),
3615            )
3616        }
3617    }
3618
3619    #[doc = "Port 80%s Pin Function Select Register"]
3620    #[inline(always)]
3621    pub const fn p80pfs(
3622        &self,
3623    ) -> &'static crate::common::ClusterRegisterArray<
3624        crate::common::Reg<self::P80Pfs_SPEC, crate::common::RW>,
3625        2,
3626        0x4,
3627    > {
3628        unsafe {
3629            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x200usize))
3630        }
3631    }
3632    #[inline(always)]
3633    pub const fn p800pfs(
3634        &self,
3635    ) -> &'static crate::common::Reg<self::P80Pfs_SPEC, crate::common::RW> {
3636        unsafe {
3637            crate::common::Reg::<self::P80Pfs_SPEC, crate::common::RW>::from_ptr(
3638                self._svd2pac_as_ptr().add(0x200usize),
3639            )
3640        }
3641    }
3642    #[inline(always)]
3643    pub const fn p801pfs(
3644        &self,
3645    ) -> &'static crate::common::Reg<self::P80Pfs_SPEC, crate::common::RW> {
3646        unsafe {
3647            crate::common::Reg::<self::P80Pfs_SPEC, crate::common::RW>::from_ptr(
3648                self._svd2pac_as_ptr().add(0x204usize),
3649            )
3650        }
3651    }
3652
3653    #[doc = "Port 80%s Pin Function Select Register"]
3654    #[inline(always)]
3655    pub const fn p80pfs_ha(
3656        &self,
3657    ) -> &'static crate::common::ClusterRegisterArray<
3658        crate::common::Reg<self::P80PfsHa_SPEC, crate::common::RW>,
3659        2,
3660        0x4,
3661    > {
3662        unsafe {
3663            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x202usize))
3664        }
3665    }
3666    #[inline(always)]
3667    pub const fn p800pfs_ha(
3668        &self,
3669    ) -> &'static crate::common::Reg<self::P80PfsHa_SPEC, crate::common::RW> {
3670        unsafe {
3671            crate::common::Reg::<self::P80PfsHa_SPEC, crate::common::RW>::from_ptr(
3672                self._svd2pac_as_ptr().add(0x202usize),
3673            )
3674        }
3675    }
3676    #[inline(always)]
3677    pub const fn p801pfs_ha(
3678        &self,
3679    ) -> &'static crate::common::Reg<self::P80PfsHa_SPEC, crate::common::RW> {
3680        unsafe {
3681            crate::common::Reg::<self::P80PfsHa_SPEC, crate::common::RW>::from_ptr(
3682                self._svd2pac_as_ptr().add(0x206usize),
3683            )
3684        }
3685    }
3686
3687    #[doc = "Port 80%s Pin Function Select Register"]
3688    #[inline(always)]
3689    pub const fn p80pfs_by(
3690        &self,
3691    ) -> &'static crate::common::ClusterRegisterArray<
3692        crate::common::Reg<self::P80PfsBy_SPEC, crate::common::RW>,
3693        2,
3694        0x4,
3695    > {
3696        unsafe {
3697            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x203usize))
3698        }
3699    }
3700    #[inline(always)]
3701    pub const fn p800pfs_by(
3702        &self,
3703    ) -> &'static crate::common::Reg<self::P80PfsBy_SPEC, crate::common::RW> {
3704        unsafe {
3705            crate::common::Reg::<self::P80PfsBy_SPEC, crate::common::RW>::from_ptr(
3706                self._svd2pac_as_ptr().add(0x203usize),
3707            )
3708        }
3709    }
3710    #[inline(always)]
3711    pub const fn p801pfs_by(
3712        &self,
3713    ) -> &'static crate::common::Reg<self::P80PfsBy_SPEC, crate::common::RW> {
3714        unsafe {
3715            crate::common::Reg::<self::P80PfsBy_SPEC, crate::common::RW>::from_ptr(
3716                self._svd2pac_as_ptr().add(0x207usize),
3717            )
3718        }
3719    }
3720
3721    #[doc = "Write-Protect Register"]
3722    #[inline(always)]
3723    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
3724        unsafe {
3725            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
3726                self._svd2pac_as_ptr().add(1283usize),
3727            )
3728        }
3729    }
3730
3731    #[doc = "Write-Protect Register for Secure"]
3732    #[inline(always)]
3733    pub const fn pwprs(&self) -> &'static crate::common::Reg<self::Pwprs_SPEC, crate::common::RW> {
3734        unsafe {
3735            crate::common::Reg::<self::Pwprs_SPEC, crate::common::RW>::from_ptr(
3736                self._svd2pac_as_ptr().add(1285usize),
3737            )
3738        }
3739    }
3740
3741    #[doc = "Port Security Attribution register"]
3742    #[inline(always)]
3743    pub const fn psar(
3744        &self,
3745    ) -> &'static crate::common::ClusterRegisterArray<
3746        crate::common::Reg<self::Psar_SPEC, crate::common::RW>,
3747        9,
3748        0x2,
3749    > {
3750        unsafe {
3751            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x510usize))
3752        }
3753    }
3754    #[inline(always)]
3755    pub const fn p0sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3756        unsafe {
3757            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3758                self._svd2pac_as_ptr().add(0x510usize),
3759            )
3760        }
3761    }
3762    #[inline(always)]
3763    pub const fn p1sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3764        unsafe {
3765            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3766                self._svd2pac_as_ptr().add(0x512usize),
3767            )
3768        }
3769    }
3770    #[inline(always)]
3771    pub const fn p2sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3772        unsafe {
3773            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3774                self._svd2pac_as_ptr().add(0x514usize),
3775            )
3776        }
3777    }
3778    #[inline(always)]
3779    pub const fn p3sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3780        unsafe {
3781            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3782                self._svd2pac_as_ptr().add(0x516usize),
3783            )
3784        }
3785    }
3786    #[inline(always)]
3787    pub const fn p4sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3788        unsafe {
3789            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3790                self._svd2pac_as_ptr().add(0x518usize),
3791            )
3792        }
3793    }
3794    #[inline(always)]
3795    pub const fn p5sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3796        unsafe {
3797            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3798                self._svd2pac_as_ptr().add(0x51ausize),
3799            )
3800        }
3801    }
3802    #[inline(always)]
3803    pub const fn p6sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3804        unsafe {
3805            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3806                self._svd2pac_as_ptr().add(0x51cusize),
3807            )
3808        }
3809    }
3810    #[inline(always)]
3811    pub const fn p7sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3812        unsafe {
3813            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3814                self._svd2pac_as_ptr().add(0x51eusize),
3815            )
3816        }
3817    }
3818    #[inline(always)]
3819    pub const fn p8sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
3820        unsafe {
3821            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
3822                self._svd2pac_as_ptr().add(0x520usize),
3823            )
3824        }
3825    }
3826}
3827#[doc(hidden)]
3828#[derive(Copy, Clone, Eq, PartialEq)]
3829pub struct P00Pfs_SPEC;
3830impl crate::sealed::RegSpec for P00Pfs_SPEC {
3831    type DataType = u32;
3832}
3833
3834#[doc = "Port 00%s Pin Function Select Register"]
3835pub type P00Pfs = crate::RegValueT<P00Pfs_SPEC>;
3836
3837impl P00Pfs {
3838    #[doc = "Port Output Data"]
3839    #[inline(always)]
3840    pub fn podr(
3841        self,
3842    ) -> crate::common::RegisterField<
3843        0,
3844        0x1,
3845        1,
3846        0,
3847        p00pfs::Podr,
3848        p00pfs::Podr,
3849        P00Pfs_SPEC,
3850        crate::common::RW,
3851    > {
3852        crate::common::RegisterField::<
3853            0,
3854            0x1,
3855            1,
3856            0,
3857            p00pfs::Podr,
3858            p00pfs::Podr,
3859            P00Pfs_SPEC,
3860            crate::common::RW,
3861        >::from_register(self, 0)
3862    }
3863
3864    #[doc = "Port State"]
3865    #[inline(always)]
3866    pub fn pidr(
3867        self,
3868    ) -> crate::common::RegisterField<
3869        1,
3870        0x1,
3871        1,
3872        0,
3873        p00pfs::Pidr,
3874        p00pfs::Pidr,
3875        P00Pfs_SPEC,
3876        crate::common::R,
3877    > {
3878        crate::common::RegisterField::<
3879            1,
3880            0x1,
3881            1,
3882            0,
3883            p00pfs::Pidr,
3884            p00pfs::Pidr,
3885            P00Pfs_SPEC,
3886            crate::common::R,
3887        >::from_register(self, 0)
3888    }
3889
3890    #[doc = "Port Direction"]
3891    #[inline(always)]
3892    pub fn pdr(
3893        self,
3894    ) -> crate::common::RegisterField<
3895        2,
3896        0x1,
3897        1,
3898        0,
3899        p00pfs::Pdr,
3900        p00pfs::Pdr,
3901        P00Pfs_SPEC,
3902        crate::common::RW,
3903    > {
3904        crate::common::RegisterField::<
3905            2,
3906            0x1,
3907            1,
3908            0,
3909            p00pfs::Pdr,
3910            p00pfs::Pdr,
3911            P00Pfs_SPEC,
3912            crate::common::RW,
3913        >::from_register(self, 0)
3914    }
3915
3916    #[doc = "Pull-up Control"]
3917    #[inline(always)]
3918    pub fn pcr(
3919        self,
3920    ) -> crate::common::RegisterField<
3921        4,
3922        0x1,
3923        1,
3924        0,
3925        p00pfs::Pcr,
3926        p00pfs::Pcr,
3927        P00Pfs_SPEC,
3928        crate::common::RW,
3929    > {
3930        crate::common::RegisterField::<
3931            4,
3932            0x1,
3933            1,
3934            0,
3935            p00pfs::Pcr,
3936            p00pfs::Pcr,
3937            P00Pfs_SPEC,
3938            crate::common::RW,
3939        >::from_register(self, 0)
3940    }
3941
3942    #[doc = "N-Channel Open-Drain Control"]
3943    #[inline(always)]
3944    pub fn ncodr(
3945        self,
3946    ) -> crate::common::RegisterField<
3947        6,
3948        0x1,
3949        1,
3950        0,
3951        p00pfs::Ncodr,
3952        p00pfs::Ncodr,
3953        P00Pfs_SPEC,
3954        crate::common::RW,
3955    > {
3956        crate::common::RegisterField::<
3957            6,
3958            0x1,
3959            1,
3960            0,
3961            p00pfs::Ncodr,
3962            p00pfs::Ncodr,
3963            P00Pfs_SPEC,
3964            crate::common::RW,
3965        >::from_register(self, 0)
3966    }
3967
3968    #[doc = "IRQ Input Enable"]
3969    #[inline(always)]
3970    pub fn isel(
3971        self,
3972    ) -> crate::common::RegisterField<
3973        14,
3974        0x1,
3975        1,
3976        0,
3977        p00pfs::Isel,
3978        p00pfs::Isel,
3979        P00Pfs_SPEC,
3980        crate::common::RW,
3981    > {
3982        crate::common::RegisterField::<
3983            14,
3984            0x1,
3985            1,
3986            0,
3987            p00pfs::Isel,
3988            p00pfs::Isel,
3989            P00Pfs_SPEC,
3990            crate::common::RW,
3991        >::from_register(self, 0)
3992    }
3993
3994    #[doc = "Analog Input Enable"]
3995    #[inline(always)]
3996    pub fn asel(
3997        self,
3998    ) -> crate::common::RegisterField<
3999        15,
4000        0x1,
4001        1,
4002        0,
4003        p00pfs::Asel,
4004        p00pfs::Asel,
4005        P00Pfs_SPEC,
4006        crate::common::RW,
4007    > {
4008        crate::common::RegisterField::<
4009            15,
4010            0x1,
4011            1,
4012            0,
4013            p00pfs::Asel,
4014            p00pfs::Asel,
4015            P00Pfs_SPEC,
4016            crate::common::RW,
4017        >::from_register(self, 0)
4018    }
4019
4020    #[doc = "Port Mode Control"]
4021    #[inline(always)]
4022    pub fn pmr(
4023        self,
4024    ) -> crate::common::RegisterField<
4025        16,
4026        0x1,
4027        1,
4028        0,
4029        p00pfs::Pmr,
4030        p00pfs::Pmr,
4031        P00Pfs_SPEC,
4032        crate::common::RW,
4033    > {
4034        crate::common::RegisterField::<
4035            16,
4036            0x1,
4037            1,
4038            0,
4039            p00pfs::Pmr,
4040            p00pfs::Pmr,
4041            P00Pfs_SPEC,
4042            crate::common::RW,
4043        >::from_register(self, 0)
4044    }
4045
4046    #[doc = "Peripheral Select"]
4047    #[inline(always)]
4048    pub fn psel(
4049        self,
4050    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P00Pfs_SPEC, crate::common::RW> {
4051        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P00Pfs_SPEC,crate::common::RW>::from_register(self,0)
4052    }
4053}
4054impl ::core::default::Default for P00Pfs {
4055    #[inline(always)]
4056    fn default() -> P00Pfs {
4057        <crate::RegValueT<P00Pfs_SPEC> as RegisterValue<_>>::new(0)
4058    }
4059}
4060pub mod p00pfs {
4061
4062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4063    pub struct Podr_SPEC;
4064    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4065    impl Podr {
4066        #[doc = "Output low"]
4067        pub const _0: Self = Self::new(0);
4068
4069        #[doc = "Output high"]
4070        pub const _1: Self = Self::new(1);
4071    }
4072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4073    pub struct Pidr_SPEC;
4074    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4075    impl Pidr {
4076        #[doc = "Low level"]
4077        pub const _0: Self = Self::new(0);
4078
4079        #[doc = "High level"]
4080        pub const _1: Self = Self::new(1);
4081    }
4082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4083    pub struct Pdr_SPEC;
4084    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4085    impl Pdr {
4086        #[doc = "Input (functions as an input pin)"]
4087        pub const _0: Self = Self::new(0);
4088
4089        #[doc = "Output (functions as an output pin)"]
4090        pub const _1: Self = Self::new(1);
4091    }
4092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4093    pub struct Pcr_SPEC;
4094    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4095    impl Pcr {
4096        #[doc = "Disable input pull-up"]
4097        pub const _0: Self = Self::new(0);
4098
4099        #[doc = "Enable input pull-up"]
4100        pub const _1: Self = Self::new(1);
4101    }
4102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4103    pub struct Ncodr_SPEC;
4104    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4105    impl Ncodr {
4106        #[doc = "Output CMOS"]
4107        pub const _0: Self = Self::new(0);
4108
4109        #[doc = "Output NMOS open-drain"]
4110        pub const _1: Self = Self::new(1);
4111    }
4112    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4113    pub struct Isel_SPEC;
4114    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4115    impl Isel {
4116        #[doc = "Do not use as IRQn input pin"]
4117        pub const _0: Self = Self::new(0);
4118
4119        #[doc = "Use as IRQn input pin"]
4120        pub const _1: Self = Self::new(1);
4121    }
4122    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4123    pub struct Asel_SPEC;
4124    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4125    impl Asel {
4126        #[doc = "Do not use as analog pin"]
4127        pub const _0: Self = Self::new(0);
4128
4129        #[doc = "Use as analog pin"]
4130        pub const _1: Self = Self::new(1);
4131    }
4132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4133    pub struct Pmr_SPEC;
4134    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4135    impl Pmr {
4136        #[doc = "Use as general I/O pin"]
4137        pub const _0: Self = Self::new(0);
4138
4139        #[doc = "Use as I/O port for peripheral functions"]
4140        pub const _1: Self = Self::new(1);
4141    }
4142}
4143#[doc(hidden)]
4144#[derive(Copy, Clone, Eq, PartialEq)]
4145pub struct P00PfsHa_SPEC;
4146impl crate::sealed::RegSpec for P00PfsHa_SPEC {
4147    type DataType = u16;
4148}
4149
4150#[doc = "Port 00%s Pin Function Select Register"]
4151pub type P00PfsHa = crate::RegValueT<P00PfsHa_SPEC>;
4152
4153impl P00PfsHa {
4154    #[doc = "Port Output Data"]
4155    #[inline(always)]
4156    pub fn podr(
4157        self,
4158    ) -> crate::common::RegisterField<
4159        0,
4160        0x1,
4161        1,
4162        0,
4163        p00pfs_ha::Podr,
4164        p00pfs_ha::Podr,
4165        P00PfsHa_SPEC,
4166        crate::common::RW,
4167    > {
4168        crate::common::RegisterField::<
4169            0,
4170            0x1,
4171            1,
4172            0,
4173            p00pfs_ha::Podr,
4174            p00pfs_ha::Podr,
4175            P00PfsHa_SPEC,
4176            crate::common::RW,
4177        >::from_register(self, 0)
4178    }
4179
4180    #[doc = "Port State"]
4181    #[inline(always)]
4182    pub fn pidr(
4183        self,
4184    ) -> crate::common::RegisterField<
4185        1,
4186        0x1,
4187        1,
4188        0,
4189        p00pfs_ha::Pidr,
4190        p00pfs_ha::Pidr,
4191        P00PfsHa_SPEC,
4192        crate::common::R,
4193    > {
4194        crate::common::RegisterField::<
4195            1,
4196            0x1,
4197            1,
4198            0,
4199            p00pfs_ha::Pidr,
4200            p00pfs_ha::Pidr,
4201            P00PfsHa_SPEC,
4202            crate::common::R,
4203        >::from_register(self, 0)
4204    }
4205
4206    #[doc = "Port Direction"]
4207    #[inline(always)]
4208    pub fn pdr(
4209        self,
4210    ) -> crate::common::RegisterField<
4211        2,
4212        0x1,
4213        1,
4214        0,
4215        p00pfs_ha::Pdr,
4216        p00pfs_ha::Pdr,
4217        P00PfsHa_SPEC,
4218        crate::common::RW,
4219    > {
4220        crate::common::RegisterField::<
4221            2,
4222            0x1,
4223            1,
4224            0,
4225            p00pfs_ha::Pdr,
4226            p00pfs_ha::Pdr,
4227            P00PfsHa_SPEC,
4228            crate::common::RW,
4229        >::from_register(self, 0)
4230    }
4231
4232    #[doc = "Pull-up Control"]
4233    #[inline(always)]
4234    pub fn pcr(
4235        self,
4236    ) -> crate::common::RegisterField<
4237        4,
4238        0x1,
4239        1,
4240        0,
4241        p00pfs_ha::Pcr,
4242        p00pfs_ha::Pcr,
4243        P00PfsHa_SPEC,
4244        crate::common::RW,
4245    > {
4246        crate::common::RegisterField::<
4247            4,
4248            0x1,
4249            1,
4250            0,
4251            p00pfs_ha::Pcr,
4252            p00pfs_ha::Pcr,
4253            P00PfsHa_SPEC,
4254            crate::common::RW,
4255        >::from_register(self, 0)
4256    }
4257
4258    #[doc = "N-Channel Open-Drain Control"]
4259    #[inline(always)]
4260    pub fn ncodr(
4261        self,
4262    ) -> crate::common::RegisterField<
4263        6,
4264        0x1,
4265        1,
4266        0,
4267        p00pfs_ha::Ncodr,
4268        p00pfs_ha::Ncodr,
4269        P00PfsHa_SPEC,
4270        crate::common::RW,
4271    > {
4272        crate::common::RegisterField::<
4273            6,
4274            0x1,
4275            1,
4276            0,
4277            p00pfs_ha::Ncodr,
4278            p00pfs_ha::Ncodr,
4279            P00PfsHa_SPEC,
4280            crate::common::RW,
4281        >::from_register(self, 0)
4282    }
4283
4284    #[doc = "IRQ Input Enable"]
4285    #[inline(always)]
4286    pub fn isel(
4287        self,
4288    ) -> crate::common::RegisterField<
4289        14,
4290        0x1,
4291        1,
4292        0,
4293        p00pfs_ha::Isel,
4294        p00pfs_ha::Isel,
4295        P00PfsHa_SPEC,
4296        crate::common::RW,
4297    > {
4298        crate::common::RegisterField::<
4299            14,
4300            0x1,
4301            1,
4302            0,
4303            p00pfs_ha::Isel,
4304            p00pfs_ha::Isel,
4305            P00PfsHa_SPEC,
4306            crate::common::RW,
4307        >::from_register(self, 0)
4308    }
4309
4310    #[doc = "Analog Input Enable"]
4311    #[inline(always)]
4312    pub fn asel(
4313        self,
4314    ) -> crate::common::RegisterField<
4315        15,
4316        0x1,
4317        1,
4318        0,
4319        p00pfs_ha::Asel,
4320        p00pfs_ha::Asel,
4321        P00PfsHa_SPEC,
4322        crate::common::RW,
4323    > {
4324        crate::common::RegisterField::<
4325            15,
4326            0x1,
4327            1,
4328            0,
4329            p00pfs_ha::Asel,
4330            p00pfs_ha::Asel,
4331            P00PfsHa_SPEC,
4332            crate::common::RW,
4333        >::from_register(self, 0)
4334    }
4335}
4336impl ::core::default::Default for P00PfsHa {
4337    #[inline(always)]
4338    fn default() -> P00PfsHa {
4339        <crate::RegValueT<P00PfsHa_SPEC> as RegisterValue<_>>::new(0)
4340    }
4341}
4342pub mod p00pfs_ha {
4343
4344    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4345    pub struct Podr_SPEC;
4346    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4347    impl Podr {
4348        #[doc = "Output low"]
4349        pub const _0: Self = Self::new(0);
4350
4351        #[doc = "Output high"]
4352        pub const _1: Self = Self::new(1);
4353    }
4354    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4355    pub struct Pidr_SPEC;
4356    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4357    impl Pidr {
4358        #[doc = "Low level"]
4359        pub const _0: Self = Self::new(0);
4360
4361        #[doc = "High level"]
4362        pub const _1: Self = Self::new(1);
4363    }
4364    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4365    pub struct Pdr_SPEC;
4366    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4367    impl Pdr {
4368        #[doc = "Input (functions as an input pin)"]
4369        pub const _0: Self = Self::new(0);
4370
4371        #[doc = "Output (functions as an output pin)"]
4372        pub const _1: Self = Self::new(1);
4373    }
4374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4375    pub struct Pcr_SPEC;
4376    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4377    impl Pcr {
4378        #[doc = "Disable input pull-up"]
4379        pub const _0: Self = Self::new(0);
4380
4381        #[doc = "Enable input pull-up"]
4382        pub const _1: Self = Self::new(1);
4383    }
4384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4385    pub struct Ncodr_SPEC;
4386    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4387    impl Ncodr {
4388        #[doc = "Output CMOS"]
4389        pub const _0: Self = Self::new(0);
4390
4391        #[doc = "Output NMOS open-drain"]
4392        pub const _1: Self = Self::new(1);
4393    }
4394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4395    pub struct Isel_SPEC;
4396    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4397    impl Isel {
4398        #[doc = "Do not use as IRQn input pin"]
4399        pub const _0: Self = Self::new(0);
4400
4401        #[doc = "Use as IRQn input pin"]
4402        pub const _1: Self = Self::new(1);
4403    }
4404    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4405    pub struct Asel_SPEC;
4406    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4407    impl Asel {
4408        #[doc = "Do not use as analog pin"]
4409        pub const _0: Self = Self::new(0);
4410
4411        #[doc = "Use as analog pin"]
4412        pub const _1: Self = Self::new(1);
4413    }
4414}
4415#[doc(hidden)]
4416#[derive(Copy, Clone, Eq, PartialEq)]
4417pub struct P00PfsBy_SPEC;
4418impl crate::sealed::RegSpec for P00PfsBy_SPEC {
4419    type DataType = u8;
4420}
4421
4422#[doc = "Port 00%s Pin Function Select Register"]
4423pub type P00PfsBy = crate::RegValueT<P00PfsBy_SPEC>;
4424
4425impl P00PfsBy {
4426    #[doc = "Port Output Data"]
4427    #[inline(always)]
4428    pub fn podr(
4429        self,
4430    ) -> crate::common::RegisterField<
4431        0,
4432        0x1,
4433        1,
4434        0,
4435        p00pfs_by::Podr,
4436        p00pfs_by::Podr,
4437        P00PfsBy_SPEC,
4438        crate::common::RW,
4439    > {
4440        crate::common::RegisterField::<
4441            0,
4442            0x1,
4443            1,
4444            0,
4445            p00pfs_by::Podr,
4446            p00pfs_by::Podr,
4447            P00PfsBy_SPEC,
4448            crate::common::RW,
4449        >::from_register(self, 0)
4450    }
4451
4452    #[doc = "Port State"]
4453    #[inline(always)]
4454    pub fn pidr(
4455        self,
4456    ) -> crate::common::RegisterField<
4457        1,
4458        0x1,
4459        1,
4460        0,
4461        p00pfs_by::Pidr,
4462        p00pfs_by::Pidr,
4463        P00PfsBy_SPEC,
4464        crate::common::R,
4465    > {
4466        crate::common::RegisterField::<
4467            1,
4468            0x1,
4469            1,
4470            0,
4471            p00pfs_by::Pidr,
4472            p00pfs_by::Pidr,
4473            P00PfsBy_SPEC,
4474            crate::common::R,
4475        >::from_register(self, 0)
4476    }
4477
4478    #[doc = "Port Direction"]
4479    #[inline(always)]
4480    pub fn pdr(
4481        self,
4482    ) -> crate::common::RegisterField<
4483        2,
4484        0x1,
4485        1,
4486        0,
4487        p00pfs_by::Pdr,
4488        p00pfs_by::Pdr,
4489        P00PfsBy_SPEC,
4490        crate::common::RW,
4491    > {
4492        crate::common::RegisterField::<
4493            2,
4494            0x1,
4495            1,
4496            0,
4497            p00pfs_by::Pdr,
4498            p00pfs_by::Pdr,
4499            P00PfsBy_SPEC,
4500            crate::common::RW,
4501        >::from_register(self, 0)
4502    }
4503
4504    #[doc = "Pull-up Control"]
4505    #[inline(always)]
4506    pub fn pcr(
4507        self,
4508    ) -> crate::common::RegisterField<
4509        4,
4510        0x1,
4511        1,
4512        0,
4513        p00pfs_by::Pcr,
4514        p00pfs_by::Pcr,
4515        P00PfsBy_SPEC,
4516        crate::common::RW,
4517    > {
4518        crate::common::RegisterField::<
4519            4,
4520            0x1,
4521            1,
4522            0,
4523            p00pfs_by::Pcr,
4524            p00pfs_by::Pcr,
4525            P00PfsBy_SPEC,
4526            crate::common::RW,
4527        >::from_register(self, 0)
4528    }
4529
4530    #[doc = "N-Channel Open-Drain Control"]
4531    #[inline(always)]
4532    pub fn ncodr(
4533        self,
4534    ) -> crate::common::RegisterField<
4535        6,
4536        0x1,
4537        1,
4538        0,
4539        p00pfs_by::Ncodr,
4540        p00pfs_by::Ncodr,
4541        P00PfsBy_SPEC,
4542        crate::common::RW,
4543    > {
4544        crate::common::RegisterField::<
4545            6,
4546            0x1,
4547            1,
4548            0,
4549            p00pfs_by::Ncodr,
4550            p00pfs_by::Ncodr,
4551            P00PfsBy_SPEC,
4552            crate::common::RW,
4553        >::from_register(self, 0)
4554    }
4555}
4556impl ::core::default::Default for P00PfsBy {
4557    #[inline(always)]
4558    fn default() -> P00PfsBy {
4559        <crate::RegValueT<P00PfsBy_SPEC> as RegisterValue<_>>::new(0)
4560    }
4561}
4562pub mod p00pfs_by {
4563
4564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4565    pub struct Podr_SPEC;
4566    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4567    impl Podr {
4568        #[doc = "Output low"]
4569        pub const _0: Self = Self::new(0);
4570
4571        #[doc = "Output high"]
4572        pub const _1: Self = Self::new(1);
4573    }
4574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4575    pub struct Pidr_SPEC;
4576    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4577    impl Pidr {
4578        #[doc = "Low level"]
4579        pub const _0: Self = Self::new(0);
4580
4581        #[doc = "High level"]
4582        pub const _1: Self = Self::new(1);
4583    }
4584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4585    pub struct Pdr_SPEC;
4586    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4587    impl Pdr {
4588        #[doc = "Input (functions as an input pin)"]
4589        pub const _0: Self = Self::new(0);
4590
4591        #[doc = "Output (functions as an output pin)"]
4592        pub const _1: Self = Self::new(1);
4593    }
4594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4595    pub struct Pcr_SPEC;
4596    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4597    impl Pcr {
4598        #[doc = "Disable input pull-up"]
4599        pub const _0: Self = Self::new(0);
4600
4601        #[doc = "Enable input pull-up"]
4602        pub const _1: Self = Self::new(1);
4603    }
4604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4605    pub struct Ncodr_SPEC;
4606    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4607    impl Ncodr {
4608        #[doc = "Output CMOS"]
4609        pub const _0: Self = Self::new(0);
4610
4611        #[doc = "Output NMOS open-drain"]
4612        pub const _1: Self = Self::new(1);
4613    }
4614}
4615#[doc(hidden)]
4616#[derive(Copy, Clone, Eq, PartialEq)]
4617pub struct P008Pfs_SPEC;
4618impl crate::sealed::RegSpec for P008Pfs_SPEC {
4619    type DataType = u32;
4620}
4621
4622#[doc = "Port 008 Pin Function Select Register"]
4623pub type P008Pfs = crate::RegValueT<P008Pfs_SPEC>;
4624
4625impl P008Pfs {
4626    #[doc = "Port Output Data"]
4627    #[inline(always)]
4628    pub fn podr(
4629        self,
4630    ) -> crate::common::RegisterField<
4631        0,
4632        0x1,
4633        1,
4634        0,
4635        p008pfs::Podr,
4636        p008pfs::Podr,
4637        P008Pfs_SPEC,
4638        crate::common::RW,
4639    > {
4640        crate::common::RegisterField::<
4641            0,
4642            0x1,
4643            1,
4644            0,
4645            p008pfs::Podr,
4646            p008pfs::Podr,
4647            P008Pfs_SPEC,
4648            crate::common::RW,
4649        >::from_register(self, 0)
4650    }
4651
4652    #[doc = "Port State"]
4653    #[inline(always)]
4654    pub fn pidr(
4655        self,
4656    ) -> crate::common::RegisterField<
4657        1,
4658        0x1,
4659        1,
4660        0,
4661        p008pfs::Pidr,
4662        p008pfs::Pidr,
4663        P008Pfs_SPEC,
4664        crate::common::R,
4665    > {
4666        crate::common::RegisterField::<
4667            1,
4668            0x1,
4669            1,
4670            0,
4671            p008pfs::Pidr,
4672            p008pfs::Pidr,
4673            P008Pfs_SPEC,
4674            crate::common::R,
4675        >::from_register(self, 0)
4676    }
4677
4678    #[doc = "Port Direction"]
4679    #[inline(always)]
4680    pub fn pdr(
4681        self,
4682    ) -> crate::common::RegisterField<
4683        2,
4684        0x1,
4685        1,
4686        0,
4687        p008pfs::Pdr,
4688        p008pfs::Pdr,
4689        P008Pfs_SPEC,
4690        crate::common::RW,
4691    > {
4692        crate::common::RegisterField::<
4693            2,
4694            0x1,
4695            1,
4696            0,
4697            p008pfs::Pdr,
4698            p008pfs::Pdr,
4699            P008Pfs_SPEC,
4700            crate::common::RW,
4701        >::from_register(self, 0)
4702    }
4703
4704    #[doc = "Pull-up Control"]
4705    #[inline(always)]
4706    pub fn pcr(
4707        self,
4708    ) -> crate::common::RegisterField<
4709        4,
4710        0x1,
4711        1,
4712        0,
4713        p008pfs::Pcr,
4714        p008pfs::Pcr,
4715        P008Pfs_SPEC,
4716        crate::common::RW,
4717    > {
4718        crate::common::RegisterField::<
4719            4,
4720            0x1,
4721            1,
4722            0,
4723            p008pfs::Pcr,
4724            p008pfs::Pcr,
4725            P008Pfs_SPEC,
4726            crate::common::RW,
4727        >::from_register(self, 0)
4728    }
4729
4730    #[doc = "N-Channel Open-Drain Control"]
4731    #[inline(always)]
4732    pub fn ncodr(
4733        self,
4734    ) -> crate::common::RegisterField<
4735        6,
4736        0x1,
4737        1,
4738        0,
4739        p008pfs::Ncodr,
4740        p008pfs::Ncodr,
4741        P008Pfs_SPEC,
4742        crate::common::RW,
4743    > {
4744        crate::common::RegisterField::<
4745            6,
4746            0x1,
4747            1,
4748            0,
4749            p008pfs::Ncodr,
4750            p008pfs::Ncodr,
4751            P008Pfs_SPEC,
4752            crate::common::RW,
4753        >::from_register(self, 0)
4754    }
4755
4756    #[doc = "IRQ Input Enable"]
4757    #[inline(always)]
4758    pub fn isel(
4759        self,
4760    ) -> crate::common::RegisterField<
4761        14,
4762        0x1,
4763        1,
4764        0,
4765        p008pfs::Isel,
4766        p008pfs::Isel,
4767        P008Pfs_SPEC,
4768        crate::common::RW,
4769    > {
4770        crate::common::RegisterField::<
4771            14,
4772            0x1,
4773            1,
4774            0,
4775            p008pfs::Isel,
4776            p008pfs::Isel,
4777            P008Pfs_SPEC,
4778            crate::common::RW,
4779        >::from_register(self, 0)
4780    }
4781
4782    #[doc = "Analog Input Enable"]
4783    #[inline(always)]
4784    pub fn asel(
4785        self,
4786    ) -> crate::common::RegisterField<
4787        15,
4788        0x1,
4789        1,
4790        0,
4791        p008pfs::Asel,
4792        p008pfs::Asel,
4793        P008Pfs_SPEC,
4794        crate::common::RW,
4795    > {
4796        crate::common::RegisterField::<
4797            15,
4798            0x1,
4799            1,
4800            0,
4801            p008pfs::Asel,
4802            p008pfs::Asel,
4803            P008Pfs_SPEC,
4804            crate::common::RW,
4805        >::from_register(self, 0)
4806    }
4807
4808    #[doc = "Port Mode Control"]
4809    #[inline(always)]
4810    pub fn pmr(
4811        self,
4812    ) -> crate::common::RegisterField<
4813        16,
4814        0x1,
4815        1,
4816        0,
4817        p008pfs::Pmr,
4818        p008pfs::Pmr,
4819        P008Pfs_SPEC,
4820        crate::common::RW,
4821    > {
4822        crate::common::RegisterField::<
4823            16,
4824            0x1,
4825            1,
4826            0,
4827            p008pfs::Pmr,
4828            p008pfs::Pmr,
4829            P008Pfs_SPEC,
4830            crate::common::RW,
4831        >::from_register(self, 0)
4832    }
4833
4834    #[doc = "Peripheral Select"]
4835    #[inline(always)]
4836    pub fn psel(
4837        self,
4838    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P008Pfs_SPEC, crate::common::RW> {
4839        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P008Pfs_SPEC,crate::common::RW>::from_register(self,0)
4840    }
4841}
4842impl ::core::default::Default for P008Pfs {
4843    #[inline(always)]
4844    fn default() -> P008Pfs {
4845        <crate::RegValueT<P008Pfs_SPEC> as RegisterValue<_>>::new(66576)
4846    }
4847}
4848pub mod p008pfs {
4849
4850    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4851    pub struct Podr_SPEC;
4852    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4853    impl Podr {
4854        #[doc = "Output low"]
4855        pub const _0: Self = Self::new(0);
4856
4857        #[doc = "Output high"]
4858        pub const _1: Self = Self::new(1);
4859    }
4860    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4861    pub struct Pidr_SPEC;
4862    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4863    impl Pidr {
4864        #[doc = "Low level"]
4865        pub const _0: Self = Self::new(0);
4866
4867        #[doc = "High level"]
4868        pub const _1: Self = Self::new(1);
4869    }
4870    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4871    pub struct Pdr_SPEC;
4872    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4873    impl Pdr {
4874        #[doc = "Input (functions as an input pin)"]
4875        pub const _0: Self = Self::new(0);
4876
4877        #[doc = "Output (functions as an output pin)"]
4878        pub const _1: Self = Self::new(1);
4879    }
4880    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4881    pub struct Pcr_SPEC;
4882    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4883    impl Pcr {
4884        #[doc = "Disable input pull-up"]
4885        pub const _0: Self = Self::new(0);
4886
4887        #[doc = "Enable input pull-up"]
4888        pub const _1: Self = Self::new(1);
4889    }
4890    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4891    pub struct Ncodr_SPEC;
4892    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4893    impl Ncodr {
4894        #[doc = "Output CMOS"]
4895        pub const _0: Self = Self::new(0);
4896
4897        #[doc = "Output NMOS open-drain"]
4898        pub const _1: Self = Self::new(1);
4899    }
4900    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4901    pub struct Isel_SPEC;
4902    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4903    impl Isel {
4904        #[doc = "Do not use as IRQn input pin"]
4905        pub const _0: Self = Self::new(0);
4906
4907        #[doc = "Use as IRQn input pin"]
4908        pub const _1: Self = Self::new(1);
4909    }
4910    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4911    pub struct Asel_SPEC;
4912    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4913    impl Asel {
4914        #[doc = "Do not use as analog pin"]
4915        pub const _0: Self = Self::new(0);
4916
4917        #[doc = "Use as analog pin"]
4918        pub const _1: Self = Self::new(1);
4919    }
4920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4921    pub struct Pmr_SPEC;
4922    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4923    impl Pmr {
4924        #[doc = "Use as general I/O pin"]
4925        pub const _0: Self = Self::new(0);
4926
4927        #[doc = "Use as I/O port for peripheral functions"]
4928        pub const _1: Self = Self::new(1);
4929    }
4930}
4931#[doc(hidden)]
4932#[derive(Copy, Clone, Eq, PartialEq)]
4933pub struct P008PfsHa_SPEC;
4934impl crate::sealed::RegSpec for P008PfsHa_SPEC {
4935    type DataType = u16;
4936}
4937
4938#[doc = "Port 008 Pin Function Select Register"]
4939pub type P008PfsHa = crate::RegValueT<P008PfsHa_SPEC>;
4940
4941impl P008PfsHa {
4942    #[doc = "Port Output Data"]
4943    #[inline(always)]
4944    pub fn podr(
4945        self,
4946    ) -> crate::common::RegisterField<
4947        0,
4948        0x1,
4949        1,
4950        0,
4951        p008pfs_ha::Podr,
4952        p008pfs_ha::Podr,
4953        P008PfsHa_SPEC,
4954        crate::common::RW,
4955    > {
4956        crate::common::RegisterField::<
4957            0,
4958            0x1,
4959            1,
4960            0,
4961            p008pfs_ha::Podr,
4962            p008pfs_ha::Podr,
4963            P008PfsHa_SPEC,
4964            crate::common::RW,
4965        >::from_register(self, 0)
4966    }
4967
4968    #[doc = "Port State"]
4969    #[inline(always)]
4970    pub fn pidr(
4971        self,
4972    ) -> crate::common::RegisterField<
4973        1,
4974        0x1,
4975        1,
4976        0,
4977        p008pfs_ha::Pidr,
4978        p008pfs_ha::Pidr,
4979        P008PfsHa_SPEC,
4980        crate::common::R,
4981    > {
4982        crate::common::RegisterField::<
4983            1,
4984            0x1,
4985            1,
4986            0,
4987            p008pfs_ha::Pidr,
4988            p008pfs_ha::Pidr,
4989            P008PfsHa_SPEC,
4990            crate::common::R,
4991        >::from_register(self, 0)
4992    }
4993
4994    #[doc = "Port Direction"]
4995    #[inline(always)]
4996    pub fn pdr(
4997        self,
4998    ) -> crate::common::RegisterField<
4999        2,
5000        0x1,
5001        1,
5002        0,
5003        p008pfs_ha::Pdr,
5004        p008pfs_ha::Pdr,
5005        P008PfsHa_SPEC,
5006        crate::common::RW,
5007    > {
5008        crate::common::RegisterField::<
5009            2,
5010            0x1,
5011            1,
5012            0,
5013            p008pfs_ha::Pdr,
5014            p008pfs_ha::Pdr,
5015            P008PfsHa_SPEC,
5016            crate::common::RW,
5017        >::from_register(self, 0)
5018    }
5019
5020    #[doc = "Pull-up Control"]
5021    #[inline(always)]
5022    pub fn pcr(
5023        self,
5024    ) -> crate::common::RegisterField<
5025        4,
5026        0x1,
5027        1,
5028        0,
5029        p008pfs_ha::Pcr,
5030        p008pfs_ha::Pcr,
5031        P008PfsHa_SPEC,
5032        crate::common::RW,
5033    > {
5034        crate::common::RegisterField::<
5035            4,
5036            0x1,
5037            1,
5038            0,
5039            p008pfs_ha::Pcr,
5040            p008pfs_ha::Pcr,
5041            P008PfsHa_SPEC,
5042            crate::common::RW,
5043        >::from_register(self, 0)
5044    }
5045
5046    #[doc = "N-Channel Open-Drain Control"]
5047    #[inline(always)]
5048    pub fn ncodr(
5049        self,
5050    ) -> crate::common::RegisterField<
5051        6,
5052        0x1,
5053        1,
5054        0,
5055        p008pfs_ha::Ncodr,
5056        p008pfs_ha::Ncodr,
5057        P008PfsHa_SPEC,
5058        crate::common::RW,
5059    > {
5060        crate::common::RegisterField::<
5061            6,
5062            0x1,
5063            1,
5064            0,
5065            p008pfs_ha::Ncodr,
5066            p008pfs_ha::Ncodr,
5067            P008PfsHa_SPEC,
5068            crate::common::RW,
5069        >::from_register(self, 0)
5070    }
5071
5072    #[doc = "IRQ Input Enable"]
5073    #[inline(always)]
5074    pub fn isel(
5075        self,
5076    ) -> crate::common::RegisterField<
5077        14,
5078        0x1,
5079        1,
5080        0,
5081        p008pfs_ha::Isel,
5082        p008pfs_ha::Isel,
5083        P008PfsHa_SPEC,
5084        crate::common::RW,
5085    > {
5086        crate::common::RegisterField::<
5087            14,
5088            0x1,
5089            1,
5090            0,
5091            p008pfs_ha::Isel,
5092            p008pfs_ha::Isel,
5093            P008PfsHa_SPEC,
5094            crate::common::RW,
5095        >::from_register(self, 0)
5096    }
5097
5098    #[doc = "Analog Input Enable"]
5099    #[inline(always)]
5100    pub fn asel(
5101        self,
5102    ) -> crate::common::RegisterField<
5103        15,
5104        0x1,
5105        1,
5106        0,
5107        p008pfs_ha::Asel,
5108        p008pfs_ha::Asel,
5109        P008PfsHa_SPEC,
5110        crate::common::RW,
5111    > {
5112        crate::common::RegisterField::<
5113            15,
5114            0x1,
5115            1,
5116            0,
5117            p008pfs_ha::Asel,
5118            p008pfs_ha::Asel,
5119            P008PfsHa_SPEC,
5120            crate::common::RW,
5121        >::from_register(self, 0)
5122    }
5123}
5124impl ::core::default::Default for P008PfsHa {
5125    #[inline(always)]
5126    fn default() -> P008PfsHa {
5127        <crate::RegValueT<P008PfsHa_SPEC> as RegisterValue<_>>::new(1040)
5128    }
5129}
5130pub mod p008pfs_ha {
5131
5132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5133    pub struct Podr_SPEC;
5134    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5135    impl Podr {
5136        #[doc = "Output low"]
5137        pub const _0: Self = Self::new(0);
5138
5139        #[doc = "Output high"]
5140        pub const _1: Self = Self::new(1);
5141    }
5142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5143    pub struct Pidr_SPEC;
5144    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5145    impl Pidr {
5146        #[doc = "Low level"]
5147        pub const _0: Self = Self::new(0);
5148
5149        #[doc = "High level"]
5150        pub const _1: Self = Self::new(1);
5151    }
5152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5153    pub struct Pdr_SPEC;
5154    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5155    impl Pdr {
5156        #[doc = "Input (functions as an input pin)"]
5157        pub const _0: Self = Self::new(0);
5158
5159        #[doc = "Output (functions as an output pin)"]
5160        pub const _1: Self = Self::new(1);
5161    }
5162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5163    pub struct Pcr_SPEC;
5164    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5165    impl Pcr {
5166        #[doc = "Disable input pull-up"]
5167        pub const _0: Self = Self::new(0);
5168
5169        #[doc = "Enable input pull-up"]
5170        pub const _1: Self = Self::new(1);
5171    }
5172    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5173    pub struct Ncodr_SPEC;
5174    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5175    impl Ncodr {
5176        #[doc = "Output CMOS"]
5177        pub const _0: Self = Self::new(0);
5178
5179        #[doc = "Output NMOS open-drain"]
5180        pub const _1: Self = Self::new(1);
5181    }
5182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5183    pub struct Isel_SPEC;
5184    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5185    impl Isel {
5186        #[doc = "Do not use as IRQn input pin"]
5187        pub const _0: Self = Self::new(0);
5188
5189        #[doc = "Use as IRQn input pin"]
5190        pub const _1: Self = Self::new(1);
5191    }
5192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5193    pub struct Asel_SPEC;
5194    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5195    impl Asel {
5196        #[doc = "Do not use as analog pin"]
5197        pub const _0: Self = Self::new(0);
5198
5199        #[doc = "Use as analog pin"]
5200        pub const _1: Self = Self::new(1);
5201    }
5202}
5203#[doc(hidden)]
5204#[derive(Copy, Clone, Eq, PartialEq)]
5205pub struct P008PfsBy_SPEC;
5206impl crate::sealed::RegSpec for P008PfsBy_SPEC {
5207    type DataType = u8;
5208}
5209
5210#[doc = "Port 008 Pin Function Select Register"]
5211pub type P008PfsBy = crate::RegValueT<P008PfsBy_SPEC>;
5212
5213impl P008PfsBy {
5214    #[doc = "Port Output Data"]
5215    #[inline(always)]
5216    pub fn podr(
5217        self,
5218    ) -> crate::common::RegisterField<
5219        0,
5220        0x1,
5221        1,
5222        0,
5223        p008pfs_by::Podr,
5224        p008pfs_by::Podr,
5225        P008PfsBy_SPEC,
5226        crate::common::RW,
5227    > {
5228        crate::common::RegisterField::<
5229            0,
5230            0x1,
5231            1,
5232            0,
5233            p008pfs_by::Podr,
5234            p008pfs_by::Podr,
5235            P008PfsBy_SPEC,
5236            crate::common::RW,
5237        >::from_register(self, 0)
5238    }
5239
5240    #[doc = "Port State"]
5241    #[inline(always)]
5242    pub fn pidr(
5243        self,
5244    ) -> crate::common::RegisterField<
5245        1,
5246        0x1,
5247        1,
5248        0,
5249        p008pfs_by::Pidr,
5250        p008pfs_by::Pidr,
5251        P008PfsBy_SPEC,
5252        crate::common::R,
5253    > {
5254        crate::common::RegisterField::<
5255            1,
5256            0x1,
5257            1,
5258            0,
5259            p008pfs_by::Pidr,
5260            p008pfs_by::Pidr,
5261            P008PfsBy_SPEC,
5262            crate::common::R,
5263        >::from_register(self, 0)
5264    }
5265
5266    #[doc = "Port Direction"]
5267    #[inline(always)]
5268    pub fn pdr(
5269        self,
5270    ) -> crate::common::RegisterField<
5271        2,
5272        0x1,
5273        1,
5274        0,
5275        p008pfs_by::Pdr,
5276        p008pfs_by::Pdr,
5277        P008PfsBy_SPEC,
5278        crate::common::RW,
5279    > {
5280        crate::common::RegisterField::<
5281            2,
5282            0x1,
5283            1,
5284            0,
5285            p008pfs_by::Pdr,
5286            p008pfs_by::Pdr,
5287            P008PfsBy_SPEC,
5288            crate::common::RW,
5289        >::from_register(self, 0)
5290    }
5291
5292    #[doc = "Pull-up Control"]
5293    #[inline(always)]
5294    pub fn pcr(
5295        self,
5296    ) -> crate::common::RegisterField<
5297        4,
5298        0x1,
5299        1,
5300        0,
5301        p008pfs_by::Pcr,
5302        p008pfs_by::Pcr,
5303        P008PfsBy_SPEC,
5304        crate::common::RW,
5305    > {
5306        crate::common::RegisterField::<
5307            4,
5308            0x1,
5309            1,
5310            0,
5311            p008pfs_by::Pcr,
5312            p008pfs_by::Pcr,
5313            P008PfsBy_SPEC,
5314            crate::common::RW,
5315        >::from_register(self, 0)
5316    }
5317
5318    #[doc = "N-Channel Open-Drain Control"]
5319    #[inline(always)]
5320    pub fn ncodr(
5321        self,
5322    ) -> crate::common::RegisterField<
5323        6,
5324        0x1,
5325        1,
5326        0,
5327        p008pfs_by::Ncodr,
5328        p008pfs_by::Ncodr,
5329        P008PfsBy_SPEC,
5330        crate::common::RW,
5331    > {
5332        crate::common::RegisterField::<
5333            6,
5334            0x1,
5335            1,
5336            0,
5337            p008pfs_by::Ncodr,
5338            p008pfs_by::Ncodr,
5339            P008PfsBy_SPEC,
5340            crate::common::RW,
5341        >::from_register(self, 0)
5342    }
5343}
5344impl ::core::default::Default for P008PfsBy {
5345    #[inline(always)]
5346    fn default() -> P008PfsBy {
5347        <crate::RegValueT<P008PfsBy_SPEC> as RegisterValue<_>>::new(16)
5348    }
5349}
5350pub mod p008pfs_by {
5351
5352    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5353    pub struct Podr_SPEC;
5354    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5355    impl Podr {
5356        #[doc = "Output low"]
5357        pub const _0: Self = Self::new(0);
5358
5359        #[doc = "Output high"]
5360        pub const _1: Self = Self::new(1);
5361    }
5362    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5363    pub struct Pidr_SPEC;
5364    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5365    impl Pidr {
5366        #[doc = "Low level"]
5367        pub const _0: Self = Self::new(0);
5368
5369        #[doc = "High level"]
5370        pub const _1: Self = Self::new(1);
5371    }
5372    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5373    pub struct Pdr_SPEC;
5374    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5375    impl Pdr {
5376        #[doc = "Input (functions as an input pin)"]
5377        pub const _0: Self = Self::new(0);
5378
5379        #[doc = "Output (functions as an output pin)"]
5380        pub const _1: Self = Self::new(1);
5381    }
5382    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5383    pub struct Pcr_SPEC;
5384    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5385    impl Pcr {
5386        #[doc = "Disable input pull-up"]
5387        pub const _0: Self = Self::new(0);
5388
5389        #[doc = "Enable input pull-up"]
5390        pub const _1: Self = Self::new(1);
5391    }
5392    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5393    pub struct Ncodr_SPEC;
5394    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5395    impl Ncodr {
5396        #[doc = "Output CMOS"]
5397        pub const _0: Self = Self::new(0);
5398
5399        #[doc = "Output NMOS open-drain"]
5400        pub const _1: Self = Self::new(1);
5401    }
5402}
5403#[doc(hidden)]
5404#[derive(Copy, Clone, Eq, PartialEq)]
5405pub struct P009Pfs_SPEC;
5406impl crate::sealed::RegSpec for P009Pfs_SPEC {
5407    type DataType = u32;
5408}
5409
5410#[doc = "Port 009 Pin Function Select Register"]
5411pub type P009Pfs = crate::RegValueT<P009Pfs_SPEC>;
5412
5413impl P009Pfs {
5414    #[doc = "Port Output Data"]
5415    #[inline(always)]
5416    pub fn podr(
5417        self,
5418    ) -> crate::common::RegisterField<
5419        0,
5420        0x1,
5421        1,
5422        0,
5423        p009pfs::Podr,
5424        p009pfs::Podr,
5425        P009Pfs_SPEC,
5426        crate::common::RW,
5427    > {
5428        crate::common::RegisterField::<
5429            0,
5430            0x1,
5431            1,
5432            0,
5433            p009pfs::Podr,
5434            p009pfs::Podr,
5435            P009Pfs_SPEC,
5436            crate::common::RW,
5437        >::from_register(self, 0)
5438    }
5439
5440    #[doc = "Port State"]
5441    #[inline(always)]
5442    pub fn pidr(
5443        self,
5444    ) -> crate::common::RegisterField<
5445        1,
5446        0x1,
5447        1,
5448        0,
5449        p009pfs::Pidr,
5450        p009pfs::Pidr,
5451        P009Pfs_SPEC,
5452        crate::common::R,
5453    > {
5454        crate::common::RegisterField::<
5455            1,
5456            0x1,
5457            1,
5458            0,
5459            p009pfs::Pidr,
5460            p009pfs::Pidr,
5461            P009Pfs_SPEC,
5462            crate::common::R,
5463        >::from_register(self, 0)
5464    }
5465
5466    #[doc = "Port Direction"]
5467    #[inline(always)]
5468    pub fn pdr(
5469        self,
5470    ) -> crate::common::RegisterField<
5471        2,
5472        0x1,
5473        1,
5474        0,
5475        p009pfs::Pdr,
5476        p009pfs::Pdr,
5477        P009Pfs_SPEC,
5478        crate::common::RW,
5479    > {
5480        crate::common::RegisterField::<
5481            2,
5482            0x1,
5483            1,
5484            0,
5485            p009pfs::Pdr,
5486            p009pfs::Pdr,
5487            P009Pfs_SPEC,
5488            crate::common::RW,
5489        >::from_register(self, 0)
5490    }
5491
5492    #[doc = "Pull-up Control"]
5493    #[inline(always)]
5494    pub fn pcr(
5495        self,
5496    ) -> crate::common::RegisterField<
5497        4,
5498        0x1,
5499        1,
5500        0,
5501        p009pfs::Pcr,
5502        p009pfs::Pcr,
5503        P009Pfs_SPEC,
5504        crate::common::RW,
5505    > {
5506        crate::common::RegisterField::<
5507            4,
5508            0x1,
5509            1,
5510            0,
5511            p009pfs::Pcr,
5512            p009pfs::Pcr,
5513            P009Pfs_SPEC,
5514            crate::common::RW,
5515        >::from_register(self, 0)
5516    }
5517
5518    #[doc = "N-Channel Open-Drain Control"]
5519    #[inline(always)]
5520    pub fn ncodr(
5521        self,
5522    ) -> crate::common::RegisterField<
5523        6,
5524        0x1,
5525        1,
5526        0,
5527        p009pfs::Ncodr,
5528        p009pfs::Ncodr,
5529        P009Pfs_SPEC,
5530        crate::common::RW,
5531    > {
5532        crate::common::RegisterField::<
5533            6,
5534            0x1,
5535            1,
5536            0,
5537            p009pfs::Ncodr,
5538            p009pfs::Ncodr,
5539            P009Pfs_SPEC,
5540            crate::common::RW,
5541        >::from_register(self, 0)
5542    }
5543
5544    #[doc = "IRQ Input Enable"]
5545    #[inline(always)]
5546    pub fn isel(
5547        self,
5548    ) -> crate::common::RegisterField<
5549        14,
5550        0x1,
5551        1,
5552        0,
5553        p009pfs::Isel,
5554        p009pfs::Isel,
5555        P009Pfs_SPEC,
5556        crate::common::RW,
5557    > {
5558        crate::common::RegisterField::<
5559            14,
5560            0x1,
5561            1,
5562            0,
5563            p009pfs::Isel,
5564            p009pfs::Isel,
5565            P009Pfs_SPEC,
5566            crate::common::RW,
5567        >::from_register(self, 0)
5568    }
5569
5570    #[doc = "Analog Input Enable"]
5571    #[inline(always)]
5572    pub fn asel(
5573        self,
5574    ) -> crate::common::RegisterField<
5575        15,
5576        0x1,
5577        1,
5578        0,
5579        p009pfs::Asel,
5580        p009pfs::Asel,
5581        P009Pfs_SPEC,
5582        crate::common::RW,
5583    > {
5584        crate::common::RegisterField::<
5585            15,
5586            0x1,
5587            1,
5588            0,
5589            p009pfs::Asel,
5590            p009pfs::Asel,
5591            P009Pfs_SPEC,
5592            crate::common::RW,
5593        >::from_register(self, 0)
5594    }
5595
5596    #[doc = "Port Mode Control"]
5597    #[inline(always)]
5598    pub fn pmr(
5599        self,
5600    ) -> crate::common::RegisterField<
5601        16,
5602        0x1,
5603        1,
5604        0,
5605        p009pfs::Pmr,
5606        p009pfs::Pmr,
5607        P009Pfs_SPEC,
5608        crate::common::RW,
5609    > {
5610        crate::common::RegisterField::<
5611            16,
5612            0x1,
5613            1,
5614            0,
5615            p009pfs::Pmr,
5616            p009pfs::Pmr,
5617            P009Pfs_SPEC,
5618            crate::common::RW,
5619        >::from_register(self, 0)
5620    }
5621
5622    #[doc = "Peripheral Select"]
5623    #[inline(always)]
5624    pub fn psel(
5625        self,
5626    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P009Pfs_SPEC, crate::common::RW> {
5627        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P009Pfs_SPEC,crate::common::RW>::from_register(self,0)
5628    }
5629}
5630impl ::core::default::Default for P009Pfs {
5631    #[inline(always)]
5632    fn default() -> P009Pfs {
5633        <crate::RegValueT<P009Pfs_SPEC> as RegisterValue<_>>::new(66560)
5634    }
5635}
5636pub mod p009pfs {
5637
5638    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5639    pub struct Podr_SPEC;
5640    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5641    impl Podr {
5642        #[doc = "Output low"]
5643        pub const _0: Self = Self::new(0);
5644
5645        #[doc = "Output high"]
5646        pub const _1: Self = Self::new(1);
5647    }
5648    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5649    pub struct Pidr_SPEC;
5650    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5651    impl Pidr {
5652        #[doc = "Low level"]
5653        pub const _0: Self = Self::new(0);
5654
5655        #[doc = "High level"]
5656        pub const _1: Self = Self::new(1);
5657    }
5658    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5659    pub struct Pdr_SPEC;
5660    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5661    impl Pdr {
5662        #[doc = "Input (functions as an input pin)"]
5663        pub const _0: Self = Self::new(0);
5664
5665        #[doc = "Output (functions as an output pin)"]
5666        pub const _1: Self = Self::new(1);
5667    }
5668    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5669    pub struct Pcr_SPEC;
5670    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5671    impl Pcr {
5672        #[doc = "Disable input pull-up"]
5673        pub const _0: Self = Self::new(0);
5674
5675        #[doc = "Enable input pull-up"]
5676        pub const _1: Self = Self::new(1);
5677    }
5678    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5679    pub struct Ncodr_SPEC;
5680    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5681    impl Ncodr {
5682        #[doc = "Output CMOS"]
5683        pub const _0: Self = Self::new(0);
5684
5685        #[doc = "Output NMOS open-drain"]
5686        pub const _1: Self = Self::new(1);
5687    }
5688    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5689    pub struct Isel_SPEC;
5690    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5691    impl Isel {
5692        #[doc = "Do not use as IRQn input pin"]
5693        pub const _0: Self = Self::new(0);
5694
5695        #[doc = "Use as IRQn input pin"]
5696        pub const _1: Self = Self::new(1);
5697    }
5698    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5699    pub struct Asel_SPEC;
5700    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5701    impl Asel {
5702        #[doc = "Do not use as analog pin"]
5703        pub const _0: Self = Self::new(0);
5704
5705        #[doc = "Use as analog pin"]
5706        pub const _1: Self = Self::new(1);
5707    }
5708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5709    pub struct Pmr_SPEC;
5710    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5711    impl Pmr {
5712        #[doc = "Use as general I/O pin"]
5713        pub const _0: Self = Self::new(0);
5714
5715        #[doc = "Use as I/O port for peripheral functions"]
5716        pub const _1: Self = Self::new(1);
5717    }
5718}
5719#[doc(hidden)]
5720#[derive(Copy, Clone, Eq, PartialEq)]
5721pub struct P009PfsHa_SPEC;
5722impl crate::sealed::RegSpec for P009PfsHa_SPEC {
5723    type DataType = u16;
5724}
5725
5726#[doc = "Port 009 Pin Function Select Register"]
5727pub type P009PfsHa = crate::RegValueT<P009PfsHa_SPEC>;
5728
5729impl P009PfsHa {
5730    #[doc = "Port Output Data"]
5731    #[inline(always)]
5732    pub fn podr(
5733        self,
5734    ) -> crate::common::RegisterField<
5735        0,
5736        0x1,
5737        1,
5738        0,
5739        p009pfs_ha::Podr,
5740        p009pfs_ha::Podr,
5741        P009PfsHa_SPEC,
5742        crate::common::RW,
5743    > {
5744        crate::common::RegisterField::<
5745            0,
5746            0x1,
5747            1,
5748            0,
5749            p009pfs_ha::Podr,
5750            p009pfs_ha::Podr,
5751            P009PfsHa_SPEC,
5752            crate::common::RW,
5753        >::from_register(self, 0)
5754    }
5755
5756    #[doc = "Port State"]
5757    #[inline(always)]
5758    pub fn pidr(
5759        self,
5760    ) -> crate::common::RegisterField<
5761        1,
5762        0x1,
5763        1,
5764        0,
5765        p009pfs_ha::Pidr,
5766        p009pfs_ha::Pidr,
5767        P009PfsHa_SPEC,
5768        crate::common::R,
5769    > {
5770        crate::common::RegisterField::<
5771            1,
5772            0x1,
5773            1,
5774            0,
5775            p009pfs_ha::Pidr,
5776            p009pfs_ha::Pidr,
5777            P009PfsHa_SPEC,
5778            crate::common::R,
5779        >::from_register(self, 0)
5780    }
5781
5782    #[doc = "Port Direction"]
5783    #[inline(always)]
5784    pub fn pdr(
5785        self,
5786    ) -> crate::common::RegisterField<
5787        2,
5788        0x1,
5789        1,
5790        0,
5791        p009pfs_ha::Pdr,
5792        p009pfs_ha::Pdr,
5793        P009PfsHa_SPEC,
5794        crate::common::RW,
5795    > {
5796        crate::common::RegisterField::<
5797            2,
5798            0x1,
5799            1,
5800            0,
5801            p009pfs_ha::Pdr,
5802            p009pfs_ha::Pdr,
5803            P009PfsHa_SPEC,
5804            crate::common::RW,
5805        >::from_register(self, 0)
5806    }
5807
5808    #[doc = "Pull-up Control"]
5809    #[inline(always)]
5810    pub fn pcr(
5811        self,
5812    ) -> crate::common::RegisterField<
5813        4,
5814        0x1,
5815        1,
5816        0,
5817        p009pfs_ha::Pcr,
5818        p009pfs_ha::Pcr,
5819        P009PfsHa_SPEC,
5820        crate::common::RW,
5821    > {
5822        crate::common::RegisterField::<
5823            4,
5824            0x1,
5825            1,
5826            0,
5827            p009pfs_ha::Pcr,
5828            p009pfs_ha::Pcr,
5829            P009PfsHa_SPEC,
5830            crate::common::RW,
5831        >::from_register(self, 0)
5832    }
5833
5834    #[doc = "N-Channel Open-Drain Control"]
5835    #[inline(always)]
5836    pub fn ncodr(
5837        self,
5838    ) -> crate::common::RegisterField<
5839        6,
5840        0x1,
5841        1,
5842        0,
5843        p009pfs_ha::Ncodr,
5844        p009pfs_ha::Ncodr,
5845        P009PfsHa_SPEC,
5846        crate::common::RW,
5847    > {
5848        crate::common::RegisterField::<
5849            6,
5850            0x1,
5851            1,
5852            0,
5853            p009pfs_ha::Ncodr,
5854            p009pfs_ha::Ncodr,
5855            P009PfsHa_SPEC,
5856            crate::common::RW,
5857        >::from_register(self, 0)
5858    }
5859
5860    #[doc = "IRQ Input Enable"]
5861    #[inline(always)]
5862    pub fn isel(
5863        self,
5864    ) -> crate::common::RegisterField<
5865        14,
5866        0x1,
5867        1,
5868        0,
5869        p009pfs_ha::Isel,
5870        p009pfs_ha::Isel,
5871        P009PfsHa_SPEC,
5872        crate::common::RW,
5873    > {
5874        crate::common::RegisterField::<
5875            14,
5876            0x1,
5877            1,
5878            0,
5879            p009pfs_ha::Isel,
5880            p009pfs_ha::Isel,
5881            P009PfsHa_SPEC,
5882            crate::common::RW,
5883        >::from_register(self, 0)
5884    }
5885
5886    #[doc = "Analog Input Enable"]
5887    #[inline(always)]
5888    pub fn asel(
5889        self,
5890    ) -> crate::common::RegisterField<
5891        15,
5892        0x1,
5893        1,
5894        0,
5895        p009pfs_ha::Asel,
5896        p009pfs_ha::Asel,
5897        P009PfsHa_SPEC,
5898        crate::common::RW,
5899    > {
5900        crate::common::RegisterField::<
5901            15,
5902            0x1,
5903            1,
5904            0,
5905            p009pfs_ha::Asel,
5906            p009pfs_ha::Asel,
5907            P009PfsHa_SPEC,
5908            crate::common::RW,
5909        >::from_register(self, 0)
5910    }
5911}
5912impl ::core::default::Default for P009PfsHa {
5913    #[inline(always)]
5914    fn default() -> P009PfsHa {
5915        <crate::RegValueT<P009PfsHa_SPEC> as RegisterValue<_>>::new(1024)
5916    }
5917}
5918pub mod p009pfs_ha {
5919
5920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5921    pub struct Podr_SPEC;
5922    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5923    impl Podr {
5924        #[doc = "Output low"]
5925        pub const _0: Self = Self::new(0);
5926
5927        #[doc = "Output high"]
5928        pub const _1: Self = Self::new(1);
5929    }
5930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5931    pub struct Pidr_SPEC;
5932    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5933    impl Pidr {
5934        #[doc = "Low level"]
5935        pub const _0: Self = Self::new(0);
5936
5937        #[doc = "High level"]
5938        pub const _1: Self = Self::new(1);
5939    }
5940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5941    pub struct Pdr_SPEC;
5942    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5943    impl Pdr {
5944        #[doc = "Input (functions as an input pin)"]
5945        pub const _0: Self = Self::new(0);
5946
5947        #[doc = "Output (functions as an output pin)"]
5948        pub const _1: Self = Self::new(1);
5949    }
5950    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5951    pub struct Pcr_SPEC;
5952    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5953    impl Pcr {
5954        #[doc = "Disable input pull-up"]
5955        pub const _0: Self = Self::new(0);
5956
5957        #[doc = "Enable input pull-up"]
5958        pub const _1: Self = Self::new(1);
5959    }
5960    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5961    pub struct Ncodr_SPEC;
5962    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5963    impl Ncodr {
5964        #[doc = "Output CMOS"]
5965        pub const _0: Self = Self::new(0);
5966
5967        #[doc = "Output NMOS open-drain"]
5968        pub const _1: Self = Self::new(1);
5969    }
5970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5971    pub struct Isel_SPEC;
5972    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5973    impl Isel {
5974        #[doc = "Do not use as IRQn input pin"]
5975        pub const _0: Self = Self::new(0);
5976
5977        #[doc = "Use as IRQn input pin"]
5978        pub const _1: Self = Self::new(1);
5979    }
5980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5981    pub struct Asel_SPEC;
5982    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5983    impl Asel {
5984        #[doc = "Do not use as analog pin"]
5985        pub const _0: Self = Self::new(0);
5986
5987        #[doc = "Use as analog pin"]
5988        pub const _1: Self = Self::new(1);
5989    }
5990}
5991#[doc(hidden)]
5992#[derive(Copy, Clone, Eq, PartialEq)]
5993pub struct P009PfsBy_SPEC;
5994impl crate::sealed::RegSpec for P009PfsBy_SPEC {
5995    type DataType = u8;
5996}
5997
5998#[doc = "Port 009 Pin Function Select Register"]
5999pub type P009PfsBy = crate::RegValueT<P009PfsBy_SPEC>;
6000
6001impl P009PfsBy {
6002    #[doc = "Port Output Data"]
6003    #[inline(always)]
6004    pub fn podr(
6005        self,
6006    ) -> crate::common::RegisterField<
6007        0,
6008        0x1,
6009        1,
6010        0,
6011        p009pfs_by::Podr,
6012        p009pfs_by::Podr,
6013        P009PfsBy_SPEC,
6014        crate::common::RW,
6015    > {
6016        crate::common::RegisterField::<
6017            0,
6018            0x1,
6019            1,
6020            0,
6021            p009pfs_by::Podr,
6022            p009pfs_by::Podr,
6023            P009PfsBy_SPEC,
6024            crate::common::RW,
6025        >::from_register(self, 0)
6026    }
6027
6028    #[doc = "Port State"]
6029    #[inline(always)]
6030    pub fn pidr(
6031        self,
6032    ) -> crate::common::RegisterField<
6033        1,
6034        0x1,
6035        1,
6036        0,
6037        p009pfs_by::Pidr,
6038        p009pfs_by::Pidr,
6039        P009PfsBy_SPEC,
6040        crate::common::R,
6041    > {
6042        crate::common::RegisterField::<
6043            1,
6044            0x1,
6045            1,
6046            0,
6047            p009pfs_by::Pidr,
6048            p009pfs_by::Pidr,
6049            P009PfsBy_SPEC,
6050            crate::common::R,
6051        >::from_register(self, 0)
6052    }
6053
6054    #[doc = "Port Direction"]
6055    #[inline(always)]
6056    pub fn pdr(
6057        self,
6058    ) -> crate::common::RegisterField<
6059        2,
6060        0x1,
6061        1,
6062        0,
6063        p009pfs_by::Pdr,
6064        p009pfs_by::Pdr,
6065        P009PfsBy_SPEC,
6066        crate::common::RW,
6067    > {
6068        crate::common::RegisterField::<
6069            2,
6070            0x1,
6071            1,
6072            0,
6073            p009pfs_by::Pdr,
6074            p009pfs_by::Pdr,
6075            P009PfsBy_SPEC,
6076            crate::common::RW,
6077        >::from_register(self, 0)
6078    }
6079
6080    #[doc = "Pull-up Control"]
6081    #[inline(always)]
6082    pub fn pcr(
6083        self,
6084    ) -> crate::common::RegisterField<
6085        4,
6086        0x1,
6087        1,
6088        0,
6089        p009pfs_by::Pcr,
6090        p009pfs_by::Pcr,
6091        P009PfsBy_SPEC,
6092        crate::common::RW,
6093    > {
6094        crate::common::RegisterField::<
6095            4,
6096            0x1,
6097            1,
6098            0,
6099            p009pfs_by::Pcr,
6100            p009pfs_by::Pcr,
6101            P009PfsBy_SPEC,
6102            crate::common::RW,
6103        >::from_register(self, 0)
6104    }
6105
6106    #[doc = "N-Channel Open-Drain Control"]
6107    #[inline(always)]
6108    pub fn ncodr(
6109        self,
6110    ) -> crate::common::RegisterField<
6111        6,
6112        0x1,
6113        1,
6114        0,
6115        p009pfs_by::Ncodr,
6116        p009pfs_by::Ncodr,
6117        P009PfsBy_SPEC,
6118        crate::common::RW,
6119    > {
6120        crate::common::RegisterField::<
6121            6,
6122            0x1,
6123            1,
6124            0,
6125            p009pfs_by::Ncodr,
6126            p009pfs_by::Ncodr,
6127            P009PfsBy_SPEC,
6128            crate::common::RW,
6129        >::from_register(self, 0)
6130    }
6131}
6132impl ::core::default::Default for P009PfsBy {
6133    #[inline(always)]
6134    fn default() -> P009PfsBy {
6135        <crate::RegValueT<P009PfsBy_SPEC> as RegisterValue<_>>::new(0)
6136    }
6137}
6138pub mod p009pfs_by {
6139
6140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6141    pub struct Podr_SPEC;
6142    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6143    impl Podr {
6144        #[doc = "Output low"]
6145        pub const _0: Self = Self::new(0);
6146
6147        #[doc = "Output high"]
6148        pub const _1: Self = Self::new(1);
6149    }
6150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6151    pub struct Pidr_SPEC;
6152    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6153    impl Pidr {
6154        #[doc = "Low level"]
6155        pub const _0: Self = Self::new(0);
6156
6157        #[doc = "High level"]
6158        pub const _1: Self = Self::new(1);
6159    }
6160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6161    pub struct Pdr_SPEC;
6162    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6163    impl Pdr {
6164        #[doc = "Input (functions as an input pin)"]
6165        pub const _0: Self = Self::new(0);
6166
6167        #[doc = "Output (functions as an output pin)"]
6168        pub const _1: Self = Self::new(1);
6169    }
6170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6171    pub struct Pcr_SPEC;
6172    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6173    impl Pcr {
6174        #[doc = "Disable input pull-up"]
6175        pub const _0: Self = Self::new(0);
6176
6177        #[doc = "Enable input pull-up"]
6178        pub const _1: Self = Self::new(1);
6179    }
6180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6181    pub struct Ncodr_SPEC;
6182    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6183    impl Ncodr {
6184        #[doc = "Output CMOS"]
6185        pub const _0: Self = Self::new(0);
6186
6187        #[doc = "Output NMOS open-drain"]
6188        pub const _1: Self = Self::new(1);
6189    }
6190}
6191#[doc(hidden)]
6192#[derive(Copy, Clone, Eq, PartialEq)]
6193pub struct P0Pfs_SPEC;
6194impl crate::sealed::RegSpec for P0Pfs_SPEC {
6195    type DataType = u32;
6196}
6197
6198#[doc = "Port 0%s Pin Function Select Register"]
6199pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
6200
6201impl P0Pfs {
6202    #[doc = "Port Output Data"]
6203    #[inline(always)]
6204    pub fn podr(
6205        self,
6206    ) -> crate::common::RegisterField<
6207        0,
6208        0x1,
6209        1,
6210        0,
6211        p0pfs::Podr,
6212        p0pfs::Podr,
6213        P0Pfs_SPEC,
6214        crate::common::RW,
6215    > {
6216        crate::common::RegisterField::<
6217            0,
6218            0x1,
6219            1,
6220            0,
6221            p0pfs::Podr,
6222            p0pfs::Podr,
6223            P0Pfs_SPEC,
6224            crate::common::RW,
6225        >::from_register(self, 0)
6226    }
6227
6228    #[doc = "Port State"]
6229    #[inline(always)]
6230    pub fn pidr(
6231        self,
6232    ) -> crate::common::RegisterField<
6233        1,
6234        0x1,
6235        1,
6236        0,
6237        p0pfs::Pidr,
6238        p0pfs::Pidr,
6239        P0Pfs_SPEC,
6240        crate::common::R,
6241    > {
6242        crate::common::RegisterField::<
6243            1,
6244            0x1,
6245            1,
6246            0,
6247            p0pfs::Pidr,
6248            p0pfs::Pidr,
6249            P0Pfs_SPEC,
6250            crate::common::R,
6251        >::from_register(self, 0)
6252    }
6253
6254    #[doc = "Port Direction"]
6255    #[inline(always)]
6256    pub fn pdr(
6257        self,
6258    ) -> crate::common::RegisterField<
6259        2,
6260        0x1,
6261        1,
6262        0,
6263        p0pfs::Pdr,
6264        p0pfs::Pdr,
6265        P0Pfs_SPEC,
6266        crate::common::RW,
6267    > {
6268        crate::common::RegisterField::<
6269            2,
6270            0x1,
6271            1,
6272            0,
6273            p0pfs::Pdr,
6274            p0pfs::Pdr,
6275            P0Pfs_SPEC,
6276            crate::common::RW,
6277        >::from_register(self, 0)
6278    }
6279
6280    #[doc = "Pull-up Control"]
6281    #[inline(always)]
6282    pub fn pcr(
6283        self,
6284    ) -> crate::common::RegisterField<
6285        4,
6286        0x1,
6287        1,
6288        0,
6289        p0pfs::Pcr,
6290        p0pfs::Pcr,
6291        P0Pfs_SPEC,
6292        crate::common::RW,
6293    > {
6294        crate::common::RegisterField::<
6295            4,
6296            0x1,
6297            1,
6298            0,
6299            p0pfs::Pcr,
6300            p0pfs::Pcr,
6301            P0Pfs_SPEC,
6302            crate::common::RW,
6303        >::from_register(self, 0)
6304    }
6305
6306    #[doc = "N-Channel Open-Drain Control"]
6307    #[inline(always)]
6308    pub fn ncodr(
6309        self,
6310    ) -> crate::common::RegisterField<
6311        6,
6312        0x1,
6313        1,
6314        0,
6315        p0pfs::Ncodr,
6316        p0pfs::Ncodr,
6317        P0Pfs_SPEC,
6318        crate::common::RW,
6319    > {
6320        crate::common::RegisterField::<
6321            6,
6322            0x1,
6323            1,
6324            0,
6325            p0pfs::Ncodr,
6326            p0pfs::Ncodr,
6327            P0Pfs_SPEC,
6328            crate::common::RW,
6329        >::from_register(self, 0)
6330    }
6331
6332    #[doc = "IRQ Input Enable"]
6333    #[inline(always)]
6334    pub fn isel(
6335        self,
6336    ) -> crate::common::RegisterField<
6337        14,
6338        0x1,
6339        1,
6340        0,
6341        p0pfs::Isel,
6342        p0pfs::Isel,
6343        P0Pfs_SPEC,
6344        crate::common::RW,
6345    > {
6346        crate::common::RegisterField::<
6347            14,
6348            0x1,
6349            1,
6350            0,
6351            p0pfs::Isel,
6352            p0pfs::Isel,
6353            P0Pfs_SPEC,
6354            crate::common::RW,
6355        >::from_register(self, 0)
6356    }
6357
6358    #[doc = "Analog Input Enable"]
6359    #[inline(always)]
6360    pub fn asel(
6361        self,
6362    ) -> crate::common::RegisterField<
6363        15,
6364        0x1,
6365        1,
6366        0,
6367        p0pfs::Asel,
6368        p0pfs::Asel,
6369        P0Pfs_SPEC,
6370        crate::common::RW,
6371    > {
6372        crate::common::RegisterField::<
6373            15,
6374            0x1,
6375            1,
6376            0,
6377            p0pfs::Asel,
6378            p0pfs::Asel,
6379            P0Pfs_SPEC,
6380            crate::common::RW,
6381        >::from_register(self, 0)
6382    }
6383
6384    #[doc = "Port Mode Control"]
6385    #[inline(always)]
6386    pub fn pmr(
6387        self,
6388    ) -> crate::common::RegisterField<
6389        16,
6390        0x1,
6391        1,
6392        0,
6393        p0pfs::Pmr,
6394        p0pfs::Pmr,
6395        P0Pfs_SPEC,
6396        crate::common::RW,
6397    > {
6398        crate::common::RegisterField::<
6399            16,
6400            0x1,
6401            1,
6402            0,
6403            p0pfs::Pmr,
6404            p0pfs::Pmr,
6405            P0Pfs_SPEC,
6406            crate::common::RW,
6407        >::from_register(self, 0)
6408    }
6409
6410    #[doc = "Peripheral Select"]
6411    #[inline(always)]
6412    pub fn psel(
6413        self,
6414    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
6415        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
6416    }
6417}
6418impl ::core::default::Default for P0Pfs {
6419    #[inline(always)]
6420    fn default() -> P0Pfs {
6421        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
6422    }
6423}
6424pub mod p0pfs {
6425
6426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6427    pub struct Podr_SPEC;
6428    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6429    impl Podr {
6430        #[doc = "Output low"]
6431        pub const _0: Self = Self::new(0);
6432
6433        #[doc = "Output high"]
6434        pub const _1: Self = Self::new(1);
6435    }
6436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6437    pub struct Pidr_SPEC;
6438    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6439    impl Pidr {
6440        #[doc = "Low level"]
6441        pub const _0: Self = Self::new(0);
6442
6443        #[doc = "High level"]
6444        pub const _1: Self = Self::new(1);
6445    }
6446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6447    pub struct Pdr_SPEC;
6448    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6449    impl Pdr {
6450        #[doc = "Input (functions as an input pin)"]
6451        pub const _0: Self = Self::new(0);
6452
6453        #[doc = "Output (functions as an output pin)"]
6454        pub const _1: Self = Self::new(1);
6455    }
6456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6457    pub struct Pcr_SPEC;
6458    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6459    impl Pcr {
6460        #[doc = "Disable input pull-up"]
6461        pub const _0: Self = Self::new(0);
6462
6463        #[doc = "Enable input pull-up"]
6464        pub const _1: Self = Self::new(1);
6465    }
6466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6467    pub struct Ncodr_SPEC;
6468    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6469    impl Ncodr {
6470        #[doc = "Output CMOS"]
6471        pub const _0: Self = Self::new(0);
6472
6473        #[doc = "Output NMOS open-drain"]
6474        pub const _1: Self = Self::new(1);
6475    }
6476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6477    pub struct Isel_SPEC;
6478    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6479    impl Isel {
6480        #[doc = "Do not use as IRQn input pin"]
6481        pub const _0: Self = Self::new(0);
6482
6483        #[doc = "Use as IRQn input pin"]
6484        pub const _1: Self = Self::new(1);
6485    }
6486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6487    pub struct Asel_SPEC;
6488    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6489    impl Asel {
6490        #[doc = "Do not use as analog pin"]
6491        pub const _0: Self = Self::new(0);
6492
6493        #[doc = "Use as analog pin"]
6494        pub const _1: Self = Self::new(1);
6495    }
6496    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6497    pub struct Pmr_SPEC;
6498    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6499    impl Pmr {
6500        #[doc = "Use as general I/O pin"]
6501        pub const _0: Self = Self::new(0);
6502
6503        #[doc = "Use as I/O port for peripheral functions"]
6504        pub const _1: Self = Self::new(1);
6505    }
6506}
6507#[doc(hidden)]
6508#[derive(Copy, Clone, Eq, PartialEq)]
6509pub struct P0PfsHa_SPEC;
6510impl crate::sealed::RegSpec for P0PfsHa_SPEC {
6511    type DataType = u16;
6512}
6513
6514#[doc = "Port 0%s Pin Function Select Register"]
6515pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
6516
6517impl P0PfsHa {
6518    #[doc = "Port Output Data"]
6519    #[inline(always)]
6520    pub fn podr(
6521        self,
6522    ) -> crate::common::RegisterField<
6523        0,
6524        0x1,
6525        1,
6526        0,
6527        p0pfs_ha::Podr,
6528        p0pfs_ha::Podr,
6529        P0PfsHa_SPEC,
6530        crate::common::RW,
6531    > {
6532        crate::common::RegisterField::<
6533            0,
6534            0x1,
6535            1,
6536            0,
6537            p0pfs_ha::Podr,
6538            p0pfs_ha::Podr,
6539            P0PfsHa_SPEC,
6540            crate::common::RW,
6541        >::from_register(self, 0)
6542    }
6543
6544    #[doc = "Port State"]
6545    #[inline(always)]
6546    pub fn pidr(
6547        self,
6548    ) -> crate::common::RegisterField<
6549        1,
6550        0x1,
6551        1,
6552        0,
6553        p0pfs_ha::Pidr,
6554        p0pfs_ha::Pidr,
6555        P0PfsHa_SPEC,
6556        crate::common::R,
6557    > {
6558        crate::common::RegisterField::<
6559            1,
6560            0x1,
6561            1,
6562            0,
6563            p0pfs_ha::Pidr,
6564            p0pfs_ha::Pidr,
6565            P0PfsHa_SPEC,
6566            crate::common::R,
6567        >::from_register(self, 0)
6568    }
6569
6570    #[doc = "Port Direction"]
6571    #[inline(always)]
6572    pub fn pdr(
6573        self,
6574    ) -> crate::common::RegisterField<
6575        2,
6576        0x1,
6577        1,
6578        0,
6579        p0pfs_ha::Pdr,
6580        p0pfs_ha::Pdr,
6581        P0PfsHa_SPEC,
6582        crate::common::RW,
6583    > {
6584        crate::common::RegisterField::<
6585            2,
6586            0x1,
6587            1,
6588            0,
6589            p0pfs_ha::Pdr,
6590            p0pfs_ha::Pdr,
6591            P0PfsHa_SPEC,
6592            crate::common::RW,
6593        >::from_register(self, 0)
6594    }
6595
6596    #[doc = "Pull-up Control"]
6597    #[inline(always)]
6598    pub fn pcr(
6599        self,
6600    ) -> crate::common::RegisterField<
6601        4,
6602        0x1,
6603        1,
6604        0,
6605        p0pfs_ha::Pcr,
6606        p0pfs_ha::Pcr,
6607        P0PfsHa_SPEC,
6608        crate::common::RW,
6609    > {
6610        crate::common::RegisterField::<
6611            4,
6612            0x1,
6613            1,
6614            0,
6615            p0pfs_ha::Pcr,
6616            p0pfs_ha::Pcr,
6617            P0PfsHa_SPEC,
6618            crate::common::RW,
6619        >::from_register(self, 0)
6620    }
6621
6622    #[doc = "N-Channel Open-Drain Control"]
6623    #[inline(always)]
6624    pub fn ncodr(
6625        self,
6626    ) -> crate::common::RegisterField<
6627        6,
6628        0x1,
6629        1,
6630        0,
6631        p0pfs_ha::Ncodr,
6632        p0pfs_ha::Ncodr,
6633        P0PfsHa_SPEC,
6634        crate::common::RW,
6635    > {
6636        crate::common::RegisterField::<
6637            6,
6638            0x1,
6639            1,
6640            0,
6641            p0pfs_ha::Ncodr,
6642            p0pfs_ha::Ncodr,
6643            P0PfsHa_SPEC,
6644            crate::common::RW,
6645        >::from_register(self, 0)
6646    }
6647
6648    #[doc = "IRQ Input Enable"]
6649    #[inline(always)]
6650    pub fn isel(
6651        self,
6652    ) -> crate::common::RegisterField<
6653        14,
6654        0x1,
6655        1,
6656        0,
6657        p0pfs_ha::Isel,
6658        p0pfs_ha::Isel,
6659        P0PfsHa_SPEC,
6660        crate::common::RW,
6661    > {
6662        crate::common::RegisterField::<
6663            14,
6664            0x1,
6665            1,
6666            0,
6667            p0pfs_ha::Isel,
6668            p0pfs_ha::Isel,
6669            P0PfsHa_SPEC,
6670            crate::common::RW,
6671        >::from_register(self, 0)
6672    }
6673
6674    #[doc = "Analog Input Enable"]
6675    #[inline(always)]
6676    pub fn asel(
6677        self,
6678    ) -> crate::common::RegisterField<
6679        15,
6680        0x1,
6681        1,
6682        0,
6683        p0pfs_ha::Asel,
6684        p0pfs_ha::Asel,
6685        P0PfsHa_SPEC,
6686        crate::common::RW,
6687    > {
6688        crate::common::RegisterField::<
6689            15,
6690            0x1,
6691            1,
6692            0,
6693            p0pfs_ha::Asel,
6694            p0pfs_ha::Asel,
6695            P0PfsHa_SPEC,
6696            crate::common::RW,
6697        >::from_register(self, 0)
6698    }
6699}
6700impl ::core::default::Default for P0PfsHa {
6701    #[inline(always)]
6702    fn default() -> P0PfsHa {
6703        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
6704    }
6705}
6706pub mod p0pfs_ha {
6707
6708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6709    pub struct Podr_SPEC;
6710    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6711    impl Podr {
6712        #[doc = "Output low"]
6713        pub const _0: Self = Self::new(0);
6714
6715        #[doc = "Output high"]
6716        pub const _1: Self = Self::new(1);
6717    }
6718    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6719    pub struct Pidr_SPEC;
6720    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6721    impl Pidr {
6722        #[doc = "Low level"]
6723        pub const _0: Self = Self::new(0);
6724
6725        #[doc = "High level"]
6726        pub const _1: Self = Self::new(1);
6727    }
6728    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6729    pub struct Pdr_SPEC;
6730    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6731    impl Pdr {
6732        #[doc = "Input (functions as an input pin)"]
6733        pub const _0: Self = Self::new(0);
6734
6735        #[doc = "Output (functions as an output pin)"]
6736        pub const _1: Self = Self::new(1);
6737    }
6738    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6739    pub struct Pcr_SPEC;
6740    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6741    impl Pcr {
6742        #[doc = "Disable input pull-up"]
6743        pub const _0: Self = Self::new(0);
6744
6745        #[doc = "Enable input pull-up"]
6746        pub const _1: Self = Self::new(1);
6747    }
6748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6749    pub struct Ncodr_SPEC;
6750    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6751    impl Ncodr {
6752        #[doc = "Output CMOS"]
6753        pub const _0: Self = Self::new(0);
6754
6755        #[doc = "Output NMOS open-drain"]
6756        pub const _1: Self = Self::new(1);
6757    }
6758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6759    pub struct Isel_SPEC;
6760    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6761    impl Isel {
6762        #[doc = "Do not use as IRQn input pin"]
6763        pub const _0: Self = Self::new(0);
6764
6765        #[doc = "Use as IRQn input pin"]
6766        pub const _1: Self = Self::new(1);
6767    }
6768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6769    pub struct Asel_SPEC;
6770    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6771    impl Asel {
6772        #[doc = "Do not use as analog pin"]
6773        pub const _0: Self = Self::new(0);
6774
6775        #[doc = "Use as analog pin"]
6776        pub const _1: Self = Self::new(1);
6777    }
6778}
6779#[doc(hidden)]
6780#[derive(Copy, Clone, Eq, PartialEq)]
6781pub struct P0PfsBy_SPEC;
6782impl crate::sealed::RegSpec for P0PfsBy_SPEC {
6783    type DataType = u8;
6784}
6785
6786#[doc = "Port 0%s Pin Function Select Register"]
6787pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
6788
6789impl P0PfsBy {
6790    #[doc = "Port Output Data"]
6791    #[inline(always)]
6792    pub fn podr(
6793        self,
6794    ) -> crate::common::RegisterField<
6795        0,
6796        0x1,
6797        1,
6798        0,
6799        p0pfs_by::Podr,
6800        p0pfs_by::Podr,
6801        P0PfsBy_SPEC,
6802        crate::common::RW,
6803    > {
6804        crate::common::RegisterField::<
6805            0,
6806            0x1,
6807            1,
6808            0,
6809            p0pfs_by::Podr,
6810            p0pfs_by::Podr,
6811            P0PfsBy_SPEC,
6812            crate::common::RW,
6813        >::from_register(self, 0)
6814    }
6815
6816    #[doc = "Port State"]
6817    #[inline(always)]
6818    pub fn pidr(
6819        self,
6820    ) -> crate::common::RegisterField<
6821        1,
6822        0x1,
6823        1,
6824        0,
6825        p0pfs_by::Pidr,
6826        p0pfs_by::Pidr,
6827        P0PfsBy_SPEC,
6828        crate::common::R,
6829    > {
6830        crate::common::RegisterField::<
6831            1,
6832            0x1,
6833            1,
6834            0,
6835            p0pfs_by::Pidr,
6836            p0pfs_by::Pidr,
6837            P0PfsBy_SPEC,
6838            crate::common::R,
6839        >::from_register(self, 0)
6840    }
6841
6842    #[doc = "Port Direction"]
6843    #[inline(always)]
6844    pub fn pdr(
6845        self,
6846    ) -> crate::common::RegisterField<
6847        2,
6848        0x1,
6849        1,
6850        0,
6851        p0pfs_by::Pdr,
6852        p0pfs_by::Pdr,
6853        P0PfsBy_SPEC,
6854        crate::common::RW,
6855    > {
6856        crate::common::RegisterField::<
6857            2,
6858            0x1,
6859            1,
6860            0,
6861            p0pfs_by::Pdr,
6862            p0pfs_by::Pdr,
6863            P0PfsBy_SPEC,
6864            crate::common::RW,
6865        >::from_register(self, 0)
6866    }
6867
6868    #[doc = "Pull-up Control"]
6869    #[inline(always)]
6870    pub fn pcr(
6871        self,
6872    ) -> crate::common::RegisterField<
6873        4,
6874        0x1,
6875        1,
6876        0,
6877        p0pfs_by::Pcr,
6878        p0pfs_by::Pcr,
6879        P0PfsBy_SPEC,
6880        crate::common::RW,
6881    > {
6882        crate::common::RegisterField::<
6883            4,
6884            0x1,
6885            1,
6886            0,
6887            p0pfs_by::Pcr,
6888            p0pfs_by::Pcr,
6889            P0PfsBy_SPEC,
6890            crate::common::RW,
6891        >::from_register(self, 0)
6892    }
6893
6894    #[doc = "N-Channel Open-Drain Control"]
6895    #[inline(always)]
6896    pub fn ncodr(
6897        self,
6898    ) -> crate::common::RegisterField<
6899        6,
6900        0x1,
6901        1,
6902        0,
6903        p0pfs_by::Ncodr,
6904        p0pfs_by::Ncodr,
6905        P0PfsBy_SPEC,
6906        crate::common::RW,
6907    > {
6908        crate::common::RegisterField::<
6909            6,
6910            0x1,
6911            1,
6912            0,
6913            p0pfs_by::Ncodr,
6914            p0pfs_by::Ncodr,
6915            P0PfsBy_SPEC,
6916            crate::common::RW,
6917        >::from_register(self, 0)
6918    }
6919}
6920impl ::core::default::Default for P0PfsBy {
6921    #[inline(always)]
6922    fn default() -> P0PfsBy {
6923        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
6924    }
6925}
6926pub mod p0pfs_by {
6927
6928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6929    pub struct Podr_SPEC;
6930    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6931    impl Podr {
6932        #[doc = "Output low"]
6933        pub const _0: Self = Self::new(0);
6934
6935        #[doc = "Output high"]
6936        pub const _1: Self = Self::new(1);
6937    }
6938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6939    pub struct Pidr_SPEC;
6940    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6941    impl Pidr {
6942        #[doc = "Low level"]
6943        pub const _0: Self = Self::new(0);
6944
6945        #[doc = "High level"]
6946        pub const _1: Self = Self::new(1);
6947    }
6948    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6949    pub struct Pdr_SPEC;
6950    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6951    impl Pdr {
6952        #[doc = "Input (functions as an input pin)"]
6953        pub const _0: Self = Self::new(0);
6954
6955        #[doc = "Output (functions as an output pin)"]
6956        pub const _1: Self = Self::new(1);
6957    }
6958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6959    pub struct Pcr_SPEC;
6960    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6961    impl Pcr {
6962        #[doc = "Disable input pull-up"]
6963        pub const _0: Self = Self::new(0);
6964
6965        #[doc = "Enable input pull-up"]
6966        pub const _1: Self = Self::new(1);
6967    }
6968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6969    pub struct Ncodr_SPEC;
6970    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6971    impl Ncodr {
6972        #[doc = "Output CMOS"]
6973        pub const _0: Self = Self::new(0);
6974
6975        #[doc = "Output NMOS open-drain"]
6976        pub const _1: Self = Self::new(1);
6977    }
6978}
6979#[doc(hidden)]
6980#[derive(Copy, Clone, Eq, PartialEq)]
6981pub struct P10Pfs_SPEC;
6982impl crate::sealed::RegSpec for P10Pfs_SPEC {
6983    type DataType = u32;
6984}
6985
6986#[doc = "Port 10%s Pin Function Select Register"]
6987pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
6988
6989impl P10Pfs {
6990    #[doc = "Port Output Data"]
6991    #[inline(always)]
6992    pub fn podr(
6993        self,
6994    ) -> crate::common::RegisterField<
6995        0,
6996        0x1,
6997        1,
6998        0,
6999        p10pfs::Podr,
7000        p10pfs::Podr,
7001        P10Pfs_SPEC,
7002        crate::common::RW,
7003    > {
7004        crate::common::RegisterField::<
7005            0,
7006            0x1,
7007            1,
7008            0,
7009            p10pfs::Podr,
7010            p10pfs::Podr,
7011            P10Pfs_SPEC,
7012            crate::common::RW,
7013        >::from_register(self, 0)
7014    }
7015
7016    #[doc = "Port State"]
7017    #[inline(always)]
7018    pub fn pidr(
7019        self,
7020    ) -> crate::common::RegisterField<
7021        1,
7022        0x1,
7023        1,
7024        0,
7025        p10pfs::Pidr,
7026        p10pfs::Pidr,
7027        P10Pfs_SPEC,
7028        crate::common::R,
7029    > {
7030        crate::common::RegisterField::<
7031            1,
7032            0x1,
7033            1,
7034            0,
7035            p10pfs::Pidr,
7036            p10pfs::Pidr,
7037            P10Pfs_SPEC,
7038            crate::common::R,
7039        >::from_register(self, 0)
7040    }
7041
7042    #[doc = "Port Direction"]
7043    #[inline(always)]
7044    pub fn pdr(
7045        self,
7046    ) -> crate::common::RegisterField<
7047        2,
7048        0x1,
7049        1,
7050        0,
7051        p10pfs::Pdr,
7052        p10pfs::Pdr,
7053        P10Pfs_SPEC,
7054        crate::common::RW,
7055    > {
7056        crate::common::RegisterField::<
7057            2,
7058            0x1,
7059            1,
7060            0,
7061            p10pfs::Pdr,
7062            p10pfs::Pdr,
7063            P10Pfs_SPEC,
7064            crate::common::RW,
7065        >::from_register(self, 0)
7066    }
7067
7068    #[doc = "Pull-up Control"]
7069    #[inline(always)]
7070    pub fn pcr(
7071        self,
7072    ) -> crate::common::RegisterField<
7073        4,
7074        0x1,
7075        1,
7076        0,
7077        p10pfs::Pcr,
7078        p10pfs::Pcr,
7079        P10Pfs_SPEC,
7080        crate::common::RW,
7081    > {
7082        crate::common::RegisterField::<
7083            4,
7084            0x1,
7085            1,
7086            0,
7087            p10pfs::Pcr,
7088            p10pfs::Pcr,
7089            P10Pfs_SPEC,
7090            crate::common::RW,
7091        >::from_register(self, 0)
7092    }
7093
7094    #[doc = "N-Channel Open-Drain Control"]
7095    #[inline(always)]
7096    pub fn ncodr(
7097        self,
7098    ) -> crate::common::RegisterField<
7099        6,
7100        0x1,
7101        1,
7102        0,
7103        p10pfs::Ncodr,
7104        p10pfs::Ncodr,
7105        P10Pfs_SPEC,
7106        crate::common::RW,
7107    > {
7108        crate::common::RegisterField::<
7109            6,
7110            0x1,
7111            1,
7112            0,
7113            p10pfs::Ncodr,
7114            p10pfs::Ncodr,
7115            P10Pfs_SPEC,
7116            crate::common::RW,
7117        >::from_register(self, 0)
7118    }
7119
7120    #[doc = "Event on Falling/Event on Rising"]
7121    #[inline(always)]
7122    pub fn eofr(
7123        self,
7124    ) -> crate::common::RegisterField<
7125        12,
7126        0x3,
7127        1,
7128        0,
7129        p10pfs::Eofr,
7130        p10pfs::Eofr,
7131        P10Pfs_SPEC,
7132        crate::common::RW,
7133    > {
7134        crate::common::RegisterField::<
7135            12,
7136            0x3,
7137            1,
7138            0,
7139            p10pfs::Eofr,
7140            p10pfs::Eofr,
7141            P10Pfs_SPEC,
7142            crate::common::RW,
7143        >::from_register(self, 0)
7144    }
7145
7146    #[doc = "IRQ Input Enable"]
7147    #[inline(always)]
7148    pub fn isel(
7149        self,
7150    ) -> crate::common::RegisterField<
7151        14,
7152        0x1,
7153        1,
7154        0,
7155        p10pfs::Isel,
7156        p10pfs::Isel,
7157        P10Pfs_SPEC,
7158        crate::common::RW,
7159    > {
7160        crate::common::RegisterField::<
7161            14,
7162            0x1,
7163            1,
7164            0,
7165            p10pfs::Isel,
7166            p10pfs::Isel,
7167            P10Pfs_SPEC,
7168            crate::common::RW,
7169        >::from_register(self, 0)
7170    }
7171
7172    #[doc = "Analog Input Enable"]
7173    #[inline(always)]
7174    pub fn asel(
7175        self,
7176    ) -> crate::common::RegisterField<
7177        15,
7178        0x1,
7179        1,
7180        0,
7181        p10pfs::Asel,
7182        p10pfs::Asel,
7183        P10Pfs_SPEC,
7184        crate::common::RW,
7185    > {
7186        crate::common::RegisterField::<
7187            15,
7188            0x1,
7189            1,
7190            0,
7191            p10pfs::Asel,
7192            p10pfs::Asel,
7193            P10Pfs_SPEC,
7194            crate::common::RW,
7195        >::from_register(self, 0)
7196    }
7197
7198    #[doc = "Port Mode Control"]
7199    #[inline(always)]
7200    pub fn pmr(
7201        self,
7202    ) -> crate::common::RegisterField<
7203        16,
7204        0x1,
7205        1,
7206        0,
7207        p10pfs::Pmr,
7208        p10pfs::Pmr,
7209        P10Pfs_SPEC,
7210        crate::common::RW,
7211    > {
7212        crate::common::RegisterField::<
7213            16,
7214            0x1,
7215            1,
7216            0,
7217            p10pfs::Pmr,
7218            p10pfs::Pmr,
7219            P10Pfs_SPEC,
7220            crate::common::RW,
7221        >::from_register(self, 0)
7222    }
7223
7224    #[doc = "Peripheral Select"]
7225    #[inline(always)]
7226    pub fn psel(
7227        self,
7228    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
7229        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
7230    }
7231}
7232impl ::core::default::Default for P10Pfs {
7233    #[inline(always)]
7234    fn default() -> P10Pfs {
7235        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
7236    }
7237}
7238pub mod p10pfs {
7239
7240    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7241    pub struct Podr_SPEC;
7242    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7243    impl Podr {
7244        #[doc = "Output low"]
7245        pub const _0: Self = Self::new(0);
7246
7247        #[doc = "Output high"]
7248        pub const _1: Self = Self::new(1);
7249    }
7250    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7251    pub struct Pidr_SPEC;
7252    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7253    impl Pidr {
7254        #[doc = "Low level"]
7255        pub const _0: Self = Self::new(0);
7256
7257        #[doc = "High level"]
7258        pub const _1: Self = Self::new(1);
7259    }
7260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7261    pub struct Pdr_SPEC;
7262    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7263    impl Pdr {
7264        #[doc = "Input (functions as an input pin)"]
7265        pub const _0: Self = Self::new(0);
7266
7267        #[doc = "Output (functions as an output pin)"]
7268        pub const _1: Self = Self::new(1);
7269    }
7270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7271    pub struct Pcr_SPEC;
7272    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7273    impl Pcr {
7274        #[doc = "Disable input pull-up"]
7275        pub const _0: Self = Self::new(0);
7276
7277        #[doc = "Enable input pull-up"]
7278        pub const _1: Self = Self::new(1);
7279    }
7280    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7281    pub struct Ncodr_SPEC;
7282    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7283    impl Ncodr {
7284        #[doc = "Output CMOS"]
7285        pub const _0: Self = Self::new(0);
7286
7287        #[doc = "Output NMOS open-drain"]
7288        pub const _1: Self = Self::new(1);
7289    }
7290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7291    pub struct Eofr_SPEC;
7292    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7293    impl Eofr {
7294        #[doc = "Don\'t care"]
7295        pub const _00: Self = Self::new(0);
7296
7297        #[doc = "Detect rising edge"]
7298        pub const _01: Self = Self::new(1);
7299
7300        #[doc = "Detect falling edge"]
7301        pub const _10: Self = Self::new(2);
7302
7303        #[doc = "Detect both edges"]
7304        pub const _11: Self = Self::new(3);
7305    }
7306    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7307    pub struct Isel_SPEC;
7308    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7309    impl Isel {
7310        #[doc = "Do not use as IRQn input pin"]
7311        pub const _0: Self = Self::new(0);
7312
7313        #[doc = "Use as IRQn input pin"]
7314        pub const _1: Self = Self::new(1);
7315    }
7316    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7317    pub struct Asel_SPEC;
7318    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7319    impl Asel {
7320        #[doc = "Do not use as analog pin"]
7321        pub const _0: Self = Self::new(0);
7322
7323        #[doc = "Use as analog pin"]
7324        pub const _1: Self = Self::new(1);
7325    }
7326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7327    pub struct Pmr_SPEC;
7328    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7329    impl Pmr {
7330        #[doc = "Use as general I/O pin"]
7331        pub const _0: Self = Self::new(0);
7332
7333        #[doc = "Use as I/O port for peripheral functions"]
7334        pub const _1: Self = Self::new(1);
7335    }
7336}
7337#[doc(hidden)]
7338#[derive(Copy, Clone, Eq, PartialEq)]
7339pub struct P10PfsHa_SPEC;
7340impl crate::sealed::RegSpec for P10PfsHa_SPEC {
7341    type DataType = u16;
7342}
7343
7344#[doc = "Port 10%s Pin Function Select Register"]
7345pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
7346
7347impl P10PfsHa {
7348    #[doc = "Port Output Data"]
7349    #[inline(always)]
7350    pub fn podr(
7351        self,
7352    ) -> crate::common::RegisterField<
7353        0,
7354        0x1,
7355        1,
7356        0,
7357        p10pfs_ha::Podr,
7358        p10pfs_ha::Podr,
7359        P10PfsHa_SPEC,
7360        crate::common::RW,
7361    > {
7362        crate::common::RegisterField::<
7363            0,
7364            0x1,
7365            1,
7366            0,
7367            p10pfs_ha::Podr,
7368            p10pfs_ha::Podr,
7369            P10PfsHa_SPEC,
7370            crate::common::RW,
7371        >::from_register(self, 0)
7372    }
7373
7374    #[doc = "Port State"]
7375    #[inline(always)]
7376    pub fn pidr(
7377        self,
7378    ) -> crate::common::RegisterField<
7379        1,
7380        0x1,
7381        1,
7382        0,
7383        p10pfs_ha::Pidr,
7384        p10pfs_ha::Pidr,
7385        P10PfsHa_SPEC,
7386        crate::common::R,
7387    > {
7388        crate::common::RegisterField::<
7389            1,
7390            0x1,
7391            1,
7392            0,
7393            p10pfs_ha::Pidr,
7394            p10pfs_ha::Pidr,
7395            P10PfsHa_SPEC,
7396            crate::common::R,
7397        >::from_register(self, 0)
7398    }
7399
7400    #[doc = "Port Direction"]
7401    #[inline(always)]
7402    pub fn pdr(
7403        self,
7404    ) -> crate::common::RegisterField<
7405        2,
7406        0x1,
7407        1,
7408        0,
7409        p10pfs_ha::Pdr,
7410        p10pfs_ha::Pdr,
7411        P10PfsHa_SPEC,
7412        crate::common::RW,
7413    > {
7414        crate::common::RegisterField::<
7415            2,
7416            0x1,
7417            1,
7418            0,
7419            p10pfs_ha::Pdr,
7420            p10pfs_ha::Pdr,
7421            P10PfsHa_SPEC,
7422            crate::common::RW,
7423        >::from_register(self, 0)
7424    }
7425
7426    #[doc = "Pull-up Control"]
7427    #[inline(always)]
7428    pub fn pcr(
7429        self,
7430    ) -> crate::common::RegisterField<
7431        4,
7432        0x1,
7433        1,
7434        0,
7435        p10pfs_ha::Pcr,
7436        p10pfs_ha::Pcr,
7437        P10PfsHa_SPEC,
7438        crate::common::RW,
7439    > {
7440        crate::common::RegisterField::<
7441            4,
7442            0x1,
7443            1,
7444            0,
7445            p10pfs_ha::Pcr,
7446            p10pfs_ha::Pcr,
7447            P10PfsHa_SPEC,
7448            crate::common::RW,
7449        >::from_register(self, 0)
7450    }
7451
7452    #[doc = "N-Channel Open-Drain Control"]
7453    #[inline(always)]
7454    pub fn ncodr(
7455        self,
7456    ) -> crate::common::RegisterField<
7457        6,
7458        0x1,
7459        1,
7460        0,
7461        p10pfs_ha::Ncodr,
7462        p10pfs_ha::Ncodr,
7463        P10PfsHa_SPEC,
7464        crate::common::RW,
7465    > {
7466        crate::common::RegisterField::<
7467            6,
7468            0x1,
7469            1,
7470            0,
7471            p10pfs_ha::Ncodr,
7472            p10pfs_ha::Ncodr,
7473            P10PfsHa_SPEC,
7474            crate::common::RW,
7475        >::from_register(self, 0)
7476    }
7477
7478    #[doc = "Event on Falling/Event on Rising"]
7479    #[inline(always)]
7480    pub fn eofr(
7481        self,
7482    ) -> crate::common::RegisterField<
7483        12,
7484        0x3,
7485        1,
7486        0,
7487        p10pfs_ha::Eofr,
7488        p10pfs_ha::Eofr,
7489        P10PfsHa_SPEC,
7490        crate::common::RW,
7491    > {
7492        crate::common::RegisterField::<
7493            12,
7494            0x3,
7495            1,
7496            0,
7497            p10pfs_ha::Eofr,
7498            p10pfs_ha::Eofr,
7499            P10PfsHa_SPEC,
7500            crate::common::RW,
7501        >::from_register(self, 0)
7502    }
7503
7504    #[doc = "IRQ Input Enable"]
7505    #[inline(always)]
7506    pub fn isel(
7507        self,
7508    ) -> crate::common::RegisterField<
7509        14,
7510        0x1,
7511        1,
7512        0,
7513        p10pfs_ha::Isel,
7514        p10pfs_ha::Isel,
7515        P10PfsHa_SPEC,
7516        crate::common::RW,
7517    > {
7518        crate::common::RegisterField::<
7519            14,
7520            0x1,
7521            1,
7522            0,
7523            p10pfs_ha::Isel,
7524            p10pfs_ha::Isel,
7525            P10PfsHa_SPEC,
7526            crate::common::RW,
7527        >::from_register(self, 0)
7528    }
7529
7530    #[doc = "Analog Input Enable"]
7531    #[inline(always)]
7532    pub fn asel(
7533        self,
7534    ) -> crate::common::RegisterField<
7535        15,
7536        0x1,
7537        1,
7538        0,
7539        p10pfs_ha::Asel,
7540        p10pfs_ha::Asel,
7541        P10PfsHa_SPEC,
7542        crate::common::RW,
7543    > {
7544        crate::common::RegisterField::<
7545            15,
7546            0x1,
7547            1,
7548            0,
7549            p10pfs_ha::Asel,
7550            p10pfs_ha::Asel,
7551            P10PfsHa_SPEC,
7552            crate::common::RW,
7553        >::from_register(self, 0)
7554    }
7555}
7556impl ::core::default::Default for P10PfsHa {
7557    #[inline(always)]
7558    fn default() -> P10PfsHa {
7559        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
7560    }
7561}
7562pub mod p10pfs_ha {
7563
7564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7565    pub struct Podr_SPEC;
7566    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7567    impl Podr {
7568        #[doc = "Output low"]
7569        pub const _0: Self = Self::new(0);
7570
7571        #[doc = "Output high"]
7572        pub const _1: Self = Self::new(1);
7573    }
7574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7575    pub struct Pidr_SPEC;
7576    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7577    impl Pidr {
7578        #[doc = "Low level"]
7579        pub const _0: Self = Self::new(0);
7580
7581        #[doc = "High level"]
7582        pub const _1: Self = Self::new(1);
7583    }
7584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7585    pub struct Pdr_SPEC;
7586    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7587    impl Pdr {
7588        #[doc = "Input (functions as an input pin)"]
7589        pub const _0: Self = Self::new(0);
7590
7591        #[doc = "Output (functions as an output pin)"]
7592        pub const _1: Self = Self::new(1);
7593    }
7594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7595    pub struct Pcr_SPEC;
7596    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7597    impl Pcr {
7598        #[doc = "Disable input pull-up"]
7599        pub const _0: Self = Self::new(0);
7600
7601        #[doc = "Enable input pull-up"]
7602        pub const _1: Self = Self::new(1);
7603    }
7604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7605    pub struct Ncodr_SPEC;
7606    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7607    impl Ncodr {
7608        #[doc = "Output CMOS"]
7609        pub const _0: Self = Self::new(0);
7610
7611        #[doc = "Output NMOS open-drain"]
7612        pub const _1: Self = Self::new(1);
7613    }
7614    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7615    pub struct Eofr_SPEC;
7616    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7617    impl Eofr {
7618        #[doc = "Don\'t care"]
7619        pub const _00: Self = Self::new(0);
7620
7621        #[doc = "Detect rising edge"]
7622        pub const _01: Self = Self::new(1);
7623
7624        #[doc = "Detect falling edge"]
7625        pub const _10: Self = Self::new(2);
7626
7627        #[doc = "Detect both edges"]
7628        pub const _11: Self = Self::new(3);
7629    }
7630    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7631    pub struct Isel_SPEC;
7632    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7633    impl Isel {
7634        #[doc = "Do not use as IRQn input pin"]
7635        pub const _0: Self = Self::new(0);
7636
7637        #[doc = "Use as IRQn input pin"]
7638        pub const _1: Self = Self::new(1);
7639    }
7640    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7641    pub struct Asel_SPEC;
7642    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7643    impl Asel {
7644        #[doc = "Do not use as analog pin"]
7645        pub const _0: Self = Self::new(0);
7646
7647        #[doc = "Use as analog pin"]
7648        pub const _1: Self = Self::new(1);
7649    }
7650}
7651#[doc(hidden)]
7652#[derive(Copy, Clone, Eq, PartialEq)]
7653pub struct P10PfsBy_SPEC;
7654impl crate::sealed::RegSpec for P10PfsBy_SPEC {
7655    type DataType = u8;
7656}
7657
7658#[doc = "Port 10%s Pin Function Select Register"]
7659pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
7660
7661impl P10PfsBy {
7662    #[doc = "Port Output Data"]
7663    #[inline(always)]
7664    pub fn podr(
7665        self,
7666    ) -> crate::common::RegisterField<
7667        0,
7668        0x1,
7669        1,
7670        0,
7671        p10pfs_by::Podr,
7672        p10pfs_by::Podr,
7673        P10PfsBy_SPEC,
7674        crate::common::RW,
7675    > {
7676        crate::common::RegisterField::<
7677            0,
7678            0x1,
7679            1,
7680            0,
7681            p10pfs_by::Podr,
7682            p10pfs_by::Podr,
7683            P10PfsBy_SPEC,
7684            crate::common::RW,
7685        >::from_register(self, 0)
7686    }
7687
7688    #[doc = "Port State"]
7689    #[inline(always)]
7690    pub fn pidr(
7691        self,
7692    ) -> crate::common::RegisterField<
7693        1,
7694        0x1,
7695        1,
7696        0,
7697        p10pfs_by::Pidr,
7698        p10pfs_by::Pidr,
7699        P10PfsBy_SPEC,
7700        crate::common::R,
7701    > {
7702        crate::common::RegisterField::<
7703            1,
7704            0x1,
7705            1,
7706            0,
7707            p10pfs_by::Pidr,
7708            p10pfs_by::Pidr,
7709            P10PfsBy_SPEC,
7710            crate::common::R,
7711        >::from_register(self, 0)
7712    }
7713
7714    #[doc = "Port Direction"]
7715    #[inline(always)]
7716    pub fn pdr(
7717        self,
7718    ) -> crate::common::RegisterField<
7719        2,
7720        0x1,
7721        1,
7722        0,
7723        p10pfs_by::Pdr,
7724        p10pfs_by::Pdr,
7725        P10PfsBy_SPEC,
7726        crate::common::RW,
7727    > {
7728        crate::common::RegisterField::<
7729            2,
7730            0x1,
7731            1,
7732            0,
7733            p10pfs_by::Pdr,
7734            p10pfs_by::Pdr,
7735            P10PfsBy_SPEC,
7736            crate::common::RW,
7737        >::from_register(self, 0)
7738    }
7739
7740    #[doc = "Pull-up Control"]
7741    #[inline(always)]
7742    pub fn pcr(
7743        self,
7744    ) -> crate::common::RegisterField<
7745        4,
7746        0x1,
7747        1,
7748        0,
7749        p10pfs_by::Pcr,
7750        p10pfs_by::Pcr,
7751        P10PfsBy_SPEC,
7752        crate::common::RW,
7753    > {
7754        crate::common::RegisterField::<
7755            4,
7756            0x1,
7757            1,
7758            0,
7759            p10pfs_by::Pcr,
7760            p10pfs_by::Pcr,
7761            P10PfsBy_SPEC,
7762            crate::common::RW,
7763        >::from_register(self, 0)
7764    }
7765
7766    #[doc = "N-Channel Open-Drain Control"]
7767    #[inline(always)]
7768    pub fn ncodr(
7769        self,
7770    ) -> crate::common::RegisterField<
7771        6,
7772        0x1,
7773        1,
7774        0,
7775        p10pfs_by::Ncodr,
7776        p10pfs_by::Ncodr,
7777        P10PfsBy_SPEC,
7778        crate::common::RW,
7779    > {
7780        crate::common::RegisterField::<
7781            6,
7782            0x1,
7783            1,
7784            0,
7785            p10pfs_by::Ncodr,
7786            p10pfs_by::Ncodr,
7787            P10PfsBy_SPEC,
7788            crate::common::RW,
7789        >::from_register(self, 0)
7790    }
7791}
7792impl ::core::default::Default for P10PfsBy {
7793    #[inline(always)]
7794    fn default() -> P10PfsBy {
7795        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
7796    }
7797}
7798pub mod p10pfs_by {
7799
7800    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7801    pub struct Podr_SPEC;
7802    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7803    impl Podr {
7804        #[doc = "Output low"]
7805        pub const _0: Self = Self::new(0);
7806
7807        #[doc = "Output high"]
7808        pub const _1: Self = Self::new(1);
7809    }
7810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7811    pub struct Pidr_SPEC;
7812    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7813    impl Pidr {
7814        #[doc = "Low level"]
7815        pub const _0: Self = Self::new(0);
7816
7817        #[doc = "High level"]
7818        pub const _1: Self = Self::new(1);
7819    }
7820    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7821    pub struct Pdr_SPEC;
7822    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7823    impl Pdr {
7824        #[doc = "Input (functions as an input pin)"]
7825        pub const _0: Self = Self::new(0);
7826
7827        #[doc = "Output (functions as an output pin)"]
7828        pub const _1: Self = Self::new(1);
7829    }
7830    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7831    pub struct Pcr_SPEC;
7832    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7833    impl Pcr {
7834        #[doc = "Disable input pull-up"]
7835        pub const _0: Self = Self::new(0);
7836
7837        #[doc = "Enable input pull-up"]
7838        pub const _1: Self = Self::new(1);
7839    }
7840    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7841    pub struct Ncodr_SPEC;
7842    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7843    impl Ncodr {
7844        #[doc = "Output CMOS"]
7845        pub const _0: Self = Self::new(0);
7846
7847        #[doc = "Output NMOS open-drain"]
7848        pub const _1: Self = Self::new(1);
7849    }
7850}
7851#[doc(hidden)]
7852#[derive(Copy, Clone, Eq, PartialEq)]
7853pub struct P1Pfs_SPEC;
7854impl crate::sealed::RegSpec for P1Pfs_SPEC {
7855    type DataType = u32;
7856}
7857
7858#[doc = "Port 1%s Pin Function Select Register"]
7859pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
7860
7861impl P1Pfs {
7862    #[doc = "Port Output Data"]
7863    #[inline(always)]
7864    pub fn podr(
7865        self,
7866    ) -> crate::common::RegisterField<
7867        0,
7868        0x1,
7869        1,
7870        0,
7871        p1pfs::Podr,
7872        p1pfs::Podr,
7873        P1Pfs_SPEC,
7874        crate::common::RW,
7875    > {
7876        crate::common::RegisterField::<
7877            0,
7878            0x1,
7879            1,
7880            0,
7881            p1pfs::Podr,
7882            p1pfs::Podr,
7883            P1Pfs_SPEC,
7884            crate::common::RW,
7885        >::from_register(self, 0)
7886    }
7887
7888    #[doc = "Port State"]
7889    #[inline(always)]
7890    pub fn pidr(
7891        self,
7892    ) -> crate::common::RegisterField<
7893        1,
7894        0x1,
7895        1,
7896        0,
7897        p1pfs::Pidr,
7898        p1pfs::Pidr,
7899        P1Pfs_SPEC,
7900        crate::common::R,
7901    > {
7902        crate::common::RegisterField::<
7903            1,
7904            0x1,
7905            1,
7906            0,
7907            p1pfs::Pidr,
7908            p1pfs::Pidr,
7909            P1Pfs_SPEC,
7910            crate::common::R,
7911        >::from_register(self, 0)
7912    }
7913
7914    #[doc = "Port Direction"]
7915    #[inline(always)]
7916    pub fn pdr(
7917        self,
7918    ) -> crate::common::RegisterField<
7919        2,
7920        0x1,
7921        1,
7922        0,
7923        p1pfs::Pdr,
7924        p1pfs::Pdr,
7925        P1Pfs_SPEC,
7926        crate::common::RW,
7927    > {
7928        crate::common::RegisterField::<
7929            2,
7930            0x1,
7931            1,
7932            0,
7933            p1pfs::Pdr,
7934            p1pfs::Pdr,
7935            P1Pfs_SPEC,
7936            crate::common::RW,
7937        >::from_register(self, 0)
7938    }
7939
7940    #[doc = "Pull-up Control"]
7941    #[inline(always)]
7942    pub fn pcr(
7943        self,
7944    ) -> crate::common::RegisterField<
7945        4,
7946        0x1,
7947        1,
7948        0,
7949        p1pfs::Pcr,
7950        p1pfs::Pcr,
7951        P1Pfs_SPEC,
7952        crate::common::RW,
7953    > {
7954        crate::common::RegisterField::<
7955            4,
7956            0x1,
7957            1,
7958            0,
7959            p1pfs::Pcr,
7960            p1pfs::Pcr,
7961            P1Pfs_SPEC,
7962            crate::common::RW,
7963        >::from_register(self, 0)
7964    }
7965
7966    #[doc = "N-Channel Open-Drain Control"]
7967    #[inline(always)]
7968    pub fn ncodr(
7969        self,
7970    ) -> crate::common::RegisterField<
7971        6,
7972        0x1,
7973        1,
7974        0,
7975        p1pfs::Ncodr,
7976        p1pfs::Ncodr,
7977        P1Pfs_SPEC,
7978        crate::common::RW,
7979    > {
7980        crate::common::RegisterField::<
7981            6,
7982            0x1,
7983            1,
7984            0,
7985            p1pfs::Ncodr,
7986            p1pfs::Ncodr,
7987            P1Pfs_SPEC,
7988            crate::common::RW,
7989        >::from_register(self, 0)
7990    }
7991
7992    #[doc = "Event on Falling/Event on Rising"]
7993    #[inline(always)]
7994    pub fn eofr(
7995        self,
7996    ) -> crate::common::RegisterField<
7997        12,
7998        0x3,
7999        1,
8000        0,
8001        p1pfs::Eofr,
8002        p1pfs::Eofr,
8003        P1Pfs_SPEC,
8004        crate::common::RW,
8005    > {
8006        crate::common::RegisterField::<
8007            12,
8008            0x3,
8009            1,
8010            0,
8011            p1pfs::Eofr,
8012            p1pfs::Eofr,
8013            P1Pfs_SPEC,
8014            crate::common::RW,
8015        >::from_register(self, 0)
8016    }
8017
8018    #[doc = "IRQ Input Enable"]
8019    #[inline(always)]
8020    pub fn isel(
8021        self,
8022    ) -> crate::common::RegisterField<
8023        14,
8024        0x1,
8025        1,
8026        0,
8027        p1pfs::Isel,
8028        p1pfs::Isel,
8029        P1Pfs_SPEC,
8030        crate::common::RW,
8031    > {
8032        crate::common::RegisterField::<
8033            14,
8034            0x1,
8035            1,
8036            0,
8037            p1pfs::Isel,
8038            p1pfs::Isel,
8039            P1Pfs_SPEC,
8040            crate::common::RW,
8041        >::from_register(self, 0)
8042    }
8043
8044    #[doc = "Analog Input Enable"]
8045    #[inline(always)]
8046    pub fn asel(
8047        self,
8048    ) -> crate::common::RegisterField<
8049        15,
8050        0x1,
8051        1,
8052        0,
8053        p1pfs::Asel,
8054        p1pfs::Asel,
8055        P1Pfs_SPEC,
8056        crate::common::RW,
8057    > {
8058        crate::common::RegisterField::<
8059            15,
8060            0x1,
8061            1,
8062            0,
8063            p1pfs::Asel,
8064            p1pfs::Asel,
8065            P1Pfs_SPEC,
8066            crate::common::RW,
8067        >::from_register(self, 0)
8068    }
8069
8070    #[doc = "Port Mode Control"]
8071    #[inline(always)]
8072    pub fn pmr(
8073        self,
8074    ) -> crate::common::RegisterField<
8075        16,
8076        0x1,
8077        1,
8078        0,
8079        p1pfs::Pmr,
8080        p1pfs::Pmr,
8081        P1Pfs_SPEC,
8082        crate::common::RW,
8083    > {
8084        crate::common::RegisterField::<
8085            16,
8086            0x1,
8087            1,
8088            0,
8089            p1pfs::Pmr,
8090            p1pfs::Pmr,
8091            P1Pfs_SPEC,
8092            crate::common::RW,
8093        >::from_register(self, 0)
8094    }
8095
8096    #[doc = "Peripheral Select"]
8097    #[inline(always)]
8098    pub fn psel(
8099        self,
8100    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
8101        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
8102    }
8103}
8104impl ::core::default::Default for P1Pfs {
8105    #[inline(always)]
8106    fn default() -> P1Pfs {
8107        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
8108    }
8109}
8110pub mod p1pfs {
8111
8112    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8113    pub struct Podr_SPEC;
8114    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8115    impl Podr {
8116        #[doc = "Output low"]
8117        pub const _0: Self = Self::new(0);
8118
8119        #[doc = "Output high"]
8120        pub const _1: Self = Self::new(1);
8121    }
8122    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8123    pub struct Pidr_SPEC;
8124    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8125    impl Pidr {
8126        #[doc = "Low level"]
8127        pub const _0: Self = Self::new(0);
8128
8129        #[doc = "High level"]
8130        pub const _1: Self = Self::new(1);
8131    }
8132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8133    pub struct Pdr_SPEC;
8134    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8135    impl Pdr {
8136        #[doc = "Input (functions as an input pin)"]
8137        pub const _0: Self = Self::new(0);
8138
8139        #[doc = "Output (functions as an output pin)"]
8140        pub const _1: Self = Self::new(1);
8141    }
8142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8143    pub struct Pcr_SPEC;
8144    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8145    impl Pcr {
8146        #[doc = "Disable input pull-up"]
8147        pub const _0: Self = Self::new(0);
8148
8149        #[doc = "Enable input pull-up"]
8150        pub const _1: Self = Self::new(1);
8151    }
8152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8153    pub struct Ncodr_SPEC;
8154    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8155    impl Ncodr {
8156        #[doc = "Output CMOS"]
8157        pub const _0: Self = Self::new(0);
8158
8159        #[doc = "Output NMOS open-drain"]
8160        pub const _1: Self = Self::new(1);
8161    }
8162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8163    pub struct Eofr_SPEC;
8164    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8165    impl Eofr {
8166        #[doc = "Don\'t care"]
8167        pub const _00: Self = Self::new(0);
8168
8169        #[doc = "Detect rising edge"]
8170        pub const _01: Self = Self::new(1);
8171
8172        #[doc = "Detect falling edge"]
8173        pub const _10: Self = Self::new(2);
8174
8175        #[doc = "Detect both edges"]
8176        pub const _11: Self = Self::new(3);
8177    }
8178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8179    pub struct Isel_SPEC;
8180    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8181    impl Isel {
8182        #[doc = "Do not use as IRQn input pin"]
8183        pub const _0: Self = Self::new(0);
8184
8185        #[doc = "Use as IRQn input pin"]
8186        pub const _1: Self = Self::new(1);
8187    }
8188    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8189    pub struct Asel_SPEC;
8190    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8191    impl Asel {
8192        #[doc = "Do not use as analog pin"]
8193        pub const _0: Self = Self::new(0);
8194
8195        #[doc = "Use as analog pin"]
8196        pub const _1: Self = Self::new(1);
8197    }
8198    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8199    pub struct Pmr_SPEC;
8200    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8201    impl Pmr {
8202        #[doc = "Use as general I/O pin"]
8203        pub const _0: Self = Self::new(0);
8204
8205        #[doc = "Use as I/O port for peripheral functions"]
8206        pub const _1: Self = Self::new(1);
8207    }
8208}
8209#[doc(hidden)]
8210#[derive(Copy, Clone, Eq, PartialEq)]
8211pub struct P1PfsHa_SPEC;
8212impl crate::sealed::RegSpec for P1PfsHa_SPEC {
8213    type DataType = u16;
8214}
8215
8216#[doc = "Port 1%s Pin Function Select Register"]
8217pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
8218
8219impl P1PfsHa {
8220    #[doc = "Port Output Data"]
8221    #[inline(always)]
8222    pub fn podr(
8223        self,
8224    ) -> crate::common::RegisterField<
8225        0,
8226        0x1,
8227        1,
8228        0,
8229        p1pfs_ha::Podr,
8230        p1pfs_ha::Podr,
8231        P1PfsHa_SPEC,
8232        crate::common::RW,
8233    > {
8234        crate::common::RegisterField::<
8235            0,
8236            0x1,
8237            1,
8238            0,
8239            p1pfs_ha::Podr,
8240            p1pfs_ha::Podr,
8241            P1PfsHa_SPEC,
8242            crate::common::RW,
8243        >::from_register(self, 0)
8244    }
8245
8246    #[doc = "Port State"]
8247    #[inline(always)]
8248    pub fn pidr(
8249        self,
8250    ) -> crate::common::RegisterField<
8251        1,
8252        0x1,
8253        1,
8254        0,
8255        p1pfs_ha::Pidr,
8256        p1pfs_ha::Pidr,
8257        P1PfsHa_SPEC,
8258        crate::common::R,
8259    > {
8260        crate::common::RegisterField::<
8261            1,
8262            0x1,
8263            1,
8264            0,
8265            p1pfs_ha::Pidr,
8266            p1pfs_ha::Pidr,
8267            P1PfsHa_SPEC,
8268            crate::common::R,
8269        >::from_register(self, 0)
8270    }
8271
8272    #[doc = "Port Direction"]
8273    #[inline(always)]
8274    pub fn pdr(
8275        self,
8276    ) -> crate::common::RegisterField<
8277        2,
8278        0x1,
8279        1,
8280        0,
8281        p1pfs_ha::Pdr,
8282        p1pfs_ha::Pdr,
8283        P1PfsHa_SPEC,
8284        crate::common::RW,
8285    > {
8286        crate::common::RegisterField::<
8287            2,
8288            0x1,
8289            1,
8290            0,
8291            p1pfs_ha::Pdr,
8292            p1pfs_ha::Pdr,
8293            P1PfsHa_SPEC,
8294            crate::common::RW,
8295        >::from_register(self, 0)
8296    }
8297
8298    #[doc = "Pull-up Control"]
8299    #[inline(always)]
8300    pub fn pcr(
8301        self,
8302    ) -> crate::common::RegisterField<
8303        4,
8304        0x1,
8305        1,
8306        0,
8307        p1pfs_ha::Pcr,
8308        p1pfs_ha::Pcr,
8309        P1PfsHa_SPEC,
8310        crate::common::RW,
8311    > {
8312        crate::common::RegisterField::<
8313            4,
8314            0x1,
8315            1,
8316            0,
8317            p1pfs_ha::Pcr,
8318            p1pfs_ha::Pcr,
8319            P1PfsHa_SPEC,
8320            crate::common::RW,
8321        >::from_register(self, 0)
8322    }
8323
8324    #[doc = "N-Channel Open-Drain Control"]
8325    #[inline(always)]
8326    pub fn ncodr(
8327        self,
8328    ) -> crate::common::RegisterField<
8329        6,
8330        0x1,
8331        1,
8332        0,
8333        p1pfs_ha::Ncodr,
8334        p1pfs_ha::Ncodr,
8335        P1PfsHa_SPEC,
8336        crate::common::RW,
8337    > {
8338        crate::common::RegisterField::<
8339            6,
8340            0x1,
8341            1,
8342            0,
8343            p1pfs_ha::Ncodr,
8344            p1pfs_ha::Ncodr,
8345            P1PfsHa_SPEC,
8346            crate::common::RW,
8347        >::from_register(self, 0)
8348    }
8349
8350    #[doc = "Event on Falling/Event on Rising"]
8351    #[inline(always)]
8352    pub fn eofr(
8353        self,
8354    ) -> crate::common::RegisterField<
8355        12,
8356        0x3,
8357        1,
8358        0,
8359        p1pfs_ha::Eofr,
8360        p1pfs_ha::Eofr,
8361        P1PfsHa_SPEC,
8362        crate::common::RW,
8363    > {
8364        crate::common::RegisterField::<
8365            12,
8366            0x3,
8367            1,
8368            0,
8369            p1pfs_ha::Eofr,
8370            p1pfs_ha::Eofr,
8371            P1PfsHa_SPEC,
8372            crate::common::RW,
8373        >::from_register(self, 0)
8374    }
8375
8376    #[doc = "IRQ Input Enable"]
8377    #[inline(always)]
8378    pub fn isel(
8379        self,
8380    ) -> crate::common::RegisterField<
8381        14,
8382        0x1,
8383        1,
8384        0,
8385        p1pfs_ha::Isel,
8386        p1pfs_ha::Isel,
8387        P1PfsHa_SPEC,
8388        crate::common::RW,
8389    > {
8390        crate::common::RegisterField::<
8391            14,
8392            0x1,
8393            1,
8394            0,
8395            p1pfs_ha::Isel,
8396            p1pfs_ha::Isel,
8397            P1PfsHa_SPEC,
8398            crate::common::RW,
8399        >::from_register(self, 0)
8400    }
8401
8402    #[doc = "Analog Input Enable"]
8403    #[inline(always)]
8404    pub fn asel(
8405        self,
8406    ) -> crate::common::RegisterField<
8407        15,
8408        0x1,
8409        1,
8410        0,
8411        p1pfs_ha::Asel,
8412        p1pfs_ha::Asel,
8413        P1PfsHa_SPEC,
8414        crate::common::RW,
8415    > {
8416        crate::common::RegisterField::<
8417            15,
8418            0x1,
8419            1,
8420            0,
8421            p1pfs_ha::Asel,
8422            p1pfs_ha::Asel,
8423            P1PfsHa_SPEC,
8424            crate::common::RW,
8425        >::from_register(self, 0)
8426    }
8427}
8428impl ::core::default::Default for P1PfsHa {
8429    #[inline(always)]
8430    fn default() -> P1PfsHa {
8431        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
8432    }
8433}
8434pub mod p1pfs_ha {
8435
8436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8437    pub struct Podr_SPEC;
8438    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8439    impl Podr {
8440        #[doc = "Output low"]
8441        pub const _0: Self = Self::new(0);
8442
8443        #[doc = "Output high"]
8444        pub const _1: Self = Self::new(1);
8445    }
8446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8447    pub struct Pidr_SPEC;
8448    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8449    impl Pidr {
8450        #[doc = "Low level"]
8451        pub const _0: Self = Self::new(0);
8452
8453        #[doc = "High level"]
8454        pub const _1: Self = Self::new(1);
8455    }
8456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8457    pub struct Pdr_SPEC;
8458    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8459    impl Pdr {
8460        #[doc = "Input (functions as an input pin)"]
8461        pub const _0: Self = Self::new(0);
8462
8463        #[doc = "Output (functions as an output pin)"]
8464        pub const _1: Self = Self::new(1);
8465    }
8466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8467    pub struct Pcr_SPEC;
8468    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8469    impl Pcr {
8470        #[doc = "Disable input pull-up"]
8471        pub const _0: Self = Self::new(0);
8472
8473        #[doc = "Enable input pull-up"]
8474        pub const _1: Self = Self::new(1);
8475    }
8476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8477    pub struct Ncodr_SPEC;
8478    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8479    impl Ncodr {
8480        #[doc = "Output CMOS"]
8481        pub const _0: Self = Self::new(0);
8482
8483        #[doc = "Output NMOS open-drain"]
8484        pub const _1: Self = Self::new(1);
8485    }
8486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8487    pub struct Eofr_SPEC;
8488    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8489    impl Eofr {
8490        #[doc = "Don\'t care"]
8491        pub const _00: Self = Self::new(0);
8492
8493        #[doc = "Detect rising edge"]
8494        pub const _01: Self = Self::new(1);
8495
8496        #[doc = "Detect falling edge"]
8497        pub const _10: Self = Self::new(2);
8498
8499        #[doc = "Detect both edges"]
8500        pub const _11: Self = Self::new(3);
8501    }
8502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8503    pub struct Isel_SPEC;
8504    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8505    impl Isel {
8506        #[doc = "Do not use as IRQn input pin"]
8507        pub const _0: Self = Self::new(0);
8508
8509        #[doc = "Use as IRQn input pin"]
8510        pub const _1: Self = Self::new(1);
8511    }
8512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8513    pub struct Asel_SPEC;
8514    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8515    impl Asel {
8516        #[doc = "Do not use as analog pin"]
8517        pub const _0: Self = Self::new(0);
8518
8519        #[doc = "Use as analog pin"]
8520        pub const _1: Self = Self::new(1);
8521    }
8522}
8523#[doc(hidden)]
8524#[derive(Copy, Clone, Eq, PartialEq)]
8525pub struct P1PfsBy_SPEC;
8526impl crate::sealed::RegSpec for P1PfsBy_SPEC {
8527    type DataType = u8;
8528}
8529
8530#[doc = "Port 1%s Pin Function Select Register"]
8531pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
8532
8533impl P1PfsBy {
8534    #[doc = "Port Output Data"]
8535    #[inline(always)]
8536    pub fn podr(
8537        self,
8538    ) -> crate::common::RegisterField<
8539        0,
8540        0x1,
8541        1,
8542        0,
8543        p1pfs_by::Podr,
8544        p1pfs_by::Podr,
8545        P1PfsBy_SPEC,
8546        crate::common::RW,
8547    > {
8548        crate::common::RegisterField::<
8549            0,
8550            0x1,
8551            1,
8552            0,
8553            p1pfs_by::Podr,
8554            p1pfs_by::Podr,
8555            P1PfsBy_SPEC,
8556            crate::common::RW,
8557        >::from_register(self, 0)
8558    }
8559
8560    #[doc = "Port State"]
8561    #[inline(always)]
8562    pub fn pidr(
8563        self,
8564    ) -> crate::common::RegisterField<
8565        1,
8566        0x1,
8567        1,
8568        0,
8569        p1pfs_by::Pidr,
8570        p1pfs_by::Pidr,
8571        P1PfsBy_SPEC,
8572        crate::common::R,
8573    > {
8574        crate::common::RegisterField::<
8575            1,
8576            0x1,
8577            1,
8578            0,
8579            p1pfs_by::Pidr,
8580            p1pfs_by::Pidr,
8581            P1PfsBy_SPEC,
8582            crate::common::R,
8583        >::from_register(self, 0)
8584    }
8585
8586    #[doc = "Port Direction"]
8587    #[inline(always)]
8588    pub fn pdr(
8589        self,
8590    ) -> crate::common::RegisterField<
8591        2,
8592        0x1,
8593        1,
8594        0,
8595        p1pfs_by::Pdr,
8596        p1pfs_by::Pdr,
8597        P1PfsBy_SPEC,
8598        crate::common::RW,
8599    > {
8600        crate::common::RegisterField::<
8601            2,
8602            0x1,
8603            1,
8604            0,
8605            p1pfs_by::Pdr,
8606            p1pfs_by::Pdr,
8607            P1PfsBy_SPEC,
8608            crate::common::RW,
8609        >::from_register(self, 0)
8610    }
8611
8612    #[doc = "Pull-up Control"]
8613    #[inline(always)]
8614    pub fn pcr(
8615        self,
8616    ) -> crate::common::RegisterField<
8617        4,
8618        0x1,
8619        1,
8620        0,
8621        p1pfs_by::Pcr,
8622        p1pfs_by::Pcr,
8623        P1PfsBy_SPEC,
8624        crate::common::RW,
8625    > {
8626        crate::common::RegisterField::<
8627            4,
8628            0x1,
8629            1,
8630            0,
8631            p1pfs_by::Pcr,
8632            p1pfs_by::Pcr,
8633            P1PfsBy_SPEC,
8634            crate::common::RW,
8635        >::from_register(self, 0)
8636    }
8637
8638    #[doc = "N-Channel Open-Drain Control"]
8639    #[inline(always)]
8640    pub fn ncodr(
8641        self,
8642    ) -> crate::common::RegisterField<
8643        6,
8644        0x1,
8645        1,
8646        0,
8647        p1pfs_by::Ncodr,
8648        p1pfs_by::Ncodr,
8649        P1PfsBy_SPEC,
8650        crate::common::RW,
8651    > {
8652        crate::common::RegisterField::<
8653            6,
8654            0x1,
8655            1,
8656            0,
8657            p1pfs_by::Ncodr,
8658            p1pfs_by::Ncodr,
8659            P1PfsBy_SPEC,
8660            crate::common::RW,
8661        >::from_register(self, 0)
8662    }
8663}
8664impl ::core::default::Default for P1PfsBy {
8665    #[inline(always)]
8666    fn default() -> P1PfsBy {
8667        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
8668    }
8669}
8670pub mod p1pfs_by {
8671
8672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8673    pub struct Podr_SPEC;
8674    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8675    impl Podr {
8676        #[doc = "Output low"]
8677        pub const _0: Self = Self::new(0);
8678
8679        #[doc = "Output high"]
8680        pub const _1: Self = Self::new(1);
8681    }
8682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8683    pub struct Pidr_SPEC;
8684    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8685    impl Pidr {
8686        #[doc = "Low level"]
8687        pub const _0: Self = Self::new(0);
8688
8689        #[doc = "High level"]
8690        pub const _1: Self = Self::new(1);
8691    }
8692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8693    pub struct Pdr_SPEC;
8694    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8695    impl Pdr {
8696        #[doc = "Input (functions as an input pin)"]
8697        pub const _0: Self = Self::new(0);
8698
8699        #[doc = "Output (functions as an output pin)"]
8700        pub const _1: Self = Self::new(1);
8701    }
8702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8703    pub struct Pcr_SPEC;
8704    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8705    impl Pcr {
8706        #[doc = "Disable input pull-up"]
8707        pub const _0: Self = Self::new(0);
8708
8709        #[doc = "Enable input pull-up"]
8710        pub const _1: Self = Self::new(1);
8711    }
8712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8713    pub struct Ncodr_SPEC;
8714    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8715    impl Ncodr {
8716        #[doc = "Output CMOS"]
8717        pub const _0: Self = Self::new(0);
8718
8719        #[doc = "Output NMOS open-drain"]
8720        pub const _1: Self = Self::new(1);
8721    }
8722}
8723#[doc(hidden)]
8724#[derive(Copy, Clone, Eq, PartialEq)]
8725pub struct P200Pfs_SPEC;
8726impl crate::sealed::RegSpec for P200Pfs_SPEC {
8727    type DataType = u32;
8728}
8729
8730#[doc = "Port 200 Pin Function Select Register"]
8731pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
8732
8733impl P200Pfs {
8734    #[doc = "Port Output Data"]
8735    #[inline(always)]
8736    pub fn podr(
8737        self,
8738    ) -> crate::common::RegisterField<
8739        0,
8740        0x1,
8741        1,
8742        0,
8743        p200pfs::Podr,
8744        p200pfs::Podr,
8745        P200Pfs_SPEC,
8746        crate::common::RW,
8747    > {
8748        crate::common::RegisterField::<
8749            0,
8750            0x1,
8751            1,
8752            0,
8753            p200pfs::Podr,
8754            p200pfs::Podr,
8755            P200Pfs_SPEC,
8756            crate::common::RW,
8757        >::from_register(self, 0)
8758    }
8759
8760    #[doc = "Port State"]
8761    #[inline(always)]
8762    pub fn pidr(
8763        self,
8764    ) -> crate::common::RegisterField<
8765        1,
8766        0x1,
8767        1,
8768        0,
8769        p200pfs::Pidr,
8770        p200pfs::Pidr,
8771        P200Pfs_SPEC,
8772        crate::common::R,
8773    > {
8774        crate::common::RegisterField::<
8775            1,
8776            0x1,
8777            1,
8778            0,
8779            p200pfs::Pidr,
8780            p200pfs::Pidr,
8781            P200Pfs_SPEC,
8782            crate::common::R,
8783        >::from_register(self, 0)
8784    }
8785
8786    #[doc = "Port Direction"]
8787    #[inline(always)]
8788    pub fn pdr(
8789        self,
8790    ) -> crate::common::RegisterField<
8791        2,
8792        0x1,
8793        1,
8794        0,
8795        p200pfs::Pdr,
8796        p200pfs::Pdr,
8797        P200Pfs_SPEC,
8798        crate::common::RW,
8799    > {
8800        crate::common::RegisterField::<
8801            2,
8802            0x1,
8803            1,
8804            0,
8805            p200pfs::Pdr,
8806            p200pfs::Pdr,
8807            P200Pfs_SPEC,
8808            crate::common::RW,
8809        >::from_register(self, 0)
8810    }
8811
8812    #[doc = "Pull-up Control"]
8813    #[inline(always)]
8814    pub fn pcr(
8815        self,
8816    ) -> crate::common::RegisterField<
8817        4,
8818        0x1,
8819        1,
8820        0,
8821        p200pfs::Pcr,
8822        p200pfs::Pcr,
8823        P200Pfs_SPEC,
8824        crate::common::RW,
8825    > {
8826        crate::common::RegisterField::<
8827            4,
8828            0x1,
8829            1,
8830            0,
8831            p200pfs::Pcr,
8832            p200pfs::Pcr,
8833            P200Pfs_SPEC,
8834            crate::common::RW,
8835        >::from_register(self, 0)
8836    }
8837
8838    #[doc = "N-Channel Open-Drain Control"]
8839    #[inline(always)]
8840    pub fn ncodr(
8841        self,
8842    ) -> crate::common::RegisterField<
8843        6,
8844        0x1,
8845        1,
8846        0,
8847        p200pfs::Ncodr,
8848        p200pfs::Ncodr,
8849        P200Pfs_SPEC,
8850        crate::common::RW,
8851    > {
8852        crate::common::RegisterField::<
8853            6,
8854            0x1,
8855            1,
8856            0,
8857            p200pfs::Ncodr,
8858            p200pfs::Ncodr,
8859            P200Pfs_SPEC,
8860            crate::common::RW,
8861        >::from_register(self, 0)
8862    }
8863
8864    #[doc = "Event on Falling/Event on Rising"]
8865    #[inline(always)]
8866    pub fn eofr(
8867        self,
8868    ) -> crate::common::RegisterField<
8869        12,
8870        0x3,
8871        1,
8872        0,
8873        p200pfs::Eofr,
8874        p200pfs::Eofr,
8875        P200Pfs_SPEC,
8876        crate::common::RW,
8877    > {
8878        crate::common::RegisterField::<
8879            12,
8880            0x3,
8881            1,
8882            0,
8883            p200pfs::Eofr,
8884            p200pfs::Eofr,
8885            P200Pfs_SPEC,
8886            crate::common::RW,
8887        >::from_register(self, 0)
8888    }
8889
8890    #[doc = "IRQ Input Enable"]
8891    #[inline(always)]
8892    pub fn isel(
8893        self,
8894    ) -> crate::common::RegisterField<
8895        14,
8896        0x1,
8897        1,
8898        0,
8899        p200pfs::Isel,
8900        p200pfs::Isel,
8901        P200Pfs_SPEC,
8902        crate::common::RW,
8903    > {
8904        crate::common::RegisterField::<
8905            14,
8906            0x1,
8907            1,
8908            0,
8909            p200pfs::Isel,
8910            p200pfs::Isel,
8911            P200Pfs_SPEC,
8912            crate::common::RW,
8913        >::from_register(self, 0)
8914    }
8915
8916    #[doc = "Analog Input Enable"]
8917    #[inline(always)]
8918    pub fn asel(
8919        self,
8920    ) -> crate::common::RegisterField<
8921        15,
8922        0x1,
8923        1,
8924        0,
8925        p200pfs::Asel,
8926        p200pfs::Asel,
8927        P200Pfs_SPEC,
8928        crate::common::RW,
8929    > {
8930        crate::common::RegisterField::<
8931            15,
8932            0x1,
8933            1,
8934            0,
8935            p200pfs::Asel,
8936            p200pfs::Asel,
8937            P200Pfs_SPEC,
8938            crate::common::RW,
8939        >::from_register(self, 0)
8940    }
8941
8942    #[doc = "Port Mode Control"]
8943    #[inline(always)]
8944    pub fn pmr(
8945        self,
8946    ) -> crate::common::RegisterField<
8947        16,
8948        0x1,
8949        1,
8950        0,
8951        p200pfs::Pmr,
8952        p200pfs::Pmr,
8953        P200Pfs_SPEC,
8954        crate::common::RW,
8955    > {
8956        crate::common::RegisterField::<
8957            16,
8958            0x1,
8959            1,
8960            0,
8961            p200pfs::Pmr,
8962            p200pfs::Pmr,
8963            P200Pfs_SPEC,
8964            crate::common::RW,
8965        >::from_register(self, 0)
8966    }
8967
8968    #[doc = "Peripheral Select"]
8969    #[inline(always)]
8970    pub fn psel(
8971        self,
8972    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
8973        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
8974    }
8975}
8976impl ::core::default::Default for P200Pfs {
8977    #[inline(always)]
8978    fn default() -> P200Pfs {
8979        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
8980    }
8981}
8982pub mod p200pfs {
8983
8984    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8985    pub struct Podr_SPEC;
8986    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8987    impl Podr {
8988        #[doc = "Output low"]
8989        pub const _0: Self = Self::new(0);
8990
8991        #[doc = "Output high"]
8992        pub const _1: Self = Self::new(1);
8993    }
8994    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8995    pub struct Pidr_SPEC;
8996    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8997    impl Pidr {
8998        #[doc = "Low level"]
8999        pub const _0: Self = Self::new(0);
9000
9001        #[doc = "High level"]
9002        pub const _1: Self = Self::new(1);
9003    }
9004    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9005    pub struct Pdr_SPEC;
9006    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9007    impl Pdr {
9008        #[doc = "Input (functions as an input pin)"]
9009        pub const _0: Self = Self::new(0);
9010
9011        #[doc = "Output (functions as an output pin)"]
9012        pub const _1: Self = Self::new(1);
9013    }
9014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9015    pub struct Pcr_SPEC;
9016    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9017    impl Pcr {
9018        #[doc = "Disable input pull-up"]
9019        pub const _0: Self = Self::new(0);
9020
9021        #[doc = "Enable input pull-up"]
9022        pub const _1: Self = Self::new(1);
9023    }
9024    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9025    pub struct Ncodr_SPEC;
9026    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9027    impl Ncodr {
9028        #[doc = "Output CMOS"]
9029        pub const _0: Self = Self::new(0);
9030
9031        #[doc = "Output NMOS open-drain"]
9032        pub const _1: Self = Self::new(1);
9033    }
9034    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9035    pub struct Eofr_SPEC;
9036    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9037    impl Eofr {
9038        #[doc = "Don\'t care"]
9039        pub const _00: Self = Self::new(0);
9040
9041        #[doc = "Detect rising edge"]
9042        pub const _01: Self = Self::new(1);
9043
9044        #[doc = "Detect falling edge"]
9045        pub const _10: Self = Self::new(2);
9046
9047        #[doc = "Detect both edges"]
9048        pub const _11: Self = Self::new(3);
9049    }
9050    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9051    pub struct Isel_SPEC;
9052    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9053    impl Isel {
9054        #[doc = "Do not use as IRQn input pin"]
9055        pub const _0: Self = Self::new(0);
9056
9057        #[doc = "Use as IRQn input pin"]
9058        pub const _1: Self = Self::new(1);
9059    }
9060    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9061    pub struct Asel_SPEC;
9062    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9063    impl Asel {
9064        #[doc = "Do not use as analog pin"]
9065        pub const _0: Self = Self::new(0);
9066
9067        #[doc = "Use as analog pin"]
9068        pub const _1: Self = Self::new(1);
9069    }
9070    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9071    pub struct Pmr_SPEC;
9072    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9073    impl Pmr {
9074        #[doc = "Use as general I/O pin"]
9075        pub const _0: Self = Self::new(0);
9076
9077        #[doc = "Use as I/O port for peripheral functions"]
9078        pub const _1: Self = Self::new(1);
9079    }
9080}
9081#[doc(hidden)]
9082#[derive(Copy, Clone, Eq, PartialEq)]
9083pub struct P200PfsHa_SPEC;
9084impl crate::sealed::RegSpec for P200PfsHa_SPEC {
9085    type DataType = u16;
9086}
9087
9088#[doc = "Port 200 Pin Function Select Register"]
9089pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
9090
9091impl P200PfsHa {
9092    #[doc = "Port Output Data"]
9093    #[inline(always)]
9094    pub fn podr(
9095        self,
9096    ) -> crate::common::RegisterField<
9097        0,
9098        0x1,
9099        1,
9100        0,
9101        p200pfs_ha::Podr,
9102        p200pfs_ha::Podr,
9103        P200PfsHa_SPEC,
9104        crate::common::RW,
9105    > {
9106        crate::common::RegisterField::<
9107            0,
9108            0x1,
9109            1,
9110            0,
9111            p200pfs_ha::Podr,
9112            p200pfs_ha::Podr,
9113            P200PfsHa_SPEC,
9114            crate::common::RW,
9115        >::from_register(self, 0)
9116    }
9117
9118    #[doc = "Port State"]
9119    #[inline(always)]
9120    pub fn pidr(
9121        self,
9122    ) -> crate::common::RegisterField<
9123        1,
9124        0x1,
9125        1,
9126        0,
9127        p200pfs_ha::Pidr,
9128        p200pfs_ha::Pidr,
9129        P200PfsHa_SPEC,
9130        crate::common::R,
9131    > {
9132        crate::common::RegisterField::<
9133            1,
9134            0x1,
9135            1,
9136            0,
9137            p200pfs_ha::Pidr,
9138            p200pfs_ha::Pidr,
9139            P200PfsHa_SPEC,
9140            crate::common::R,
9141        >::from_register(self, 0)
9142    }
9143
9144    #[doc = "Port Direction"]
9145    #[inline(always)]
9146    pub fn pdr(
9147        self,
9148    ) -> crate::common::RegisterField<
9149        2,
9150        0x1,
9151        1,
9152        0,
9153        p200pfs_ha::Pdr,
9154        p200pfs_ha::Pdr,
9155        P200PfsHa_SPEC,
9156        crate::common::RW,
9157    > {
9158        crate::common::RegisterField::<
9159            2,
9160            0x1,
9161            1,
9162            0,
9163            p200pfs_ha::Pdr,
9164            p200pfs_ha::Pdr,
9165            P200PfsHa_SPEC,
9166            crate::common::RW,
9167        >::from_register(self, 0)
9168    }
9169
9170    #[doc = "Pull-up Control"]
9171    #[inline(always)]
9172    pub fn pcr(
9173        self,
9174    ) -> crate::common::RegisterField<
9175        4,
9176        0x1,
9177        1,
9178        0,
9179        p200pfs_ha::Pcr,
9180        p200pfs_ha::Pcr,
9181        P200PfsHa_SPEC,
9182        crate::common::RW,
9183    > {
9184        crate::common::RegisterField::<
9185            4,
9186            0x1,
9187            1,
9188            0,
9189            p200pfs_ha::Pcr,
9190            p200pfs_ha::Pcr,
9191            P200PfsHa_SPEC,
9192            crate::common::RW,
9193        >::from_register(self, 0)
9194    }
9195
9196    #[doc = "N-Channel Open-Drain Control"]
9197    #[inline(always)]
9198    pub fn ncodr(
9199        self,
9200    ) -> crate::common::RegisterField<
9201        6,
9202        0x1,
9203        1,
9204        0,
9205        p200pfs_ha::Ncodr,
9206        p200pfs_ha::Ncodr,
9207        P200PfsHa_SPEC,
9208        crate::common::RW,
9209    > {
9210        crate::common::RegisterField::<
9211            6,
9212            0x1,
9213            1,
9214            0,
9215            p200pfs_ha::Ncodr,
9216            p200pfs_ha::Ncodr,
9217            P200PfsHa_SPEC,
9218            crate::common::RW,
9219        >::from_register(self, 0)
9220    }
9221
9222    #[doc = "Event on Falling/Event on Rising"]
9223    #[inline(always)]
9224    pub fn eofr(
9225        self,
9226    ) -> crate::common::RegisterField<
9227        12,
9228        0x3,
9229        1,
9230        0,
9231        p200pfs_ha::Eofr,
9232        p200pfs_ha::Eofr,
9233        P200PfsHa_SPEC,
9234        crate::common::RW,
9235    > {
9236        crate::common::RegisterField::<
9237            12,
9238            0x3,
9239            1,
9240            0,
9241            p200pfs_ha::Eofr,
9242            p200pfs_ha::Eofr,
9243            P200PfsHa_SPEC,
9244            crate::common::RW,
9245        >::from_register(self, 0)
9246    }
9247
9248    #[doc = "IRQ Input Enable"]
9249    #[inline(always)]
9250    pub fn isel(
9251        self,
9252    ) -> crate::common::RegisterField<
9253        14,
9254        0x1,
9255        1,
9256        0,
9257        p200pfs_ha::Isel,
9258        p200pfs_ha::Isel,
9259        P200PfsHa_SPEC,
9260        crate::common::RW,
9261    > {
9262        crate::common::RegisterField::<
9263            14,
9264            0x1,
9265            1,
9266            0,
9267            p200pfs_ha::Isel,
9268            p200pfs_ha::Isel,
9269            P200PfsHa_SPEC,
9270            crate::common::RW,
9271        >::from_register(self, 0)
9272    }
9273
9274    #[doc = "Analog Input Enable"]
9275    #[inline(always)]
9276    pub fn asel(
9277        self,
9278    ) -> crate::common::RegisterField<
9279        15,
9280        0x1,
9281        1,
9282        0,
9283        p200pfs_ha::Asel,
9284        p200pfs_ha::Asel,
9285        P200PfsHa_SPEC,
9286        crate::common::RW,
9287    > {
9288        crate::common::RegisterField::<
9289            15,
9290            0x1,
9291            1,
9292            0,
9293            p200pfs_ha::Asel,
9294            p200pfs_ha::Asel,
9295            P200PfsHa_SPEC,
9296            crate::common::RW,
9297        >::from_register(self, 0)
9298    }
9299}
9300impl ::core::default::Default for P200PfsHa {
9301    #[inline(always)]
9302    fn default() -> P200PfsHa {
9303        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
9304    }
9305}
9306pub mod p200pfs_ha {
9307
9308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9309    pub struct Podr_SPEC;
9310    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9311    impl Podr {
9312        #[doc = "Output low"]
9313        pub const _0: Self = Self::new(0);
9314
9315        #[doc = "Output high"]
9316        pub const _1: Self = Self::new(1);
9317    }
9318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9319    pub struct Pidr_SPEC;
9320    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9321    impl Pidr {
9322        #[doc = "Low level"]
9323        pub const _0: Self = Self::new(0);
9324
9325        #[doc = "High level"]
9326        pub const _1: Self = Self::new(1);
9327    }
9328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9329    pub struct Pdr_SPEC;
9330    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9331    impl Pdr {
9332        #[doc = "Input (functions as an input pin)"]
9333        pub const _0: Self = Self::new(0);
9334
9335        #[doc = "Output (functions as an output pin)"]
9336        pub const _1: Self = Self::new(1);
9337    }
9338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9339    pub struct Pcr_SPEC;
9340    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9341    impl Pcr {
9342        #[doc = "Disable input pull-up"]
9343        pub const _0: Self = Self::new(0);
9344
9345        #[doc = "Enable input pull-up"]
9346        pub const _1: Self = Self::new(1);
9347    }
9348    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9349    pub struct Ncodr_SPEC;
9350    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9351    impl Ncodr {
9352        #[doc = "Output CMOS"]
9353        pub const _0: Self = Self::new(0);
9354
9355        #[doc = "Output NMOS open-drain"]
9356        pub const _1: Self = Self::new(1);
9357    }
9358    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9359    pub struct Eofr_SPEC;
9360    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9361    impl Eofr {
9362        #[doc = "Don\'t care"]
9363        pub const _00: Self = Self::new(0);
9364
9365        #[doc = "Detect rising edge"]
9366        pub const _01: Self = Self::new(1);
9367
9368        #[doc = "Detect falling edge"]
9369        pub const _10: Self = Self::new(2);
9370
9371        #[doc = "Detect both edges"]
9372        pub const _11: Self = Self::new(3);
9373    }
9374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9375    pub struct Isel_SPEC;
9376    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9377    impl Isel {
9378        #[doc = "Do not use as IRQn input pin"]
9379        pub const _0: Self = Self::new(0);
9380
9381        #[doc = "Use as IRQn input pin"]
9382        pub const _1: Self = Self::new(1);
9383    }
9384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9385    pub struct Asel_SPEC;
9386    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9387    impl Asel {
9388        #[doc = "Do not use as analog pin"]
9389        pub const _0: Self = Self::new(0);
9390
9391        #[doc = "Use as analog pin"]
9392        pub const _1: Self = Self::new(1);
9393    }
9394}
9395#[doc(hidden)]
9396#[derive(Copy, Clone, Eq, PartialEq)]
9397pub struct P200PfsBy_SPEC;
9398impl crate::sealed::RegSpec for P200PfsBy_SPEC {
9399    type DataType = u8;
9400}
9401
9402#[doc = "Port 200 Pin Function Select Register"]
9403pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
9404
9405impl P200PfsBy {
9406    #[doc = "Port Output Data"]
9407    #[inline(always)]
9408    pub fn podr(
9409        self,
9410    ) -> crate::common::RegisterField<
9411        0,
9412        0x1,
9413        1,
9414        0,
9415        p200pfs_by::Podr,
9416        p200pfs_by::Podr,
9417        P200PfsBy_SPEC,
9418        crate::common::RW,
9419    > {
9420        crate::common::RegisterField::<
9421            0,
9422            0x1,
9423            1,
9424            0,
9425            p200pfs_by::Podr,
9426            p200pfs_by::Podr,
9427            P200PfsBy_SPEC,
9428            crate::common::RW,
9429        >::from_register(self, 0)
9430    }
9431
9432    #[doc = "Port State"]
9433    #[inline(always)]
9434    pub fn pidr(
9435        self,
9436    ) -> crate::common::RegisterField<
9437        1,
9438        0x1,
9439        1,
9440        0,
9441        p200pfs_by::Pidr,
9442        p200pfs_by::Pidr,
9443        P200PfsBy_SPEC,
9444        crate::common::R,
9445    > {
9446        crate::common::RegisterField::<
9447            1,
9448            0x1,
9449            1,
9450            0,
9451            p200pfs_by::Pidr,
9452            p200pfs_by::Pidr,
9453            P200PfsBy_SPEC,
9454            crate::common::R,
9455        >::from_register(self, 0)
9456    }
9457
9458    #[doc = "Port Direction"]
9459    #[inline(always)]
9460    pub fn pdr(
9461        self,
9462    ) -> crate::common::RegisterField<
9463        2,
9464        0x1,
9465        1,
9466        0,
9467        p200pfs_by::Pdr,
9468        p200pfs_by::Pdr,
9469        P200PfsBy_SPEC,
9470        crate::common::RW,
9471    > {
9472        crate::common::RegisterField::<
9473            2,
9474            0x1,
9475            1,
9476            0,
9477            p200pfs_by::Pdr,
9478            p200pfs_by::Pdr,
9479            P200PfsBy_SPEC,
9480            crate::common::RW,
9481        >::from_register(self, 0)
9482    }
9483
9484    #[doc = "Pull-up Control"]
9485    #[inline(always)]
9486    pub fn pcr(
9487        self,
9488    ) -> crate::common::RegisterField<
9489        4,
9490        0x1,
9491        1,
9492        0,
9493        p200pfs_by::Pcr,
9494        p200pfs_by::Pcr,
9495        P200PfsBy_SPEC,
9496        crate::common::RW,
9497    > {
9498        crate::common::RegisterField::<
9499            4,
9500            0x1,
9501            1,
9502            0,
9503            p200pfs_by::Pcr,
9504            p200pfs_by::Pcr,
9505            P200PfsBy_SPEC,
9506            crate::common::RW,
9507        >::from_register(self, 0)
9508    }
9509
9510    #[doc = "N-Channel Open-Drain Control"]
9511    #[inline(always)]
9512    pub fn ncodr(
9513        self,
9514    ) -> crate::common::RegisterField<
9515        6,
9516        0x1,
9517        1,
9518        0,
9519        p200pfs_by::Ncodr,
9520        p200pfs_by::Ncodr,
9521        P200PfsBy_SPEC,
9522        crate::common::RW,
9523    > {
9524        crate::common::RegisterField::<
9525            6,
9526            0x1,
9527            1,
9528            0,
9529            p200pfs_by::Ncodr,
9530            p200pfs_by::Ncodr,
9531            P200PfsBy_SPEC,
9532            crate::common::RW,
9533        >::from_register(self, 0)
9534    }
9535}
9536impl ::core::default::Default for P200PfsBy {
9537    #[inline(always)]
9538    fn default() -> P200PfsBy {
9539        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
9540    }
9541}
9542pub mod p200pfs_by {
9543
9544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9545    pub struct Podr_SPEC;
9546    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9547    impl Podr {
9548        #[doc = "Output low"]
9549        pub const _0: Self = Self::new(0);
9550
9551        #[doc = "Output high"]
9552        pub const _1: Self = Self::new(1);
9553    }
9554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9555    pub struct Pidr_SPEC;
9556    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9557    impl Pidr {
9558        #[doc = "Low level"]
9559        pub const _0: Self = Self::new(0);
9560
9561        #[doc = "High level"]
9562        pub const _1: Self = Self::new(1);
9563    }
9564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9565    pub struct Pdr_SPEC;
9566    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9567    impl Pdr {
9568        #[doc = "Input (functions as an input pin)"]
9569        pub const _0: Self = Self::new(0);
9570
9571        #[doc = "Output (functions as an output pin)"]
9572        pub const _1: Self = Self::new(1);
9573    }
9574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9575    pub struct Pcr_SPEC;
9576    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9577    impl Pcr {
9578        #[doc = "Disable input pull-up"]
9579        pub const _0: Self = Self::new(0);
9580
9581        #[doc = "Enable input pull-up"]
9582        pub const _1: Self = Self::new(1);
9583    }
9584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9585    pub struct Ncodr_SPEC;
9586    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9587    impl Ncodr {
9588        #[doc = "Output CMOS"]
9589        pub const _0: Self = Self::new(0);
9590
9591        #[doc = "Output NMOS open-drain"]
9592        pub const _1: Self = Self::new(1);
9593    }
9594}
9595#[doc(hidden)]
9596#[derive(Copy, Clone, Eq, PartialEq)]
9597pub struct P201Pfs_SPEC;
9598impl crate::sealed::RegSpec for P201Pfs_SPEC {
9599    type DataType = u32;
9600}
9601
9602#[doc = "Port 201 Pin Function Select Register"]
9603pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
9604
9605impl P201Pfs {
9606    #[doc = "Port Output Data"]
9607    #[inline(always)]
9608    pub fn podr(
9609        self,
9610    ) -> crate::common::RegisterField<
9611        0,
9612        0x1,
9613        1,
9614        0,
9615        p201pfs::Podr,
9616        p201pfs::Podr,
9617        P201Pfs_SPEC,
9618        crate::common::RW,
9619    > {
9620        crate::common::RegisterField::<
9621            0,
9622            0x1,
9623            1,
9624            0,
9625            p201pfs::Podr,
9626            p201pfs::Podr,
9627            P201Pfs_SPEC,
9628            crate::common::RW,
9629        >::from_register(self, 0)
9630    }
9631
9632    #[doc = "Port State"]
9633    #[inline(always)]
9634    pub fn pidr(
9635        self,
9636    ) -> crate::common::RegisterField<
9637        1,
9638        0x1,
9639        1,
9640        0,
9641        p201pfs::Pidr,
9642        p201pfs::Pidr,
9643        P201Pfs_SPEC,
9644        crate::common::R,
9645    > {
9646        crate::common::RegisterField::<
9647            1,
9648            0x1,
9649            1,
9650            0,
9651            p201pfs::Pidr,
9652            p201pfs::Pidr,
9653            P201Pfs_SPEC,
9654            crate::common::R,
9655        >::from_register(self, 0)
9656    }
9657
9658    #[doc = "Port Direction"]
9659    #[inline(always)]
9660    pub fn pdr(
9661        self,
9662    ) -> crate::common::RegisterField<
9663        2,
9664        0x1,
9665        1,
9666        0,
9667        p201pfs::Pdr,
9668        p201pfs::Pdr,
9669        P201Pfs_SPEC,
9670        crate::common::RW,
9671    > {
9672        crate::common::RegisterField::<
9673            2,
9674            0x1,
9675            1,
9676            0,
9677            p201pfs::Pdr,
9678            p201pfs::Pdr,
9679            P201Pfs_SPEC,
9680            crate::common::RW,
9681        >::from_register(self, 0)
9682    }
9683
9684    #[doc = "Pull-up Control"]
9685    #[inline(always)]
9686    pub fn pcr(
9687        self,
9688    ) -> crate::common::RegisterField<
9689        4,
9690        0x1,
9691        1,
9692        0,
9693        p201pfs::Pcr,
9694        p201pfs::Pcr,
9695        P201Pfs_SPEC,
9696        crate::common::RW,
9697    > {
9698        crate::common::RegisterField::<
9699            4,
9700            0x1,
9701            1,
9702            0,
9703            p201pfs::Pcr,
9704            p201pfs::Pcr,
9705            P201Pfs_SPEC,
9706            crate::common::RW,
9707        >::from_register(self, 0)
9708    }
9709
9710    #[doc = "N-Channel Open-Drain Control"]
9711    #[inline(always)]
9712    pub fn ncodr(
9713        self,
9714    ) -> crate::common::RegisterField<
9715        6,
9716        0x1,
9717        1,
9718        0,
9719        p201pfs::Ncodr,
9720        p201pfs::Ncodr,
9721        P201Pfs_SPEC,
9722        crate::common::RW,
9723    > {
9724        crate::common::RegisterField::<
9725            6,
9726            0x1,
9727            1,
9728            0,
9729            p201pfs::Ncodr,
9730            p201pfs::Ncodr,
9731            P201Pfs_SPEC,
9732            crate::common::RW,
9733        >::from_register(self, 0)
9734    }
9735
9736    #[doc = "Event on Falling/Event on Rising"]
9737    #[inline(always)]
9738    pub fn eofr(
9739        self,
9740    ) -> crate::common::RegisterField<
9741        12,
9742        0x3,
9743        1,
9744        0,
9745        p201pfs::Eofr,
9746        p201pfs::Eofr,
9747        P201Pfs_SPEC,
9748        crate::common::RW,
9749    > {
9750        crate::common::RegisterField::<
9751            12,
9752            0x3,
9753            1,
9754            0,
9755            p201pfs::Eofr,
9756            p201pfs::Eofr,
9757            P201Pfs_SPEC,
9758            crate::common::RW,
9759        >::from_register(self, 0)
9760    }
9761
9762    #[doc = "IRQ Input Enable"]
9763    #[inline(always)]
9764    pub fn isel(
9765        self,
9766    ) -> crate::common::RegisterField<
9767        14,
9768        0x1,
9769        1,
9770        0,
9771        p201pfs::Isel,
9772        p201pfs::Isel,
9773        P201Pfs_SPEC,
9774        crate::common::RW,
9775    > {
9776        crate::common::RegisterField::<
9777            14,
9778            0x1,
9779            1,
9780            0,
9781            p201pfs::Isel,
9782            p201pfs::Isel,
9783            P201Pfs_SPEC,
9784            crate::common::RW,
9785        >::from_register(self, 0)
9786    }
9787
9788    #[doc = "Analog Input Enable"]
9789    #[inline(always)]
9790    pub fn asel(
9791        self,
9792    ) -> crate::common::RegisterField<
9793        15,
9794        0x1,
9795        1,
9796        0,
9797        p201pfs::Asel,
9798        p201pfs::Asel,
9799        P201Pfs_SPEC,
9800        crate::common::RW,
9801    > {
9802        crate::common::RegisterField::<
9803            15,
9804            0x1,
9805            1,
9806            0,
9807            p201pfs::Asel,
9808            p201pfs::Asel,
9809            P201Pfs_SPEC,
9810            crate::common::RW,
9811        >::from_register(self, 0)
9812    }
9813
9814    #[doc = "Port Mode Control"]
9815    #[inline(always)]
9816    pub fn pmr(
9817        self,
9818    ) -> crate::common::RegisterField<
9819        16,
9820        0x1,
9821        1,
9822        0,
9823        p201pfs::Pmr,
9824        p201pfs::Pmr,
9825        P201Pfs_SPEC,
9826        crate::common::RW,
9827    > {
9828        crate::common::RegisterField::<
9829            16,
9830            0x1,
9831            1,
9832            0,
9833            p201pfs::Pmr,
9834            p201pfs::Pmr,
9835            P201Pfs_SPEC,
9836            crate::common::RW,
9837        >::from_register(self, 0)
9838    }
9839
9840    #[doc = "Peripheral Select"]
9841    #[inline(always)]
9842    pub fn psel(
9843        self,
9844    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
9845        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
9846    }
9847}
9848impl ::core::default::Default for P201Pfs {
9849    #[inline(always)]
9850    fn default() -> P201Pfs {
9851        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
9852    }
9853}
9854pub mod p201pfs {
9855
9856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9857    pub struct Podr_SPEC;
9858    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9859    impl Podr {
9860        #[doc = "Output low"]
9861        pub const _0: Self = Self::new(0);
9862
9863        #[doc = "Output high"]
9864        pub const _1: Self = Self::new(1);
9865    }
9866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9867    pub struct Pidr_SPEC;
9868    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9869    impl Pidr {
9870        #[doc = "Low level"]
9871        pub const _0: Self = Self::new(0);
9872
9873        #[doc = "High level"]
9874        pub const _1: Self = Self::new(1);
9875    }
9876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9877    pub struct Pdr_SPEC;
9878    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9879    impl Pdr {
9880        #[doc = "Input (functions as an input pin)"]
9881        pub const _0: Self = Self::new(0);
9882
9883        #[doc = "Output (functions as an output pin)"]
9884        pub const _1: Self = Self::new(1);
9885    }
9886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9887    pub struct Pcr_SPEC;
9888    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9889    impl Pcr {
9890        #[doc = "Disable input pull-up"]
9891        pub const _0: Self = Self::new(0);
9892
9893        #[doc = "Enable input pull-up"]
9894        pub const _1: Self = Self::new(1);
9895    }
9896    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9897    pub struct Ncodr_SPEC;
9898    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9899    impl Ncodr {
9900        #[doc = "Output CMOS"]
9901        pub const _0: Self = Self::new(0);
9902
9903        #[doc = "Output NMOS open-drain"]
9904        pub const _1: Self = Self::new(1);
9905    }
9906    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9907    pub struct Eofr_SPEC;
9908    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9909    impl Eofr {
9910        #[doc = "Don\'t care"]
9911        pub const _00: Self = Self::new(0);
9912
9913        #[doc = "Detect rising edge"]
9914        pub const _01: Self = Self::new(1);
9915
9916        #[doc = "Detect falling edge"]
9917        pub const _10: Self = Self::new(2);
9918
9919        #[doc = "Detect both edges"]
9920        pub const _11: Self = Self::new(3);
9921    }
9922    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9923    pub struct Isel_SPEC;
9924    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9925    impl Isel {
9926        #[doc = "Do not use as IRQn input pin"]
9927        pub const _0: Self = Self::new(0);
9928
9929        #[doc = "Use as IRQn input pin"]
9930        pub const _1: Self = Self::new(1);
9931    }
9932    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9933    pub struct Asel_SPEC;
9934    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9935    impl Asel {
9936        #[doc = "Do not use as analog pin"]
9937        pub const _0: Self = Self::new(0);
9938
9939        #[doc = "Use as analog pin"]
9940        pub const _1: Self = Self::new(1);
9941    }
9942    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9943    pub struct Pmr_SPEC;
9944    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9945    impl Pmr {
9946        #[doc = "Use as general I/O pin"]
9947        pub const _0: Self = Self::new(0);
9948
9949        #[doc = "Use as I/O port for peripheral functions"]
9950        pub const _1: Self = Self::new(1);
9951    }
9952}
9953#[doc(hidden)]
9954#[derive(Copy, Clone, Eq, PartialEq)]
9955pub struct P201PfsHa_SPEC;
9956impl crate::sealed::RegSpec for P201PfsHa_SPEC {
9957    type DataType = u16;
9958}
9959
9960#[doc = "Port 201 Pin Function Select Register"]
9961pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
9962
9963impl P201PfsHa {
9964    #[doc = "Port Output Data"]
9965    #[inline(always)]
9966    pub fn podr(
9967        self,
9968    ) -> crate::common::RegisterField<
9969        0,
9970        0x1,
9971        1,
9972        0,
9973        p201pfs_ha::Podr,
9974        p201pfs_ha::Podr,
9975        P201PfsHa_SPEC,
9976        crate::common::RW,
9977    > {
9978        crate::common::RegisterField::<
9979            0,
9980            0x1,
9981            1,
9982            0,
9983            p201pfs_ha::Podr,
9984            p201pfs_ha::Podr,
9985            P201PfsHa_SPEC,
9986            crate::common::RW,
9987        >::from_register(self, 0)
9988    }
9989
9990    #[doc = "Port State"]
9991    #[inline(always)]
9992    pub fn pidr(
9993        self,
9994    ) -> crate::common::RegisterField<
9995        1,
9996        0x1,
9997        1,
9998        0,
9999        p201pfs_ha::Pidr,
10000        p201pfs_ha::Pidr,
10001        P201PfsHa_SPEC,
10002        crate::common::R,
10003    > {
10004        crate::common::RegisterField::<
10005            1,
10006            0x1,
10007            1,
10008            0,
10009            p201pfs_ha::Pidr,
10010            p201pfs_ha::Pidr,
10011            P201PfsHa_SPEC,
10012            crate::common::R,
10013        >::from_register(self, 0)
10014    }
10015
10016    #[doc = "Port Direction"]
10017    #[inline(always)]
10018    pub fn pdr(
10019        self,
10020    ) -> crate::common::RegisterField<
10021        2,
10022        0x1,
10023        1,
10024        0,
10025        p201pfs_ha::Pdr,
10026        p201pfs_ha::Pdr,
10027        P201PfsHa_SPEC,
10028        crate::common::RW,
10029    > {
10030        crate::common::RegisterField::<
10031            2,
10032            0x1,
10033            1,
10034            0,
10035            p201pfs_ha::Pdr,
10036            p201pfs_ha::Pdr,
10037            P201PfsHa_SPEC,
10038            crate::common::RW,
10039        >::from_register(self, 0)
10040    }
10041
10042    #[doc = "Pull-up Control"]
10043    #[inline(always)]
10044    pub fn pcr(
10045        self,
10046    ) -> crate::common::RegisterField<
10047        4,
10048        0x1,
10049        1,
10050        0,
10051        p201pfs_ha::Pcr,
10052        p201pfs_ha::Pcr,
10053        P201PfsHa_SPEC,
10054        crate::common::RW,
10055    > {
10056        crate::common::RegisterField::<
10057            4,
10058            0x1,
10059            1,
10060            0,
10061            p201pfs_ha::Pcr,
10062            p201pfs_ha::Pcr,
10063            P201PfsHa_SPEC,
10064            crate::common::RW,
10065        >::from_register(self, 0)
10066    }
10067
10068    #[doc = "N-Channel Open-Drain Control"]
10069    #[inline(always)]
10070    pub fn ncodr(
10071        self,
10072    ) -> crate::common::RegisterField<
10073        6,
10074        0x1,
10075        1,
10076        0,
10077        p201pfs_ha::Ncodr,
10078        p201pfs_ha::Ncodr,
10079        P201PfsHa_SPEC,
10080        crate::common::RW,
10081    > {
10082        crate::common::RegisterField::<
10083            6,
10084            0x1,
10085            1,
10086            0,
10087            p201pfs_ha::Ncodr,
10088            p201pfs_ha::Ncodr,
10089            P201PfsHa_SPEC,
10090            crate::common::RW,
10091        >::from_register(self, 0)
10092    }
10093
10094    #[doc = "Event on Falling/Event on Rising"]
10095    #[inline(always)]
10096    pub fn eofr(
10097        self,
10098    ) -> crate::common::RegisterField<
10099        12,
10100        0x3,
10101        1,
10102        0,
10103        p201pfs_ha::Eofr,
10104        p201pfs_ha::Eofr,
10105        P201PfsHa_SPEC,
10106        crate::common::RW,
10107    > {
10108        crate::common::RegisterField::<
10109            12,
10110            0x3,
10111            1,
10112            0,
10113            p201pfs_ha::Eofr,
10114            p201pfs_ha::Eofr,
10115            P201PfsHa_SPEC,
10116            crate::common::RW,
10117        >::from_register(self, 0)
10118    }
10119
10120    #[doc = "IRQ Input Enable"]
10121    #[inline(always)]
10122    pub fn isel(
10123        self,
10124    ) -> crate::common::RegisterField<
10125        14,
10126        0x1,
10127        1,
10128        0,
10129        p201pfs_ha::Isel,
10130        p201pfs_ha::Isel,
10131        P201PfsHa_SPEC,
10132        crate::common::RW,
10133    > {
10134        crate::common::RegisterField::<
10135            14,
10136            0x1,
10137            1,
10138            0,
10139            p201pfs_ha::Isel,
10140            p201pfs_ha::Isel,
10141            P201PfsHa_SPEC,
10142            crate::common::RW,
10143        >::from_register(self, 0)
10144    }
10145
10146    #[doc = "Analog Input Enable"]
10147    #[inline(always)]
10148    pub fn asel(
10149        self,
10150    ) -> crate::common::RegisterField<
10151        15,
10152        0x1,
10153        1,
10154        0,
10155        p201pfs_ha::Asel,
10156        p201pfs_ha::Asel,
10157        P201PfsHa_SPEC,
10158        crate::common::RW,
10159    > {
10160        crate::common::RegisterField::<
10161            15,
10162            0x1,
10163            1,
10164            0,
10165            p201pfs_ha::Asel,
10166            p201pfs_ha::Asel,
10167            P201PfsHa_SPEC,
10168            crate::common::RW,
10169        >::from_register(self, 0)
10170    }
10171}
10172impl ::core::default::Default for P201PfsHa {
10173    #[inline(always)]
10174    fn default() -> P201PfsHa {
10175        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
10176    }
10177}
10178pub mod p201pfs_ha {
10179
10180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10181    pub struct Podr_SPEC;
10182    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10183    impl Podr {
10184        #[doc = "Output low"]
10185        pub const _0: Self = Self::new(0);
10186
10187        #[doc = "Output high"]
10188        pub const _1: Self = Self::new(1);
10189    }
10190    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10191    pub struct Pidr_SPEC;
10192    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10193    impl Pidr {
10194        #[doc = "Low level"]
10195        pub const _0: Self = Self::new(0);
10196
10197        #[doc = "High level"]
10198        pub const _1: Self = Self::new(1);
10199    }
10200    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10201    pub struct Pdr_SPEC;
10202    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10203    impl Pdr {
10204        #[doc = "Input (functions as an input pin)"]
10205        pub const _0: Self = Self::new(0);
10206
10207        #[doc = "Output (functions as an output pin)"]
10208        pub const _1: Self = Self::new(1);
10209    }
10210    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10211    pub struct Pcr_SPEC;
10212    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10213    impl Pcr {
10214        #[doc = "Disable input pull-up"]
10215        pub const _0: Self = Self::new(0);
10216
10217        #[doc = "Enable input pull-up"]
10218        pub const _1: Self = Self::new(1);
10219    }
10220    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10221    pub struct Ncodr_SPEC;
10222    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10223    impl Ncodr {
10224        #[doc = "Output CMOS"]
10225        pub const _0: Self = Self::new(0);
10226
10227        #[doc = "Output NMOS open-drain"]
10228        pub const _1: Self = Self::new(1);
10229    }
10230    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10231    pub struct Eofr_SPEC;
10232    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10233    impl Eofr {
10234        #[doc = "Don\'t care"]
10235        pub const _00: Self = Self::new(0);
10236
10237        #[doc = "Detect rising edge"]
10238        pub const _01: Self = Self::new(1);
10239
10240        #[doc = "Detect falling edge"]
10241        pub const _10: Self = Self::new(2);
10242
10243        #[doc = "Detect both edges"]
10244        pub const _11: Self = Self::new(3);
10245    }
10246    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10247    pub struct Isel_SPEC;
10248    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10249    impl Isel {
10250        #[doc = "Do not use as IRQn input pin"]
10251        pub const _0: Self = Self::new(0);
10252
10253        #[doc = "Use as IRQn input pin"]
10254        pub const _1: Self = Self::new(1);
10255    }
10256    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10257    pub struct Asel_SPEC;
10258    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10259    impl Asel {
10260        #[doc = "Do not use as analog pin"]
10261        pub const _0: Self = Self::new(0);
10262
10263        #[doc = "Use as analog pin"]
10264        pub const _1: Self = Self::new(1);
10265    }
10266}
10267#[doc(hidden)]
10268#[derive(Copy, Clone, Eq, PartialEq)]
10269pub struct P201PfsBy_SPEC;
10270impl crate::sealed::RegSpec for P201PfsBy_SPEC {
10271    type DataType = u8;
10272}
10273
10274#[doc = "Port 201 Pin Function Select Register"]
10275pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
10276
10277impl P201PfsBy {
10278    #[doc = "Port Output Data"]
10279    #[inline(always)]
10280    pub fn podr(
10281        self,
10282    ) -> crate::common::RegisterField<
10283        0,
10284        0x1,
10285        1,
10286        0,
10287        p201pfs_by::Podr,
10288        p201pfs_by::Podr,
10289        P201PfsBy_SPEC,
10290        crate::common::RW,
10291    > {
10292        crate::common::RegisterField::<
10293            0,
10294            0x1,
10295            1,
10296            0,
10297            p201pfs_by::Podr,
10298            p201pfs_by::Podr,
10299            P201PfsBy_SPEC,
10300            crate::common::RW,
10301        >::from_register(self, 0)
10302    }
10303
10304    #[doc = "Port State"]
10305    #[inline(always)]
10306    pub fn pidr(
10307        self,
10308    ) -> crate::common::RegisterField<
10309        1,
10310        0x1,
10311        1,
10312        0,
10313        p201pfs_by::Pidr,
10314        p201pfs_by::Pidr,
10315        P201PfsBy_SPEC,
10316        crate::common::R,
10317    > {
10318        crate::common::RegisterField::<
10319            1,
10320            0x1,
10321            1,
10322            0,
10323            p201pfs_by::Pidr,
10324            p201pfs_by::Pidr,
10325            P201PfsBy_SPEC,
10326            crate::common::R,
10327        >::from_register(self, 0)
10328    }
10329
10330    #[doc = "Port Direction"]
10331    #[inline(always)]
10332    pub fn pdr(
10333        self,
10334    ) -> crate::common::RegisterField<
10335        2,
10336        0x1,
10337        1,
10338        0,
10339        p201pfs_by::Pdr,
10340        p201pfs_by::Pdr,
10341        P201PfsBy_SPEC,
10342        crate::common::RW,
10343    > {
10344        crate::common::RegisterField::<
10345            2,
10346            0x1,
10347            1,
10348            0,
10349            p201pfs_by::Pdr,
10350            p201pfs_by::Pdr,
10351            P201PfsBy_SPEC,
10352            crate::common::RW,
10353        >::from_register(self, 0)
10354    }
10355
10356    #[doc = "Pull-up Control"]
10357    #[inline(always)]
10358    pub fn pcr(
10359        self,
10360    ) -> crate::common::RegisterField<
10361        4,
10362        0x1,
10363        1,
10364        0,
10365        p201pfs_by::Pcr,
10366        p201pfs_by::Pcr,
10367        P201PfsBy_SPEC,
10368        crate::common::RW,
10369    > {
10370        crate::common::RegisterField::<
10371            4,
10372            0x1,
10373            1,
10374            0,
10375            p201pfs_by::Pcr,
10376            p201pfs_by::Pcr,
10377            P201PfsBy_SPEC,
10378            crate::common::RW,
10379        >::from_register(self, 0)
10380    }
10381
10382    #[doc = "N-Channel Open-Drain Control"]
10383    #[inline(always)]
10384    pub fn ncodr(
10385        self,
10386    ) -> crate::common::RegisterField<
10387        6,
10388        0x1,
10389        1,
10390        0,
10391        p201pfs_by::Ncodr,
10392        p201pfs_by::Ncodr,
10393        P201PfsBy_SPEC,
10394        crate::common::RW,
10395    > {
10396        crate::common::RegisterField::<
10397            6,
10398            0x1,
10399            1,
10400            0,
10401            p201pfs_by::Ncodr,
10402            p201pfs_by::Ncodr,
10403            P201PfsBy_SPEC,
10404            crate::common::RW,
10405        >::from_register(self, 0)
10406    }
10407}
10408impl ::core::default::Default for P201PfsBy {
10409    #[inline(always)]
10410    fn default() -> P201PfsBy {
10411        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
10412    }
10413}
10414pub mod p201pfs_by {
10415
10416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10417    pub struct Podr_SPEC;
10418    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10419    impl Podr {
10420        #[doc = "Output low"]
10421        pub const _0: Self = Self::new(0);
10422
10423        #[doc = "Output high"]
10424        pub const _1: Self = Self::new(1);
10425    }
10426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10427    pub struct Pidr_SPEC;
10428    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10429    impl Pidr {
10430        #[doc = "Low level"]
10431        pub const _0: Self = Self::new(0);
10432
10433        #[doc = "High level"]
10434        pub const _1: Self = Self::new(1);
10435    }
10436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10437    pub struct Pdr_SPEC;
10438    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10439    impl Pdr {
10440        #[doc = "Input (functions as an input pin)"]
10441        pub const _0: Self = Self::new(0);
10442
10443        #[doc = "Output (functions as an output pin)"]
10444        pub const _1: Self = Self::new(1);
10445    }
10446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10447    pub struct Pcr_SPEC;
10448    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10449    impl Pcr {
10450        #[doc = "Disable input pull-up"]
10451        pub const _0: Self = Self::new(0);
10452
10453        #[doc = "Enable input pull-up"]
10454        pub const _1: Self = Self::new(1);
10455    }
10456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10457    pub struct Ncodr_SPEC;
10458    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10459    impl Ncodr {
10460        #[doc = "Output CMOS"]
10461        pub const _0: Self = Self::new(0);
10462
10463        #[doc = "Output NMOS open-drain"]
10464        pub const _1: Self = Self::new(1);
10465    }
10466}
10467#[doc(hidden)]
10468#[derive(Copy, Clone, Eq, PartialEq)]
10469pub struct P20Pfs_SPEC;
10470impl crate::sealed::RegSpec for P20Pfs_SPEC {
10471    type DataType = u32;
10472}
10473
10474#[doc = "Port 20%s Pin Function Select Register"]
10475pub type P20Pfs = crate::RegValueT<P20Pfs_SPEC>;
10476
10477impl P20Pfs {
10478    #[doc = "Port Output Data"]
10479    #[inline(always)]
10480    pub fn podr(
10481        self,
10482    ) -> crate::common::RegisterField<
10483        0,
10484        0x1,
10485        1,
10486        0,
10487        p20pfs::Podr,
10488        p20pfs::Podr,
10489        P20Pfs_SPEC,
10490        crate::common::RW,
10491    > {
10492        crate::common::RegisterField::<
10493            0,
10494            0x1,
10495            1,
10496            0,
10497            p20pfs::Podr,
10498            p20pfs::Podr,
10499            P20Pfs_SPEC,
10500            crate::common::RW,
10501        >::from_register(self, 0)
10502    }
10503
10504    #[doc = "Port State"]
10505    #[inline(always)]
10506    pub fn pidr(
10507        self,
10508    ) -> crate::common::RegisterField<
10509        1,
10510        0x1,
10511        1,
10512        0,
10513        p20pfs::Pidr,
10514        p20pfs::Pidr,
10515        P20Pfs_SPEC,
10516        crate::common::R,
10517    > {
10518        crate::common::RegisterField::<
10519            1,
10520            0x1,
10521            1,
10522            0,
10523            p20pfs::Pidr,
10524            p20pfs::Pidr,
10525            P20Pfs_SPEC,
10526            crate::common::R,
10527        >::from_register(self, 0)
10528    }
10529
10530    #[doc = "Port Direction"]
10531    #[inline(always)]
10532    pub fn pdr(
10533        self,
10534    ) -> crate::common::RegisterField<
10535        2,
10536        0x1,
10537        1,
10538        0,
10539        p20pfs::Pdr,
10540        p20pfs::Pdr,
10541        P20Pfs_SPEC,
10542        crate::common::RW,
10543    > {
10544        crate::common::RegisterField::<
10545            2,
10546            0x1,
10547            1,
10548            0,
10549            p20pfs::Pdr,
10550            p20pfs::Pdr,
10551            P20Pfs_SPEC,
10552            crate::common::RW,
10553        >::from_register(self, 0)
10554    }
10555
10556    #[doc = "Pull-up Control"]
10557    #[inline(always)]
10558    pub fn pcr(
10559        self,
10560    ) -> crate::common::RegisterField<
10561        4,
10562        0x1,
10563        1,
10564        0,
10565        p20pfs::Pcr,
10566        p20pfs::Pcr,
10567        P20Pfs_SPEC,
10568        crate::common::RW,
10569    > {
10570        crate::common::RegisterField::<
10571            4,
10572            0x1,
10573            1,
10574            0,
10575            p20pfs::Pcr,
10576            p20pfs::Pcr,
10577            P20Pfs_SPEC,
10578            crate::common::RW,
10579        >::from_register(self, 0)
10580    }
10581
10582    #[doc = "N-Channel Open-Drain Control"]
10583    #[inline(always)]
10584    pub fn ncodr(
10585        self,
10586    ) -> crate::common::RegisterField<
10587        6,
10588        0x1,
10589        1,
10590        0,
10591        p20pfs::Ncodr,
10592        p20pfs::Ncodr,
10593        P20Pfs_SPEC,
10594        crate::common::RW,
10595    > {
10596        crate::common::RegisterField::<
10597            6,
10598            0x1,
10599            1,
10600            0,
10601            p20pfs::Ncodr,
10602            p20pfs::Ncodr,
10603            P20Pfs_SPEC,
10604            crate::common::RW,
10605        >::from_register(self, 0)
10606    }
10607
10608    #[doc = "Event on Falling/Event on Rising"]
10609    #[inline(always)]
10610    pub fn eofr(
10611        self,
10612    ) -> crate::common::RegisterField<
10613        12,
10614        0x3,
10615        1,
10616        0,
10617        p20pfs::Eofr,
10618        p20pfs::Eofr,
10619        P20Pfs_SPEC,
10620        crate::common::RW,
10621    > {
10622        crate::common::RegisterField::<
10623            12,
10624            0x3,
10625            1,
10626            0,
10627            p20pfs::Eofr,
10628            p20pfs::Eofr,
10629            P20Pfs_SPEC,
10630            crate::common::RW,
10631        >::from_register(self, 0)
10632    }
10633
10634    #[doc = "IRQ Input Enable"]
10635    #[inline(always)]
10636    pub fn isel(
10637        self,
10638    ) -> crate::common::RegisterField<
10639        14,
10640        0x1,
10641        1,
10642        0,
10643        p20pfs::Isel,
10644        p20pfs::Isel,
10645        P20Pfs_SPEC,
10646        crate::common::RW,
10647    > {
10648        crate::common::RegisterField::<
10649            14,
10650            0x1,
10651            1,
10652            0,
10653            p20pfs::Isel,
10654            p20pfs::Isel,
10655            P20Pfs_SPEC,
10656            crate::common::RW,
10657        >::from_register(self, 0)
10658    }
10659
10660    #[doc = "Analog Input Enable"]
10661    #[inline(always)]
10662    pub fn asel(
10663        self,
10664    ) -> crate::common::RegisterField<
10665        15,
10666        0x1,
10667        1,
10668        0,
10669        p20pfs::Asel,
10670        p20pfs::Asel,
10671        P20Pfs_SPEC,
10672        crate::common::RW,
10673    > {
10674        crate::common::RegisterField::<
10675            15,
10676            0x1,
10677            1,
10678            0,
10679            p20pfs::Asel,
10680            p20pfs::Asel,
10681            P20Pfs_SPEC,
10682            crate::common::RW,
10683        >::from_register(self, 0)
10684    }
10685
10686    #[doc = "Port Mode Control"]
10687    #[inline(always)]
10688    pub fn pmr(
10689        self,
10690    ) -> crate::common::RegisterField<
10691        16,
10692        0x1,
10693        1,
10694        0,
10695        p20pfs::Pmr,
10696        p20pfs::Pmr,
10697        P20Pfs_SPEC,
10698        crate::common::RW,
10699    > {
10700        crate::common::RegisterField::<
10701            16,
10702            0x1,
10703            1,
10704            0,
10705            p20pfs::Pmr,
10706            p20pfs::Pmr,
10707            P20Pfs_SPEC,
10708            crate::common::RW,
10709        >::from_register(self, 0)
10710    }
10711
10712    #[doc = "Peripheral Select"]
10713    #[inline(always)]
10714    pub fn psel(
10715        self,
10716    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P20Pfs_SPEC, crate::common::RW> {
10717        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P20Pfs_SPEC,crate::common::RW>::from_register(self,0)
10718    }
10719}
10720impl ::core::default::Default for P20Pfs {
10721    #[inline(always)]
10722    fn default() -> P20Pfs {
10723        <crate::RegValueT<P20Pfs_SPEC> as RegisterValue<_>>::new(0)
10724    }
10725}
10726pub mod p20pfs {
10727
10728    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10729    pub struct Podr_SPEC;
10730    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10731    impl Podr {
10732        #[doc = "Output low"]
10733        pub const _0: Self = Self::new(0);
10734
10735        #[doc = "Output high"]
10736        pub const _1: Self = Self::new(1);
10737    }
10738    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10739    pub struct Pidr_SPEC;
10740    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10741    impl Pidr {
10742        #[doc = "Low level"]
10743        pub const _0: Self = Self::new(0);
10744
10745        #[doc = "High level"]
10746        pub const _1: Self = Self::new(1);
10747    }
10748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10749    pub struct Pdr_SPEC;
10750    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10751    impl Pdr {
10752        #[doc = "Input (functions as an input pin)"]
10753        pub const _0: Self = Self::new(0);
10754
10755        #[doc = "Output (functions as an output pin)"]
10756        pub const _1: Self = Self::new(1);
10757    }
10758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10759    pub struct Pcr_SPEC;
10760    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10761    impl Pcr {
10762        #[doc = "Disable input pull-up"]
10763        pub const _0: Self = Self::new(0);
10764
10765        #[doc = "Enable input pull-up"]
10766        pub const _1: Self = Self::new(1);
10767    }
10768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10769    pub struct Ncodr_SPEC;
10770    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10771    impl Ncodr {
10772        #[doc = "Output CMOS"]
10773        pub const _0: Self = Self::new(0);
10774
10775        #[doc = "Output NMOS open-drain"]
10776        pub const _1: Self = Self::new(1);
10777    }
10778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10779    pub struct Eofr_SPEC;
10780    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10781    impl Eofr {
10782        #[doc = "Don\'t care"]
10783        pub const _00: Self = Self::new(0);
10784
10785        #[doc = "Detect rising edge"]
10786        pub const _01: Self = Self::new(1);
10787
10788        #[doc = "Detect falling edge"]
10789        pub const _10: Self = Self::new(2);
10790
10791        #[doc = "Detect both edges"]
10792        pub const _11: Self = Self::new(3);
10793    }
10794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10795    pub struct Isel_SPEC;
10796    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10797    impl Isel {
10798        #[doc = "Do not use as IRQn input pin"]
10799        pub const _0: Self = Self::new(0);
10800
10801        #[doc = "Use as IRQn input pin"]
10802        pub const _1: Self = Self::new(1);
10803    }
10804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10805    pub struct Asel_SPEC;
10806    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10807    impl Asel {
10808        #[doc = "Do not use as analog pin"]
10809        pub const _0: Self = Self::new(0);
10810
10811        #[doc = "Use as analog pin"]
10812        pub const _1: Self = Self::new(1);
10813    }
10814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10815    pub struct Pmr_SPEC;
10816    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
10817    impl Pmr {
10818        #[doc = "Use as general I/O pin"]
10819        pub const _0: Self = Self::new(0);
10820
10821        #[doc = "Use as I/O port for peripheral functions"]
10822        pub const _1: Self = Self::new(1);
10823    }
10824}
10825#[doc(hidden)]
10826#[derive(Copy, Clone, Eq, PartialEq)]
10827pub struct P20PfsHa_SPEC;
10828impl crate::sealed::RegSpec for P20PfsHa_SPEC {
10829    type DataType = u16;
10830}
10831
10832#[doc = "Port 20%s Pin Function Select Register"]
10833pub type P20PfsHa = crate::RegValueT<P20PfsHa_SPEC>;
10834
10835impl P20PfsHa {
10836    #[doc = "Port Output Data"]
10837    #[inline(always)]
10838    pub fn podr(
10839        self,
10840    ) -> crate::common::RegisterField<
10841        0,
10842        0x1,
10843        1,
10844        0,
10845        p20pfs_ha::Podr,
10846        p20pfs_ha::Podr,
10847        P20PfsHa_SPEC,
10848        crate::common::RW,
10849    > {
10850        crate::common::RegisterField::<
10851            0,
10852            0x1,
10853            1,
10854            0,
10855            p20pfs_ha::Podr,
10856            p20pfs_ha::Podr,
10857            P20PfsHa_SPEC,
10858            crate::common::RW,
10859        >::from_register(self, 0)
10860    }
10861
10862    #[doc = "Port State"]
10863    #[inline(always)]
10864    pub fn pidr(
10865        self,
10866    ) -> crate::common::RegisterField<
10867        1,
10868        0x1,
10869        1,
10870        0,
10871        p20pfs_ha::Pidr,
10872        p20pfs_ha::Pidr,
10873        P20PfsHa_SPEC,
10874        crate::common::R,
10875    > {
10876        crate::common::RegisterField::<
10877            1,
10878            0x1,
10879            1,
10880            0,
10881            p20pfs_ha::Pidr,
10882            p20pfs_ha::Pidr,
10883            P20PfsHa_SPEC,
10884            crate::common::R,
10885        >::from_register(self, 0)
10886    }
10887
10888    #[doc = "Port Direction"]
10889    #[inline(always)]
10890    pub fn pdr(
10891        self,
10892    ) -> crate::common::RegisterField<
10893        2,
10894        0x1,
10895        1,
10896        0,
10897        p20pfs_ha::Pdr,
10898        p20pfs_ha::Pdr,
10899        P20PfsHa_SPEC,
10900        crate::common::RW,
10901    > {
10902        crate::common::RegisterField::<
10903            2,
10904            0x1,
10905            1,
10906            0,
10907            p20pfs_ha::Pdr,
10908            p20pfs_ha::Pdr,
10909            P20PfsHa_SPEC,
10910            crate::common::RW,
10911        >::from_register(self, 0)
10912    }
10913
10914    #[doc = "Pull-up Control"]
10915    #[inline(always)]
10916    pub fn pcr(
10917        self,
10918    ) -> crate::common::RegisterField<
10919        4,
10920        0x1,
10921        1,
10922        0,
10923        p20pfs_ha::Pcr,
10924        p20pfs_ha::Pcr,
10925        P20PfsHa_SPEC,
10926        crate::common::RW,
10927    > {
10928        crate::common::RegisterField::<
10929            4,
10930            0x1,
10931            1,
10932            0,
10933            p20pfs_ha::Pcr,
10934            p20pfs_ha::Pcr,
10935            P20PfsHa_SPEC,
10936            crate::common::RW,
10937        >::from_register(self, 0)
10938    }
10939
10940    #[doc = "N-Channel Open-Drain Control"]
10941    #[inline(always)]
10942    pub fn ncodr(
10943        self,
10944    ) -> crate::common::RegisterField<
10945        6,
10946        0x1,
10947        1,
10948        0,
10949        p20pfs_ha::Ncodr,
10950        p20pfs_ha::Ncodr,
10951        P20PfsHa_SPEC,
10952        crate::common::RW,
10953    > {
10954        crate::common::RegisterField::<
10955            6,
10956            0x1,
10957            1,
10958            0,
10959            p20pfs_ha::Ncodr,
10960            p20pfs_ha::Ncodr,
10961            P20PfsHa_SPEC,
10962            crate::common::RW,
10963        >::from_register(self, 0)
10964    }
10965
10966    #[doc = "Event on Falling/Event on Rising"]
10967    #[inline(always)]
10968    pub fn eofr(
10969        self,
10970    ) -> crate::common::RegisterField<
10971        12,
10972        0x3,
10973        1,
10974        0,
10975        p20pfs_ha::Eofr,
10976        p20pfs_ha::Eofr,
10977        P20PfsHa_SPEC,
10978        crate::common::RW,
10979    > {
10980        crate::common::RegisterField::<
10981            12,
10982            0x3,
10983            1,
10984            0,
10985            p20pfs_ha::Eofr,
10986            p20pfs_ha::Eofr,
10987            P20PfsHa_SPEC,
10988            crate::common::RW,
10989        >::from_register(self, 0)
10990    }
10991
10992    #[doc = "IRQ Input Enable"]
10993    #[inline(always)]
10994    pub fn isel(
10995        self,
10996    ) -> crate::common::RegisterField<
10997        14,
10998        0x1,
10999        1,
11000        0,
11001        p20pfs_ha::Isel,
11002        p20pfs_ha::Isel,
11003        P20PfsHa_SPEC,
11004        crate::common::RW,
11005    > {
11006        crate::common::RegisterField::<
11007            14,
11008            0x1,
11009            1,
11010            0,
11011            p20pfs_ha::Isel,
11012            p20pfs_ha::Isel,
11013            P20PfsHa_SPEC,
11014            crate::common::RW,
11015        >::from_register(self, 0)
11016    }
11017
11018    #[doc = "Analog Input Enable"]
11019    #[inline(always)]
11020    pub fn asel(
11021        self,
11022    ) -> crate::common::RegisterField<
11023        15,
11024        0x1,
11025        1,
11026        0,
11027        p20pfs_ha::Asel,
11028        p20pfs_ha::Asel,
11029        P20PfsHa_SPEC,
11030        crate::common::RW,
11031    > {
11032        crate::common::RegisterField::<
11033            15,
11034            0x1,
11035            1,
11036            0,
11037            p20pfs_ha::Asel,
11038            p20pfs_ha::Asel,
11039            P20PfsHa_SPEC,
11040            crate::common::RW,
11041        >::from_register(self, 0)
11042    }
11043}
11044impl ::core::default::Default for P20PfsHa {
11045    #[inline(always)]
11046    fn default() -> P20PfsHa {
11047        <crate::RegValueT<P20PfsHa_SPEC> as RegisterValue<_>>::new(0)
11048    }
11049}
11050pub mod p20pfs_ha {
11051
11052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11053    pub struct Podr_SPEC;
11054    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11055    impl Podr {
11056        #[doc = "Output low"]
11057        pub const _0: Self = Self::new(0);
11058
11059        #[doc = "Output high"]
11060        pub const _1: Self = Self::new(1);
11061    }
11062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11063    pub struct Pidr_SPEC;
11064    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11065    impl Pidr {
11066        #[doc = "Low level"]
11067        pub const _0: Self = Self::new(0);
11068
11069        #[doc = "High level"]
11070        pub const _1: Self = Self::new(1);
11071    }
11072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11073    pub struct Pdr_SPEC;
11074    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11075    impl Pdr {
11076        #[doc = "Input (functions as an input pin)"]
11077        pub const _0: Self = Self::new(0);
11078
11079        #[doc = "Output (functions as an output pin)"]
11080        pub const _1: Self = Self::new(1);
11081    }
11082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11083    pub struct Pcr_SPEC;
11084    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11085    impl Pcr {
11086        #[doc = "Disable input pull-up"]
11087        pub const _0: Self = Self::new(0);
11088
11089        #[doc = "Enable input pull-up"]
11090        pub const _1: Self = Self::new(1);
11091    }
11092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11093    pub struct Ncodr_SPEC;
11094    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11095    impl Ncodr {
11096        #[doc = "Output CMOS"]
11097        pub const _0: Self = Self::new(0);
11098
11099        #[doc = "Output NMOS open-drain"]
11100        pub const _1: Self = Self::new(1);
11101    }
11102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11103    pub struct Eofr_SPEC;
11104    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11105    impl Eofr {
11106        #[doc = "Don\'t care"]
11107        pub const _00: Self = Self::new(0);
11108
11109        #[doc = "Detect rising edge"]
11110        pub const _01: Self = Self::new(1);
11111
11112        #[doc = "Detect falling edge"]
11113        pub const _10: Self = Self::new(2);
11114
11115        #[doc = "Detect both edges"]
11116        pub const _11: Self = Self::new(3);
11117    }
11118    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11119    pub struct Isel_SPEC;
11120    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11121    impl Isel {
11122        #[doc = "Do not use as IRQn input pin"]
11123        pub const _0: Self = Self::new(0);
11124
11125        #[doc = "Use as IRQn input pin"]
11126        pub const _1: Self = Self::new(1);
11127    }
11128    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11129    pub struct Asel_SPEC;
11130    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11131    impl Asel {
11132        #[doc = "Do not use as analog pin"]
11133        pub const _0: Self = Self::new(0);
11134
11135        #[doc = "Use as analog pin"]
11136        pub const _1: Self = Self::new(1);
11137    }
11138}
11139#[doc(hidden)]
11140#[derive(Copy, Clone, Eq, PartialEq)]
11141pub struct P20PfsBy_SPEC;
11142impl crate::sealed::RegSpec for P20PfsBy_SPEC {
11143    type DataType = u8;
11144}
11145
11146#[doc = "Port 20%s Pin Function Select Register"]
11147pub type P20PfsBy = crate::RegValueT<P20PfsBy_SPEC>;
11148
11149impl P20PfsBy {
11150    #[doc = "Port Output Data"]
11151    #[inline(always)]
11152    pub fn podr(
11153        self,
11154    ) -> crate::common::RegisterField<
11155        0,
11156        0x1,
11157        1,
11158        0,
11159        p20pfs_by::Podr,
11160        p20pfs_by::Podr,
11161        P20PfsBy_SPEC,
11162        crate::common::RW,
11163    > {
11164        crate::common::RegisterField::<
11165            0,
11166            0x1,
11167            1,
11168            0,
11169            p20pfs_by::Podr,
11170            p20pfs_by::Podr,
11171            P20PfsBy_SPEC,
11172            crate::common::RW,
11173        >::from_register(self, 0)
11174    }
11175
11176    #[doc = "Port State"]
11177    #[inline(always)]
11178    pub fn pidr(
11179        self,
11180    ) -> crate::common::RegisterField<
11181        1,
11182        0x1,
11183        1,
11184        0,
11185        p20pfs_by::Pidr,
11186        p20pfs_by::Pidr,
11187        P20PfsBy_SPEC,
11188        crate::common::R,
11189    > {
11190        crate::common::RegisterField::<
11191            1,
11192            0x1,
11193            1,
11194            0,
11195            p20pfs_by::Pidr,
11196            p20pfs_by::Pidr,
11197            P20PfsBy_SPEC,
11198            crate::common::R,
11199        >::from_register(self, 0)
11200    }
11201
11202    #[doc = "Port Direction"]
11203    #[inline(always)]
11204    pub fn pdr(
11205        self,
11206    ) -> crate::common::RegisterField<
11207        2,
11208        0x1,
11209        1,
11210        0,
11211        p20pfs_by::Pdr,
11212        p20pfs_by::Pdr,
11213        P20PfsBy_SPEC,
11214        crate::common::RW,
11215    > {
11216        crate::common::RegisterField::<
11217            2,
11218            0x1,
11219            1,
11220            0,
11221            p20pfs_by::Pdr,
11222            p20pfs_by::Pdr,
11223            P20PfsBy_SPEC,
11224            crate::common::RW,
11225        >::from_register(self, 0)
11226    }
11227
11228    #[doc = "Pull-up Control"]
11229    #[inline(always)]
11230    pub fn pcr(
11231        self,
11232    ) -> crate::common::RegisterField<
11233        4,
11234        0x1,
11235        1,
11236        0,
11237        p20pfs_by::Pcr,
11238        p20pfs_by::Pcr,
11239        P20PfsBy_SPEC,
11240        crate::common::RW,
11241    > {
11242        crate::common::RegisterField::<
11243            4,
11244            0x1,
11245            1,
11246            0,
11247            p20pfs_by::Pcr,
11248            p20pfs_by::Pcr,
11249            P20PfsBy_SPEC,
11250            crate::common::RW,
11251        >::from_register(self, 0)
11252    }
11253
11254    #[doc = "N-Channel Open-Drain Control"]
11255    #[inline(always)]
11256    pub fn ncodr(
11257        self,
11258    ) -> crate::common::RegisterField<
11259        6,
11260        0x1,
11261        1,
11262        0,
11263        p20pfs_by::Ncodr,
11264        p20pfs_by::Ncodr,
11265        P20PfsBy_SPEC,
11266        crate::common::RW,
11267    > {
11268        crate::common::RegisterField::<
11269            6,
11270            0x1,
11271            1,
11272            0,
11273            p20pfs_by::Ncodr,
11274            p20pfs_by::Ncodr,
11275            P20PfsBy_SPEC,
11276            crate::common::RW,
11277        >::from_register(self, 0)
11278    }
11279}
11280impl ::core::default::Default for P20PfsBy {
11281    #[inline(always)]
11282    fn default() -> P20PfsBy {
11283        <crate::RegValueT<P20PfsBy_SPEC> as RegisterValue<_>>::new(0)
11284    }
11285}
11286pub mod p20pfs_by {
11287
11288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11289    pub struct Podr_SPEC;
11290    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11291    impl Podr {
11292        #[doc = "Output low"]
11293        pub const _0: Self = Self::new(0);
11294
11295        #[doc = "Output high"]
11296        pub const _1: Self = Self::new(1);
11297    }
11298    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11299    pub struct Pidr_SPEC;
11300    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11301    impl Pidr {
11302        #[doc = "Low level"]
11303        pub const _0: Self = Self::new(0);
11304
11305        #[doc = "High level"]
11306        pub const _1: Self = Self::new(1);
11307    }
11308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11309    pub struct Pdr_SPEC;
11310    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11311    impl Pdr {
11312        #[doc = "Input (functions as an input pin)"]
11313        pub const _0: Self = Self::new(0);
11314
11315        #[doc = "Output (functions as an output pin)"]
11316        pub const _1: Self = Self::new(1);
11317    }
11318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11319    pub struct Pcr_SPEC;
11320    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11321    impl Pcr {
11322        #[doc = "Disable input pull-up"]
11323        pub const _0: Self = Self::new(0);
11324
11325        #[doc = "Enable input pull-up"]
11326        pub const _1: Self = Self::new(1);
11327    }
11328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11329    pub struct Ncodr_SPEC;
11330    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11331    impl Ncodr {
11332        #[doc = "Output CMOS"]
11333        pub const _0: Self = Self::new(0);
11334
11335        #[doc = "Output NMOS open-drain"]
11336        pub const _1: Self = Self::new(1);
11337    }
11338}
11339#[doc(hidden)]
11340#[derive(Copy, Clone, Eq, PartialEq)]
11341pub struct P2Pfs_SPEC;
11342impl crate::sealed::RegSpec for P2Pfs_SPEC {
11343    type DataType = u32;
11344}
11345
11346#[doc = "Port 2%s Pin Function Select Register"]
11347pub type P2Pfs = crate::RegValueT<P2Pfs_SPEC>;
11348
11349impl P2Pfs {
11350    #[doc = "Port Output Data"]
11351    #[inline(always)]
11352    pub fn podr(
11353        self,
11354    ) -> crate::common::RegisterField<
11355        0,
11356        0x1,
11357        1,
11358        0,
11359        p2pfs::Podr,
11360        p2pfs::Podr,
11361        P2Pfs_SPEC,
11362        crate::common::RW,
11363    > {
11364        crate::common::RegisterField::<
11365            0,
11366            0x1,
11367            1,
11368            0,
11369            p2pfs::Podr,
11370            p2pfs::Podr,
11371            P2Pfs_SPEC,
11372            crate::common::RW,
11373        >::from_register(self, 0)
11374    }
11375
11376    #[doc = "Port State"]
11377    #[inline(always)]
11378    pub fn pidr(
11379        self,
11380    ) -> crate::common::RegisterField<
11381        1,
11382        0x1,
11383        1,
11384        0,
11385        p2pfs::Pidr,
11386        p2pfs::Pidr,
11387        P2Pfs_SPEC,
11388        crate::common::R,
11389    > {
11390        crate::common::RegisterField::<
11391            1,
11392            0x1,
11393            1,
11394            0,
11395            p2pfs::Pidr,
11396            p2pfs::Pidr,
11397            P2Pfs_SPEC,
11398            crate::common::R,
11399        >::from_register(self, 0)
11400    }
11401
11402    #[doc = "Port Direction"]
11403    #[inline(always)]
11404    pub fn pdr(
11405        self,
11406    ) -> crate::common::RegisterField<
11407        2,
11408        0x1,
11409        1,
11410        0,
11411        p2pfs::Pdr,
11412        p2pfs::Pdr,
11413        P2Pfs_SPEC,
11414        crate::common::RW,
11415    > {
11416        crate::common::RegisterField::<
11417            2,
11418            0x1,
11419            1,
11420            0,
11421            p2pfs::Pdr,
11422            p2pfs::Pdr,
11423            P2Pfs_SPEC,
11424            crate::common::RW,
11425        >::from_register(self, 0)
11426    }
11427
11428    #[doc = "Pull-up Control"]
11429    #[inline(always)]
11430    pub fn pcr(
11431        self,
11432    ) -> crate::common::RegisterField<
11433        4,
11434        0x1,
11435        1,
11436        0,
11437        p2pfs::Pcr,
11438        p2pfs::Pcr,
11439        P2Pfs_SPEC,
11440        crate::common::RW,
11441    > {
11442        crate::common::RegisterField::<
11443            4,
11444            0x1,
11445            1,
11446            0,
11447            p2pfs::Pcr,
11448            p2pfs::Pcr,
11449            P2Pfs_SPEC,
11450            crate::common::RW,
11451        >::from_register(self, 0)
11452    }
11453
11454    #[doc = "N-Channel Open-Drain Control"]
11455    #[inline(always)]
11456    pub fn ncodr(
11457        self,
11458    ) -> crate::common::RegisterField<
11459        6,
11460        0x1,
11461        1,
11462        0,
11463        p2pfs::Ncodr,
11464        p2pfs::Ncodr,
11465        P2Pfs_SPEC,
11466        crate::common::RW,
11467    > {
11468        crate::common::RegisterField::<
11469            6,
11470            0x1,
11471            1,
11472            0,
11473            p2pfs::Ncodr,
11474            p2pfs::Ncodr,
11475            P2Pfs_SPEC,
11476            crate::common::RW,
11477        >::from_register(self, 0)
11478    }
11479
11480    #[doc = "Event on Falling/Event on Rising"]
11481    #[inline(always)]
11482    pub fn eofr(
11483        self,
11484    ) -> crate::common::RegisterField<
11485        12,
11486        0x3,
11487        1,
11488        0,
11489        p2pfs::Eofr,
11490        p2pfs::Eofr,
11491        P2Pfs_SPEC,
11492        crate::common::RW,
11493    > {
11494        crate::common::RegisterField::<
11495            12,
11496            0x3,
11497            1,
11498            0,
11499            p2pfs::Eofr,
11500            p2pfs::Eofr,
11501            P2Pfs_SPEC,
11502            crate::common::RW,
11503        >::from_register(self, 0)
11504    }
11505
11506    #[doc = "IRQ Input Enable"]
11507    #[inline(always)]
11508    pub fn isel(
11509        self,
11510    ) -> crate::common::RegisterField<
11511        14,
11512        0x1,
11513        1,
11514        0,
11515        p2pfs::Isel,
11516        p2pfs::Isel,
11517        P2Pfs_SPEC,
11518        crate::common::RW,
11519    > {
11520        crate::common::RegisterField::<
11521            14,
11522            0x1,
11523            1,
11524            0,
11525            p2pfs::Isel,
11526            p2pfs::Isel,
11527            P2Pfs_SPEC,
11528            crate::common::RW,
11529        >::from_register(self, 0)
11530    }
11531
11532    #[doc = "Analog Input Enable"]
11533    #[inline(always)]
11534    pub fn asel(
11535        self,
11536    ) -> crate::common::RegisterField<
11537        15,
11538        0x1,
11539        1,
11540        0,
11541        p2pfs::Asel,
11542        p2pfs::Asel,
11543        P2Pfs_SPEC,
11544        crate::common::RW,
11545    > {
11546        crate::common::RegisterField::<
11547            15,
11548            0x1,
11549            1,
11550            0,
11551            p2pfs::Asel,
11552            p2pfs::Asel,
11553            P2Pfs_SPEC,
11554            crate::common::RW,
11555        >::from_register(self, 0)
11556    }
11557
11558    #[doc = "Port Mode Control"]
11559    #[inline(always)]
11560    pub fn pmr(
11561        self,
11562    ) -> crate::common::RegisterField<
11563        16,
11564        0x1,
11565        1,
11566        0,
11567        p2pfs::Pmr,
11568        p2pfs::Pmr,
11569        P2Pfs_SPEC,
11570        crate::common::RW,
11571    > {
11572        crate::common::RegisterField::<
11573            16,
11574            0x1,
11575            1,
11576            0,
11577            p2pfs::Pmr,
11578            p2pfs::Pmr,
11579            P2Pfs_SPEC,
11580            crate::common::RW,
11581        >::from_register(self, 0)
11582    }
11583
11584    #[doc = "Peripheral Select"]
11585    #[inline(always)]
11586    pub fn psel(
11587        self,
11588    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P2Pfs_SPEC, crate::common::RW> {
11589        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P2Pfs_SPEC,crate::common::RW>::from_register(self,0)
11590    }
11591}
11592impl ::core::default::Default for P2Pfs {
11593    #[inline(always)]
11594    fn default() -> P2Pfs {
11595        <crate::RegValueT<P2Pfs_SPEC> as RegisterValue<_>>::new(0)
11596    }
11597}
11598pub mod p2pfs {
11599
11600    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11601    pub struct Podr_SPEC;
11602    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11603    impl Podr {
11604        #[doc = "Output low"]
11605        pub const _0: Self = Self::new(0);
11606
11607        #[doc = "Output high"]
11608        pub const _1: Self = Self::new(1);
11609    }
11610    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11611    pub struct Pidr_SPEC;
11612    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11613    impl Pidr {
11614        #[doc = "Low level"]
11615        pub const _0: Self = Self::new(0);
11616
11617        #[doc = "High level"]
11618        pub const _1: Self = Self::new(1);
11619    }
11620    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11621    pub struct Pdr_SPEC;
11622    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11623    impl Pdr {
11624        #[doc = "Input (functions as an input pin)"]
11625        pub const _0: Self = Self::new(0);
11626
11627        #[doc = "Output (functions as an output pin)"]
11628        pub const _1: Self = Self::new(1);
11629    }
11630    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11631    pub struct Pcr_SPEC;
11632    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11633    impl Pcr {
11634        #[doc = "Disable input pull-up"]
11635        pub const _0: Self = Self::new(0);
11636
11637        #[doc = "Enable input pull-up"]
11638        pub const _1: Self = Self::new(1);
11639    }
11640    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11641    pub struct Ncodr_SPEC;
11642    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11643    impl Ncodr {
11644        #[doc = "Output CMOS"]
11645        pub const _0: Self = Self::new(0);
11646
11647        #[doc = "Output NMOS open-drain"]
11648        pub const _1: Self = Self::new(1);
11649    }
11650    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11651    pub struct Eofr_SPEC;
11652    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11653    impl Eofr {
11654        #[doc = "Don\'t care"]
11655        pub const _00: Self = Self::new(0);
11656
11657        #[doc = "Detect rising edge"]
11658        pub const _01: Self = Self::new(1);
11659
11660        #[doc = "Detect falling edge"]
11661        pub const _10: Self = Self::new(2);
11662
11663        #[doc = "Detect both edges"]
11664        pub const _11: Self = Self::new(3);
11665    }
11666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11667    pub struct Isel_SPEC;
11668    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11669    impl Isel {
11670        #[doc = "Do not use as IRQn input pin"]
11671        pub const _0: Self = Self::new(0);
11672
11673        #[doc = "Use as IRQn input pin"]
11674        pub const _1: Self = Self::new(1);
11675    }
11676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11677    pub struct Asel_SPEC;
11678    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11679    impl Asel {
11680        #[doc = "Do not use as analog pin"]
11681        pub const _0: Self = Self::new(0);
11682
11683        #[doc = "Use as analog pin"]
11684        pub const _1: Self = Self::new(1);
11685    }
11686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11687    pub struct Pmr_SPEC;
11688    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11689    impl Pmr {
11690        #[doc = "Use as general I/O pin"]
11691        pub const _0: Self = Self::new(0);
11692
11693        #[doc = "Use as I/O port for peripheral functions"]
11694        pub const _1: Self = Self::new(1);
11695    }
11696}
11697#[doc(hidden)]
11698#[derive(Copy, Clone, Eq, PartialEq)]
11699pub struct P2PfsHa_SPEC;
11700impl crate::sealed::RegSpec for P2PfsHa_SPEC {
11701    type DataType = u16;
11702}
11703
11704#[doc = "Port 2%s Pin Function Select Register"]
11705pub type P2PfsHa = crate::RegValueT<P2PfsHa_SPEC>;
11706
11707impl P2PfsHa {
11708    #[doc = "Port Output Data"]
11709    #[inline(always)]
11710    pub fn podr(
11711        self,
11712    ) -> crate::common::RegisterField<
11713        0,
11714        0x1,
11715        1,
11716        0,
11717        p2pfs_ha::Podr,
11718        p2pfs_ha::Podr,
11719        P2PfsHa_SPEC,
11720        crate::common::RW,
11721    > {
11722        crate::common::RegisterField::<
11723            0,
11724            0x1,
11725            1,
11726            0,
11727            p2pfs_ha::Podr,
11728            p2pfs_ha::Podr,
11729            P2PfsHa_SPEC,
11730            crate::common::RW,
11731        >::from_register(self, 0)
11732    }
11733
11734    #[doc = "Port State"]
11735    #[inline(always)]
11736    pub fn pidr(
11737        self,
11738    ) -> crate::common::RegisterField<
11739        1,
11740        0x1,
11741        1,
11742        0,
11743        p2pfs_ha::Pidr,
11744        p2pfs_ha::Pidr,
11745        P2PfsHa_SPEC,
11746        crate::common::R,
11747    > {
11748        crate::common::RegisterField::<
11749            1,
11750            0x1,
11751            1,
11752            0,
11753            p2pfs_ha::Pidr,
11754            p2pfs_ha::Pidr,
11755            P2PfsHa_SPEC,
11756            crate::common::R,
11757        >::from_register(self, 0)
11758    }
11759
11760    #[doc = "Port Direction"]
11761    #[inline(always)]
11762    pub fn pdr(
11763        self,
11764    ) -> crate::common::RegisterField<
11765        2,
11766        0x1,
11767        1,
11768        0,
11769        p2pfs_ha::Pdr,
11770        p2pfs_ha::Pdr,
11771        P2PfsHa_SPEC,
11772        crate::common::RW,
11773    > {
11774        crate::common::RegisterField::<
11775            2,
11776            0x1,
11777            1,
11778            0,
11779            p2pfs_ha::Pdr,
11780            p2pfs_ha::Pdr,
11781            P2PfsHa_SPEC,
11782            crate::common::RW,
11783        >::from_register(self, 0)
11784    }
11785
11786    #[doc = "Pull-up Control"]
11787    #[inline(always)]
11788    pub fn pcr(
11789        self,
11790    ) -> crate::common::RegisterField<
11791        4,
11792        0x1,
11793        1,
11794        0,
11795        p2pfs_ha::Pcr,
11796        p2pfs_ha::Pcr,
11797        P2PfsHa_SPEC,
11798        crate::common::RW,
11799    > {
11800        crate::common::RegisterField::<
11801            4,
11802            0x1,
11803            1,
11804            0,
11805            p2pfs_ha::Pcr,
11806            p2pfs_ha::Pcr,
11807            P2PfsHa_SPEC,
11808            crate::common::RW,
11809        >::from_register(self, 0)
11810    }
11811
11812    #[doc = "N-Channel Open-Drain Control"]
11813    #[inline(always)]
11814    pub fn ncodr(
11815        self,
11816    ) -> crate::common::RegisterField<
11817        6,
11818        0x1,
11819        1,
11820        0,
11821        p2pfs_ha::Ncodr,
11822        p2pfs_ha::Ncodr,
11823        P2PfsHa_SPEC,
11824        crate::common::RW,
11825    > {
11826        crate::common::RegisterField::<
11827            6,
11828            0x1,
11829            1,
11830            0,
11831            p2pfs_ha::Ncodr,
11832            p2pfs_ha::Ncodr,
11833            P2PfsHa_SPEC,
11834            crate::common::RW,
11835        >::from_register(self, 0)
11836    }
11837
11838    #[doc = "Event on Falling/Event on Rising"]
11839    #[inline(always)]
11840    pub fn eofr(
11841        self,
11842    ) -> crate::common::RegisterField<
11843        12,
11844        0x3,
11845        1,
11846        0,
11847        p2pfs_ha::Eofr,
11848        p2pfs_ha::Eofr,
11849        P2PfsHa_SPEC,
11850        crate::common::RW,
11851    > {
11852        crate::common::RegisterField::<
11853            12,
11854            0x3,
11855            1,
11856            0,
11857            p2pfs_ha::Eofr,
11858            p2pfs_ha::Eofr,
11859            P2PfsHa_SPEC,
11860            crate::common::RW,
11861        >::from_register(self, 0)
11862    }
11863
11864    #[doc = "IRQ Input Enable"]
11865    #[inline(always)]
11866    pub fn isel(
11867        self,
11868    ) -> crate::common::RegisterField<
11869        14,
11870        0x1,
11871        1,
11872        0,
11873        p2pfs_ha::Isel,
11874        p2pfs_ha::Isel,
11875        P2PfsHa_SPEC,
11876        crate::common::RW,
11877    > {
11878        crate::common::RegisterField::<
11879            14,
11880            0x1,
11881            1,
11882            0,
11883            p2pfs_ha::Isel,
11884            p2pfs_ha::Isel,
11885            P2PfsHa_SPEC,
11886            crate::common::RW,
11887        >::from_register(self, 0)
11888    }
11889
11890    #[doc = "Analog Input Enable"]
11891    #[inline(always)]
11892    pub fn asel(
11893        self,
11894    ) -> crate::common::RegisterField<
11895        15,
11896        0x1,
11897        1,
11898        0,
11899        p2pfs_ha::Asel,
11900        p2pfs_ha::Asel,
11901        P2PfsHa_SPEC,
11902        crate::common::RW,
11903    > {
11904        crate::common::RegisterField::<
11905            15,
11906            0x1,
11907            1,
11908            0,
11909            p2pfs_ha::Asel,
11910            p2pfs_ha::Asel,
11911            P2PfsHa_SPEC,
11912            crate::common::RW,
11913        >::from_register(self, 0)
11914    }
11915}
11916impl ::core::default::Default for P2PfsHa {
11917    #[inline(always)]
11918    fn default() -> P2PfsHa {
11919        <crate::RegValueT<P2PfsHa_SPEC> as RegisterValue<_>>::new(0)
11920    }
11921}
11922pub mod p2pfs_ha {
11923
11924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11925    pub struct Podr_SPEC;
11926    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11927    impl Podr {
11928        #[doc = "Output low"]
11929        pub const _0: Self = Self::new(0);
11930
11931        #[doc = "Output high"]
11932        pub const _1: Self = Self::new(1);
11933    }
11934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11935    pub struct Pidr_SPEC;
11936    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11937    impl Pidr {
11938        #[doc = "Low level"]
11939        pub const _0: Self = Self::new(0);
11940
11941        #[doc = "High level"]
11942        pub const _1: Self = Self::new(1);
11943    }
11944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11945    pub struct Pdr_SPEC;
11946    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11947    impl Pdr {
11948        #[doc = "Input (functions as an input pin)"]
11949        pub const _0: Self = Self::new(0);
11950
11951        #[doc = "Output (functions as an output pin)"]
11952        pub const _1: Self = Self::new(1);
11953    }
11954    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11955    pub struct Pcr_SPEC;
11956    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11957    impl Pcr {
11958        #[doc = "Disable input pull-up"]
11959        pub const _0: Self = Self::new(0);
11960
11961        #[doc = "Enable input pull-up"]
11962        pub const _1: Self = Self::new(1);
11963    }
11964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11965    pub struct Ncodr_SPEC;
11966    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11967    impl Ncodr {
11968        #[doc = "Output CMOS"]
11969        pub const _0: Self = Self::new(0);
11970
11971        #[doc = "Output NMOS open-drain"]
11972        pub const _1: Self = Self::new(1);
11973    }
11974    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11975    pub struct Eofr_SPEC;
11976    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11977    impl Eofr {
11978        #[doc = "Don\'t care"]
11979        pub const _00: Self = Self::new(0);
11980
11981        #[doc = "Detect rising edge"]
11982        pub const _01: Self = Self::new(1);
11983
11984        #[doc = "Detect falling edge"]
11985        pub const _10: Self = Self::new(2);
11986
11987        #[doc = "Detect both edges"]
11988        pub const _11: Self = Self::new(3);
11989    }
11990    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11991    pub struct Isel_SPEC;
11992    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11993    impl Isel {
11994        #[doc = "Do not use as IRQn input pin"]
11995        pub const _0: Self = Self::new(0);
11996
11997        #[doc = "Use as IRQn input pin"]
11998        pub const _1: Self = Self::new(1);
11999    }
12000    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12001    pub struct Asel_SPEC;
12002    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12003    impl Asel {
12004        #[doc = "Do not use as analog pin"]
12005        pub const _0: Self = Self::new(0);
12006
12007        #[doc = "Use as analog pin"]
12008        pub const _1: Self = Self::new(1);
12009    }
12010}
12011#[doc(hidden)]
12012#[derive(Copy, Clone, Eq, PartialEq)]
12013pub struct P2PfsBy_SPEC;
12014impl crate::sealed::RegSpec for P2PfsBy_SPEC {
12015    type DataType = u8;
12016}
12017
12018#[doc = "Port 2%s Pin Function Select Register"]
12019pub type P2PfsBy = crate::RegValueT<P2PfsBy_SPEC>;
12020
12021impl P2PfsBy {
12022    #[doc = "Port Output Data"]
12023    #[inline(always)]
12024    pub fn podr(
12025        self,
12026    ) -> crate::common::RegisterField<
12027        0,
12028        0x1,
12029        1,
12030        0,
12031        p2pfs_by::Podr,
12032        p2pfs_by::Podr,
12033        P2PfsBy_SPEC,
12034        crate::common::RW,
12035    > {
12036        crate::common::RegisterField::<
12037            0,
12038            0x1,
12039            1,
12040            0,
12041            p2pfs_by::Podr,
12042            p2pfs_by::Podr,
12043            P2PfsBy_SPEC,
12044            crate::common::RW,
12045        >::from_register(self, 0)
12046    }
12047
12048    #[doc = "Port State"]
12049    #[inline(always)]
12050    pub fn pidr(
12051        self,
12052    ) -> crate::common::RegisterField<
12053        1,
12054        0x1,
12055        1,
12056        0,
12057        p2pfs_by::Pidr,
12058        p2pfs_by::Pidr,
12059        P2PfsBy_SPEC,
12060        crate::common::R,
12061    > {
12062        crate::common::RegisterField::<
12063            1,
12064            0x1,
12065            1,
12066            0,
12067            p2pfs_by::Pidr,
12068            p2pfs_by::Pidr,
12069            P2PfsBy_SPEC,
12070            crate::common::R,
12071        >::from_register(self, 0)
12072    }
12073
12074    #[doc = "Port Direction"]
12075    #[inline(always)]
12076    pub fn pdr(
12077        self,
12078    ) -> crate::common::RegisterField<
12079        2,
12080        0x1,
12081        1,
12082        0,
12083        p2pfs_by::Pdr,
12084        p2pfs_by::Pdr,
12085        P2PfsBy_SPEC,
12086        crate::common::RW,
12087    > {
12088        crate::common::RegisterField::<
12089            2,
12090            0x1,
12091            1,
12092            0,
12093            p2pfs_by::Pdr,
12094            p2pfs_by::Pdr,
12095            P2PfsBy_SPEC,
12096            crate::common::RW,
12097        >::from_register(self, 0)
12098    }
12099
12100    #[doc = "Pull-up Control"]
12101    #[inline(always)]
12102    pub fn pcr(
12103        self,
12104    ) -> crate::common::RegisterField<
12105        4,
12106        0x1,
12107        1,
12108        0,
12109        p2pfs_by::Pcr,
12110        p2pfs_by::Pcr,
12111        P2PfsBy_SPEC,
12112        crate::common::RW,
12113    > {
12114        crate::common::RegisterField::<
12115            4,
12116            0x1,
12117            1,
12118            0,
12119            p2pfs_by::Pcr,
12120            p2pfs_by::Pcr,
12121            P2PfsBy_SPEC,
12122            crate::common::RW,
12123        >::from_register(self, 0)
12124    }
12125
12126    #[doc = "N-Channel Open-Drain Control"]
12127    #[inline(always)]
12128    pub fn ncodr(
12129        self,
12130    ) -> crate::common::RegisterField<
12131        6,
12132        0x1,
12133        1,
12134        0,
12135        p2pfs_by::Ncodr,
12136        p2pfs_by::Ncodr,
12137        P2PfsBy_SPEC,
12138        crate::common::RW,
12139    > {
12140        crate::common::RegisterField::<
12141            6,
12142            0x1,
12143            1,
12144            0,
12145            p2pfs_by::Ncodr,
12146            p2pfs_by::Ncodr,
12147            P2PfsBy_SPEC,
12148            crate::common::RW,
12149        >::from_register(self, 0)
12150    }
12151}
12152impl ::core::default::Default for P2PfsBy {
12153    #[inline(always)]
12154    fn default() -> P2PfsBy {
12155        <crate::RegValueT<P2PfsBy_SPEC> as RegisterValue<_>>::new(0)
12156    }
12157}
12158pub mod p2pfs_by {
12159
12160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12161    pub struct Podr_SPEC;
12162    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12163    impl Podr {
12164        #[doc = "Output low"]
12165        pub const _0: Self = Self::new(0);
12166
12167        #[doc = "Output high"]
12168        pub const _1: Self = Self::new(1);
12169    }
12170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12171    pub struct Pidr_SPEC;
12172    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12173    impl Pidr {
12174        #[doc = "Low level"]
12175        pub const _0: Self = Self::new(0);
12176
12177        #[doc = "High level"]
12178        pub const _1: Self = Self::new(1);
12179    }
12180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12181    pub struct Pdr_SPEC;
12182    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12183    impl Pdr {
12184        #[doc = "Input (functions as an input pin)"]
12185        pub const _0: Self = Self::new(0);
12186
12187        #[doc = "Output (functions as an output pin)"]
12188        pub const _1: Self = Self::new(1);
12189    }
12190    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12191    pub struct Pcr_SPEC;
12192    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12193    impl Pcr {
12194        #[doc = "Disable input pull-up"]
12195        pub const _0: Self = Self::new(0);
12196
12197        #[doc = "Enable input pull-up"]
12198        pub const _1: Self = Self::new(1);
12199    }
12200    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12201    pub struct Ncodr_SPEC;
12202    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12203    impl Ncodr {
12204        #[doc = "Output CMOS"]
12205        pub const _0: Self = Self::new(0);
12206
12207        #[doc = "Output NMOS open-drain"]
12208        pub const _1: Self = Self::new(1);
12209    }
12210}
12211#[doc(hidden)]
12212#[derive(Copy, Clone, Eq, PartialEq)]
12213pub struct P300Pfs_SPEC;
12214impl crate::sealed::RegSpec for P300Pfs_SPEC {
12215    type DataType = u32;
12216}
12217
12218#[doc = "Port 300 Pin Function Select Register"]
12219pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
12220
12221impl P300Pfs {
12222    #[doc = "Port Output Data"]
12223    #[inline(always)]
12224    pub fn podr(
12225        self,
12226    ) -> crate::common::RegisterField<
12227        0,
12228        0x1,
12229        1,
12230        0,
12231        p300pfs::Podr,
12232        p300pfs::Podr,
12233        P300Pfs_SPEC,
12234        crate::common::RW,
12235    > {
12236        crate::common::RegisterField::<
12237            0,
12238            0x1,
12239            1,
12240            0,
12241            p300pfs::Podr,
12242            p300pfs::Podr,
12243            P300Pfs_SPEC,
12244            crate::common::RW,
12245        >::from_register(self, 0)
12246    }
12247
12248    #[doc = "Port State"]
12249    #[inline(always)]
12250    pub fn pidr(
12251        self,
12252    ) -> crate::common::RegisterField<
12253        1,
12254        0x1,
12255        1,
12256        0,
12257        p300pfs::Pidr,
12258        p300pfs::Pidr,
12259        P300Pfs_SPEC,
12260        crate::common::R,
12261    > {
12262        crate::common::RegisterField::<
12263            1,
12264            0x1,
12265            1,
12266            0,
12267            p300pfs::Pidr,
12268            p300pfs::Pidr,
12269            P300Pfs_SPEC,
12270            crate::common::R,
12271        >::from_register(self, 0)
12272    }
12273
12274    #[doc = "Port Direction"]
12275    #[inline(always)]
12276    pub fn pdr(
12277        self,
12278    ) -> crate::common::RegisterField<
12279        2,
12280        0x1,
12281        1,
12282        0,
12283        p300pfs::Pdr,
12284        p300pfs::Pdr,
12285        P300Pfs_SPEC,
12286        crate::common::RW,
12287    > {
12288        crate::common::RegisterField::<
12289            2,
12290            0x1,
12291            1,
12292            0,
12293            p300pfs::Pdr,
12294            p300pfs::Pdr,
12295            P300Pfs_SPEC,
12296            crate::common::RW,
12297        >::from_register(self, 0)
12298    }
12299
12300    #[doc = "Pull-up Control"]
12301    #[inline(always)]
12302    pub fn pcr(
12303        self,
12304    ) -> crate::common::RegisterField<
12305        4,
12306        0x1,
12307        1,
12308        0,
12309        p300pfs::Pcr,
12310        p300pfs::Pcr,
12311        P300Pfs_SPEC,
12312        crate::common::RW,
12313    > {
12314        crate::common::RegisterField::<
12315            4,
12316            0x1,
12317            1,
12318            0,
12319            p300pfs::Pcr,
12320            p300pfs::Pcr,
12321            P300Pfs_SPEC,
12322            crate::common::RW,
12323        >::from_register(self, 0)
12324    }
12325
12326    #[doc = "N-Channel Open-Drain Control"]
12327    #[inline(always)]
12328    pub fn ncodr(
12329        self,
12330    ) -> crate::common::RegisterField<
12331        6,
12332        0x1,
12333        1,
12334        0,
12335        p300pfs::Ncodr,
12336        p300pfs::Ncodr,
12337        P300Pfs_SPEC,
12338        crate::common::RW,
12339    > {
12340        crate::common::RegisterField::<
12341            6,
12342            0x1,
12343            1,
12344            0,
12345            p300pfs::Ncodr,
12346            p300pfs::Ncodr,
12347            P300Pfs_SPEC,
12348            crate::common::RW,
12349        >::from_register(self, 0)
12350    }
12351
12352    #[doc = "Event on Falling/Event on Rising"]
12353    #[inline(always)]
12354    pub fn eofr(
12355        self,
12356    ) -> crate::common::RegisterField<
12357        12,
12358        0x3,
12359        1,
12360        0,
12361        p300pfs::Eofr,
12362        p300pfs::Eofr,
12363        P300Pfs_SPEC,
12364        crate::common::RW,
12365    > {
12366        crate::common::RegisterField::<
12367            12,
12368            0x3,
12369            1,
12370            0,
12371            p300pfs::Eofr,
12372            p300pfs::Eofr,
12373            P300Pfs_SPEC,
12374            crate::common::RW,
12375        >::from_register(self, 0)
12376    }
12377
12378    #[doc = "IRQ Input Enable"]
12379    #[inline(always)]
12380    pub fn isel(
12381        self,
12382    ) -> crate::common::RegisterField<
12383        14,
12384        0x1,
12385        1,
12386        0,
12387        p300pfs::Isel,
12388        p300pfs::Isel,
12389        P300Pfs_SPEC,
12390        crate::common::RW,
12391    > {
12392        crate::common::RegisterField::<
12393            14,
12394            0x1,
12395            1,
12396            0,
12397            p300pfs::Isel,
12398            p300pfs::Isel,
12399            P300Pfs_SPEC,
12400            crate::common::RW,
12401        >::from_register(self, 0)
12402    }
12403
12404    #[doc = "Analog Input Enable"]
12405    #[inline(always)]
12406    pub fn asel(
12407        self,
12408    ) -> crate::common::RegisterField<
12409        15,
12410        0x1,
12411        1,
12412        0,
12413        p300pfs::Asel,
12414        p300pfs::Asel,
12415        P300Pfs_SPEC,
12416        crate::common::RW,
12417    > {
12418        crate::common::RegisterField::<
12419            15,
12420            0x1,
12421            1,
12422            0,
12423            p300pfs::Asel,
12424            p300pfs::Asel,
12425            P300Pfs_SPEC,
12426            crate::common::RW,
12427        >::from_register(self, 0)
12428    }
12429
12430    #[doc = "Port Mode Control"]
12431    #[inline(always)]
12432    pub fn pmr(
12433        self,
12434    ) -> crate::common::RegisterField<
12435        16,
12436        0x1,
12437        1,
12438        0,
12439        p300pfs::Pmr,
12440        p300pfs::Pmr,
12441        P300Pfs_SPEC,
12442        crate::common::RW,
12443    > {
12444        crate::common::RegisterField::<
12445            16,
12446            0x1,
12447            1,
12448            0,
12449            p300pfs::Pmr,
12450            p300pfs::Pmr,
12451            P300Pfs_SPEC,
12452            crate::common::RW,
12453        >::from_register(self, 0)
12454    }
12455
12456    #[doc = "Peripheral Select"]
12457    #[inline(always)]
12458    pub fn psel(
12459        self,
12460    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
12461        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
12462    }
12463}
12464impl ::core::default::Default for P300Pfs {
12465    #[inline(always)]
12466    fn default() -> P300Pfs {
12467        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65552)
12468    }
12469}
12470pub mod p300pfs {
12471
12472    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12473    pub struct Podr_SPEC;
12474    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12475    impl Podr {
12476        #[doc = "Output low"]
12477        pub const _0: Self = Self::new(0);
12478
12479        #[doc = "Output high"]
12480        pub const _1: Self = Self::new(1);
12481    }
12482    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12483    pub struct Pidr_SPEC;
12484    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12485    impl Pidr {
12486        #[doc = "Low level"]
12487        pub const _0: Self = Self::new(0);
12488
12489        #[doc = "High level"]
12490        pub const _1: Self = Self::new(1);
12491    }
12492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12493    pub struct Pdr_SPEC;
12494    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12495    impl Pdr {
12496        #[doc = "Input (functions as an input pin)"]
12497        pub const _0: Self = Self::new(0);
12498
12499        #[doc = "Output (functions as an output pin)"]
12500        pub const _1: Self = Self::new(1);
12501    }
12502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12503    pub struct Pcr_SPEC;
12504    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12505    impl Pcr {
12506        #[doc = "Disable input pull-up"]
12507        pub const _0: Self = Self::new(0);
12508
12509        #[doc = "Enable input pull-up"]
12510        pub const _1: Self = Self::new(1);
12511    }
12512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12513    pub struct Ncodr_SPEC;
12514    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12515    impl Ncodr {
12516        #[doc = "Output CMOS"]
12517        pub const _0: Self = Self::new(0);
12518
12519        #[doc = "Output NMOS open-drain"]
12520        pub const _1: Self = Self::new(1);
12521    }
12522    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12523    pub struct Eofr_SPEC;
12524    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
12525    impl Eofr {
12526        #[doc = "Don\'t care"]
12527        pub const _00: Self = Self::new(0);
12528
12529        #[doc = "Detect rising edge"]
12530        pub const _01: Self = Self::new(1);
12531
12532        #[doc = "Detect falling edge"]
12533        pub const _10: Self = Self::new(2);
12534
12535        #[doc = "Detect both edges"]
12536        pub const _11: Self = Self::new(3);
12537    }
12538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12539    pub struct Isel_SPEC;
12540    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12541    impl Isel {
12542        #[doc = "Do not use as IRQn input pin"]
12543        pub const _0: Self = Self::new(0);
12544
12545        #[doc = "Use as IRQn input pin"]
12546        pub const _1: Self = Self::new(1);
12547    }
12548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12549    pub struct Asel_SPEC;
12550    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12551    impl Asel {
12552        #[doc = "Do not use as analog pin"]
12553        pub const _0: Self = Self::new(0);
12554
12555        #[doc = "Use as analog pin"]
12556        pub const _1: Self = Self::new(1);
12557    }
12558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12559    pub struct Pmr_SPEC;
12560    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
12561    impl Pmr {
12562        #[doc = "Use as general I/O pin"]
12563        pub const _0: Self = Self::new(0);
12564
12565        #[doc = "Use as I/O port for peripheral functions"]
12566        pub const _1: Self = Self::new(1);
12567    }
12568}
12569#[doc(hidden)]
12570#[derive(Copy, Clone, Eq, PartialEq)]
12571pub struct P300PfsHa_SPEC;
12572impl crate::sealed::RegSpec for P300PfsHa_SPEC {
12573    type DataType = u16;
12574}
12575
12576#[doc = "Port 300 Pin Function Select Register"]
12577pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
12578
12579impl P300PfsHa {
12580    #[doc = "Port Output Data"]
12581    #[inline(always)]
12582    pub fn podr(
12583        self,
12584    ) -> crate::common::RegisterField<
12585        0,
12586        0x1,
12587        1,
12588        0,
12589        p300pfs_ha::Podr,
12590        p300pfs_ha::Podr,
12591        P300PfsHa_SPEC,
12592        crate::common::RW,
12593    > {
12594        crate::common::RegisterField::<
12595            0,
12596            0x1,
12597            1,
12598            0,
12599            p300pfs_ha::Podr,
12600            p300pfs_ha::Podr,
12601            P300PfsHa_SPEC,
12602            crate::common::RW,
12603        >::from_register(self, 0)
12604    }
12605
12606    #[doc = "Port State"]
12607    #[inline(always)]
12608    pub fn pidr(
12609        self,
12610    ) -> crate::common::RegisterField<
12611        1,
12612        0x1,
12613        1,
12614        0,
12615        p300pfs_ha::Pidr,
12616        p300pfs_ha::Pidr,
12617        P300PfsHa_SPEC,
12618        crate::common::R,
12619    > {
12620        crate::common::RegisterField::<
12621            1,
12622            0x1,
12623            1,
12624            0,
12625            p300pfs_ha::Pidr,
12626            p300pfs_ha::Pidr,
12627            P300PfsHa_SPEC,
12628            crate::common::R,
12629        >::from_register(self, 0)
12630    }
12631
12632    #[doc = "Port Direction"]
12633    #[inline(always)]
12634    pub fn pdr(
12635        self,
12636    ) -> crate::common::RegisterField<
12637        2,
12638        0x1,
12639        1,
12640        0,
12641        p300pfs_ha::Pdr,
12642        p300pfs_ha::Pdr,
12643        P300PfsHa_SPEC,
12644        crate::common::RW,
12645    > {
12646        crate::common::RegisterField::<
12647            2,
12648            0x1,
12649            1,
12650            0,
12651            p300pfs_ha::Pdr,
12652            p300pfs_ha::Pdr,
12653            P300PfsHa_SPEC,
12654            crate::common::RW,
12655        >::from_register(self, 0)
12656    }
12657
12658    #[doc = "Pull-up Control"]
12659    #[inline(always)]
12660    pub fn pcr(
12661        self,
12662    ) -> crate::common::RegisterField<
12663        4,
12664        0x1,
12665        1,
12666        0,
12667        p300pfs_ha::Pcr,
12668        p300pfs_ha::Pcr,
12669        P300PfsHa_SPEC,
12670        crate::common::RW,
12671    > {
12672        crate::common::RegisterField::<
12673            4,
12674            0x1,
12675            1,
12676            0,
12677            p300pfs_ha::Pcr,
12678            p300pfs_ha::Pcr,
12679            P300PfsHa_SPEC,
12680            crate::common::RW,
12681        >::from_register(self, 0)
12682    }
12683
12684    #[doc = "N-Channel Open-Drain Control"]
12685    #[inline(always)]
12686    pub fn ncodr(
12687        self,
12688    ) -> crate::common::RegisterField<
12689        6,
12690        0x1,
12691        1,
12692        0,
12693        p300pfs_ha::Ncodr,
12694        p300pfs_ha::Ncodr,
12695        P300PfsHa_SPEC,
12696        crate::common::RW,
12697    > {
12698        crate::common::RegisterField::<
12699            6,
12700            0x1,
12701            1,
12702            0,
12703            p300pfs_ha::Ncodr,
12704            p300pfs_ha::Ncodr,
12705            P300PfsHa_SPEC,
12706            crate::common::RW,
12707        >::from_register(self, 0)
12708    }
12709
12710    #[doc = "Event on Falling/Event on Rising"]
12711    #[inline(always)]
12712    pub fn eofr(
12713        self,
12714    ) -> crate::common::RegisterField<
12715        12,
12716        0x3,
12717        1,
12718        0,
12719        p300pfs_ha::Eofr,
12720        p300pfs_ha::Eofr,
12721        P300PfsHa_SPEC,
12722        crate::common::RW,
12723    > {
12724        crate::common::RegisterField::<
12725            12,
12726            0x3,
12727            1,
12728            0,
12729            p300pfs_ha::Eofr,
12730            p300pfs_ha::Eofr,
12731            P300PfsHa_SPEC,
12732            crate::common::RW,
12733        >::from_register(self, 0)
12734    }
12735
12736    #[doc = "IRQ Input Enable"]
12737    #[inline(always)]
12738    pub fn isel(
12739        self,
12740    ) -> crate::common::RegisterField<
12741        14,
12742        0x1,
12743        1,
12744        0,
12745        p300pfs_ha::Isel,
12746        p300pfs_ha::Isel,
12747        P300PfsHa_SPEC,
12748        crate::common::RW,
12749    > {
12750        crate::common::RegisterField::<
12751            14,
12752            0x1,
12753            1,
12754            0,
12755            p300pfs_ha::Isel,
12756            p300pfs_ha::Isel,
12757            P300PfsHa_SPEC,
12758            crate::common::RW,
12759        >::from_register(self, 0)
12760    }
12761
12762    #[doc = "Analog Input Enable"]
12763    #[inline(always)]
12764    pub fn asel(
12765        self,
12766    ) -> crate::common::RegisterField<
12767        15,
12768        0x1,
12769        1,
12770        0,
12771        p300pfs_ha::Asel,
12772        p300pfs_ha::Asel,
12773        P300PfsHa_SPEC,
12774        crate::common::RW,
12775    > {
12776        crate::common::RegisterField::<
12777            15,
12778            0x1,
12779            1,
12780            0,
12781            p300pfs_ha::Asel,
12782            p300pfs_ha::Asel,
12783            P300PfsHa_SPEC,
12784            crate::common::RW,
12785        >::from_register(self, 0)
12786    }
12787}
12788impl ::core::default::Default for P300PfsHa {
12789    #[inline(always)]
12790    fn default() -> P300PfsHa {
12791        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(16)
12792    }
12793}
12794pub mod p300pfs_ha {
12795
12796    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12797    pub struct Podr_SPEC;
12798    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12799    impl Podr {
12800        #[doc = "Output low"]
12801        pub const _0: Self = Self::new(0);
12802
12803        #[doc = "Output high"]
12804        pub const _1: Self = Self::new(1);
12805    }
12806    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12807    pub struct Pidr_SPEC;
12808    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12809    impl Pidr {
12810        #[doc = "Low level"]
12811        pub const _0: Self = Self::new(0);
12812
12813        #[doc = "High level"]
12814        pub const _1: Self = Self::new(1);
12815    }
12816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12817    pub struct Pdr_SPEC;
12818    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12819    impl Pdr {
12820        #[doc = "Input (functions as an input pin)"]
12821        pub const _0: Self = Self::new(0);
12822
12823        #[doc = "Output (functions as an output pin)"]
12824        pub const _1: Self = Self::new(1);
12825    }
12826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12827    pub struct Pcr_SPEC;
12828    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12829    impl Pcr {
12830        #[doc = "Disable input pull-up"]
12831        pub const _0: Self = Self::new(0);
12832
12833        #[doc = "Enable input pull-up"]
12834        pub const _1: Self = Self::new(1);
12835    }
12836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12837    pub struct Ncodr_SPEC;
12838    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12839    impl Ncodr {
12840        #[doc = "Output CMOS"]
12841        pub const _0: Self = Self::new(0);
12842
12843        #[doc = "Output NMOS open-drain"]
12844        pub const _1: Self = Self::new(1);
12845    }
12846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12847    pub struct Eofr_SPEC;
12848    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
12849    impl Eofr {
12850        #[doc = "Don\'t care"]
12851        pub const _00: Self = Self::new(0);
12852
12853        #[doc = "Detect rising edge"]
12854        pub const _01: Self = Self::new(1);
12855
12856        #[doc = "Detect falling edge"]
12857        pub const _10: Self = Self::new(2);
12858
12859        #[doc = "Detect both edges"]
12860        pub const _11: Self = Self::new(3);
12861    }
12862    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12863    pub struct Isel_SPEC;
12864    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12865    impl Isel {
12866        #[doc = "Do not use as IRQn input pin"]
12867        pub const _0: Self = Self::new(0);
12868
12869        #[doc = "Use as IRQn input pin"]
12870        pub const _1: Self = Self::new(1);
12871    }
12872    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12873    pub struct Asel_SPEC;
12874    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12875    impl Asel {
12876        #[doc = "Do not use as analog pin"]
12877        pub const _0: Self = Self::new(0);
12878
12879        #[doc = "Use as analog pin"]
12880        pub const _1: Self = Self::new(1);
12881    }
12882}
12883#[doc(hidden)]
12884#[derive(Copy, Clone, Eq, PartialEq)]
12885pub struct P300PfsBy_SPEC;
12886impl crate::sealed::RegSpec for P300PfsBy_SPEC {
12887    type DataType = u8;
12888}
12889
12890#[doc = "Port 300 Pin Function Select Register"]
12891pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
12892
12893impl P300PfsBy {
12894    #[doc = "Port Output Data"]
12895    #[inline(always)]
12896    pub fn podr(
12897        self,
12898    ) -> crate::common::RegisterField<
12899        0,
12900        0x1,
12901        1,
12902        0,
12903        p300pfs_by::Podr,
12904        p300pfs_by::Podr,
12905        P300PfsBy_SPEC,
12906        crate::common::RW,
12907    > {
12908        crate::common::RegisterField::<
12909            0,
12910            0x1,
12911            1,
12912            0,
12913            p300pfs_by::Podr,
12914            p300pfs_by::Podr,
12915            P300PfsBy_SPEC,
12916            crate::common::RW,
12917        >::from_register(self, 0)
12918    }
12919
12920    #[doc = "Port State"]
12921    #[inline(always)]
12922    pub fn pidr(
12923        self,
12924    ) -> crate::common::RegisterField<
12925        1,
12926        0x1,
12927        1,
12928        0,
12929        p300pfs_by::Pidr,
12930        p300pfs_by::Pidr,
12931        P300PfsBy_SPEC,
12932        crate::common::R,
12933    > {
12934        crate::common::RegisterField::<
12935            1,
12936            0x1,
12937            1,
12938            0,
12939            p300pfs_by::Pidr,
12940            p300pfs_by::Pidr,
12941            P300PfsBy_SPEC,
12942            crate::common::R,
12943        >::from_register(self, 0)
12944    }
12945
12946    #[doc = "Port Direction"]
12947    #[inline(always)]
12948    pub fn pdr(
12949        self,
12950    ) -> crate::common::RegisterField<
12951        2,
12952        0x1,
12953        1,
12954        0,
12955        p300pfs_by::Pdr,
12956        p300pfs_by::Pdr,
12957        P300PfsBy_SPEC,
12958        crate::common::RW,
12959    > {
12960        crate::common::RegisterField::<
12961            2,
12962            0x1,
12963            1,
12964            0,
12965            p300pfs_by::Pdr,
12966            p300pfs_by::Pdr,
12967            P300PfsBy_SPEC,
12968            crate::common::RW,
12969        >::from_register(self, 0)
12970    }
12971
12972    #[doc = "Pull-up Control"]
12973    #[inline(always)]
12974    pub fn pcr(
12975        self,
12976    ) -> crate::common::RegisterField<
12977        4,
12978        0x1,
12979        1,
12980        0,
12981        p300pfs_by::Pcr,
12982        p300pfs_by::Pcr,
12983        P300PfsBy_SPEC,
12984        crate::common::RW,
12985    > {
12986        crate::common::RegisterField::<
12987            4,
12988            0x1,
12989            1,
12990            0,
12991            p300pfs_by::Pcr,
12992            p300pfs_by::Pcr,
12993            P300PfsBy_SPEC,
12994            crate::common::RW,
12995        >::from_register(self, 0)
12996    }
12997
12998    #[doc = "N-Channel Open-Drain Control"]
12999    #[inline(always)]
13000    pub fn ncodr(
13001        self,
13002    ) -> crate::common::RegisterField<
13003        6,
13004        0x1,
13005        1,
13006        0,
13007        p300pfs_by::Ncodr,
13008        p300pfs_by::Ncodr,
13009        P300PfsBy_SPEC,
13010        crate::common::RW,
13011    > {
13012        crate::common::RegisterField::<
13013            6,
13014            0x1,
13015            1,
13016            0,
13017            p300pfs_by::Ncodr,
13018            p300pfs_by::Ncodr,
13019            P300PfsBy_SPEC,
13020            crate::common::RW,
13021        >::from_register(self, 0)
13022    }
13023}
13024impl ::core::default::Default for P300PfsBy {
13025    #[inline(always)]
13026    fn default() -> P300PfsBy {
13027        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(16)
13028    }
13029}
13030pub mod p300pfs_by {
13031
13032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13033    pub struct Podr_SPEC;
13034    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13035    impl Podr {
13036        #[doc = "Output low"]
13037        pub const _0: Self = Self::new(0);
13038
13039        #[doc = "Output high"]
13040        pub const _1: Self = Self::new(1);
13041    }
13042    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13043    pub struct Pidr_SPEC;
13044    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13045    impl Pidr {
13046        #[doc = "Low level"]
13047        pub const _0: Self = Self::new(0);
13048
13049        #[doc = "High level"]
13050        pub const _1: Self = Self::new(1);
13051    }
13052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13053    pub struct Pdr_SPEC;
13054    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13055    impl Pdr {
13056        #[doc = "Input (functions as an input pin)"]
13057        pub const _0: Self = Self::new(0);
13058
13059        #[doc = "Output (functions as an output pin)"]
13060        pub const _1: Self = Self::new(1);
13061    }
13062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13063    pub struct Pcr_SPEC;
13064    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13065    impl Pcr {
13066        #[doc = "Disable input pull-up"]
13067        pub const _0: Self = Self::new(0);
13068
13069        #[doc = "Enable input pull-up"]
13070        pub const _1: Self = Self::new(1);
13071    }
13072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13073    pub struct Ncodr_SPEC;
13074    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13075    impl Ncodr {
13076        #[doc = "Output CMOS"]
13077        pub const _0: Self = Self::new(0);
13078
13079        #[doc = "Output NMOS open-drain"]
13080        pub const _1: Self = Self::new(1);
13081    }
13082}
13083#[doc(hidden)]
13084#[derive(Copy, Clone, Eq, PartialEq)]
13085pub struct P30Pfs_SPEC;
13086impl crate::sealed::RegSpec for P30Pfs_SPEC {
13087    type DataType = u32;
13088}
13089
13090#[doc = "Port 30%s Pin Function Select Register"]
13091pub type P30Pfs = crate::RegValueT<P30Pfs_SPEC>;
13092
13093impl P30Pfs {
13094    #[doc = "Port Output Data"]
13095    #[inline(always)]
13096    pub fn podr(
13097        self,
13098    ) -> crate::common::RegisterField<
13099        0,
13100        0x1,
13101        1,
13102        0,
13103        p30pfs::Podr,
13104        p30pfs::Podr,
13105        P30Pfs_SPEC,
13106        crate::common::RW,
13107    > {
13108        crate::common::RegisterField::<
13109            0,
13110            0x1,
13111            1,
13112            0,
13113            p30pfs::Podr,
13114            p30pfs::Podr,
13115            P30Pfs_SPEC,
13116            crate::common::RW,
13117        >::from_register(self, 0)
13118    }
13119
13120    #[doc = "Port State"]
13121    #[inline(always)]
13122    pub fn pidr(
13123        self,
13124    ) -> crate::common::RegisterField<
13125        1,
13126        0x1,
13127        1,
13128        0,
13129        p30pfs::Pidr,
13130        p30pfs::Pidr,
13131        P30Pfs_SPEC,
13132        crate::common::R,
13133    > {
13134        crate::common::RegisterField::<
13135            1,
13136            0x1,
13137            1,
13138            0,
13139            p30pfs::Pidr,
13140            p30pfs::Pidr,
13141            P30Pfs_SPEC,
13142            crate::common::R,
13143        >::from_register(self, 0)
13144    }
13145
13146    #[doc = "Port Direction"]
13147    #[inline(always)]
13148    pub fn pdr(
13149        self,
13150    ) -> crate::common::RegisterField<
13151        2,
13152        0x1,
13153        1,
13154        0,
13155        p30pfs::Pdr,
13156        p30pfs::Pdr,
13157        P30Pfs_SPEC,
13158        crate::common::RW,
13159    > {
13160        crate::common::RegisterField::<
13161            2,
13162            0x1,
13163            1,
13164            0,
13165            p30pfs::Pdr,
13166            p30pfs::Pdr,
13167            P30Pfs_SPEC,
13168            crate::common::RW,
13169        >::from_register(self, 0)
13170    }
13171
13172    #[doc = "Pull-up Control"]
13173    #[inline(always)]
13174    pub fn pcr(
13175        self,
13176    ) -> crate::common::RegisterField<
13177        4,
13178        0x1,
13179        1,
13180        0,
13181        p30pfs::Pcr,
13182        p30pfs::Pcr,
13183        P30Pfs_SPEC,
13184        crate::common::RW,
13185    > {
13186        crate::common::RegisterField::<
13187            4,
13188            0x1,
13189            1,
13190            0,
13191            p30pfs::Pcr,
13192            p30pfs::Pcr,
13193            P30Pfs_SPEC,
13194            crate::common::RW,
13195        >::from_register(self, 0)
13196    }
13197
13198    #[doc = "N-Channel Open-Drain Control"]
13199    #[inline(always)]
13200    pub fn ncodr(
13201        self,
13202    ) -> crate::common::RegisterField<
13203        6,
13204        0x1,
13205        1,
13206        0,
13207        p30pfs::Ncodr,
13208        p30pfs::Ncodr,
13209        P30Pfs_SPEC,
13210        crate::common::RW,
13211    > {
13212        crate::common::RegisterField::<
13213            6,
13214            0x1,
13215            1,
13216            0,
13217            p30pfs::Ncodr,
13218            p30pfs::Ncodr,
13219            P30Pfs_SPEC,
13220            crate::common::RW,
13221        >::from_register(self, 0)
13222    }
13223
13224    #[doc = "Event on Falling/Event on Rising"]
13225    #[inline(always)]
13226    pub fn eofr(
13227        self,
13228    ) -> crate::common::RegisterField<
13229        12,
13230        0x3,
13231        1,
13232        0,
13233        p30pfs::Eofr,
13234        p30pfs::Eofr,
13235        P30Pfs_SPEC,
13236        crate::common::RW,
13237    > {
13238        crate::common::RegisterField::<
13239            12,
13240            0x3,
13241            1,
13242            0,
13243            p30pfs::Eofr,
13244            p30pfs::Eofr,
13245            P30Pfs_SPEC,
13246            crate::common::RW,
13247        >::from_register(self, 0)
13248    }
13249
13250    #[doc = "IRQ Input Enable"]
13251    #[inline(always)]
13252    pub fn isel(
13253        self,
13254    ) -> crate::common::RegisterField<
13255        14,
13256        0x1,
13257        1,
13258        0,
13259        p30pfs::Isel,
13260        p30pfs::Isel,
13261        P30Pfs_SPEC,
13262        crate::common::RW,
13263    > {
13264        crate::common::RegisterField::<
13265            14,
13266            0x1,
13267            1,
13268            0,
13269            p30pfs::Isel,
13270            p30pfs::Isel,
13271            P30Pfs_SPEC,
13272            crate::common::RW,
13273        >::from_register(self, 0)
13274    }
13275
13276    #[doc = "Analog Input Enable"]
13277    #[inline(always)]
13278    pub fn asel(
13279        self,
13280    ) -> crate::common::RegisterField<
13281        15,
13282        0x1,
13283        1,
13284        0,
13285        p30pfs::Asel,
13286        p30pfs::Asel,
13287        P30Pfs_SPEC,
13288        crate::common::RW,
13289    > {
13290        crate::common::RegisterField::<
13291            15,
13292            0x1,
13293            1,
13294            0,
13295            p30pfs::Asel,
13296            p30pfs::Asel,
13297            P30Pfs_SPEC,
13298            crate::common::RW,
13299        >::from_register(self, 0)
13300    }
13301
13302    #[doc = "Port Mode Control"]
13303    #[inline(always)]
13304    pub fn pmr(
13305        self,
13306    ) -> crate::common::RegisterField<
13307        16,
13308        0x1,
13309        1,
13310        0,
13311        p30pfs::Pmr,
13312        p30pfs::Pmr,
13313        P30Pfs_SPEC,
13314        crate::common::RW,
13315    > {
13316        crate::common::RegisterField::<
13317            16,
13318            0x1,
13319            1,
13320            0,
13321            p30pfs::Pmr,
13322            p30pfs::Pmr,
13323            P30Pfs_SPEC,
13324            crate::common::RW,
13325        >::from_register(self, 0)
13326    }
13327
13328    #[doc = "Peripheral Select"]
13329    #[inline(always)]
13330    pub fn psel(
13331        self,
13332    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P30Pfs_SPEC, crate::common::RW> {
13333        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P30Pfs_SPEC,crate::common::RW>::from_register(self,0)
13334    }
13335}
13336impl ::core::default::Default for P30Pfs {
13337    #[inline(always)]
13338    fn default() -> P30Pfs {
13339        <crate::RegValueT<P30Pfs_SPEC> as RegisterValue<_>>::new(0)
13340    }
13341}
13342pub mod p30pfs {
13343
13344    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13345    pub struct Podr_SPEC;
13346    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13347    impl Podr {
13348        #[doc = "Output low"]
13349        pub const _0: Self = Self::new(0);
13350
13351        #[doc = "Output high"]
13352        pub const _1: Self = Self::new(1);
13353    }
13354    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13355    pub struct Pidr_SPEC;
13356    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13357    impl Pidr {
13358        #[doc = "Low level"]
13359        pub const _0: Self = Self::new(0);
13360
13361        #[doc = "High level"]
13362        pub const _1: Self = Self::new(1);
13363    }
13364    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13365    pub struct Pdr_SPEC;
13366    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13367    impl Pdr {
13368        #[doc = "Input (functions as an input pin)"]
13369        pub const _0: Self = Self::new(0);
13370
13371        #[doc = "Output (functions as an output pin)"]
13372        pub const _1: Self = Self::new(1);
13373    }
13374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13375    pub struct Pcr_SPEC;
13376    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13377    impl Pcr {
13378        #[doc = "Disable input pull-up"]
13379        pub const _0: Self = Self::new(0);
13380
13381        #[doc = "Enable input pull-up"]
13382        pub const _1: Self = Self::new(1);
13383    }
13384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13385    pub struct Ncodr_SPEC;
13386    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13387    impl Ncodr {
13388        #[doc = "Output CMOS"]
13389        pub const _0: Self = Self::new(0);
13390
13391        #[doc = "Output NMOS open-drain"]
13392        pub const _1: Self = Self::new(1);
13393    }
13394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13395    pub struct Eofr_SPEC;
13396    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
13397    impl Eofr {
13398        #[doc = "Don\'t care"]
13399        pub const _00: Self = Self::new(0);
13400
13401        #[doc = "Detect rising edge"]
13402        pub const _01: Self = Self::new(1);
13403
13404        #[doc = "Detect falling edge"]
13405        pub const _10: Self = Self::new(2);
13406
13407        #[doc = "Detect both edges"]
13408        pub const _11: Self = Self::new(3);
13409    }
13410    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13411    pub struct Isel_SPEC;
13412    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13413    impl Isel {
13414        #[doc = "Do not use as IRQn input pin"]
13415        pub const _0: Self = Self::new(0);
13416
13417        #[doc = "Use as IRQn input pin"]
13418        pub const _1: Self = Self::new(1);
13419    }
13420    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13421    pub struct Asel_SPEC;
13422    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13423    impl Asel {
13424        #[doc = "Do not use as analog pin"]
13425        pub const _0: Self = Self::new(0);
13426
13427        #[doc = "Use as analog pin"]
13428        pub const _1: Self = Self::new(1);
13429    }
13430    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13431    pub struct Pmr_SPEC;
13432    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13433    impl Pmr {
13434        #[doc = "Use as general I/O pin"]
13435        pub const _0: Self = Self::new(0);
13436
13437        #[doc = "Use as I/O port for peripheral functions"]
13438        pub const _1: Self = Self::new(1);
13439    }
13440}
13441#[doc(hidden)]
13442#[derive(Copy, Clone, Eq, PartialEq)]
13443pub struct P30PfsHa_SPEC;
13444impl crate::sealed::RegSpec for P30PfsHa_SPEC {
13445    type DataType = u16;
13446}
13447
13448#[doc = "Port 30%s Pin Function Select Register"]
13449pub type P30PfsHa = crate::RegValueT<P30PfsHa_SPEC>;
13450
13451impl P30PfsHa {
13452    #[doc = "Port Output Data"]
13453    #[inline(always)]
13454    pub fn podr(
13455        self,
13456    ) -> crate::common::RegisterField<
13457        0,
13458        0x1,
13459        1,
13460        0,
13461        p30pfs_ha::Podr,
13462        p30pfs_ha::Podr,
13463        P30PfsHa_SPEC,
13464        crate::common::RW,
13465    > {
13466        crate::common::RegisterField::<
13467            0,
13468            0x1,
13469            1,
13470            0,
13471            p30pfs_ha::Podr,
13472            p30pfs_ha::Podr,
13473            P30PfsHa_SPEC,
13474            crate::common::RW,
13475        >::from_register(self, 0)
13476    }
13477
13478    #[doc = "Port State"]
13479    #[inline(always)]
13480    pub fn pidr(
13481        self,
13482    ) -> crate::common::RegisterField<
13483        1,
13484        0x1,
13485        1,
13486        0,
13487        p30pfs_ha::Pidr,
13488        p30pfs_ha::Pidr,
13489        P30PfsHa_SPEC,
13490        crate::common::R,
13491    > {
13492        crate::common::RegisterField::<
13493            1,
13494            0x1,
13495            1,
13496            0,
13497            p30pfs_ha::Pidr,
13498            p30pfs_ha::Pidr,
13499            P30PfsHa_SPEC,
13500            crate::common::R,
13501        >::from_register(self, 0)
13502    }
13503
13504    #[doc = "Port Direction"]
13505    #[inline(always)]
13506    pub fn pdr(
13507        self,
13508    ) -> crate::common::RegisterField<
13509        2,
13510        0x1,
13511        1,
13512        0,
13513        p30pfs_ha::Pdr,
13514        p30pfs_ha::Pdr,
13515        P30PfsHa_SPEC,
13516        crate::common::RW,
13517    > {
13518        crate::common::RegisterField::<
13519            2,
13520            0x1,
13521            1,
13522            0,
13523            p30pfs_ha::Pdr,
13524            p30pfs_ha::Pdr,
13525            P30PfsHa_SPEC,
13526            crate::common::RW,
13527        >::from_register(self, 0)
13528    }
13529
13530    #[doc = "Pull-up Control"]
13531    #[inline(always)]
13532    pub fn pcr(
13533        self,
13534    ) -> crate::common::RegisterField<
13535        4,
13536        0x1,
13537        1,
13538        0,
13539        p30pfs_ha::Pcr,
13540        p30pfs_ha::Pcr,
13541        P30PfsHa_SPEC,
13542        crate::common::RW,
13543    > {
13544        crate::common::RegisterField::<
13545            4,
13546            0x1,
13547            1,
13548            0,
13549            p30pfs_ha::Pcr,
13550            p30pfs_ha::Pcr,
13551            P30PfsHa_SPEC,
13552            crate::common::RW,
13553        >::from_register(self, 0)
13554    }
13555
13556    #[doc = "N-Channel Open-Drain Control"]
13557    #[inline(always)]
13558    pub fn ncodr(
13559        self,
13560    ) -> crate::common::RegisterField<
13561        6,
13562        0x1,
13563        1,
13564        0,
13565        p30pfs_ha::Ncodr,
13566        p30pfs_ha::Ncodr,
13567        P30PfsHa_SPEC,
13568        crate::common::RW,
13569    > {
13570        crate::common::RegisterField::<
13571            6,
13572            0x1,
13573            1,
13574            0,
13575            p30pfs_ha::Ncodr,
13576            p30pfs_ha::Ncodr,
13577            P30PfsHa_SPEC,
13578            crate::common::RW,
13579        >::from_register(self, 0)
13580    }
13581
13582    #[doc = "Event on Falling/Event on Rising"]
13583    #[inline(always)]
13584    pub fn eofr(
13585        self,
13586    ) -> crate::common::RegisterField<
13587        12,
13588        0x3,
13589        1,
13590        0,
13591        p30pfs_ha::Eofr,
13592        p30pfs_ha::Eofr,
13593        P30PfsHa_SPEC,
13594        crate::common::RW,
13595    > {
13596        crate::common::RegisterField::<
13597            12,
13598            0x3,
13599            1,
13600            0,
13601            p30pfs_ha::Eofr,
13602            p30pfs_ha::Eofr,
13603            P30PfsHa_SPEC,
13604            crate::common::RW,
13605        >::from_register(self, 0)
13606    }
13607
13608    #[doc = "IRQ Input Enable"]
13609    #[inline(always)]
13610    pub fn isel(
13611        self,
13612    ) -> crate::common::RegisterField<
13613        14,
13614        0x1,
13615        1,
13616        0,
13617        p30pfs_ha::Isel,
13618        p30pfs_ha::Isel,
13619        P30PfsHa_SPEC,
13620        crate::common::RW,
13621    > {
13622        crate::common::RegisterField::<
13623            14,
13624            0x1,
13625            1,
13626            0,
13627            p30pfs_ha::Isel,
13628            p30pfs_ha::Isel,
13629            P30PfsHa_SPEC,
13630            crate::common::RW,
13631        >::from_register(self, 0)
13632    }
13633
13634    #[doc = "Analog Input Enable"]
13635    #[inline(always)]
13636    pub fn asel(
13637        self,
13638    ) -> crate::common::RegisterField<
13639        15,
13640        0x1,
13641        1,
13642        0,
13643        p30pfs_ha::Asel,
13644        p30pfs_ha::Asel,
13645        P30PfsHa_SPEC,
13646        crate::common::RW,
13647    > {
13648        crate::common::RegisterField::<
13649            15,
13650            0x1,
13651            1,
13652            0,
13653            p30pfs_ha::Asel,
13654            p30pfs_ha::Asel,
13655            P30PfsHa_SPEC,
13656            crate::common::RW,
13657        >::from_register(self, 0)
13658    }
13659}
13660impl ::core::default::Default for P30PfsHa {
13661    #[inline(always)]
13662    fn default() -> P30PfsHa {
13663        <crate::RegValueT<P30PfsHa_SPEC> as RegisterValue<_>>::new(0)
13664    }
13665}
13666pub mod p30pfs_ha {
13667
13668    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13669    pub struct Podr_SPEC;
13670    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13671    impl Podr {
13672        #[doc = "Output low"]
13673        pub const _0: Self = Self::new(0);
13674
13675        #[doc = "Output high"]
13676        pub const _1: Self = Self::new(1);
13677    }
13678    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13679    pub struct Pidr_SPEC;
13680    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13681    impl Pidr {
13682        #[doc = "Low level"]
13683        pub const _0: Self = Self::new(0);
13684
13685        #[doc = "High level"]
13686        pub const _1: Self = Self::new(1);
13687    }
13688    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13689    pub struct Pdr_SPEC;
13690    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13691    impl Pdr {
13692        #[doc = "Input (functions as an input pin)"]
13693        pub const _0: Self = Self::new(0);
13694
13695        #[doc = "Output (functions as an output pin)"]
13696        pub const _1: Self = Self::new(1);
13697    }
13698    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13699    pub struct Pcr_SPEC;
13700    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13701    impl Pcr {
13702        #[doc = "Disable input pull-up"]
13703        pub const _0: Self = Self::new(0);
13704
13705        #[doc = "Enable input pull-up"]
13706        pub const _1: Self = Self::new(1);
13707    }
13708    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13709    pub struct Ncodr_SPEC;
13710    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13711    impl Ncodr {
13712        #[doc = "Output CMOS"]
13713        pub const _0: Self = Self::new(0);
13714
13715        #[doc = "Output NMOS open-drain"]
13716        pub const _1: Self = Self::new(1);
13717    }
13718    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13719    pub struct Eofr_SPEC;
13720    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
13721    impl Eofr {
13722        #[doc = "Don\'t care"]
13723        pub const _00: Self = Self::new(0);
13724
13725        #[doc = "Detect rising edge"]
13726        pub const _01: Self = Self::new(1);
13727
13728        #[doc = "Detect falling edge"]
13729        pub const _10: Self = Self::new(2);
13730
13731        #[doc = "Detect both edges"]
13732        pub const _11: Self = Self::new(3);
13733    }
13734    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13735    pub struct Isel_SPEC;
13736    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13737    impl Isel {
13738        #[doc = "Do not use as IRQn input pin"]
13739        pub const _0: Self = Self::new(0);
13740
13741        #[doc = "Use as IRQn input pin"]
13742        pub const _1: Self = Self::new(1);
13743    }
13744    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13745    pub struct Asel_SPEC;
13746    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13747    impl Asel {
13748        #[doc = "Do not use as analog pin"]
13749        pub const _0: Self = Self::new(0);
13750
13751        #[doc = "Use as analog pin"]
13752        pub const _1: Self = Self::new(1);
13753    }
13754}
13755#[doc(hidden)]
13756#[derive(Copy, Clone, Eq, PartialEq)]
13757pub struct P30PfsBy_SPEC;
13758impl crate::sealed::RegSpec for P30PfsBy_SPEC {
13759    type DataType = u8;
13760}
13761
13762#[doc = "Port 30%s Pin Function Select Register"]
13763pub type P30PfsBy = crate::RegValueT<P30PfsBy_SPEC>;
13764
13765impl P30PfsBy {
13766    #[doc = "Port Output Data"]
13767    #[inline(always)]
13768    pub fn podr(
13769        self,
13770    ) -> crate::common::RegisterField<
13771        0,
13772        0x1,
13773        1,
13774        0,
13775        p30pfs_by::Podr,
13776        p30pfs_by::Podr,
13777        P30PfsBy_SPEC,
13778        crate::common::RW,
13779    > {
13780        crate::common::RegisterField::<
13781            0,
13782            0x1,
13783            1,
13784            0,
13785            p30pfs_by::Podr,
13786            p30pfs_by::Podr,
13787            P30PfsBy_SPEC,
13788            crate::common::RW,
13789        >::from_register(self, 0)
13790    }
13791
13792    #[doc = "Port State"]
13793    #[inline(always)]
13794    pub fn pidr(
13795        self,
13796    ) -> crate::common::RegisterField<
13797        1,
13798        0x1,
13799        1,
13800        0,
13801        p30pfs_by::Pidr,
13802        p30pfs_by::Pidr,
13803        P30PfsBy_SPEC,
13804        crate::common::R,
13805    > {
13806        crate::common::RegisterField::<
13807            1,
13808            0x1,
13809            1,
13810            0,
13811            p30pfs_by::Pidr,
13812            p30pfs_by::Pidr,
13813            P30PfsBy_SPEC,
13814            crate::common::R,
13815        >::from_register(self, 0)
13816    }
13817
13818    #[doc = "Port Direction"]
13819    #[inline(always)]
13820    pub fn pdr(
13821        self,
13822    ) -> crate::common::RegisterField<
13823        2,
13824        0x1,
13825        1,
13826        0,
13827        p30pfs_by::Pdr,
13828        p30pfs_by::Pdr,
13829        P30PfsBy_SPEC,
13830        crate::common::RW,
13831    > {
13832        crate::common::RegisterField::<
13833            2,
13834            0x1,
13835            1,
13836            0,
13837            p30pfs_by::Pdr,
13838            p30pfs_by::Pdr,
13839            P30PfsBy_SPEC,
13840            crate::common::RW,
13841        >::from_register(self, 0)
13842    }
13843
13844    #[doc = "Pull-up Control"]
13845    #[inline(always)]
13846    pub fn pcr(
13847        self,
13848    ) -> crate::common::RegisterField<
13849        4,
13850        0x1,
13851        1,
13852        0,
13853        p30pfs_by::Pcr,
13854        p30pfs_by::Pcr,
13855        P30PfsBy_SPEC,
13856        crate::common::RW,
13857    > {
13858        crate::common::RegisterField::<
13859            4,
13860            0x1,
13861            1,
13862            0,
13863            p30pfs_by::Pcr,
13864            p30pfs_by::Pcr,
13865            P30PfsBy_SPEC,
13866            crate::common::RW,
13867        >::from_register(self, 0)
13868    }
13869
13870    #[doc = "N-Channel Open-Drain Control"]
13871    #[inline(always)]
13872    pub fn ncodr(
13873        self,
13874    ) -> crate::common::RegisterField<
13875        6,
13876        0x1,
13877        1,
13878        0,
13879        p30pfs_by::Ncodr,
13880        p30pfs_by::Ncodr,
13881        P30PfsBy_SPEC,
13882        crate::common::RW,
13883    > {
13884        crate::common::RegisterField::<
13885            6,
13886            0x1,
13887            1,
13888            0,
13889            p30pfs_by::Ncodr,
13890            p30pfs_by::Ncodr,
13891            P30PfsBy_SPEC,
13892            crate::common::RW,
13893        >::from_register(self, 0)
13894    }
13895}
13896impl ::core::default::Default for P30PfsBy {
13897    #[inline(always)]
13898    fn default() -> P30PfsBy {
13899        <crate::RegValueT<P30PfsBy_SPEC> as RegisterValue<_>>::new(0)
13900    }
13901}
13902pub mod p30pfs_by {
13903
13904    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13905    pub struct Podr_SPEC;
13906    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13907    impl Podr {
13908        #[doc = "Output low"]
13909        pub const _0: Self = Self::new(0);
13910
13911        #[doc = "Output high"]
13912        pub const _1: Self = Self::new(1);
13913    }
13914    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13915    pub struct Pidr_SPEC;
13916    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13917    impl Pidr {
13918        #[doc = "Low level"]
13919        pub const _0: Self = Self::new(0);
13920
13921        #[doc = "High level"]
13922        pub const _1: Self = Self::new(1);
13923    }
13924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13925    pub struct Pdr_SPEC;
13926    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13927    impl Pdr {
13928        #[doc = "Input (functions as an input pin)"]
13929        pub const _0: Self = Self::new(0);
13930
13931        #[doc = "Output (functions as an output pin)"]
13932        pub const _1: Self = Self::new(1);
13933    }
13934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13935    pub struct Pcr_SPEC;
13936    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13937    impl Pcr {
13938        #[doc = "Disable input pull-up"]
13939        pub const _0: Self = Self::new(0);
13940
13941        #[doc = "Enable input pull-up"]
13942        pub const _1: Self = Self::new(1);
13943    }
13944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13945    pub struct Ncodr_SPEC;
13946    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13947    impl Ncodr {
13948        #[doc = "Output CMOS"]
13949        pub const _0: Self = Self::new(0);
13950
13951        #[doc = "Output NMOS open-drain"]
13952        pub const _1: Self = Self::new(1);
13953    }
13954}
13955#[doc(hidden)]
13956#[derive(Copy, Clone, Eq, PartialEq)]
13957pub struct P3Pfs_SPEC;
13958impl crate::sealed::RegSpec for P3Pfs_SPEC {
13959    type DataType = u32;
13960}
13961
13962#[doc = "Port 3%s Pin Function Select Register"]
13963pub type P3Pfs = crate::RegValueT<P3Pfs_SPEC>;
13964
13965impl P3Pfs {
13966    #[doc = "Port Output Data"]
13967    #[inline(always)]
13968    pub fn podr(
13969        self,
13970    ) -> crate::common::RegisterField<
13971        0,
13972        0x1,
13973        1,
13974        0,
13975        p3pfs::Podr,
13976        p3pfs::Podr,
13977        P3Pfs_SPEC,
13978        crate::common::RW,
13979    > {
13980        crate::common::RegisterField::<
13981            0,
13982            0x1,
13983            1,
13984            0,
13985            p3pfs::Podr,
13986            p3pfs::Podr,
13987            P3Pfs_SPEC,
13988            crate::common::RW,
13989        >::from_register(self, 0)
13990    }
13991
13992    #[doc = "Port State"]
13993    #[inline(always)]
13994    pub fn pidr(
13995        self,
13996    ) -> crate::common::RegisterField<
13997        1,
13998        0x1,
13999        1,
14000        0,
14001        p3pfs::Pidr,
14002        p3pfs::Pidr,
14003        P3Pfs_SPEC,
14004        crate::common::R,
14005    > {
14006        crate::common::RegisterField::<
14007            1,
14008            0x1,
14009            1,
14010            0,
14011            p3pfs::Pidr,
14012            p3pfs::Pidr,
14013            P3Pfs_SPEC,
14014            crate::common::R,
14015        >::from_register(self, 0)
14016    }
14017
14018    #[doc = "Port Direction"]
14019    #[inline(always)]
14020    pub fn pdr(
14021        self,
14022    ) -> crate::common::RegisterField<
14023        2,
14024        0x1,
14025        1,
14026        0,
14027        p3pfs::Pdr,
14028        p3pfs::Pdr,
14029        P3Pfs_SPEC,
14030        crate::common::RW,
14031    > {
14032        crate::common::RegisterField::<
14033            2,
14034            0x1,
14035            1,
14036            0,
14037            p3pfs::Pdr,
14038            p3pfs::Pdr,
14039            P3Pfs_SPEC,
14040            crate::common::RW,
14041        >::from_register(self, 0)
14042    }
14043
14044    #[doc = "Pull-up Control"]
14045    #[inline(always)]
14046    pub fn pcr(
14047        self,
14048    ) -> crate::common::RegisterField<
14049        4,
14050        0x1,
14051        1,
14052        0,
14053        p3pfs::Pcr,
14054        p3pfs::Pcr,
14055        P3Pfs_SPEC,
14056        crate::common::RW,
14057    > {
14058        crate::common::RegisterField::<
14059            4,
14060            0x1,
14061            1,
14062            0,
14063            p3pfs::Pcr,
14064            p3pfs::Pcr,
14065            P3Pfs_SPEC,
14066            crate::common::RW,
14067        >::from_register(self, 0)
14068    }
14069
14070    #[doc = "N-Channel Open-Drain Control"]
14071    #[inline(always)]
14072    pub fn ncodr(
14073        self,
14074    ) -> crate::common::RegisterField<
14075        6,
14076        0x1,
14077        1,
14078        0,
14079        p3pfs::Ncodr,
14080        p3pfs::Ncodr,
14081        P3Pfs_SPEC,
14082        crate::common::RW,
14083    > {
14084        crate::common::RegisterField::<
14085            6,
14086            0x1,
14087            1,
14088            0,
14089            p3pfs::Ncodr,
14090            p3pfs::Ncodr,
14091            P3Pfs_SPEC,
14092            crate::common::RW,
14093        >::from_register(self, 0)
14094    }
14095
14096    #[doc = "Event on Falling/Event on Rising"]
14097    #[inline(always)]
14098    pub fn eofr(
14099        self,
14100    ) -> crate::common::RegisterField<
14101        12,
14102        0x3,
14103        1,
14104        0,
14105        p3pfs::Eofr,
14106        p3pfs::Eofr,
14107        P3Pfs_SPEC,
14108        crate::common::RW,
14109    > {
14110        crate::common::RegisterField::<
14111            12,
14112            0x3,
14113            1,
14114            0,
14115            p3pfs::Eofr,
14116            p3pfs::Eofr,
14117            P3Pfs_SPEC,
14118            crate::common::RW,
14119        >::from_register(self, 0)
14120    }
14121
14122    #[doc = "IRQ Input Enable"]
14123    #[inline(always)]
14124    pub fn isel(
14125        self,
14126    ) -> crate::common::RegisterField<
14127        14,
14128        0x1,
14129        1,
14130        0,
14131        p3pfs::Isel,
14132        p3pfs::Isel,
14133        P3Pfs_SPEC,
14134        crate::common::RW,
14135    > {
14136        crate::common::RegisterField::<
14137            14,
14138            0x1,
14139            1,
14140            0,
14141            p3pfs::Isel,
14142            p3pfs::Isel,
14143            P3Pfs_SPEC,
14144            crate::common::RW,
14145        >::from_register(self, 0)
14146    }
14147
14148    #[doc = "Analog Input Enable"]
14149    #[inline(always)]
14150    pub fn asel(
14151        self,
14152    ) -> crate::common::RegisterField<
14153        15,
14154        0x1,
14155        1,
14156        0,
14157        p3pfs::Asel,
14158        p3pfs::Asel,
14159        P3Pfs_SPEC,
14160        crate::common::RW,
14161    > {
14162        crate::common::RegisterField::<
14163            15,
14164            0x1,
14165            1,
14166            0,
14167            p3pfs::Asel,
14168            p3pfs::Asel,
14169            P3Pfs_SPEC,
14170            crate::common::RW,
14171        >::from_register(self, 0)
14172    }
14173
14174    #[doc = "Port Mode Control"]
14175    #[inline(always)]
14176    pub fn pmr(
14177        self,
14178    ) -> crate::common::RegisterField<
14179        16,
14180        0x1,
14181        1,
14182        0,
14183        p3pfs::Pmr,
14184        p3pfs::Pmr,
14185        P3Pfs_SPEC,
14186        crate::common::RW,
14187    > {
14188        crate::common::RegisterField::<
14189            16,
14190            0x1,
14191            1,
14192            0,
14193            p3pfs::Pmr,
14194            p3pfs::Pmr,
14195            P3Pfs_SPEC,
14196            crate::common::RW,
14197        >::from_register(self, 0)
14198    }
14199
14200    #[doc = "Peripheral Select"]
14201    #[inline(always)]
14202    pub fn psel(
14203        self,
14204    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P3Pfs_SPEC, crate::common::RW> {
14205        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P3Pfs_SPEC,crate::common::RW>::from_register(self,0)
14206    }
14207}
14208impl ::core::default::Default for P3Pfs {
14209    #[inline(always)]
14210    fn default() -> P3Pfs {
14211        <crate::RegValueT<P3Pfs_SPEC> as RegisterValue<_>>::new(0)
14212    }
14213}
14214pub mod p3pfs {
14215
14216    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14217    pub struct Podr_SPEC;
14218    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14219    impl Podr {
14220        #[doc = "Output low"]
14221        pub const _0: Self = Self::new(0);
14222
14223        #[doc = "Output high"]
14224        pub const _1: Self = Self::new(1);
14225    }
14226    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14227    pub struct Pidr_SPEC;
14228    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14229    impl Pidr {
14230        #[doc = "Low level"]
14231        pub const _0: Self = Self::new(0);
14232
14233        #[doc = "High level"]
14234        pub const _1: Self = Self::new(1);
14235    }
14236    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14237    pub struct Pdr_SPEC;
14238    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14239    impl Pdr {
14240        #[doc = "Input (functions as an input pin)"]
14241        pub const _0: Self = Self::new(0);
14242
14243        #[doc = "Output (functions as an output pin)"]
14244        pub const _1: Self = Self::new(1);
14245    }
14246    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14247    pub struct Pcr_SPEC;
14248    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14249    impl Pcr {
14250        #[doc = "Disable input pull-up"]
14251        pub const _0: Self = Self::new(0);
14252
14253        #[doc = "Enable input pull-up"]
14254        pub const _1: Self = Self::new(1);
14255    }
14256    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14257    pub struct Ncodr_SPEC;
14258    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14259    impl Ncodr {
14260        #[doc = "Output CMOS"]
14261        pub const _0: Self = Self::new(0);
14262
14263        #[doc = "Output NMOS open-drain"]
14264        pub const _1: Self = Self::new(1);
14265    }
14266    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14267    pub struct Eofr_SPEC;
14268    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
14269    impl Eofr {
14270        #[doc = "Don\'t care"]
14271        pub const _00: Self = Self::new(0);
14272
14273        #[doc = "Detect rising edge"]
14274        pub const _01: Self = Self::new(1);
14275
14276        #[doc = "Detect falling edge"]
14277        pub const _10: Self = Self::new(2);
14278
14279        #[doc = "Detect both edges"]
14280        pub const _11: Self = Self::new(3);
14281    }
14282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14283    pub struct Isel_SPEC;
14284    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14285    impl Isel {
14286        #[doc = "Do not use as IRQn input pin"]
14287        pub const _0: Self = Self::new(0);
14288
14289        #[doc = "Use as IRQn input pin"]
14290        pub const _1: Self = Self::new(1);
14291    }
14292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14293    pub struct Asel_SPEC;
14294    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14295    impl Asel {
14296        #[doc = "Do not use as analog pin"]
14297        pub const _0: Self = Self::new(0);
14298
14299        #[doc = "Use as analog pin"]
14300        pub const _1: Self = Self::new(1);
14301    }
14302    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14303    pub struct Pmr_SPEC;
14304    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
14305    impl Pmr {
14306        #[doc = "Use as general I/O pin"]
14307        pub const _0: Self = Self::new(0);
14308
14309        #[doc = "Use as I/O port for peripheral functions"]
14310        pub const _1: Self = Self::new(1);
14311    }
14312}
14313#[doc(hidden)]
14314#[derive(Copy, Clone, Eq, PartialEq)]
14315pub struct P3PfsHa_SPEC;
14316impl crate::sealed::RegSpec for P3PfsHa_SPEC {
14317    type DataType = u16;
14318}
14319
14320#[doc = "Port 3%s Pin Function Select Register"]
14321pub type P3PfsHa = crate::RegValueT<P3PfsHa_SPEC>;
14322
14323impl P3PfsHa {
14324    #[doc = "Port Output Data"]
14325    #[inline(always)]
14326    pub fn podr(
14327        self,
14328    ) -> crate::common::RegisterField<
14329        0,
14330        0x1,
14331        1,
14332        0,
14333        p3pfs_ha::Podr,
14334        p3pfs_ha::Podr,
14335        P3PfsHa_SPEC,
14336        crate::common::RW,
14337    > {
14338        crate::common::RegisterField::<
14339            0,
14340            0x1,
14341            1,
14342            0,
14343            p3pfs_ha::Podr,
14344            p3pfs_ha::Podr,
14345            P3PfsHa_SPEC,
14346            crate::common::RW,
14347        >::from_register(self, 0)
14348    }
14349
14350    #[doc = "Port State"]
14351    #[inline(always)]
14352    pub fn pidr(
14353        self,
14354    ) -> crate::common::RegisterField<
14355        1,
14356        0x1,
14357        1,
14358        0,
14359        p3pfs_ha::Pidr,
14360        p3pfs_ha::Pidr,
14361        P3PfsHa_SPEC,
14362        crate::common::R,
14363    > {
14364        crate::common::RegisterField::<
14365            1,
14366            0x1,
14367            1,
14368            0,
14369            p3pfs_ha::Pidr,
14370            p3pfs_ha::Pidr,
14371            P3PfsHa_SPEC,
14372            crate::common::R,
14373        >::from_register(self, 0)
14374    }
14375
14376    #[doc = "Port Direction"]
14377    #[inline(always)]
14378    pub fn pdr(
14379        self,
14380    ) -> crate::common::RegisterField<
14381        2,
14382        0x1,
14383        1,
14384        0,
14385        p3pfs_ha::Pdr,
14386        p3pfs_ha::Pdr,
14387        P3PfsHa_SPEC,
14388        crate::common::RW,
14389    > {
14390        crate::common::RegisterField::<
14391            2,
14392            0x1,
14393            1,
14394            0,
14395            p3pfs_ha::Pdr,
14396            p3pfs_ha::Pdr,
14397            P3PfsHa_SPEC,
14398            crate::common::RW,
14399        >::from_register(self, 0)
14400    }
14401
14402    #[doc = "Pull-up Control"]
14403    #[inline(always)]
14404    pub fn pcr(
14405        self,
14406    ) -> crate::common::RegisterField<
14407        4,
14408        0x1,
14409        1,
14410        0,
14411        p3pfs_ha::Pcr,
14412        p3pfs_ha::Pcr,
14413        P3PfsHa_SPEC,
14414        crate::common::RW,
14415    > {
14416        crate::common::RegisterField::<
14417            4,
14418            0x1,
14419            1,
14420            0,
14421            p3pfs_ha::Pcr,
14422            p3pfs_ha::Pcr,
14423            P3PfsHa_SPEC,
14424            crate::common::RW,
14425        >::from_register(self, 0)
14426    }
14427
14428    #[doc = "N-Channel Open-Drain Control"]
14429    #[inline(always)]
14430    pub fn ncodr(
14431        self,
14432    ) -> crate::common::RegisterField<
14433        6,
14434        0x1,
14435        1,
14436        0,
14437        p3pfs_ha::Ncodr,
14438        p3pfs_ha::Ncodr,
14439        P3PfsHa_SPEC,
14440        crate::common::RW,
14441    > {
14442        crate::common::RegisterField::<
14443            6,
14444            0x1,
14445            1,
14446            0,
14447            p3pfs_ha::Ncodr,
14448            p3pfs_ha::Ncodr,
14449            P3PfsHa_SPEC,
14450            crate::common::RW,
14451        >::from_register(self, 0)
14452    }
14453
14454    #[doc = "Event on Falling/Event on Rising"]
14455    #[inline(always)]
14456    pub fn eofr(
14457        self,
14458    ) -> crate::common::RegisterField<
14459        12,
14460        0x3,
14461        1,
14462        0,
14463        p3pfs_ha::Eofr,
14464        p3pfs_ha::Eofr,
14465        P3PfsHa_SPEC,
14466        crate::common::RW,
14467    > {
14468        crate::common::RegisterField::<
14469            12,
14470            0x3,
14471            1,
14472            0,
14473            p3pfs_ha::Eofr,
14474            p3pfs_ha::Eofr,
14475            P3PfsHa_SPEC,
14476            crate::common::RW,
14477        >::from_register(self, 0)
14478    }
14479
14480    #[doc = "IRQ Input Enable"]
14481    #[inline(always)]
14482    pub fn isel(
14483        self,
14484    ) -> crate::common::RegisterField<
14485        14,
14486        0x1,
14487        1,
14488        0,
14489        p3pfs_ha::Isel,
14490        p3pfs_ha::Isel,
14491        P3PfsHa_SPEC,
14492        crate::common::RW,
14493    > {
14494        crate::common::RegisterField::<
14495            14,
14496            0x1,
14497            1,
14498            0,
14499            p3pfs_ha::Isel,
14500            p3pfs_ha::Isel,
14501            P3PfsHa_SPEC,
14502            crate::common::RW,
14503        >::from_register(self, 0)
14504    }
14505
14506    #[doc = "Analog Input Enable"]
14507    #[inline(always)]
14508    pub fn asel(
14509        self,
14510    ) -> crate::common::RegisterField<
14511        15,
14512        0x1,
14513        1,
14514        0,
14515        p3pfs_ha::Asel,
14516        p3pfs_ha::Asel,
14517        P3PfsHa_SPEC,
14518        crate::common::RW,
14519    > {
14520        crate::common::RegisterField::<
14521            15,
14522            0x1,
14523            1,
14524            0,
14525            p3pfs_ha::Asel,
14526            p3pfs_ha::Asel,
14527            P3PfsHa_SPEC,
14528            crate::common::RW,
14529        >::from_register(self, 0)
14530    }
14531}
14532impl ::core::default::Default for P3PfsHa {
14533    #[inline(always)]
14534    fn default() -> P3PfsHa {
14535        <crate::RegValueT<P3PfsHa_SPEC> as RegisterValue<_>>::new(0)
14536    }
14537}
14538pub mod p3pfs_ha {
14539
14540    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14541    pub struct Podr_SPEC;
14542    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14543    impl Podr {
14544        #[doc = "Output low"]
14545        pub const _0: Self = Self::new(0);
14546
14547        #[doc = "Output high"]
14548        pub const _1: Self = Self::new(1);
14549    }
14550    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14551    pub struct Pidr_SPEC;
14552    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14553    impl Pidr {
14554        #[doc = "Low level"]
14555        pub const _0: Self = Self::new(0);
14556
14557        #[doc = "High level"]
14558        pub const _1: Self = Self::new(1);
14559    }
14560    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14561    pub struct Pdr_SPEC;
14562    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14563    impl Pdr {
14564        #[doc = "Input (functions as an input pin)"]
14565        pub const _0: Self = Self::new(0);
14566
14567        #[doc = "Output (functions as an output pin)"]
14568        pub const _1: Self = Self::new(1);
14569    }
14570    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14571    pub struct Pcr_SPEC;
14572    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14573    impl Pcr {
14574        #[doc = "Disable input pull-up"]
14575        pub const _0: Self = Self::new(0);
14576
14577        #[doc = "Enable input pull-up"]
14578        pub const _1: Self = Self::new(1);
14579    }
14580    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14581    pub struct Ncodr_SPEC;
14582    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14583    impl Ncodr {
14584        #[doc = "Output CMOS"]
14585        pub const _0: Self = Self::new(0);
14586
14587        #[doc = "Output NMOS open-drain"]
14588        pub const _1: Self = Self::new(1);
14589    }
14590    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14591    pub struct Eofr_SPEC;
14592    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
14593    impl Eofr {
14594        #[doc = "Don\'t care"]
14595        pub const _00: Self = Self::new(0);
14596
14597        #[doc = "Detect rising edge"]
14598        pub const _01: Self = Self::new(1);
14599
14600        #[doc = "Detect falling edge"]
14601        pub const _10: Self = Self::new(2);
14602
14603        #[doc = "Detect both edges"]
14604        pub const _11: Self = Self::new(3);
14605    }
14606    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14607    pub struct Isel_SPEC;
14608    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14609    impl Isel {
14610        #[doc = "Do not use as IRQn input pin"]
14611        pub const _0: Self = Self::new(0);
14612
14613        #[doc = "Use as IRQn input pin"]
14614        pub const _1: Self = Self::new(1);
14615    }
14616    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14617    pub struct Asel_SPEC;
14618    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14619    impl Asel {
14620        #[doc = "Do not use as analog pin"]
14621        pub const _0: Self = Self::new(0);
14622
14623        #[doc = "Use as analog pin"]
14624        pub const _1: Self = Self::new(1);
14625    }
14626}
14627#[doc(hidden)]
14628#[derive(Copy, Clone, Eq, PartialEq)]
14629pub struct P3PfsBy_SPEC;
14630impl crate::sealed::RegSpec for P3PfsBy_SPEC {
14631    type DataType = u8;
14632}
14633
14634#[doc = "Port 3%s Pin Function Select Register"]
14635pub type P3PfsBy = crate::RegValueT<P3PfsBy_SPEC>;
14636
14637impl P3PfsBy {
14638    #[doc = "Port Output Data"]
14639    #[inline(always)]
14640    pub fn podr(
14641        self,
14642    ) -> crate::common::RegisterField<
14643        0,
14644        0x1,
14645        1,
14646        0,
14647        p3pfs_by::Podr,
14648        p3pfs_by::Podr,
14649        P3PfsBy_SPEC,
14650        crate::common::RW,
14651    > {
14652        crate::common::RegisterField::<
14653            0,
14654            0x1,
14655            1,
14656            0,
14657            p3pfs_by::Podr,
14658            p3pfs_by::Podr,
14659            P3PfsBy_SPEC,
14660            crate::common::RW,
14661        >::from_register(self, 0)
14662    }
14663
14664    #[doc = "Port State"]
14665    #[inline(always)]
14666    pub fn pidr(
14667        self,
14668    ) -> crate::common::RegisterField<
14669        1,
14670        0x1,
14671        1,
14672        0,
14673        p3pfs_by::Pidr,
14674        p3pfs_by::Pidr,
14675        P3PfsBy_SPEC,
14676        crate::common::R,
14677    > {
14678        crate::common::RegisterField::<
14679            1,
14680            0x1,
14681            1,
14682            0,
14683            p3pfs_by::Pidr,
14684            p3pfs_by::Pidr,
14685            P3PfsBy_SPEC,
14686            crate::common::R,
14687        >::from_register(self, 0)
14688    }
14689
14690    #[doc = "Port Direction"]
14691    #[inline(always)]
14692    pub fn pdr(
14693        self,
14694    ) -> crate::common::RegisterField<
14695        2,
14696        0x1,
14697        1,
14698        0,
14699        p3pfs_by::Pdr,
14700        p3pfs_by::Pdr,
14701        P3PfsBy_SPEC,
14702        crate::common::RW,
14703    > {
14704        crate::common::RegisterField::<
14705            2,
14706            0x1,
14707            1,
14708            0,
14709            p3pfs_by::Pdr,
14710            p3pfs_by::Pdr,
14711            P3PfsBy_SPEC,
14712            crate::common::RW,
14713        >::from_register(self, 0)
14714    }
14715
14716    #[doc = "Pull-up Control"]
14717    #[inline(always)]
14718    pub fn pcr(
14719        self,
14720    ) -> crate::common::RegisterField<
14721        4,
14722        0x1,
14723        1,
14724        0,
14725        p3pfs_by::Pcr,
14726        p3pfs_by::Pcr,
14727        P3PfsBy_SPEC,
14728        crate::common::RW,
14729    > {
14730        crate::common::RegisterField::<
14731            4,
14732            0x1,
14733            1,
14734            0,
14735            p3pfs_by::Pcr,
14736            p3pfs_by::Pcr,
14737            P3PfsBy_SPEC,
14738            crate::common::RW,
14739        >::from_register(self, 0)
14740    }
14741
14742    #[doc = "N-Channel Open-Drain Control"]
14743    #[inline(always)]
14744    pub fn ncodr(
14745        self,
14746    ) -> crate::common::RegisterField<
14747        6,
14748        0x1,
14749        1,
14750        0,
14751        p3pfs_by::Ncodr,
14752        p3pfs_by::Ncodr,
14753        P3PfsBy_SPEC,
14754        crate::common::RW,
14755    > {
14756        crate::common::RegisterField::<
14757            6,
14758            0x1,
14759            1,
14760            0,
14761            p3pfs_by::Ncodr,
14762            p3pfs_by::Ncodr,
14763            P3PfsBy_SPEC,
14764            crate::common::RW,
14765        >::from_register(self, 0)
14766    }
14767}
14768impl ::core::default::Default for P3PfsBy {
14769    #[inline(always)]
14770    fn default() -> P3PfsBy {
14771        <crate::RegValueT<P3PfsBy_SPEC> as RegisterValue<_>>::new(0)
14772    }
14773}
14774pub mod p3pfs_by {
14775
14776    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14777    pub struct Podr_SPEC;
14778    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14779    impl Podr {
14780        #[doc = "Output low"]
14781        pub const _0: Self = Self::new(0);
14782
14783        #[doc = "Output high"]
14784        pub const _1: Self = Self::new(1);
14785    }
14786    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14787    pub struct Pidr_SPEC;
14788    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14789    impl Pidr {
14790        #[doc = "Low level"]
14791        pub const _0: Self = Self::new(0);
14792
14793        #[doc = "High level"]
14794        pub const _1: Self = Self::new(1);
14795    }
14796    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14797    pub struct Pdr_SPEC;
14798    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14799    impl Pdr {
14800        #[doc = "Input (functions as an input pin)"]
14801        pub const _0: Self = Self::new(0);
14802
14803        #[doc = "Output (functions as an output pin)"]
14804        pub const _1: Self = Self::new(1);
14805    }
14806    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14807    pub struct Pcr_SPEC;
14808    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14809    impl Pcr {
14810        #[doc = "Disable input pull-up"]
14811        pub const _0: Self = Self::new(0);
14812
14813        #[doc = "Enable input pull-up"]
14814        pub const _1: Self = Self::new(1);
14815    }
14816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14817    pub struct Ncodr_SPEC;
14818    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14819    impl Ncodr {
14820        #[doc = "Output CMOS"]
14821        pub const _0: Self = Self::new(0);
14822
14823        #[doc = "Output NMOS open-drain"]
14824        pub const _1: Self = Self::new(1);
14825    }
14826}
14827#[doc(hidden)]
14828#[derive(Copy, Clone, Eq, PartialEq)]
14829pub struct P40Pfs_SPEC;
14830impl crate::sealed::RegSpec for P40Pfs_SPEC {
14831    type DataType = u32;
14832}
14833
14834#[doc = "Port 40%s Pin Function Select Register"]
14835pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
14836
14837impl P40Pfs {
14838    #[doc = "Port Output Data"]
14839    #[inline(always)]
14840    pub fn podr(
14841        self,
14842    ) -> crate::common::RegisterField<
14843        0,
14844        0x1,
14845        1,
14846        0,
14847        p40pfs::Podr,
14848        p40pfs::Podr,
14849        P40Pfs_SPEC,
14850        crate::common::RW,
14851    > {
14852        crate::common::RegisterField::<
14853            0,
14854            0x1,
14855            1,
14856            0,
14857            p40pfs::Podr,
14858            p40pfs::Podr,
14859            P40Pfs_SPEC,
14860            crate::common::RW,
14861        >::from_register(self, 0)
14862    }
14863
14864    #[doc = "Port State"]
14865    #[inline(always)]
14866    pub fn pidr(
14867        self,
14868    ) -> crate::common::RegisterField<
14869        1,
14870        0x1,
14871        1,
14872        0,
14873        p40pfs::Pidr,
14874        p40pfs::Pidr,
14875        P40Pfs_SPEC,
14876        crate::common::R,
14877    > {
14878        crate::common::RegisterField::<
14879            1,
14880            0x1,
14881            1,
14882            0,
14883            p40pfs::Pidr,
14884            p40pfs::Pidr,
14885            P40Pfs_SPEC,
14886            crate::common::R,
14887        >::from_register(self, 0)
14888    }
14889
14890    #[doc = "Port Direction"]
14891    #[inline(always)]
14892    pub fn pdr(
14893        self,
14894    ) -> crate::common::RegisterField<
14895        2,
14896        0x1,
14897        1,
14898        0,
14899        p40pfs::Pdr,
14900        p40pfs::Pdr,
14901        P40Pfs_SPEC,
14902        crate::common::RW,
14903    > {
14904        crate::common::RegisterField::<
14905            2,
14906            0x1,
14907            1,
14908            0,
14909            p40pfs::Pdr,
14910            p40pfs::Pdr,
14911            P40Pfs_SPEC,
14912            crate::common::RW,
14913        >::from_register(self, 0)
14914    }
14915
14916    #[doc = "Pull-up Control"]
14917    #[inline(always)]
14918    pub fn pcr(
14919        self,
14920    ) -> crate::common::RegisterField<
14921        4,
14922        0x1,
14923        1,
14924        0,
14925        p40pfs::Pcr,
14926        p40pfs::Pcr,
14927        P40Pfs_SPEC,
14928        crate::common::RW,
14929    > {
14930        crate::common::RegisterField::<
14931            4,
14932            0x1,
14933            1,
14934            0,
14935            p40pfs::Pcr,
14936            p40pfs::Pcr,
14937            P40Pfs_SPEC,
14938            crate::common::RW,
14939        >::from_register(self, 0)
14940    }
14941
14942    #[doc = "N-Channel Open-Drain Control"]
14943    #[inline(always)]
14944    pub fn ncodr(
14945        self,
14946    ) -> crate::common::RegisterField<
14947        6,
14948        0x1,
14949        1,
14950        0,
14951        p40pfs::Ncodr,
14952        p40pfs::Ncodr,
14953        P40Pfs_SPEC,
14954        crate::common::RW,
14955    > {
14956        crate::common::RegisterField::<
14957            6,
14958            0x1,
14959            1,
14960            0,
14961            p40pfs::Ncodr,
14962            p40pfs::Ncodr,
14963            P40Pfs_SPEC,
14964            crate::common::RW,
14965        >::from_register(self, 0)
14966    }
14967
14968    #[doc = "Event on Falling/Event on Rising"]
14969    #[inline(always)]
14970    pub fn eofr(
14971        self,
14972    ) -> crate::common::RegisterField<
14973        12,
14974        0x3,
14975        1,
14976        0,
14977        p40pfs::Eofr,
14978        p40pfs::Eofr,
14979        P40Pfs_SPEC,
14980        crate::common::RW,
14981    > {
14982        crate::common::RegisterField::<
14983            12,
14984            0x3,
14985            1,
14986            0,
14987            p40pfs::Eofr,
14988            p40pfs::Eofr,
14989            P40Pfs_SPEC,
14990            crate::common::RW,
14991        >::from_register(self, 0)
14992    }
14993
14994    #[doc = "IRQ Input Enable"]
14995    #[inline(always)]
14996    pub fn isel(
14997        self,
14998    ) -> crate::common::RegisterField<
14999        14,
15000        0x1,
15001        1,
15002        0,
15003        p40pfs::Isel,
15004        p40pfs::Isel,
15005        P40Pfs_SPEC,
15006        crate::common::RW,
15007    > {
15008        crate::common::RegisterField::<
15009            14,
15010            0x1,
15011            1,
15012            0,
15013            p40pfs::Isel,
15014            p40pfs::Isel,
15015            P40Pfs_SPEC,
15016            crate::common::RW,
15017        >::from_register(self, 0)
15018    }
15019
15020    #[doc = "Analog Input Enable"]
15021    #[inline(always)]
15022    pub fn asel(
15023        self,
15024    ) -> crate::common::RegisterField<
15025        15,
15026        0x1,
15027        1,
15028        0,
15029        p40pfs::Asel,
15030        p40pfs::Asel,
15031        P40Pfs_SPEC,
15032        crate::common::RW,
15033    > {
15034        crate::common::RegisterField::<
15035            15,
15036            0x1,
15037            1,
15038            0,
15039            p40pfs::Asel,
15040            p40pfs::Asel,
15041            P40Pfs_SPEC,
15042            crate::common::RW,
15043        >::from_register(self, 0)
15044    }
15045
15046    #[doc = "Port Mode Control"]
15047    #[inline(always)]
15048    pub fn pmr(
15049        self,
15050    ) -> crate::common::RegisterField<
15051        16,
15052        0x1,
15053        1,
15054        0,
15055        p40pfs::Pmr,
15056        p40pfs::Pmr,
15057        P40Pfs_SPEC,
15058        crate::common::RW,
15059    > {
15060        crate::common::RegisterField::<
15061            16,
15062            0x1,
15063            1,
15064            0,
15065            p40pfs::Pmr,
15066            p40pfs::Pmr,
15067            P40Pfs_SPEC,
15068            crate::common::RW,
15069        >::from_register(self, 0)
15070    }
15071
15072    #[doc = "Peripheral Select"]
15073    #[inline(always)]
15074    pub fn psel(
15075        self,
15076    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
15077        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
15078    }
15079}
15080impl ::core::default::Default for P40Pfs {
15081    #[inline(always)]
15082    fn default() -> P40Pfs {
15083        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
15084    }
15085}
15086pub mod p40pfs {
15087
15088    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15089    pub struct Podr_SPEC;
15090    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15091    impl Podr {
15092        #[doc = "Output low"]
15093        pub const _0: Self = Self::new(0);
15094
15095        #[doc = "Output high"]
15096        pub const _1: Self = Self::new(1);
15097    }
15098    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15099    pub struct Pidr_SPEC;
15100    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15101    impl Pidr {
15102        #[doc = "Low level"]
15103        pub const _0: Self = Self::new(0);
15104
15105        #[doc = "High level"]
15106        pub const _1: Self = Self::new(1);
15107    }
15108    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15109    pub struct Pdr_SPEC;
15110    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15111    impl Pdr {
15112        #[doc = "Input (functions as an input pin)"]
15113        pub const _0: Self = Self::new(0);
15114
15115        #[doc = "Output (functions as an output pin)"]
15116        pub const _1: Self = Self::new(1);
15117    }
15118    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15119    pub struct Pcr_SPEC;
15120    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15121    impl Pcr {
15122        #[doc = "Disable input pull-up"]
15123        pub const _0: Self = Self::new(0);
15124
15125        #[doc = "Enable input pull-up"]
15126        pub const _1: Self = Self::new(1);
15127    }
15128    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15129    pub struct Ncodr_SPEC;
15130    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15131    impl Ncodr {
15132        #[doc = "Output CMOS"]
15133        pub const _0: Self = Self::new(0);
15134
15135        #[doc = "Output NMOS open-drain"]
15136        pub const _1: Self = Self::new(1);
15137    }
15138    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15139    pub struct Eofr_SPEC;
15140    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
15141    impl Eofr {
15142        #[doc = "Don\'t care"]
15143        pub const _00: Self = Self::new(0);
15144
15145        #[doc = "Detect rising edge"]
15146        pub const _01: Self = Self::new(1);
15147
15148        #[doc = "Detect falling edge"]
15149        pub const _10: Self = Self::new(2);
15150
15151        #[doc = "Detect both edges"]
15152        pub const _11: Self = Self::new(3);
15153    }
15154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15155    pub struct Isel_SPEC;
15156    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15157    impl Isel {
15158        #[doc = "Do not use as IRQn input pin"]
15159        pub const _0: Self = Self::new(0);
15160
15161        #[doc = "Use as IRQn input pin"]
15162        pub const _1: Self = Self::new(1);
15163    }
15164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15165    pub struct Asel_SPEC;
15166    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15167    impl Asel {
15168        #[doc = "Do not use as analog pin"]
15169        pub const _0: Self = Self::new(0);
15170
15171        #[doc = "Use as analog pin"]
15172        pub const _1: Self = Self::new(1);
15173    }
15174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15175    pub struct Pmr_SPEC;
15176    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15177    impl Pmr {
15178        #[doc = "Use as general I/O pin"]
15179        pub const _0: Self = Self::new(0);
15180
15181        #[doc = "Use as I/O port for peripheral functions"]
15182        pub const _1: Self = Self::new(1);
15183    }
15184}
15185#[doc(hidden)]
15186#[derive(Copy, Clone, Eq, PartialEq)]
15187pub struct P40PfsHa_SPEC;
15188impl crate::sealed::RegSpec for P40PfsHa_SPEC {
15189    type DataType = u16;
15190}
15191
15192#[doc = "Port 40%s Pin Function Select Register"]
15193pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
15194
15195impl P40PfsHa {
15196    #[doc = "Port Output Data"]
15197    #[inline(always)]
15198    pub fn podr(
15199        self,
15200    ) -> crate::common::RegisterField<
15201        0,
15202        0x1,
15203        1,
15204        0,
15205        p40pfs_ha::Podr,
15206        p40pfs_ha::Podr,
15207        P40PfsHa_SPEC,
15208        crate::common::RW,
15209    > {
15210        crate::common::RegisterField::<
15211            0,
15212            0x1,
15213            1,
15214            0,
15215            p40pfs_ha::Podr,
15216            p40pfs_ha::Podr,
15217            P40PfsHa_SPEC,
15218            crate::common::RW,
15219        >::from_register(self, 0)
15220    }
15221
15222    #[doc = "Port State"]
15223    #[inline(always)]
15224    pub fn pidr(
15225        self,
15226    ) -> crate::common::RegisterField<
15227        1,
15228        0x1,
15229        1,
15230        0,
15231        p40pfs_ha::Pidr,
15232        p40pfs_ha::Pidr,
15233        P40PfsHa_SPEC,
15234        crate::common::R,
15235    > {
15236        crate::common::RegisterField::<
15237            1,
15238            0x1,
15239            1,
15240            0,
15241            p40pfs_ha::Pidr,
15242            p40pfs_ha::Pidr,
15243            P40PfsHa_SPEC,
15244            crate::common::R,
15245        >::from_register(self, 0)
15246    }
15247
15248    #[doc = "Port Direction"]
15249    #[inline(always)]
15250    pub fn pdr(
15251        self,
15252    ) -> crate::common::RegisterField<
15253        2,
15254        0x1,
15255        1,
15256        0,
15257        p40pfs_ha::Pdr,
15258        p40pfs_ha::Pdr,
15259        P40PfsHa_SPEC,
15260        crate::common::RW,
15261    > {
15262        crate::common::RegisterField::<
15263            2,
15264            0x1,
15265            1,
15266            0,
15267            p40pfs_ha::Pdr,
15268            p40pfs_ha::Pdr,
15269            P40PfsHa_SPEC,
15270            crate::common::RW,
15271        >::from_register(self, 0)
15272    }
15273
15274    #[doc = "Pull-up Control"]
15275    #[inline(always)]
15276    pub fn pcr(
15277        self,
15278    ) -> crate::common::RegisterField<
15279        4,
15280        0x1,
15281        1,
15282        0,
15283        p40pfs_ha::Pcr,
15284        p40pfs_ha::Pcr,
15285        P40PfsHa_SPEC,
15286        crate::common::RW,
15287    > {
15288        crate::common::RegisterField::<
15289            4,
15290            0x1,
15291            1,
15292            0,
15293            p40pfs_ha::Pcr,
15294            p40pfs_ha::Pcr,
15295            P40PfsHa_SPEC,
15296            crate::common::RW,
15297        >::from_register(self, 0)
15298    }
15299
15300    #[doc = "N-Channel Open-Drain Control"]
15301    #[inline(always)]
15302    pub fn ncodr(
15303        self,
15304    ) -> crate::common::RegisterField<
15305        6,
15306        0x1,
15307        1,
15308        0,
15309        p40pfs_ha::Ncodr,
15310        p40pfs_ha::Ncodr,
15311        P40PfsHa_SPEC,
15312        crate::common::RW,
15313    > {
15314        crate::common::RegisterField::<
15315            6,
15316            0x1,
15317            1,
15318            0,
15319            p40pfs_ha::Ncodr,
15320            p40pfs_ha::Ncodr,
15321            P40PfsHa_SPEC,
15322            crate::common::RW,
15323        >::from_register(self, 0)
15324    }
15325
15326    #[doc = "Event on Falling/Event on Rising"]
15327    #[inline(always)]
15328    pub fn eofr(
15329        self,
15330    ) -> crate::common::RegisterField<
15331        12,
15332        0x3,
15333        1,
15334        0,
15335        p40pfs_ha::Eofr,
15336        p40pfs_ha::Eofr,
15337        P40PfsHa_SPEC,
15338        crate::common::RW,
15339    > {
15340        crate::common::RegisterField::<
15341            12,
15342            0x3,
15343            1,
15344            0,
15345            p40pfs_ha::Eofr,
15346            p40pfs_ha::Eofr,
15347            P40PfsHa_SPEC,
15348            crate::common::RW,
15349        >::from_register(self, 0)
15350    }
15351
15352    #[doc = "IRQ Input Enable"]
15353    #[inline(always)]
15354    pub fn isel(
15355        self,
15356    ) -> crate::common::RegisterField<
15357        14,
15358        0x1,
15359        1,
15360        0,
15361        p40pfs_ha::Isel,
15362        p40pfs_ha::Isel,
15363        P40PfsHa_SPEC,
15364        crate::common::RW,
15365    > {
15366        crate::common::RegisterField::<
15367            14,
15368            0x1,
15369            1,
15370            0,
15371            p40pfs_ha::Isel,
15372            p40pfs_ha::Isel,
15373            P40PfsHa_SPEC,
15374            crate::common::RW,
15375        >::from_register(self, 0)
15376    }
15377
15378    #[doc = "Analog Input Enable"]
15379    #[inline(always)]
15380    pub fn asel(
15381        self,
15382    ) -> crate::common::RegisterField<
15383        15,
15384        0x1,
15385        1,
15386        0,
15387        p40pfs_ha::Asel,
15388        p40pfs_ha::Asel,
15389        P40PfsHa_SPEC,
15390        crate::common::RW,
15391    > {
15392        crate::common::RegisterField::<
15393            15,
15394            0x1,
15395            1,
15396            0,
15397            p40pfs_ha::Asel,
15398            p40pfs_ha::Asel,
15399            P40PfsHa_SPEC,
15400            crate::common::RW,
15401        >::from_register(self, 0)
15402    }
15403}
15404impl ::core::default::Default for P40PfsHa {
15405    #[inline(always)]
15406    fn default() -> P40PfsHa {
15407        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
15408    }
15409}
15410pub mod p40pfs_ha {
15411
15412    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15413    pub struct Podr_SPEC;
15414    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15415    impl Podr {
15416        #[doc = "Output low"]
15417        pub const _0: Self = Self::new(0);
15418
15419        #[doc = "Output high"]
15420        pub const _1: Self = Self::new(1);
15421    }
15422    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15423    pub struct Pidr_SPEC;
15424    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15425    impl Pidr {
15426        #[doc = "Low level"]
15427        pub const _0: Self = Self::new(0);
15428
15429        #[doc = "High level"]
15430        pub const _1: Self = Self::new(1);
15431    }
15432    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15433    pub struct Pdr_SPEC;
15434    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15435    impl Pdr {
15436        #[doc = "Input (functions as an input pin)"]
15437        pub const _0: Self = Self::new(0);
15438
15439        #[doc = "Output (functions as an output pin)"]
15440        pub const _1: Self = Self::new(1);
15441    }
15442    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15443    pub struct Pcr_SPEC;
15444    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15445    impl Pcr {
15446        #[doc = "Disable input pull-up"]
15447        pub const _0: Self = Self::new(0);
15448
15449        #[doc = "Enable input pull-up"]
15450        pub const _1: Self = Self::new(1);
15451    }
15452    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15453    pub struct Ncodr_SPEC;
15454    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15455    impl Ncodr {
15456        #[doc = "Output CMOS"]
15457        pub const _0: Self = Self::new(0);
15458
15459        #[doc = "Output NMOS open-drain"]
15460        pub const _1: Self = Self::new(1);
15461    }
15462    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15463    pub struct Eofr_SPEC;
15464    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
15465    impl Eofr {
15466        #[doc = "Don\'t care"]
15467        pub const _00: Self = Self::new(0);
15468
15469        #[doc = "Detect rising edge"]
15470        pub const _01: Self = Self::new(1);
15471
15472        #[doc = "Detect falling edge"]
15473        pub const _10: Self = Self::new(2);
15474
15475        #[doc = "Detect both edges"]
15476        pub const _11: Self = Self::new(3);
15477    }
15478    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15479    pub struct Isel_SPEC;
15480    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15481    impl Isel {
15482        #[doc = "Do not use as IRQn input pin"]
15483        pub const _0: Self = Self::new(0);
15484
15485        #[doc = "Use as IRQn input pin"]
15486        pub const _1: Self = Self::new(1);
15487    }
15488    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15489    pub struct Asel_SPEC;
15490    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15491    impl Asel {
15492        #[doc = "Do not use as analog pin"]
15493        pub const _0: Self = Self::new(0);
15494
15495        #[doc = "Use as analog pin"]
15496        pub const _1: Self = Self::new(1);
15497    }
15498}
15499#[doc(hidden)]
15500#[derive(Copy, Clone, Eq, PartialEq)]
15501pub struct P40PfsBy_SPEC;
15502impl crate::sealed::RegSpec for P40PfsBy_SPEC {
15503    type DataType = u8;
15504}
15505
15506#[doc = "Port 40%s Pin Function Select Register"]
15507pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
15508
15509impl P40PfsBy {
15510    #[doc = "Port Output Data"]
15511    #[inline(always)]
15512    pub fn podr(
15513        self,
15514    ) -> crate::common::RegisterField<
15515        0,
15516        0x1,
15517        1,
15518        0,
15519        p40pfs_by::Podr,
15520        p40pfs_by::Podr,
15521        P40PfsBy_SPEC,
15522        crate::common::RW,
15523    > {
15524        crate::common::RegisterField::<
15525            0,
15526            0x1,
15527            1,
15528            0,
15529            p40pfs_by::Podr,
15530            p40pfs_by::Podr,
15531            P40PfsBy_SPEC,
15532            crate::common::RW,
15533        >::from_register(self, 0)
15534    }
15535
15536    #[doc = "Port State"]
15537    #[inline(always)]
15538    pub fn pidr(
15539        self,
15540    ) -> crate::common::RegisterField<
15541        1,
15542        0x1,
15543        1,
15544        0,
15545        p40pfs_by::Pidr,
15546        p40pfs_by::Pidr,
15547        P40PfsBy_SPEC,
15548        crate::common::R,
15549    > {
15550        crate::common::RegisterField::<
15551            1,
15552            0x1,
15553            1,
15554            0,
15555            p40pfs_by::Pidr,
15556            p40pfs_by::Pidr,
15557            P40PfsBy_SPEC,
15558            crate::common::R,
15559        >::from_register(self, 0)
15560    }
15561
15562    #[doc = "Port Direction"]
15563    #[inline(always)]
15564    pub fn pdr(
15565        self,
15566    ) -> crate::common::RegisterField<
15567        2,
15568        0x1,
15569        1,
15570        0,
15571        p40pfs_by::Pdr,
15572        p40pfs_by::Pdr,
15573        P40PfsBy_SPEC,
15574        crate::common::RW,
15575    > {
15576        crate::common::RegisterField::<
15577            2,
15578            0x1,
15579            1,
15580            0,
15581            p40pfs_by::Pdr,
15582            p40pfs_by::Pdr,
15583            P40PfsBy_SPEC,
15584            crate::common::RW,
15585        >::from_register(self, 0)
15586    }
15587
15588    #[doc = "Pull-up Control"]
15589    #[inline(always)]
15590    pub fn pcr(
15591        self,
15592    ) -> crate::common::RegisterField<
15593        4,
15594        0x1,
15595        1,
15596        0,
15597        p40pfs_by::Pcr,
15598        p40pfs_by::Pcr,
15599        P40PfsBy_SPEC,
15600        crate::common::RW,
15601    > {
15602        crate::common::RegisterField::<
15603            4,
15604            0x1,
15605            1,
15606            0,
15607            p40pfs_by::Pcr,
15608            p40pfs_by::Pcr,
15609            P40PfsBy_SPEC,
15610            crate::common::RW,
15611        >::from_register(self, 0)
15612    }
15613
15614    #[doc = "N-Channel Open-Drain Control"]
15615    #[inline(always)]
15616    pub fn ncodr(
15617        self,
15618    ) -> crate::common::RegisterField<
15619        6,
15620        0x1,
15621        1,
15622        0,
15623        p40pfs_by::Ncodr,
15624        p40pfs_by::Ncodr,
15625        P40PfsBy_SPEC,
15626        crate::common::RW,
15627    > {
15628        crate::common::RegisterField::<
15629            6,
15630            0x1,
15631            1,
15632            0,
15633            p40pfs_by::Ncodr,
15634            p40pfs_by::Ncodr,
15635            P40PfsBy_SPEC,
15636            crate::common::RW,
15637        >::from_register(self, 0)
15638    }
15639}
15640impl ::core::default::Default for P40PfsBy {
15641    #[inline(always)]
15642    fn default() -> P40PfsBy {
15643        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
15644    }
15645}
15646pub mod p40pfs_by {
15647
15648    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15649    pub struct Podr_SPEC;
15650    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15651    impl Podr {
15652        #[doc = "Output low"]
15653        pub const _0: Self = Self::new(0);
15654
15655        #[doc = "Output high"]
15656        pub const _1: Self = Self::new(1);
15657    }
15658    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15659    pub struct Pidr_SPEC;
15660    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15661    impl Pidr {
15662        #[doc = "Low level"]
15663        pub const _0: Self = Self::new(0);
15664
15665        #[doc = "High level"]
15666        pub const _1: Self = Self::new(1);
15667    }
15668    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15669    pub struct Pdr_SPEC;
15670    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15671    impl Pdr {
15672        #[doc = "Input (functions as an input pin)"]
15673        pub const _0: Self = Self::new(0);
15674
15675        #[doc = "Output (functions as an output pin)"]
15676        pub const _1: Self = Self::new(1);
15677    }
15678    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15679    pub struct Pcr_SPEC;
15680    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15681    impl Pcr {
15682        #[doc = "Disable input pull-up"]
15683        pub const _0: Self = Self::new(0);
15684
15685        #[doc = "Enable input pull-up"]
15686        pub const _1: Self = Self::new(1);
15687    }
15688    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15689    pub struct Ncodr_SPEC;
15690    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15691    impl Ncodr {
15692        #[doc = "Output CMOS"]
15693        pub const _0: Self = Self::new(0);
15694
15695        #[doc = "Output NMOS open-drain"]
15696        pub const _1: Self = Self::new(1);
15697    }
15698}
15699#[doc(hidden)]
15700#[derive(Copy, Clone, Eq, PartialEq)]
15701pub struct P4Pfs_SPEC;
15702impl crate::sealed::RegSpec for P4Pfs_SPEC {
15703    type DataType = u32;
15704}
15705
15706#[doc = "Port 4%s Pin Function Select Register"]
15707pub type P4Pfs = crate::RegValueT<P4Pfs_SPEC>;
15708
15709impl P4Pfs {
15710    #[doc = "Port Output Data"]
15711    #[inline(always)]
15712    pub fn podr(
15713        self,
15714    ) -> crate::common::RegisterField<
15715        0,
15716        0x1,
15717        1,
15718        0,
15719        p4pfs::Podr,
15720        p4pfs::Podr,
15721        P4Pfs_SPEC,
15722        crate::common::RW,
15723    > {
15724        crate::common::RegisterField::<
15725            0,
15726            0x1,
15727            1,
15728            0,
15729            p4pfs::Podr,
15730            p4pfs::Podr,
15731            P4Pfs_SPEC,
15732            crate::common::RW,
15733        >::from_register(self, 0)
15734    }
15735
15736    #[doc = "Port State"]
15737    #[inline(always)]
15738    pub fn pidr(
15739        self,
15740    ) -> crate::common::RegisterField<
15741        1,
15742        0x1,
15743        1,
15744        0,
15745        p4pfs::Pidr,
15746        p4pfs::Pidr,
15747        P4Pfs_SPEC,
15748        crate::common::R,
15749    > {
15750        crate::common::RegisterField::<
15751            1,
15752            0x1,
15753            1,
15754            0,
15755            p4pfs::Pidr,
15756            p4pfs::Pidr,
15757            P4Pfs_SPEC,
15758            crate::common::R,
15759        >::from_register(self, 0)
15760    }
15761
15762    #[doc = "Port Direction"]
15763    #[inline(always)]
15764    pub fn pdr(
15765        self,
15766    ) -> crate::common::RegisterField<
15767        2,
15768        0x1,
15769        1,
15770        0,
15771        p4pfs::Pdr,
15772        p4pfs::Pdr,
15773        P4Pfs_SPEC,
15774        crate::common::RW,
15775    > {
15776        crate::common::RegisterField::<
15777            2,
15778            0x1,
15779            1,
15780            0,
15781            p4pfs::Pdr,
15782            p4pfs::Pdr,
15783            P4Pfs_SPEC,
15784            crate::common::RW,
15785        >::from_register(self, 0)
15786    }
15787
15788    #[doc = "Pull-up Control"]
15789    #[inline(always)]
15790    pub fn pcr(
15791        self,
15792    ) -> crate::common::RegisterField<
15793        4,
15794        0x1,
15795        1,
15796        0,
15797        p4pfs::Pcr,
15798        p4pfs::Pcr,
15799        P4Pfs_SPEC,
15800        crate::common::RW,
15801    > {
15802        crate::common::RegisterField::<
15803            4,
15804            0x1,
15805            1,
15806            0,
15807            p4pfs::Pcr,
15808            p4pfs::Pcr,
15809            P4Pfs_SPEC,
15810            crate::common::RW,
15811        >::from_register(self, 0)
15812    }
15813
15814    #[doc = "N-Channel Open-Drain Control"]
15815    #[inline(always)]
15816    pub fn ncodr(
15817        self,
15818    ) -> crate::common::RegisterField<
15819        6,
15820        0x1,
15821        1,
15822        0,
15823        p4pfs::Ncodr,
15824        p4pfs::Ncodr,
15825        P4Pfs_SPEC,
15826        crate::common::RW,
15827    > {
15828        crate::common::RegisterField::<
15829            6,
15830            0x1,
15831            1,
15832            0,
15833            p4pfs::Ncodr,
15834            p4pfs::Ncodr,
15835            P4Pfs_SPEC,
15836            crate::common::RW,
15837        >::from_register(self, 0)
15838    }
15839
15840    #[doc = "Event on Falling/Event on Rising"]
15841    #[inline(always)]
15842    pub fn eofr(
15843        self,
15844    ) -> crate::common::RegisterField<
15845        12,
15846        0x3,
15847        1,
15848        0,
15849        p4pfs::Eofr,
15850        p4pfs::Eofr,
15851        P4Pfs_SPEC,
15852        crate::common::RW,
15853    > {
15854        crate::common::RegisterField::<
15855            12,
15856            0x3,
15857            1,
15858            0,
15859            p4pfs::Eofr,
15860            p4pfs::Eofr,
15861            P4Pfs_SPEC,
15862            crate::common::RW,
15863        >::from_register(self, 0)
15864    }
15865
15866    #[doc = "IRQ Input Enable"]
15867    #[inline(always)]
15868    pub fn isel(
15869        self,
15870    ) -> crate::common::RegisterField<
15871        14,
15872        0x1,
15873        1,
15874        0,
15875        p4pfs::Isel,
15876        p4pfs::Isel,
15877        P4Pfs_SPEC,
15878        crate::common::RW,
15879    > {
15880        crate::common::RegisterField::<
15881            14,
15882            0x1,
15883            1,
15884            0,
15885            p4pfs::Isel,
15886            p4pfs::Isel,
15887            P4Pfs_SPEC,
15888            crate::common::RW,
15889        >::from_register(self, 0)
15890    }
15891
15892    #[doc = "Analog Input Enable"]
15893    #[inline(always)]
15894    pub fn asel(
15895        self,
15896    ) -> crate::common::RegisterField<
15897        15,
15898        0x1,
15899        1,
15900        0,
15901        p4pfs::Asel,
15902        p4pfs::Asel,
15903        P4Pfs_SPEC,
15904        crate::common::RW,
15905    > {
15906        crate::common::RegisterField::<
15907            15,
15908            0x1,
15909            1,
15910            0,
15911            p4pfs::Asel,
15912            p4pfs::Asel,
15913            P4Pfs_SPEC,
15914            crate::common::RW,
15915        >::from_register(self, 0)
15916    }
15917
15918    #[doc = "Port Mode Control"]
15919    #[inline(always)]
15920    pub fn pmr(
15921        self,
15922    ) -> crate::common::RegisterField<
15923        16,
15924        0x1,
15925        1,
15926        0,
15927        p4pfs::Pmr,
15928        p4pfs::Pmr,
15929        P4Pfs_SPEC,
15930        crate::common::RW,
15931    > {
15932        crate::common::RegisterField::<
15933            16,
15934            0x1,
15935            1,
15936            0,
15937            p4pfs::Pmr,
15938            p4pfs::Pmr,
15939            P4Pfs_SPEC,
15940            crate::common::RW,
15941        >::from_register(self, 0)
15942    }
15943
15944    #[doc = "Peripheral Select"]
15945    #[inline(always)]
15946    pub fn psel(
15947        self,
15948    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P4Pfs_SPEC, crate::common::RW> {
15949        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P4Pfs_SPEC,crate::common::RW>::from_register(self,0)
15950    }
15951}
15952impl ::core::default::Default for P4Pfs {
15953    #[inline(always)]
15954    fn default() -> P4Pfs {
15955        <crate::RegValueT<P4Pfs_SPEC> as RegisterValue<_>>::new(0)
15956    }
15957}
15958pub mod p4pfs {
15959
15960    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15961    pub struct Podr_SPEC;
15962    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15963    impl Podr {
15964        #[doc = "Output low"]
15965        pub const _0: Self = Self::new(0);
15966
15967        #[doc = "Output high"]
15968        pub const _1: Self = Self::new(1);
15969    }
15970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15971    pub struct Pidr_SPEC;
15972    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15973    impl Pidr {
15974        #[doc = "Low level"]
15975        pub const _0: Self = Self::new(0);
15976
15977        #[doc = "High level"]
15978        pub const _1: Self = Self::new(1);
15979    }
15980    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15981    pub struct Pdr_SPEC;
15982    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15983    impl Pdr {
15984        #[doc = "Input (functions as an input pin)"]
15985        pub const _0: Self = Self::new(0);
15986
15987        #[doc = "Output (functions as an output pin)"]
15988        pub const _1: Self = Self::new(1);
15989    }
15990    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15991    pub struct Pcr_SPEC;
15992    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15993    impl Pcr {
15994        #[doc = "Disable input pull-up"]
15995        pub const _0: Self = Self::new(0);
15996
15997        #[doc = "Enable input pull-up"]
15998        pub const _1: Self = Self::new(1);
15999    }
16000    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16001    pub struct Ncodr_SPEC;
16002    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16003    impl Ncodr {
16004        #[doc = "Output CMOS"]
16005        pub const _0: Self = Self::new(0);
16006
16007        #[doc = "Output NMOS open-drain"]
16008        pub const _1: Self = Self::new(1);
16009    }
16010    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16011    pub struct Eofr_SPEC;
16012    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
16013    impl Eofr {
16014        #[doc = "Don\'t care"]
16015        pub const _00: Self = Self::new(0);
16016
16017        #[doc = "Detect rising edge"]
16018        pub const _01: Self = Self::new(1);
16019
16020        #[doc = "Detect falling edge"]
16021        pub const _10: Self = Self::new(2);
16022
16023        #[doc = "Detect both edges"]
16024        pub const _11: Self = Self::new(3);
16025    }
16026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16027    pub struct Isel_SPEC;
16028    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16029    impl Isel {
16030        #[doc = "Do not use as IRQn input pin"]
16031        pub const _0: Self = Self::new(0);
16032
16033        #[doc = "Use as IRQn input pin"]
16034        pub const _1: Self = Self::new(1);
16035    }
16036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16037    pub struct Asel_SPEC;
16038    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16039    impl Asel {
16040        #[doc = "Do not use as analog pin"]
16041        pub const _0: Self = Self::new(0);
16042
16043        #[doc = "Use as analog pin"]
16044        pub const _1: Self = Self::new(1);
16045    }
16046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16047    pub struct Pmr_SPEC;
16048    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
16049    impl Pmr {
16050        #[doc = "Use as general I/O pin"]
16051        pub const _0: Self = Self::new(0);
16052
16053        #[doc = "Use as I/O port for peripheral functions"]
16054        pub const _1: Self = Self::new(1);
16055    }
16056}
16057#[doc(hidden)]
16058#[derive(Copy, Clone, Eq, PartialEq)]
16059pub struct P4PfsHa_SPEC;
16060impl crate::sealed::RegSpec for P4PfsHa_SPEC {
16061    type DataType = u16;
16062}
16063
16064#[doc = "Port 4%s Pin Function Select Register"]
16065pub type P4PfsHa = crate::RegValueT<P4PfsHa_SPEC>;
16066
16067impl P4PfsHa {
16068    #[doc = "Port Output Data"]
16069    #[inline(always)]
16070    pub fn podr(
16071        self,
16072    ) -> crate::common::RegisterField<
16073        0,
16074        0x1,
16075        1,
16076        0,
16077        p4pfs_ha::Podr,
16078        p4pfs_ha::Podr,
16079        P4PfsHa_SPEC,
16080        crate::common::RW,
16081    > {
16082        crate::common::RegisterField::<
16083            0,
16084            0x1,
16085            1,
16086            0,
16087            p4pfs_ha::Podr,
16088            p4pfs_ha::Podr,
16089            P4PfsHa_SPEC,
16090            crate::common::RW,
16091        >::from_register(self, 0)
16092    }
16093
16094    #[doc = "Port State"]
16095    #[inline(always)]
16096    pub fn pidr(
16097        self,
16098    ) -> crate::common::RegisterField<
16099        1,
16100        0x1,
16101        1,
16102        0,
16103        p4pfs_ha::Pidr,
16104        p4pfs_ha::Pidr,
16105        P4PfsHa_SPEC,
16106        crate::common::R,
16107    > {
16108        crate::common::RegisterField::<
16109            1,
16110            0x1,
16111            1,
16112            0,
16113            p4pfs_ha::Pidr,
16114            p4pfs_ha::Pidr,
16115            P4PfsHa_SPEC,
16116            crate::common::R,
16117        >::from_register(self, 0)
16118    }
16119
16120    #[doc = "Port Direction"]
16121    #[inline(always)]
16122    pub fn pdr(
16123        self,
16124    ) -> crate::common::RegisterField<
16125        2,
16126        0x1,
16127        1,
16128        0,
16129        p4pfs_ha::Pdr,
16130        p4pfs_ha::Pdr,
16131        P4PfsHa_SPEC,
16132        crate::common::RW,
16133    > {
16134        crate::common::RegisterField::<
16135            2,
16136            0x1,
16137            1,
16138            0,
16139            p4pfs_ha::Pdr,
16140            p4pfs_ha::Pdr,
16141            P4PfsHa_SPEC,
16142            crate::common::RW,
16143        >::from_register(self, 0)
16144    }
16145
16146    #[doc = "Pull-up Control"]
16147    #[inline(always)]
16148    pub fn pcr(
16149        self,
16150    ) -> crate::common::RegisterField<
16151        4,
16152        0x1,
16153        1,
16154        0,
16155        p4pfs_ha::Pcr,
16156        p4pfs_ha::Pcr,
16157        P4PfsHa_SPEC,
16158        crate::common::RW,
16159    > {
16160        crate::common::RegisterField::<
16161            4,
16162            0x1,
16163            1,
16164            0,
16165            p4pfs_ha::Pcr,
16166            p4pfs_ha::Pcr,
16167            P4PfsHa_SPEC,
16168            crate::common::RW,
16169        >::from_register(self, 0)
16170    }
16171
16172    #[doc = "N-Channel Open-Drain Control"]
16173    #[inline(always)]
16174    pub fn ncodr(
16175        self,
16176    ) -> crate::common::RegisterField<
16177        6,
16178        0x1,
16179        1,
16180        0,
16181        p4pfs_ha::Ncodr,
16182        p4pfs_ha::Ncodr,
16183        P4PfsHa_SPEC,
16184        crate::common::RW,
16185    > {
16186        crate::common::RegisterField::<
16187            6,
16188            0x1,
16189            1,
16190            0,
16191            p4pfs_ha::Ncodr,
16192            p4pfs_ha::Ncodr,
16193            P4PfsHa_SPEC,
16194            crate::common::RW,
16195        >::from_register(self, 0)
16196    }
16197
16198    #[doc = "Event on Falling/Event on Rising"]
16199    #[inline(always)]
16200    pub fn eofr(
16201        self,
16202    ) -> crate::common::RegisterField<
16203        12,
16204        0x3,
16205        1,
16206        0,
16207        p4pfs_ha::Eofr,
16208        p4pfs_ha::Eofr,
16209        P4PfsHa_SPEC,
16210        crate::common::RW,
16211    > {
16212        crate::common::RegisterField::<
16213            12,
16214            0x3,
16215            1,
16216            0,
16217            p4pfs_ha::Eofr,
16218            p4pfs_ha::Eofr,
16219            P4PfsHa_SPEC,
16220            crate::common::RW,
16221        >::from_register(self, 0)
16222    }
16223
16224    #[doc = "IRQ Input Enable"]
16225    #[inline(always)]
16226    pub fn isel(
16227        self,
16228    ) -> crate::common::RegisterField<
16229        14,
16230        0x1,
16231        1,
16232        0,
16233        p4pfs_ha::Isel,
16234        p4pfs_ha::Isel,
16235        P4PfsHa_SPEC,
16236        crate::common::RW,
16237    > {
16238        crate::common::RegisterField::<
16239            14,
16240            0x1,
16241            1,
16242            0,
16243            p4pfs_ha::Isel,
16244            p4pfs_ha::Isel,
16245            P4PfsHa_SPEC,
16246            crate::common::RW,
16247        >::from_register(self, 0)
16248    }
16249
16250    #[doc = "Analog Input Enable"]
16251    #[inline(always)]
16252    pub fn asel(
16253        self,
16254    ) -> crate::common::RegisterField<
16255        15,
16256        0x1,
16257        1,
16258        0,
16259        p4pfs_ha::Asel,
16260        p4pfs_ha::Asel,
16261        P4PfsHa_SPEC,
16262        crate::common::RW,
16263    > {
16264        crate::common::RegisterField::<
16265            15,
16266            0x1,
16267            1,
16268            0,
16269            p4pfs_ha::Asel,
16270            p4pfs_ha::Asel,
16271            P4PfsHa_SPEC,
16272            crate::common::RW,
16273        >::from_register(self, 0)
16274    }
16275}
16276impl ::core::default::Default for P4PfsHa {
16277    #[inline(always)]
16278    fn default() -> P4PfsHa {
16279        <crate::RegValueT<P4PfsHa_SPEC> as RegisterValue<_>>::new(0)
16280    }
16281}
16282pub mod p4pfs_ha {
16283
16284    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16285    pub struct Podr_SPEC;
16286    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16287    impl Podr {
16288        #[doc = "Output low"]
16289        pub const _0: Self = Self::new(0);
16290
16291        #[doc = "Output high"]
16292        pub const _1: Self = Self::new(1);
16293    }
16294    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16295    pub struct Pidr_SPEC;
16296    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16297    impl Pidr {
16298        #[doc = "Low level"]
16299        pub const _0: Self = Self::new(0);
16300
16301        #[doc = "High level"]
16302        pub const _1: Self = Self::new(1);
16303    }
16304    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16305    pub struct Pdr_SPEC;
16306    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16307    impl Pdr {
16308        #[doc = "Input (functions as an input pin)"]
16309        pub const _0: Self = Self::new(0);
16310
16311        #[doc = "Output (functions as an output pin)"]
16312        pub const _1: Self = Self::new(1);
16313    }
16314    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16315    pub struct Pcr_SPEC;
16316    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16317    impl Pcr {
16318        #[doc = "Disable input pull-up"]
16319        pub const _0: Self = Self::new(0);
16320
16321        #[doc = "Enable input pull-up"]
16322        pub const _1: Self = Self::new(1);
16323    }
16324    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16325    pub struct Ncodr_SPEC;
16326    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16327    impl Ncodr {
16328        #[doc = "Output CMOS"]
16329        pub const _0: Self = Self::new(0);
16330
16331        #[doc = "Output NMOS open-drain"]
16332        pub const _1: Self = Self::new(1);
16333    }
16334    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16335    pub struct Eofr_SPEC;
16336    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
16337    impl Eofr {
16338        #[doc = "Don\'t care"]
16339        pub const _00: Self = Self::new(0);
16340
16341        #[doc = "Detect rising edge"]
16342        pub const _01: Self = Self::new(1);
16343
16344        #[doc = "Detect falling edge"]
16345        pub const _10: Self = Self::new(2);
16346
16347        #[doc = "Detect both edges"]
16348        pub const _11: Self = Self::new(3);
16349    }
16350    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16351    pub struct Isel_SPEC;
16352    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16353    impl Isel {
16354        #[doc = "Do not use as IRQn input pin"]
16355        pub const _0: Self = Self::new(0);
16356
16357        #[doc = "Use as IRQn input pin"]
16358        pub const _1: Self = Self::new(1);
16359    }
16360    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16361    pub struct Asel_SPEC;
16362    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16363    impl Asel {
16364        #[doc = "Do not use as analog pin"]
16365        pub const _0: Self = Self::new(0);
16366
16367        #[doc = "Use as analog pin"]
16368        pub const _1: Self = Self::new(1);
16369    }
16370}
16371#[doc(hidden)]
16372#[derive(Copy, Clone, Eq, PartialEq)]
16373pub struct P4PfsBy_SPEC;
16374impl crate::sealed::RegSpec for P4PfsBy_SPEC {
16375    type DataType = u8;
16376}
16377
16378#[doc = "Port 4%s Pin Function Select Register"]
16379pub type P4PfsBy = crate::RegValueT<P4PfsBy_SPEC>;
16380
16381impl P4PfsBy {
16382    #[doc = "Port Output Data"]
16383    #[inline(always)]
16384    pub fn podr(
16385        self,
16386    ) -> crate::common::RegisterField<
16387        0,
16388        0x1,
16389        1,
16390        0,
16391        p4pfs_by::Podr,
16392        p4pfs_by::Podr,
16393        P4PfsBy_SPEC,
16394        crate::common::RW,
16395    > {
16396        crate::common::RegisterField::<
16397            0,
16398            0x1,
16399            1,
16400            0,
16401            p4pfs_by::Podr,
16402            p4pfs_by::Podr,
16403            P4PfsBy_SPEC,
16404            crate::common::RW,
16405        >::from_register(self, 0)
16406    }
16407
16408    #[doc = "Port State"]
16409    #[inline(always)]
16410    pub fn pidr(
16411        self,
16412    ) -> crate::common::RegisterField<
16413        1,
16414        0x1,
16415        1,
16416        0,
16417        p4pfs_by::Pidr,
16418        p4pfs_by::Pidr,
16419        P4PfsBy_SPEC,
16420        crate::common::R,
16421    > {
16422        crate::common::RegisterField::<
16423            1,
16424            0x1,
16425            1,
16426            0,
16427            p4pfs_by::Pidr,
16428            p4pfs_by::Pidr,
16429            P4PfsBy_SPEC,
16430            crate::common::R,
16431        >::from_register(self, 0)
16432    }
16433
16434    #[doc = "Port Direction"]
16435    #[inline(always)]
16436    pub fn pdr(
16437        self,
16438    ) -> crate::common::RegisterField<
16439        2,
16440        0x1,
16441        1,
16442        0,
16443        p4pfs_by::Pdr,
16444        p4pfs_by::Pdr,
16445        P4PfsBy_SPEC,
16446        crate::common::RW,
16447    > {
16448        crate::common::RegisterField::<
16449            2,
16450            0x1,
16451            1,
16452            0,
16453            p4pfs_by::Pdr,
16454            p4pfs_by::Pdr,
16455            P4PfsBy_SPEC,
16456            crate::common::RW,
16457        >::from_register(self, 0)
16458    }
16459
16460    #[doc = "Pull-up Control"]
16461    #[inline(always)]
16462    pub fn pcr(
16463        self,
16464    ) -> crate::common::RegisterField<
16465        4,
16466        0x1,
16467        1,
16468        0,
16469        p4pfs_by::Pcr,
16470        p4pfs_by::Pcr,
16471        P4PfsBy_SPEC,
16472        crate::common::RW,
16473    > {
16474        crate::common::RegisterField::<
16475            4,
16476            0x1,
16477            1,
16478            0,
16479            p4pfs_by::Pcr,
16480            p4pfs_by::Pcr,
16481            P4PfsBy_SPEC,
16482            crate::common::RW,
16483        >::from_register(self, 0)
16484    }
16485
16486    #[doc = "N-Channel Open-Drain Control"]
16487    #[inline(always)]
16488    pub fn ncodr(
16489        self,
16490    ) -> crate::common::RegisterField<
16491        6,
16492        0x1,
16493        1,
16494        0,
16495        p4pfs_by::Ncodr,
16496        p4pfs_by::Ncodr,
16497        P4PfsBy_SPEC,
16498        crate::common::RW,
16499    > {
16500        crate::common::RegisterField::<
16501            6,
16502            0x1,
16503            1,
16504            0,
16505            p4pfs_by::Ncodr,
16506            p4pfs_by::Ncodr,
16507            P4PfsBy_SPEC,
16508            crate::common::RW,
16509        >::from_register(self, 0)
16510    }
16511}
16512impl ::core::default::Default for P4PfsBy {
16513    #[inline(always)]
16514    fn default() -> P4PfsBy {
16515        <crate::RegValueT<P4PfsBy_SPEC> as RegisterValue<_>>::new(0)
16516    }
16517}
16518pub mod p4pfs_by {
16519
16520    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16521    pub struct Podr_SPEC;
16522    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16523    impl Podr {
16524        #[doc = "Output low"]
16525        pub const _0: Self = Self::new(0);
16526
16527        #[doc = "Output high"]
16528        pub const _1: Self = Self::new(1);
16529    }
16530    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16531    pub struct Pidr_SPEC;
16532    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16533    impl Pidr {
16534        #[doc = "Low level"]
16535        pub const _0: Self = Self::new(0);
16536
16537        #[doc = "High level"]
16538        pub const _1: Self = Self::new(1);
16539    }
16540    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16541    pub struct Pdr_SPEC;
16542    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16543    impl Pdr {
16544        #[doc = "Input (functions as an input pin)"]
16545        pub const _0: Self = Self::new(0);
16546
16547        #[doc = "Output (functions as an output pin)"]
16548        pub const _1: Self = Self::new(1);
16549    }
16550    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16551    pub struct Pcr_SPEC;
16552    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16553    impl Pcr {
16554        #[doc = "Disable input pull-up"]
16555        pub const _0: Self = Self::new(0);
16556
16557        #[doc = "Enable input pull-up"]
16558        pub const _1: Self = Self::new(1);
16559    }
16560    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16561    pub struct Ncodr_SPEC;
16562    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16563    impl Ncodr {
16564        #[doc = "Output CMOS"]
16565        pub const _0: Self = Self::new(0);
16566
16567        #[doc = "Output NMOS open-drain"]
16568        pub const _1: Self = Self::new(1);
16569    }
16570}
16571#[doc(hidden)]
16572#[derive(Copy, Clone, Eq, PartialEq)]
16573pub struct P50Pfs_SPEC;
16574impl crate::sealed::RegSpec for P50Pfs_SPEC {
16575    type DataType = u32;
16576}
16577
16578#[doc = "Port 50%s Pin Function Select Register"]
16579pub type P50Pfs = crate::RegValueT<P50Pfs_SPEC>;
16580
16581impl P50Pfs {
16582    #[doc = "Port Output Data"]
16583    #[inline(always)]
16584    pub fn podr(
16585        self,
16586    ) -> crate::common::RegisterField<
16587        0,
16588        0x1,
16589        1,
16590        0,
16591        p50pfs::Podr,
16592        p50pfs::Podr,
16593        P50Pfs_SPEC,
16594        crate::common::RW,
16595    > {
16596        crate::common::RegisterField::<
16597            0,
16598            0x1,
16599            1,
16600            0,
16601            p50pfs::Podr,
16602            p50pfs::Podr,
16603            P50Pfs_SPEC,
16604            crate::common::RW,
16605        >::from_register(self, 0)
16606    }
16607
16608    #[doc = "Port State"]
16609    #[inline(always)]
16610    pub fn pidr(
16611        self,
16612    ) -> crate::common::RegisterField<
16613        1,
16614        0x1,
16615        1,
16616        0,
16617        p50pfs::Pidr,
16618        p50pfs::Pidr,
16619        P50Pfs_SPEC,
16620        crate::common::R,
16621    > {
16622        crate::common::RegisterField::<
16623            1,
16624            0x1,
16625            1,
16626            0,
16627            p50pfs::Pidr,
16628            p50pfs::Pidr,
16629            P50Pfs_SPEC,
16630            crate::common::R,
16631        >::from_register(self, 0)
16632    }
16633
16634    #[doc = "Port Direction"]
16635    #[inline(always)]
16636    pub fn pdr(
16637        self,
16638    ) -> crate::common::RegisterField<
16639        2,
16640        0x1,
16641        1,
16642        0,
16643        p50pfs::Pdr,
16644        p50pfs::Pdr,
16645        P50Pfs_SPEC,
16646        crate::common::RW,
16647    > {
16648        crate::common::RegisterField::<
16649            2,
16650            0x1,
16651            1,
16652            0,
16653            p50pfs::Pdr,
16654            p50pfs::Pdr,
16655            P50Pfs_SPEC,
16656            crate::common::RW,
16657        >::from_register(self, 0)
16658    }
16659
16660    #[doc = "Pull-up Control"]
16661    #[inline(always)]
16662    pub fn pcr(
16663        self,
16664    ) -> crate::common::RegisterField<
16665        4,
16666        0x1,
16667        1,
16668        0,
16669        p50pfs::Pcr,
16670        p50pfs::Pcr,
16671        P50Pfs_SPEC,
16672        crate::common::RW,
16673    > {
16674        crate::common::RegisterField::<
16675            4,
16676            0x1,
16677            1,
16678            0,
16679            p50pfs::Pcr,
16680            p50pfs::Pcr,
16681            P50Pfs_SPEC,
16682            crate::common::RW,
16683        >::from_register(self, 0)
16684    }
16685
16686    #[doc = "N-Channel Open-Drain Control"]
16687    #[inline(always)]
16688    pub fn ncodr(
16689        self,
16690    ) -> crate::common::RegisterField<
16691        6,
16692        0x1,
16693        1,
16694        0,
16695        p50pfs::Ncodr,
16696        p50pfs::Ncodr,
16697        P50Pfs_SPEC,
16698        crate::common::RW,
16699    > {
16700        crate::common::RegisterField::<
16701            6,
16702            0x1,
16703            1,
16704            0,
16705            p50pfs::Ncodr,
16706            p50pfs::Ncodr,
16707            P50Pfs_SPEC,
16708            crate::common::RW,
16709        >::from_register(self, 0)
16710    }
16711
16712    #[doc = "IRQ Input Enable"]
16713    #[inline(always)]
16714    pub fn isel(
16715        self,
16716    ) -> crate::common::RegisterField<
16717        14,
16718        0x1,
16719        1,
16720        0,
16721        p50pfs::Isel,
16722        p50pfs::Isel,
16723        P50Pfs_SPEC,
16724        crate::common::RW,
16725    > {
16726        crate::common::RegisterField::<
16727            14,
16728            0x1,
16729            1,
16730            0,
16731            p50pfs::Isel,
16732            p50pfs::Isel,
16733            P50Pfs_SPEC,
16734            crate::common::RW,
16735        >::from_register(self, 0)
16736    }
16737
16738    #[doc = "Analog Input Enable"]
16739    #[inline(always)]
16740    pub fn asel(
16741        self,
16742    ) -> crate::common::RegisterField<
16743        15,
16744        0x1,
16745        1,
16746        0,
16747        p50pfs::Asel,
16748        p50pfs::Asel,
16749        P50Pfs_SPEC,
16750        crate::common::RW,
16751    > {
16752        crate::common::RegisterField::<
16753            15,
16754            0x1,
16755            1,
16756            0,
16757            p50pfs::Asel,
16758            p50pfs::Asel,
16759            P50Pfs_SPEC,
16760            crate::common::RW,
16761        >::from_register(self, 0)
16762    }
16763
16764    #[doc = "Port Mode Control"]
16765    #[inline(always)]
16766    pub fn pmr(
16767        self,
16768    ) -> crate::common::RegisterField<
16769        16,
16770        0x1,
16771        1,
16772        0,
16773        p50pfs::Pmr,
16774        p50pfs::Pmr,
16775        P50Pfs_SPEC,
16776        crate::common::RW,
16777    > {
16778        crate::common::RegisterField::<
16779            16,
16780            0x1,
16781            1,
16782            0,
16783            p50pfs::Pmr,
16784            p50pfs::Pmr,
16785            P50Pfs_SPEC,
16786            crate::common::RW,
16787        >::from_register(self, 0)
16788    }
16789
16790    #[doc = "Peripheral Select"]
16791    #[inline(always)]
16792    pub fn psel(
16793        self,
16794    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P50Pfs_SPEC, crate::common::RW> {
16795        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P50Pfs_SPEC,crate::common::RW>::from_register(self,0)
16796    }
16797}
16798impl ::core::default::Default for P50Pfs {
16799    #[inline(always)]
16800    fn default() -> P50Pfs {
16801        <crate::RegValueT<P50Pfs_SPEC> as RegisterValue<_>>::new(0)
16802    }
16803}
16804pub mod p50pfs {
16805
16806    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16807    pub struct Podr_SPEC;
16808    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16809    impl Podr {
16810        #[doc = "Output low"]
16811        pub const _0: Self = Self::new(0);
16812
16813        #[doc = "Output high"]
16814        pub const _1: Self = Self::new(1);
16815    }
16816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16817    pub struct Pidr_SPEC;
16818    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16819    impl Pidr {
16820        #[doc = "Low level"]
16821        pub const _0: Self = Self::new(0);
16822
16823        #[doc = "High level"]
16824        pub const _1: Self = Self::new(1);
16825    }
16826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16827    pub struct Pdr_SPEC;
16828    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16829    impl Pdr {
16830        #[doc = "Input (functions as an input pin)"]
16831        pub const _0: Self = Self::new(0);
16832
16833        #[doc = "Output (functions as an output pin)"]
16834        pub const _1: Self = Self::new(1);
16835    }
16836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16837    pub struct Pcr_SPEC;
16838    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16839    impl Pcr {
16840        #[doc = "Disable input pull-up"]
16841        pub const _0: Self = Self::new(0);
16842
16843        #[doc = "Enable input pull-up"]
16844        pub const _1: Self = Self::new(1);
16845    }
16846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16847    pub struct Ncodr_SPEC;
16848    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16849    impl Ncodr {
16850        #[doc = "Output CMOS"]
16851        pub const _0: Self = Self::new(0);
16852
16853        #[doc = "Output NMOS open-drain"]
16854        pub const _1: Self = Self::new(1);
16855    }
16856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16857    pub struct Isel_SPEC;
16858    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16859    impl Isel {
16860        #[doc = "Do not use as IRQn input pin"]
16861        pub const _0: Self = Self::new(0);
16862
16863        #[doc = "Use as IRQn input pin"]
16864        pub const _1: Self = Self::new(1);
16865    }
16866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16867    pub struct Asel_SPEC;
16868    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16869    impl Asel {
16870        #[doc = "Do not use as analog pin"]
16871        pub const _0: Self = Self::new(0);
16872
16873        #[doc = "Use as analog pin"]
16874        pub const _1: Self = Self::new(1);
16875    }
16876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16877    pub struct Pmr_SPEC;
16878    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
16879    impl Pmr {
16880        #[doc = "Use as general I/O pin"]
16881        pub const _0: Self = Self::new(0);
16882
16883        #[doc = "Use as I/O port for peripheral functions"]
16884        pub const _1: Self = Self::new(1);
16885    }
16886}
16887#[doc(hidden)]
16888#[derive(Copy, Clone, Eq, PartialEq)]
16889pub struct P50PfsHa_SPEC;
16890impl crate::sealed::RegSpec for P50PfsHa_SPEC {
16891    type DataType = u16;
16892}
16893
16894#[doc = "Port 50%s Pin Function Select Register"]
16895pub type P50PfsHa = crate::RegValueT<P50PfsHa_SPEC>;
16896
16897impl P50PfsHa {
16898    #[doc = "Port Output Data"]
16899    #[inline(always)]
16900    pub fn podr(
16901        self,
16902    ) -> crate::common::RegisterField<
16903        0,
16904        0x1,
16905        1,
16906        0,
16907        p50pfs_ha::Podr,
16908        p50pfs_ha::Podr,
16909        P50PfsHa_SPEC,
16910        crate::common::RW,
16911    > {
16912        crate::common::RegisterField::<
16913            0,
16914            0x1,
16915            1,
16916            0,
16917            p50pfs_ha::Podr,
16918            p50pfs_ha::Podr,
16919            P50PfsHa_SPEC,
16920            crate::common::RW,
16921        >::from_register(self, 0)
16922    }
16923
16924    #[doc = "Port State"]
16925    #[inline(always)]
16926    pub fn pidr(
16927        self,
16928    ) -> crate::common::RegisterField<
16929        1,
16930        0x1,
16931        1,
16932        0,
16933        p50pfs_ha::Pidr,
16934        p50pfs_ha::Pidr,
16935        P50PfsHa_SPEC,
16936        crate::common::R,
16937    > {
16938        crate::common::RegisterField::<
16939            1,
16940            0x1,
16941            1,
16942            0,
16943            p50pfs_ha::Pidr,
16944            p50pfs_ha::Pidr,
16945            P50PfsHa_SPEC,
16946            crate::common::R,
16947        >::from_register(self, 0)
16948    }
16949
16950    #[doc = "Port Direction"]
16951    #[inline(always)]
16952    pub fn pdr(
16953        self,
16954    ) -> crate::common::RegisterField<
16955        2,
16956        0x1,
16957        1,
16958        0,
16959        p50pfs_ha::Pdr,
16960        p50pfs_ha::Pdr,
16961        P50PfsHa_SPEC,
16962        crate::common::RW,
16963    > {
16964        crate::common::RegisterField::<
16965            2,
16966            0x1,
16967            1,
16968            0,
16969            p50pfs_ha::Pdr,
16970            p50pfs_ha::Pdr,
16971            P50PfsHa_SPEC,
16972            crate::common::RW,
16973        >::from_register(self, 0)
16974    }
16975
16976    #[doc = "Pull-up Control"]
16977    #[inline(always)]
16978    pub fn pcr(
16979        self,
16980    ) -> crate::common::RegisterField<
16981        4,
16982        0x1,
16983        1,
16984        0,
16985        p50pfs_ha::Pcr,
16986        p50pfs_ha::Pcr,
16987        P50PfsHa_SPEC,
16988        crate::common::RW,
16989    > {
16990        crate::common::RegisterField::<
16991            4,
16992            0x1,
16993            1,
16994            0,
16995            p50pfs_ha::Pcr,
16996            p50pfs_ha::Pcr,
16997            P50PfsHa_SPEC,
16998            crate::common::RW,
16999        >::from_register(self, 0)
17000    }
17001
17002    #[doc = "N-Channel Open-Drain Control"]
17003    #[inline(always)]
17004    pub fn ncodr(
17005        self,
17006    ) -> crate::common::RegisterField<
17007        6,
17008        0x1,
17009        1,
17010        0,
17011        p50pfs_ha::Ncodr,
17012        p50pfs_ha::Ncodr,
17013        P50PfsHa_SPEC,
17014        crate::common::RW,
17015    > {
17016        crate::common::RegisterField::<
17017            6,
17018            0x1,
17019            1,
17020            0,
17021            p50pfs_ha::Ncodr,
17022            p50pfs_ha::Ncodr,
17023            P50PfsHa_SPEC,
17024            crate::common::RW,
17025        >::from_register(self, 0)
17026    }
17027
17028    #[doc = "IRQ Input Enable"]
17029    #[inline(always)]
17030    pub fn isel(
17031        self,
17032    ) -> crate::common::RegisterField<
17033        14,
17034        0x1,
17035        1,
17036        0,
17037        p50pfs_ha::Isel,
17038        p50pfs_ha::Isel,
17039        P50PfsHa_SPEC,
17040        crate::common::RW,
17041    > {
17042        crate::common::RegisterField::<
17043            14,
17044            0x1,
17045            1,
17046            0,
17047            p50pfs_ha::Isel,
17048            p50pfs_ha::Isel,
17049            P50PfsHa_SPEC,
17050            crate::common::RW,
17051        >::from_register(self, 0)
17052    }
17053
17054    #[doc = "Analog Input Enable"]
17055    #[inline(always)]
17056    pub fn asel(
17057        self,
17058    ) -> crate::common::RegisterField<
17059        15,
17060        0x1,
17061        1,
17062        0,
17063        p50pfs_ha::Asel,
17064        p50pfs_ha::Asel,
17065        P50PfsHa_SPEC,
17066        crate::common::RW,
17067    > {
17068        crate::common::RegisterField::<
17069            15,
17070            0x1,
17071            1,
17072            0,
17073            p50pfs_ha::Asel,
17074            p50pfs_ha::Asel,
17075            P50PfsHa_SPEC,
17076            crate::common::RW,
17077        >::from_register(self, 0)
17078    }
17079}
17080impl ::core::default::Default for P50PfsHa {
17081    #[inline(always)]
17082    fn default() -> P50PfsHa {
17083        <crate::RegValueT<P50PfsHa_SPEC> as RegisterValue<_>>::new(0)
17084    }
17085}
17086pub mod p50pfs_ha {
17087
17088    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17089    pub struct Podr_SPEC;
17090    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17091    impl Podr {
17092        #[doc = "Output low"]
17093        pub const _0: Self = Self::new(0);
17094
17095        #[doc = "Output high"]
17096        pub const _1: Self = Self::new(1);
17097    }
17098    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17099    pub struct Pidr_SPEC;
17100    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17101    impl Pidr {
17102        #[doc = "Low level"]
17103        pub const _0: Self = Self::new(0);
17104
17105        #[doc = "High level"]
17106        pub const _1: Self = Self::new(1);
17107    }
17108    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17109    pub struct Pdr_SPEC;
17110    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17111    impl Pdr {
17112        #[doc = "Input (functions as an input pin)"]
17113        pub const _0: Self = Self::new(0);
17114
17115        #[doc = "Output (functions as an output pin)"]
17116        pub const _1: Self = Self::new(1);
17117    }
17118    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17119    pub struct Pcr_SPEC;
17120    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17121    impl Pcr {
17122        #[doc = "Disable input pull-up"]
17123        pub const _0: Self = Self::new(0);
17124
17125        #[doc = "Enable input pull-up"]
17126        pub const _1: Self = Self::new(1);
17127    }
17128    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17129    pub struct Ncodr_SPEC;
17130    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17131    impl Ncodr {
17132        #[doc = "Output CMOS"]
17133        pub const _0: Self = Self::new(0);
17134
17135        #[doc = "Output NMOS open-drain"]
17136        pub const _1: Self = Self::new(1);
17137    }
17138    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17139    pub struct Isel_SPEC;
17140    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17141    impl Isel {
17142        #[doc = "Do not use as IRQn input pin"]
17143        pub const _0: Self = Self::new(0);
17144
17145        #[doc = "Use as IRQn input pin"]
17146        pub const _1: Self = Self::new(1);
17147    }
17148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17149    pub struct Asel_SPEC;
17150    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17151    impl Asel {
17152        #[doc = "Do not use as analog pin"]
17153        pub const _0: Self = Self::new(0);
17154
17155        #[doc = "Use as analog pin"]
17156        pub const _1: Self = Self::new(1);
17157    }
17158}
17159#[doc(hidden)]
17160#[derive(Copy, Clone, Eq, PartialEq)]
17161pub struct P50PfsBy_SPEC;
17162impl crate::sealed::RegSpec for P50PfsBy_SPEC {
17163    type DataType = u8;
17164}
17165
17166#[doc = "Port 50%s Pin Function Select Register"]
17167pub type P50PfsBy = crate::RegValueT<P50PfsBy_SPEC>;
17168
17169impl P50PfsBy {
17170    #[doc = "Port Output Data"]
17171    #[inline(always)]
17172    pub fn podr(
17173        self,
17174    ) -> crate::common::RegisterField<
17175        0,
17176        0x1,
17177        1,
17178        0,
17179        p50pfs_by::Podr,
17180        p50pfs_by::Podr,
17181        P50PfsBy_SPEC,
17182        crate::common::RW,
17183    > {
17184        crate::common::RegisterField::<
17185            0,
17186            0x1,
17187            1,
17188            0,
17189            p50pfs_by::Podr,
17190            p50pfs_by::Podr,
17191            P50PfsBy_SPEC,
17192            crate::common::RW,
17193        >::from_register(self, 0)
17194    }
17195
17196    #[doc = "Port State"]
17197    #[inline(always)]
17198    pub fn pidr(
17199        self,
17200    ) -> crate::common::RegisterField<
17201        1,
17202        0x1,
17203        1,
17204        0,
17205        p50pfs_by::Pidr,
17206        p50pfs_by::Pidr,
17207        P50PfsBy_SPEC,
17208        crate::common::R,
17209    > {
17210        crate::common::RegisterField::<
17211            1,
17212            0x1,
17213            1,
17214            0,
17215            p50pfs_by::Pidr,
17216            p50pfs_by::Pidr,
17217            P50PfsBy_SPEC,
17218            crate::common::R,
17219        >::from_register(self, 0)
17220    }
17221
17222    #[doc = "Port Direction"]
17223    #[inline(always)]
17224    pub fn pdr(
17225        self,
17226    ) -> crate::common::RegisterField<
17227        2,
17228        0x1,
17229        1,
17230        0,
17231        p50pfs_by::Pdr,
17232        p50pfs_by::Pdr,
17233        P50PfsBy_SPEC,
17234        crate::common::RW,
17235    > {
17236        crate::common::RegisterField::<
17237            2,
17238            0x1,
17239            1,
17240            0,
17241            p50pfs_by::Pdr,
17242            p50pfs_by::Pdr,
17243            P50PfsBy_SPEC,
17244            crate::common::RW,
17245        >::from_register(self, 0)
17246    }
17247
17248    #[doc = "Pull-up Control"]
17249    #[inline(always)]
17250    pub fn pcr(
17251        self,
17252    ) -> crate::common::RegisterField<
17253        4,
17254        0x1,
17255        1,
17256        0,
17257        p50pfs_by::Pcr,
17258        p50pfs_by::Pcr,
17259        P50PfsBy_SPEC,
17260        crate::common::RW,
17261    > {
17262        crate::common::RegisterField::<
17263            4,
17264            0x1,
17265            1,
17266            0,
17267            p50pfs_by::Pcr,
17268            p50pfs_by::Pcr,
17269            P50PfsBy_SPEC,
17270            crate::common::RW,
17271        >::from_register(self, 0)
17272    }
17273
17274    #[doc = "N-Channel Open-Drain Control"]
17275    #[inline(always)]
17276    pub fn ncodr(
17277        self,
17278    ) -> crate::common::RegisterField<
17279        6,
17280        0x1,
17281        1,
17282        0,
17283        p50pfs_by::Ncodr,
17284        p50pfs_by::Ncodr,
17285        P50PfsBy_SPEC,
17286        crate::common::RW,
17287    > {
17288        crate::common::RegisterField::<
17289            6,
17290            0x1,
17291            1,
17292            0,
17293            p50pfs_by::Ncodr,
17294            p50pfs_by::Ncodr,
17295            P50PfsBy_SPEC,
17296            crate::common::RW,
17297        >::from_register(self, 0)
17298    }
17299}
17300impl ::core::default::Default for P50PfsBy {
17301    #[inline(always)]
17302    fn default() -> P50PfsBy {
17303        <crate::RegValueT<P50PfsBy_SPEC> as RegisterValue<_>>::new(0)
17304    }
17305}
17306pub mod p50pfs_by {
17307
17308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17309    pub struct Podr_SPEC;
17310    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17311    impl Podr {
17312        #[doc = "Output low"]
17313        pub const _0: Self = Self::new(0);
17314
17315        #[doc = "Output high"]
17316        pub const _1: Self = Self::new(1);
17317    }
17318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17319    pub struct Pidr_SPEC;
17320    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17321    impl Pidr {
17322        #[doc = "Low level"]
17323        pub const _0: Self = Self::new(0);
17324
17325        #[doc = "High level"]
17326        pub const _1: Self = Self::new(1);
17327    }
17328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17329    pub struct Pdr_SPEC;
17330    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17331    impl Pdr {
17332        #[doc = "Input (functions as an input pin)"]
17333        pub const _0: Self = Self::new(0);
17334
17335        #[doc = "Output (functions as an output pin)"]
17336        pub const _1: Self = Self::new(1);
17337    }
17338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17339    pub struct Pcr_SPEC;
17340    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17341    impl Pcr {
17342        #[doc = "Disable input pull-up"]
17343        pub const _0: Self = Self::new(0);
17344
17345        #[doc = "Enable input pull-up"]
17346        pub const _1: Self = Self::new(1);
17347    }
17348    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17349    pub struct Ncodr_SPEC;
17350    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17351    impl Ncodr {
17352        #[doc = "Output CMOS"]
17353        pub const _0: Self = Self::new(0);
17354
17355        #[doc = "Output NMOS open-drain"]
17356        pub const _1: Self = Self::new(1);
17357    }
17358}
17359#[doc(hidden)]
17360#[derive(Copy, Clone, Eq, PartialEq)]
17361pub struct P5Pfs_SPEC;
17362impl crate::sealed::RegSpec for P5Pfs_SPEC {
17363    type DataType = u32;
17364}
17365
17366#[doc = "Port 5%s Pin Function Select Register"]
17367pub type P5Pfs = crate::RegValueT<P5Pfs_SPEC>;
17368
17369impl P5Pfs {
17370    #[doc = "Port Output Data"]
17371    #[inline(always)]
17372    pub fn podr(
17373        self,
17374    ) -> crate::common::RegisterField<
17375        0,
17376        0x1,
17377        1,
17378        0,
17379        p5pfs::Podr,
17380        p5pfs::Podr,
17381        P5Pfs_SPEC,
17382        crate::common::RW,
17383    > {
17384        crate::common::RegisterField::<
17385            0,
17386            0x1,
17387            1,
17388            0,
17389            p5pfs::Podr,
17390            p5pfs::Podr,
17391            P5Pfs_SPEC,
17392            crate::common::RW,
17393        >::from_register(self, 0)
17394    }
17395
17396    #[doc = "Port State"]
17397    #[inline(always)]
17398    pub fn pidr(
17399        self,
17400    ) -> crate::common::RegisterField<
17401        1,
17402        0x1,
17403        1,
17404        0,
17405        p5pfs::Pidr,
17406        p5pfs::Pidr,
17407        P5Pfs_SPEC,
17408        crate::common::R,
17409    > {
17410        crate::common::RegisterField::<
17411            1,
17412            0x1,
17413            1,
17414            0,
17415            p5pfs::Pidr,
17416            p5pfs::Pidr,
17417            P5Pfs_SPEC,
17418            crate::common::R,
17419        >::from_register(self, 0)
17420    }
17421
17422    #[doc = "Port Direction"]
17423    #[inline(always)]
17424    pub fn pdr(
17425        self,
17426    ) -> crate::common::RegisterField<
17427        2,
17428        0x1,
17429        1,
17430        0,
17431        p5pfs::Pdr,
17432        p5pfs::Pdr,
17433        P5Pfs_SPEC,
17434        crate::common::RW,
17435    > {
17436        crate::common::RegisterField::<
17437            2,
17438            0x1,
17439            1,
17440            0,
17441            p5pfs::Pdr,
17442            p5pfs::Pdr,
17443            P5Pfs_SPEC,
17444            crate::common::RW,
17445        >::from_register(self, 0)
17446    }
17447
17448    #[doc = "Pull-up Control"]
17449    #[inline(always)]
17450    pub fn pcr(
17451        self,
17452    ) -> crate::common::RegisterField<
17453        4,
17454        0x1,
17455        1,
17456        0,
17457        p5pfs::Pcr,
17458        p5pfs::Pcr,
17459        P5Pfs_SPEC,
17460        crate::common::RW,
17461    > {
17462        crate::common::RegisterField::<
17463            4,
17464            0x1,
17465            1,
17466            0,
17467            p5pfs::Pcr,
17468            p5pfs::Pcr,
17469            P5Pfs_SPEC,
17470            crate::common::RW,
17471        >::from_register(self, 0)
17472    }
17473
17474    #[doc = "N-Channel Open-Drain Control"]
17475    #[inline(always)]
17476    pub fn ncodr(
17477        self,
17478    ) -> crate::common::RegisterField<
17479        6,
17480        0x1,
17481        1,
17482        0,
17483        p5pfs::Ncodr,
17484        p5pfs::Ncodr,
17485        P5Pfs_SPEC,
17486        crate::common::RW,
17487    > {
17488        crate::common::RegisterField::<
17489            6,
17490            0x1,
17491            1,
17492            0,
17493            p5pfs::Ncodr,
17494            p5pfs::Ncodr,
17495            P5Pfs_SPEC,
17496            crate::common::RW,
17497        >::from_register(self, 0)
17498    }
17499
17500    #[doc = "IRQ Input Enable"]
17501    #[inline(always)]
17502    pub fn isel(
17503        self,
17504    ) -> crate::common::RegisterField<
17505        14,
17506        0x1,
17507        1,
17508        0,
17509        p5pfs::Isel,
17510        p5pfs::Isel,
17511        P5Pfs_SPEC,
17512        crate::common::RW,
17513    > {
17514        crate::common::RegisterField::<
17515            14,
17516            0x1,
17517            1,
17518            0,
17519            p5pfs::Isel,
17520            p5pfs::Isel,
17521            P5Pfs_SPEC,
17522            crate::common::RW,
17523        >::from_register(self, 0)
17524    }
17525
17526    #[doc = "Analog Input Enable"]
17527    #[inline(always)]
17528    pub fn asel(
17529        self,
17530    ) -> crate::common::RegisterField<
17531        15,
17532        0x1,
17533        1,
17534        0,
17535        p5pfs::Asel,
17536        p5pfs::Asel,
17537        P5Pfs_SPEC,
17538        crate::common::RW,
17539    > {
17540        crate::common::RegisterField::<
17541            15,
17542            0x1,
17543            1,
17544            0,
17545            p5pfs::Asel,
17546            p5pfs::Asel,
17547            P5Pfs_SPEC,
17548            crate::common::RW,
17549        >::from_register(self, 0)
17550    }
17551
17552    #[doc = "Port Mode Control"]
17553    #[inline(always)]
17554    pub fn pmr(
17555        self,
17556    ) -> crate::common::RegisterField<
17557        16,
17558        0x1,
17559        1,
17560        0,
17561        p5pfs::Pmr,
17562        p5pfs::Pmr,
17563        P5Pfs_SPEC,
17564        crate::common::RW,
17565    > {
17566        crate::common::RegisterField::<
17567            16,
17568            0x1,
17569            1,
17570            0,
17571            p5pfs::Pmr,
17572            p5pfs::Pmr,
17573            P5Pfs_SPEC,
17574            crate::common::RW,
17575        >::from_register(self, 0)
17576    }
17577
17578    #[doc = "Peripheral Select"]
17579    #[inline(always)]
17580    pub fn psel(
17581        self,
17582    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P5Pfs_SPEC, crate::common::RW> {
17583        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P5Pfs_SPEC,crate::common::RW>::from_register(self,0)
17584    }
17585}
17586impl ::core::default::Default for P5Pfs {
17587    #[inline(always)]
17588    fn default() -> P5Pfs {
17589        <crate::RegValueT<P5Pfs_SPEC> as RegisterValue<_>>::new(0)
17590    }
17591}
17592pub mod p5pfs {
17593
17594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17595    pub struct Podr_SPEC;
17596    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17597    impl Podr {
17598        #[doc = "Output low"]
17599        pub const _0: Self = Self::new(0);
17600
17601        #[doc = "Output high"]
17602        pub const _1: Self = Self::new(1);
17603    }
17604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17605    pub struct Pidr_SPEC;
17606    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17607    impl Pidr {
17608        #[doc = "Low level"]
17609        pub const _0: Self = Self::new(0);
17610
17611        #[doc = "High level"]
17612        pub const _1: Self = Self::new(1);
17613    }
17614    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17615    pub struct Pdr_SPEC;
17616    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17617    impl Pdr {
17618        #[doc = "Input (functions as an input pin)"]
17619        pub const _0: Self = Self::new(0);
17620
17621        #[doc = "Output (functions as an output pin)"]
17622        pub const _1: Self = Self::new(1);
17623    }
17624    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17625    pub struct Pcr_SPEC;
17626    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17627    impl Pcr {
17628        #[doc = "Disable input pull-up"]
17629        pub const _0: Self = Self::new(0);
17630
17631        #[doc = "Enable input pull-up"]
17632        pub const _1: Self = Self::new(1);
17633    }
17634    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17635    pub struct Ncodr_SPEC;
17636    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17637    impl Ncodr {
17638        #[doc = "Output CMOS"]
17639        pub const _0: Self = Self::new(0);
17640
17641        #[doc = "Output NMOS open-drain"]
17642        pub const _1: Self = Self::new(1);
17643    }
17644    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17645    pub struct Isel_SPEC;
17646    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17647    impl Isel {
17648        #[doc = "Do not use as IRQn input pin"]
17649        pub const _0: Self = Self::new(0);
17650
17651        #[doc = "Use as IRQn input pin"]
17652        pub const _1: Self = Self::new(1);
17653    }
17654    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17655    pub struct Asel_SPEC;
17656    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17657    impl Asel {
17658        #[doc = "Do not use as analog pin"]
17659        pub const _0: Self = Self::new(0);
17660
17661        #[doc = "Use as analog pin"]
17662        pub const _1: Self = Self::new(1);
17663    }
17664    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17665    pub struct Pmr_SPEC;
17666    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
17667    impl Pmr {
17668        #[doc = "Use as general I/O pin"]
17669        pub const _0: Self = Self::new(0);
17670
17671        #[doc = "Use as I/O port for peripheral functions"]
17672        pub const _1: Self = Self::new(1);
17673    }
17674}
17675#[doc(hidden)]
17676#[derive(Copy, Clone, Eq, PartialEq)]
17677pub struct P5PfsHa_SPEC;
17678impl crate::sealed::RegSpec for P5PfsHa_SPEC {
17679    type DataType = u16;
17680}
17681
17682#[doc = "Port 5%s Pin Function Select Register"]
17683pub type P5PfsHa = crate::RegValueT<P5PfsHa_SPEC>;
17684
17685impl P5PfsHa {
17686    #[doc = "Port Output Data"]
17687    #[inline(always)]
17688    pub fn podr(
17689        self,
17690    ) -> crate::common::RegisterField<
17691        0,
17692        0x1,
17693        1,
17694        0,
17695        p5pfs_ha::Podr,
17696        p5pfs_ha::Podr,
17697        P5PfsHa_SPEC,
17698        crate::common::RW,
17699    > {
17700        crate::common::RegisterField::<
17701            0,
17702            0x1,
17703            1,
17704            0,
17705            p5pfs_ha::Podr,
17706            p5pfs_ha::Podr,
17707            P5PfsHa_SPEC,
17708            crate::common::RW,
17709        >::from_register(self, 0)
17710    }
17711
17712    #[doc = "Port State"]
17713    #[inline(always)]
17714    pub fn pidr(
17715        self,
17716    ) -> crate::common::RegisterField<
17717        1,
17718        0x1,
17719        1,
17720        0,
17721        p5pfs_ha::Pidr,
17722        p5pfs_ha::Pidr,
17723        P5PfsHa_SPEC,
17724        crate::common::R,
17725    > {
17726        crate::common::RegisterField::<
17727            1,
17728            0x1,
17729            1,
17730            0,
17731            p5pfs_ha::Pidr,
17732            p5pfs_ha::Pidr,
17733            P5PfsHa_SPEC,
17734            crate::common::R,
17735        >::from_register(self, 0)
17736    }
17737
17738    #[doc = "Port Direction"]
17739    #[inline(always)]
17740    pub fn pdr(
17741        self,
17742    ) -> crate::common::RegisterField<
17743        2,
17744        0x1,
17745        1,
17746        0,
17747        p5pfs_ha::Pdr,
17748        p5pfs_ha::Pdr,
17749        P5PfsHa_SPEC,
17750        crate::common::RW,
17751    > {
17752        crate::common::RegisterField::<
17753            2,
17754            0x1,
17755            1,
17756            0,
17757            p5pfs_ha::Pdr,
17758            p5pfs_ha::Pdr,
17759            P5PfsHa_SPEC,
17760            crate::common::RW,
17761        >::from_register(self, 0)
17762    }
17763
17764    #[doc = "Pull-up Control"]
17765    #[inline(always)]
17766    pub fn pcr(
17767        self,
17768    ) -> crate::common::RegisterField<
17769        4,
17770        0x1,
17771        1,
17772        0,
17773        p5pfs_ha::Pcr,
17774        p5pfs_ha::Pcr,
17775        P5PfsHa_SPEC,
17776        crate::common::RW,
17777    > {
17778        crate::common::RegisterField::<
17779            4,
17780            0x1,
17781            1,
17782            0,
17783            p5pfs_ha::Pcr,
17784            p5pfs_ha::Pcr,
17785            P5PfsHa_SPEC,
17786            crate::common::RW,
17787        >::from_register(self, 0)
17788    }
17789
17790    #[doc = "N-Channel Open-Drain Control"]
17791    #[inline(always)]
17792    pub fn ncodr(
17793        self,
17794    ) -> crate::common::RegisterField<
17795        6,
17796        0x1,
17797        1,
17798        0,
17799        p5pfs_ha::Ncodr,
17800        p5pfs_ha::Ncodr,
17801        P5PfsHa_SPEC,
17802        crate::common::RW,
17803    > {
17804        crate::common::RegisterField::<
17805            6,
17806            0x1,
17807            1,
17808            0,
17809            p5pfs_ha::Ncodr,
17810            p5pfs_ha::Ncodr,
17811            P5PfsHa_SPEC,
17812            crate::common::RW,
17813        >::from_register(self, 0)
17814    }
17815
17816    #[doc = "IRQ Input Enable"]
17817    #[inline(always)]
17818    pub fn isel(
17819        self,
17820    ) -> crate::common::RegisterField<
17821        14,
17822        0x1,
17823        1,
17824        0,
17825        p5pfs_ha::Isel,
17826        p5pfs_ha::Isel,
17827        P5PfsHa_SPEC,
17828        crate::common::RW,
17829    > {
17830        crate::common::RegisterField::<
17831            14,
17832            0x1,
17833            1,
17834            0,
17835            p5pfs_ha::Isel,
17836            p5pfs_ha::Isel,
17837            P5PfsHa_SPEC,
17838            crate::common::RW,
17839        >::from_register(self, 0)
17840    }
17841
17842    #[doc = "Analog Input Enable"]
17843    #[inline(always)]
17844    pub fn asel(
17845        self,
17846    ) -> crate::common::RegisterField<
17847        15,
17848        0x1,
17849        1,
17850        0,
17851        p5pfs_ha::Asel,
17852        p5pfs_ha::Asel,
17853        P5PfsHa_SPEC,
17854        crate::common::RW,
17855    > {
17856        crate::common::RegisterField::<
17857            15,
17858            0x1,
17859            1,
17860            0,
17861            p5pfs_ha::Asel,
17862            p5pfs_ha::Asel,
17863            P5PfsHa_SPEC,
17864            crate::common::RW,
17865        >::from_register(self, 0)
17866    }
17867}
17868impl ::core::default::Default for P5PfsHa {
17869    #[inline(always)]
17870    fn default() -> P5PfsHa {
17871        <crate::RegValueT<P5PfsHa_SPEC> as RegisterValue<_>>::new(0)
17872    }
17873}
17874pub mod p5pfs_ha {
17875
17876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17877    pub struct Podr_SPEC;
17878    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17879    impl Podr {
17880        #[doc = "Output low"]
17881        pub const _0: Self = Self::new(0);
17882
17883        #[doc = "Output high"]
17884        pub const _1: Self = Self::new(1);
17885    }
17886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17887    pub struct Pidr_SPEC;
17888    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17889    impl Pidr {
17890        #[doc = "Low level"]
17891        pub const _0: Self = Self::new(0);
17892
17893        #[doc = "High level"]
17894        pub const _1: Self = Self::new(1);
17895    }
17896    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17897    pub struct Pdr_SPEC;
17898    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17899    impl Pdr {
17900        #[doc = "Input (functions as an input pin)"]
17901        pub const _0: Self = Self::new(0);
17902
17903        #[doc = "Output (functions as an output pin)"]
17904        pub const _1: Self = Self::new(1);
17905    }
17906    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17907    pub struct Pcr_SPEC;
17908    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17909    impl Pcr {
17910        #[doc = "Disable input pull-up"]
17911        pub const _0: Self = Self::new(0);
17912
17913        #[doc = "Enable input pull-up"]
17914        pub const _1: Self = Self::new(1);
17915    }
17916    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17917    pub struct Ncodr_SPEC;
17918    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17919    impl Ncodr {
17920        #[doc = "Output CMOS"]
17921        pub const _0: Self = Self::new(0);
17922
17923        #[doc = "Output NMOS open-drain"]
17924        pub const _1: Self = Self::new(1);
17925    }
17926    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17927    pub struct Isel_SPEC;
17928    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17929    impl Isel {
17930        #[doc = "Do not use as IRQn input pin"]
17931        pub const _0: Self = Self::new(0);
17932
17933        #[doc = "Use as IRQn input pin"]
17934        pub const _1: Self = Self::new(1);
17935    }
17936    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17937    pub struct Asel_SPEC;
17938    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17939    impl Asel {
17940        #[doc = "Do not use as analog pin"]
17941        pub const _0: Self = Self::new(0);
17942
17943        #[doc = "Use as analog pin"]
17944        pub const _1: Self = Self::new(1);
17945    }
17946}
17947#[doc(hidden)]
17948#[derive(Copy, Clone, Eq, PartialEq)]
17949pub struct P5PfsBy_SPEC;
17950impl crate::sealed::RegSpec for P5PfsBy_SPEC {
17951    type DataType = u8;
17952}
17953
17954#[doc = "Port 5%s Pin Function Select Register"]
17955pub type P5PfsBy = crate::RegValueT<P5PfsBy_SPEC>;
17956
17957impl P5PfsBy {
17958    #[doc = "Port Output Data"]
17959    #[inline(always)]
17960    pub fn podr(
17961        self,
17962    ) -> crate::common::RegisterField<
17963        0,
17964        0x1,
17965        1,
17966        0,
17967        p5pfs_by::Podr,
17968        p5pfs_by::Podr,
17969        P5PfsBy_SPEC,
17970        crate::common::RW,
17971    > {
17972        crate::common::RegisterField::<
17973            0,
17974            0x1,
17975            1,
17976            0,
17977            p5pfs_by::Podr,
17978            p5pfs_by::Podr,
17979            P5PfsBy_SPEC,
17980            crate::common::RW,
17981        >::from_register(self, 0)
17982    }
17983
17984    #[doc = "Port State"]
17985    #[inline(always)]
17986    pub fn pidr(
17987        self,
17988    ) -> crate::common::RegisterField<
17989        1,
17990        0x1,
17991        1,
17992        0,
17993        p5pfs_by::Pidr,
17994        p5pfs_by::Pidr,
17995        P5PfsBy_SPEC,
17996        crate::common::R,
17997    > {
17998        crate::common::RegisterField::<
17999            1,
18000            0x1,
18001            1,
18002            0,
18003            p5pfs_by::Pidr,
18004            p5pfs_by::Pidr,
18005            P5PfsBy_SPEC,
18006            crate::common::R,
18007        >::from_register(self, 0)
18008    }
18009
18010    #[doc = "Port Direction"]
18011    #[inline(always)]
18012    pub fn pdr(
18013        self,
18014    ) -> crate::common::RegisterField<
18015        2,
18016        0x1,
18017        1,
18018        0,
18019        p5pfs_by::Pdr,
18020        p5pfs_by::Pdr,
18021        P5PfsBy_SPEC,
18022        crate::common::RW,
18023    > {
18024        crate::common::RegisterField::<
18025            2,
18026            0x1,
18027            1,
18028            0,
18029            p5pfs_by::Pdr,
18030            p5pfs_by::Pdr,
18031            P5PfsBy_SPEC,
18032            crate::common::RW,
18033        >::from_register(self, 0)
18034    }
18035
18036    #[doc = "Pull-up Control"]
18037    #[inline(always)]
18038    pub fn pcr(
18039        self,
18040    ) -> crate::common::RegisterField<
18041        4,
18042        0x1,
18043        1,
18044        0,
18045        p5pfs_by::Pcr,
18046        p5pfs_by::Pcr,
18047        P5PfsBy_SPEC,
18048        crate::common::RW,
18049    > {
18050        crate::common::RegisterField::<
18051            4,
18052            0x1,
18053            1,
18054            0,
18055            p5pfs_by::Pcr,
18056            p5pfs_by::Pcr,
18057            P5PfsBy_SPEC,
18058            crate::common::RW,
18059        >::from_register(self, 0)
18060    }
18061
18062    #[doc = "N-Channel Open-Drain Control"]
18063    #[inline(always)]
18064    pub fn ncodr(
18065        self,
18066    ) -> crate::common::RegisterField<
18067        6,
18068        0x1,
18069        1,
18070        0,
18071        p5pfs_by::Ncodr,
18072        p5pfs_by::Ncodr,
18073        P5PfsBy_SPEC,
18074        crate::common::RW,
18075    > {
18076        crate::common::RegisterField::<
18077            6,
18078            0x1,
18079            1,
18080            0,
18081            p5pfs_by::Ncodr,
18082            p5pfs_by::Ncodr,
18083            P5PfsBy_SPEC,
18084            crate::common::RW,
18085        >::from_register(self, 0)
18086    }
18087}
18088impl ::core::default::Default for P5PfsBy {
18089    #[inline(always)]
18090    fn default() -> P5PfsBy {
18091        <crate::RegValueT<P5PfsBy_SPEC> as RegisterValue<_>>::new(0)
18092    }
18093}
18094pub mod p5pfs_by {
18095
18096    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18097    pub struct Podr_SPEC;
18098    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18099    impl Podr {
18100        #[doc = "Output low"]
18101        pub const _0: Self = Self::new(0);
18102
18103        #[doc = "Output high"]
18104        pub const _1: Self = Self::new(1);
18105    }
18106    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18107    pub struct Pidr_SPEC;
18108    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18109    impl Pidr {
18110        #[doc = "Low level"]
18111        pub const _0: Self = Self::new(0);
18112
18113        #[doc = "High level"]
18114        pub const _1: Self = Self::new(1);
18115    }
18116    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18117    pub struct Pdr_SPEC;
18118    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18119    impl Pdr {
18120        #[doc = "Input (functions as an input pin)"]
18121        pub const _0: Self = Self::new(0);
18122
18123        #[doc = "Output (functions as an output pin)"]
18124        pub const _1: Self = Self::new(1);
18125    }
18126    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18127    pub struct Pcr_SPEC;
18128    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18129    impl Pcr {
18130        #[doc = "Disable input pull-up"]
18131        pub const _0: Self = Self::new(0);
18132
18133        #[doc = "Enable input pull-up"]
18134        pub const _1: Self = Self::new(1);
18135    }
18136    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18137    pub struct Ncodr_SPEC;
18138    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18139    impl Ncodr {
18140        #[doc = "Output CMOS"]
18141        pub const _0: Self = Self::new(0);
18142
18143        #[doc = "Output NMOS open-drain"]
18144        pub const _1: Self = Self::new(1);
18145    }
18146}
18147#[doc(hidden)]
18148#[derive(Copy, Clone, Eq, PartialEq)]
18149pub struct P60Pfs_SPEC;
18150impl crate::sealed::RegSpec for P60Pfs_SPEC {
18151    type DataType = u32;
18152}
18153
18154#[doc = "Port 60%s Pin Function Select Register"]
18155pub type P60Pfs = crate::RegValueT<P60Pfs_SPEC>;
18156
18157impl P60Pfs {
18158    #[doc = "Port Output Data"]
18159    #[inline(always)]
18160    pub fn podr(
18161        self,
18162    ) -> crate::common::RegisterField<
18163        0,
18164        0x1,
18165        1,
18166        0,
18167        p60pfs::Podr,
18168        p60pfs::Podr,
18169        P60Pfs_SPEC,
18170        crate::common::RW,
18171    > {
18172        crate::common::RegisterField::<
18173            0,
18174            0x1,
18175            1,
18176            0,
18177            p60pfs::Podr,
18178            p60pfs::Podr,
18179            P60Pfs_SPEC,
18180            crate::common::RW,
18181        >::from_register(self, 0)
18182    }
18183
18184    #[doc = "Port State"]
18185    #[inline(always)]
18186    pub fn pidr(
18187        self,
18188    ) -> crate::common::RegisterField<
18189        1,
18190        0x1,
18191        1,
18192        0,
18193        p60pfs::Pidr,
18194        p60pfs::Pidr,
18195        P60Pfs_SPEC,
18196        crate::common::R,
18197    > {
18198        crate::common::RegisterField::<
18199            1,
18200            0x1,
18201            1,
18202            0,
18203            p60pfs::Pidr,
18204            p60pfs::Pidr,
18205            P60Pfs_SPEC,
18206            crate::common::R,
18207        >::from_register(self, 0)
18208    }
18209
18210    #[doc = "Port Direction"]
18211    #[inline(always)]
18212    pub fn pdr(
18213        self,
18214    ) -> crate::common::RegisterField<
18215        2,
18216        0x1,
18217        1,
18218        0,
18219        p60pfs::Pdr,
18220        p60pfs::Pdr,
18221        P60Pfs_SPEC,
18222        crate::common::RW,
18223    > {
18224        crate::common::RegisterField::<
18225            2,
18226            0x1,
18227            1,
18228            0,
18229            p60pfs::Pdr,
18230            p60pfs::Pdr,
18231            P60Pfs_SPEC,
18232            crate::common::RW,
18233        >::from_register(self, 0)
18234    }
18235
18236    #[doc = "Pull-up Control"]
18237    #[inline(always)]
18238    pub fn pcr(
18239        self,
18240    ) -> crate::common::RegisterField<
18241        4,
18242        0x1,
18243        1,
18244        0,
18245        p60pfs::Pcr,
18246        p60pfs::Pcr,
18247        P60Pfs_SPEC,
18248        crate::common::RW,
18249    > {
18250        crate::common::RegisterField::<
18251            4,
18252            0x1,
18253            1,
18254            0,
18255            p60pfs::Pcr,
18256            p60pfs::Pcr,
18257            P60Pfs_SPEC,
18258            crate::common::RW,
18259        >::from_register(self, 0)
18260    }
18261
18262    #[doc = "N-Channel Open-Drain Control"]
18263    #[inline(always)]
18264    pub fn ncodr(
18265        self,
18266    ) -> crate::common::RegisterField<
18267        6,
18268        0x1,
18269        1,
18270        0,
18271        p60pfs::Ncodr,
18272        p60pfs::Ncodr,
18273        P60Pfs_SPEC,
18274        crate::common::RW,
18275    > {
18276        crate::common::RegisterField::<
18277            6,
18278            0x1,
18279            1,
18280            0,
18281            p60pfs::Ncodr,
18282            p60pfs::Ncodr,
18283            P60Pfs_SPEC,
18284            crate::common::RW,
18285        >::from_register(self, 0)
18286    }
18287
18288    #[doc = "IRQ Input Enable"]
18289    #[inline(always)]
18290    pub fn isel(
18291        self,
18292    ) -> crate::common::RegisterField<
18293        14,
18294        0x1,
18295        1,
18296        0,
18297        p60pfs::Isel,
18298        p60pfs::Isel,
18299        P60Pfs_SPEC,
18300        crate::common::RW,
18301    > {
18302        crate::common::RegisterField::<
18303            14,
18304            0x1,
18305            1,
18306            0,
18307            p60pfs::Isel,
18308            p60pfs::Isel,
18309            P60Pfs_SPEC,
18310            crate::common::RW,
18311        >::from_register(self, 0)
18312    }
18313
18314    #[doc = "Analog Input Enable"]
18315    #[inline(always)]
18316    pub fn asel(
18317        self,
18318    ) -> crate::common::RegisterField<
18319        15,
18320        0x1,
18321        1,
18322        0,
18323        p60pfs::Asel,
18324        p60pfs::Asel,
18325        P60Pfs_SPEC,
18326        crate::common::RW,
18327    > {
18328        crate::common::RegisterField::<
18329            15,
18330            0x1,
18331            1,
18332            0,
18333            p60pfs::Asel,
18334            p60pfs::Asel,
18335            P60Pfs_SPEC,
18336            crate::common::RW,
18337        >::from_register(self, 0)
18338    }
18339
18340    #[doc = "Port Mode Control"]
18341    #[inline(always)]
18342    pub fn pmr(
18343        self,
18344    ) -> crate::common::RegisterField<
18345        16,
18346        0x1,
18347        1,
18348        0,
18349        p60pfs::Pmr,
18350        p60pfs::Pmr,
18351        P60Pfs_SPEC,
18352        crate::common::RW,
18353    > {
18354        crate::common::RegisterField::<
18355            16,
18356            0x1,
18357            1,
18358            0,
18359            p60pfs::Pmr,
18360            p60pfs::Pmr,
18361            P60Pfs_SPEC,
18362            crate::common::RW,
18363        >::from_register(self, 0)
18364    }
18365
18366    #[doc = "Peripheral Select"]
18367    #[inline(always)]
18368    pub fn psel(
18369        self,
18370    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P60Pfs_SPEC, crate::common::RW> {
18371        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P60Pfs_SPEC,crate::common::RW>::from_register(self,0)
18372    }
18373}
18374impl ::core::default::Default for P60Pfs {
18375    #[inline(always)]
18376    fn default() -> P60Pfs {
18377        <crate::RegValueT<P60Pfs_SPEC> as RegisterValue<_>>::new(0)
18378    }
18379}
18380pub mod p60pfs {
18381
18382    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18383    pub struct Podr_SPEC;
18384    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18385    impl Podr {
18386        #[doc = "Output low"]
18387        pub const _0: Self = Self::new(0);
18388
18389        #[doc = "Output high"]
18390        pub const _1: Self = Self::new(1);
18391    }
18392    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18393    pub struct Pidr_SPEC;
18394    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18395    impl Pidr {
18396        #[doc = "Low level"]
18397        pub const _0: Self = Self::new(0);
18398
18399        #[doc = "High level"]
18400        pub const _1: Self = Self::new(1);
18401    }
18402    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18403    pub struct Pdr_SPEC;
18404    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18405    impl Pdr {
18406        #[doc = "Input (functions as an input pin)"]
18407        pub const _0: Self = Self::new(0);
18408
18409        #[doc = "Output (functions as an output pin)"]
18410        pub const _1: Self = Self::new(1);
18411    }
18412    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18413    pub struct Pcr_SPEC;
18414    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18415    impl Pcr {
18416        #[doc = "Disable input pull-up"]
18417        pub const _0: Self = Self::new(0);
18418
18419        #[doc = "Enable input pull-up"]
18420        pub const _1: Self = Self::new(1);
18421    }
18422    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18423    pub struct Ncodr_SPEC;
18424    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18425    impl Ncodr {
18426        #[doc = "Output CMOS"]
18427        pub const _0: Self = Self::new(0);
18428
18429        #[doc = "Output NMOS open-drain"]
18430        pub const _1: Self = Self::new(1);
18431    }
18432    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18433    pub struct Isel_SPEC;
18434    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18435    impl Isel {
18436        #[doc = "Do not use as IRQn input pin"]
18437        pub const _0: Self = Self::new(0);
18438
18439        #[doc = "Use as IRQn input pin"]
18440        pub const _1: Self = Self::new(1);
18441    }
18442    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18443    pub struct Asel_SPEC;
18444    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18445    impl Asel {
18446        #[doc = "Do not use as analog pin"]
18447        pub const _0: Self = Self::new(0);
18448
18449        #[doc = "Use as analog pin"]
18450        pub const _1: Self = Self::new(1);
18451    }
18452    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18453    pub struct Pmr_SPEC;
18454    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
18455    impl Pmr {
18456        #[doc = "Use as general I/O pin"]
18457        pub const _0: Self = Self::new(0);
18458
18459        #[doc = "Use as I/O port for peripheral functions"]
18460        pub const _1: Self = Self::new(1);
18461    }
18462}
18463#[doc(hidden)]
18464#[derive(Copy, Clone, Eq, PartialEq)]
18465pub struct P60PfsHa_SPEC;
18466impl crate::sealed::RegSpec for P60PfsHa_SPEC {
18467    type DataType = u16;
18468}
18469
18470#[doc = "Port 60%s Pin Function Select Register"]
18471pub type P60PfsHa = crate::RegValueT<P60PfsHa_SPEC>;
18472
18473impl P60PfsHa {
18474    #[doc = "Port Output Data"]
18475    #[inline(always)]
18476    pub fn podr(
18477        self,
18478    ) -> crate::common::RegisterField<
18479        0,
18480        0x1,
18481        1,
18482        0,
18483        p60pfs_ha::Podr,
18484        p60pfs_ha::Podr,
18485        P60PfsHa_SPEC,
18486        crate::common::RW,
18487    > {
18488        crate::common::RegisterField::<
18489            0,
18490            0x1,
18491            1,
18492            0,
18493            p60pfs_ha::Podr,
18494            p60pfs_ha::Podr,
18495            P60PfsHa_SPEC,
18496            crate::common::RW,
18497        >::from_register(self, 0)
18498    }
18499
18500    #[doc = "Port State"]
18501    #[inline(always)]
18502    pub fn pidr(
18503        self,
18504    ) -> crate::common::RegisterField<
18505        1,
18506        0x1,
18507        1,
18508        0,
18509        p60pfs_ha::Pidr,
18510        p60pfs_ha::Pidr,
18511        P60PfsHa_SPEC,
18512        crate::common::R,
18513    > {
18514        crate::common::RegisterField::<
18515            1,
18516            0x1,
18517            1,
18518            0,
18519            p60pfs_ha::Pidr,
18520            p60pfs_ha::Pidr,
18521            P60PfsHa_SPEC,
18522            crate::common::R,
18523        >::from_register(self, 0)
18524    }
18525
18526    #[doc = "Port Direction"]
18527    #[inline(always)]
18528    pub fn pdr(
18529        self,
18530    ) -> crate::common::RegisterField<
18531        2,
18532        0x1,
18533        1,
18534        0,
18535        p60pfs_ha::Pdr,
18536        p60pfs_ha::Pdr,
18537        P60PfsHa_SPEC,
18538        crate::common::RW,
18539    > {
18540        crate::common::RegisterField::<
18541            2,
18542            0x1,
18543            1,
18544            0,
18545            p60pfs_ha::Pdr,
18546            p60pfs_ha::Pdr,
18547            P60PfsHa_SPEC,
18548            crate::common::RW,
18549        >::from_register(self, 0)
18550    }
18551
18552    #[doc = "Pull-up Control"]
18553    #[inline(always)]
18554    pub fn pcr(
18555        self,
18556    ) -> crate::common::RegisterField<
18557        4,
18558        0x1,
18559        1,
18560        0,
18561        p60pfs_ha::Pcr,
18562        p60pfs_ha::Pcr,
18563        P60PfsHa_SPEC,
18564        crate::common::RW,
18565    > {
18566        crate::common::RegisterField::<
18567            4,
18568            0x1,
18569            1,
18570            0,
18571            p60pfs_ha::Pcr,
18572            p60pfs_ha::Pcr,
18573            P60PfsHa_SPEC,
18574            crate::common::RW,
18575        >::from_register(self, 0)
18576    }
18577
18578    #[doc = "N-Channel Open-Drain Control"]
18579    #[inline(always)]
18580    pub fn ncodr(
18581        self,
18582    ) -> crate::common::RegisterField<
18583        6,
18584        0x1,
18585        1,
18586        0,
18587        p60pfs_ha::Ncodr,
18588        p60pfs_ha::Ncodr,
18589        P60PfsHa_SPEC,
18590        crate::common::RW,
18591    > {
18592        crate::common::RegisterField::<
18593            6,
18594            0x1,
18595            1,
18596            0,
18597            p60pfs_ha::Ncodr,
18598            p60pfs_ha::Ncodr,
18599            P60PfsHa_SPEC,
18600            crate::common::RW,
18601        >::from_register(self, 0)
18602    }
18603
18604    #[doc = "IRQ Input Enable"]
18605    #[inline(always)]
18606    pub fn isel(
18607        self,
18608    ) -> crate::common::RegisterField<
18609        14,
18610        0x1,
18611        1,
18612        0,
18613        p60pfs_ha::Isel,
18614        p60pfs_ha::Isel,
18615        P60PfsHa_SPEC,
18616        crate::common::RW,
18617    > {
18618        crate::common::RegisterField::<
18619            14,
18620            0x1,
18621            1,
18622            0,
18623            p60pfs_ha::Isel,
18624            p60pfs_ha::Isel,
18625            P60PfsHa_SPEC,
18626            crate::common::RW,
18627        >::from_register(self, 0)
18628    }
18629
18630    #[doc = "Analog Input Enable"]
18631    #[inline(always)]
18632    pub fn asel(
18633        self,
18634    ) -> crate::common::RegisterField<
18635        15,
18636        0x1,
18637        1,
18638        0,
18639        p60pfs_ha::Asel,
18640        p60pfs_ha::Asel,
18641        P60PfsHa_SPEC,
18642        crate::common::RW,
18643    > {
18644        crate::common::RegisterField::<
18645            15,
18646            0x1,
18647            1,
18648            0,
18649            p60pfs_ha::Asel,
18650            p60pfs_ha::Asel,
18651            P60PfsHa_SPEC,
18652            crate::common::RW,
18653        >::from_register(self, 0)
18654    }
18655}
18656impl ::core::default::Default for P60PfsHa {
18657    #[inline(always)]
18658    fn default() -> P60PfsHa {
18659        <crate::RegValueT<P60PfsHa_SPEC> as RegisterValue<_>>::new(0)
18660    }
18661}
18662pub mod p60pfs_ha {
18663
18664    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18665    pub struct Podr_SPEC;
18666    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18667    impl Podr {
18668        #[doc = "Output low"]
18669        pub const _0: Self = Self::new(0);
18670
18671        #[doc = "Output high"]
18672        pub const _1: Self = Self::new(1);
18673    }
18674    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18675    pub struct Pidr_SPEC;
18676    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18677    impl Pidr {
18678        #[doc = "Low level"]
18679        pub const _0: Self = Self::new(0);
18680
18681        #[doc = "High level"]
18682        pub const _1: Self = Self::new(1);
18683    }
18684    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18685    pub struct Pdr_SPEC;
18686    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18687    impl Pdr {
18688        #[doc = "Input (functions as an input pin)"]
18689        pub const _0: Self = Self::new(0);
18690
18691        #[doc = "Output (functions as an output pin)"]
18692        pub const _1: Self = Self::new(1);
18693    }
18694    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18695    pub struct Pcr_SPEC;
18696    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18697    impl Pcr {
18698        #[doc = "Disable input pull-up"]
18699        pub const _0: Self = Self::new(0);
18700
18701        #[doc = "Enable input pull-up"]
18702        pub const _1: Self = Self::new(1);
18703    }
18704    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18705    pub struct Ncodr_SPEC;
18706    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18707    impl Ncodr {
18708        #[doc = "Output CMOS"]
18709        pub const _0: Self = Self::new(0);
18710
18711        #[doc = "Output NMOS open-drain"]
18712        pub const _1: Self = Self::new(1);
18713    }
18714    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18715    pub struct Isel_SPEC;
18716    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18717    impl Isel {
18718        #[doc = "Do not use as IRQn input pin"]
18719        pub const _0: Self = Self::new(0);
18720
18721        #[doc = "Use as IRQn input pin"]
18722        pub const _1: Self = Self::new(1);
18723    }
18724    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18725    pub struct Asel_SPEC;
18726    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18727    impl Asel {
18728        #[doc = "Do not use as analog pin"]
18729        pub const _0: Self = Self::new(0);
18730
18731        #[doc = "Use as analog pin"]
18732        pub const _1: Self = Self::new(1);
18733    }
18734}
18735#[doc(hidden)]
18736#[derive(Copy, Clone, Eq, PartialEq)]
18737pub struct P60PfsBy_SPEC;
18738impl crate::sealed::RegSpec for P60PfsBy_SPEC {
18739    type DataType = u8;
18740}
18741
18742#[doc = "Port 60%s Pin Function Select Register"]
18743pub type P60PfsBy = crate::RegValueT<P60PfsBy_SPEC>;
18744
18745impl P60PfsBy {
18746    #[doc = "Port Output Data"]
18747    #[inline(always)]
18748    pub fn podr(
18749        self,
18750    ) -> crate::common::RegisterField<
18751        0,
18752        0x1,
18753        1,
18754        0,
18755        p60pfs_by::Podr,
18756        p60pfs_by::Podr,
18757        P60PfsBy_SPEC,
18758        crate::common::RW,
18759    > {
18760        crate::common::RegisterField::<
18761            0,
18762            0x1,
18763            1,
18764            0,
18765            p60pfs_by::Podr,
18766            p60pfs_by::Podr,
18767            P60PfsBy_SPEC,
18768            crate::common::RW,
18769        >::from_register(self, 0)
18770    }
18771
18772    #[doc = "Port State"]
18773    #[inline(always)]
18774    pub fn pidr(
18775        self,
18776    ) -> crate::common::RegisterField<
18777        1,
18778        0x1,
18779        1,
18780        0,
18781        p60pfs_by::Pidr,
18782        p60pfs_by::Pidr,
18783        P60PfsBy_SPEC,
18784        crate::common::R,
18785    > {
18786        crate::common::RegisterField::<
18787            1,
18788            0x1,
18789            1,
18790            0,
18791            p60pfs_by::Pidr,
18792            p60pfs_by::Pidr,
18793            P60PfsBy_SPEC,
18794            crate::common::R,
18795        >::from_register(self, 0)
18796    }
18797
18798    #[doc = "Port Direction"]
18799    #[inline(always)]
18800    pub fn pdr(
18801        self,
18802    ) -> crate::common::RegisterField<
18803        2,
18804        0x1,
18805        1,
18806        0,
18807        p60pfs_by::Pdr,
18808        p60pfs_by::Pdr,
18809        P60PfsBy_SPEC,
18810        crate::common::RW,
18811    > {
18812        crate::common::RegisterField::<
18813            2,
18814            0x1,
18815            1,
18816            0,
18817            p60pfs_by::Pdr,
18818            p60pfs_by::Pdr,
18819            P60PfsBy_SPEC,
18820            crate::common::RW,
18821        >::from_register(self, 0)
18822    }
18823
18824    #[doc = "Pull-up Control"]
18825    #[inline(always)]
18826    pub fn pcr(
18827        self,
18828    ) -> crate::common::RegisterField<
18829        4,
18830        0x1,
18831        1,
18832        0,
18833        p60pfs_by::Pcr,
18834        p60pfs_by::Pcr,
18835        P60PfsBy_SPEC,
18836        crate::common::RW,
18837    > {
18838        crate::common::RegisterField::<
18839            4,
18840            0x1,
18841            1,
18842            0,
18843            p60pfs_by::Pcr,
18844            p60pfs_by::Pcr,
18845            P60PfsBy_SPEC,
18846            crate::common::RW,
18847        >::from_register(self, 0)
18848    }
18849
18850    #[doc = "N-Channel Open-Drain Control"]
18851    #[inline(always)]
18852    pub fn ncodr(
18853        self,
18854    ) -> crate::common::RegisterField<
18855        6,
18856        0x1,
18857        1,
18858        0,
18859        p60pfs_by::Ncodr,
18860        p60pfs_by::Ncodr,
18861        P60PfsBy_SPEC,
18862        crate::common::RW,
18863    > {
18864        crate::common::RegisterField::<
18865            6,
18866            0x1,
18867            1,
18868            0,
18869            p60pfs_by::Ncodr,
18870            p60pfs_by::Ncodr,
18871            P60PfsBy_SPEC,
18872            crate::common::RW,
18873        >::from_register(self, 0)
18874    }
18875}
18876impl ::core::default::Default for P60PfsBy {
18877    #[inline(always)]
18878    fn default() -> P60PfsBy {
18879        <crate::RegValueT<P60PfsBy_SPEC> as RegisterValue<_>>::new(0)
18880    }
18881}
18882pub mod p60pfs_by {
18883
18884    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18885    pub struct Podr_SPEC;
18886    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18887    impl Podr {
18888        #[doc = "Output low"]
18889        pub const _0: Self = Self::new(0);
18890
18891        #[doc = "Output high"]
18892        pub const _1: Self = Self::new(1);
18893    }
18894    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18895    pub struct Pidr_SPEC;
18896    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18897    impl Pidr {
18898        #[doc = "Low level"]
18899        pub const _0: Self = Self::new(0);
18900
18901        #[doc = "High level"]
18902        pub const _1: Self = Self::new(1);
18903    }
18904    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18905    pub struct Pdr_SPEC;
18906    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18907    impl Pdr {
18908        #[doc = "Input (functions as an input pin)"]
18909        pub const _0: Self = Self::new(0);
18910
18911        #[doc = "Output (functions as an output pin)"]
18912        pub const _1: Self = Self::new(1);
18913    }
18914    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18915    pub struct Pcr_SPEC;
18916    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18917    impl Pcr {
18918        #[doc = "Disable input pull-up"]
18919        pub const _0: Self = Self::new(0);
18920
18921        #[doc = "Enable input pull-up"]
18922        pub const _1: Self = Self::new(1);
18923    }
18924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18925    pub struct Ncodr_SPEC;
18926    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18927    impl Ncodr {
18928        #[doc = "Output CMOS"]
18929        pub const _0: Self = Self::new(0);
18930
18931        #[doc = "Output NMOS open-drain"]
18932        pub const _1: Self = Self::new(1);
18933    }
18934}
18935#[doc(hidden)]
18936#[derive(Copy, Clone, Eq, PartialEq)]
18937pub struct P6Pfs_SPEC;
18938impl crate::sealed::RegSpec for P6Pfs_SPEC {
18939    type DataType = u32;
18940}
18941
18942#[doc = "Port 6%s Pin Function Select Register"]
18943pub type P6Pfs = crate::RegValueT<P6Pfs_SPEC>;
18944
18945impl P6Pfs {
18946    #[doc = "Port Output Data"]
18947    #[inline(always)]
18948    pub fn podr(
18949        self,
18950    ) -> crate::common::RegisterField<
18951        0,
18952        0x1,
18953        1,
18954        0,
18955        p6pfs::Podr,
18956        p6pfs::Podr,
18957        P6Pfs_SPEC,
18958        crate::common::RW,
18959    > {
18960        crate::common::RegisterField::<
18961            0,
18962            0x1,
18963            1,
18964            0,
18965            p6pfs::Podr,
18966            p6pfs::Podr,
18967            P6Pfs_SPEC,
18968            crate::common::RW,
18969        >::from_register(self, 0)
18970    }
18971
18972    #[doc = "Port State"]
18973    #[inline(always)]
18974    pub fn pidr(
18975        self,
18976    ) -> crate::common::RegisterField<
18977        1,
18978        0x1,
18979        1,
18980        0,
18981        p6pfs::Pidr,
18982        p6pfs::Pidr,
18983        P6Pfs_SPEC,
18984        crate::common::R,
18985    > {
18986        crate::common::RegisterField::<
18987            1,
18988            0x1,
18989            1,
18990            0,
18991            p6pfs::Pidr,
18992            p6pfs::Pidr,
18993            P6Pfs_SPEC,
18994            crate::common::R,
18995        >::from_register(self, 0)
18996    }
18997
18998    #[doc = "Port Direction"]
18999    #[inline(always)]
19000    pub fn pdr(
19001        self,
19002    ) -> crate::common::RegisterField<
19003        2,
19004        0x1,
19005        1,
19006        0,
19007        p6pfs::Pdr,
19008        p6pfs::Pdr,
19009        P6Pfs_SPEC,
19010        crate::common::RW,
19011    > {
19012        crate::common::RegisterField::<
19013            2,
19014            0x1,
19015            1,
19016            0,
19017            p6pfs::Pdr,
19018            p6pfs::Pdr,
19019            P6Pfs_SPEC,
19020            crate::common::RW,
19021        >::from_register(self, 0)
19022    }
19023
19024    #[doc = "Pull-up Control"]
19025    #[inline(always)]
19026    pub fn pcr(
19027        self,
19028    ) -> crate::common::RegisterField<
19029        4,
19030        0x1,
19031        1,
19032        0,
19033        p6pfs::Pcr,
19034        p6pfs::Pcr,
19035        P6Pfs_SPEC,
19036        crate::common::RW,
19037    > {
19038        crate::common::RegisterField::<
19039            4,
19040            0x1,
19041            1,
19042            0,
19043            p6pfs::Pcr,
19044            p6pfs::Pcr,
19045            P6Pfs_SPEC,
19046            crate::common::RW,
19047        >::from_register(self, 0)
19048    }
19049
19050    #[doc = "N-Channel Open-Drain Control"]
19051    #[inline(always)]
19052    pub fn ncodr(
19053        self,
19054    ) -> crate::common::RegisterField<
19055        6,
19056        0x1,
19057        1,
19058        0,
19059        p6pfs::Ncodr,
19060        p6pfs::Ncodr,
19061        P6Pfs_SPEC,
19062        crate::common::RW,
19063    > {
19064        crate::common::RegisterField::<
19065            6,
19066            0x1,
19067            1,
19068            0,
19069            p6pfs::Ncodr,
19070            p6pfs::Ncodr,
19071            P6Pfs_SPEC,
19072            crate::common::RW,
19073        >::from_register(self, 0)
19074    }
19075
19076    #[doc = "IRQ Input Enable"]
19077    #[inline(always)]
19078    pub fn isel(
19079        self,
19080    ) -> crate::common::RegisterField<
19081        14,
19082        0x1,
19083        1,
19084        0,
19085        p6pfs::Isel,
19086        p6pfs::Isel,
19087        P6Pfs_SPEC,
19088        crate::common::RW,
19089    > {
19090        crate::common::RegisterField::<
19091            14,
19092            0x1,
19093            1,
19094            0,
19095            p6pfs::Isel,
19096            p6pfs::Isel,
19097            P6Pfs_SPEC,
19098            crate::common::RW,
19099        >::from_register(self, 0)
19100    }
19101
19102    #[doc = "Analog Input Enable"]
19103    #[inline(always)]
19104    pub fn asel(
19105        self,
19106    ) -> crate::common::RegisterField<
19107        15,
19108        0x1,
19109        1,
19110        0,
19111        p6pfs::Asel,
19112        p6pfs::Asel,
19113        P6Pfs_SPEC,
19114        crate::common::RW,
19115    > {
19116        crate::common::RegisterField::<
19117            15,
19118            0x1,
19119            1,
19120            0,
19121            p6pfs::Asel,
19122            p6pfs::Asel,
19123            P6Pfs_SPEC,
19124            crate::common::RW,
19125        >::from_register(self, 0)
19126    }
19127
19128    #[doc = "Port Mode Control"]
19129    #[inline(always)]
19130    pub fn pmr(
19131        self,
19132    ) -> crate::common::RegisterField<
19133        16,
19134        0x1,
19135        1,
19136        0,
19137        p6pfs::Pmr,
19138        p6pfs::Pmr,
19139        P6Pfs_SPEC,
19140        crate::common::RW,
19141    > {
19142        crate::common::RegisterField::<
19143            16,
19144            0x1,
19145            1,
19146            0,
19147            p6pfs::Pmr,
19148            p6pfs::Pmr,
19149            P6Pfs_SPEC,
19150            crate::common::RW,
19151        >::from_register(self, 0)
19152    }
19153
19154    #[doc = "Peripheral Select"]
19155    #[inline(always)]
19156    pub fn psel(
19157        self,
19158    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P6Pfs_SPEC, crate::common::RW> {
19159        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P6Pfs_SPEC,crate::common::RW>::from_register(self,0)
19160    }
19161}
19162impl ::core::default::Default for P6Pfs {
19163    #[inline(always)]
19164    fn default() -> P6Pfs {
19165        <crate::RegValueT<P6Pfs_SPEC> as RegisterValue<_>>::new(0)
19166    }
19167}
19168pub mod p6pfs {
19169
19170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19171    pub struct Podr_SPEC;
19172    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19173    impl Podr {
19174        #[doc = "Output low"]
19175        pub const _0: Self = Self::new(0);
19176
19177        #[doc = "Output high"]
19178        pub const _1: Self = Self::new(1);
19179    }
19180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19181    pub struct Pidr_SPEC;
19182    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19183    impl Pidr {
19184        #[doc = "Low level"]
19185        pub const _0: Self = Self::new(0);
19186
19187        #[doc = "High level"]
19188        pub const _1: Self = Self::new(1);
19189    }
19190    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19191    pub struct Pdr_SPEC;
19192    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19193    impl Pdr {
19194        #[doc = "Input (functions as an input pin)"]
19195        pub const _0: Self = Self::new(0);
19196
19197        #[doc = "Output (functions as an output pin)"]
19198        pub const _1: Self = Self::new(1);
19199    }
19200    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19201    pub struct Pcr_SPEC;
19202    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19203    impl Pcr {
19204        #[doc = "Disable input pull-up"]
19205        pub const _0: Self = Self::new(0);
19206
19207        #[doc = "Enable input pull-up"]
19208        pub const _1: Self = Self::new(1);
19209    }
19210    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19211    pub struct Ncodr_SPEC;
19212    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
19213    impl Ncodr {
19214        #[doc = "Output CMOS"]
19215        pub const _0: Self = Self::new(0);
19216
19217        #[doc = "Output NMOS open-drain"]
19218        pub const _1: Self = Self::new(1);
19219    }
19220    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19221    pub struct Isel_SPEC;
19222    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
19223    impl Isel {
19224        #[doc = "Do not use as IRQn input pin"]
19225        pub const _0: Self = Self::new(0);
19226
19227        #[doc = "Use as IRQn input pin"]
19228        pub const _1: Self = Self::new(1);
19229    }
19230    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19231    pub struct Asel_SPEC;
19232    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
19233    impl Asel {
19234        #[doc = "Do not use as analog pin"]
19235        pub const _0: Self = Self::new(0);
19236
19237        #[doc = "Use as analog pin"]
19238        pub const _1: Self = Self::new(1);
19239    }
19240    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19241    pub struct Pmr_SPEC;
19242    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
19243    impl Pmr {
19244        #[doc = "Use as general I/O pin"]
19245        pub const _0: Self = Self::new(0);
19246
19247        #[doc = "Use as I/O port for peripheral functions"]
19248        pub const _1: Self = Self::new(1);
19249    }
19250}
19251#[doc(hidden)]
19252#[derive(Copy, Clone, Eq, PartialEq)]
19253pub struct P6PfsHa_SPEC;
19254impl crate::sealed::RegSpec for P6PfsHa_SPEC {
19255    type DataType = u16;
19256}
19257
19258#[doc = "Port 6%s Pin Function Select Register"]
19259pub type P6PfsHa = crate::RegValueT<P6PfsHa_SPEC>;
19260
19261impl P6PfsHa {
19262    #[doc = "Port Output Data"]
19263    #[inline(always)]
19264    pub fn podr(
19265        self,
19266    ) -> crate::common::RegisterField<
19267        0,
19268        0x1,
19269        1,
19270        0,
19271        p6pfs_ha::Podr,
19272        p6pfs_ha::Podr,
19273        P6PfsHa_SPEC,
19274        crate::common::RW,
19275    > {
19276        crate::common::RegisterField::<
19277            0,
19278            0x1,
19279            1,
19280            0,
19281            p6pfs_ha::Podr,
19282            p6pfs_ha::Podr,
19283            P6PfsHa_SPEC,
19284            crate::common::RW,
19285        >::from_register(self, 0)
19286    }
19287
19288    #[doc = "Port State"]
19289    #[inline(always)]
19290    pub fn pidr(
19291        self,
19292    ) -> crate::common::RegisterField<
19293        1,
19294        0x1,
19295        1,
19296        0,
19297        p6pfs_ha::Pidr,
19298        p6pfs_ha::Pidr,
19299        P6PfsHa_SPEC,
19300        crate::common::R,
19301    > {
19302        crate::common::RegisterField::<
19303            1,
19304            0x1,
19305            1,
19306            0,
19307            p6pfs_ha::Pidr,
19308            p6pfs_ha::Pidr,
19309            P6PfsHa_SPEC,
19310            crate::common::R,
19311        >::from_register(self, 0)
19312    }
19313
19314    #[doc = "Port Direction"]
19315    #[inline(always)]
19316    pub fn pdr(
19317        self,
19318    ) -> crate::common::RegisterField<
19319        2,
19320        0x1,
19321        1,
19322        0,
19323        p6pfs_ha::Pdr,
19324        p6pfs_ha::Pdr,
19325        P6PfsHa_SPEC,
19326        crate::common::RW,
19327    > {
19328        crate::common::RegisterField::<
19329            2,
19330            0x1,
19331            1,
19332            0,
19333            p6pfs_ha::Pdr,
19334            p6pfs_ha::Pdr,
19335            P6PfsHa_SPEC,
19336            crate::common::RW,
19337        >::from_register(self, 0)
19338    }
19339
19340    #[doc = "Pull-up Control"]
19341    #[inline(always)]
19342    pub fn pcr(
19343        self,
19344    ) -> crate::common::RegisterField<
19345        4,
19346        0x1,
19347        1,
19348        0,
19349        p6pfs_ha::Pcr,
19350        p6pfs_ha::Pcr,
19351        P6PfsHa_SPEC,
19352        crate::common::RW,
19353    > {
19354        crate::common::RegisterField::<
19355            4,
19356            0x1,
19357            1,
19358            0,
19359            p6pfs_ha::Pcr,
19360            p6pfs_ha::Pcr,
19361            P6PfsHa_SPEC,
19362            crate::common::RW,
19363        >::from_register(self, 0)
19364    }
19365
19366    #[doc = "N-Channel Open-Drain Control"]
19367    #[inline(always)]
19368    pub fn ncodr(
19369        self,
19370    ) -> crate::common::RegisterField<
19371        6,
19372        0x1,
19373        1,
19374        0,
19375        p6pfs_ha::Ncodr,
19376        p6pfs_ha::Ncodr,
19377        P6PfsHa_SPEC,
19378        crate::common::RW,
19379    > {
19380        crate::common::RegisterField::<
19381            6,
19382            0x1,
19383            1,
19384            0,
19385            p6pfs_ha::Ncodr,
19386            p6pfs_ha::Ncodr,
19387            P6PfsHa_SPEC,
19388            crate::common::RW,
19389        >::from_register(self, 0)
19390    }
19391
19392    #[doc = "IRQ Input Enable"]
19393    #[inline(always)]
19394    pub fn isel(
19395        self,
19396    ) -> crate::common::RegisterField<
19397        14,
19398        0x1,
19399        1,
19400        0,
19401        p6pfs_ha::Isel,
19402        p6pfs_ha::Isel,
19403        P6PfsHa_SPEC,
19404        crate::common::RW,
19405    > {
19406        crate::common::RegisterField::<
19407            14,
19408            0x1,
19409            1,
19410            0,
19411            p6pfs_ha::Isel,
19412            p6pfs_ha::Isel,
19413            P6PfsHa_SPEC,
19414            crate::common::RW,
19415        >::from_register(self, 0)
19416    }
19417
19418    #[doc = "Analog Input Enable"]
19419    #[inline(always)]
19420    pub fn asel(
19421        self,
19422    ) -> crate::common::RegisterField<
19423        15,
19424        0x1,
19425        1,
19426        0,
19427        p6pfs_ha::Asel,
19428        p6pfs_ha::Asel,
19429        P6PfsHa_SPEC,
19430        crate::common::RW,
19431    > {
19432        crate::common::RegisterField::<
19433            15,
19434            0x1,
19435            1,
19436            0,
19437            p6pfs_ha::Asel,
19438            p6pfs_ha::Asel,
19439            P6PfsHa_SPEC,
19440            crate::common::RW,
19441        >::from_register(self, 0)
19442    }
19443}
19444impl ::core::default::Default for P6PfsHa {
19445    #[inline(always)]
19446    fn default() -> P6PfsHa {
19447        <crate::RegValueT<P6PfsHa_SPEC> as RegisterValue<_>>::new(0)
19448    }
19449}
19450pub mod p6pfs_ha {
19451
19452    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19453    pub struct Podr_SPEC;
19454    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19455    impl Podr {
19456        #[doc = "Output low"]
19457        pub const _0: Self = Self::new(0);
19458
19459        #[doc = "Output high"]
19460        pub const _1: Self = Self::new(1);
19461    }
19462    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19463    pub struct Pidr_SPEC;
19464    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19465    impl Pidr {
19466        #[doc = "Low level"]
19467        pub const _0: Self = Self::new(0);
19468
19469        #[doc = "High level"]
19470        pub const _1: Self = Self::new(1);
19471    }
19472    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19473    pub struct Pdr_SPEC;
19474    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19475    impl Pdr {
19476        #[doc = "Input (functions as an input pin)"]
19477        pub const _0: Self = Self::new(0);
19478
19479        #[doc = "Output (functions as an output pin)"]
19480        pub const _1: Self = Self::new(1);
19481    }
19482    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19483    pub struct Pcr_SPEC;
19484    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19485    impl Pcr {
19486        #[doc = "Disable input pull-up"]
19487        pub const _0: Self = Self::new(0);
19488
19489        #[doc = "Enable input pull-up"]
19490        pub const _1: Self = Self::new(1);
19491    }
19492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19493    pub struct Ncodr_SPEC;
19494    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
19495    impl Ncodr {
19496        #[doc = "Output CMOS"]
19497        pub const _0: Self = Self::new(0);
19498
19499        #[doc = "Output NMOS open-drain"]
19500        pub const _1: Self = Self::new(1);
19501    }
19502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19503    pub struct Isel_SPEC;
19504    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
19505    impl Isel {
19506        #[doc = "Do not use as IRQn input pin"]
19507        pub const _0: Self = Self::new(0);
19508
19509        #[doc = "Use as IRQn input pin"]
19510        pub const _1: Self = Self::new(1);
19511    }
19512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19513    pub struct Asel_SPEC;
19514    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
19515    impl Asel {
19516        #[doc = "Do not use as analog pin"]
19517        pub const _0: Self = Self::new(0);
19518
19519        #[doc = "Use as analog pin"]
19520        pub const _1: Self = Self::new(1);
19521    }
19522}
19523#[doc(hidden)]
19524#[derive(Copy, Clone, Eq, PartialEq)]
19525pub struct P6PfsBy_SPEC;
19526impl crate::sealed::RegSpec for P6PfsBy_SPEC {
19527    type DataType = u8;
19528}
19529
19530#[doc = "Port 6%s Pin Function Select Register"]
19531pub type P6PfsBy = crate::RegValueT<P6PfsBy_SPEC>;
19532
19533impl P6PfsBy {
19534    #[doc = "Port Output Data"]
19535    #[inline(always)]
19536    pub fn podr(
19537        self,
19538    ) -> crate::common::RegisterField<
19539        0,
19540        0x1,
19541        1,
19542        0,
19543        p6pfs_by::Podr,
19544        p6pfs_by::Podr,
19545        P6PfsBy_SPEC,
19546        crate::common::RW,
19547    > {
19548        crate::common::RegisterField::<
19549            0,
19550            0x1,
19551            1,
19552            0,
19553            p6pfs_by::Podr,
19554            p6pfs_by::Podr,
19555            P6PfsBy_SPEC,
19556            crate::common::RW,
19557        >::from_register(self, 0)
19558    }
19559
19560    #[doc = "Port State"]
19561    #[inline(always)]
19562    pub fn pidr(
19563        self,
19564    ) -> crate::common::RegisterField<
19565        1,
19566        0x1,
19567        1,
19568        0,
19569        p6pfs_by::Pidr,
19570        p6pfs_by::Pidr,
19571        P6PfsBy_SPEC,
19572        crate::common::R,
19573    > {
19574        crate::common::RegisterField::<
19575            1,
19576            0x1,
19577            1,
19578            0,
19579            p6pfs_by::Pidr,
19580            p6pfs_by::Pidr,
19581            P6PfsBy_SPEC,
19582            crate::common::R,
19583        >::from_register(self, 0)
19584    }
19585
19586    #[doc = "Port Direction"]
19587    #[inline(always)]
19588    pub fn pdr(
19589        self,
19590    ) -> crate::common::RegisterField<
19591        2,
19592        0x1,
19593        1,
19594        0,
19595        p6pfs_by::Pdr,
19596        p6pfs_by::Pdr,
19597        P6PfsBy_SPEC,
19598        crate::common::RW,
19599    > {
19600        crate::common::RegisterField::<
19601            2,
19602            0x1,
19603            1,
19604            0,
19605            p6pfs_by::Pdr,
19606            p6pfs_by::Pdr,
19607            P6PfsBy_SPEC,
19608            crate::common::RW,
19609        >::from_register(self, 0)
19610    }
19611
19612    #[doc = "Pull-up Control"]
19613    #[inline(always)]
19614    pub fn pcr(
19615        self,
19616    ) -> crate::common::RegisterField<
19617        4,
19618        0x1,
19619        1,
19620        0,
19621        p6pfs_by::Pcr,
19622        p6pfs_by::Pcr,
19623        P6PfsBy_SPEC,
19624        crate::common::RW,
19625    > {
19626        crate::common::RegisterField::<
19627            4,
19628            0x1,
19629            1,
19630            0,
19631            p6pfs_by::Pcr,
19632            p6pfs_by::Pcr,
19633            P6PfsBy_SPEC,
19634            crate::common::RW,
19635        >::from_register(self, 0)
19636    }
19637
19638    #[doc = "N-Channel Open-Drain Control"]
19639    #[inline(always)]
19640    pub fn ncodr(
19641        self,
19642    ) -> crate::common::RegisterField<
19643        6,
19644        0x1,
19645        1,
19646        0,
19647        p6pfs_by::Ncodr,
19648        p6pfs_by::Ncodr,
19649        P6PfsBy_SPEC,
19650        crate::common::RW,
19651    > {
19652        crate::common::RegisterField::<
19653            6,
19654            0x1,
19655            1,
19656            0,
19657            p6pfs_by::Ncodr,
19658            p6pfs_by::Ncodr,
19659            P6PfsBy_SPEC,
19660            crate::common::RW,
19661        >::from_register(self, 0)
19662    }
19663}
19664impl ::core::default::Default for P6PfsBy {
19665    #[inline(always)]
19666    fn default() -> P6PfsBy {
19667        <crate::RegValueT<P6PfsBy_SPEC> as RegisterValue<_>>::new(0)
19668    }
19669}
19670pub mod p6pfs_by {
19671
19672    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19673    pub struct Podr_SPEC;
19674    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19675    impl Podr {
19676        #[doc = "Output low"]
19677        pub const _0: Self = Self::new(0);
19678
19679        #[doc = "Output high"]
19680        pub const _1: Self = Self::new(1);
19681    }
19682    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19683    pub struct Pidr_SPEC;
19684    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19685    impl Pidr {
19686        #[doc = "Low level"]
19687        pub const _0: Self = Self::new(0);
19688
19689        #[doc = "High level"]
19690        pub const _1: Self = Self::new(1);
19691    }
19692    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19693    pub struct Pdr_SPEC;
19694    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19695    impl Pdr {
19696        #[doc = "Input (functions as an input pin)"]
19697        pub const _0: Self = Self::new(0);
19698
19699        #[doc = "Output (functions as an output pin)"]
19700        pub const _1: Self = Self::new(1);
19701    }
19702    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19703    pub struct Pcr_SPEC;
19704    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19705    impl Pcr {
19706        #[doc = "Disable input pull-up"]
19707        pub const _0: Self = Self::new(0);
19708
19709        #[doc = "Enable input pull-up"]
19710        pub const _1: Self = Self::new(1);
19711    }
19712    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19713    pub struct Ncodr_SPEC;
19714    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
19715    impl Ncodr {
19716        #[doc = "Output CMOS"]
19717        pub const _0: Self = Self::new(0);
19718
19719        #[doc = "Output NMOS open-drain"]
19720        pub const _1: Self = Self::new(1);
19721    }
19722}
19723#[doc(hidden)]
19724#[derive(Copy, Clone, Eq, PartialEq)]
19725pub struct P70Pfs_SPEC;
19726impl crate::sealed::RegSpec for P70Pfs_SPEC {
19727    type DataType = u32;
19728}
19729
19730#[doc = "Port 70%s Pin Function Select Register"]
19731pub type P70Pfs = crate::RegValueT<P70Pfs_SPEC>;
19732
19733impl P70Pfs {
19734    #[doc = "Port Output Data"]
19735    #[inline(always)]
19736    pub fn podr(
19737        self,
19738    ) -> crate::common::RegisterField<
19739        0,
19740        0x1,
19741        1,
19742        0,
19743        p70pfs::Podr,
19744        p70pfs::Podr,
19745        P70Pfs_SPEC,
19746        crate::common::RW,
19747    > {
19748        crate::common::RegisterField::<
19749            0,
19750            0x1,
19751            1,
19752            0,
19753            p70pfs::Podr,
19754            p70pfs::Podr,
19755            P70Pfs_SPEC,
19756            crate::common::RW,
19757        >::from_register(self, 0)
19758    }
19759
19760    #[doc = "Port State"]
19761    #[inline(always)]
19762    pub fn pidr(
19763        self,
19764    ) -> crate::common::RegisterField<
19765        1,
19766        0x1,
19767        1,
19768        0,
19769        p70pfs::Pidr,
19770        p70pfs::Pidr,
19771        P70Pfs_SPEC,
19772        crate::common::R,
19773    > {
19774        crate::common::RegisterField::<
19775            1,
19776            0x1,
19777            1,
19778            0,
19779            p70pfs::Pidr,
19780            p70pfs::Pidr,
19781            P70Pfs_SPEC,
19782            crate::common::R,
19783        >::from_register(self, 0)
19784    }
19785
19786    #[doc = "Port Direction"]
19787    #[inline(always)]
19788    pub fn pdr(
19789        self,
19790    ) -> crate::common::RegisterField<
19791        2,
19792        0x1,
19793        1,
19794        0,
19795        p70pfs::Pdr,
19796        p70pfs::Pdr,
19797        P70Pfs_SPEC,
19798        crate::common::RW,
19799    > {
19800        crate::common::RegisterField::<
19801            2,
19802            0x1,
19803            1,
19804            0,
19805            p70pfs::Pdr,
19806            p70pfs::Pdr,
19807            P70Pfs_SPEC,
19808            crate::common::RW,
19809        >::from_register(self, 0)
19810    }
19811
19812    #[doc = "Pull-up Control"]
19813    #[inline(always)]
19814    pub fn pcr(
19815        self,
19816    ) -> crate::common::RegisterField<
19817        4,
19818        0x1,
19819        1,
19820        0,
19821        p70pfs::Pcr,
19822        p70pfs::Pcr,
19823        P70Pfs_SPEC,
19824        crate::common::RW,
19825    > {
19826        crate::common::RegisterField::<
19827            4,
19828            0x1,
19829            1,
19830            0,
19831            p70pfs::Pcr,
19832            p70pfs::Pcr,
19833            P70Pfs_SPEC,
19834            crate::common::RW,
19835        >::from_register(self, 0)
19836    }
19837
19838    #[doc = "N-Channel Open-Drain Control"]
19839    #[inline(always)]
19840    pub fn ncodr(
19841        self,
19842    ) -> crate::common::RegisterField<
19843        6,
19844        0x1,
19845        1,
19846        0,
19847        p70pfs::Ncodr,
19848        p70pfs::Ncodr,
19849        P70Pfs_SPEC,
19850        crate::common::RW,
19851    > {
19852        crate::common::RegisterField::<
19853            6,
19854            0x1,
19855            1,
19856            0,
19857            p70pfs::Ncodr,
19858            p70pfs::Ncodr,
19859            P70Pfs_SPEC,
19860            crate::common::RW,
19861        >::from_register(self, 0)
19862    }
19863
19864    #[doc = "IRQ Input Enable"]
19865    #[inline(always)]
19866    pub fn isel(
19867        self,
19868    ) -> crate::common::RegisterField<
19869        14,
19870        0x1,
19871        1,
19872        0,
19873        p70pfs::Isel,
19874        p70pfs::Isel,
19875        P70Pfs_SPEC,
19876        crate::common::RW,
19877    > {
19878        crate::common::RegisterField::<
19879            14,
19880            0x1,
19881            1,
19882            0,
19883            p70pfs::Isel,
19884            p70pfs::Isel,
19885            P70Pfs_SPEC,
19886            crate::common::RW,
19887        >::from_register(self, 0)
19888    }
19889
19890    #[doc = "Analog Input Enable"]
19891    #[inline(always)]
19892    pub fn asel(
19893        self,
19894    ) -> crate::common::RegisterField<
19895        15,
19896        0x1,
19897        1,
19898        0,
19899        p70pfs::Asel,
19900        p70pfs::Asel,
19901        P70Pfs_SPEC,
19902        crate::common::RW,
19903    > {
19904        crate::common::RegisterField::<
19905            15,
19906            0x1,
19907            1,
19908            0,
19909            p70pfs::Asel,
19910            p70pfs::Asel,
19911            P70Pfs_SPEC,
19912            crate::common::RW,
19913        >::from_register(self, 0)
19914    }
19915
19916    #[doc = "Port Mode Control"]
19917    #[inline(always)]
19918    pub fn pmr(
19919        self,
19920    ) -> crate::common::RegisterField<
19921        16,
19922        0x1,
19923        1,
19924        0,
19925        p70pfs::Pmr,
19926        p70pfs::Pmr,
19927        P70Pfs_SPEC,
19928        crate::common::RW,
19929    > {
19930        crate::common::RegisterField::<
19931            16,
19932            0x1,
19933            1,
19934            0,
19935            p70pfs::Pmr,
19936            p70pfs::Pmr,
19937            P70Pfs_SPEC,
19938            crate::common::RW,
19939        >::from_register(self, 0)
19940    }
19941
19942    #[doc = "Peripheral Select"]
19943    #[inline(always)]
19944    pub fn psel(
19945        self,
19946    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P70Pfs_SPEC, crate::common::RW> {
19947        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P70Pfs_SPEC,crate::common::RW>::from_register(self,0)
19948    }
19949}
19950impl ::core::default::Default for P70Pfs {
19951    #[inline(always)]
19952    fn default() -> P70Pfs {
19953        <crate::RegValueT<P70Pfs_SPEC> as RegisterValue<_>>::new(0)
19954    }
19955}
19956pub mod p70pfs {
19957
19958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19959    pub struct Podr_SPEC;
19960    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19961    impl Podr {
19962        #[doc = "Output low"]
19963        pub const _0: Self = Self::new(0);
19964
19965        #[doc = "Output high"]
19966        pub const _1: Self = Self::new(1);
19967    }
19968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19969    pub struct Pidr_SPEC;
19970    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19971    impl Pidr {
19972        #[doc = "Low level"]
19973        pub const _0: Self = Self::new(0);
19974
19975        #[doc = "High level"]
19976        pub const _1: Self = Self::new(1);
19977    }
19978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19979    pub struct Pdr_SPEC;
19980    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19981    impl Pdr {
19982        #[doc = "Input (functions as an input pin)"]
19983        pub const _0: Self = Self::new(0);
19984
19985        #[doc = "Output (functions as an output pin)"]
19986        pub const _1: Self = Self::new(1);
19987    }
19988    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19989    pub struct Pcr_SPEC;
19990    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19991    impl Pcr {
19992        #[doc = "Disable input pull-up"]
19993        pub const _0: Self = Self::new(0);
19994
19995        #[doc = "Enable input pull-up"]
19996        pub const _1: Self = Self::new(1);
19997    }
19998    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19999    pub struct Ncodr_SPEC;
20000    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
20001    impl Ncodr {
20002        #[doc = "Output CMOS"]
20003        pub const _0: Self = Self::new(0);
20004
20005        #[doc = "Output NMOS open-drain"]
20006        pub const _1: Self = Self::new(1);
20007    }
20008    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20009    pub struct Isel_SPEC;
20010    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
20011    impl Isel {
20012        #[doc = "Do not use as IRQn input pin"]
20013        pub const _0: Self = Self::new(0);
20014
20015        #[doc = "Use as IRQn input pin"]
20016        pub const _1: Self = Self::new(1);
20017    }
20018    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20019    pub struct Asel_SPEC;
20020    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
20021    impl Asel {
20022        #[doc = "Do not use as analog pin"]
20023        pub const _0: Self = Self::new(0);
20024
20025        #[doc = "Use as analog pin"]
20026        pub const _1: Self = Self::new(1);
20027    }
20028    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20029    pub struct Pmr_SPEC;
20030    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
20031    impl Pmr {
20032        #[doc = "Use as general I/O pin"]
20033        pub const _0: Self = Self::new(0);
20034
20035        #[doc = "Use as I/O port for peripheral functions"]
20036        pub const _1: Self = Self::new(1);
20037    }
20038}
20039#[doc(hidden)]
20040#[derive(Copy, Clone, Eq, PartialEq)]
20041pub struct P70PfsHa_SPEC;
20042impl crate::sealed::RegSpec for P70PfsHa_SPEC {
20043    type DataType = u16;
20044}
20045
20046#[doc = "Port 70%s Pin Function Select Register"]
20047pub type P70PfsHa = crate::RegValueT<P70PfsHa_SPEC>;
20048
20049impl P70PfsHa {
20050    #[doc = "Port Output Data"]
20051    #[inline(always)]
20052    pub fn podr(
20053        self,
20054    ) -> crate::common::RegisterField<
20055        0,
20056        0x1,
20057        1,
20058        0,
20059        p70pfs_ha::Podr,
20060        p70pfs_ha::Podr,
20061        P70PfsHa_SPEC,
20062        crate::common::RW,
20063    > {
20064        crate::common::RegisterField::<
20065            0,
20066            0x1,
20067            1,
20068            0,
20069            p70pfs_ha::Podr,
20070            p70pfs_ha::Podr,
20071            P70PfsHa_SPEC,
20072            crate::common::RW,
20073        >::from_register(self, 0)
20074    }
20075
20076    #[doc = "Port State"]
20077    #[inline(always)]
20078    pub fn pidr(
20079        self,
20080    ) -> crate::common::RegisterField<
20081        1,
20082        0x1,
20083        1,
20084        0,
20085        p70pfs_ha::Pidr,
20086        p70pfs_ha::Pidr,
20087        P70PfsHa_SPEC,
20088        crate::common::R,
20089    > {
20090        crate::common::RegisterField::<
20091            1,
20092            0x1,
20093            1,
20094            0,
20095            p70pfs_ha::Pidr,
20096            p70pfs_ha::Pidr,
20097            P70PfsHa_SPEC,
20098            crate::common::R,
20099        >::from_register(self, 0)
20100    }
20101
20102    #[doc = "Port Direction"]
20103    #[inline(always)]
20104    pub fn pdr(
20105        self,
20106    ) -> crate::common::RegisterField<
20107        2,
20108        0x1,
20109        1,
20110        0,
20111        p70pfs_ha::Pdr,
20112        p70pfs_ha::Pdr,
20113        P70PfsHa_SPEC,
20114        crate::common::RW,
20115    > {
20116        crate::common::RegisterField::<
20117            2,
20118            0x1,
20119            1,
20120            0,
20121            p70pfs_ha::Pdr,
20122            p70pfs_ha::Pdr,
20123            P70PfsHa_SPEC,
20124            crate::common::RW,
20125        >::from_register(self, 0)
20126    }
20127
20128    #[doc = "Pull-up Control"]
20129    #[inline(always)]
20130    pub fn pcr(
20131        self,
20132    ) -> crate::common::RegisterField<
20133        4,
20134        0x1,
20135        1,
20136        0,
20137        p70pfs_ha::Pcr,
20138        p70pfs_ha::Pcr,
20139        P70PfsHa_SPEC,
20140        crate::common::RW,
20141    > {
20142        crate::common::RegisterField::<
20143            4,
20144            0x1,
20145            1,
20146            0,
20147            p70pfs_ha::Pcr,
20148            p70pfs_ha::Pcr,
20149            P70PfsHa_SPEC,
20150            crate::common::RW,
20151        >::from_register(self, 0)
20152    }
20153
20154    #[doc = "N-Channel Open-Drain Control"]
20155    #[inline(always)]
20156    pub fn ncodr(
20157        self,
20158    ) -> crate::common::RegisterField<
20159        6,
20160        0x1,
20161        1,
20162        0,
20163        p70pfs_ha::Ncodr,
20164        p70pfs_ha::Ncodr,
20165        P70PfsHa_SPEC,
20166        crate::common::RW,
20167    > {
20168        crate::common::RegisterField::<
20169            6,
20170            0x1,
20171            1,
20172            0,
20173            p70pfs_ha::Ncodr,
20174            p70pfs_ha::Ncodr,
20175            P70PfsHa_SPEC,
20176            crate::common::RW,
20177        >::from_register(self, 0)
20178    }
20179
20180    #[doc = "IRQ Input Enable"]
20181    #[inline(always)]
20182    pub fn isel(
20183        self,
20184    ) -> crate::common::RegisterField<
20185        14,
20186        0x1,
20187        1,
20188        0,
20189        p70pfs_ha::Isel,
20190        p70pfs_ha::Isel,
20191        P70PfsHa_SPEC,
20192        crate::common::RW,
20193    > {
20194        crate::common::RegisterField::<
20195            14,
20196            0x1,
20197            1,
20198            0,
20199            p70pfs_ha::Isel,
20200            p70pfs_ha::Isel,
20201            P70PfsHa_SPEC,
20202            crate::common::RW,
20203        >::from_register(self, 0)
20204    }
20205
20206    #[doc = "Analog Input Enable"]
20207    #[inline(always)]
20208    pub fn asel(
20209        self,
20210    ) -> crate::common::RegisterField<
20211        15,
20212        0x1,
20213        1,
20214        0,
20215        p70pfs_ha::Asel,
20216        p70pfs_ha::Asel,
20217        P70PfsHa_SPEC,
20218        crate::common::RW,
20219    > {
20220        crate::common::RegisterField::<
20221            15,
20222            0x1,
20223            1,
20224            0,
20225            p70pfs_ha::Asel,
20226            p70pfs_ha::Asel,
20227            P70PfsHa_SPEC,
20228            crate::common::RW,
20229        >::from_register(self, 0)
20230    }
20231}
20232impl ::core::default::Default for P70PfsHa {
20233    #[inline(always)]
20234    fn default() -> P70PfsHa {
20235        <crate::RegValueT<P70PfsHa_SPEC> as RegisterValue<_>>::new(0)
20236    }
20237}
20238pub mod p70pfs_ha {
20239
20240    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20241    pub struct Podr_SPEC;
20242    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
20243    impl Podr {
20244        #[doc = "Output low"]
20245        pub const _0: Self = Self::new(0);
20246
20247        #[doc = "Output high"]
20248        pub const _1: Self = Self::new(1);
20249    }
20250    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20251    pub struct Pidr_SPEC;
20252    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
20253    impl Pidr {
20254        #[doc = "Low level"]
20255        pub const _0: Self = Self::new(0);
20256
20257        #[doc = "High level"]
20258        pub const _1: Self = Self::new(1);
20259    }
20260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20261    pub struct Pdr_SPEC;
20262    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
20263    impl Pdr {
20264        #[doc = "Input (functions as an input pin)"]
20265        pub const _0: Self = Self::new(0);
20266
20267        #[doc = "Output (functions as an output pin)"]
20268        pub const _1: Self = Self::new(1);
20269    }
20270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20271    pub struct Pcr_SPEC;
20272    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
20273    impl Pcr {
20274        #[doc = "Disable input pull-up"]
20275        pub const _0: Self = Self::new(0);
20276
20277        #[doc = "Enable input pull-up"]
20278        pub const _1: Self = Self::new(1);
20279    }
20280    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20281    pub struct Ncodr_SPEC;
20282    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
20283    impl Ncodr {
20284        #[doc = "Output CMOS"]
20285        pub const _0: Self = Self::new(0);
20286
20287        #[doc = "Output NMOS open-drain"]
20288        pub const _1: Self = Self::new(1);
20289    }
20290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20291    pub struct Isel_SPEC;
20292    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
20293    impl Isel {
20294        #[doc = "Do not use as IRQn input pin"]
20295        pub const _0: Self = Self::new(0);
20296
20297        #[doc = "Use as IRQn input pin"]
20298        pub const _1: Self = Self::new(1);
20299    }
20300    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20301    pub struct Asel_SPEC;
20302    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
20303    impl Asel {
20304        #[doc = "Do not use as analog pin"]
20305        pub const _0: Self = Self::new(0);
20306
20307        #[doc = "Use as analog pin"]
20308        pub const _1: Self = Self::new(1);
20309    }
20310}
20311#[doc(hidden)]
20312#[derive(Copy, Clone, Eq, PartialEq)]
20313pub struct P70PfsBy_SPEC;
20314impl crate::sealed::RegSpec for P70PfsBy_SPEC {
20315    type DataType = u8;
20316}
20317
20318#[doc = "Port 70%s Pin Function Select Register"]
20319pub type P70PfsBy = crate::RegValueT<P70PfsBy_SPEC>;
20320
20321impl P70PfsBy {
20322    #[doc = "Port Output Data"]
20323    #[inline(always)]
20324    pub fn podr(
20325        self,
20326    ) -> crate::common::RegisterField<
20327        0,
20328        0x1,
20329        1,
20330        0,
20331        p70pfs_by::Podr,
20332        p70pfs_by::Podr,
20333        P70PfsBy_SPEC,
20334        crate::common::RW,
20335    > {
20336        crate::common::RegisterField::<
20337            0,
20338            0x1,
20339            1,
20340            0,
20341            p70pfs_by::Podr,
20342            p70pfs_by::Podr,
20343            P70PfsBy_SPEC,
20344            crate::common::RW,
20345        >::from_register(self, 0)
20346    }
20347
20348    #[doc = "Port State"]
20349    #[inline(always)]
20350    pub fn pidr(
20351        self,
20352    ) -> crate::common::RegisterField<
20353        1,
20354        0x1,
20355        1,
20356        0,
20357        p70pfs_by::Pidr,
20358        p70pfs_by::Pidr,
20359        P70PfsBy_SPEC,
20360        crate::common::R,
20361    > {
20362        crate::common::RegisterField::<
20363            1,
20364            0x1,
20365            1,
20366            0,
20367            p70pfs_by::Pidr,
20368            p70pfs_by::Pidr,
20369            P70PfsBy_SPEC,
20370            crate::common::R,
20371        >::from_register(self, 0)
20372    }
20373
20374    #[doc = "Port Direction"]
20375    #[inline(always)]
20376    pub fn pdr(
20377        self,
20378    ) -> crate::common::RegisterField<
20379        2,
20380        0x1,
20381        1,
20382        0,
20383        p70pfs_by::Pdr,
20384        p70pfs_by::Pdr,
20385        P70PfsBy_SPEC,
20386        crate::common::RW,
20387    > {
20388        crate::common::RegisterField::<
20389            2,
20390            0x1,
20391            1,
20392            0,
20393            p70pfs_by::Pdr,
20394            p70pfs_by::Pdr,
20395            P70PfsBy_SPEC,
20396            crate::common::RW,
20397        >::from_register(self, 0)
20398    }
20399
20400    #[doc = "Pull-up Control"]
20401    #[inline(always)]
20402    pub fn pcr(
20403        self,
20404    ) -> crate::common::RegisterField<
20405        4,
20406        0x1,
20407        1,
20408        0,
20409        p70pfs_by::Pcr,
20410        p70pfs_by::Pcr,
20411        P70PfsBy_SPEC,
20412        crate::common::RW,
20413    > {
20414        crate::common::RegisterField::<
20415            4,
20416            0x1,
20417            1,
20418            0,
20419            p70pfs_by::Pcr,
20420            p70pfs_by::Pcr,
20421            P70PfsBy_SPEC,
20422            crate::common::RW,
20423        >::from_register(self, 0)
20424    }
20425
20426    #[doc = "N-Channel Open-Drain Control"]
20427    #[inline(always)]
20428    pub fn ncodr(
20429        self,
20430    ) -> crate::common::RegisterField<
20431        6,
20432        0x1,
20433        1,
20434        0,
20435        p70pfs_by::Ncodr,
20436        p70pfs_by::Ncodr,
20437        P70PfsBy_SPEC,
20438        crate::common::RW,
20439    > {
20440        crate::common::RegisterField::<
20441            6,
20442            0x1,
20443            1,
20444            0,
20445            p70pfs_by::Ncodr,
20446            p70pfs_by::Ncodr,
20447            P70PfsBy_SPEC,
20448            crate::common::RW,
20449        >::from_register(self, 0)
20450    }
20451}
20452impl ::core::default::Default for P70PfsBy {
20453    #[inline(always)]
20454    fn default() -> P70PfsBy {
20455        <crate::RegValueT<P70PfsBy_SPEC> as RegisterValue<_>>::new(0)
20456    }
20457}
20458pub mod p70pfs_by {
20459
20460    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20461    pub struct Podr_SPEC;
20462    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
20463    impl Podr {
20464        #[doc = "Output low"]
20465        pub const _0: Self = Self::new(0);
20466
20467        #[doc = "Output high"]
20468        pub const _1: Self = Self::new(1);
20469    }
20470    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20471    pub struct Pidr_SPEC;
20472    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
20473    impl Pidr {
20474        #[doc = "Low level"]
20475        pub const _0: Self = Self::new(0);
20476
20477        #[doc = "High level"]
20478        pub const _1: Self = Self::new(1);
20479    }
20480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20481    pub struct Pdr_SPEC;
20482    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
20483    impl Pdr {
20484        #[doc = "Input (functions as an input pin)"]
20485        pub const _0: Self = Self::new(0);
20486
20487        #[doc = "Output (functions as an output pin)"]
20488        pub const _1: Self = Self::new(1);
20489    }
20490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20491    pub struct Pcr_SPEC;
20492    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
20493    impl Pcr {
20494        #[doc = "Disable input pull-up"]
20495        pub const _0: Self = Self::new(0);
20496
20497        #[doc = "Enable input pull-up"]
20498        pub const _1: Self = Self::new(1);
20499    }
20500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20501    pub struct Ncodr_SPEC;
20502    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
20503    impl Ncodr {
20504        #[doc = "Output CMOS"]
20505        pub const _0: Self = Self::new(0);
20506
20507        #[doc = "Output NMOS open-drain"]
20508        pub const _1: Self = Self::new(1);
20509    }
20510}
20511#[doc(hidden)]
20512#[derive(Copy, Clone, Eq, PartialEq)]
20513pub struct P7Pfs_SPEC;
20514impl crate::sealed::RegSpec for P7Pfs_SPEC {
20515    type DataType = u32;
20516}
20517
20518#[doc = "Port 7%s Pin Function Select Register"]
20519pub type P7Pfs = crate::RegValueT<P7Pfs_SPEC>;
20520
20521impl P7Pfs {
20522    #[doc = "Port Output Data"]
20523    #[inline(always)]
20524    pub fn podr(
20525        self,
20526    ) -> crate::common::RegisterField<
20527        0,
20528        0x1,
20529        1,
20530        0,
20531        p7pfs::Podr,
20532        p7pfs::Podr,
20533        P7Pfs_SPEC,
20534        crate::common::RW,
20535    > {
20536        crate::common::RegisterField::<
20537            0,
20538            0x1,
20539            1,
20540            0,
20541            p7pfs::Podr,
20542            p7pfs::Podr,
20543            P7Pfs_SPEC,
20544            crate::common::RW,
20545        >::from_register(self, 0)
20546    }
20547
20548    #[doc = "Port State"]
20549    #[inline(always)]
20550    pub fn pidr(
20551        self,
20552    ) -> crate::common::RegisterField<
20553        1,
20554        0x1,
20555        1,
20556        0,
20557        p7pfs::Pidr,
20558        p7pfs::Pidr,
20559        P7Pfs_SPEC,
20560        crate::common::R,
20561    > {
20562        crate::common::RegisterField::<
20563            1,
20564            0x1,
20565            1,
20566            0,
20567            p7pfs::Pidr,
20568            p7pfs::Pidr,
20569            P7Pfs_SPEC,
20570            crate::common::R,
20571        >::from_register(self, 0)
20572    }
20573
20574    #[doc = "Port Direction"]
20575    #[inline(always)]
20576    pub fn pdr(
20577        self,
20578    ) -> crate::common::RegisterField<
20579        2,
20580        0x1,
20581        1,
20582        0,
20583        p7pfs::Pdr,
20584        p7pfs::Pdr,
20585        P7Pfs_SPEC,
20586        crate::common::RW,
20587    > {
20588        crate::common::RegisterField::<
20589            2,
20590            0x1,
20591            1,
20592            0,
20593            p7pfs::Pdr,
20594            p7pfs::Pdr,
20595            P7Pfs_SPEC,
20596            crate::common::RW,
20597        >::from_register(self, 0)
20598    }
20599
20600    #[doc = "Pull-up Control"]
20601    #[inline(always)]
20602    pub fn pcr(
20603        self,
20604    ) -> crate::common::RegisterField<
20605        4,
20606        0x1,
20607        1,
20608        0,
20609        p7pfs::Pcr,
20610        p7pfs::Pcr,
20611        P7Pfs_SPEC,
20612        crate::common::RW,
20613    > {
20614        crate::common::RegisterField::<
20615            4,
20616            0x1,
20617            1,
20618            0,
20619            p7pfs::Pcr,
20620            p7pfs::Pcr,
20621            P7Pfs_SPEC,
20622            crate::common::RW,
20623        >::from_register(self, 0)
20624    }
20625
20626    #[doc = "N-Channel Open-Drain Control"]
20627    #[inline(always)]
20628    pub fn ncodr(
20629        self,
20630    ) -> crate::common::RegisterField<
20631        6,
20632        0x1,
20633        1,
20634        0,
20635        p7pfs::Ncodr,
20636        p7pfs::Ncodr,
20637        P7Pfs_SPEC,
20638        crate::common::RW,
20639    > {
20640        crate::common::RegisterField::<
20641            6,
20642            0x1,
20643            1,
20644            0,
20645            p7pfs::Ncodr,
20646            p7pfs::Ncodr,
20647            P7Pfs_SPEC,
20648            crate::common::RW,
20649        >::from_register(self, 0)
20650    }
20651
20652    #[doc = "IRQ Input Enable"]
20653    #[inline(always)]
20654    pub fn isel(
20655        self,
20656    ) -> crate::common::RegisterField<
20657        14,
20658        0x1,
20659        1,
20660        0,
20661        p7pfs::Isel,
20662        p7pfs::Isel,
20663        P7Pfs_SPEC,
20664        crate::common::RW,
20665    > {
20666        crate::common::RegisterField::<
20667            14,
20668            0x1,
20669            1,
20670            0,
20671            p7pfs::Isel,
20672            p7pfs::Isel,
20673            P7Pfs_SPEC,
20674            crate::common::RW,
20675        >::from_register(self, 0)
20676    }
20677
20678    #[doc = "Analog Input Enable"]
20679    #[inline(always)]
20680    pub fn asel(
20681        self,
20682    ) -> crate::common::RegisterField<
20683        15,
20684        0x1,
20685        1,
20686        0,
20687        p7pfs::Asel,
20688        p7pfs::Asel,
20689        P7Pfs_SPEC,
20690        crate::common::RW,
20691    > {
20692        crate::common::RegisterField::<
20693            15,
20694            0x1,
20695            1,
20696            0,
20697            p7pfs::Asel,
20698            p7pfs::Asel,
20699            P7Pfs_SPEC,
20700            crate::common::RW,
20701        >::from_register(self, 0)
20702    }
20703
20704    #[doc = "Port Mode Control"]
20705    #[inline(always)]
20706    pub fn pmr(
20707        self,
20708    ) -> crate::common::RegisterField<
20709        16,
20710        0x1,
20711        1,
20712        0,
20713        p7pfs::Pmr,
20714        p7pfs::Pmr,
20715        P7Pfs_SPEC,
20716        crate::common::RW,
20717    > {
20718        crate::common::RegisterField::<
20719            16,
20720            0x1,
20721            1,
20722            0,
20723            p7pfs::Pmr,
20724            p7pfs::Pmr,
20725            P7Pfs_SPEC,
20726            crate::common::RW,
20727        >::from_register(self, 0)
20728    }
20729
20730    #[doc = "Peripheral Select"]
20731    #[inline(always)]
20732    pub fn psel(
20733        self,
20734    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P7Pfs_SPEC, crate::common::RW> {
20735        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P7Pfs_SPEC,crate::common::RW>::from_register(self,0)
20736    }
20737}
20738impl ::core::default::Default for P7Pfs {
20739    #[inline(always)]
20740    fn default() -> P7Pfs {
20741        <crate::RegValueT<P7Pfs_SPEC> as RegisterValue<_>>::new(0)
20742    }
20743}
20744pub mod p7pfs {
20745
20746    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20747    pub struct Podr_SPEC;
20748    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
20749    impl Podr {
20750        #[doc = "Output low"]
20751        pub const _0: Self = Self::new(0);
20752
20753        #[doc = "Output high"]
20754        pub const _1: Self = Self::new(1);
20755    }
20756    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20757    pub struct Pidr_SPEC;
20758    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
20759    impl Pidr {
20760        #[doc = "Low level"]
20761        pub const _0: Self = Self::new(0);
20762
20763        #[doc = "High level"]
20764        pub const _1: Self = Self::new(1);
20765    }
20766    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20767    pub struct Pdr_SPEC;
20768    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
20769    impl Pdr {
20770        #[doc = "Input (functions as an input pin)"]
20771        pub const _0: Self = Self::new(0);
20772
20773        #[doc = "Output (functions as an output pin)"]
20774        pub const _1: Self = Self::new(1);
20775    }
20776    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20777    pub struct Pcr_SPEC;
20778    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
20779    impl Pcr {
20780        #[doc = "Disable input pull-up"]
20781        pub const _0: Self = Self::new(0);
20782
20783        #[doc = "Enable input pull-up"]
20784        pub const _1: Self = Self::new(1);
20785    }
20786    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20787    pub struct Ncodr_SPEC;
20788    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
20789    impl Ncodr {
20790        #[doc = "Output CMOS"]
20791        pub const _0: Self = Self::new(0);
20792
20793        #[doc = "Output NMOS open-drain"]
20794        pub const _1: Self = Self::new(1);
20795    }
20796    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20797    pub struct Isel_SPEC;
20798    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
20799    impl Isel {
20800        #[doc = "Do not use as IRQn input pin"]
20801        pub const _0: Self = Self::new(0);
20802
20803        #[doc = "Use as IRQn input pin"]
20804        pub const _1: Self = Self::new(1);
20805    }
20806    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20807    pub struct Asel_SPEC;
20808    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
20809    impl Asel {
20810        #[doc = "Do not use as analog pin"]
20811        pub const _0: Self = Self::new(0);
20812
20813        #[doc = "Use as analog pin"]
20814        pub const _1: Self = Self::new(1);
20815    }
20816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
20817    pub struct Pmr_SPEC;
20818    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
20819    impl Pmr {
20820        #[doc = "Use as general I/O pin"]
20821        pub const _0: Self = Self::new(0);
20822
20823        #[doc = "Use as I/O port for peripheral functions"]
20824        pub const _1: Self = Self::new(1);
20825    }
20826}
20827#[doc(hidden)]
20828#[derive(Copy, Clone, Eq, PartialEq)]
20829pub struct P7PfsHa_SPEC;
20830impl crate::sealed::RegSpec for P7PfsHa_SPEC {
20831    type DataType = u16;
20832}
20833
20834#[doc = "Port 7%s Pin Function Select Register"]
20835pub type P7PfsHa = crate::RegValueT<P7PfsHa_SPEC>;
20836
20837impl P7PfsHa {
20838    #[doc = "Port Output Data"]
20839    #[inline(always)]
20840    pub fn podr(
20841        self,
20842    ) -> crate::common::RegisterField<
20843        0,
20844        0x1,
20845        1,
20846        0,
20847        p7pfs_ha::Podr,
20848        p7pfs_ha::Podr,
20849        P7PfsHa_SPEC,
20850        crate::common::RW,
20851    > {
20852        crate::common::RegisterField::<
20853            0,
20854            0x1,
20855            1,
20856            0,
20857            p7pfs_ha::Podr,
20858            p7pfs_ha::Podr,
20859            P7PfsHa_SPEC,
20860            crate::common::RW,
20861        >::from_register(self, 0)
20862    }
20863
20864    #[doc = "Port State"]
20865    #[inline(always)]
20866    pub fn pidr(
20867        self,
20868    ) -> crate::common::RegisterField<
20869        1,
20870        0x1,
20871        1,
20872        0,
20873        p7pfs_ha::Pidr,
20874        p7pfs_ha::Pidr,
20875        P7PfsHa_SPEC,
20876        crate::common::R,
20877    > {
20878        crate::common::RegisterField::<
20879            1,
20880            0x1,
20881            1,
20882            0,
20883            p7pfs_ha::Pidr,
20884            p7pfs_ha::Pidr,
20885            P7PfsHa_SPEC,
20886            crate::common::R,
20887        >::from_register(self, 0)
20888    }
20889
20890    #[doc = "Port Direction"]
20891    #[inline(always)]
20892    pub fn pdr(
20893        self,
20894    ) -> crate::common::RegisterField<
20895        2,
20896        0x1,
20897        1,
20898        0,
20899        p7pfs_ha::Pdr,
20900        p7pfs_ha::Pdr,
20901        P7PfsHa_SPEC,
20902        crate::common::RW,
20903    > {
20904        crate::common::RegisterField::<
20905            2,
20906            0x1,
20907            1,
20908            0,
20909            p7pfs_ha::Pdr,
20910            p7pfs_ha::Pdr,
20911            P7PfsHa_SPEC,
20912            crate::common::RW,
20913        >::from_register(self, 0)
20914    }
20915
20916    #[doc = "Pull-up Control"]
20917    #[inline(always)]
20918    pub fn pcr(
20919        self,
20920    ) -> crate::common::RegisterField<
20921        4,
20922        0x1,
20923        1,
20924        0,
20925        p7pfs_ha::Pcr,
20926        p7pfs_ha::Pcr,
20927        P7PfsHa_SPEC,
20928        crate::common::RW,
20929    > {
20930        crate::common::RegisterField::<
20931            4,
20932            0x1,
20933            1,
20934            0,
20935            p7pfs_ha::Pcr,
20936            p7pfs_ha::Pcr,
20937            P7PfsHa_SPEC,
20938            crate::common::RW,
20939        >::from_register(self, 0)
20940    }
20941
20942    #[doc = "N-Channel Open-Drain Control"]
20943    #[inline(always)]
20944    pub fn ncodr(
20945        self,
20946    ) -> crate::common::RegisterField<
20947        6,
20948        0x1,
20949        1,
20950        0,
20951        p7pfs_ha::Ncodr,
20952        p7pfs_ha::Ncodr,
20953        P7PfsHa_SPEC,
20954        crate::common::RW,
20955    > {
20956        crate::common::RegisterField::<
20957            6,
20958            0x1,
20959            1,
20960            0,
20961            p7pfs_ha::Ncodr,
20962            p7pfs_ha::Ncodr,
20963            P7PfsHa_SPEC,
20964            crate::common::RW,
20965        >::from_register(self, 0)
20966    }
20967
20968    #[doc = "IRQ Input Enable"]
20969    #[inline(always)]
20970    pub fn isel(
20971        self,
20972    ) -> crate::common::RegisterField<
20973        14,
20974        0x1,
20975        1,
20976        0,
20977        p7pfs_ha::Isel,
20978        p7pfs_ha::Isel,
20979        P7PfsHa_SPEC,
20980        crate::common::RW,
20981    > {
20982        crate::common::RegisterField::<
20983            14,
20984            0x1,
20985            1,
20986            0,
20987            p7pfs_ha::Isel,
20988            p7pfs_ha::Isel,
20989            P7PfsHa_SPEC,
20990            crate::common::RW,
20991        >::from_register(self, 0)
20992    }
20993
20994    #[doc = "Analog Input Enable"]
20995    #[inline(always)]
20996    pub fn asel(
20997        self,
20998    ) -> crate::common::RegisterField<
20999        15,
21000        0x1,
21001        1,
21002        0,
21003        p7pfs_ha::Asel,
21004        p7pfs_ha::Asel,
21005        P7PfsHa_SPEC,
21006        crate::common::RW,
21007    > {
21008        crate::common::RegisterField::<
21009            15,
21010            0x1,
21011            1,
21012            0,
21013            p7pfs_ha::Asel,
21014            p7pfs_ha::Asel,
21015            P7PfsHa_SPEC,
21016            crate::common::RW,
21017        >::from_register(self, 0)
21018    }
21019}
21020impl ::core::default::Default for P7PfsHa {
21021    #[inline(always)]
21022    fn default() -> P7PfsHa {
21023        <crate::RegValueT<P7PfsHa_SPEC> as RegisterValue<_>>::new(0)
21024    }
21025}
21026pub mod p7pfs_ha {
21027
21028    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21029    pub struct Podr_SPEC;
21030    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
21031    impl Podr {
21032        #[doc = "Output low"]
21033        pub const _0: Self = Self::new(0);
21034
21035        #[doc = "Output high"]
21036        pub const _1: Self = Self::new(1);
21037    }
21038    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21039    pub struct Pidr_SPEC;
21040    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
21041    impl Pidr {
21042        #[doc = "Low level"]
21043        pub const _0: Self = Self::new(0);
21044
21045        #[doc = "High level"]
21046        pub const _1: Self = Self::new(1);
21047    }
21048    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21049    pub struct Pdr_SPEC;
21050    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
21051    impl Pdr {
21052        #[doc = "Input (functions as an input pin)"]
21053        pub const _0: Self = Self::new(0);
21054
21055        #[doc = "Output (functions as an output pin)"]
21056        pub const _1: Self = Self::new(1);
21057    }
21058    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21059    pub struct Pcr_SPEC;
21060    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
21061    impl Pcr {
21062        #[doc = "Disable input pull-up"]
21063        pub const _0: Self = Self::new(0);
21064
21065        #[doc = "Enable input pull-up"]
21066        pub const _1: Self = Self::new(1);
21067    }
21068    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21069    pub struct Ncodr_SPEC;
21070    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
21071    impl Ncodr {
21072        #[doc = "Output CMOS"]
21073        pub const _0: Self = Self::new(0);
21074
21075        #[doc = "Output NMOS open-drain"]
21076        pub const _1: Self = Self::new(1);
21077    }
21078    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21079    pub struct Isel_SPEC;
21080    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
21081    impl Isel {
21082        #[doc = "Do not use as IRQn input pin"]
21083        pub const _0: Self = Self::new(0);
21084
21085        #[doc = "Use as IRQn input pin"]
21086        pub const _1: Self = Self::new(1);
21087    }
21088    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21089    pub struct Asel_SPEC;
21090    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
21091    impl Asel {
21092        #[doc = "Do not use as analog pin"]
21093        pub const _0: Self = Self::new(0);
21094
21095        #[doc = "Use as analog pin"]
21096        pub const _1: Self = Self::new(1);
21097    }
21098}
21099#[doc(hidden)]
21100#[derive(Copy, Clone, Eq, PartialEq)]
21101pub struct P7PfsBy_SPEC;
21102impl crate::sealed::RegSpec for P7PfsBy_SPEC {
21103    type DataType = u8;
21104}
21105
21106#[doc = "Port 7%s Pin Function Select Register"]
21107pub type P7PfsBy = crate::RegValueT<P7PfsBy_SPEC>;
21108
21109impl P7PfsBy {
21110    #[doc = "Port Output Data"]
21111    #[inline(always)]
21112    pub fn podr(
21113        self,
21114    ) -> crate::common::RegisterField<
21115        0,
21116        0x1,
21117        1,
21118        0,
21119        p7pfs_by::Podr,
21120        p7pfs_by::Podr,
21121        P7PfsBy_SPEC,
21122        crate::common::RW,
21123    > {
21124        crate::common::RegisterField::<
21125            0,
21126            0x1,
21127            1,
21128            0,
21129            p7pfs_by::Podr,
21130            p7pfs_by::Podr,
21131            P7PfsBy_SPEC,
21132            crate::common::RW,
21133        >::from_register(self, 0)
21134    }
21135
21136    #[doc = "Port State"]
21137    #[inline(always)]
21138    pub fn pidr(
21139        self,
21140    ) -> crate::common::RegisterField<
21141        1,
21142        0x1,
21143        1,
21144        0,
21145        p7pfs_by::Pidr,
21146        p7pfs_by::Pidr,
21147        P7PfsBy_SPEC,
21148        crate::common::R,
21149    > {
21150        crate::common::RegisterField::<
21151            1,
21152            0x1,
21153            1,
21154            0,
21155            p7pfs_by::Pidr,
21156            p7pfs_by::Pidr,
21157            P7PfsBy_SPEC,
21158            crate::common::R,
21159        >::from_register(self, 0)
21160    }
21161
21162    #[doc = "Port Direction"]
21163    #[inline(always)]
21164    pub fn pdr(
21165        self,
21166    ) -> crate::common::RegisterField<
21167        2,
21168        0x1,
21169        1,
21170        0,
21171        p7pfs_by::Pdr,
21172        p7pfs_by::Pdr,
21173        P7PfsBy_SPEC,
21174        crate::common::RW,
21175    > {
21176        crate::common::RegisterField::<
21177            2,
21178            0x1,
21179            1,
21180            0,
21181            p7pfs_by::Pdr,
21182            p7pfs_by::Pdr,
21183            P7PfsBy_SPEC,
21184            crate::common::RW,
21185        >::from_register(self, 0)
21186    }
21187
21188    #[doc = "Pull-up Control"]
21189    #[inline(always)]
21190    pub fn pcr(
21191        self,
21192    ) -> crate::common::RegisterField<
21193        4,
21194        0x1,
21195        1,
21196        0,
21197        p7pfs_by::Pcr,
21198        p7pfs_by::Pcr,
21199        P7PfsBy_SPEC,
21200        crate::common::RW,
21201    > {
21202        crate::common::RegisterField::<
21203            4,
21204            0x1,
21205            1,
21206            0,
21207            p7pfs_by::Pcr,
21208            p7pfs_by::Pcr,
21209            P7PfsBy_SPEC,
21210            crate::common::RW,
21211        >::from_register(self, 0)
21212    }
21213
21214    #[doc = "N-Channel Open-Drain Control"]
21215    #[inline(always)]
21216    pub fn ncodr(
21217        self,
21218    ) -> crate::common::RegisterField<
21219        6,
21220        0x1,
21221        1,
21222        0,
21223        p7pfs_by::Ncodr,
21224        p7pfs_by::Ncodr,
21225        P7PfsBy_SPEC,
21226        crate::common::RW,
21227    > {
21228        crate::common::RegisterField::<
21229            6,
21230            0x1,
21231            1,
21232            0,
21233            p7pfs_by::Ncodr,
21234            p7pfs_by::Ncodr,
21235            P7PfsBy_SPEC,
21236            crate::common::RW,
21237        >::from_register(self, 0)
21238    }
21239}
21240impl ::core::default::Default for P7PfsBy {
21241    #[inline(always)]
21242    fn default() -> P7PfsBy {
21243        <crate::RegValueT<P7PfsBy_SPEC> as RegisterValue<_>>::new(0)
21244    }
21245}
21246pub mod p7pfs_by {
21247
21248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21249    pub struct Podr_SPEC;
21250    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
21251    impl Podr {
21252        #[doc = "Output low"]
21253        pub const _0: Self = Self::new(0);
21254
21255        #[doc = "Output high"]
21256        pub const _1: Self = Self::new(1);
21257    }
21258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21259    pub struct Pidr_SPEC;
21260    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
21261    impl Pidr {
21262        #[doc = "Low level"]
21263        pub const _0: Self = Self::new(0);
21264
21265        #[doc = "High level"]
21266        pub const _1: Self = Self::new(1);
21267    }
21268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21269    pub struct Pdr_SPEC;
21270    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
21271    impl Pdr {
21272        #[doc = "Input (functions as an input pin)"]
21273        pub const _0: Self = Self::new(0);
21274
21275        #[doc = "Output (functions as an output pin)"]
21276        pub const _1: Self = Self::new(1);
21277    }
21278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21279    pub struct Pcr_SPEC;
21280    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
21281    impl Pcr {
21282        #[doc = "Disable input pull-up"]
21283        pub const _0: Self = Self::new(0);
21284
21285        #[doc = "Enable input pull-up"]
21286        pub const _1: Self = Self::new(1);
21287    }
21288    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21289    pub struct Ncodr_SPEC;
21290    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
21291    impl Ncodr {
21292        #[doc = "Output CMOS"]
21293        pub const _0: Self = Self::new(0);
21294
21295        #[doc = "Output NMOS open-drain"]
21296        pub const _1: Self = Self::new(1);
21297    }
21298}
21299#[doc(hidden)]
21300#[derive(Copy, Clone, Eq, PartialEq)]
21301pub struct P80Pfs_SPEC;
21302impl crate::sealed::RegSpec for P80Pfs_SPEC {
21303    type DataType = u32;
21304}
21305
21306#[doc = "Port 80%s Pin Function Select Register"]
21307pub type P80Pfs = crate::RegValueT<P80Pfs_SPEC>;
21308
21309impl P80Pfs {
21310    #[doc = "Port Output Data"]
21311    #[inline(always)]
21312    pub fn podr(
21313        self,
21314    ) -> crate::common::RegisterField<
21315        0,
21316        0x1,
21317        1,
21318        0,
21319        p80pfs::Podr,
21320        p80pfs::Podr,
21321        P80Pfs_SPEC,
21322        crate::common::RW,
21323    > {
21324        crate::common::RegisterField::<
21325            0,
21326            0x1,
21327            1,
21328            0,
21329            p80pfs::Podr,
21330            p80pfs::Podr,
21331            P80Pfs_SPEC,
21332            crate::common::RW,
21333        >::from_register(self, 0)
21334    }
21335
21336    #[doc = "Port State"]
21337    #[inline(always)]
21338    pub fn pidr(
21339        self,
21340    ) -> crate::common::RegisterField<
21341        1,
21342        0x1,
21343        1,
21344        0,
21345        p80pfs::Pidr,
21346        p80pfs::Pidr,
21347        P80Pfs_SPEC,
21348        crate::common::R,
21349    > {
21350        crate::common::RegisterField::<
21351            1,
21352            0x1,
21353            1,
21354            0,
21355            p80pfs::Pidr,
21356            p80pfs::Pidr,
21357            P80Pfs_SPEC,
21358            crate::common::R,
21359        >::from_register(self, 0)
21360    }
21361
21362    #[doc = "Port Direction"]
21363    #[inline(always)]
21364    pub fn pdr(
21365        self,
21366    ) -> crate::common::RegisterField<
21367        2,
21368        0x1,
21369        1,
21370        0,
21371        p80pfs::Pdr,
21372        p80pfs::Pdr,
21373        P80Pfs_SPEC,
21374        crate::common::RW,
21375    > {
21376        crate::common::RegisterField::<
21377            2,
21378            0x1,
21379            1,
21380            0,
21381            p80pfs::Pdr,
21382            p80pfs::Pdr,
21383            P80Pfs_SPEC,
21384            crate::common::RW,
21385        >::from_register(self, 0)
21386    }
21387
21388    #[doc = "Pull-up Control"]
21389    #[inline(always)]
21390    pub fn pcr(
21391        self,
21392    ) -> crate::common::RegisterField<
21393        4,
21394        0x1,
21395        1,
21396        0,
21397        p80pfs::Pcr,
21398        p80pfs::Pcr,
21399        P80Pfs_SPEC,
21400        crate::common::RW,
21401    > {
21402        crate::common::RegisterField::<
21403            4,
21404            0x1,
21405            1,
21406            0,
21407            p80pfs::Pcr,
21408            p80pfs::Pcr,
21409            P80Pfs_SPEC,
21410            crate::common::RW,
21411        >::from_register(self, 0)
21412    }
21413
21414    #[doc = "N-Channel Open-Drain Control"]
21415    #[inline(always)]
21416    pub fn ncodr(
21417        self,
21418    ) -> crate::common::RegisterField<
21419        6,
21420        0x1,
21421        1,
21422        0,
21423        p80pfs::Ncodr,
21424        p80pfs::Ncodr,
21425        P80Pfs_SPEC,
21426        crate::common::RW,
21427    > {
21428        crate::common::RegisterField::<
21429            6,
21430            0x1,
21431            1,
21432            0,
21433            p80pfs::Ncodr,
21434            p80pfs::Ncodr,
21435            P80Pfs_SPEC,
21436            crate::common::RW,
21437        >::from_register(self, 0)
21438    }
21439
21440    #[doc = "IRQ Input Enable"]
21441    #[inline(always)]
21442    pub fn isel(
21443        self,
21444    ) -> crate::common::RegisterField<
21445        14,
21446        0x1,
21447        1,
21448        0,
21449        p80pfs::Isel,
21450        p80pfs::Isel,
21451        P80Pfs_SPEC,
21452        crate::common::RW,
21453    > {
21454        crate::common::RegisterField::<
21455            14,
21456            0x1,
21457            1,
21458            0,
21459            p80pfs::Isel,
21460            p80pfs::Isel,
21461            P80Pfs_SPEC,
21462            crate::common::RW,
21463        >::from_register(self, 0)
21464    }
21465
21466    #[doc = "Analog Input Enable"]
21467    #[inline(always)]
21468    pub fn asel(
21469        self,
21470    ) -> crate::common::RegisterField<
21471        15,
21472        0x1,
21473        1,
21474        0,
21475        p80pfs::Asel,
21476        p80pfs::Asel,
21477        P80Pfs_SPEC,
21478        crate::common::RW,
21479    > {
21480        crate::common::RegisterField::<
21481            15,
21482            0x1,
21483            1,
21484            0,
21485            p80pfs::Asel,
21486            p80pfs::Asel,
21487            P80Pfs_SPEC,
21488            crate::common::RW,
21489        >::from_register(self, 0)
21490    }
21491
21492    #[doc = "Port Mode Control"]
21493    #[inline(always)]
21494    pub fn pmr(
21495        self,
21496    ) -> crate::common::RegisterField<
21497        16,
21498        0x1,
21499        1,
21500        0,
21501        p80pfs::Pmr,
21502        p80pfs::Pmr,
21503        P80Pfs_SPEC,
21504        crate::common::RW,
21505    > {
21506        crate::common::RegisterField::<
21507            16,
21508            0x1,
21509            1,
21510            0,
21511            p80pfs::Pmr,
21512            p80pfs::Pmr,
21513            P80Pfs_SPEC,
21514            crate::common::RW,
21515        >::from_register(self, 0)
21516    }
21517
21518    #[doc = "Peripheral Select"]
21519    #[inline(always)]
21520    pub fn psel(
21521        self,
21522    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P80Pfs_SPEC, crate::common::RW> {
21523        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P80Pfs_SPEC,crate::common::RW>::from_register(self,0)
21524    }
21525}
21526impl ::core::default::Default for P80Pfs {
21527    #[inline(always)]
21528    fn default() -> P80Pfs {
21529        <crate::RegValueT<P80Pfs_SPEC> as RegisterValue<_>>::new(0)
21530    }
21531}
21532pub mod p80pfs {
21533
21534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21535    pub struct Podr_SPEC;
21536    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
21537    impl Podr {
21538        #[doc = "Output low"]
21539        pub const _0: Self = Self::new(0);
21540
21541        #[doc = "Output high"]
21542        pub const _1: Self = Self::new(1);
21543    }
21544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21545    pub struct Pidr_SPEC;
21546    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
21547    impl Pidr {
21548        #[doc = "Low level"]
21549        pub const _0: Self = Self::new(0);
21550
21551        #[doc = "High level"]
21552        pub const _1: Self = Self::new(1);
21553    }
21554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21555    pub struct Pdr_SPEC;
21556    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
21557    impl Pdr {
21558        #[doc = "Input (functions as an input pin)"]
21559        pub const _0: Self = Self::new(0);
21560
21561        #[doc = "Output (functions as an output pin)"]
21562        pub const _1: Self = Self::new(1);
21563    }
21564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21565    pub struct Pcr_SPEC;
21566    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
21567    impl Pcr {
21568        #[doc = "Disable input pull-up"]
21569        pub const _0: Self = Self::new(0);
21570
21571        #[doc = "Enable input pull-up"]
21572        pub const _1: Self = Self::new(1);
21573    }
21574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21575    pub struct Ncodr_SPEC;
21576    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
21577    impl Ncodr {
21578        #[doc = "Output CMOS"]
21579        pub const _0: Self = Self::new(0);
21580
21581        #[doc = "Output NMOS open-drain"]
21582        pub const _1: Self = Self::new(1);
21583    }
21584    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21585    pub struct Isel_SPEC;
21586    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
21587    impl Isel {
21588        #[doc = "Do not use as IRQn input pin"]
21589        pub const _0: Self = Self::new(0);
21590
21591        #[doc = "Use as IRQn input pin"]
21592        pub const _1: Self = Self::new(1);
21593    }
21594    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21595    pub struct Asel_SPEC;
21596    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
21597    impl Asel {
21598        #[doc = "Do not use as analog pin"]
21599        pub const _0: Self = Self::new(0);
21600
21601        #[doc = "Use as analog pin"]
21602        pub const _1: Self = Self::new(1);
21603    }
21604    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21605    pub struct Pmr_SPEC;
21606    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
21607    impl Pmr {
21608        #[doc = "Use as general I/O pin"]
21609        pub const _0: Self = Self::new(0);
21610
21611        #[doc = "Use as I/O port for peripheral functions"]
21612        pub const _1: Self = Self::new(1);
21613    }
21614}
21615#[doc(hidden)]
21616#[derive(Copy, Clone, Eq, PartialEq)]
21617pub struct P80PfsHa_SPEC;
21618impl crate::sealed::RegSpec for P80PfsHa_SPEC {
21619    type DataType = u16;
21620}
21621
21622#[doc = "Port 80%s Pin Function Select Register"]
21623pub type P80PfsHa = crate::RegValueT<P80PfsHa_SPEC>;
21624
21625impl P80PfsHa {
21626    #[doc = "Port Output Data"]
21627    #[inline(always)]
21628    pub fn podr(
21629        self,
21630    ) -> crate::common::RegisterField<
21631        0,
21632        0x1,
21633        1,
21634        0,
21635        p80pfs_ha::Podr,
21636        p80pfs_ha::Podr,
21637        P80PfsHa_SPEC,
21638        crate::common::RW,
21639    > {
21640        crate::common::RegisterField::<
21641            0,
21642            0x1,
21643            1,
21644            0,
21645            p80pfs_ha::Podr,
21646            p80pfs_ha::Podr,
21647            P80PfsHa_SPEC,
21648            crate::common::RW,
21649        >::from_register(self, 0)
21650    }
21651
21652    #[doc = "Port State"]
21653    #[inline(always)]
21654    pub fn pidr(
21655        self,
21656    ) -> crate::common::RegisterField<
21657        1,
21658        0x1,
21659        1,
21660        0,
21661        p80pfs_ha::Pidr,
21662        p80pfs_ha::Pidr,
21663        P80PfsHa_SPEC,
21664        crate::common::R,
21665    > {
21666        crate::common::RegisterField::<
21667            1,
21668            0x1,
21669            1,
21670            0,
21671            p80pfs_ha::Pidr,
21672            p80pfs_ha::Pidr,
21673            P80PfsHa_SPEC,
21674            crate::common::R,
21675        >::from_register(self, 0)
21676    }
21677
21678    #[doc = "Port Direction"]
21679    #[inline(always)]
21680    pub fn pdr(
21681        self,
21682    ) -> crate::common::RegisterField<
21683        2,
21684        0x1,
21685        1,
21686        0,
21687        p80pfs_ha::Pdr,
21688        p80pfs_ha::Pdr,
21689        P80PfsHa_SPEC,
21690        crate::common::RW,
21691    > {
21692        crate::common::RegisterField::<
21693            2,
21694            0x1,
21695            1,
21696            0,
21697            p80pfs_ha::Pdr,
21698            p80pfs_ha::Pdr,
21699            P80PfsHa_SPEC,
21700            crate::common::RW,
21701        >::from_register(self, 0)
21702    }
21703
21704    #[doc = "Pull-up Control"]
21705    #[inline(always)]
21706    pub fn pcr(
21707        self,
21708    ) -> crate::common::RegisterField<
21709        4,
21710        0x1,
21711        1,
21712        0,
21713        p80pfs_ha::Pcr,
21714        p80pfs_ha::Pcr,
21715        P80PfsHa_SPEC,
21716        crate::common::RW,
21717    > {
21718        crate::common::RegisterField::<
21719            4,
21720            0x1,
21721            1,
21722            0,
21723            p80pfs_ha::Pcr,
21724            p80pfs_ha::Pcr,
21725            P80PfsHa_SPEC,
21726            crate::common::RW,
21727        >::from_register(self, 0)
21728    }
21729
21730    #[doc = "N-Channel Open-Drain Control"]
21731    #[inline(always)]
21732    pub fn ncodr(
21733        self,
21734    ) -> crate::common::RegisterField<
21735        6,
21736        0x1,
21737        1,
21738        0,
21739        p80pfs_ha::Ncodr,
21740        p80pfs_ha::Ncodr,
21741        P80PfsHa_SPEC,
21742        crate::common::RW,
21743    > {
21744        crate::common::RegisterField::<
21745            6,
21746            0x1,
21747            1,
21748            0,
21749            p80pfs_ha::Ncodr,
21750            p80pfs_ha::Ncodr,
21751            P80PfsHa_SPEC,
21752            crate::common::RW,
21753        >::from_register(self, 0)
21754    }
21755
21756    #[doc = "IRQ Input Enable"]
21757    #[inline(always)]
21758    pub fn isel(
21759        self,
21760    ) -> crate::common::RegisterField<
21761        14,
21762        0x1,
21763        1,
21764        0,
21765        p80pfs_ha::Isel,
21766        p80pfs_ha::Isel,
21767        P80PfsHa_SPEC,
21768        crate::common::RW,
21769    > {
21770        crate::common::RegisterField::<
21771            14,
21772            0x1,
21773            1,
21774            0,
21775            p80pfs_ha::Isel,
21776            p80pfs_ha::Isel,
21777            P80PfsHa_SPEC,
21778            crate::common::RW,
21779        >::from_register(self, 0)
21780    }
21781
21782    #[doc = "Analog Input Enable"]
21783    #[inline(always)]
21784    pub fn asel(
21785        self,
21786    ) -> crate::common::RegisterField<
21787        15,
21788        0x1,
21789        1,
21790        0,
21791        p80pfs_ha::Asel,
21792        p80pfs_ha::Asel,
21793        P80PfsHa_SPEC,
21794        crate::common::RW,
21795    > {
21796        crate::common::RegisterField::<
21797            15,
21798            0x1,
21799            1,
21800            0,
21801            p80pfs_ha::Asel,
21802            p80pfs_ha::Asel,
21803            P80PfsHa_SPEC,
21804            crate::common::RW,
21805        >::from_register(self, 0)
21806    }
21807}
21808impl ::core::default::Default for P80PfsHa {
21809    #[inline(always)]
21810    fn default() -> P80PfsHa {
21811        <crate::RegValueT<P80PfsHa_SPEC> as RegisterValue<_>>::new(0)
21812    }
21813}
21814pub mod p80pfs_ha {
21815
21816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21817    pub struct Podr_SPEC;
21818    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
21819    impl Podr {
21820        #[doc = "Output low"]
21821        pub const _0: Self = Self::new(0);
21822
21823        #[doc = "Output high"]
21824        pub const _1: Self = Self::new(1);
21825    }
21826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21827    pub struct Pidr_SPEC;
21828    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
21829    impl Pidr {
21830        #[doc = "Low level"]
21831        pub const _0: Self = Self::new(0);
21832
21833        #[doc = "High level"]
21834        pub const _1: Self = Self::new(1);
21835    }
21836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21837    pub struct Pdr_SPEC;
21838    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
21839    impl Pdr {
21840        #[doc = "Input (functions as an input pin)"]
21841        pub const _0: Self = Self::new(0);
21842
21843        #[doc = "Output (functions as an output pin)"]
21844        pub const _1: Self = Self::new(1);
21845    }
21846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21847    pub struct Pcr_SPEC;
21848    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
21849    impl Pcr {
21850        #[doc = "Disable input pull-up"]
21851        pub const _0: Self = Self::new(0);
21852
21853        #[doc = "Enable input pull-up"]
21854        pub const _1: Self = Self::new(1);
21855    }
21856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21857    pub struct Ncodr_SPEC;
21858    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
21859    impl Ncodr {
21860        #[doc = "Output CMOS"]
21861        pub const _0: Self = Self::new(0);
21862
21863        #[doc = "Output NMOS open-drain"]
21864        pub const _1: Self = Self::new(1);
21865    }
21866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21867    pub struct Isel_SPEC;
21868    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
21869    impl Isel {
21870        #[doc = "Do not use as IRQn input pin"]
21871        pub const _0: Self = Self::new(0);
21872
21873        #[doc = "Use as IRQn input pin"]
21874        pub const _1: Self = Self::new(1);
21875    }
21876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
21877    pub struct Asel_SPEC;
21878    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
21879    impl Asel {
21880        #[doc = "Do not use as analog pin"]
21881        pub const _0: Self = Self::new(0);
21882
21883        #[doc = "Use as analog pin"]
21884        pub const _1: Self = Self::new(1);
21885    }
21886}
21887#[doc(hidden)]
21888#[derive(Copy, Clone, Eq, PartialEq)]
21889pub struct P80PfsBy_SPEC;
21890impl crate::sealed::RegSpec for P80PfsBy_SPEC {
21891    type DataType = u8;
21892}
21893
21894#[doc = "Port 80%s Pin Function Select Register"]
21895pub type P80PfsBy = crate::RegValueT<P80PfsBy_SPEC>;
21896
21897impl P80PfsBy {
21898    #[doc = "Port Output Data"]
21899    #[inline(always)]
21900    pub fn podr(
21901        self,
21902    ) -> crate::common::RegisterField<
21903        0,
21904        0x1,
21905        1,
21906        0,
21907        p80pfs_by::Podr,
21908        p80pfs_by::Podr,
21909        P80PfsBy_SPEC,
21910        crate::common::RW,
21911    > {
21912        crate::common::RegisterField::<
21913            0,
21914            0x1,
21915            1,
21916            0,
21917            p80pfs_by::Podr,
21918            p80pfs_by::Podr,
21919            P80PfsBy_SPEC,
21920            crate::common::RW,
21921        >::from_register(self, 0)
21922    }
21923
21924    #[doc = "Port State"]
21925    #[inline(always)]
21926    pub fn pidr(
21927        self,
21928    ) -> crate::common::RegisterField<
21929        1,
21930        0x1,
21931        1,
21932        0,
21933        p80pfs_by::Pidr,
21934        p80pfs_by::Pidr,
21935        P80PfsBy_SPEC,
21936        crate::common::R,
21937    > {
21938        crate::common::RegisterField::<
21939            1,
21940            0x1,
21941            1,
21942            0,
21943            p80pfs_by::Pidr,
21944            p80pfs_by::Pidr,
21945            P80PfsBy_SPEC,
21946            crate::common::R,
21947        >::from_register(self, 0)
21948    }
21949
21950    #[doc = "Port Direction"]
21951    #[inline(always)]
21952    pub fn pdr(
21953        self,
21954    ) -> crate::common::RegisterField<
21955        2,
21956        0x1,
21957        1,
21958        0,
21959        p80pfs_by::Pdr,
21960        p80pfs_by::Pdr,
21961        P80PfsBy_SPEC,
21962        crate::common::RW,
21963    > {
21964        crate::common::RegisterField::<
21965            2,
21966            0x1,
21967            1,
21968            0,
21969            p80pfs_by::Pdr,
21970            p80pfs_by::Pdr,
21971            P80PfsBy_SPEC,
21972            crate::common::RW,
21973        >::from_register(self, 0)
21974    }
21975
21976    #[doc = "Pull-up Control"]
21977    #[inline(always)]
21978    pub fn pcr(
21979        self,
21980    ) -> crate::common::RegisterField<
21981        4,
21982        0x1,
21983        1,
21984        0,
21985        p80pfs_by::Pcr,
21986        p80pfs_by::Pcr,
21987        P80PfsBy_SPEC,
21988        crate::common::RW,
21989    > {
21990        crate::common::RegisterField::<
21991            4,
21992            0x1,
21993            1,
21994            0,
21995            p80pfs_by::Pcr,
21996            p80pfs_by::Pcr,
21997            P80PfsBy_SPEC,
21998            crate::common::RW,
21999        >::from_register(self, 0)
22000    }
22001
22002    #[doc = "N-Channel Open-Drain Control"]
22003    #[inline(always)]
22004    pub fn ncodr(
22005        self,
22006    ) -> crate::common::RegisterField<
22007        6,
22008        0x1,
22009        1,
22010        0,
22011        p80pfs_by::Ncodr,
22012        p80pfs_by::Ncodr,
22013        P80PfsBy_SPEC,
22014        crate::common::RW,
22015    > {
22016        crate::common::RegisterField::<
22017            6,
22018            0x1,
22019            1,
22020            0,
22021            p80pfs_by::Ncodr,
22022            p80pfs_by::Ncodr,
22023            P80PfsBy_SPEC,
22024            crate::common::RW,
22025        >::from_register(self, 0)
22026    }
22027}
22028impl ::core::default::Default for P80PfsBy {
22029    #[inline(always)]
22030    fn default() -> P80PfsBy {
22031        <crate::RegValueT<P80PfsBy_SPEC> as RegisterValue<_>>::new(0)
22032    }
22033}
22034pub mod p80pfs_by {
22035
22036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22037    pub struct Podr_SPEC;
22038    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
22039    impl Podr {
22040        #[doc = "Output low"]
22041        pub const _0: Self = Self::new(0);
22042
22043        #[doc = "Output high"]
22044        pub const _1: Self = Self::new(1);
22045    }
22046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22047    pub struct Pidr_SPEC;
22048    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
22049    impl Pidr {
22050        #[doc = "Low level"]
22051        pub const _0: Self = Self::new(0);
22052
22053        #[doc = "High level"]
22054        pub const _1: Self = Self::new(1);
22055    }
22056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22057    pub struct Pdr_SPEC;
22058    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
22059    impl Pdr {
22060        #[doc = "Input (functions as an input pin)"]
22061        pub const _0: Self = Self::new(0);
22062
22063        #[doc = "Output (functions as an output pin)"]
22064        pub const _1: Self = Self::new(1);
22065    }
22066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22067    pub struct Pcr_SPEC;
22068    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
22069    impl Pcr {
22070        #[doc = "Disable input pull-up"]
22071        pub const _0: Self = Self::new(0);
22072
22073        #[doc = "Enable input pull-up"]
22074        pub const _1: Self = Self::new(1);
22075    }
22076    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22077    pub struct Ncodr_SPEC;
22078    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
22079    impl Ncodr {
22080        #[doc = "Output CMOS"]
22081        pub const _0: Self = Self::new(0);
22082
22083        #[doc = "Output NMOS open-drain"]
22084        pub const _1: Self = Self::new(1);
22085    }
22086}
22087#[doc(hidden)]
22088#[derive(Copy, Clone, Eq, PartialEq)]
22089pub struct Pwpr_SPEC;
22090impl crate::sealed::RegSpec for Pwpr_SPEC {
22091    type DataType = u8;
22092}
22093
22094#[doc = "Write-Protect Register"]
22095pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
22096
22097impl Pwpr {
22098    #[doc = "PmnPFS Register Write Enable"]
22099    #[inline(always)]
22100    pub fn pfswe(
22101        self,
22102    ) -> crate::common::RegisterField<
22103        6,
22104        0x1,
22105        1,
22106        0,
22107        pwpr::Pfswe,
22108        pwpr::Pfswe,
22109        Pwpr_SPEC,
22110        crate::common::RW,
22111    > {
22112        crate::common::RegisterField::<
22113            6,
22114            0x1,
22115            1,
22116            0,
22117            pwpr::Pfswe,
22118            pwpr::Pfswe,
22119            Pwpr_SPEC,
22120            crate::common::RW,
22121        >::from_register(self, 0)
22122    }
22123
22124    #[doc = "PFSWE Bit Write Disable"]
22125    #[inline(always)]
22126    pub fn b0wi(
22127        self,
22128    ) -> crate::common::RegisterField<
22129        7,
22130        0x1,
22131        1,
22132        0,
22133        pwpr::B0Wi,
22134        pwpr::B0Wi,
22135        Pwpr_SPEC,
22136        crate::common::RW,
22137    > {
22138        crate::common::RegisterField::<
22139            7,
22140            0x1,
22141            1,
22142            0,
22143            pwpr::B0Wi,
22144            pwpr::B0Wi,
22145            Pwpr_SPEC,
22146            crate::common::RW,
22147        >::from_register(self, 0)
22148    }
22149}
22150impl ::core::default::Default for Pwpr {
22151    #[inline(always)]
22152    fn default() -> Pwpr {
22153        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
22154    }
22155}
22156pub mod pwpr {
22157
22158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22159    pub struct Pfswe_SPEC;
22160    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
22161    impl Pfswe {
22162        #[doc = "Writing to the PmnPFS register is disabled"]
22163        pub const _0: Self = Self::new(0);
22164
22165        #[doc = "Writing to the PmnPFS register is enabled"]
22166        pub const _1: Self = Self::new(1);
22167    }
22168    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22169    pub struct B0Wi_SPEC;
22170    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
22171    impl B0Wi {
22172        #[doc = "Writing to the PFSWE bit is enabled"]
22173        pub const _0: Self = Self::new(0);
22174
22175        #[doc = "Writing to the PFSWE bit is disabled"]
22176        pub const _1: Self = Self::new(1);
22177    }
22178}
22179#[doc(hidden)]
22180#[derive(Copy, Clone, Eq, PartialEq)]
22181pub struct Pwprs_SPEC;
22182impl crate::sealed::RegSpec for Pwprs_SPEC {
22183    type DataType = u8;
22184}
22185
22186#[doc = "Write-Protect Register for Secure"]
22187pub type Pwprs = crate::RegValueT<Pwprs_SPEC>;
22188
22189impl Pwprs {
22190    #[doc = "PmnPFS Register Write Enable"]
22191    #[inline(always)]
22192    pub fn pfswe(
22193        self,
22194    ) -> crate::common::RegisterField<
22195        6,
22196        0x1,
22197        1,
22198        0,
22199        pwprs::Pfswe,
22200        pwprs::Pfswe,
22201        Pwprs_SPEC,
22202        crate::common::RW,
22203    > {
22204        crate::common::RegisterField::<
22205            6,
22206            0x1,
22207            1,
22208            0,
22209            pwprs::Pfswe,
22210            pwprs::Pfswe,
22211            Pwprs_SPEC,
22212            crate::common::RW,
22213        >::from_register(self, 0)
22214    }
22215
22216    #[doc = "PFSWE Bit Write Disable"]
22217    #[inline(always)]
22218    pub fn b0wi(
22219        self,
22220    ) -> crate::common::RegisterField<
22221        7,
22222        0x1,
22223        1,
22224        0,
22225        pwprs::B0Wi,
22226        pwprs::B0Wi,
22227        Pwprs_SPEC,
22228        crate::common::RW,
22229    > {
22230        crate::common::RegisterField::<
22231            7,
22232            0x1,
22233            1,
22234            0,
22235            pwprs::B0Wi,
22236            pwprs::B0Wi,
22237            Pwprs_SPEC,
22238            crate::common::RW,
22239        >::from_register(self, 0)
22240    }
22241}
22242impl ::core::default::Default for Pwprs {
22243    #[inline(always)]
22244    fn default() -> Pwprs {
22245        <crate::RegValueT<Pwprs_SPEC> as RegisterValue<_>>::new(128)
22246    }
22247}
22248pub mod pwprs {
22249
22250    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22251    pub struct Pfswe_SPEC;
22252    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
22253    impl Pfswe {
22254        #[doc = "Disable writes to the PmnPFS register"]
22255        pub const _0: Self = Self::new(0);
22256
22257        #[doc = "Enable writes to the PmnPFS register"]
22258        pub const _1: Self = Self::new(1);
22259    }
22260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22261    pub struct B0Wi_SPEC;
22262    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
22263    impl B0Wi {
22264        #[doc = "Enable writes the PFSWE bit"]
22265        pub const _0: Self = Self::new(0);
22266
22267        #[doc = "Disable writes to the PFSWE bit"]
22268        pub const _1: Self = Self::new(1);
22269    }
22270}
22271#[doc(hidden)]
22272#[derive(Copy, Clone, Eq, PartialEq)]
22273pub struct Psar_SPEC;
22274impl crate::sealed::RegSpec for Psar_SPEC {
22275    type DataType = u16;
22276}
22277
22278#[doc = "Port Security Attribution register"]
22279pub type Psar = crate::RegValueT<Psar_SPEC>;
22280
22281impl Psar {
22282    #[doc = "Pmn Security Attribution"]
22283    #[inline(always)]
22284    pub fn pmnsa(
22285        self,
22286    ) -> crate::common::RegisterField<
22287        0,
22288        0xffff,
22289        1,
22290        0,
22291        psar::Pmnsa,
22292        psar::Pmnsa,
22293        Psar_SPEC,
22294        crate::common::RW,
22295    > {
22296        crate::common::RegisterField::<
22297            0,
22298            0xffff,
22299            1,
22300            0,
22301            psar::Pmnsa,
22302            psar::Pmnsa,
22303            Psar_SPEC,
22304            crate::common::RW,
22305        >::from_register(self, 0)
22306    }
22307}
22308impl ::core::default::Default for Psar {
22309    #[inline(always)]
22310    fn default() -> Psar {
22311        <crate::RegValueT<Psar_SPEC> as RegisterValue<_>>::new(65535)
22312    }
22313}
22314pub mod psar {
22315
22316    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
22317    pub struct Pmnsa_SPEC;
22318    pub type Pmnsa = crate::EnumBitfieldStruct<u8, Pmnsa_SPEC>;
22319    impl Pmnsa {
22320        #[doc = "Secure"]
22321        pub const _0: Self = Self::new(0);
22322
22323        #[doc = "Non Secure"]
22324        pub const _1: Self = Self::new(1);
22325    }
22326}